diff --git a/trac/web/main.py b/trac/web/main.py
|
a
|
b
|
|
| 46 | 46 | from trac.util.text import exception_to_unicode, shorten_line, to_unicode |
| 47 | 47 | from trac.util.translation import _ |
| 48 | 48 | from trac.web.api import * |
| 49 | | from trac.web.chrome import Chrome |
| | 49 | from trac.web.chrome import Chrome, add_warning |
| 50 | 50 | from trac.web.clearsilver import HDFWrapper |
| 51 | 51 | from trac.web.href import Href |
| 52 | 52 | from trac.web.session import Session |
| … |
… |
|
| 214 | 214 | else: # Genshi |
| 215 | 215 | template, data, content_type = \ |
| 216 | 216 | self._post_process_request(req, *resp) |
| | 217 | try: |
| | 218 | # Give the session a chance to persist changes |
| | 219 | req.session.save() |
| | 220 | except Exception, e: # TracDatabaseError (#6348) |
| | 221 | add_warning( |
| | 222 | req, _("Changes to user session couldn't be " |
| | 223 | "saved (%(err)s)", |
| | 224 | err=exception_to_unicode(e))) |
| 217 | 225 | if 'hdfdump' in req.args: |
| 218 | 226 | req.perm.require('TRAC_ADMIN') |
| 219 | 227 | # debugging helper - no need to render first |
| … |
… |
|
| 224 | 232 | else: |
| 225 | 233 | output = chrome.render_template(req, template, |
| 226 | 234 | data, content_type) |
| 227 | | # Give the session a chance to persist changes |
| 228 | | req.session.save() |
| 229 | 235 | req.send(output, content_type or 'text/html') |
| 230 | 236 | else: |
| 231 | 237 | self._post_process_request(req) |
diff --git a/trac/web/session.py b/trac/web/session.py
|
a
|
b
|
|
| 42 | 42 | else: |
| 43 | 43 | self.authenticated = False |
| 44 | 44 | |
| | 45 | def __setitem__(self, key, value): |
| | 46 | dict.__setitem__(self, key, unicode(value)) |
| | 47 | |
| 45 | 48 | def get_session(self, sid, authenticated=False): |
| 46 | 49 | self.env.log.debug('Retrieving session for ID %r', sid) |
| 47 | 50 | |