]> git.parisson.com Git - teleforma.git/commitdiff
begin item security middleware, fix pagination
authoryomguy <yomguy@parisson.com>
Wed, 18 Apr 2012 07:47:33 +0000 (09:47 +0200)
committeryomguy <yomguy@parisson.com>
Wed, 18 Apr 2012 07:47:33 +0000 (09:47 +0200)
teleforma/middleware.py
teleforma/views.py

index 2dd2e6ec9b0d69e5557a40c4dbbb2c082b8f6177..628eff301c00fd8f824e9748d058d4239fb96695 100644 (file)
@@ -2,7 +2,7 @@ from telemeta.models.system import *
 from teleforma.models import *
 
 
-class OnlyOneUserMiddleware(object):
+class OnlyOneUser(object):
 
     def process_request(self, request):
         if not request.user.is_anonymous():
@@ -18,8 +18,25 @@ class OnlyOneUserMiddleware(object):
             profile.save()
 
 
-class ExportSecurity(object):
+class ItemExportSecurity(object):
 
-    def process_view(self, item_export):
-        pass
-        
+    def process_view(self, request, ItemView.item_export, *args, **kwargs):
+        id = args[0]
+        ext = args[1]
+        item = MediaItem.objects.get(public_id=id)
+        student = request.user.student.all()
+        if student:
+            courses = request.user.student.get().training.courses.all()
+            media = item.media.all()
+            if media:
+                media_courses = media.course.all()
+                for course in media_courses:
+                    if not course in courses:
+                        return 404
+                    else:
+                        return None
+            else:
+                return None
+        else:
+            return None
+                
index 67ea464249efca6850772ad88ce2f0df626eac16..c4fa8022a45479447766f2f9d8ce2a748d7bc3a9 100755 (executable)
@@ -158,11 +158,11 @@ class UsersView(ListView):
     model = User
     template_name='telemeta/users.html'
     context_object_name = 'users'
-    paginate_by = 12
+    #paginate_by = 12
 
     def get_queryset(self):
         return User.objects.all().select_related(depth=1).order_by('last_name')
-
+        
     def get_context_data(self, **kwargs):
         context = super(UsersView, self).get_context_data(**kwargs)
         context['trainings'] = Training.objects.all()