Modified authentication with user_signed_in? and current_user
This commit is contained in:
@@ -3,10 +3,24 @@ class ApplicationController < ActionController::Base
|
||||
before_action :authenticate
|
||||
|
||||
private
|
||||
def current_user
|
||||
Current.user || authenticate_user_from_session
|
||||
end
|
||||
helper_method :current_user
|
||||
|
||||
def authenticate_user_from_session
|
||||
session_record = Session.find_by_id(cookies.signed[:session_token])
|
||||
Current.session = session_record
|
||||
Current.user
|
||||
end
|
||||
|
||||
def user_signed_in?
|
||||
current_user.present?
|
||||
end
|
||||
helper_method :user_signed_in?
|
||||
|
||||
def authenticate
|
||||
if session_record = Session.find_by_id(cookies.signed[:session_token])
|
||||
Current.session = session_record
|
||||
else
|
||||
unless user_signed_in?
|
||||
redirect_to sign_in_path
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class HomeController < ApplicationController
|
||||
skip_before_action :authenticate
|
||||
def index
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,23 +1,19 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<p>Signed as <%= Current.user.email %></p>
|
||||
|
||||
<h2>Login and verification</h2>
|
||||
|
||||
<div>
|
||||
<%= link_to "Change password", edit_password_path %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= link_to "Change email address", edit_identity_email_path %>
|
||||
</div>
|
||||
|
||||
<h2>Access history</h2>
|
||||
|
||||
<div>
|
||||
<%= link_to "Devices & Sessions", sessions_path %>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<%= button_to "Log out", Current.session, method: :delete %>
|
||||
<% if user_signed_in? %>
|
||||
<p>Signed as <%= current_user.email %></p>
|
||||
<h2>Login and verification</h2>
|
||||
<div>
|
||||
<%= link_to "Change password", edit_password_path %>
|
||||
</div>
|
||||
<div>
|
||||
<%= link_to "Change email address", edit_identity_email_path %>
|
||||
</div>
|
||||
<h2>Access history</h2>
|
||||
<div>
|
||||
<%= link_to "Devices & Sessions", sessions_path %>
|
||||
</div>
|
||||
<br>
|
||||
<%= button_to "Log out", Current.session, method: :delete %>
|
||||
<% else %>
|
||||
<%= link_to "Log in", sign_in_path %>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user