fix casbin Context canceled
This commit is contained in:
parent
aae69b5e8f
commit
9052d2dac4
@ -11,8 +11,6 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
type cabinImpl struct{}
|
|
||||||
|
|
||||||
type adapterCasbin struct {
|
type adapterCasbin struct {
|
||||||
Enforcer *casbin.SyncedEnforcer
|
Enforcer *casbin.SyncedEnforcer
|
||||||
EnforcerErr error
|
EnforcerErr error
|
||||||
@ -20,7 +18,6 @@ type adapterCasbin struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
cb = cabinImpl{}
|
|
||||||
once sync.Once
|
once sync.Once
|
||||||
en *casbin.SyncedEnforcer
|
en *casbin.SyncedEnforcer
|
||||||
enErr error
|
enErr error
|
||||||
@ -28,20 +25,23 @@ var (
|
|||||||
|
|
||||||
// CasbinEnforcer 获取adapter单例对象
|
// CasbinEnforcer 获取adapter单例对象
|
||||||
func CasbinEnforcer(ctx context.Context) (enforcer *casbin.SyncedEnforcer, err error) {
|
func CasbinEnforcer(ctx context.Context) (enforcer *casbin.SyncedEnforcer, err error) {
|
||||||
ac := cb.newAdapter(ctx)
|
ac := newAdapter(ctx)
|
||||||
enforcer = ac.Enforcer
|
enforcer = ac.Enforcer
|
||||||
err = ac.EnforcerErr
|
err = ac.EnforcerErr
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化adapter操作
|
// 初始化adapter操作
|
||||||
func (s *cabinImpl) newAdapter(ctx context.Context) (a *adapterCasbin) {
|
func newAdapter(ctx context.Context) (a *adapterCasbin) {
|
||||||
a = new(adapterCasbin)
|
a = new(adapterCasbin)
|
||||||
|
a.ctx = ctx
|
||||||
once.Do(func() {
|
once.Do(func() {
|
||||||
en, enErr = initPolicy(ctx, a)
|
en, enErr = initPolicy(ctx, a)
|
||||||
})
|
})
|
||||||
|
if enErr == nil && en != nil {
|
||||||
|
en.SetAdapter(a)
|
||||||
|
}
|
||||||
a.Enforcer, a.EnforcerErr = en, enErr
|
a.Enforcer, a.EnforcerErr = en, enErr
|
||||||
a.ctx = ctx
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user