#8696 closed enhancement (fixed)
diagrams for Trac request processing
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | not applicable |
Component: | general | Version: | none |
Severity: | normal | Keywords: | devguide documentation |
Cc: | lists@… | Branch: | |
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
As a potential plugin developer, I would really appreciate the diagram with the order of various components called when Trac processes request.
For example, to answer the question, that consequences has null Exception handler in this plugin:
http://trac-hacks.org/browser/noanonymousplugin/0.11/noanonymous/filter.py?rev=4369
Attachments (1)
Change History (14)
comment:1 by , 15 years ago
Keywords: | devguide documentation added |
---|---|
Milestone: | → 0.12.1 |
comment:2 by , 15 years ago
See the attached file. It displays general trac request handling. Of course, there is a lot more going on during request dispatch, especially when it comes to the actual request handler in charge for processing the request.
I forgot to also have the owners displayed for each of the actors, however, these are basically all from the trac.web.main and trac.web.api and trac.web.chrome modules.
comment:3 by , 15 years ago
Regarding your question towards the noanonymous filter plugin. It is implemented in the wrong way. all of the code should go to pre_process_request, basically making it
def pre_process_request(req, ...): if req.authenticate() == 'anonymous' and \ not req.pathinfo.startswith("/login") and \ not req.pathinfo.startswith("/resetpassword"): req.redirect(req.href.login())
follow-up: 8 comment:4 by , 15 years ago
ups it is of course req.authname instead of req.authenticate()
follow-up: 7 comment:5 by , 14 years ago
Milestone: | next-minor-0.12.x → not applicable |
---|---|
Owner: | set to |
Thanks Carsten. Could you stick that diagram somewhere in an appropriate TracDev page (if none is fitting you can of course create a new one).
comment:6 by , 14 years ago
I second to thank you, Carsten. Very insightful. Now it is my problem to find some time to integrate this knowledge into NoAnonymous practices. =)
comment:7 by , 14 years ago
Replying to cboos:
Could you stick that diagram somewhere in an appropriate TracDev page.
I believe it is already done 7 weeks ago at TracDev/RequestHandling
comment:8 by , 14 years ago
Replying to Carsten Klein <carsten.klein@…>:
ups it is of course req.authname instead of req.authenticate()
Actually I've implemented new version of the plugin as you recommended about the same time the ticket was created. The previous link was to old version, because of questionable exception handler. New version is here - http://trac-hacks.org/browser/noanonymousplugin/0.11/noanonymous/filter.py
It seems that the diagram can be broken into two for better screen alignment. One for project index request and one for the generic request. If there could be a source file for some sequence diagram tool like sdedit people could use it to improve the diagram.
Perhaps requests for static resources can also be presented as more detailed example.
comment:9 by , 14 years ago
The diagram was made using MagicDrawUML. I will split the diagram into two distinct sequence diagrams, one for the project index and one for the generic request and post these here, incl. the MagicDrawUML file.
comment:10 by , 14 years ago
I have update the wiki page and the diagrams there. Also included the original UML file (MagicDrawUML).
See TracDev/RequestHandling for more information.
Please note that some of the attachments there can be removed.
comment:12 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Well, nobody really knows what happens …