Module: Monarchy::ActsAsUser::InstanceMethods

Defined in:
lib/monarchy/acts_as_user.rb

Instance Method Summary collapse

Instance Method Details

#grant(*role_names, resource) ⇒ Object



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

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

#member_for(resource) ⇒ Object



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

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

#revoke_access(resource, hierarchies = nil) ⇒ Object



49
50
51
52
53
# File 'lib/monarchy/acts_as_user.rb', line 49

def revoke_access(resource, hierarchies = nil)
  Monarchy::Validators.resource(resource)
  hierarchies ||= resource.hierarchy.self_and_descendants
  members_for(hierarchies).delete_all
end

#revoke_role(role_name, resource) ⇒ Object



55
56
57
# File 'lib/monarchy/acts_as_user.rb', line 55

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

#revoke_role!(role_name, resource) ⇒ Object



59
60
61
# File 'lib/monarchy/acts_as_user.rb', line 59

def revoke_role!(role_name, resource)
  revoking_role(role_name, resource, Monarchy.configuration.revoke_strategy)
end

#roles_for(resource, inheritance = true) ⇒ Object



33
34
35
36
# File 'lib/monarchy/acts_as_user.rb', line 33

def roles_for(resource, inheritance = true)
  Monarchy::Validators.resource(resource, false, false)
  accessible_roles_for(resource, inheritance)
end