Реализовал систему разрешений

This commit is contained in:
2025-12-15 11:45:25 +03:00
parent ca7709ebff
commit 46dc79b93f
33 changed files with 1340 additions and 124 deletions

View File

@@ -15,7 +15,8 @@ from django.views.generic import CreateView, UpdateView
from mapsapp.models import Transponders
from ..forms import TransponderForm
from ..mixins import RoleRequiredMixin, FormMessageMixin
from ..mixins import FormMessageMixin
from ..permissions import PermissionRequiredMixin
from ..models import Satellite, Polarization
from ..utils import parse_pagination_params
@@ -246,15 +247,15 @@ class TransponderListView(LoginRequiredMixin, View):
return render(request, "mainapp/transponder_list.html", context)
class TransponderCreateView(RoleRequiredMixin, FormMessageMixin, CreateView):
class TransponderCreateView(PermissionRequiredMixin, FormMessageMixin, CreateView):
"""View for creating a new transponder."""
permission_required = 'transponder_create'
model = Transponders
form_class = TransponderForm
template_name = "mainapp/transponder_form.html"
success_url = reverse_lazy("mainapp:transponder_list")
success_message = "Транспондер успешно создан!"
required_roles = ["admin", "moderator"]
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
@@ -268,15 +269,15 @@ class TransponderCreateView(RoleRequiredMixin, FormMessageMixin, CreateView):
return super().form_valid(form)
class TransponderUpdateView(RoleRequiredMixin, FormMessageMixin, UpdateView):
class TransponderUpdateView(PermissionRequiredMixin, FormMessageMixin, UpdateView):
"""View for updating an existing transponder."""
permission_required = 'transponder_edit'
model = Transponders
form_class = TransponderForm
template_name = "mainapp/transponder_form.html"
success_url = reverse_lazy("mainapp:transponder_list")
success_message = "Транспондер успешно обновлен!"
required_roles = ["admin", "moderator"]
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
@@ -293,10 +294,10 @@ class TransponderUpdateView(RoleRequiredMixin, FormMessageMixin, UpdateView):
return super().form_valid(form)
class DeleteSelectedTranspondersView(RoleRequiredMixin, View):
class DeleteSelectedTranspondersView(PermissionRequiredMixin, View):
"""View for deleting multiple selected transponders with confirmation."""
required_roles = ["admin", "moderator"]
permission_required = 'transponder_delete'
def get(self, request):
"""Show confirmation page with details about transponders to be deleted."""