move a few things away in to-be-integrated/
[unfold.git] / views / loginrequired.py
diff --git a/views/loginrequired.py b/views/loginrequired.py
deleted file mode 100644 (file)
index 0f46ff7..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-from django.contrib.auth.decorators     import login_required
-from django.utils.decorators            import method_decorator
-from django.http                        import HttpResponseRedirect
-# for 'as_view' that we need to call in urls.py and the like
-from django.views.generic.base          import TemplateView
-
-from manifold.manifoldresult            import ManifoldException
-
-########## the base class for views that require a login
-class LoginRequiredView (TemplateView):
-
-    @method_decorator(login_required)
-    def dispatch(self, request, *args, **kwargs):
-        return super(LoginRequiredView, self).dispatch(request, *args, **kwargs)
-
-
-########## the base class for views that need to protect against ManifoldException
-# a decorator for view classes to catch manifold exceptions
-# by design views should not directly exercise a manifold query
-# given that these are asynchroneous, you would expect a view to just 
-# return a mundane skeleton
-# however of course this is not always true, 
-# e.g. we deal with metadata some other way, and so
-# it is often a good idea for a view to monitor these exceptions
-# and to take this opportunity to logout people 
-
-def logout_on_manifold_exception (fun_that_returns_httpresponse):
-    def wrapped (request, *args, **kwds):
-        print 'wrapped by logout_on_manifold_exception'
-        try:
-            return fun_that_returns_httpresponse(request,*args, **kwds)
-        except ManifoldException, manifold_result:
-            # xxx we need a means to display this message to user...
-            from django.contrib.auth import logout
-            logout(request)
-            return HttpResponseRedirect ('/')
-        except Exception, e:
-            # xxx we need to sugarcoat this error message in some error template...
-            print "Unexpected exception",e
-            import traceback
-            traceback.print_exc()
-            return HttpResponseRedirect ('/')
-    return wrapped
-
-# at first sight this matters only for views that require login
-# so for now we expose a single class that behaves like 
-# login_required + logout_on_manifold_exception
-class LoginRequiredAutoLogoutView (TemplateView):
-
-    @logout_on_manifold_exception
-    @method_decorator(login_required)
-    def dispatch (self, request, *args, **kwds):
-        return super(LoginRequiredAutoLogoutView,self).dispatch(request,*args,**kwds)