permission

package
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

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 PermOwner

type PermOwner string

func (PermOwner) String

func (p PermOwner) String() string

type PermTree

type PermTree map[string]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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL