| 119 | | req._outheaders = [] |
|---|
| 120 | | req.redirect(page_url) |
|---|
| 121 | | except RequestDone: |
|---|
| 122 | | req.addcomment_raise = True |
|---|
| | 121 | for manipulator in WikiModule(self.env).page_manipulators: |
|---|
| | 122 | for field, message in manipulator.validate_wiki_page(req, page): |
|---|
| | 123 | valid = False |
|---|
| | 124 | if field: |
|---|
| | 125 | the_message += tag.div(tag.strong("invalid field '%s': " % field), |
|---|
| | 126 | message, |
|---|
| | 127 | class_="system-message") |
|---|
| | 128 | else: |
|---|
| | 129 | the_message += tag.div(tag.strong("invalid: "), |
|---|
| | 130 | message, |
|---|
| | 131 | class_="system-message") |
|---|
| | 132 | |
|---|
| | 133 | # The TracSpamfilterPlugin does not generate messages, |
|---|
| | 134 | # but throws RejectContent. |
|---|
| | 135 | except TracError, s: |
|---|
| | 136 | valid = False |
|---|
| | 137 | the_message += tag.div(tag.strong("ERROR: "), s, class_="system-message") |
|---|
| | 138 | |
|---|
| | 139 | if valid: |
|---|
| | 140 | page.save(authname, req.args['comment'], req.environ['REMOTE_ADDR']) |
|---|
| | 141 | # We can't redirect from macro as it will raise RequestDone |
|---|
| | 142 | # which like other macro errors gets swallowed in the Formatter. |
|---|
| | 143 | # We need to re-raise it in a post_process_request instead. |
|---|
| | 144 | try: |
|---|
| | 145 | req._outheaders = [] |
|---|
| | 146 | req.redirect(page_url) |
|---|
| | 147 | except RequestDone: |
|---|
| | 148 | req.addcomment_raise = True |
|---|