class Casbin::SyncedEnforcer
SyncedEnforcer
wraps Enforcer
and provides synchronized access. It's also a drop-in replacement for Enforcer
Public Instance Methods
auto_loading_running?()
click to toggle source
check if SyncedEnforcer
is auto loading policies
# File lib/casbin-ruby/synced_enforcer.rb, line 10 def auto_loading_running? ThreadLock.lock? end
build_incremental_role_links(op, ptype, rules)
click to toggle source
# File lib/casbin-ruby/synced_enforcer.rb, line 26 def build_incremental_role_links(op, ptype, rules) model.build_incremental_role_links(role_manager, op, 'g', ptype, rules) end
start_auto_load_policy(interval)
click to toggle source
starts a thread that will call load_policy every interval seconds
# File lib/casbin-ruby/synced_enforcer.rb, line 15 def start_auto_load_policy(interval) return if auto_loading_running? ThreadLock.thread = Thread.new { auto_load_policy(interval) } end
stop_auto_load_policy()
click to toggle source
stops the thread started by start_auto_load_policy
# File lib/casbin-ruby/synced_enforcer.rb, line 22 def stop_auto_load_policy ThreadLock.thread.exit if auto_loading_running? end
Private Instance Methods
auto_load_policy(interval)
click to toggle source
# File lib/casbin-ruby/synced_enforcer.rb, line 32 def auto_load_policy(interval) while auto_loading_running? sleep(interval) load_policy end end