Skip to content

Commit e90a7c7

Browse files
committed
remove a few unused mixins, rename some permission mixins to make it more clear what they do
1 parent 9786498 commit e90a7c7

5 files changed

Lines changed: 33 additions & 34 deletions

File tree

src/backoffice/views/backoffice.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from django.http import HttpResponse
77
from django.views.generic import TemplateView
88

9-
from utils.mixins import TeamMemberRequiredMixin
9+
from utils.mixins import AnyTeamMemberRequiredMixin
1010
from utils.mixins import RaisePermissionRequiredMixin
1111
from camps.mixins import CampViewMixin
1212
from facilities.models import FacilityFeedback
@@ -16,7 +16,7 @@
1616
logger = logging.getLogger("bornhack.%s" % __name__)
1717

1818

19-
class BackofficeIndexView(CampViewMixin, TeamMemberRequiredMixin, TemplateView):
19+
class BackofficeIndexView(CampViewMixin, AnyTeamMemberRequiredMixin, TemplateView):
2020
"""
2121
The Backoffice index view is available to anyone who is an approved member of any team for the current camp.
2222
"""

src/backoffice/views/facilities.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from facilities.models import FacilityType
3030
from teams.models import Team
3131
from utils.widgets import IconPickerWidget
32-
from utils.mixins import TeamFacilitatorRequiredMixin
32+
from utils.mixins import AnyTeamFacilitatorRequiredMixin
3333

3434
logger = logging.getLogger("bornhack.%s" % __name__)
3535

@@ -214,7 +214,7 @@ def get_success_url(self):
214214
# ########### FACILITIES ######################
215215

216216

217-
class FacilityListView(CampViewMixin, TeamFacilitatorRequiredMixin, ListView):
217+
class FacilityListView(CampViewMixin, AnyTeamFacilitatorRequiredMixin, ListView):
218218
model = Facility
219219
template_name = "facility_list_backoffice.html"
220220

@@ -251,7 +251,7 @@ def get_context_data(self, **kwargs):
251251
return context
252252

253253

254-
class FacilityDetailView(TeamFacilitatorRequiredMixin, DetailView):
254+
class FacilityDetailView(AnyTeamFacilitatorRequiredMixin, DetailView):
255255
model = Facility
256256
template_name = "facility_detail_backoffice.html"
257257
pk_url_kwarg = "facility_uuid"
@@ -281,7 +281,7 @@ def get_queryset(self, *args, **kwargs):
281281
return qs.prefetch_related("opening_hours")
282282

283283

284-
class FacilityCreateView(CampViewMixin, TeamFacilitatorRequiredMixin, CreateView):
284+
class FacilityCreateView(CampViewMixin, AnyTeamFacilitatorRequiredMixin, CreateView):
285285
model = Facility
286286
template_name = "facility_form.html"
287287
fields = ["facility_type", "name", "description", "location"]

src/backoffice/views/maps.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from maps.models import Layer
2424
from teams.models import Team
2525
from utils.widgets import IconPickerWidget
26-
from utils.mixins import TeamMapperRequiredMixin
26+
from utils.mixins import AnyTeamMapperRequiredMixin
2727
from maps.mixins import LayerMapperViewMixin
2828
from maps.mixins import ExternalLayerMapperViewMixin
2929

@@ -33,7 +33,7 @@
3333
# ################# LAYERS ########################
3434

3535

36-
class MapLayerListView(CampViewMixin, TeamMapperRequiredMixin, ListView):
36+
class MapLayerListView(CampViewMixin, AnyTeamMapperRequiredMixin, ListView):
3737
model = Layer
3838
template_name = "maps_layer_list_backoffice.html"
3939
context_object_name = "maps_layer_list"
@@ -164,7 +164,7 @@ def create_feature_object(self, feature_uuid, props, layer, geom):
164164
self.error_count += 1
165165

166166

167-
class MapLayerCreateView(CampViewMixin, TeamMapperRequiredMixin, CreateView):
167+
class MapLayerCreateView(CampViewMixin, AnyTeamMapperRequiredMixin, CreateView):
168168
model = Layer
169169
template_name = "maps_layer_form.html"
170170
fields = [
@@ -389,7 +389,7 @@ def get_success_url(self):
389389
# ################# EXTERNAL LAYERS ################
390390

391391

392-
class MapExternalLayerCreateView(CampViewMixin, TeamMapperRequiredMixin, CreateView):
392+
class MapExternalLayerCreateView(CampViewMixin, AnyTeamMapperRequiredMixin, CreateView):
393393
model = ExternalLayer
394394
template_name = "maps_external_layer_form.html"
395395
fields = [

src/backoffice/views/pos.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import json
2-
from utils.mixins import TeamPosRequiredMixin
2+
from utils.mixins import AnyTeamPosRequiredMixin
33
import logging
44

55
from django.contrib import messages
@@ -41,7 +41,7 @@
4141
logger = logging.getLogger("bornhack.%s" % __name__)
4242

4343

44-
class PosListView(CampViewMixin, TeamPosRequiredMixin, ListView):
44+
class PosListView(CampViewMixin, AnyTeamPosRequiredMixin, ListView):
4545
"""Show a list of Pos this user has access to (through team pos permissions)."""
4646

4747
model = Pos
@@ -270,7 +270,7 @@ def setup(self, *args, **kwargs):
270270

271271
class PosTransactionListView(
272272
CampViewMixin,
273-
TeamPosRequiredMixin,
273+
AnyTeamPosRequiredMixin,
274274
SingleTableMixin,
275275
FilterView,
276276
):
@@ -306,7 +306,7 @@ def get_context_data(self, *args, **kwargs):
306306

307307
class PosSaleListView(
308308
CampViewMixin,
309-
TeamPosRequiredMixin,
309+
AnyTeamPosRequiredMixin,
310310
SingleTableMixin,
311311
FilterView,
312312
):
@@ -354,7 +354,7 @@ def form_valid(self, form):
354354

355355
class PosProductListView(
356356
CampViewMixin,
357-
TeamPosRequiredMixin,
357+
AnyTeamPosRequiredMixin,
358358
SingleTableMixin,
359359
FilterView,
360360
):
@@ -424,7 +424,7 @@ def get_context_data(self, **kwargs):
424424

425425
class PosProductCostListView(
426426
CampViewMixin,
427-
TeamPosRequiredMixin,
427+
AnyTeamPosRequiredMixin,
428428
SingleTableMixin,
429429
FilterView,
430430
):

src/utils/mixins.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,44 +45,43 @@ def dispatch(self, request, *args, **kwargs):
4545
user_perms = self.request.user.get_all_permissions()
4646
for perm in user_perms:
4747
if perm.endswith(f"_team_{self.perm}"):
48-
# user has the permissio n in some team
48+
# user has the permission in some team
4949
return super().dispatch(request, *args, **kwargs)
5050
messages.error(request, "No thanks")
5151
raise PermissionDenied()
5252

5353

54-
class TeamLeadRequiredMixin(BaseTeamPermRequiredMixin):
55-
"""Mixin for views available to anyone with a "camps.<team>_team_lead" permission for any team."""
5654

57-
perm = "lead"
55+
class AnyTeamMemberRequiredMixin(BaseTeamPermRequiredMixin):
56+
"""Mixin for views available to anyone with a "camps.<team>_team_member" permission for any team.
5857
59-
60-
class TeamMemberRequiredMixin(BaseTeamPermRequiredMixin):
61-
"""Mixin for views available to anyone with a "camps.<team>_team_member" permission for any team."""
58+
Currently only used to control backoffice access.
59+
"""
6260

6361
perm = "member"
6462

6563

66-
class TeamMapperRequiredMixin(BaseTeamPermRequiredMixin):
67-
"""Mixin for views available to anyone with a "camps.<team>_team_mapper" permission for any team."""
64+
class AnyTeamMapperRequiredMixin(BaseTeamPermRequiredMixin):
65+
"""Mixin for views available to anyone with a "camps.<team>_team_mapper" permission for any team.
6866
69-
perm = "mapper"
67+
Currently only used in backoffice map layer list and create views.
68+
"""
7069

70+
perm = "mapper"
7171

72-
class TeamFacilitatorRequiredMixin(BaseTeamPermRequiredMixin):
73-
"""Mixin for views available to anyone with a "camps.<team>_team_facilitator" permission for any team."""
7472

75-
perm = "facilitator"
73+
class AnyTeamFacilitatorRequiredMixin(BaseTeamPermRequiredMixin):
74+
"""Mixin for views available to anyone with a "camps.<team>_team_facilitator" permission for any team.
7675
76+
Currently only used in backoffice facility list, create, and detail views."""
7777

78-
class TeamInfopagerRequiredMixin(BaseTeamPermRequiredMixin):
79-
"""Mixin for views available to anyone with a "camps.<team>_team_infopager" permission for any team."""
78+
perm = "facilitator"
8079

81-
perm = "infopager"
8280

81+
class AnyTeamPosRequiredMixin(BaseTeamPermRequiredMixin):
82+
"""Mixin for views available to anyone with a "camps.<team>_team_pos" permission for any team.
8383
84-
class TeamPosRequiredMixin(BaseTeamPermRequiredMixin):
85-
"""Mixin for views available to anyone with a "camps.<team>_team_pos" permission for any team."""
84+
Currently used to control access to the backoffice POS list, POS Transaction List, POS sale list, POS product list, and POS Product Cost List views."""
8685

8786
perm = "pos"
8887

0 commit comments

Comments
 (0)