diff options
author | Frederick Muriuki Muriithi | 2023-01-03 07:22:02 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-01-03 07:24:46 +0300 |
commit | 0a31f61ee9db84eb35087073ef6b58f352252aae (patch) | |
tree | 70d249b9a1c1c911146b4a05867a3e0d0119a7cb /gn3/auth/authorisation/views.py | |
parent | da33d719105d67afb1ee6b040380211cfa8be23d (diff) | |
download | genenetwork3-0a31f61ee9db84eb35087073ef6b58f352252aae.tar.gz |
auth: Fetch all of a user's roles.
* gn3/auth/authorisation/roles.py: Fetch roles from DB
* gn3/auth/authorisation/views.py: Provide API endpoint for user roles
* tests/unit/auth/test_roles.py: Tests to check fetching roles works correctly
Fix linting and typing issues in the following files:
* gn3/auth/authentication/oauth2/resource_server.py
* gn3/auth/authentication/oauth2/views.py
* tests/unit/auth/fixtures/oauth2_client_fixtures.py
Diffstat (limited to 'gn3/auth/authorisation/views.py')
-rw-r--r-- | gn3/auth/authorisation/views.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gn3/auth/authorisation/views.py b/gn3/auth/authorisation/views.py new file mode 100644 index 0000000..2481633 --- /dev/null +++ b/gn3/auth/authorisation/views.py @@ -0,0 +1,15 @@ +"""Endpoints for the authorisation stuff.""" +from flask import jsonify, current_app + +from gn3.auth import db +from .roles import user_roles as _user_roles +from ..authentication.oauth2.views import oauth2 +from ..authentication.oauth2.resource_server import require_oauth + +@oauth2.route("/user-roles") +@require_oauth +def user_roles(): + """Return the roles assigned to the user.""" + with require_oauth.acquire("role") as token: + with db.connection(current_app.config["AUTH_DB"]) as conn: + return jsonify(_user_roles(conn, token.user)) |