Sha256: 26d7da74a0d205023b4d41d3a35b0a49d2744ec03fd72105c88d25e4564cbaa7
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
module Tramway module Admin class ApplicationController < ActionController::Base include AuthManagment include RecordRoutesHelper before_action :authenticate_admin! before_action :check_available! before_action :collections_counts, if: :model_given? before_action :check_available_scope!, if: :model_given?, only: :index before_action :application protect_from_forgery with: :exception def check_available! render '/404' unless model_given? end def check_available_scope! if params[:scope].present? render '/404' unless available_scope_given? end end def collections_counts @counts = "#{params[:model]}Decorator".constantize.collections.reduce({}) do |hash, collection| hash.merge! collection => params[:model].constantize.active.send(collection).count end end def model_class params[:model].constantize end def decorator_class "#{model_class}Decorator".constantize end def form_class "#{model_class}Form".constantize end def application @application = ::Tramway::Core.application.model_class.first end private def model_given? available_models_given? || singleton_models_given? end def available_scope_given? params[:scope].present? && params[:scope].in?(decorator_class.collections.map(&:to_s)) end def available_models_given? ::Tramway::Admin.available_models && params[:model].in?(::Tramway::Admin.available_models.map(&:to_s)) end def singleton_models_given? ::Tramway::Admin.singleton_models && params[:model].in?(::Tramway::Admin.singleton_models.map(&:to_s)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tramway-admin-1.1.4.5 | app/controllers/tramway/admin/application_controller.rb |