module Papeel::ActsAsPapeelUser::LocalInstanceMethods

Public Instance Methods

has_role?(role_name, any: nil, on: nil, on_type: nil, on_id: nil) click to toggle source
# File lib/papeel/acts_as_papeel_user.rb, line 31
def has_role?(role_name, any: nil, on: nil, on_type: nil, on_id: nil)
  if on_type
    _roles = roles.named(role_name).where(resource_type: on_type)
    if on_id
      _roles = _roles.where(resource_id: on_id)
    end
    _roles.any?
  else
    if on
      roles.named(role_name).on(on).any?
    else
      if any == nil
        roles.named(role_name).where(resource_id: nil, resource_type: nil).any?
      elsif any == true
        roles.named(role_name).where.not(resource_id: nil, resource_type: nil).any?
      end
    end
  end
end