From 834fb3c644acd2e19b043bd155973f8c5b32f2fd Mon Sep 17 00:00:00 2001 From: James Graham Date: Mon, 30 Mar 2020 20:52:09 +0100 Subject: [PATCH] fix: Add login required on all remaining views --- activities/views.py | 9 +++++---- breccia_mapper/views.py | 9 ++++++++- people/views/export.py | 3 ++- people/views/person.py | 5 +++-- 4 files changed, 18 insertions(+), 8 deletions(-) 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. """