class Para::Acl::Ability

Attributes

user[R]

Public Class Methods

new(user) click to toggle source
# File lib/para/acl/ability.rb, line 8
def initialize(user)
  @user = user

  can :access, :admin

  # Bypass all authorizations if disabled from configuration
  if Para::Acl.bypass_admin_authorization
    return can :manage, :all
  end

  process_authorizations
end

Private Instance Methods

process_authorizations() click to toggle source
# File lib/para/acl/ability.rb, line 23
def process_authorizations
  return unless role

  can :manage, :all

  role.role_components.each do |role_component|
    unless role_component.allow?
      cannot :manage, Para::Component::Base, id: role_component.component_id
    end
  end
end
role() click to toggle source
# File lib/para/acl/ability.rb, line 35
def role
  @role ||= Para::Acl::Role.joins(:user_roles).where(
    para_acl_user_roles: {
      user_id: user.id,
      user_type: user.class.name
    }
  ).includes(:role_components).first
end