Sha256: 9d62df4ae867310efc3607a3764fbc5dcaad6f22e570c8c8656355cbe1aabd3b

Contents?: true

Size: 1.42 KB

Versions: 7

Compression:

Stored size: 1.42 KB

Contents

module Alchemy
  class UserSessionsController < ::Devise::SessionsController
    include Alchemy::Admin::Locale

    before_action except: 'destroy' do
      enforce_ssl if ssl_required? && !request.ssl?
    end

    before_action :check_user_count, :only => :new

    helper 'Alchemy::Admin::Base'

    layout 'alchemy/admin'

    def new
      super
    end

    def create
      authenticate_user!

      if user_signed_in?
        store_screen_size
        if session[:redirect_path].blank?
          redirect_path = admin_dashboard_path
        else
          # We have to strip double slashes from beginning of path, because of strange rails/rack bug.
          redirect_path = session[:redirect_path].gsub(/\A\/{2,}/, '/')
        end
        redirect_to redirect_path,
          notice: t(:signed_in, scope: 'devise.sessions')
      else
        super
      end
    end

    def destroy
      current_alchemy_user.try(:unlock_pages!)
      cookies.clear
      session.clear
      super
    end

    private

    def check_user_count
      if User.count == 0
        redirect_to admin_signup_path
      end
    end

    def store_screen_size
      session[:screen_size] = params[:user_screensize]
    end

    # Overwriting the default of Devise
    def after_sign_out_path_for(resource_or_scope)
      if request.referer.blank? || request.referer.to_s =~ /admin/
        root_path
      else
        request.referer
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
alchemy-devise-4.1.0 app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-4.1.0.beta app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-4.0.0 app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-3.6.0 app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-3.5.0 app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-3.5.0.beta app/controllers/alchemy/user_sessions_controller.rb
alchemy-devise-3.4.0 app/controllers/alchemy/user_sessions_controller.rb