filter duplicated action

This commit is contained in:
Tuan Vuong 2022-07-20 16:43:50 +07:00
parent 4820b594a7
commit 312e13416b

View file

@ -219,9 +219,17 @@ func (iama *IamApiServer) PutUserPolicy(s3cfg *iam_pb.S3ApiConfiguration, values
if userName != ident.Name { if userName != ident.Name {
continue continue
} }
existedActions := make(map[string]bool, len(ident.Actions))
for _, action := range ident.Actions {
existedActions[action] = true
}
for _, action := range actions { for _, action := range actions {
if !existedActions[action] {
ident.Actions = append(ident.Actions, action) ident.Actions = append(ident.Actions, action)
} }
}
return resp, nil return resp, nil
} }
return resp, fmt.Errorf("%s: the user with name %s cannot be found", iam.ErrCodeNoSuchEntityException, userName) return resp, fmt.Errorf("%s: the user with name %s cannot be found", iam.ErrCodeNoSuchEntityException, userName)
@ -349,7 +357,8 @@ func (iama *IamApiServer) CreateAccessKey(s3cfg *iam_pb.S3ApiConfiguration, valu
} }
if !changed { if !changed {
s3cfg.Identities = append(s3cfg.Identities, s3cfg.Identities = append(s3cfg.Identities,
&iam_pb.Identity{Name: userName, &iam_pb.Identity{
Name: userName,
Credentials: []*iam_pb.Credential{ Credentials: []*iam_pb.Credential{
{ {
AccessKey: accessKeyId, AccessKey: accessKeyId,