Documentation ¶
Index ¶
- Variables
- func GetUrlPermission(fullPath string, method string) (string, string, error)
- func HasPermissionUser(userId string, resource string, act string) (bool, error)
- func InitCasbinAuth(role CasbinRoleManager, per CasbinPermissionManager) error
- func JwtGenerateToken(user *UserClaim) (string, error)
- func NewCasbinAuth(role CasbinRoleManager, per CasbinPermissionManager) (*casbin.Enforcer, error)
- func RefreshPolicy() error
- func RegisteHandler(engine *gin.Engine)
- func WithNoPermission(url string, method string, handler gin.HandlerFunc)
- type CasbinPermissionManager
- type CasbinRoleManager
- type CasbinRolePermission
- type CasbinUserPermission
- type CasbinUserRole
- type Controller
- type LocalCasbinAdapter
- func (a *LocalCasbinAdapter) AddPolicy(sec string, ptype string, rule []string) error
- func (a *LocalCasbinAdapter) LoadPolicy(model model.Model) error
- func (a *LocalCasbinAdapter) RemoveFilteredPolicy(sec string, ptype string, fieldIndex int, fieldValues ...string) error
- func (a *LocalCasbinAdapter) RemovePolicy(sec string, ptype string, rule []string) error
- func (a *LocalCasbinAdapter) SavePolicy(model model.Model) error
- type RestfulEndPoint
- func (r *RestfulEndPoint) WithActEndPoint(action string, url string, handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithAddEndPoint(handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithDeleteEndPoint(handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithEndPoint(action string, url string, method string, handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithListEndPoint(handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithQueryEndPoint(handler gin.HandlerFunc)
- func (r *RestfulEndPoint) WithUpdateEndPoint(handler gin.HandlerFunc)
- type UserClaim
Constants ¶
This section is empty.
Variables ¶
View Source
var ActionAdd = "add"
predefine permission action
View Source
var ActionDelete = "delete"
View Source
var ActionList = "list"
View Source
var ActionQuery = "query"
View Source
var ActionUpdate = "update"
View Source
var ErrLoadCasbinPolicy = errors.New("load casbin policy err")
View Source
var ErrNotFoundPermission = errors.New("cannot find url's permission")
errors
View Source
var ErrNotInitCasbinAuth = errors.New("not init defaultCasbinAuth")
View Source
var ErrParsePermission = errors.New("parse permission err")
View Source
var ErrParseWrongClaim = errors.New("not find target claims.")
errors
View Source
var ErrTokenHasBeenExpired = errors.New("token has been expired.")
View Source
var ErrTokenInvalid = errors.New("token is not valid.")
View Source
var ErrTokenNotValidYet = errors.New("token is not valid yet.")
Functions ¶
func GetUrlPermission ¶
get url permission's resource and action(the resource act of db recordId)
func HasPermissionUser ¶
func InitCasbinAuth ¶
func InitCasbinAuth(role CasbinRoleManager, per CasbinPermissionManager) error
func JwtGenerateToken ¶
func NewCasbinAuth ¶
func NewCasbinAuth(role CasbinRoleManager, per CasbinPermissionManager) (*casbin.Enforcer, error)
func RefreshPolicy ¶
func RefreshPolicy() error
func RegisteHandler ¶
func WithNoPermission ¶
func WithNoPermission(url string, method string, handler gin.HandlerFunc)
Types ¶
type CasbinPermissionManager ¶
type CasbinPermissionManager interface {
ListPermissionOfUsers() ([]*CasbinUserPermission, error)
}
type CasbinRoleManager ¶
type CasbinRoleManager interface { ListRoleOfUsers() ([]*CasbinUserRole, error) ListPermissionOfRoles() ([]*CasbinRolePermission, error) }
type CasbinRolePermission ¶
type CasbinUserPermission ¶
type CasbinUserRole ¶
type Controller ¶
type Controller struct { Handler gin.HandlerFunc Action string // permission Url string // relative path Method string // http method }
type LocalCasbinAdapter ¶
type LocalCasbinAdapter struct {
// contains filtered or unexported fields
}
func NewLocalCasbinAdaper ¶
func NewLocalCasbinAdaper(role CasbinRoleManager, per CasbinPermissionManager) *LocalCasbinAdapter
func (*LocalCasbinAdapter) AddPolicy ¶
func (a *LocalCasbinAdapter) AddPolicy(sec string, ptype string, rule []string) error
AddPolicy adds a policy rule to the storage. This is part of the Auto-Save feature.
func (*LocalCasbinAdapter) LoadPolicy ¶
func (a *LocalCasbinAdapter) LoadPolicy(model model.Model) error
func (*LocalCasbinAdapter) RemoveFilteredPolicy ¶
func (a *LocalCasbinAdapter) RemoveFilteredPolicy(sec string, ptype string, fieldIndex int, fieldValues ...string) error
RemoveFilteredPolicy removes policy rules that match the filter from the storage. This is part of the Auto-Save feature.
func (*LocalCasbinAdapter) RemovePolicy ¶
func (a *LocalCasbinAdapter) RemovePolicy(sec string, ptype string, rule []string) error
RemovePolicy removes a policy rule from the storage. This is part of the Auto-Save feature.
func (*LocalCasbinAdapter) SavePolicy ¶
func (a *LocalCasbinAdapter) SavePolicy(model model.Model) error
donot save policy, it save by biz
type RestfulEndPoint ¶
type RestfulEndPoint struct { Resource string Controllers []*Controller }
func WithResource ¶
func WithResource(resource string) *RestfulEndPoint
func (*RestfulEndPoint) WithActEndPoint ¶
func (r *RestfulEndPoint) WithActEndPoint(action string, url string, handler gin.HandlerFunc)
if url with / prefix, it will register the /resource+utl path
func (*RestfulEndPoint) WithAddEndPoint ¶
func (r *RestfulEndPoint) WithAddEndPoint(handler gin.HandlerFunc)
func (*RestfulEndPoint) WithDeleteEndPoint ¶
func (r *RestfulEndPoint) WithDeleteEndPoint(handler gin.HandlerFunc)
func (*RestfulEndPoint) WithEndPoint ¶
func (r *RestfulEndPoint) WithEndPoint(action string, url string, method string, handler gin.HandlerFunc)
if url with / prefix, it will register the /resource+utl path
func (*RestfulEndPoint) WithListEndPoint ¶
func (r *RestfulEndPoint) WithListEndPoint(handler gin.HandlerFunc)
add '/' suffix avoid match conflicts with /:id
func (*RestfulEndPoint) WithQueryEndPoint ¶
func (r *RestfulEndPoint) WithQueryEndPoint(handler gin.HandlerFunc)
func (*RestfulEndPoint) WithUpdateEndPoint ¶
func (r *RestfulEndPoint) WithUpdateEndPoint(handler gin.HandlerFunc)
Click to show internal directories.
Click to hide internal directories.