Versions in this module Expand all Collapse all v0 v0.15.0 Oct 13, 2026 v0.14.0 Oct 11, 2026 Changes in this version + var ErrNoResourceGrants = errors.New("rbac: resource grants are not configured (use WithResourceGrants)") + type Option func(*Provider) + func WithManagerRoleGetter(fn authz.ManagerRoleGetter) Option + func WithOwnerFullAccess(enabled bool) Option + func WithPermissions(p authz.RolePermissions) Option + func WithPlatformAdminBypass(enabled bool) Option + func WithPlatformAdminChecker(fn func(ctx context.Context, principalID uuid.UUID) (bool, error)) Option + func WithResourceGrants(g ResourceGrants) Option + func WithRoleGetter(fn func(ctx context.Context, principalID, orgID uuid.UUID) (string, error)) Option + func WithRoleHierarchy(h authz.RoleHierarchy) Option + type Provider struct + func New(opts ...Option) *Provider + func (a *Provider) Can(ctx context.Context, principal authz.Principal, action authz.Action, ...) (bool, error) + func (a *Provider) CanAll(ctx context.Context, principal authz.Principal, actions []authz.Action, ...) (bool, error) + func (a *Provider) CanAny(ctx context.Context, principal authz.Principal, actions []authz.Action, ...) (bool, error) + func (a *Provider) CanForOrg(ctx context.Context, principal authz.Principal, orgID uuid.UUID, ...) (bool, error) + func (a *Provider) Decide(ctx context.Context, principal authz.Principal, action authz.Action, ...) (authz.Decision, error) + func (a *Provider) Filter(ctx context.Context, principal authz.Principal, action authz.Action, ...) ([]authz.Resource, error) + func (a *Provider) GetRole(ctx context.Context, principal authz.Principal, orgID uuid.UUID) (string, error) + func (a *Provider) GrantResourceRole(ctx context.Context, principalID uuid.UUID, resource authz.ResourceRef, ...) error + func (a *Provider) IsMember(ctx context.Context, principal authz.Principal, orgID uuid.UUID) (bool, error) + func (a *Provider) IsPlatformAdmin(ctx context.Context, principal authz.Principal) (bool, error) + func (a *Provider) ListResourceGrants(ctx context.Context, resource authz.ResourceRef) ([]authz.Grant, error) + func (a *Provider) ListResources(ctx context.Context, principalID uuid.UUID, resourceType string, ...) (authz.ResourceSet, error) + func (a *Provider) RevokeResourceRole(ctx context.Context, principalID uuid.UUID, resource authz.ResourceRef) error + type ResourceGrants interface