Skip to content

Commit adefcb3

Browse files
committed
feat: expose ClearCache method from Enforcer
1 parent cbeafe9 commit adefcb3

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed

enforcer.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,10 @@ func (e *Enforcer) SetEffector(eft effector.Effector) {
310310
e.eft = eft
311311
}
312312

313+
func (e *Enforcer) ClearCache() {
314+
e.invalidateMatcherMap()
315+
}
316+
313317
// ClearPolicy clears all policy.
314318
func (e *Enforcer) ClearPolicy() {
315319
e.invalidateMatcherMap()

enforcer_cached.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,17 @@ func GetCacheKey(params ...interface{}) (string, bool) {
173173
return key.String(), true
174174
}
175175

176+
func (e *CachedEnforcer) ClearCache() {
177+
if atomic.LoadInt32(&e.enableCache) != 0 {
178+
if err := e.cache.Clear(); err != nil {
179+
e.logger.LogError(err, "clear cache failed")
180+
return
181+
}
182+
}
183+
184+
e.Enforcer.ClearCache()
185+
}
186+
176187
// ClearPolicy clears all policy.
177188
func (e *CachedEnforcer) ClearPolicy() {
178189
if atomic.LoadInt32(&e.enableCache) != 0 {

enforcer_interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ type IEnforcer interface {
4141
GetRoleManager() rbac.RoleManager
4242
SetRoleManager(rm rbac.RoleManager)
4343
SetEffector(eft effector.Effector)
44+
ClearCache()
4445
ClearPolicy()
4546
LoadPolicy() error
4647
LoadFilteredPolicy(filter interface{}) error

enforcer_synced.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ func (e *SyncedEnforcer) LoadModel() error {
106106
return e.Enforcer.LoadModel()
107107
}
108108

109+
func (e *SyncedEnforcer) ClearCache() {
110+
e.m.Lock()
111+
defer e.m.Unlock()
112+
e.Enforcer.ClearCache()
113+
}
114+
109115
// ClearPolicy clears all policy.
110116
func (e *SyncedEnforcer) ClearPolicy() {
111117
e.m.Lock()

0 commit comments

Comments
 (0)