Skip to content
Snippets Groups Projects
Select Git revision
  • 67f305aeb8179a6d4ba558a67b4eecac619e81e7
  • main default
2 results

acl.go

Blame
  • acl.go 1.53 KiB
    /**
     * acl.go
     *
     * COPYRIGHT: FUNDACIÓN TECNALIA RESEARCH & INNOVATION, 2021.
     */
    
    package middleware
    
    import (
    	"errors"
    
    	"git.code.tecnalia.com/ledgerbuilder/sdk/shared"
    )
    
    var (
    	RejectIfNotSidenor = shared.NewMiddlewareFunction("reject-not-sidenor", rejectIfNotSidenor)
    	RejectIfNotCementCompany = shared.NewMiddlewareFunction("reject-not-cement-company", rejectIfNotCementCompany)
    	RejectIfNotPublicAdmin = shared.NewMiddlewareFunction("reject-not-public-admin", rejectIfNotPublicAdmin)
    	errInvalidOrg = errors.New("user belongs to an invalid organization")
    )
    
    func rejectIfNotSidenor(stub shared.LedgerBuildrStubInterface, ctl shared.ControllerInterface, req shared.TXRequestInterface, request shared.LedgerBuildrAsset) (shared.LedgerBuildrAsset, error) {
    	mspId := stub.GetMSPId()
    
    	if (mspId == "sidenor-com") {
    		return request, nil
    	}
    	
    	return nil, errInvalidOrg
    }
    
    func rejectIfNotCementCompany(stub shared.LedgerBuildrStubInterface, ctl shared.ControllerInterface, req shared.TXRequestInterface, request shared.LedgerBuildrAsset) (shared.LedgerBuildrAsset, error) {
    	mspId := stub.GetMSPId()
    
    	if (mspId == "cement-company1-com" || mspId == "cement-company2-com") {
    		return request, nil
    	}
    	
    	return nil, errInvalidOrg
    }
    
    func rejectIfNotPublicAdmin(stub shared.LedgerBuildrStubInterface, ctl shared.ControllerInterface, req shared.TXRequestInterface, request shared.LedgerBuildrAsset) (shared.LedgerBuildrAsset, error) {
    	mspId := stub.GetMSPId()
    
    	if (mspId == "public-administration-com") {
    		return request, nil
    	}
    	
    	return nil, errInvalidOrg
    }