aboutsummaryrefslogtreecommitdiff
path: root/gn3/auth/authentication/oauth2/grants
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-03-06 14:57:53 +0300
committerFrederick Muriuki Muriithi2023-03-06 14:57:53 +0300
commit98e93be1b8e5353656e18f1452026db6f2902e6c (patch)
tree2547ab9284e1a1718b35faf92d8aa68e9d42b283 /gn3/auth/authentication/oauth2/grants
parent4fc72af7e851f12a9f4edc98b0a55c66c9bf1b13 (diff)
downloadgenenetwork3-98e93be1b8e5353656e18f1452026db6f2902e6c.tar.gz
auth: resources: Enable assigning a user roles on resources
Diffstat (limited to 'gn3/auth/authentication/oauth2/grants')
-rw-r--r--gn3/auth/authentication/oauth2/grants/password_grant.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/gn3/auth/authentication/oauth2/grants/password_grant.py b/gn3/auth/authentication/oauth2/grants/password_grant.py
index 3ec7384..3233877 100644
--- a/gn3/auth/authentication/oauth2/grants/password_grant.py
+++ b/gn3/auth/authentication/oauth2/grants/password_grant.py
@@ -6,6 +6,8 @@ from authlib.oauth2.rfc6749 import grants
from gn3.auth import db
from gn3.auth.authentication.users import valid_login, user_by_email
+from gn3.auth.authorisation.errors import NotFoundError
+
class PasswordGrant(grants.ResourceOwnerPasswordCredentialsGrant):
"""Implement the 'Password' grant."""
TOKEN_ENDPOINT_AUTH_METHODS = ["client_secret_basic", "client_secret_post"]
@@ -13,6 +15,8 @@ class PasswordGrant(grants.ResourceOwnerPasswordCredentialsGrant):
def authenticate_user(self, username, password):
"Authenticate the user with their username and password."
with db.connection(app.config["AUTH_DB"]) as conn:
- return user_by_email(conn, username).maybe(
- None,
- lambda user: valid_login(conn, user, password) and user)
+ try:
+ user = user_by_email(conn, username)
+ return user if valid_login(conn, user, password) else None
+ except NotFoundError as _nfe:
+ return None