github.com/Axway/agent-sdk@v1.1.101/pkg/agent/handler/accesscontrollist.go (about) 1 package handler 2 3 import ( 4 "context" 5 6 agentcache "github.com/Axway/agent-sdk/pkg/agent/cache" 7 apiv1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 8 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 9 "github.com/Axway/agent-sdk/pkg/watchmanager/proto" 10 ) 11 12 type aclHandler struct { 13 agentCacheManager agentcache.Manager 14 } 15 16 // NewACLHandler creates a Handler for Access Requests 17 func NewACLHandler(agentCacheManager agentcache.Manager) Handler { 18 return &aclHandler{ 19 agentCacheManager: agentCacheManager, 20 } 21 } 22 23 // Handle processes grpc events triggered for AccessRequests 24 func (h *aclHandler) Handle(ctx context.Context, _ *proto.EventMeta, resource *apiv1.ResourceInstance) error { 25 action := GetActionFromContext(ctx) 26 if resource.Kind != management.AccessControlListGVK().Kind { 27 return nil 28 } 29 30 if action != proto.Event_DELETED { 31 h.agentCacheManager.SetAccessControlList(resource) 32 return nil 33 } 34 35 return h.agentCacheManager.DeleteAccessControlList() 36 }