|
1 | | -# $Id: client.py,v 1.66 2003-01-11 23:52:28 richard Exp $ |
| 1 | +# $Id: client.py,v 1.67 2003-01-13 22:14:00 kedder Exp $ |
2 | 2 |
|
3 | 3 | __doc__ = """ |
4 | 4 | WWW request handler (also used in the stand-alone server). |
@@ -190,24 +190,34 @@ def inner_main(self): |
190 | 190 | # everything else |
191 | 191 | self.write(cgitb.html()) |
192 | 192 |
|
| 193 | + def clean_sessions(self): |
| 194 | + '''age sessions, remove when they haven't been used for a week. |
| 195 | + Do it only once an hour''' |
| 196 | + sessions = self.db.sessions |
| 197 | + last_clean = sessions.get('last_clean', 'last_use') or 0 |
| 198 | + |
| 199 | + week = 60*60*24*7 |
| 200 | + hour = 60*60 |
| 201 | + now = time.time() |
| 202 | + if now - last_clean > hour: |
| 203 | + # remove age sessions |
| 204 | + for sessid in sessions.list(): |
| 205 | + print sessid |
| 206 | + interval = now - sessions.get(sessid, 'last_use') |
| 207 | + if interval > week: |
| 208 | + sessions.destroy(sessid) |
| 209 | + sessions.set('last_clean', last_use=time.time()) |
| 210 | + |
193 | 211 | def determine_user(self): |
194 | 212 | ''' Determine who the user is |
195 | 213 | ''' |
196 | 214 | # determine the uid to use |
197 | 215 | self.opendb('admin') |
198 | | - |
| 216 | + # clean age sessions |
| 217 | + self.clean_sessions() |
199 | 218 | # make sure we have the session Class |
200 | 219 | sessions = self.db.sessions |
201 | 220 |
|
202 | | - # age sessions, remove when they haven't been used for a week |
203 | | - # TODO: this shouldn't be done every access |
204 | | - week = 60*60*24*7 |
205 | | - now = time.time() |
206 | | - for sessid in sessions.list(): |
207 | | - interval = now - sessions.get(sessid, 'last_use') |
208 | | - if interval > week: |
209 | | - sessions.destroy(sessid) |
210 | | - |
211 | 221 | # look up the user session cookie |
212 | 222 | cookie = Cookie.Cookie(self.env.get('HTTP_COOKIE', '')) |
213 | 223 | user = 'anonymous' |
|
0 commit comments