module AccessChecker::Base::ClassMethods

############################################################################# @example

class Role < ActiveRecord::Base
  acts_as_authorization_role
end

@see AccessChecker::ModelExtensions::Subject#has_role! @see AccessChecker::ModelExtensions::Subject#has_role? @see AccessChecker::ModelExtensions::Subject#has_no_role! #############################################################################

Public Instance Methods

acts_as_authorization_role(options = {}) click to toggle source
# File lib/access_checker/base.rb, line 43
def acts_as_authorization_role(options = {})

  assoc      = options[:association_name]    || AccessChecker::configurator[:default_users_collection_name]
  subject    = options[:subject_class_name]  || AccessChecker::configurator[:default_subject_class_name]
  join_table = options[:join_table_name]     || AccessChecker::configurator[:default_join_table_name]

  has_and_belongs_to_many    assoc, :class_name => subject, :join_table => join_table

  cattr_accessor :_auth_role_class_name, :_auth_subject_class_name, :_auth_role_assoc_name

  self._auth_role_class_name    = self.to_s
  self._auth_subject_class_name = subject
  self._auth_role_assoc_name    = assoc

  scope :named_role, lambda { |role_name| where(["name = ?", role_name.to_s]) }

end
acts_as_authorization_subject(options = {}) click to toggle source

acts_as_authorization_subject – designates model to be user subject


# File lib/access_checker/base.rb, line 24
def acts_as_authorization_subject(options = {})

  assoc      = options[:association_name] || AccessChecker::configurator[:default_roles_collection_name]
  role       = options[:role_class_name]  || AccessChecker::configurator[:default_role_class_name]
  join_table = options[:join_table_name]  || AccessChecker::configurator[:default_join_table_name]

  has_and_belongs_to_many    assoc, :class_name => role, :join_table => join_table

  cattr_accessor :_auth_role_class_name, :_auth_subject_class_name, :_auth_role_assoc_name

  self._auth_role_class_name    = role
  self._auth_subject_class_name = self.to_s
  self._auth_role_assoc_name    = assoc

  include AccessChecker::SubjectExtensions

end