fix(iam): reload committed state on peer deletion notifications

Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
Feng Ruohang
2026-09-15 20:40:14 +08:00
parent 47d239f84f
commit f653a6ea03
4 changed files with 193 additions and 2 deletions
+5 -2
View File
@@ -230,7 +230,8 @@ func (s *peerRESTServer) LoadServiceAccountHandler(mss *grid.MSS) (np grid.NoPay
return np, nerr
}
// DeleteUserHandler - deletes a user on the server.
// DeleteUserHandler reloads the state committed by another node. A delayed
// notification must not delete an identity recreated since that commit.
func (s *peerRESTServer) DeleteUserHandler(mss *grid.MSS) (np grid.NoPayload, nerr *grid.RemoteErr) {
objAPI := newObjectLayerFn()
if objAPI == nil {
@@ -242,7 +243,9 @@ func (s *peerRESTServer) DeleteUserHandler(mss *grid.MSS) (np grid.NoPayload, ne
return np, grid.NewRemoteErr(errors.New("username is missing"))
}
if err := globalIAMSys.DeleteUser(context.Background(), accessKey, false); err != nil {
ctx, cancel := context.WithTimeout(GlobalContext, defaultContextTimeout)
defer cancel()
if err := globalIAMSys.LoadUserAfterDelete(ctx, accessKey); err != nil {
return np, grid.NewRemoteErr(err)
}