Module: Authorizable::PermissionUtilities

Defined in:
lib/authorizable/permission_utilities.rb

Constant Summary collapse

KIND =
0
DEFAULT_ACCESS =
1
DESCRIPTION =
2
VISIBILITY_PROC =
3
ACCESS_PROC =
4
OBJECT =
0
ACCESS =
1
DEFAULT_ROLE =
0

Class Method Summary collapse

Class Method Details

.description_for(permission) ⇒ Object



47
48
49
50
51
52
53
54
55
# 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) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/authorizable/permission_utilities.rb', line 62

def self.has_key?(permission)
  permissions[permission.to_sym].present?
end

.has_procs?(permission) ⇒ Boolean

returns procs or false

Returns:

  • (Boolean)


28
29
30
# File 'lib/authorizable/permission_utilities.rb', line 28

def self.has_procs?(permission)
  permission_data_helper(permission, ACCESS_PROC)
end

.has_visibility_procs?(permission) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/authorizable/permission_utilities.rb', line 32

def self.has_visibility_procs?(permission)
  permission_data_helper(permission, VISIBILITY_PROC)
end

.is_access?(permission) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/authorizable/permission_utilities.rb', line 66

def self.is_access?(permission)
  permissions[permission][KIND] == ACCESS
end

.is_object?(permission) ⇒ Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/authorizable/permission_utilities.rb', line 70

def self.is_object?(permission)
  permissions[permission][KIND] == OBJECT
end

.permissionsObject



15
16
17
# File 'lib/authorizable/permission_utilities.rb', line 15

def self.permissions
  Authorizable::Permissions.definitions
end

.set_for_role(role) ⇒ Object



19
20
21
22
23
24
25
# 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) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
39
40
41
42
43
44
45
# 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) ⇒ Object



57
58
59
60
# 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