Skip to content

Commit

Permalink
add ComplexSignup group permission field
Browse files Browse the repository at this point in the history
  • Loading branch information
felixrindt committed Nov 28, 2024
1 parent d0e33ba commit 8106773
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
31 changes: 29 additions & 2 deletions ephios/plugins/complexsignup/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _

from ephios.core.signals import nav_link, register_shift_structures
from ephios.core.signals import (
nav_link,
register_group_permission_fields,
register_shift_structures,
)
from ephios.extra.permissions import PermissionField
from ephios.plugins.complexsignup.structure import ComplexShiftStructure
from ephios.plugins.complexsignup.views import BuildingBlockEditorView


@receiver(
Expand All @@ -28,6 +34,27 @@ def add_nav_link(sender, request, **kwargs):
"group": _("Management"),
}
]
if request.user.has_perm("core.delete_event")
if request.user.has_perm(BuildingBlockEditorView.permission_required)
else []
)


@receiver(
register_group_permission_fields,
dispatch_uid="ephios.plugins.complexsignup.signals.register_group_permission_fields",
)
def group_permission_fields(sender, **kwargs):
return [
(
"manage_complex",
PermissionField(
label=_("Manage Signup Blocks"),
help_text=_(
"Allows this group to manage signup blocks that can be used in reusable structures and complex shift setups."
),
permissions=[
BuildingBlockEditorView.permission_required,
],
),
)
]
4 changes: 1 addition & 3 deletions ephios/plugins/complexsignup/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,7 @@ def save(self):

class BuildingBlockEditorView(CustomPermissionRequiredMixin, FormView):
template_name = "complexsignup/vue_editor.html"
permission_required = (
"core.delete_event" # debatable... deleting blocks is a destructive action
)
permission_required = "complexsignup.change_buildingblock"
form_class = BuildingBlocksForm
success_url = reverse_lazy("complexsignup:blocks_editor")

Expand Down

0 comments on commit 8106773

Please sign in to comment.