PKõ¨¤8“×2EGG-INFO/dependency_links.txt PKõ¨¤8wîXì::EGG-INFO/entry_points.txt[trac.plugins] permredirect.filter = permredirect.filter PKõ¨¤8÷¾­WUUEGG-INFO/PKG-INFOMetadata-Version: 1.0 Name: TracPermRedirect Version: 2.0 Summary: Redirect users to the login screen on PermissionError. Home-page: http://trac-hacks.org/wiki/PermRedirectPlugin Author: Noah Kantrowitz Author-email: noah@coderanger.net License: BSD Description: UNKNOWN Keywords: trac plugin Platform: UNKNOWN Classifier: Framework :: Trac PKõ¨¤8Ó‘šEGG-INFO/requires.txtTracPKõ¨¤8\Kìø++EGG-INFO/SOURCES.txtsetup.py TracPermRedirect.egg-info/PKG-INFO TracPermRedirect.egg-info/SOURCES.txt TracPermRedirect.egg-info/dependency_links.txt TracPermRedirect.egg-info/entry_points.txt TracPermRedirect.egg-info/requires.txt TracPermRedirect.egg-info/top_level.txt permredirect/__init__.py permredirect/filter.py PKõ¨¤8¢‡ÿ EGG-INFO/top_level.txtpermredirect PKõ¨¤8“×2EGG-INFO/zip-safe PKÁc7permredirect/__init__.pyPKõ¨¤8"E¡”‹‹permredirect/__init__.pyc;ò üÒFc@sdS(N((((s;build/bdist.darwin-8.11.1-i386/egg/permredirect/__init__.pys?sPKب¤8Ô<BBpermredirect/filter.py# Created by Noah Kantrowitz on 2007-08-27. # Copyright (c) 2007-2008 Noah Kantrowitz. All rights reserved. import sys from trac.core import * from trac.web.api import IRequestFilter, RequestDone from trac.perm import PermissionError from trac.admin.web_ui import AdminModule class PermRedirectModule(Component): """Redirect users to the login screen on PermissionError.""" implements(IRequestFilter) # IRequestFilter methods def pre_process_request(self, req, handler): return handler def post_process_request(self, req, template, data, content_type): if template is None: # Some kind of exception in progress if req.authname != 'anonymous': # Already logged in return template, data, content_type exctype, exc = sys.exc_info()[0:2] if issubclass(exctype, PermissionError): req.redirect(req.href.login()) try: if req.path_info.startswith('/admin') and \ not AdminModule(self.env)._get_panels(req)[0]: # No admin panels available, assume user should log in. req.redirect(req.href.login()) except RequestDone: # Reraise on redirect raise except Exception: # It is possible the error we got called on happened inside # the _get_panels call. Be sure to ignore it. pass return template, data, content_type PKõ¨¤8<