PKc72EGG-INFO/dependency_links.txt PKc7wX::EGG-INFO/entry_points.txt[trac.plugins] permredirect.filter = permredirect.filter PKc72EGG-INFO/not-zip-safe PKc7+sVVEGG-INFO/PKG-INFOMetadata-Version: 1.0 Name: TracPermRedirect Version: 1.0 Summary: Redirect users to the login screen on PermissionError. Home-page: http://trac-hacks.org/wiki/PermRedirectPlugin Author: Noah Kantrowitz Author-email: coderanger@yahoo.com License: BSD Description: UNKNOWN Keywords: trac plugin Platform: UNKNOWN Classifier: Framework :: Trac PKc71EGG-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/top_level.txt permredirect/__init__.py permredirect/filter.py PKc7 EGG-INFO/top_level.txtpermredirect PKc7permredirect/__init__.pyPKc7/mpermredirect/__init__.pyc; Fc@sdS(N((((s;build/bdist.darwin-8.10.1-i386/egg/permredirect/__init__.pys?sPKc7(wpermredirect/filter.py# Created by Noah Kantrowitz on 2007-08-27. # Copyright (c) 2007 Noah Kantrowitz. All rights reserved. import sys import inspect from trac.core import * from trac.web.api import IRequestFilter, RequestDone from trac.perm import PermissionError class PermRedirectModule(Component): """Redirect users to the login screen on PermissionError.""" implements(IRequestFilter) def __init__(self): old_exc_info = sys.exc_info def new_exc_info(): return list(old_exc_info()) sys.exc_info = new_exc_info # IRequestFilter methods def pre_process_request(self, req, handler): return handler def post_process_request(self, req, template, content_type): if template is None: # Some kind of exception in progress exctype = sys.exc_info()[0] if issubclass(exctype, PermissionError) and req.authname == 'anonymous': # Do our redirect try: req.redirect(req.href.login(referer=req.href(req.path_info))) except RequestDone: pass # Mask the raise from here, we need to do it later for frame in inspect.stack()[1:]: l = frame[0].f_locals co = frame[0].f_code if 'err' in l and co.co_name == 'dispatch': # Hijack err err = l['err'] err[0] = RequestDone err[1] = None err[2] = None break return template, content_type PKc7XL permredirect/filter.pyc; Fc@sSdkZdkZdkTdklZlZdklZdefdYZ dS(N(s*(sIRequestFilters RequestDone(sPermissionErrorsPermRedirectModulecBs3tZdZeedZdZdZRS(s6Redirect users to the login screen on PermissionError.cs"tid}|t_dS(NcstSdS(N(slists old_exc_info((s old_exc_info(s9build/bdist.darwin-8.10.1-i386/egg/permredirect/filter.pys new_exc_infos(ssyssexc_infos old_exc_infos new_exc_info(sselfs new_exc_infos old_exc_info((s old_exc_infos9build/bdist.darwin-8.10.1-i386/egg/permredirect/filter.pys__init__s  cCs|SdS(N(shandler(sselfsreqshandler((s9build/bdist.darwin-8.10.1-i386/egg/permredirect/filter.pyspre_process_requestsc Cs|tjotid}t|to |idjoy,|i |i i d|i |i Wnt j onXxtidD]j}|di}|di}d|jo |idjo-|d}t |d