Module: Monarchy::ActsAsUser::InstanceMethods

Defined in:
lib/monarchy/acts_as_user.rb

Instance Method Summary collapse

Instance Method Details

#grant(role_name, resource) ⇒ Object



25
26
27
28
29
# File 'lib/monarchy/acts_as_user.rb', line 25

def grant(role_name, resource)
  ActiveRecord::Base.transaction do
    grant_or_create_member(role_name, resource)
  end
end

#member_for(resource) ⇒ Object



21
22
23
# File 'lib/monarchy/acts_as_user.rb', line 21

def member_for(resource)
  resource.hierarchy.members.where(monarchy_members: { user_id: id }).first
end

#revoke_access(resource) ⇒ Object



31
32
33
34
# File 'lib/monarchy/acts_as_user.rb', line 31

def revoke_access(resource)
  self_and_descendant_ids = resource.hierarchy.self_and_descendant_ids
  members_for(self_and_descendant_ids).destroy_all
end

#revoke_role(role_name, resource) ⇒ Object



36
37
38
# File 'lib/monarchy/acts_as_user.rb', line 36

def revoke_role(role_name, resource)
  revoking_role(role_name, resource)
end

#revoke_role!(role_name, resource) ⇒ Object



40
41
42
# File 'lib/monarchy/acts_as_user.rb', line 40

def revoke_role!(role_name, resource)
  revoking_role(role_name, resource, true)
end

#roles_for(resource, inheritence = true) ⇒ Object



16
17
18
19
# File 'lib/monarchy/acts_as_user.rb', line 16

def roles_for(resource, inheritence = true)
  return [] unless resource.hierarchy
  accessible_roles_for(resource, inheritence).group_by(&:level).values.first || []
end