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

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,6 +15,7 @@ from django.views.generic import CreateView, DeleteView, UpdateView
from ..forms import GeoForm, ObjItemForm, ParameterForm
from ..mixins import CoordinateProcessingMixin, FormMessageMixin, RoleRequiredMixin
from ..models import Geo, Modulation, ObjItem, Polarization, Satellite
from ..permissions import PermissionRequiredMixin
from ..utils import (
format_coordinate,
format_coords_display,
@@ -24,10 +25,9 @@ from ..utils import (
)
class DeleteSelectedObjectsView(RoleRequiredMixin, View):
class DeleteSelectedObjectsView(PermissionRequiredMixin, View):
"""View for deleting multiple selected objects."""
required_roles = ["admin", "moderator"]
permission_required = 'objitem_delete'
def post(self, request):
ids = request.POST.get("ids", "")
@@ -503,7 +503,7 @@ class ObjItemListView(LoginRequiredMixin, View):
class ObjItemFormView(
RoleRequiredMixin, CoordinateProcessingMixin, FormMessageMixin, UpdateView
PermissionRequiredMixin, CoordinateProcessingMixin, FormMessageMixin, UpdateView
):
"""
Base class for creating and editing ObjItem.
@@ -515,7 +515,7 @@ class ObjItemFormView(
form_class = ObjItemForm
template_name = "mainapp/objitem_form.html"
success_url = reverse_lazy("mainapp:source_list")
required_roles = ["admin", "moderator"]
permission_required = 'objitem_edit'
def get_success_url(self):
"""Returns URL with saved filter parameters."""
@@ -651,7 +651,7 @@ class ObjItemFormView(
class ObjItemUpdateView(ObjItemFormView):
"""View for editing ObjItem."""
permission_required = 'objitem_edit'
success_message = "Объект успешно сохранён!"
def set_user_fields(self):
@@ -660,7 +660,7 @@ class ObjItemUpdateView(ObjItemFormView):
class ObjItemCreateView(ObjItemFormView, CreateView):
"""View for creating ObjItem."""
permission_required = 'objitem_create'
success_message = "Объект успешно создан!"
def get_object(self, queryset=None):
@@ -672,14 +672,13 @@ class ObjItemCreateView(ObjItemFormView, CreateView):
self.object.updated_by = self.request.user.customuser
class ObjItemDeleteView(RoleRequiredMixin, FormMessageMixin, DeleteView):
class ObjItemDeleteView(PermissionRequiredMixin, FormMessageMixin, DeleteView):
"""View for deleting ObjItem."""
permission_required = 'objitem_delete'
model = ObjItem
template_name = "mainapp/objitem_confirm_delete.html"
success_url = reverse_lazy("mainapp:objitem_list")
success_message = "Объект успешно удалён!"
required_roles = ["admin", "moderator"]
def get_success_url(self):
"""Returns URL with saved filter parameters."""