1class Admin::UserSessionsController < Admin::AdminController
 
2  skip_before_filter :require_admin, only: [:new, :create, :destroy, :status]
 
3  skip_before_filter :check_for_password_change
 
4
 
5  def new
 
6    @user_session = AdminUserSession.new
 
7  end
 
8
 
 9  def create
 
10    @user_session = AdminUserSession.new(user_session_params)
 
 
12    if @user_session.save
 
13      redirect_to_target_or_default
 
14    elsif @user_session.last_login_attempt?
 
15      render :new, alert: :last_login
 
16    elsif @user_session.being_brute_force_protected?
 
17      render :new, alert: :disabled_login
 
18    else
 
19      render :new, alert: :invalid_login
 
20    end
 
21  end
 
 
23  def destroy
 
24    current_session.destroy if logged_in?
 
25    redirect_to admin_login_url, notice: :logged_out
 
26  end
 
 
28  def status
 
29  end
 
 
31  def continue
 
32    current_user.touch(:last_request_at)
 
33  end
 
 
35  private
 
 
37  def user_session_params
 
38    params.require(:admin_user_session).permit(:email, :password)
 
39  end
 
 
41  def last_request_update_allowed?
 
42    action_name != 'status'
 
43  end
 
44end