roles

package module
v0.0.0-...-11f08e4 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2017 License: MIT Imports: 3 Imported by: 2

Documentation

Index

Constants

View Source
const (
	Anyone = "*"
)

Variables

View Source
var ErrPermissionDenied = errors.New("Permission denied")

'ErrPermissionDenied' no permission error

Functions

func MatchedRoles

func MatchedRoles(req *http.Request, user interface{}) []string

'MatchedRoles' return defined roles from user

func Register

func Register(name string, fc func(request *http.Request, user interface{}) bool)

'Register' register role with conditions

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 New

func New() *Role

'New' initialize a new "Role"

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) Get

func (role *Role) Get(name string) (func(req *http.Request, currentUser interface{}) bool, bool)

'Get' get defnation

func (*Role) MatchedRoles

func (role *Role) MatchedRoles(req *http.Request, currentUser interface{}) (roles []string)

'MatchedRoles' return defined roles from user

func (*Role) Register

func (role *Role) Register(name string, fc func(req *http.Request, currentUser interface{}) bool)

'Register' register role with conditions

Jump to

Keyboard shortcuts

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