Make the "remember me" option work as intended
This commit is contained in:
parent
6042632806
commit
a42b654606
3 changed files with 20 additions and 2 deletions
|
@ -20,7 +20,7 @@ class SessionsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
session[:remember_me] ||= params[:remember_me]
|
session[:remember_me] = params[:remember_me] == "yes"
|
||||||
|
|
||||||
referer = safe_referer(params[:referer]) if params[:referer]
|
referer = safe_referer(params[:referer]) if params[:referer]
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
<%= f.password_field :password, :autocomplete => "on", :tabindex => 2, :value => "", :skip_label => true %>
|
<%= f.password_field :password, :autocomplete => "on", :tabindex => 2, :value => "", :skip_label => true %>
|
||||||
|
|
||||||
<%= f.form_group do %>
|
<%= f.form_group do %>
|
||||||
<%= f.check_box :remember_me, { :label => t(".remember"), :tabindex => 3, :checked => (params[:remember_me] == "yes") }, "yes" %>
|
<%= f.check_box :remember_me, { :label => t(".remember"), :tabindex => 3, :checked => (params[:remember_me] == "true") }, "yes" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
|
|
|
@ -54,6 +54,24 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest
|
||||||
assert_redirected_to root_path
|
assert_redirected_to root_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_login_remembered
|
||||||
|
user = create(:user)
|
||||||
|
|
||||||
|
post login_path, :params => { :username => user.display_name, :password => "test", :remember_me => "yes" }
|
||||||
|
assert_redirected_to root_path
|
||||||
|
|
||||||
|
assert_equal 28 * 86400, session[:_remember_for]
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_login_not_remembered
|
||||||
|
user = create(:user)
|
||||||
|
|
||||||
|
post login_path, :params => { :username => user.display_name, :password => "test", :remember_me => "0" }
|
||||||
|
assert_redirected_to root_path
|
||||||
|
|
||||||
|
assert_nil session[:_remember_for]
|
||||||
|
end
|
||||||
|
|
||||||
def test_logout_without_referer
|
def test_logout_without_referer
|
||||||
post logout_path
|
post logout_path
|
||||||
assert_redirected_to root_path
|
assert_redirected_to root_path
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue