diff options
Diffstat (limited to 'lib/hashserv')
-rw-r--r-- | lib/hashserv/server.py | 3 | ||||
-rw-r--r-- | lib/hashserv/tests.py | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/hashserv/server.py b/lib/hashserv/server.py index 439962f78..a86507830 100644 --- a/lib/hashserv/server.py +++ b/lib/hashserv/server.py @@ -475,6 +475,9 @@ class ServerClient(bb.asyncrpc.AsyncServerConnection): if k in data: outhash_data[k] = data[k] + if self.user: + outhash_data["owner"] = self.user.username + # Insert the new entry, unless it already exists if await self.db.insert_outhash(outhash_data): # If this row is new, check if it is equivalent to another diff --git a/lib/hashserv/tests.py b/lib/hashserv/tests.py index f0be86791..a9e6fdf9f 100644 --- a/lib/hashserv/tests.py +++ b/lib/hashserv/tests.py @@ -828,6 +828,15 @@ class HashEquivalenceCommonTests(object): for col in columns: self.client.remove({col: ""}) + def test_auth_is_owner(self): + admin_client = self.start_auth_server() + + user = self.create_user("test-user", ["@read", "@report"]) + with self.auth_client(user) as client: + taskhash, outhash, unihash = self.create_test_hash(client) + data = client.get_taskhash(self.METHOD, taskhash, True) + self.assertEqual(data["owner"], user["username"]) + class TestHashEquivalenceClient(HashEquivalenceTestSetup, unittest.TestCase): def get_server_addr(self, server_idx): |