Class: Casbin::SyncedEnforcer
- Inherits:
-
Enforcer
- Object
- CoreEnforcer
- InternalEnforcer
- ManagementEnforcer
- Enforcer
- Casbin::SyncedEnforcer
- Defined in:
- lib/casbin-ruby/synced_enforcer.rb
Overview
SyncedEnforcer wraps Enforcer and provides synchronized access. It’s also a drop-in replacement for Enforcer
Instance Attribute Summary
Attributes inherited from CoreEnforcer
#adapter, #auto_build_role_links, #auto_save, #effector, #enabled, #model, #rm_map, #watcher
Instance Method Summary collapse
-
#auto_loading_running? ⇒ Boolean
check if SyncedEnforcer is auto loading policies.
- #build_incremental_role_links(op, ptype, rules) ⇒ Object
-
#start_auto_load_policy(interval) ⇒ Object
starts a thread that will call load_policy every interval seconds.
-
#stop_auto_load_policy ⇒ Object
stops the thread started by start_auto_load_policy.
Methods inherited from Enforcer
#add_permission_for_user, #add_role_for_user, #add_role_for_user_in_domain, #delete_permission, #delete_permission_for_user, #delete_permissions_for_user, #delete_role, #delete_role_for_user, #delete_roles_for_user, #delete_roles_for_user_in_domain, #delete_user, #get_implicit_permissions_for_user, #get_implicit_roles_for_user, #get_implicit_users_for_permission, #get_permissions_for_user, #get_permissions_for_user_in_domain, #get_roles_for_user, #get_roles_for_user_in_domain, #get_users_for_role, #get_users_for_role_in_domain, #has_permission_for_user, #has_role_for_user
Methods inherited from ManagementEnforcer
#add_function, #add_grouping_policies, #add_grouping_policy, #add_named_grouping_policies, #add_named_grouping_policy, #add_named_policies, #add_named_policy, #add_policies, #add_policy, #get_all_actions, #get_all_named_actions, #get_all_named_objects, #get_all_named_roles, #get_all_named_subjects, #get_all_objects, #get_all_roles, #get_all_subjects, #get_filtered_grouping_policy, #get_filtered_named_grouping_policy, #get_filtered_named_policy, #get_filtered_policy, #get_grouping_policy, #get_named_grouping_policy, #get_named_policy, #get_policy, #has_grouping_policy, #has_named_grouping_policy, #has_named_policy, #has_policy, #parent_add_policies, #parent_add_policy, #parent_remove_filtered_policy, #parent_remove_policies, #parent_remove_policy, #parent_update_policies, #parent_update_policy, #remove_filtered_grouping_policy, #remove_filtered_named_grouping_policy, #remove_filtered_named_policy, #remove_filtered_policy, #remove_grouping_policies, #remove_grouping_policy, #remove_named_grouping_policies, #remove_named_grouping_policy, #remove_named_policies, #remove_named_policy, #remove_policies, #remove_policy, #update_named_policies, #update_named_policy, #update_policies, #update_policy
Methods inherited from CoreEnforcer
#add_named_domain_matching_func, #add_named_matching_func, #build_role_links, #clear_policy, #enable_auto_build_role_links, #enable_auto_save, #enable_enforce, #enforce, #enforce_ex, #filtered?, #init_with_adapter, #init_with_file, #init_with_model_and_adapter, #initialize, #load_filtered_policy, #load_increment_filtered_policy, #load_model, #load_policy, #new_model, new_model, #role_manager, #role_manager=, #save_policy
Constructor Details
This class inherits a constructor from Casbin::CoreEnforcer
Instance Method Details
#auto_loading_running? ⇒ Boolean
check if SyncedEnforcer is auto loading policies
10 11 12 |
# File 'lib/casbin-ruby/synced_enforcer.rb', line 10 def auto_loading_running? ThreadLock.lock? end |
#build_incremental_role_links(op, ptype, rules) ⇒ Object
26 27 28 |
# 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) ⇒ Object
starts a thread that will call load_policy every interval seconds
15 16 17 18 19 |
# 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 ⇒ Object
stops the thread started by start_auto_load_policy
22 23 24 |
# File 'lib/casbin-ruby/synced_enforcer.rb', line 22 def stop_auto_load_policy ThreadLock.thread.exit if auto_loading_running? end |