[PATCH 1 of 1 RFC] login: add login-required Pragma to HTTP headers

Thomas De Schampheleire patrickdepinguin at gmail.com
Thu Mar 19 16:34:01 EDT 2015


# HG changeset patch
# User Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
# Date 1426796699 -3600
#      Thu Mar 19 21:24:59 2015 +0100
# Node ID a9f2e162a9ecad5d13ee44848a73b64cc3de3285
# Parent  cf8eab44c6ec583f7a0642b7274d2222a30d15e3
login: add login-required Pragma to HTTP headers

To make it easier for automated scripts to detect a login failure, add a
Pragma 'login-required' in the HTTP headers.
As existing pragmas, like no-cache, may be present, extend the original one
instead of overwriting.

diff --git a/kallithea/controllers/login.py b/kallithea/controllers/login.py
--- a/kallithea/controllers/login.py
+++ b/kallithea/controllers/login.py
@@ -35,7 +35,7 @@
 from webob.exc import HTTPFound
 from pylons.i18n.translation import _
 from pylons.controllers.util import redirect
-from pylons import request, session, tmpl_context as c, url
+from pylons import request, response, session, tmpl_context as c, url
 
 import kallithea.lib.helpers as h
 from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator
@@ -157,6 +157,13 @@
             if auth_info:
                 headers = self._store_user_in_session(auth_info.get('username'))
                 raise HTTPFound(location=c.came_from, headers=headers)
+
+        if 'Pragma' in response.headers:
+            current_pragma = '%s,' % response.headers['Pragma']
+        else:
+            current_pragma = ''
+        response.headers['Pragma'] = '%slogin-required' % current_pragma
+
         return render('/login.html')
 
     @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate',


More information about the kallithea-general mailing list