Method: Rolify::Role#has_role?

Defined in:
lib/rolify/role.rb

#has_role?(role_name, resource = nil) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rolify/role.rb', line 25

def has_role?(role_name, resource = nil)
  return has_strict_role?(role_name, resource) if self.class.strict_rolify and resource and resource != :any

  if new_record?
    role_array = self.roles.detect { |r|
      r.name.to_s == role_name.to_s &&
        (r.resource == resource ||
         resource.nil? ||
         (resource == :any && r.resource.present?))
    }
  else
    role_array = self.class.adapter.where(self.roles, name: role_name, resource: resource)
  end

  return false if role_array.nil?
  role_array != []
end