aboutsummaryrefslogtreecommitdiff
path: root/gn3/auth/authorisation/roles.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-01-21 03:17:44 +0300
committerFrederick Muriuki Muriithi2023-01-21 03:17:44 +0300
commita95819958123282b5b961cf88afd8e5588acb666 (patch)
tree8b51ab0ebde1fbd710b5cd3e2bb1b1cdb3111c44 /gn3/auth/authorisation/roles.py
parentda57ac8cb3daf5d14841c0c3b6d0261a49c69504 (diff)
downloadgenenetwork3-a95819958123282b5b961cf88afd8e5588acb666.tar.gz
auth: Roles - Fix bug with role retrieval.
Diffstat (limited to 'gn3/auth/authorisation/roles.py')
-rw-r--r--gn3/auth/authorisation/roles.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/gn3/auth/authorisation/roles.py b/gn3/auth/authorisation/roles.py
index 9e2e83e..e84eb71 100644
--- a/gn3/auth/authorisation/roles.py
+++ b/gn3/auth/authorisation/roles.py
@@ -1,7 +1,9 @@
"""Handle management of roles"""
from uuid import UUID, uuid4
from functools import reduce
-from typing import Iterable, NamedTuple
+from typing import Sequence, Iterable, NamedTuple
+
+from pymonad.maybe import Just, Maybe, Nothing
from gn3.auth import db
from gn3.auth.authentication.users import User
@@ -68,7 +70,7 @@ def __organise_privileges__(roles_dict, privilege_row):
privilege_row["privilege_description"]),))
}
-def user_roles(conn: db.DbConnection, user: User):
+def user_roles(conn: db.DbConnection, user: User) -> Maybe[Sequence[Role]]:
"""Retrieve non-resource roles assigned to the user."""
with db.cursor(conn) as cursor:
cursor.execute(
@@ -80,9 +82,9 @@ def user_roles(conn: db.DbConnection, user: User):
results = cursor.fetchall()
if results:
- return tuple(
- reduce(__organise_privileges__, results, {}).values())
- return tuple()
+ return Just(tuple(
+ reduce(__organise_privileges__, results, {}).values()))
+ return Nothing
def assign_default_roles(cursor: db.DbCursor, user: User):
"""Assign `user` some default roles."""