Modify ↓
#6845 closed defect (wontfix)
RequestDone not allowed in INagivationContributor
| Reported by: | Michael Ching | Owned by: | Anton Graham |
|---|---|---|---|
| Priority: | normal | Component: | AuthRequiredPlugin |
| Severity: | normal | Keywords: | |
| Cc: | Trac Release: | 0.11 |
Description
Testing on Trac 0.11.7, it appears that redirect() in an INagivationContributor will cause problems because the RequestDone exception is not handled and will result in a 500 error.
It seems like this plugin would make more sense as a IRequestFilter.
from trac.core import *
from trac.web import IRequestFilter
class AuthRequired(Component):
"""AuthRequiredPlugin
Require anonymous users to authenticate using the form based login.
This has been greatly simplified from the original implementation
thanks to a hint from coderanger.
"""
implements(IRequestFilter)
def pre_process_request(self, req, handler):
if ((req.authname and req.authname != 'anonymous') or \
req.path_info.startswith('/login') or \
req.path_info.startswith('/reset_password') or \
req.path_info.startswith('/register') or \
return handler
self.log.debug('Redirecting anonymous request to /login')
#req.redirect(req.href.login())
# Testing new redirect syntax. Thanks to jfernandez@ist.psu.edu
req.redirect(req.href.login(), {'referer':req.abs_href(req.path_info)})
return handler
def post_process_request(req, template, data, content_type):
return
Attachments (0)
Change History (2)
comment:1 Changed 13 years ago by
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
comment:2 Changed 13 years ago by
Note: See
TracTickets for help on using
tickets.



Plugin is deprecated. See the PermRedirectPlugin.