Documentation ¶
Index ¶
- Variables
- type PermContext
- type PermOwner
- type PermTree
- type Permission
- func (p *Permission) Copy() *Permission
- func (p *Permission) HasPermission(perm *Permission) bool
- func (p *Permission) IsEqual(perm *Permission) bool
- func (p *Permission) MarshalJSON() ([]byte, error)
- func (p *Permission) String() string
- func (p *Permission) UnmarshalJSON(bytes []byte) error
- func (p *Permission) WithSubPerm(perm *Permission) *Permission
- func (p *Permission) WithSubPermStr(perm string) *Permission
- type PermissionRepository
- type PermissionService
- type PermissionSet
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrPermissionDenied = _eg.CreateError(0, "permission denied") ErrPermissionNotFound = _eg.CreateError(1, "permission not found") ErrPermissionAlreadyExists = _eg.CreateError(2, "permission already exists") )
Functions ¶
This section is empty.
Types ¶
type PermContext ¶
type PermContext struct { Owner PermOwner // contains filtered or unexported fields }
func NewPermContext ¶
func NewPermContext(owner PermOwner, srv PermissionService) PermContext
func (*PermContext) HasPermission ¶
func (c *PermContext) HasPermission(perm *Permission) bool
func (*PermContext) HasPermissionStr ¶
func (c *PermContext) HasPermissionStr(perm string) bool
func (*PermContext) ListPermissions ¶
func (c *PermContext) ListPermissions() PermissionSet
type PermTree ¶
func BuildTreeFromSet ¶
func BuildTreeFromSet(ps PermissionSet) PermTree
type Permission ¶
type Permission struct { Name string `json:",ommitempty"` SubPermission *Permission `json:",ommitempty"` }
func MustParsePermission ¶
func MustParsePermission(name string) *Permission
func NewPermission ¶
func NewPermission(perms []string) *Permission
func ParsePermission ¶
func ParsePermission(name string) (*Permission, error)
func (*Permission) Copy ¶
func (p *Permission) Copy() *Permission
func (*Permission) HasPermission ¶
func (p *Permission) HasPermission(perm *Permission) bool
func (*Permission) IsEqual ¶
func (p *Permission) IsEqual(perm *Permission) bool
func (*Permission) MarshalJSON ¶
func (p *Permission) MarshalJSON() ([]byte, error)
func (*Permission) String ¶
func (p *Permission) String() string
func (*Permission) UnmarshalJSON ¶
func (p *Permission) UnmarshalJSON(bytes []byte) error
func (*Permission) WithSubPerm ¶
func (p *Permission) WithSubPerm(perm *Permission) *Permission
WithSubPerm returns a new permission with sub permission
func (*Permission) WithSubPermStr ¶
func (p *Permission) WithSubPermStr(perm string) *Permission
WithSubPermStr returns a new permission with sub permission - perm must be a valid permission string
type PermissionRepository ¶
type PermissionRepository interface { scene.Repository //GetOwners() []PermOwner GetPermissions(owner string) []*Permission AddPermission(owner string, perm string) (*Permission, error) RemovePermission(owner string, perm string) error }
type PermissionService ¶
type PermissionService interface { scene.Service HasPermission(owner string, perm *Permission) bool HasPermissionStr(owner string, perm string) bool //ListOwners() []string ListPermissions(owner string) PermissionSet AddPermission(owner string, perm string) error RemovePermission(owner string, perm string) error }
type PermissionSet ¶
type PermissionSet []*Permission
func (PermissionSet) Cleanup ¶
func (ps PermissionSet) Cleanup() PermissionSet
Cleanup cleans up the permission set - if permission set already have a top level permission, then remove all sub permissions
func (PermissionSet) HasPermission ¶
func (ps PermissionSet) HasPermission(perm *Permission) bool
func (PermissionSet) HasPermissionStr ¶
func (ps PermissionSet) HasPermissionStr(perm string) bool
func (PermissionSet) Merge ¶
func (ps PermissionSet) Merge(other PermissionSet) PermissionSet
Merge merges two permission set
func (PermissionSet) ToStrSlice ¶
func (ps PermissionSet) ToStrSlice() []string
Click to show internal directories.
Click to hide internal directories.