Class: GroupPermission

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/group_permission.rb

Defined Under Namespace

Classes: Permission

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_permission(key, options = {}) ⇒ Object



20
21
22
23
# File 'app/models/group_permission.rb', line 20

def add_permission(key, options = {})
  p = Permission.new(key, options)
  permissions_hash[p.key] = p unless permissions_hash.key?(p.key)
end

.permission(key) ⇒ Object



35
36
37
38
39
40
# File 'app/models/group_permission.rb', line 35

def permission(key)
  key = key.to_s
  return permissions_hash[key] if permissions_hash.key?(key)

  raise "Not found \"#{key}\" in GroupPermission::permissions"
end

.permission?(permission, user = false) ⇒ Boolean

rubocop:disable Style/OptionalBooleanParameter

Returns:

  • (Boolean)


29
30
31
32
33
# File 'app/models/group_permission.rb', line 29

def permission?(permission, user = false) # rubocop:disable Style/OptionalBooleanParameter
  return permission_by_hash?(permission, user) if permission.is_a?(Hash)

  permission(permission).user_has?(user || User.current)
end

.permission_description(key) ⇒ Object



25
26
27
# File 'app/models/group_permission.rb', line 25

def permission_description(key)
  permission(key).description
end

.permissionsObject



16
17
18
# File 'app/models/group_permission.rb', line 16

def permissions
  permissions_hash.values
end

Instance Method Details

#permission=(value) ⇒ Object



11
12
13
# File 'app/models/group_permission.rb', line 11

def permission=(value)
  self[:permission] = Permission.sanitize_key(value)
end