in app/registry/admins.go [137:174]
func (a *Admins) adminRemoveFromGroupsAndRoles(ctx context.Context, registryName string, u *keycloak.KeycloakRealmUser) error {
groupRemoved, roleRemoved := false, false
var newGroups, newRoles []string
for _, g := range u.Spec.Groups {
if g == userGroupRoleNameFromRegistry(registryName) {
groupRemoved = true
continue
}
newGroups = append(newGroups, g)
}
if groupRemoved {
u.Spec.Groups = newGroups
}
for _, r := range u.Spec.Roles {
if r == userGroupRoleNameFromRegistry(registryName) {
roleRemoved = true
continue
}
newRoles = append(newRoles, r)
}
if roleRemoved {
u.Spec.Roles = newRoles
}
if groupRemoved || roleRemoved {
if err := a.keycloakService.UpdateUser(ctx, u); err != nil {
return errors.Wrap(err, "unable to update user")
}
}
return nil
}