Use inspect_table; default user license==None.
[mediagoblin.git] / mediagoblin / decorators.py
index a40f1d5a59c49eef6994240d492060e8179d0fc3..092356144931b1121d94e2ce380cf3dcd1af9125 100644 (file)
@@ -20,6 +20,7 @@ from urlparse import urljoin
 from werkzeug.exceptions import Forbidden, NotFound
 from werkzeug.urls import url_quote
 
+from mediagoblin import mg_globals as mgg
 from mediagoblin.db.models import MediaEntry, User
 from mediagoblin.tools.response import redirect, render_404
 
@@ -31,11 +32,11 @@ def require_active_login(controller):
     @wraps(controller)
     def new_controller_func(request, *args, **kwargs):
         if request.user and \
-                request.user.get('status') == u'needs_email_verification':
+                request.user.status == u'needs_email_verification':
             return redirect(
                 request, 'mediagoblin.user_pages.user_home',
                 user=request.user.username)
-        elif not request.user or request.user.get('status') != u'active':
+        elif not request.user or request.user.status != u'active':
             next_url = urljoin(
                     request.urlgen('mediagoblin.auth.login',
                         qualified=True),
@@ -222,3 +223,14 @@ def get_media_entry_by_id(controller):
         return controller(request, media=media, *args, **kwargs)
 
     return wrapper
+
+
+def get_workbench(func):
+    """Decorator, passing in a workbench as kwarg which is cleaned up afterwards"""
+
+    @wraps(func)
+    def new_func(*args, **kwargs):
+        with mgg.workbench_manager.create() as workbench:
+            return func(*args, workbench=workbench, **kwargs)
+
+    return new_func