1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package inject
- import (
- "github.com/casbin/casbin"
- "github.com/facebookgo/inject"
- "../../pkg/setting"
- "../../service/bll"
- "runtime"
- )
- // Object 注入对象
- type Object struct {
- Common *bll.Common
- Enforcer *casbin.Enforcer
- }
- var Obj *Object
- // Init 初始化依赖注入
- func Init() {
- g := new(inject.Graph)
- // 注入casbin
- osType := runtime.GOOS
- var path string
- if osType == "windows" {
- path = setting.CurrentPath+"conf\\rbac_model.conf"
- } else if osType == "linux" {
- path = setting.CurrentPath+"conf/rbac_model.conf"
- }
- enforcer := casbin.NewEnforcer(path, false)
- _ = g.Provide(&inject.Object{Value: enforcer})
- Common := new(bll.Common)
- _ = g.Provide(&inject.Object{Value: Common})
- if err := g.Populate(); err != nil {
- panic("初始化依赖注入发生错误:" + err.Error())
- }
- Obj = &Object{
- Enforcer: enforcer,
- Common: Common,
- }
- return
- }
- //var instance *Object
- //var once sync.Once
- //
- //func GetInstance() *Object {
- // once.Do(func() {
- // instance = Init()
- // })
- // return instance
- //}
- // 加载casbin策略数据,包括角色权限数据、用户角色数据
- func LoadCasbinPolicyData() error {
- c := Obj.Common
- err := c.RoleAPI.LoadAllPolicy()
- if err != nil {
- return err
- }
- err = c.UserAPI.LoadAllPolicy()
- if err != nil {
- return err
- }
- return nil
- }
|