class ActAsPermissionControllable::Controller
Public Class Methods
get_controllers(sorted: false)
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 31 def self.get_controllers(sorted: false) self.preload_controller.call if Proc === self.preload_controller controllers = self.permission_controllable_controllers.map { |controller, _| self.new(controller) }.select(&:controllable?) if sorted order = I18n.t('act_as_permission_controllable.order', default: [[]]) controllers = controllers.sort_by(&:controller_name).sort_by.with_index { |controller, i| [ order.index(controller.to_s) || order.size, i ] } end controllers end
new(controller)
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 48 def initialize(controller) @controller = case controller when Symbol then controller.to_s.safe_constantize when String then controller.safe_constantize else controller end @data = self.class.permission_controllable_controllers[@controller.to_s] end
remove(controller)
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 24 def self.remove(controller) if self.permission_controllable_controllers[controller.to_s] self.permission_controllable_controllers.delete(controller.to_s) controller.skip_authorize_resource # cancancan end end
set(controller, options)
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 17 def self.set(controller, options) if !self.permission_controllable_controllers[controller.to_s] controller.authorize_resource(class: false) # cancancan end self.permission_controllable_controllers[controller.to_s] = options end
Public Instance Methods
actions()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 82 def actions Action.actions_for_controller(@controller) end
controllable?()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 61 def controllable? !!@data && actions.present? end
controller_name()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 65 def controller_name @controller.controller_name end
i18n_name()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 73 def i18n_name name = controller_name.singularize defaults = [ :"activerecord.models.#{name}", name.camelize, ] I18n.translate(:"act_as_permission_controllable.controllers.#{to_s}", default: defaults) end
index()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 86 def index @data[:index].presence || :index end
nil?()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 57 def nil? @controller.nil? end
to_s()
click to toggle source
# File lib/act_as_permission_controllable/controller.rb, line 69 def to_s @controller.to_s end