forked from TrueCloudLab/frostfs-node
[#155] search-service: Fix search with ST
Search should return only objects allowed in static session Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
4395a8029e
commit
97b9d165e6
1 changed files with 15 additions and 0 deletions
|
@ -119,6 +119,7 @@ func (exec *execCtx) generateTraverser(cnr cid.ID) (*placement.Traverser, bool)
|
|||
}
|
||||
|
||||
func (exec *execCtx) writeIDList(ids []oid.ID) {
|
||||
ids = exec.filterAllowedObjectIDs(ids)
|
||||
err := exec.prm.writer.WriteIDs(ids)
|
||||
|
||||
switch {
|
||||
|
@ -134,3 +135,17 @@ func (exec *execCtx) writeIDList(ids []oid.ID) {
|
|||
exec.err = nil
|
||||
}
|
||||
}
|
||||
|
||||
func (exec *execCtx) filterAllowedObjectIDs(objIDs []oid.ID) []oid.ID {
|
||||
sessionToken := exec.prm.common.SessionToken()
|
||||
if sessionToken == nil {
|
||||
return objIDs
|
||||
}
|
||||
result := make([]oid.ID, 0, len(objIDs))
|
||||
for _, objID := range objIDs {
|
||||
if sessionToken.AssertObject(objID) {
|
||||
result = append(result, objID)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue