Skip to content
Snippets Groups Projects
Commit a72ea912 authored by Arie Peterson's avatar Arie Peterson
Browse files

Allow removing user app roles from CLI

parent 1c3b33e6
No related branches found
No related tags found
1 merge request!172Resolve "Allow removing user app role from CLI"
Pipeline #44518 passed with stages
in 3 minutes and 15 seconds
...@@ -207,8 +207,8 @@ def setrole(email, app_slug, role): ...@@ -207,8 +207,8 @@ def setrole(email, app_slug, role):
# Find user # Find user
user = KratosUser.find_by_email(kratos_identity_api, email) user = KratosUser.find_by_email(kratos_identity_api, email)
if role not in ("admin", "user"): if role not in ("admin", "user", "none"):
print("At this point only the roles 'admin' and 'user' are accepted") print("At this point the only accepted roles are 'admin', 'user' and 'none'.")
sys.exit(1) sys.exit(1)
if not user: if not user:
...@@ -227,17 +227,21 @@ def setrole(email, app_slug, role): ...@@ -227,17 +227,21 @@ def setrole(email, app_slug, role):
.first() .first()
) )
# Always delete the old role for this app and user if it exists.
if role_obj: if role_obj:
db.session.delete(role_obj) db.session.delete(role_obj)
role = Role.query.filter(func.lower(Role.name) == func.lower(role)).first() # If the new role is not "none", add it.
if role in ("admin", "user"):
role = Role.query.filter(func.lower(Role.name) == func.lower(role)).first()
obj = AppRole() obj = AppRole()
obj.user_id = user.uuid obj.user_id = user.uuid
obj.app_id = app_obj.id obj.app_id = app_obj.id
obj.role_id = role.id if role else None obj.role_id = role.id if role else None
db.session.add(obj)
db.session.add(obj)
db.session.commit() db.session.commit()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment