diff --git a/areas/auth/auth.py b/areas/auth/auth.py index 9f95b77..8a137d0 100644 --- a/areas/auth/auth.py +++ b/areas/auth/auth.py @@ -4,7 +4,7 @@ from flask_cors import cross_origin from datetime import timedelta from areas import api_v1 -from areas.apps import AppRole +from areas.apps import AppRole, App from config import * from helpers import HydraOauth, BadRequest, KratosApi @@ -40,7 +40,18 @@ def hydra_callback(): identity=token, expires_delta=timedelta(days=365) ) - app_role = AppRole.query.filter_by(user_id=identity["id"]).first() + apps = App.query.all() + app_roles = [] + for app in apps: + tmp_app_role = AppRole.query.filter_by( + user_id=identity["id"], app_id=app.id + ).first() + app_roles.append( + { + "name": app.slug, + "role_id": tmp_app_role.role_id if tmp_app_role else None, + } + ) return jsonify( { @@ -50,7 +61,7 @@ def hydra_callback(): "email": user_info["email"], "name": user_info["name"], "preferredUsername": user_info["preferred_username"], - "role_id": app_role.role_id if app_role else None, + "app_roles": app_roles, }, } )