Module: Monarchy::ActsAsUser::InstanceMethods

Defined in:
lib/monarchy/acts_as_user.rb

Instance Method Summary collapse

Instance Method Details

#grant(role_name, resource) ⇒ Object



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

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

#member_for(resource) ⇒ Object



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

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

#revoke_access(resource, hierarchy_ids = nil) ⇒ Object



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

def revoke_access(resource, hierarchy_ids = nil)
  hierarchy_ids ||= resource.hierarchy.self_and_descendant_ids
  members_for(hierarchy_ids).delete_all
end

#revoke_role(role_name, resource) ⇒ Object



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

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

#revoke_role!(role_name, resource) ⇒ Object



45
46
47
# File 'lib/monarchy/acts_as_user.rb', line 45

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

#roles_for(resource, inheritence = true) ⇒ Object



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

def roles_for(resource, inheritence = true)
  return Monarchy.role_class.none unless resource.hierarchy
  accessible_roles_for(resource, inheritence)
end