master
 1class SessionsController < PublicController
 2  def new
 3    if current_user.present?
 4      redirect_to dashboard_path
 5    else
 6      @user = User.new
 7    end
 8  end
 9
10  def create
11    if user_session = User.login(
12        params[:user][:username],
13        params[:user][:password]
14    )
15      reset_session
16      session[:user_id] = user_session.access(request)
17      redirect_to dashboard_path
18    else
19      flash[:warning] = t("sessions.create.invalid_login")
20      redirect_to new_session_path
21    end
22  end
23
24  def destroy
25    UserSession.authenticate(session[:user_id]).try(:revoke!)
26    reset_session
27    redirect_to root_path
28  end
29end