diff options
author | Frederick Muriuki Muriithi | 2023-01-21 03:17:44 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-01-21 03:17:44 +0300 |
commit | a95819958123282b5b961cf88afd8e5588acb666 (patch) | |
tree | 8b51ab0ebde1fbd710b5cd3e2bb1b1cdb3111c44 /gn3/auth/authorisation/roles.py | |
parent | da57ac8cb3daf5d14841c0c3b6d0261a49c69504 (diff) | |
download | genenetwork3-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.py | 12 |
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.""" |