Documentation
¶
Index ¶
- Variables
- type AccessConfig
- type Assertion
- type AssertionFunc
- type AuthorizationChecker
- type Config
- type DefaultRole
- func (r *DefaultRole) AddChild(child Role) error
- func (r *DefaultRole) AddParent(parent Role) error
- func (r *DefaultRole) AddPermissions(permission string, rest ...string)
- func (r *DefaultRole) Children() []Role
- func (r *DefaultRole) HasAncestor(role Role) bool
- func (r *DefaultRole) HasDescendant(role Role) bool
- func (r *DefaultRole) HasPermission(permission string) bool
- func (r *DefaultRole) Name() string
- func (r *DefaultRole) Parents() []Role
- func (r *DefaultRole) Permissions(children bool) []string
- func (r *DefaultRole) String() string
- type RBAC
- func (rbac *RBAC) AddRole(role any, parents ...any) error
- func (rbac *RBAC) Apply(cfg Config) error
- func (rbac *RBAC) CreateMissingRoles() bool
- func (rbac *RBAC) HasRole(role any) (bool, error)
- func (rbac *RBAC) IsGranted(ctx context.Context, role any, permission string, assertions ...Assertion) bool
- func (rbac *RBAC) IsGrantedE(ctx context.Context, role any, permission string, assertions ...Assertion) (bool, error)
- func (rbac *RBAC) Role(name string) (Role, error)
- func (rbac *RBAC) Roles() []Role
- func (rbac *RBAC) SetCreateMissingRoles(createMissingRoles bool) *RBAC
- type Role
- type RoleConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRoleNotFound = errors.New("role not found") ErrInvalidRole = errors.New("role must be a string or implement the Role interface") )
View Source
var ErrCircularReference = errors.New("circular reference detected")
Functions ¶
This section is empty.
Types ¶
type AccessConfig ¶
type AssertionFunc ¶
type AuthorizationChecker ¶
type Config ¶
type Config struct {
CreateMissingRoles bool `json:"createMissingRoles,omitempty" yaml:"createMissingRoles,omitempty"`
RoleHierarchy []RoleConfig `json:"roleHierarchy,omitempty" yaml:"roleHierarchy,omitempty"`
AccessControl []AccessConfig `json:"accessControl,omitempty" yaml:"accessControl,omitempty"`
}
type DefaultRole ¶
type DefaultRole struct {
// contains filtered or unexported fields
}
func NewRole ¶
func NewRole(name string) *DefaultRole
func (*DefaultRole) AddChild ¶
func (r *DefaultRole) AddChild(child Role) error
func (*DefaultRole) AddParent ¶
func (r *DefaultRole) AddParent(parent Role) error
func (*DefaultRole) AddPermissions ¶
func (r *DefaultRole) AddPermissions(permission string, rest ...string)
func (*DefaultRole) Children ¶
func (r *DefaultRole) Children() []Role
func (*DefaultRole) HasAncestor ¶
func (r *DefaultRole) HasAncestor(role Role) bool
func (*DefaultRole) HasDescendant ¶
func (r *DefaultRole) HasDescendant(role Role) bool
func (*DefaultRole) HasPermission ¶
func (r *DefaultRole) HasPermission(permission string) bool
func (*DefaultRole) Name ¶
func (r *DefaultRole) Name() string
func (*DefaultRole) Parents ¶
func (r *DefaultRole) Parents() []Role
func (*DefaultRole) Permissions ¶
func (r *DefaultRole) Permissions(children bool) []string
func (*DefaultRole) String ¶
func (r *DefaultRole) String() string
type RBAC ¶
type RBAC struct {
// contains filtered or unexported fields
}
func NewWithConfig ¶
func (*RBAC) CreateMissingRoles ¶
func (*RBAC) IsGrantedE ¶
func (*RBAC) SetCreateMissingRoles ¶
type Role ¶
type Role interface {
fmt.Stringer
Name() string
AddPermissions(permission string, rest ...string)
HasPermission(permission string) bool
Permissions(children bool) []string
AddParent(Role) error
Parents() []Role
AddChild(Role) error
Children() []Role
HasAncestor(role Role) bool
HasDescendant(role Role) bool
}
type RoleConfig ¶
Click to show internal directories.
Click to hide internal directories.