Skip to content
Snippets Groups Projects
Select Git revision
  • 11ce90c322c89ea822fbda9fd550c0adbd2c7b61
  • master default
  • include-tests
  • remove-yaml-quotes
  • configurable-ci-setup-lookup-path
  • dev-image-test-bak
  • dev-images
  • tmp/deploy-image-build
  • fast-ci
  • modular-templates
10 results

pre-deploy-cleanup.bash

Blame
  • Forked from tecnalia_robotics-public / templates
    Source project has a limited visibility.
    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)
    }