diff options
author | Jef van Schendel <jefvanschendel@gmail.com> | 2011-06-04 02:22:09 +0200 |
---|---|---|
committer | Jef van Schendel <jefvanschendel@gmail.com> | 2011-06-04 02:22:09 +0200 |
commit | f4b2bd93f2f9c0f5fbef5214b2fe97912857b175 (patch) | |
tree | 1a83f2b7a82d10a1a8f795f5f9876cf5ba5ad269 /mediagoblin/decorators.py | |
parent | 2165d464a4aed262deeb7b8b0a3fc283c7adc326 (diff) | |
parent | c042bc6e218e99f93c1e642b1d77839ca0f4b1f9 (diff) | |
download | mediagoblin-f4b2bd93f2f9c0f5fbef5214b2fe97912857b175.tar.lz mediagoblin-f4b2bd93f2f9c0f5fbef5214b2fe97912857b175.tar.xz mediagoblin-f4b2bd93f2f9c0f5fbef5214b2fe97912857b175.zip |
Merge remote-tracking branch 'gitorious/master'
Diffstat (limited to 'mediagoblin/decorators.py')
-rw-r--r-- | mediagoblin/decorators.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index a5bede54..34575320 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -102,3 +102,23 @@ def get_user_media_entry(controller): return controller(request, media=media, *args, **kwargs) return _make_safe(wrapper, controller) + +def get_media_entry_by_id(controller): + """ + Pass in a MediaEntry based off of a url component + """ + def wrapper(request, *args, **kwargs): + try: + media = request.db.MediaEntry.find_one( + {'_id': ObjectId(request.matchdict['media']), + 'state': 'processed'}) + except InvalidId: + return exc.HTTPNotFound() + + # Still no media? Okay, 404. + if not media: + return exc.HTTPNotFound() + + return controller(request, media=media, *args, **kwargs) + + return _make_safe(wrapper, controller) |