Sha256: e140b62b3b43abf7a84e7d6275048d9bf2d6bfeb353ef2b128ac415d3aa305e3

Contents?: true

Size: 1.13 KB

Versions: 6

Compression:

Stored size: 1.13 KB

Contents

module Amalgam
  class SessionsController < Amalgam::ApplicationController
    layout 'amalgam/admin/login'

    def new
      @name = params[:resource]
      @resource = params[:resource].classify.safe_constantize.new
    end

    def create
      @resource = build_resource(params)
      @resource = @resource.class.authenticate params[resource_name][:login], params[resource_name][:password]
      if @resource && @resource.admin?
        session["#{resource_name}_id".to_sym] = @resource.id
        redirect_back_or_default params[:return_to] || admin_root_url
      else
        if @resource
          session["#{resource_name}_id".to_sym] = @resource.id
          redirect_back_or_default params[:return_to] || Amalgam.authority_urls[resource_name.to_sym] || main_app.root_url
        else
          redirect_to eval("#{resource_name}_signin_url"), :alert => I18n.t('amalgam.sessions.fail.invalid_name_or_password')
        end
      end
    end

    def destroy
      session["#{params[:resource].to_s}_id".to_sym] = nil if params[:resource]
      redirect_to main_app.root_url, :notice => I18n.t('amalgam.sessions.success.sign_out')
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
amalgam-2.1.4.1 app/controllers/amalgam/sessions_controller.rb
amalgam-2.1.4 app/controllers/amalgam/sessions_controller.rb
amalgam-2.1.3.1 app/controllers/amalgam/sessions_controller.rb
amalgam-2.1.3 app/controllers/amalgam/sessions_controller.rb
amalgam-2.1.2 app/controllers/amalgam/sessions_controller.rb
amalgam-2.1.1 app/controllers/amalgam/sessions_controller.rb