[#352] Add appending of SetEACL token in authmate

If Put session context exists

Signed-off-by: Angira Kekteeva <kira@nspcc.ru>
remotes/KirillovDenis/bugfix/681-fix_acl_parsing
Angira Kekteeva 2022-02-14 22:37:50 +03:00
parent aa4c9d19f6
commit e7e71d6202
1 changed files with 18 additions and 0 deletions

View File

@ -384,6 +384,24 @@ func buildContext(rules []byte) ([]*session.ContainerContext, error) {
if err != nil {
return nil, fmt.Errorf("failed to unmarshal rules for session token: %w", err)
}
var (
containsPut = false
containsSetEACL = false
)
for _, s := range sessionCtxs {
if s.IsForPut() {
containsPut = true
} else if s.IsForSetEACL() {
containsSetEACL = true
}
}
if containsPut && !containsSetEACL {
ectx := session.NewContainerContext()
ectx.ForSetEACL()
sessionCtxs = append(sessionCtxs, ectx)
}
return sessionCtxs, nil
}