Versions in this module Expand all Collapse all v1 v1.0.1 Jul 17, 2019 v1.0.0 Jul 10, 2019 Changes in this version + type Authorizer struct + RuleProvider RuleProvider + Service *Service + func (a *Authorizer) Authorize(r *http.Request) (bool, error) + func (a *Authorizer) RolesFromRequest(r *http.Request) (*Roles, error) + type Provider interface + Roles func(uid string) (*Roles, error) + type Role struct + Data map[string][]string + Name string + func New(name string) *Role + func (r *Role) AddData(field string, data ...string) + func (r *Role) Execute(roles ...*Role) (bool, error) + type Roles []*Role + func NewRoles(rolenames ...string) *Roles + func (rules *Roles) Add(r *Role) *Roles + func (rules *Roles) Execute(roles ...*Role) (bool, error) + func (rules *Roles) Rule(*http.Request) (Rule, error) + type Rule interface + Execute func(roles ...*Role) (bool, error) + type RuleAnd struct + Rules []Rule + func And(c ...Rule) *RuleAnd + func (c *RuleAnd) Execute(roles ...*Role) (bool, error) + type RuleNot struct + Rule Rule + func Not(c Rule) *RuleNot + func (c *RuleNot) Execute(roles ...*Role) (bool, error) + type RuleOr struct + Rules []Rule + func Or(c ...Rule) *RuleOr + func (c *RuleOr) Execute(roles ...*Role) (bool, error) + type RuleProvider interface + Rule func(*http.Request) (Rule, error) + type RuleSet struct + Rule Rule + func NewRuleSet(Rule Rule) *RuleSet + func (ruleset *RuleSet) And(c ...Rule) *RuleSet + func (ruleset *RuleSet) Execute(roles ...*Role) (bool, error) + func (ruleset *RuleSet) Not() *RuleSet + func (ruleset *RuleSet) Or(c ...Rule) *RuleSet + type Service struct + Identifier user.Identifier + RoleProvider Provider + func NewService(RoleProvider Provider, Identifier user.Identifier) *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)