diff --git a/activities/views.py b/activities/views.py index a2b4a0e..72b2d55 100644 --- a/activities/views.py +++ b/activities/views.py @@ -3,6 +3,7 @@ Views for displaying / manipulating models within the Activities app. """ import json +from django.contrib.auth.mixins import LoginRequiredMixin from django.http import HttpResponse from django.views.generic import DetailView, ListView, View from django.views.generic.detail import SingleObjectMixin @@ -12,7 +13,7 @@ from people import permissions from . import models -class ActivitySeriesListView(ListView): +class ActivitySeriesListView(LoginRequiredMixin, ListView): """ View displaying a list of :class:`ActivitySeries`. """ @@ -21,7 +22,7 @@ class ActivitySeriesListView(ListView): context_object_name = 'activity_series_list' -class ActivitySeriesDetailView(DetailView): +class ActivitySeriesDetailView(LoginRequiredMixin, DetailView): """ View displaying details of a single :class:`ActivitySeries`. """ @@ -30,7 +31,7 @@ class ActivitySeriesDetailView(DetailView): context_object_name = 'activity_series' -class ActivityListView(ListView): +class ActivityListView(LoginRequiredMixin, ListView): """ View displaying a list of :class:`Activity`. """ @@ -38,7 +39,7 @@ class ActivityListView(ListView): template_name = 'activities/activity/list.html' -class ActivityDetailView(DetailView): +class ActivityDetailView(LoginRequiredMixin, DetailView): """ View displaying details of a single :class:`Activity`. """ diff --git a/breccia_mapper/views.py b/breccia_mapper/views.py index 33ed8cd..86480e6 100644 --- a/breccia_mapper/views.py +++ b/breccia_mapper/views.py @@ -1,3 +1,10 @@ +""" +Views belonging to the core of the project. + +These views don't represent any of the models in the apps. +""" + +from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import TemplateView @@ -5,5 +12,5 @@ class IndexView(TemplateView): template_name = 'index.html' -class ExportListView(TemplateView): +class ExportListView(LoginRequiredMixin, TemplateView): template_name = 'export.html' diff --git a/people/views/export.py b/people/views/export.py index 343b7f7..6e62b26 100644 --- a/people/views/export.py +++ b/people/views/export.py @@ -1,13 +1,14 @@ import csv import typing +from django.contrib.auth.mixins import LoginRequiredMixin from django.http import HttpResponse from django.views.generic.list import BaseListView from .. import models, serializers -class CsvExportView(BaseListView): +class CsvExportView(LoginRequiredMixin, BaseListView): model = None serializer_class = None diff --git a/people/views/person.py b/people/views/person.py index 1ba28f5..92e7ee9 100644 --- a/people/views/person.py +++ b/people/views/person.py @@ -2,12 +2,13 @@ Views for displaying or manipulating instances of :class:`Person`. """ +from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import CreateView, DetailView, ListView, UpdateView from people import forms, models, permissions -class PersonCreateView(CreateView): +class PersonCreateView(LoginRequiredMixin, CreateView): """ View to create a new instance of :class:`Person`. @@ -24,7 +25,7 @@ class PersonCreateView(CreateView): return super().form_valid(form) -class PersonListView(ListView): +class PersonListView(LoginRequiredMixin, ListView): """ View displaying a list of :class:`Person` objects - searchable. """