Remove roles on edit user if changed

root 2021-09-15 10:11:47 +02:00
parent b0eba9d7bb
commit a9ac4fe81d
3 changed files with 6 additions and 3 deletions

View File

@ -1158,6 +1158,8 @@ class Admin():
return True
def update_keycloak_user(self,user_id,user,kdelete,kadd):
# pprint(self.keycloak.get_user_realm_roles(user_id))
self.keycloak.remove_user_realm_roles(user_id,'student')
self.keycloak.assign_realm_roles(user_id,user['roles'][0])
for group in kdelete:
group_id = self.keycloak.get_group_by_path(gid2kpath(group))['id']
@ -1166,7 +1168,7 @@ class Admin():
group_id = self.keycloak.get_group_by_path(gid2kpath(group))['id']
self.keycloak.group_user_add(user_id,group_id)
self.keycloak.user_update(user_id,user['enabled'],user['email'],user['firstname'],user['lastname'])
self.resync_data()
return True
def enable_users(self,data):

View File

@ -215,8 +215,9 @@ class KeycloakClient():
# self.connect()
# return self.keycloak_admin.assign_role(client_id=client_id, user_id=user_id, role_id=role_id, role_name="test")
def remove_user_roles(self,user_id,roles):
def remove_user_realm_roles(self,user_id,roles):
self.connect()
roles = [r for r in self.get_user_realm_roles(user_id) if r['name'] in ['admin','manager','teacher','student']]
return self.keycloak_admin.delete_realm_roles_of_user(user_id,roles)
def delete_user(self,userid):

View File

@ -239,6 +239,7 @@ $(document).ready(function() {
"url": "/api/user/"+formdata['id'],
data: JSON.stringify(formdata),
complete: function(jqXHR, textStatus) {
table.ajax.reload();
switch (jqXHR.status) {
case 200:
$("#modalEditUser").modal('hide');
@ -282,7 +283,6 @@ $(document).ready(function() {
}
});
}
table.ajax.reload();
});
//DataTable Main renderer
var table = $('#users').DataTable({