Class: Releaf::Permissions::AccessControl

Inherits:
Object
  • Object
show all
Defined in:
lib/releaf/permissions/access_control.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.draw_component_routes(router) ⇒ Object



12
13
14
# File 'lib/releaf/permissions/access_control.rb', line 12

def self.draw_component_routes(router)
  router.devise_for(Releaf.application.config.permissions.devise_for, path: "", controllers: { sessions: "releaf/permissions/sessions" })
end

.initialize_componentObject



6
7
8
9
10
# File 'lib/releaf/permissions/access_control.rb', line 6

def self.initialize_component
  ActiveSupport.on_load :base_controller do
    Releaf::ActionController.send(:include, Releaf::Permissions::ControllerSupport)
  end
end

Instance Method Details

#allowed_controllersObject



20
21
22
# File 'lib/releaf/permissions/access_control.rb', line 20

def allowed_controllers
  permanent_allowed_controllers + role_allowed_controllers
end

#controller_name_from_permission(permission) ⇒ Object



28
29
30
31
# File 'lib/releaf/permissions/access_control.rb', line 28

def controller_name_from_permission(permission)
  match = permission.match(/^controller\.(.+)/)
  match[1] if match
end

#controller_permitted?(controller_name) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/releaf/permissions/access_control.rb', line 16

def controller_permitted?(controller_name)
  allowed_controllers.include?(controller_name)
end

#permanent_allowed_controllersObject



33
34
35
# File 'lib/releaf/permissions/access_control.rb', line 33

def permanent_allowed_controllers
  Releaf.application.config.permissions.permanent_allowed_controllers
end

#role_allowed_controllersObject



24
25
26
# File 'lib/releaf/permissions/access_control.rb', line 24

def role_allowed_controllers
  user.role.permissions.map{|permission| controller_name_from_permission(permission.permission) }.compact
end