module AdminIt::Controller
Public Class Methods
included(base)
click to toggle source
# File lib/admin_it/controller.rb, line 4 def self.included(base) base.class_eval do include Pundit if AdminIt::Env.pundit? before_filter :authenticate_user! attr_reader :context helper_method :context, :resource helper AdminIt::Helpers helper AdminIt::Engine.routes.url_helpers if AdminIt::Env.pundit? collections = @resource.collections.map(&:context_name) after_action :verify_authorized, except: collections after_action :verify_policy_scoped, only: collections end end end
Public Instance Methods
redirect_to_default()
click to toggle source
# File lib/admin_it/controller.rb, line 26 def redirect_to_default if context.child? redirect_to(context.parent.class.url(context.parent, section: context.section)) else redirect_to(resource[resource.default_context].url) end end
resource()
click to toggle source
# File lib/admin_it/controller.rb, line 22 def resource self.class.instance_variable_get(:@resource) end
Private Instance Methods
load_context(context_class) { || ... }
click to toggle source
# File lib/admin_it/controller.rb, line 36 def load_context(context_class) @context = context_class.new(self) yield if block_given? layout = ['admin_it', params[:layout]].compact.join('_') unless performed? if layout == 'admin_it' && !request.query_parameters.empty? redirect_to request.path else Request.get(request).process! render template: "admin_it/#{context.name}", layout: layout end end @context.save end