Select Git revision
pre-deploy-cleanup.bash
Forked from
tecnalia_robotics-public / templates
Source project has a limited visibility.
-
Prada Sarasola, Miguel authoredPrada Sarasola, Miguel authored
acl.go 1.14 KiB
/**
* acl.go
*
* COPYRIGHT: FUNDACIÓN TECNALIA RESEARCH & INNOVATION, 2022.
*/
package discard
import (
"git.code.tecnalia.com/ledgerbuilder/sdk/core/api"
"git.code.tecnalia.com/ledgerbuilder/sdk/core/fabric/protos"
"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
"git.code.tecnalia.com/traceblock/sdk/controller/utils"
)
func (c DiscardController) CheckACL(validations []utils.OwnershipACL, trigger shared.TriggerFunction) shared.TriggerFunction {
return func(stub shared.LedgerBuildrStubInterface, requestAsset shared.LedgerBuildrAsset) protos.Response {
const fnName = "ACL"
storedAsset, err := c.readAsset(stub, requestAsset)
if err != nil {
return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
}
for _, validation := range validations {
if err := validation(storedAsset.Owner, stub); err != nil {
return api.NewApiResponsePtr(fnName, err, nil).SendResponse()
}
}
return trigger(stub, requestAsset)
}
}
func (c DiscardController) OnlySameOrgAndRole(trigger shared.TriggerFunction) shared.TriggerFunction {
return c.CheckACL([]utils.OwnershipACL{utils.OwnedBySameOrg, utils.OwnedBySameRoleOrAdmin}, trigger)
}