diff --git a/admin/src/admin/lib/admin.py b/admin/src/admin/lib/admin.py index 5044f52..5715749 100644 --- a/admin/src/admin/lib/admin.py +++ b/admin/src/admin/lib/admin.py @@ -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): diff --git a/admin/src/admin/lib/keycloak_client.py b/admin/src/admin/lib/keycloak_client.py index 6a24709..9ea89dc 100644 --- a/admin/src/admin/lib/keycloak_client.py +++ b/admin/src/admin/lib/keycloak_client.py @@ -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): diff --git a/admin/src/admin/static/js/users.js b/admin/src/admin/static/js/users.js index 52ccafd..444faaa 100644 --- a/admin/src/admin/static/js/users.js +++ b/admin/src/admin/static/js/users.js @@ -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({