# 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()