From 48cd35e67c23f57c44f8190311bc024468407cce Mon Sep 17 00:00:00 2001
From: Christian Boettcher <c.boettcher@fz-juelich.de>
Date: Tue, 9 Nov 2021 08:59:26 +0100
Subject: [PATCH] test acess denied for users without access rights

---
 tests/apiserver_tests/test_secretswithauth.py | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tests/apiserver_tests/test_secretswithauth.py b/tests/apiserver_tests/test_secretswithauth.py
index efa4159..37fa56f 100644
--- a/tests/apiserver_tests/test_secretswithauth.py
+++ b/tests/apiserver_tests/test_secretswithauth.py
@@ -11,6 +11,9 @@ proper_uuid = "3a33262e-276e-4de8-87bc-f2d5a0195faf"
 def myfunc():
     return User(username='secret_foo', email='secret_bar', has_secrets_access=True)
 
+def non_access_user():
+    return User(username='secret_foo', email='secret_bar', has_secrets_access=False)
+
 class UserTests(TestCase):
 
     def setUp(self):
@@ -98,4 +101,25 @@ class UserTests(TestCase):
             key = element['key']
             rsp = self.client.delete(f'/dataset/{self.dummy_oid}/secrets/{key}')
 
+
+
+    
+    def test_secrets_without_access(self): 
+        # override with non_access user
+        apiserver.app.dependency_overrides[apiserver.main.my_auth] = non_access_user
+        apiserver.app.dependency_overrides[apiserver.main.my_user] = non_access_user
+        # check if access for all secrets endpoints failed with 401 Auth required
+        # list secrets, add secret, get secret, delete secret
+        rsp = self.client.get(f'/dataset/{proper_uuid}/secrets')
+        self.assertEqual(403, rsp.status_code)
+        
+        rsp = self.client.get(f'/dataset/{proper_uuid}/secrets/somespecificsecret')
+        self.assertEqual(403, rsp.status_code)
+        
+        rsp = self.client.post(f'/dataset/{proper_uuid}/secrets', json={'key' : "somekey", "secret" : "somesecret"})
+        self.assertEqual(403, rsp.status_code)
+        
+        rsp = self.client.delete(f'/dataset/{proper_uuid}/secrets/somespecificsecret')
+        self.assertEqual(403, rsp.status_code)
+
     # TODO test delete object, DO secrets disappear too? (currently they don't)
\ No newline at end of file
-- 
GitLab