mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-18 21:19:44 +00:00
chore: disallow to revert the last admin user
This commit is contained in:
parent
1ce4b91433
commit
a44b6494bf
@ -231,6 +231,16 @@ func (s *APIV1Service) registerUserRoutes(g *echo.Group) {
|
|||||||
updateUser.RowStatus = &rowStatus
|
updateUser.RowStatus = &rowStatus
|
||||||
}
|
}
|
||||||
if userPatch.Role != nil {
|
if userPatch.Role != nil {
|
||||||
|
adminRole := store.RoleAdmin
|
||||||
|
adminUsers, err := s.Store.ListUsers(ctx, &store.FindUser{
|
||||||
|
Role: &adminRole,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return echo.NewHTTPError(http.StatusInternalServerError, fmt.Sprintf("failed to list admin users, err: %s", err)).SetInternal(err)
|
||||||
|
}
|
||||||
|
if len(adminUsers) == 1 && adminUsers[0].ID == userID && *userPatch.Role != RoleAdmin {
|
||||||
|
return echo.NewHTTPError(http.StatusBadRequest, "cannot remove admin role from the last admin user")
|
||||||
|
}
|
||||||
role := store.Role(*userPatch.Role)
|
role := store.Role(*userPatch.Role)
|
||||||
updateUser.Role = &role
|
updateUser.Role = &role
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user