module Authorule::PermissionHolder::ClassMethods

Public Instance Methods

is_permission_holder!(options = {}) click to toggle source

Marks this class as a permission holder with the given options.

@option options [#to_sym] association_name (:permission_rules)

The name of the permission rules association.
# File lib/authorule/permission_holder.rb, line 26
      def is_permission_holder!(options = {})
        association_name = options[:association_name] || :permission_rules

        class_eval <<-RUBY, __FILE__, __LINE__+1
          has_many :#{association_name}

          def permission_rule_base(reload = false)
            @permission_rule_base = nil if reload
            @permission_rule_base ||= RuleBase.new(#{association_name}(true))
          end
        RUBY
      end