chiark / gitweb /
Introduce STALE divert kind
[cgi-auth-flexible.git] / cgi-auth-flexible.pm
index e52441b802b1647dff1f927fd7018ee7aa959827..bdb96c6f7b3f58e761588460c175f6b2df8a0be6 100644 (file)
@@ -910,6 +910,12 @@ sub _check_divert_core ($) {
 
     die unless $cookt eq 'y';
     unless ($r->{S}{promise_check_mutate} && $meth eq 'GET') {
+        if ($parmt eq 't' || $parmt eq 'n') {
+            return ({ Kind => 'STALE',
+                      Message => $r->_gt("Login session interrupted."),
+                      _CookieRaw => $cooks,
+                      Params => { } });
+        }
         die unless $parmt eq 'y';
         die unless $cookh eq $parmh;
     }
@@ -1121,6 +1127,10 @@ sub check_ok ($) {
        $title = $r->_gt('Not logged in');
        push @body, $divert->{Message};
        push @body, $r->_ch('gen_login_link', $params);
+    } elsif ($kind =~ m/^STALE/) {
+        $title = $r->_gt('Re-entering secure site.');
+        push @body, $divert->{Message};
+        push @body, $r->_ch('gen_postmainpage_form', $params);
     } elsif ($kind =~ m/^MAINPAGEONLY$/) {
         $title = $r->_gt('Entering secure site.');
         push @body, $divert->{Message};