Versions in this module Expand all Collapse all v2 v2.0.0 Oct 27, 2024 Changes in this version + const EmptyConditionType + const EqualConditionType + const NotEmptyConditionType + const NotEqualConditionType + var ConditionFactories = ConditionFactoriesMap + func RegisterConditionFactory(name string, factory ConditionFactory) error + func UseResource(name string) *baseResource + func UseSubject(roles []string) *baseSubject + type AccessDeniedError struct + Reasons PermissionErrors + Request *AccessRequest + func (e *AccessDeniedError) Error() string + func (e *AccessDeniedError) FirstReason() *PermissionError + type AccessManager struct + func NewAccessManager(policyManager PolicyProvider) *AccessManager + func (am *AccessManager) Authorize(request *AccessRequest) error + type AccessRequest struct + Actions []string + CompleteValidation bool + Context Context + Resource Resource + SkipConditions bool + Subject Subject + type Condition interface + Check func(request *AccessRequest) error + Type func() string + type ConditionErrors []*ConditionNotSatisfiedError + type ConditionFactoriesMap = map[string]ConditionFactory + type ConditionFactory func() Condition + type ConditionFactoryAlreadyExistsError struct + func (e *ConditionFactoryAlreadyExistsError) Error() string + type ConditionFactoryNotFoundError struct + func (e *ConditionFactoryNotFoundError) Error() string + type ConditionNotSatisfiedError struct + Condition Condition + Reason error + Request *AccessRequest + func NewConditionNotSatisfiedError(condition Condition, request *AccessRequest, reason error) *ConditionNotSatisfiedError + func (e *ConditionNotSatisfiedError) Error() string + type Conditions []Condition + func (cs *Conditions) UnmarshalJSON(jsonData []byte) error + func (cs *Conditions) UnmarshalYAML(value *yaml.Node) error + func (cs Conditions) MarshalJSON() ([]byte, error) + func (cs Conditions) MarshalYAML() (interface{}, error) + type Context map[string]interface + type EmptyCondition baseEmptyCondition + func (c *EmptyCondition) Check(request *AccessRequest) error + func (c *EmptyCondition) Type() string + type EqualCondition baseEqualCondition + func (c *EqualCondition) Check(request *AccessRequest) error + func (c *EqualCondition) Type() string + type GrantsMap map[string]Permissions + type NotEmptyCondition baseEmptyCondition + func (c *NotEmptyCondition) Check(request *AccessRequest) error + func (c *NotEmptyCondition) Type() string + type NotEqualCondition baseEqualCondition + func (c *NotEqualCondition) Check(request *AccessRequest) error + func (c *NotEqualCondition) Type() string + type Permission struct + Action string + Conditions Conditions + Preset string + type PermissionError struct + Action string + ConditionErrors ConditionErrors + ResourceName string + RoleName string + func (e *PermissionError) Error() string + func (e *PermissionError) FirstConditionError() *ConditionNotSatisfiedError + func (e *PermissionError) HasFailedConditions() bool + type PermissionErrors []*PermissionError + func (ae PermissionErrors) GetByAction(action string) PermissionErrors + func (ae PermissionErrors) GetByRoleName(roleName string) PermissionErrors + func (ae PermissionErrors) GetFailedActions() []string + type PermissionPresetAlreadyExistsError struct + func (e *PermissionPresetAlreadyExistsError) Error() string + type PermissionPresetNotFoundError struct + func (e *PermissionPresetNotFoundError) Error() string + type PermissionPresets map[string]*Permission + type Permissions []*Permission + type PolicyDefinition struct + PermissionPresets PermissionPresets + Roles Roles + type PolicyManager struct + func NewPolicyManager(adapter StorageAdapter, autoUpdate bool) (*PolicyManager, error) + func (pm *PolicyManager) AddPermission(roleID, resourceID string, permission *Permission) error + func (pm *PolicyManager) AddPermissionPreset(name string, preset *Permission) error + func (pm *PolicyManager) AddRole(role *Role) error + func (pm *PolicyManager) DeletePermission(roleID, resourceID, action string) error + func (pm *PolicyManager) DeletePermissionPreset(name string) error + func (pm *PolicyManager) DeleteRole(roleID string) error + func (pm *PolicyManager) DisableAutoUpdate() + func (pm *PolicyManager) EnableAutoUpdate() + func (pm *PolicyManager) GetPolicy() *PolicyDefinition + func (pm *PolicyManager) GetRole(roleID string) (*Role, error) + func (pm *PolicyManager) LoadPolicy() error + func (pm *PolicyManager) SavePolicy() error + func (pm *PolicyManager) UpdatePermissionPreset(name string, preset *Permission) error + func (pm *PolicyManager) UpdateRole(role *Role) error + func (pm *PolicyManager) UpsertPermissionPreset(name string, preset *Permission) error + func (pm *PolicyManager) UpsertRole(role *Role) error + type PolicyProvider interface + GetRole func(roleID string) (*Role, error) + type RequestMalformedError struct + func (e *RequestMalformedError) Error() string + func (e *RequestMalformedError) FailedRequest() *AccessRequest + func (e *RequestMalformedError) Reason() error + type Resource interface + GetResourceName func() string + type Role struct + Description string + Grants GrantsMap + ID string + Parents []string + type RoleAlreadyExistsError struct + func (e *RoleAlreadyExistsError) Error() string + type RoleInheritanceCycleError struct + func (e *RoleInheritanceCycleError) Error() string + type RoleNotFoundError struct + func (e *RoleNotFoundError) Error() string + type Roles map[string]*Role + func (rs *Roles) UnmarshalJSON(jsonData []byte) error + func (rs *Roles) UnmarshalYAML(value *yaml.Node) error + type StorageAdapter interface + LoadPolicy func() (*PolicyDefinition, error) + SavePolicy func(policy *PolicyDefinition) error + type Subject interface + GetRoles func() []string + type ValueDescriptor struct + Field string + Source ValueSource + Value interface{} + func (vd *ValueDescriptor) GetValue(request *AccessRequest) (interface{}, error) + type ValueDescriptorMalformedError struct + func (e *ValueDescriptorMalformedError) Error() string + func (e *ValueDescriptorMalformedError) FailedDescriptor() *ValueDescriptor + func (e *ValueDescriptorMalformedError) Reason() error + type ValueSource int + const ContextField + const Explicit + const ResourceField + const SubjectField + func (vs *ValueSource) UnmarshalJSON(jsonData []byte) error + func (vs *ValueSource) UnmarshalYAML(value *yaml.Node) error + func (vs ValueSource) MarshalJSON() ([]byte, error) + func (vs ValueSource) MarshalYAML() (interface{}, error) + func (vs ValueSource) String() string Other modules containing this package github.com/el-mike/restrict