app/controllers/storytime/application_controller.rb in storytime-1.2.0 vs app/controllers/storytime/application_controller.rb in storytime-2.0.0

- old
+ new

@@ -1,54 +1,74 @@ class Storytime::ApplicationController < ApplicationController - layout Storytime.layout || "storytime/application" + layout :set_layout + before_action :ensure_site_exists + around_action :scope_current_site + include Storytime::Concerns::ControllerContentFor + include Storytime::Concerns::CurrentSite + helper_method :current_storytime_site include Pundit rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized helper :all + helper_method :dashboard_controller + if Storytime.user_class_symbol != :user helper_method :authenticate_user! helper_method :current_user helper_method :user_signed_in? + + def authenticate_user! + send("authenticate_#{Storytime.user_class_underscore_all}!".to_sym) + end + + def current_user + send("current_#{Storytime.user_class_underscore_all}".to_sym) + end + + def user_signed_in? + send("#{Storytime.user_class_underscore_all}_signed_in?".to_sym) + end end def setup url = if Storytime.user_class.count == 0 main_app.new_user_registration_url elsif current_user.nil? main_app.new_user_session_url elsif Storytime::Site.count == 0 new_dashboard_site_url else - url_for([:dashboard, Storytime::BlogPost]) + url_for([:dashboard, Storytime::Page]) end redirect_to url end - if Storytime.user_class_symbol != :user - def authenticate_user! - send("authenticate_#{Storytime.user_class_underscore_all}!".to_sym) - end +private + def ensure_site_exists + setup if Storytime::Site.count == 0 + end - def current_user - send("current_#{Storytime.user_class_underscore_all}".to_sym) - end + def set_layout + @current_storytime_site.layout.present? ? @current_storytime_site.layout : "storytime/application" + end - def user_signed_in? - send("#{Storytime.user_class_underscore_all}_signed_in?".to_sym) - end + def dashboard_controller + false end -private - def ensure_site - redirect_to new_dashboard_site_url unless devise_controller? || @site = Storytime::Site.first + def scope_current_site + Storytime::Site.current_id = current_storytime_site(request).id + yield + ensure + Storytime::Site.current_id = nil end def user_not_authorized flash[:error] = "You are not authorized to perform this action." - redirect_to(request.referrer || storytime_root_path) + redirect_to(request.referrer || "/") end end