when running get_unique_filepath, clean_listy_filepath from the get-go
[mediagoblin.git] / mediagoblin / util.py
index 2af9b3805870671c287e13450acc283478673473..d8d981c9a9d4f19d064dbffeb39e737097674791 100644 (file)
@@ -1,4 +1,21 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# 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
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# 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 jinja2
+import mongokit
 
 def get_jinja_env(user_template_path=None):
     if user_template_path:
@@ -9,3 +26,24 @@ def get_jinja_env(user_template_path=None):
         loader = jinja2.PackageLoader('mediagoblin', 'templates')
 
     return jinja2.Environment(loader=loader, autoescape=True)
+
+
+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'):
+        request.user = None
+        return
+
+    user = None
+    user = request.db.User.one(
+        {'_id': mongokit.ObjectId(request.session['user_id'])})
+
+    if not user:
+        # Something's wrong... this user doesn't exist?  Invalidate
+        # this session.
+        request.session.invalidate()
+
+    request.user = user