From: <bla...@us...> - 2007-05-26 16:36:17
|
Author: blackbird Date: 2007-05-26 18:35:51 +0200 (Sat, 26 May 2007) New Revision: 5159 Modified: trunk/sandbox/py-rest-doc/sphinx/web/userdb.py trunk/sandbox/py-rest-doc/sphinx/web/util.py Log: fixed bug in session system Modified: trunk/sandbox/py-rest-doc/sphinx/web/userdb.py =================================================================== --- trunk/sandbox/py-rest-doc/sphinx/web/userdb.py 2007-05-26 16:13:52 UTC (rev 5158) +++ trunk/sandbox/py-rest-doc/sphinx/web/userdb.py 2007-05-26 16:35:51 UTC (rev 5159) @@ -76,6 +76,7 @@ """Add a new user and return the generated password.""" pw = gen_password(8, add_special_char=False) self.set_password(user, pw) + self.privileges[user].clear() return pw def check_password(self, user, password): Modified: trunk/sandbox/py-rest-doc/sphinx/web/util.py =================================================================== --- trunk/sandbox/py-rest-doc/sphinx/web/util.py 2007-05-26 16:13:52 UTC (rev 5158) +++ trunk/sandbox/py-rest-doc/sphinx/web/util.py 2007-05-26 16:35:51 UTC (rev 5159) @@ -438,17 +438,23 @@ if path.exists(self.filename): with file(self.filename, 'rb') as f: self.update(pickle.load(f)) + self._orig = dict(self) @property def filename(self): if self.sid is not None: return path.join(tempfile.gettempdir(), '__pydoc_sess' + self.sid) + @property + def worth_saving(self): + return self != self._orig + def save(self): if self.sid is None: self.sid = sha1('%s|%s' % (time(), random())).hexdigest() with file(self.filename, 'wb') as f: pickle.dump(dict(self), f, pickle.HIGHEST_PROTOCOL) + self._orig = dict(self) class Request(object): @@ -657,7 +663,7 @@ def __call__(self, environ, start_response): req = environ['werkzeug.request'] - if req.session: + if req.session.worth_saving: req.session.save() self.set_cookie(SID_COOKIE_NAME, req.session.sid) |