Module: NavigationPermissions

Extended by:
ActiveSupport::Concern
Included in:
NavigationGroup, NavigationHeader, NavigationItem
Defined in:
app/models/concerns/navigation_permissions.rb

Instance Method Summary collapse

Instance Method Details

#allow!(controller, action) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/models/concerns/navigation_permissions.rb', line 8

def allow!(controller, action)
  navigation_record_permission = NavigationRecordPermission.find_or_initialize_by(
    controller: controller,
    action: action
  )

  if navigation_record_permission.new_record?
    navigation_record_permission.save!
    navigation_record_permissions << navigation_record_permission
  else
    navigation_record_permissions << navigation_record_permission unless
    navigation_record_permissions.include?(navigation_record_permission)
  end

  navigation_record_permission
end

#allowed_toObject



30
31
32
33
34
35
36
37
# File 'app/models/concerns/navigation_permissions.rb', line 30

def allowed_to
  navigation_record_permissions.map do |permission|
    {
      controller: permission.controller,
      action: permission.action
    }
  end
end

#allows?(controller, action) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
# File 'app/models/concerns/navigation_permissions.rb', line 4

def allows?(controller, action)
  navigation_record_permissions.exists?(controller: controller, action: action)
end

#disallow!(controller, action) ⇒ Object



25
26
27
28
# File 'app/models/concerns/navigation_permissions.rb', line 25

def disallow!(controller, action)
  permission = navigation_record_permissions.find_by(controller: controller, action: action)
  navigation_record_permissions.delete(permission) if permission
end