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