Class: LcpRuby::Groups::ChangeHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/groups/change_handler.rb

Class Method Summary collapse

Class Method Details

.install!(group_class, membership_class, mapping_class = nil) ⇒ Object

Installs after_commit callbacks on group-related models to invalidate caches.

Parameters:

  • group_class (Class)

    the group AR model

  • membership_class (Class)

    the group membership AR model

  • mapping_class (Class, nil) (defaults to: nil)

    the group role mapping AR model (optional)



8
9
10
11
12
13
14
15
# File 'lib/lcp_ruby/groups/change_handler.rb', line 8

def self.install!(group_class, membership_class, mapping_class = nil)
  [ group_class, membership_class, mapping_class ].compact.each do |model_class|
    model_class.after_commit do |_record|
      Registry.reload!
      Authorization::PolicyFactory.clear!
    end
  end
end