@@ -497,20 +497,33 @@ func (impl UserAuthServiceImpl) DeleteRoles(entityType string, entityName string
497497
498498 // deleting policies in casbin and roles
499499 var casbinDeleteFailed []bool
500+ casbin2 .LoadPolicy ()
500501 for _ , roleModel := range roleModels {
501502 success := casbin2 .RemovePoliciesByRoles (roleModel .Role )
502503 if ! success {
503504 impl .logger .Warnw ("error in deleting casbin policy for role" , "role" , roleModel .Role )
504505 casbinDeleteFailed = append (casbinDeleteFailed , success )
505506 }
507+ allUsersMappedToRoles , err := casbin2 .GetUserByRole (roleModel .Role )
508+ if err != nil {
509+ impl .logger .Errorw ("error in getting all users by roles" , "err" , err , "role" , roleModel .Role )
510+ return err
511+ }
512+ for _ , rl := range allUsersMappedToRoles {
513+ success = casbin2 .DeleteRoleForUser (rl , roleModel .Role )
514+ if ! success {
515+ impl .logger .Warnw ("error in deleting casbin policy for role" , "role" , roleModel .Role )
516+ casbinDeleteFailed = append (casbinDeleteFailed , success )
517+ }
518+ }
506519 //deleting user_roles for this role_id (foreign key constraint)
507520 err = impl .userAuthRepository .DeleteUserRoleByRoleId (roleModel .Id , tx )
508521 if err != nil {
509522 impl .logger .Errorw ("error in deleting user_roles by role id" , "err" , err , "roleId" , roleModel .Id )
510523 return err
511524 }
512525 //deleting role_group_role_mapping for this role_id (foreign key constraint)
513- err : = impl .roleGroupRepository .DeleteRoleGroupRoleMappingByRoleId (roleModel .Id , tx )
526+ err = impl .roleGroupRepository .DeleteRoleGroupRoleMappingByRoleId (roleModel .Id , tx )
514527 if err != nil {
515528 impl .logger .Errorw ("error in deleting role_group_role_mapping by role id" , "err" , err , "roleId" , roleModel .Id )
516529 return err
@@ -522,5 +535,6 @@ func (impl UserAuthServiceImpl) DeleteRoles(entityType string, entityName string
522535 return err
523536 }
524537 }
538+ casbin2 .LoadPolicy ()
525539 return nil
526540}
0 commit comments