Compare commits

...

1 commit

Author SHA1 Message Date
740cfe4ac1 [#1051] object: Ignore APE check for PutSingle with tombstone object
* When a client requests DeleteObject, delete service may send PutSingle
  with tombstone object type to several nodes. If APE allows deletes,
  but denies puts, then PutSingle cannot be performed although it is
  being performed in the delete context. So, check for putting tombstone
  is ignored.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-19 14:45:35 +03:00

View file

@ -77,6 +77,11 @@ func (c *checkerImpl) CheckAPE(ctx context.Context, prm Prm) error {
return fmt.Errorf("failed to create ape request: %w", err)
}
if prm.Method == nativeschema.MethodPutObject &&
r.Resource().Property(nativeschema.PropertyKeyObjectType) == objectV2.TypeTombstone.String() {
return nil
}
status, ruleFound, err := c.chainRouter.IsAllowed(apechain.Ingress,
policyengine.NewRequestTarget(prm.Namespace, prm.Container.EncodeToString()), r)
if err != nil {