diff --git a/admin_panel/templates/admin_panel/newOperation.html b/admin_panel/templates/admin_panel/newOperation.html
index c8b6433..6ec8baf 100644
--- a/admin_panel/templates/admin_panel/newOperation.html
+++ b/admin_panel/templates/admin_panel/newOperation.html
@@ -20,8 +20,10 @@
diff --git a/admin_panel/templates/admin_panel/store.html b/admin_panel/templates/admin_panel/store.html
index 08787f8..1300bfb 100644
--- a/admin_panel/templates/admin_panel/store.html
+++ b/admin_panel/templates/admin_panel/store.html
@@ -93,8 +93,12 @@
{% if perms.admin_panel.ViewStore or perms.admin_panel.OnlyAnbar %}
+
+ {% if not user|has_group:"khadamat" %}
+ {% endif %}
+
diff --git a/admin_panel/templatetags/custom_tags.py b/admin_panel/templatetags/custom_tags.py
index 9a60315..67d1af1 100644
--- a/admin_panel/templatetags/custom_tags.py
+++ b/admin_panel/templatetags/custom_tags.py
@@ -8,5 +8,8 @@ def toJalali(value):
if(value):
return JalaliDate(value).strftime("%Y/%m/%d")
+def has_group(user, group_name):
+ return user.groups.filter(name=group_name).exists()
+register.filter('has_group', has_group)
register.filter('toJalali', toJalali)
\ No newline at end of file
diff --git a/admin_panel/views.py b/admin_panel/views.py
index 6652522..5f01459 100644
--- a/admin_panel/views.py
+++ b/admin_panel/views.py
@@ -1191,6 +1191,9 @@ def operation(request):
if request.method != 'POST':
return HttpResponseBadRequest("متد ارسالی نامعتبر است.")
+ user_op = request.user
+ user_store_room = get_object_or_404(StoreRoom, owners=user_op)
+
# استفاده از توابع امن اختصاصی پروژه برای جداسازی مقادیر عددی
prd_id = _safe_int(request.POST.get('prd_id'))
action_type = request.POST.get('actionType', '')
@@ -1234,6 +1237,9 @@ def operation(request):
# بخش دوم: ورود و خروج دستی (کنترل مستقیم با Transaction و Lock)
# =====================================================================
elif action_type in ['vorod', 'khoroj']:
+ user_s_room = get_object_or_404(StoreRoom, owners=user_op)
+ if not user_op.is_superuser and s_room != user_s_room:
+ return HttpResponse("شما دسترسی ورود / خروج به این انبار ندارید")
with transaction.atomic():
# ساخت کوئری پایه برای دریافت تراکنشهای سال جاری کالا
qs = ProductInStore.objects.filter(
|