LIL-237. Check user perms in lesson detail view

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 0347852253
commit 70c2787228
  1. 2
      apps/course/templates/course/course.html
  2. 11
      apps/course/views.py

@ -212,7 +212,7 @@
<div class="lessons__title title">Содержание курса</div> <div class="lessons__title title">Содержание курса</div>
<div class="lessons__list"> <div class="lessons__list">
{% for lesson in course.lessons.all %} {% for lesson in course.lessons.all %}
<a href="{% url 'lesson' pk=lesson.id %}"> <a href="{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}{% url 'lesson' pk=lesson.id %}{% else %}#{% endif %}">
<div class="lessons__item"> <div class="lessons__item">
<div class="lessons__subtitle subtitle">{{ lesson.title }}</div> <div class="lessons__subtitle subtitle">{{ lesson.title }}</div>
<div class="lessons__row"> <div class="lessons__row">

@ -166,7 +166,7 @@ class CourseView(DetailView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
response = super().get(request, *args, **kwargs) response = super().get(request, *args, **kwargs)
if (self.object != Course.PUBLISHED and if (self.object.status != 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
self.object.author != request.user)): self.object.author != request.user)):
raise Http404 raise Http404
@ -241,11 +241,20 @@ class CoursesView(ListView):
return 'course/courses.html' return 'course/courses.html'
@method_decorator(login_required, name='dispatch')
class LessonView(DetailView): class LessonView(DetailView):
model = Lesson model = Lesson
context_object_name = 'lesson' context_object_name = 'lesson'
template_name = 'course/lesson.html' template_name = 'course/lesson.html'
def get(self, request, *args, **kwargs):
response = super().get(request, *args, **kwargs)
if (self.object.course.status != Course.PUBLISHED and
(request.user.role not in [User.AUTHOR_ROLE, User.ADMIN_ROLE] or
self.object.course.author != request.user)):
raise Http404
return response
class SearchView(CoursesView): class SearchView(CoursesView):
template_name = 'course/result.html' template_name = 'course/result.html'

Loading…
Cancel
Save