diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 17:20:41 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-24 17:20:41 +0200 |
| commit | d5883869e97244335370d54e21ef46b3f1885899 (patch) | |
| tree | 4575a24150f4c2fa98de54fdd556132f0aa0ff8c /test/controllers/admin_controller_test.rb | |
| parent | 0d2a8e4b61f4b79507519c73f127b7ab883d853c (diff) | |
Give all sessions a uniform absolute lifetime of one week
Enforced at restore via a login-time stamp, written only at genuine
logins so the limit stays absolute rather than sliding. The cookie
name rotation logs everyone out once at deploy. Second-factor users
are deliberately not treated worse than password-only ones.
Diffstat (limited to 'test/controllers/admin_controller_test.rb')
| -rw-r--r-- | test/controllers/admin_controller_test.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/controllers/admin_controller_test.rb b/test/controllers/admin_controller_test.rb index a177851f..9747d8e9 100644 --- a/test/controllers/admin_controller_test.rb +++ b/test/controllers/admin_controller_test.rb | |||
| @@ -45,4 +45,17 @@ class AdminControllerTest < ActionController::TestCase | |||
| 45 | get :index | 45 | get :index |
| 46 | assert_redirected_to edit_user_path(users(:quentin)) | 46 | assert_redirected_to edit_user_path(users(:quentin)) |
| 47 | end | 47 | end |
| 48 | |||
| 49 | test "a session older than the absolute limit is rejected" do | ||
| 50 | login_as :quentin | ||
| 51 | @request.session[:logged_in_at] = (AuthenticatedSystem::SESSION_MAX_AGE.ago - 1.day).to_i | ||
| 52 | get :index | ||
| 53 | assert_response :redirect | ||
| 54 | end | ||
| 55 | |||
| 56 | test "a fresh session carries the login stamp" do | ||
| 57 | login_as :quentin | ||
| 58 | get :index | ||
| 59 | assert_response :success | ||
| 60 | end | ||
| 48 | end | 61 | end |
