diff --git a/myproject/products/templates/products/uom/unit_form.html b/myproject/products/templates/products/uom/unit_form.html index 9e3442b..7d8d411 100644 --- a/myproject/products/templates/products/uom/unit_form.html +++ b/myproject/products/templates/products/uom/unit_form.html @@ -97,7 +97,7 @@ Отмена - diff --git a/myproject/products/views/uom_views.py b/myproject/products/views/uom_views.py index a434ac2..42ce8a9 100644 --- a/myproject/products/views/uom_views.py +++ b/myproject/products/views/uom_views.py @@ -63,6 +63,11 @@ def unit_of_measure_create(request): """ Создание новой единицы измерения """ + # Проверка: PlatformAdmin не имеет доступа к бизнес-данным тенантов + if request.user.__class__.__name__ == 'PlatformAdmin': + messages.error(request, 'У вас недостаточно прав для выполнения этого действия') + return redirect('products:unit-list') + if request.method == 'POST': form = UnitOfMeasureForm(request.POST) if form.is_valid(): @@ -85,6 +90,11 @@ def unit_of_measure_update(request, pk): """ Редактирование единицы измерения """ + # Проверка: PlatformAdmin не имеет доступа к бизнес-данным тенантов + if request.user.__class__.__name__ == 'PlatformAdmin': + messages.error(request, 'У вас недостаточно прав для выполнения этого действия') + return redirect('products:unit-list') + unit = get_object_or_404(UnitOfMeasure, pk=pk) if request.method == 'POST': @@ -110,11 +120,16 @@ def unit_of_measure_delete(request, pk): """ Удаление единицы измерения """ + # Проверка: PlatformAdmin не имеет доступа к бизнес-данным тенантов + if request.user.__class__.__name__ == 'PlatformAdmin': + messages.error(request, 'У вас недостаточно прав для выполнения этого действия') + return redirect('products:unit-list') + unit = get_object_or_404(UnitOfMeasure, pk=pk) # Проверяем использование products_using = unit.products.count() - sales_units_using = unit.productsalesunit_set.count() + sales_units_using = ProductSalesUnit.objects.filter(product__base_unit=unit).count() can_delete = products_using == 0 and sales_units_using == 0