Documentation ¶
Index ¶
- type Authorizer
- type Provider
- type Role
- type Roles
- type Rule
- type RuleAnd
- type RuleNot
- type RuleOr
- type RuleProvider
- type RuleSet
- type Service
- func (s *Service) AuthorizeMiddleware(rs RuleProvider, unauthorizedAction http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func (s *Service) Authorizer(rs RuleProvider) *Authorizer
- func (s *Service) RolesAuthorizeOrForbiddenMiddleware(ruleNames ...string) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Authorizer ¶
type Authorizer struct { Service *Service RuleProvider RuleProvider }
Authorizer role service authorizer
func (*Authorizer) Authorize ¶
func (a *Authorizer) Authorize(r *http.Request) (bool, error)
Authorize authorized with requestWW
func (*Authorizer) RolesFromRequest ¶
func (a *Authorizer) RolesFromRequest(r *http.Request) (*Roles, error)
RolesFromRequest get roles from request
type Provider ¶
type Provider interface { //Roles get roles by user id. //Return user roles and any error if raised. Roles(uid string) (*Roles, error) }
Provider roles provider interface
type Role ¶
Role user role main struct
type Roles ¶
type Roles []*Role
Roles type role list
func NewRoles ¶
NewRoles create new roles with given rolesnames. You can't use this method to create roles with data.
type RuleProvider ¶
type RuleProvider interface { //Rule get rule from http request. //Return rule and any error if raised. Rule(*http.Request) (Rule, error) }
RuleProvider rule provider interface
type RuleSet ¶
type RuleSet struct {
Rule Rule
}
RuleSet a set of rule
type Service ¶
type Service struct { RoleProvider Provider Identifier user.Identifier }
Service role authorize service
func NewService ¶
func NewService(RoleProvider Provider, Identifier user.Identifier) *Service
NewService create new role authorize service with role provider and user Identifier.
func (*Service) AuthorizeMiddleware ¶
func (s *Service) AuthorizeMiddleware(rs RuleProvider, unauthorizedAction http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
AuthorizeMiddleware middleware which authorize http request. If authorize fail,unauthorizedAction will be executed.
func (*Service) Authorizer ¶
func (s *Service) Authorizer(rs RuleProvider) *Authorizer
Authorizer create authorizer with given rule provider
func (*Service) RolesAuthorizeOrForbiddenMiddleware ¶
func (s *Service) RolesAuthorizeOrForbiddenMiddleware(ruleNames ...string) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
RolesAuthorizeOrForbiddenMiddleware middleware which authorize http request. If authorize fail,http error forbidden will be executed.