module Monarchy::ActsAsResource::SupportMethods
Attributes
acting_as_resource[R]
automatic_hierarchy[RW]
parentize_name[R]
Public Instance Methods
default_role()
click to toggle source
# File lib/monarchy/acts_as_resource.rb, line 32 def default_role Monarchy.role_class.find_by(name: default_role_name) end
default_role_name()
click to toggle source
# File lib/monarchy/acts_as_resource.rb, line 28 def default_role_name Monarchy.configuration.inherited_default_role end
Private Instance Methods
include_relationships()
click to toggle source
rubocop:enable all
# File lib/monarchy/acts_as_resource.rb, line 65 def include_relationships has_one :hierarchy, as: :resource, dependent: :destroy, class_name: "::#{Monarchy.hierarchy_class}" has_many :members, through: :hierarchy, class_name: "::#{Monarchy.member_class}" has_many :users, through: :members, class_name: "::#{Monarchy.user_class}" end
include_scopes()
click to toggle source
rubocop:disable all
# File lib/monarchy/acts_as_resource.rb, line 49 def include_scopes scope :in, (lambda do |resource, descendants = true| Monarchy::Validators.resource(resource) hierarchy = Monarchy.hierarchy_class.hierarchies_for(resource) hierarchies = Monarchy.hierarchy_class.in(hierarchy, descendants) joins(:hierarchy).where(monarchy_hierarchies: { id: hierarchies }) end) scope :accessible_for, (lambda do |user, options = {}| Monarchy::Validators.user(user) joins(:hierarchy).where(monarchy_hierarchies: { id: Monarchy.hierarchy_class .accessible_for(user, options) }) end) end
parent_as(name)
click to toggle source
# File lib/monarchy/acts_as_resource.rb, line 44 def parent_as(name) @parentize_name = name end
setup_acting()
click to toggle source
# File lib/monarchy/acts_as_resource.rb, line 38 def setup_acting Monarchy.resource_classes << self @acting_as_resource = true @automatic_hierarchy = true end