LIL-237. Check auth in course detail view

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent a00538a8ed
commit 0347852253
  1. 8
      apps/course/views.py

@ -5,6 +5,7 @@ from django.http import JsonResponse, Http404
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.template import loader, Context, Template from django.template import loader, Context, Template
from django.views.generic import View, CreateView, DetailView, ListView, TemplateView from django.views.generic import View, CreateView, DetailView, ListView, TemplateView
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_http_methods from django.views.decorators.http import require_http_methods
from .models import Course, Like, Lesson, CourseComment, LessonComment from .models import Course, Like, Lesson, CourseComment, LessonComment
@ -157,18 +158,19 @@ class CourseEditView(TemplateView):
return context return context
@method_decorator(login_required, name='dispatch')
class CourseView(DetailView): class CourseView(DetailView):
model = Course model = Course
context_object_name = 'course' context_object_name = 'course'
template_name = 'course/course.html' template_name = 'course/course.html'
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
request = super().get(request, *args, **kwargs) response = super().get(request, *args, **kwargs)
if (self.object != Course.PUBLISHED and if (self.object != Course.PUBLISHED and
(request.user.role not in [User.AUTHOR_ROLE, User.ADMIN_ROLE] or (request.user.role not in [User.AUTHOR_ROLE, User.ADMIN_ROLE] or
object.author != request.user)): self.object.author != request.user)):
raise Http404 raise Http404
return request return response
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)

Loading…
Cancel
Save