Documentation ¶
Index ¶
- Constants
- Variables
- func MatchedRoles(req *http.Request, user interface{}) []string
- func Register(name string, fc func(request *http.Request, user interface{}) bool)
- type Permission
- func (permission *Permission) Allow(mode PermissionMode, roles ...string) *Permission
- func (permission *Permission) Concat(newPermission *Permission) *Permission
- func (permission *Permission) Deny(mode PermissionMode, roles ...string) *Permission
- func (permission Permission) HasPermission(mode PermissionMode, roles ...string) bool
- type PermissionMode
- type Role
- func (role *Role) Allow(mode PermissionMode, roles ...string) *Permission
- func (role *Role) Deny(mode PermissionMode, roles ...string) *Permission
- func (role *Role) Get(name string) (func(req *http.Request, currentUser interface{}) bool, bool)
- func (role *Role) MatchedRoles(req *http.Request, currentUser interface{}) (roles []string)
- func (role *Role) Register(name string, fc func(req *http.Request, currentUser interface{}) bool)
Constants ¶
View Source
const (
Anyone = "*"
)
Variables ¶
View Source
var ErrPermissionDenied = errors.New("Permission denied")
'ErrPermissionDenied' no permission error
Functions ¶
func MatchedRoles ¶
'MatchedRoles' return defined roles from user
Types ¶
type Permission ¶
type Permission struct { Role *Role AllowedRoles map[PermissionMode][]string DeniedRoles map[PermissionMode][]string }
'Permission' a struct contails permission definitions
func Allow ¶
func Allow(mode PermissionMode, roles ...string) *Permission
'Allow' allows permission mode for roles
func Deny ¶
func Deny(mode PermissionMode, roles ...string) *Permission
'Deny' deny permission mode for roles
func NewPermission ¶
func NewPermission() *Permission
'NewPermission' initialize a nwe permission for defualt role
func (*Permission) Allow ¶
func (permission *Permission) Allow(mode PermissionMode, roles ...string) *Permission
'Allow' allows permission mode for roles
func (*Permission) Concat ¶
func (permission *Permission) Concat(newPermission *Permission) *Permission
'Concat' concat two permission into a new one
func (*Permission) Deny ¶
func (permission *Permission) Deny(mode PermissionMode, roles ...string) *Permission
'Deny' deny permission mode for roles
func (Permission) HasPermission ¶
func (permission Permission) HasPermission(mode PermissionMode, roles ...string) bool
'HasPermission' check roles has permission for mode or not
type PermissionMode ¶
type PermissionMode string
'PermissionMode' permission mode
const ( Create PermissionMode = "create" Read PermissionMode = "read" Update PermissionMode = "update" Delete PermissionMode = "delete" CRUD PermissionMode = "crud" )
type Role ¶
type Role struct {
// contains filtered or unexported fields
}
'Role' is a struct contains all roles definitions
func (*Role) Allow ¶
func (role *Role) Allow(mode PermissionMode, roles ...string) *Permission
'Allow' allows permission mode for roles
func (*Role) Deny ¶
func (role *Role) Deny(mode PermissionMode, roles ...string) *Permission
'Deny' deny permission mode for roles
func (*Role) MatchedRoles ¶
'MatchedRoles' return defined roles from user
Click to show internal directories.
Click to hide internal directories.