aboutsummaryrefslogtreecommitdiff
path: root/gn3/auth/authorisation/privileges.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-01-16 12:14:24 +0300
committerFrederick Muriuki Muriithi2023-01-16 12:14:24 +0300
commit98dc0c5b1a67a7c7b97a1fa02211e9f99360edce (patch)
treedc0c6f6bc82f11a4282be2dc1c2485340d68b7d0 /gn3/auth/authorisation/privileges.py
parent53371fb668d1d18ba4696b3e4739f26edd677d8d (diff)
downloadgenenetwork3-98dc0c5b1a67a7c7b97a1fa02211e9f99360edce.tar.gz
auth: update privileges format
Save privileges with ids of the form <top-level>:<sub-level>:<privilege-name> rather than using a UUID, to reduce indirection levels. * migrations/auth/20230116_01_KwuJ3-rework-privileges-schema.py: new migration to change the schema and IDs for the privileges. * Update code to use new privileges format * gn3/auth/authorisation/checks.py * gn3/auth/authorisation/groups.py * gn3/auth/authorisation/privileges.py * gn3/auth/authorisation/resources.py * gn3/auth/authorisation/roles.py * migrations/auth/20230116_01_KwuJ3-rework-privileges-schema.py * tests/unit/auth/fixtures/role_fixtures.py * tests/unit/auth/test_groups.py * tests/unit/auth/test_privileges.py * tests/unit/auth/test_roles.py
Diffstat (limited to 'gn3/auth/authorisation/privileges.py')
-rw-r--r--gn3/auth/authorisation/privileges.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/gn3/auth/authorisation/privileges.py b/gn3/auth/authorisation/privileges.py
index 9e66bda..6cfd1d8 100644
--- a/gn3/auth/authorisation/privileges.py
+++ b/gn3/auth/authorisation/privileges.py
@@ -1,5 +1,4 @@
"""Handle privileges"""
-from uuid import UUID
from typing import Iterable, NamedTuple
from gn3.auth import db
@@ -7,14 +6,14 @@ from gn3.auth.authentication.users import User
class Privilege(NamedTuple):
"""Class representing a privilege: creates immutable objects."""
- privilege_id: UUID
- privilege_name: str
+ privilege_id: str
+ privilege_description: str
def user_privileges(conn: db.DbConnection, user: User) -> Iterable[Privilege]:
"""Fetch the user's privileges from the database."""
with db.cursor(conn) as cursor:
cursor.execute(
- ("SELECT p.privilege_id, p.privilege_name "
+ ("SELECT p.privilege_id, p.privilege_description "
"FROM user_roles AS ur "
"INNER JOIN role_privileges AS rp ON ur.role_id=rp.role_id "
"INNER JOIN privileges AS p ON rp.privilege_id=p.privilege_id "
@@ -22,4 +21,4 @@ def user_privileges(conn: db.DbConnection, user: User) -> Iterable[Privilege]:
(str(user.user_id),))
results = cursor.fetchall()
- return (Privilege(UUID(row[0]), row[1]) for row in results)
+ return (Privilege(row[0], row[1]) for row in results)