@@ -2,15 +2,16 @@ package system
2
2
3
3
import (
4
4
"errors"
5
+ "strconv"
6
+ "sync"
7
+
5
8
"github.com/casbin/casbin/v2"
6
9
"github.com/casbin/casbin/v2/model"
7
10
gormadapter "github.com/casbin/gorm-adapter/v3"
8
- "github.com/flipped-aurora/gin-vue-admin/server/global"
9
- "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
10
11
_ "github.com/go-sql-driver/mysql"
11
12
"go.uber.org/zap"
12
- "strconv "
13
- "sync "
13
+ "github.com/flipped-aurora/gin-vue-admin/server/global "
14
+ "github.com/flipped-aurora/gin-vue-admin/server/model/system/request "
14
15
)
15
16
16
17
//@author: [piexlmax](https://github.com/piexlmax)
@@ -98,17 +99,13 @@ func (casbinService *CasbinService) ClearCasbin(v int, p ...string) bool {
98
99
//@return: *casbin.Enforcer
99
100
100
101
var (
101
- cachedEnforcer * casbin.CachedEnforcer
102
+ syncedCachedEnforcer * casbin.SyncedCachedEnforcer
102
103
once sync.Once
103
104
)
104
105
105
- func (casbinService * CasbinService ) Casbin () * casbin.CachedEnforcer {
106
+ func (casbinService * CasbinService ) Casbin () * casbin.SyncedCachedEnforcer {
106
107
once .Do (func () {
107
- a , err := gormadapter .NewAdapterByDB (global .GVA_DB )
108
- if err != nil {
109
- zap .L ().Error ("适配数据库失败请检查casbin表是否为InnoDB引擎!" , zap .Error (err ))
110
- return
111
- }
108
+ a , _ := gormadapter .NewAdapterByDB (global .GVA_DB )
112
109
text := `
113
110
[request_definition]
114
111
r = sub, obj, act
@@ -130,9 +127,10 @@ func (casbinService *CasbinService) Casbin() *casbin.CachedEnforcer {
130
127
zap .L ().Error ("字符串加载模型失败!" , zap .Error (err ))
131
128
return
132
129
}
133
- cachedEnforcer , _ = casbin .NewCachedEnforcer (m , a )
134
- cachedEnforcer .SetExpireTime (60 * 60 )
135
- _ = cachedEnforcer .LoadPolicy ()
130
+
131
+ syncedCachedEnforcer , _ = casbin .NewSyncedCachedEnforcer (m , a )
132
+ syncedCachedEnforcer .SetExpireTime (3600 )
133
+ _ = syncedCachedEnforcer .LoadPolicy ()
136
134
})
137
- return cachedEnforcer
135
+ return syncedCachedEnforcer
138
136
}
0 commit comments