Added error handling for group already existing (#1902)
This commit is contained in:
@@ -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)
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user