Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion restapi/admin_groups.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,6 @@ func getAddGroupResponse(session *models.Principal, params *models.AddGroupReque
if params == nil {
return prepareError(errGroupBodyNotInRequest)
}

mAdmin, err := NewMinioAdminClient(session)
if err != nil {
return prepareError(err)
Expand All @@ -162,6 +161,14 @@ func getAddGroupResponse(session *models.Principal, params *models.AddGroupReque
// defining the client to be used
adminClient := AdminClient{Client: mAdmin}

groupList, _ := adminClient.listGroups(ctx)

for _, b := range groupList {
if b == *params.Group {
return prepareError(errGroupAlreadyExists)
}
}

if err := addGroup(ctx, adminClient, *params.Group, params.Members); err != nil {
return prepareError(err)
}
Expand Down
5 changes: 5 additions & 0 deletions restapi/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ var (
errBucketNameNotInRequest = errors.New("error bucket name not in request")
errGroupBodyNotInRequest = errors.New("error group body not in request")
errGroupNameNotInRequest = errors.New("error group name not in request")
errGroupAlreadyExists = errors.New("error group name already in use")
errPolicyNameNotInRequest = errors.New("error policy name not in request")
errPolicyBodyNotInRequest = errors.New("error policy body not in request")
errInvalidEncryptionAlgorithm = errors.New("error invalid encryption algorithm")
Expand Down Expand Up @@ -106,6 +107,10 @@ func prepareError(err ...error) *models.Error {
errorCode = 400
errorMessage = errGroupNameNotInRequest.Error()
}
if errors.Is(err[0], errGroupAlreadyExists) {
errorCode = 400
errorMessage = errGroupAlreadyExists.Error()
}
if errors.Is(err[0], errPolicyNameNotInRequest) {
errorCode = 400
errorMessage = errPolicyNameNotInRequest.Error()
Expand Down