Perform serverside expiration of sessions on get attempt.
Also remove unnecessary conversion to int.
This commit is contained in:
		
							parent
							
								
									cdd8f9e248
								
							
						
					
					
						commit
						cf59f96813
					
				
					 1 changed files with 9 additions and 2 deletions
				
			
		|  | @ -38,6 +38,8 @@ class SessionManager: | ||||||
|     def get(self, token): |     def get(self, token): | ||||||
|         token = _normalize_token(token) |         token = _normalize_token(token) | ||||||
|         session = self.sessions[token] |         session = self.sessions[token] | ||||||
|  |         if session.expired(): | ||||||
|  |             raise KeyError(token) | ||||||
|         return session |         return session | ||||||
| 
 | 
 | ||||||
|     def give_token(self, function): |     def give_token(self, function): | ||||||
|  | @ -92,7 +94,7 @@ class Session: | ||||||
|         self.user = user |         self.user = user | ||||||
|         self.ip_address = request.remote_addr |         self.ip_address = request.remote_addr | ||||||
|         self.user_agent = request.headers.get('User-Agent', '') |         self.user_agent = request.headers.get('User-Agent', '') | ||||||
|         self.last_activity = int(etiquette.helpers.now()) |         self.last_activity = etiquette.helpers.now() | ||||||
| 
 | 
 | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         if self.user: |         if self.user: | ||||||
|  | @ -100,5 +102,10 @@ class Session: | ||||||
|         else: |         else: | ||||||
|             return 'Session %s for anonymous' % self.token |             return 'Session %s for anonymous' % self.token | ||||||
| 
 | 
 | ||||||
|  |     def expired(self): | ||||||
|  |         now = etiquette.helpers.now() | ||||||
|  |         age = now - self.last_activity | ||||||
|  |         return age > SESSION_MAX_AGE | ||||||
|  | 
 | ||||||
|     def maintain(self): |     def maintain(self): | ||||||
|         self.last_activity = int(etiquette.helpers.now()) |         self.last_activity = etiquette.helpers.now() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue