module Authorizable::PermissionUtilities

Constants

ACCESS
ACCESS_PROC
DEFAULT_ACCESS
DEFAULT_ROLE
DESCRIPTION
KIND
OBJECT
VISIBILITY_PROC

Public Class Methods

description_for(permission) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 47
def self.description_for(permission)
  result = permission_data_helper(permission.to_sym, DESCRIPTION)

  if result.blank?
    result = permission.to_s.humanize
  end

  result
end
has_key?(permission) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 62
def self.has_key?(permission)
  permissions[permission.to_sym].present?
end
has_procs?(permission) click to toggle source

returns procs or false

# File lib/authorizable/permission_utilities.rb, line 28
def self.has_procs?(permission)
  permission_data_helper(permission, ACCESS_PROC)
end
has_visibility_procs?(permission) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 32
def self.has_visibility_procs?(permission)
  permission_data_helper(permission, VISIBILITY_PROC)
end
is_access?(permission) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 66
def self.is_access?(permission)
  permissions[permission][KIND] == ACCESS
end
is_object?(permission) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 70
def self.is_object?(permission)
  permissions[permission][KIND] == OBJECT
end
permissions() click to toggle source
# File lib/authorizable/permission_utilities.rb, line 15
def self.permissions
  Authorizable::Permissions.definitions
end
set_for_role(role) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 19
def self.set_for_role(role)
  permissions.inject({}) { |h,(k, v)|
    value = v[DEFAULT_ACCESS]
    h[k.to_sym] = value.is_a?(Array) ? value[role] : value
    h
  }
end
should_render?(permission, *args) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 36
def self.should_render?(permission, *args)
  result = true
  proc = self.has_visibility_procs?(permission)

  if proc
    result = proc.call(*args)
  end

  result
end
value_for(permission, role = DEFAULT_ROLE) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 57
def self.value_for(permission, role = DEFAULT_ROLE)
  value = permissions[permission.to_sym][DEFAULT_ACCESS]
  value.is_a?(Array) ? value[role] : value
end

Private Class Methods

permission_data_helper(permission, position) click to toggle source
# File lib/authorizable/permission_utilities.rb, line 76
def self.permission_data_helper(permission, position)
  result = false
  data = permissions[permission]

  if data && data.length >= (position + 1)
    result = data[position]
  end

  result
end