main
1class SessionsController < ApplicationController
2 skip_before_action :ensure_valid_session, only: [:new, :create]
3 layout 'public'
4
5 def initialize(login_command = resolve(:login_command))
6 @login_command = login_command
7 super()
8 end
9
10 def new
11 end
12
13 def create
14 if user_session = @login_command.run(self)
15 cookies.signed[:raphael] = user_session
16 redirect_to root_path(anchor: '')
17 else
18 flash[:error] = I18n.translate(:invalid_credentials)
19 redirect_to new_session_path
20 end
21 end
22
23 def destroy
24 reset_session
25 cookies.delete(:raphael)
26 current_session.revoke!
27 redirect_to new_session_path
28 end
29end