aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/decorators.py
diff options
context:
space:
mode:
authorMike Linksvayer <ml@gondwanaland.com>2012-12-20 12:50:43 -0800
committerMike Linksvayer <ml@gondwanaland.com>2012-12-20 12:50:43 -0800
commit1d0148aef1493467dacb6c39c4e080ee4a5246d2 (patch)
tree5213418660d4e079eb8dac6bc8ea2e4fdc140088 /mediagoblin/decorators.py
parent200433dc38a2139462e0331be36ee49a80a81a12 (diff)
parent5c99cd01a70f2d597ac7669e8d944ddf79b05281 (diff)
downloadmediagoblin-1d0148aef1493467dacb6c39c4e080ee4a5246d2.tar.lz
mediagoblin-1d0148aef1493467dacb6c39c4e080ee4a5246d2.tar.xz
mediagoblin-1d0148aef1493467dacb6c39c4e080ee4a5246d2.zip
Merge branch 'master' of git://gitorious.org/mediagoblin/mediagoblin
Conflicts: docs/source/siteadmin/media-types.rst
Diffstat (limited to 'mediagoblin/decorators.py')
-rw-r--r--mediagoblin/decorators.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index 9be9d4cc..90b36771 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -22,6 +22,7 @@ from urllib import urlencode
from webob import exc
from mediagoblin.db.util import ObjectId, InvalidId
+from mediagoblin.db.sql.models import User
from mediagoblin.tools.response import redirect, render_404
@@ -52,6 +53,20 @@ def require_active_login(controller):
return new_controller_func
+def active_user_from_url(controller):
+ """Retrieve User() from <user> URL pattern and pass in as url_user=...
+
+ Returns a 404 if no such active user has been found"""
+ @wraps(controller)
+ def wrapper(request, *args, **kwargs):
+ user = User.query.filter_by(username=request.matchdict['user']).first()
+ if user is None:
+ return render_404(request)
+
+ return controller(request, *args, url_user=user, **kwargs)
+
+ return wrapper
+
def user_may_delete_media(controller):
"""