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

Merge branch '191-allow-removing-user-app-role-from-cli' into 'main'

Resolve "Allow removing user app role from CLI"

Closes #191

See merge request !172
parents 1c3b33e6 a72ea912
No related branches found
No related tags found
1 merge request!172Resolve "Allow removing user app role from CLI"
Pipeline #44519 passed with stages
in 3 minutes and 23 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