cleanup
[mediagoblin.git] / mediagoblin / tools / request.py
index b1cbe1199b08ff606d5487f15cacc7438e91b3cd..ee342eae0dfff478cd3baecb835f987680743ba6 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 MediaGoblin contributors.  See AUTHORS.
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from mediagoblin.db.util import ObjectId
+import logging
+from mediagoblin.db.models import User
+
+_log = logging.getLogger(__name__)
+
 
 def setup_user_in_request(request):
     """
     Examine a request and tack on a request.user parameter if that's
     appropriate.
     """
-    if not request.session.has_key('user_id'):
+    if 'user_id' not in request.session:
         request.user = None
         return
 
-    user = None
-    user = request.app.db.User.one(
-        {'_id': ObjectId(request.session['user_id'])})
+    request.user = User.query.get(request.session['user_id'])
 
-    if not user:
+    if not request.user:
         # Something's wrong... this user doesn't exist?  Invalidate
         # this session.
-        request.session.invalidate()
-
-    request.user = user
+        _log.warn("Killing session for user id %r", request.session['user_id'])
+        request.session.delete()