]> git.parisson.com Git - teleforma.git/commitdiff
add security login decorators to views
authoryomguy <yomguy@parisson.com>
Thu, 12 Apr 2012 10:44:08 +0000 (12:44 +0200)
committeryomguy <yomguy@parisson.com>
Thu, 12 Apr 2012 10:44:08 +0000 (12:44 +0200)
teleforma/htdocs/css/teleforma_black.css
teleforma/urls.py
teleforma/views.py

index a3215b257f3a6c27cf0450551482e6e38c9b944c..cfdee9e2abe57ed1902766e30452d81f75326a1b 100644 (file)
@@ -1362,7 +1362,7 @@ input,textarea{
 .desk_large {
     float: left;
     width:75%;
-    padding: 0em 0.8em 0em 1em;
+    padding: 0em 1.8em 0em 1em;
     max-height: 550px;
     overflow-y: scroll;
     }
index 7cbc4fac67d0b8718e93550537c5180aded36391..fde92f71163f1e1f08c459fc51ecd6315365ff19 100644 (file)
@@ -59,10 +59,10 @@ urlpatterns = patterns('',
     url(r'^messages/', include('postman.urls')),
 
     # Users
-    url(r'^user/all/$', UsersView.as_view(), name="teleforma-users"),
-    url(r'^user/by_training/(\w+)/$', UsersTrainingView.as_view(), name="teleforma-training-users"),
-    url(r'^user/all/export/$', user_export.all, name="teleforma-users-xls-export"),
-    url(r'^user/by_training/(?P<id>.*)/export/$', user_export.by_training, name="teleforma-training-users-export"),
+    url(r'^users/$', UsersView.as_view(), name="teleforma-users"),
+    url(r'^users/by_training/(\w+)/$', UsersTrainingView.as_view(), name="teleforma-training-users"),
+    url(r'^users/all/export/$', user_export.all, name="teleforma-users-xls-export"),
+    url(r'^users/by_training/(?P<id>.*)/export/$', user_export.by_training, name="teleforma-training-users-export"),
 
 # CSS+Images (FIXME: for developement only)
     url(r'^teleforma/css/(?P<path>.*)$', 'django.views.static.serve',
index c2efa52de2b18f2e2da7a14cb275e371a1e6b981..8218afb9201db8d2e85e2eb0edb33d1c86a8d4b2 100755 (executable)
@@ -25,6 +25,7 @@ from django.contrib.auth.forms import UserChangeForm
 from django.core.exceptions import ObjectDoesNotExist
 from django.contrib.syndication.views import Feed
 from django.core.paginator import Paginator
+from django.contrib.auth.decorators import login_required
 
 from teleforma.models import *
 from telemeta.views.base import *
@@ -90,6 +91,11 @@ class CourseView(DetailView):
         context['notes'] = course.notes.all().filter(author=self.request.user)
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(CourseView, self).dispatch(*args, **kwargs)
+
+
 class CoursesView(ListView):
 
     model = Course
@@ -101,6 +107,11 @@ class CoursesView(ListView):
         context['notes'] = Note.objects.filter(author=self.request.user)
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(CoursesView, self).dispatch(*args, **kwargs)
+
+
 class MediaView(DetailView):
 
     model = Media
@@ -118,6 +129,11 @@ class MediaView(DetailView):
         context['room'] = media.course.chat_room
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(MediaView, self).dispatch(*args, **kwargs)
+
+
 class UsersView(ListView):
 
     model = User
@@ -134,6 +150,11 @@ class UsersView(ListView):
         context['all_users'] = User.objects.all()
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(UsersView, self).dispatch(*args, **kwargs)
+
+
 class UsersTrainingView(UsersView):
 
     def get_queryset(self):
@@ -141,12 +162,18 @@ class UsersTrainingView(UsersView):
         self.trainings = Training.objects.filter(id=self.args[0])
         return User.objects.filter(student__training__in=self.trainings)
 
+    @login_required
     def get_context_data(self, **kwargs):
         context = super(UsersTrainingView, self).get_context_data(**kwargs)
         context['training'] = Training.objects.get(id=self.args[0])
         context['all_users'] = User.objects.filter(student__training__in=self.trainings).all()
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(UsersTrainingView, self).dispatch(*args, **kwargs)
+
+
 class UsersXLSExport(object):
 
     first_row = 2