Documentation ¶
Index ¶
- Constants
- func Access2HttpMethod(access AccessType) string
- func Check(accessMask AccessType, accessType AccessType) bool
- func HttpContentInQuery(accessType AccessType) bool
- type Access
- type AccessBase
- type AccessControl
- type AccessControlBase
- func (a *AccessControlBase) CheckAccess(ctx op_context.Context, resource Resource, subject Subject, ...) (bool, error)
- func (a *AccessControlBase) DefaultAccess() Access
- func (a *AccessControlBase) Init(acl Acl, resourceManager ResourceManager, defaultAccess ...Access)
- func (a *AccessControlBase) SetDefaultAccess(access Access)
- type AccessType
- type Acl
- type Operation
- type Resource
- type ResourceBase
- type ResourceManager
- type Role
- type RoleBase
- type Rule
- type Subject
Constants ¶
View Source
const ( Read AccessType = 0x1 Create AccessType = 0x2 UpdateReplace AccessType = 0x4 UpdatePartial AccessType = 0x8 Update AccessType = UpdateReplace | UpdatePartial Delete AccessType = 0x10 Post = Create Get = Read Put = UpdateReplace Patch = UpdatePartial All AccessType = 0xFFFFFFFF )
Variables ¶
This section is empty.
Functions ¶
func Access2HttpMethod ¶
func Access2HttpMethod(access AccessType) string
func Check ¶
func Check(accessMask AccessType, accessType AccessType) bool
func HttpContentInQuery ¶
func HttpContentInQuery(accessType AccessType) bool
Types ¶
type Access ¶
type Access interface { Grant(accessType AccessType) Revoke(accessType AccessType) Check(accessType AccessType) bool Mask() uint32 }
type AccessBase ¶
type AccessBase struct {
// contains filtered or unexported fields
}
func NewAccess ¶
func NewAccess(mask uint32) AccessBase
func (*AccessBase) Check ¶
func (a *AccessBase) Check(accessType AccessType) bool
func (*AccessBase) Grant ¶
func (a *AccessBase) Grant(accessType AccessType)
func (*AccessBase) Mask ¶
func (a *AccessBase) Mask() uint32
func (*AccessBase) Revoke ¶
func (a *AccessBase) Revoke(accessType AccessType)
type AccessControl ¶
type AccessControl interface { CheckAccess(ctx op_context.Context, resource Resource, subject Subject, accessType AccessType) bool DefaultAccess() Access SetDefaultAccess(Access) }
Interface for access controllers.
type AccessControlBase ¶
type AccessControlBase struct {
// contains filtered or unexported fields
}
Base implementation of access controller.
func NewAccessControl ¶
func NewAccessControl(acl Acl, resourceManager ResourceManager, defaultAccess ...Access) *AccessControlBase
func (*AccessControlBase) CheckAccess ¶
func (a *AccessControlBase) CheckAccess(ctx op_context.Context, resource Resource, subject Subject, accessType AccessType) (bool, error)
func (*AccessControlBase) DefaultAccess ¶
func (a *AccessControlBase) DefaultAccess() Access
func (*AccessControlBase) Init ¶
func (a *AccessControlBase) Init(acl Acl, resourceManager ResourceManager, defaultAccess ...Access)
func (*AccessControlBase) SetDefaultAccess ¶
func (a *AccessControlBase) SetDefaultAccess(access Access)
type AccessType ¶
type AccessType uint32
func HttpMethod2Access ¶
func HttpMethod2Access(method string) AccessType
type Resource ¶
type Resource interface { common.WithNameAndPath IsOwner(subject Subject) bool OwnerAccess() Access }
type ResourceBase ¶
type ResourceBase struct {
common.WithNameAndPathBase
}
type ResourceManager ¶
type ResourceManager interface { FindResource(ctx op_context.Context, path string) (Resource, error) ResourceTags(ctx op_context.Context, path string) ([]string, error) }
type RoleBase ¶
type RoleBase struct {
common.WithNameBase
}
Click to show internal directories.
Click to hide internal directories.