Another .one -> .find_one
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 12 Mar 2012 23:17:06 +0000 (00:17 +0100)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Mon, 12 Mar 2012 23:19:53 +0000 (00:19 +0100)
Same idea as in the previous commit.
Joar caught this one.

To reproduce
1. Create a user with an all-decimal ObjectId in mongo
2. Login using that user, while mongodb is enabled.
3. Switch instance to sql.
4. Restart.
5. Refresh any page.

This will error, because no user with that object id exists
any more.

While around, improved logging.

mediagoblin/tools/request.py

index a45f716a769677b6ed9e2d0195304f3313129027..ae372c92a0a7fad652dcb6dcca3a3556a401bb49 100644 (file)
 # 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/>.
 
+import logging
 from mediagoblin.db.util import ObjectId, InvalidId
 
+_log = logging.getLogger(__name__)
+
+
 def setup_user_in_request(request):
     """
     Examine a request and tack on a request.user parameter if that's
@@ -30,12 +34,12 @@ def setup_user_in_request(request):
     except InvalidId:
         user = None
     else:
-        user = request.db.User.one({'_id': oid})
+        user = request.db.User.find_one({'_id': oid})
 
     if not user:
         # Something's wrong... this user doesn't exist?  Invalidate
         # this session.
-        print "Killing session for %r" % request.session['user_id']
+        _log.warn("Killing session for user id %r", request.session['user_id'])
         request.session.invalidate()
 
     request.user = user