diff options
Diffstat (limited to 'gn3/auth/authorisation/views.py')
-rw-r--r-- | gn3/auth/authorisation/views.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gn3/auth/authorisation/views.py b/gn3/auth/authorisation/views.py index 2a419af..3e9d9b9 100644 --- a/gn3/auth/authorisation/views.py +++ b/gn3/auth/authorisation/views.py @@ -2,10 +2,27 @@ from flask import jsonify, current_app from gn3.auth import db +from .groups import user_group 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") +@require_oauth("profile") +def user_details(): + """Return user's details.""" + with require_oauth.acquire("profile") as the_token: + user = the_token.user + with db.connection(current_app.config["AUTH_DB"]) as conn, db.cursor(conn) as cursor: + group = user_group(cursor, user) + + return jsonify({ + "user_id": user.user_id, + "email": user.email, + "name": user.name, + "group": group.maybe(False, lambda grp: grp) + }) + @oauth2.route("/user-roles") @require_oauth def user_roles(): |