Skip to content

Commit 870cef7

Browse files
authored
Added error handling for group already existing (#1902)
1 parent d9843d5 commit 870cef7

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

restapi/admin_groups.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ func getAddGroupResponse(session *models.Principal, params *models.AddGroupReque
153153
if params == nil {
154154
return prepareError(errGroupBodyNotInRequest)
155155
}
156-
157156
mAdmin, err := NewMinioAdminClient(session)
158157
if err != nil {
159158
return prepareError(err)
@@ -162,6 +161,14 @@ func getAddGroupResponse(session *models.Principal, params *models.AddGroupReque
162161
// defining the client to be used
163162
adminClient := AdminClient{Client: mAdmin}
164163

164+
groupList, _ := adminClient.listGroups(ctx)
165+
166+
for _, b := range groupList {
167+
if b == *params.Group {
168+
return prepareError(errGroupAlreadyExists)
169+
}
170+
}
171+
165172
if err := addGroup(ctx, adminClient, *params.Group, params.Members); err != nil {
166173
return prepareError(err)
167174
}

restapi/error.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var (
4343
errBucketNameNotInRequest = errors.New("error bucket name not in request")
4444
errGroupBodyNotInRequest = errors.New("error group body not in request")
4545
errGroupNameNotInRequest = errors.New("error group name not in request")
46+
errGroupAlreadyExists = errors.New("error group name already in use")
4647
errPolicyNameNotInRequest = errors.New("error policy name not in request")
4748
errPolicyBodyNotInRequest = errors.New("error policy body not in request")
4849
errInvalidEncryptionAlgorithm = errors.New("error invalid encryption algorithm")
@@ -106,6 +107,10 @@ func prepareError(err ...error) *models.Error {
106107
errorCode = 400
107108
errorMessage = errGroupNameNotInRequest.Error()
108109
}
110+
if errors.Is(err[0], errGroupAlreadyExists) {
111+
errorCode = 400
112+
errorMessage = errGroupAlreadyExists.Error()
113+
}
109114
if errors.Is(err[0], errPolicyNameNotInRequest) {
110115
errorCode = 400
111116
errorMessage = errPolicyNameNotInRequest.Error()

0 commit comments

Comments
 (0)