diff options
author | Frederick Muriuki Muriithi | 2023-03-06 14:57:53 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-03-06 14:57:53 +0300 |
commit | 98e93be1b8e5353656e18f1452026db6f2902e6c (patch) | |
tree | 2547ab9284e1a1718b35faf92d8aa68e9d42b283 /gn3/auth/authentication/users.py | |
parent | 4fc72af7e851f12a9f4edc98b0a55c66c9bf1b13 (diff) | |
download | genenetwork3-98e93be1b8e5353656e18f1452026db6f2902e6c.tar.gz |
auth: resources: Enable assigning a user roles on resources
Diffstat (limited to 'gn3/auth/authentication/users.py')
-rw-r--r-- | gn3/auth/authentication/users.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gn3/auth/authentication/users.py b/gn3/auth/authentication/users.py index ce01805..e65938e 100644 --- a/gn3/auth/authentication/users.py +++ b/gn3/auth/authentication/users.py @@ -6,6 +6,7 @@ import bcrypt from pymonad.maybe import Just, Maybe, Nothing from gn3.auth import db +from gn3.auth.authorisation.errors import NotFoundError class User(NamedTuple): """Class representing a user.""" @@ -25,16 +26,16 @@ DUMMY_USER = User(user_id=UUID("a391cf60-e8b7-4294-bd22-ddbbda4b3530"), email="gn3@dummy.user", name="Dummy user to use as placeholder") -def user_by_email(conn: db.DbConnection, email: str) -> Maybe: +def user_by_email(conn: db.DbConnection, email: str) -> User: """Retrieve user from database by their email address""" with db.cursor(conn) as cursor: cursor.execute("SELECT * FROM users WHERE email=?", (email,)) row = cursor.fetchone() if row: - return Just(User(UUID(row["user_id"]), row["email"], row["name"])) + return User(UUID(row["user_id"]), row["email"], row["name"]) - return Nothing + raise NotFoundError(f"Could not find user with email {email}") def user_by_id(conn: db.DbConnection, user_id: UUID) -> Maybe: """Retrieve user from database by their user id""" |