Module: Kibali::Base::ClassMethods

Defined in:
lib/kibali/base.rb

Overview

############################################################################# #############################################################################

Examples:

class Role < ActiveRecord::Base
  acts_as_authorization_role
end

See Also:

  • ModelExtensions::Subject#has_role!
  • ModelExtensions::Subject#has_role?
  • ModelExtensions::Subject#has_no_role!

Instance Method Summary collapse

Instance Method Details

#acts_as_authorization_role(options = {}) ⇒ Object





44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/kibali/base.rb', line 44

def acts_as_authorization_role(options = {})

  assoc      = options[:association_name]    || Kibali::config[:default_users_collection_name]
  subject    = options[:subject_class_name]  || Kibali::config[:default_subject_class_name]
  join_table = options[:join_table_name]     || Kibali::config[: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 = {}) ⇒ Object


acts_as_authorization_subject – designates model to be user subject




24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/kibali/base.rb', line 24

def acts_as_authorization_subject(options = {})

  assoc      = options[:association_name] || Kibali::config[:default_roles_collection_name]
  role       = options[:role_class_name]  || Kibali::config[:default_role_class_name]
  join_table = options[:join_table_name]  || Kibali::config[: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 Kibali::SubjectExtensions

end