arc/docs/ENDPOINTS_PERMISSIONS_LIST.md
2026-04-14 19:34:55 +03:30

354 lines
28 KiB
Markdown
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# لیست دقیق Endpoint های قابل تبدیل به دسترسی جزئی
این لیست شامل تمام endpoint هایی است که می‌توانند از `require_business_permission_dep` یا `require_business_permission_by_entity_dep` استفاده کنند.
---
## 📁 1. businesses.py - مدیریت کسب‌وکار
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 268 | PUT | `/{business_id}` | `@require_business_management()` | `settings` | `business` | ویرایش اطلاعات کسب‌وکار - باید به `require_business_access` + dependency تبدیل شود |
| 328 | POST | `/{business_id}/logo` | `@require_business_access` | `settings` | `print` | آپلود لوگو - باید dependency اضافه شود |
| 400 | GET | `/{business_id}/logo` | بدون decorator | `settings` | `view` | دریافت لوگو - باید `@require_business_access` + dependency اضافه شود |
| 426 | POST | `/{business_id}/stamp` | `@require_business_access` | `settings` | `print` | آپلود مهر/امضا - باید dependency اضافه شود |
| 497 | GET | `/{business_id}/stamp` | بدون decorator | `settings` | `view` | دریافت مهر/امضا - باید `@require_business_access` + dependency اضافه شود |
| 567 | GET | `/{business_id}/print-settings` | بدون decorator | `settings` | `view` | دریافت تنظیمات چاپ - باید `@require_business_access` + dependency اضافه شود |
| 589 | PUT | `/{business_id}/print-settings` | `@require_business_management()` | `settings` | `print` | ویرایش تنظیمات چاپ - باید به `require_business_access` + dependency تبدیل شود |
---
## 📁 2. business_users.py - مدیریت کاربران کسب‌وکار
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 102 | GET | `/{business_id}/users/{user_id}` | `@require_business_access` | `settings` | `users` یا `manage_users` | مشاهده جزئیات کاربر - الان manual check دارد |
| 227 | GET | `/{business_id}/users` | `@require_business_access` | `settings` | `users` یا `manage_users` | لیست کاربران - باید dependency اضافه شود |
| 370 | POST | `/{business_id}/users/add` | `@require_business_access` | `settings` | `users` یا `manage_users` | افزودن کاربر - باید dependency اضافه شود |
| 509 | PUT | `/{business_id}/users/{user_id}/permissions` | `@require_business_access` | `settings` | `users` یا `manage_users` | ویرایش دسترسی‌های کاربر - باید dependency اضافه شود |
| 579 | DELETE | `/{business_id}/users/{user_id}` | `@require_business_access` | `settings` | `users` یا `manage_users` | حذف کاربر - باید dependency اضافه شود |
**نکته**: در بخش `settings`، action می‌تواند `users` یا `manage_users` باشد. بررسی کنید کدام یک در سیستم استفاده می‌شود.
---
## 📁 3. invoices.py - فاکتورها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 55 | POST | `/business/{business_id}` | `@require_business_access` | `invoices` | `add` | ایجاد فاکتور - باید dependency اضافه شود |
| 73 | GET | `/business/{business_id}/{invoice_id}/installments` | `@require_business_access` | `invoices` | `view` | دریافت اقساط فاکتور - باید dependency اضافه شود |
| 86 | POST | `/business/{business_id}/installments/search` | `@require_business_access` | `invoices` | `view` | جستجوی اقساط - باید dependency اضافه شود |
| 113 | POST | `/business/{business_id}/installments/export/excel` | `@require_business_access` | `invoices` | `export` | خروجی Excel اقساط - باید dependency اضافه شود |
| 139 | PUT | `/business/{business_id}/{invoice_id}` | `@require_business_access` | `invoices` | `edit` | ویرایش فاکتور - باید `require_business_permission_by_entity_dep` استفاده شود |
| 164 | DELETE | `/business/{business_id}/{invoice_id}` | `@require_business_access` + manual check | `invoices` | `delete` | **✅ الان dependency دارد** - `require_business_permission_dep("invoices", "delete")` |
| 199 | GET | `/business/{business_id}/{invoice_id}` | `@require_business_access` | `invoices` | `view` | دریافت فاکتور - باید `require_business_permission_by_entity_dep` استفاده شود |
| 215 | GET | `/business/{business_id}/{invoice_id}/pdf` | `@require_business_access` | `invoices` | `view` | PDF فاکتور - باید `require_business_permission_by_entity_dep` استفاده شود |
| 220+ | سایر endpoint های export/list | `@require_business_access` | `invoices` | `view` یا `export` | بسته به نوع endpoint |
**نکته**: endpoint هایی که `invoice_id` در path دارند باید از `require_business_permission_by_entity_dep` با مدل `Document` استفاده کنند.
---
## 📁 4. products.py - محصولات
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 42 | POST | `/business/{business_id}` | `@require_business_access` + manual check | `products` | `add` | **✅ الان manual check دارد** - باید به dependency تبدیل شود |
| 215 | POST | `/business/{business_id}/search` | `@require_business_access` + manual check | `products` | `view` | **✅ الان manual check دارد** - باید به dependency تبدیل شود |
| 239 | GET | `/business/{business_id}/{product_id}` | `@require_business_access` + manual check | `products` | `view` | **✅ الان manual check دارد** - باید به `require_business_permission_by_entity_dep` تبدیل شود |
| 256 | PUT | `/business/{business_id}/{product_id}` | `@require_business_access` + manual check | `products` | `edit` | **✅ الان manual check دارد** - باید به `require_business_permission_by_entity_dep` تبدیل شود |
| 457 | DELETE | `/business/{business_id}/{product_id}` | `@require_business_access` | `products` | `delete` | حذف محصول - باید `require_business_permission_by_entity_dep` اضافه شود |
| سایر | export/list endpoints | `@require_business_access` | `products` | `view` یا `export` | بسته به نوع endpoint |
**نکته**: endpoint های `products.py` الان manual check دارند. بهتر است به dependency تبدیل شوند.
---
## 📁 5. categories.py - دسته‌بندی‌ها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 16 | POST | `/business/{business_id}` | `@require_business_access` | `categories` | `add` | ایجاد دسته‌بندی - باید dependency اضافه شود |
| 48 | GET | `/business/{business_id}` | `@require_business_access` | `categories` | `view` | لیست دسته‌بندی‌ها - باید dependency اضافه شود |
| 76 | PUT | `/business/{business_id}/{category_id}` | `@require_business_access` | `categories` | `edit` | ویرایش دسته‌بندی - باید `require_business_permission_by_entity_dep` استفاده شود |
| 105 | DELETE | `/business/{business_id}/{category_id}` | `@require_business_access` | `categories` | `delete` | حذف دسته‌بندی - باید `require_business_permission_by_entity_dep` استفاده شود |
| 133 | GET | `/business/{business_id}/{category_id}` | `@require_business_access` | `categories` | `view` | دریافت دسته‌بندی - باید `require_business_permission_by_entity_dep` استفاده شود |
---
## 📁 6. price_lists.py - لیست قیمت‌ها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 33 | POST | `/business/{business_id}` | `@require_business_access` | `price_lists` | `add` | ایجاد لیست قیمت - باید dependency اضافه شود |
| 48 | GET | `/business/{business_id}` | `@require_business_access` | `price_lists` | `view` | لیست لیست قیمت‌ها - باید dependency اضافه شود |
| 69 | PUT | `/business/{business_id}/{price_list_id}` | `@require_business_access` | `price_lists` | `edit` | ویرایش لیست قیمت - باید `require_business_permission_by_entity_dep` استفاده شود |
| 86 | DELETE | `/business/{business_id}/{price_list_id}` | `@require_business_access` | `price_lists` | `delete` | حذف لیست قیمت - باید `require_business_permission_by_entity_dep` استفاده شود |
| 104 | GET | `/business/{business_id}/{price_list_id}` | `@require_business_access` | `price_lists` | `view` | دریافت لیست قیمت - باید `require_business_permission_by_entity_dep` استفاده شود |
| 119 | POST | `/business/{business_id}/{price_list_id}/products` | `@require_business_access` | `price_lists` | `edit` | ویرایش محصولات لیست قیمت - باید `require_business_permission_by_entity_dep` استفاده شود |
| 135 | POST | `/business/{business_id}/{price_list_id}/copy` | `@require_business_access` | `price_lists` | `add` | کپی لیست قیمت - باید `require_business_permission_by_entity_dep` استفاده شود |
| 152 | POST | `/business/{business_id}/bulk-update` | `@require_business_access` | `price_lists` | `edit` | به‌روزرسانی دسته‌ای - باید dependency اضافه شود |
---
## 📁 7. product_attributes.py - ویژگی‌های محصول
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 28 | POST | `/business/{business_id}` | `@require_business_access` | `product_attributes` | `add` | ایجاد ویژگی محصول - باید dependency اضافه شود |
| 47 | GET | `/business/{business_id}` | `@require_business_access` | `product_attributes` | `view` | لیست ویژگی‌های محصول - باید dependency اضافه شود |
| 72 | PUT | `/business/{business_id}/{attribute_id}` | `@require_business_access` | `product_attributes` | `edit` | ویرایش ویژگی محصول - باید `require_business_permission_by_entity_dep` استفاده شود |
| 89 | DELETE | `/business/{business_id}/{attribute_id}` | `@require_business_access` | `product_attributes` | `delete` | حذف ویژگی محصول - باید `require_business_permission_by_entity_dep` استفاده شود |
| 111 | GET | `/business/{business_id}/{attribute_id}` | `@require_business_access` | `product_attributes` | `view` | دریافت ویژگی محصول - باید `require_business_permission_by_entity_dep` استفاده شود |
---
## 📁 8. warehouses.py - انبارها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 31 | POST | `/business/{business_id}` | `@require_business_access` | `warehouses` | `add` | ایجاد انبار - باید dependency اضافه شود |
| 46 | GET | `/business/{business_id}` | `@require_business_access` | `warehouses` | `view` | لیست انبارها - باید dependency اضافه شود |
| 60 | GET | `/business/{business_id}/{warehouse_id}` | `@require_business_access` | `warehouses` | `view` | دریافت انبار - باید `require_business_permission_by_entity_dep` استفاده شود |
| 77 | PUT | `/business/{business_id}/{warehouse_id}` | `@require_business_access` | `warehouses` | `edit` | ویرایش انبار - باید `require_business_permission_by_entity_dep` استفاده شود |
| 95 | DELETE | `/business/{business_id}/{warehouse_id}` | `@require_business_access` | `warehouses` | `delete` | حذف انبار - باید `require_business_permission_by_entity_dep` استفاده شود |
| 141 | POST | `/business/{business_id}/search` | `@require_business_access` | `warehouses` | `view` | جستجوی انبارها - باید dependency اضافه شود |
---
## 📁 9. warehouse_docs.py - اسناد انبار
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 103 | POST | `/business/{business_id}` | `@require_business_access` | `warehouse_transfers` | `add` | ایجاد سند انبار - باید dependency اضافه شود |
| 146 | POST | `/business/{business_id}/search` | `@require_business_access` | `warehouse_transfers` | `view` | جستجوی اسناد انبار - باید dependency اضافه شود |
| سایر | GET/PUT/DELETE | `/business/{business_id}/{doc_id}` | `@require_business_access` | `warehouse_transfers` | `view/edit/delete` | باید `require_business_permission_by_entity_dep` استفاده شود |
---
## 📁 10. accounts.py - حساب‌های کل
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 59 | POST | `/business/{business_id}` | `@require_business_access` | `chart_of_accounts` | `add` | ایجاد حساب - باید dependency اضافه شود |
| 101 | GET | `/business/{business_id}` | `@require_business_access` | `chart_of_accounts` | `view` | لیست حساب‌ها - باید dependency اضافه شود |
| 133 | GET | `/business/{business_id}/{account_id}` | `@require_business_access` | `chart_of_accounts` | `view` | دریافت حساب - باید `require_business_permission_by_entity_dep` استفاده شود |
| 169 | PUT | `/business/{business_id}/{account_id}` | `@require_business_access` | `chart_of_accounts` | `edit` | ویرایش حساب - باید `require_business_permission_by_entity_dep` استفاده شود |
| 234 | DELETE | `/business/{business_id}/{account_id}` | `@require_business_access` | `chart_of_accounts` | `delete` | حذف حساب - باید `require_business_permission_by_entity_dep` استفاده شود |
---
## 📁 11. fiscal_years.py - سال‌های مالی
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 16 | GET | `/business/{business_id}` | `@require_business_access` | `settings` | `view` | لیست سال‌های مالی - باید dependency اضافه شود |
| 46 | POST | `/business/{business_id}` | `@require_business_access` | `settings` | `edit` | ایجاد سال مالی - باید dependency اضافه شود |
---
## 📁 12. boms.py - BOM (فهرست مواد)
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 29 | POST | `/business/{business_id}` | `@require_business_access` + manual check | `inventory` | `write` | **✅ الان manual check دارد** - باید به dependency تبدیل شود |
| 44 | GET | `/business/{business_id}` | `@require_business_access` + manual check | `inventory` | `view` | **✅ الان manual check دارد** - باید به dependency تبدیل شود |
| سایر | GET/PUT/DELETE | `/business/{business_id}/{bom_id}` | `@require_business_access` | `inventory` | `view/edit/delete` | باید `require_business_permission_by_entity_dep` استفاده شود |
---
## 📁 13. expense_income.py - هزینه‌ها و درآمدها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 34 | POST | `/business/{business_id}` | `@require_business_access` + **dependency** | `expenses_income` | `add` | **✅ الان dependency دارد** |
| 56 | POST | `/business/{business_id}/search` | `@require_business_access` | `expenses_income` | `view` | جستجو - باید dependency اضافه شود |
| 141 | PUT | `/{document_id}` | + **dependency** | `expenses_income` | `edit` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| 163 | DELETE | `/{document_id}` | + **dependency** | `expenses_income` | `delete` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| سایر | export/list | `@require_business_access` | `expenses_income` | `view` یا `export` | بسته به نوع endpoint |
---
## 📁 14. documents.py - اسناد حسابداری
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 46 | POST | `/business/{business_id}` | `@require_business_access` | `accounting_documents` | `add` | ایجاد سند حسابداری - باید dependency اضافه شود |
| 112 | POST | `/business/{business_id}/search` | `@require_business_access` | `accounting_documents` | `view` | جستجوی اسناد - باید dependency اضافه شود |
| 410 | GET | `/{document_id}` | `@require_business_access` | `accounting_documents` | `view` | دریافت سند - باید `require_business_permission_by_entity_dep` استفاده شود |
| 434 | PUT | `/{document_id}` | `@require_business_access` | `accounting_documents` | `edit` | ویرایش سند - باید `require_business_permission_by_entity_dep` استفاده شود |
| 647 | POST | `/business/{business_id}` | `@require_business_access` + **dependency** | `accounting_documents` | `add` | **✅ الان dependency دارد** |
| 737 | PUT | `/{document_id}` | + **dependency** | `accounting_documents` | `edit` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| سایر | export/delete | `@require_business_access` | `accounting_documents` | `export/delete` | بسته به نوع endpoint |
---
## 📁 15. opening_balance.py - مانده اولیه
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 57 | PUT | `/{business_id}` | `@require_business_access` + **dependency** | `opening_balance` | `edit` | **✅ الان dependency دارد** |
| 74 | POST | `/{business_id}/preview` | `@require_business_access` + **dependency** | `opening_balance` | `edit` | **✅ الان dependency دارد** |
---
## 📁 16. receipts_payments.py - دریافت/پرداخت
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 44 | POST | `/business/{business_id}` | `@require_business_access` | `people_transactions` | `add` | ایجاد دریافت/پرداخت - باید dependency اضافه شود |
| 102 | POST | `/business/{business_id}/search` | `@require_business_access` | `people_transactions` | `view` | جستجو - باید dependency اضافه شود |
| 109 | POST | `/business/{business_id}` | `@require_business_access` + **dependency** | `people_transactions` | `add` | **✅ الان dependency دارد** |
| 202 | DELETE | `/{document_id}` | + **dependency** | `people_transactions` | `delete` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| 240 | PUT | `/{document_id}` | + **dependency** | `people_transactions` | `edit` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| سایر | export/list | `@require_business_access` | `people_transactions` | `view` یا `export` | بسته به نوع endpoint |
---
## 📁 17. transfers.py - انتقالات
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 38 | POST | `/business/{business_id}` | `@require_business_access` | `transfers` | `add` | ایجاد انتقال - باید dependency اضافه شود |
| 83 | POST | `/business/{business_id}/search` | `@require_business_access` | `transfers` | `view` | جستجو - باید dependency اضافه شود |
| 90 | POST | `/business/{business_id}` | `@require_business_access` + **dependency** | `transfers` | `add` | **✅ الان dependency دارد** |
| 385 | DELETE | `/{document_id}` | + **dependency** | `transfers` | `delete` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| 409 | PUT | `/{document_id}` | + **dependency** | `transfers` | `edit` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
---
## 📁 18. checks.py - چک‌ها
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 54 | POST | `/business/{business_id}` | `@require_business_access` | `checks` | `add` | ایجاد چک - باید dependency اضافه شود |
| 98 | POST | `/business/{business_id}/search` | `@require_business_access` | `checks` | `view` | جستجو - باید dependency اضافه شود |
| 105 | POST | `/business/{business_id}` | `@require_business_access` + **dependency** | `checks` | `add` | **✅ الان dependency دارد** |
| 356 | PUT | `/{check_id}` | + **dependency** | `checks` | `edit` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
| 386 | DELETE | `/{check_id}` | + **dependency** | `checks` | `delete` | **✅ الان dependency دارد** - `require_business_permission_by_entity_dep` |
---
## 📁 19. business_dashboard.py - داشبورد
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 79 | GET | `/{business_id}/summary` | `@require_business_access` | `reports` | `view` | خلاصه کسب‌وکار - باید dependency اضافه شود |
| 141 | GET | `/{business_id}/stats` | `@require_business_access` | `reports` | `view` | آمار کسب‌وکار - باید dependency اضافه شود |
| 192 | POST | `/{business_id}/info-with-permissions` | `@require_business_access` | `settings` | `view` | اطلاعات + دسترسی‌ها - باید dependency اضافه شود |
| 253 | سایر endpoint ها | `@require_business_access` | `reports` | `view` | سایر endpoint های dashboard - باید dependency اضافه شود |
---
## 📁 20. report_templates.py - قالب‌های گزارش
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 20 | GET | `/business/{business_id}` | `@require_business_access` | `settings` | `view` | لیست قالب‌های گزارش - باید dependency اضافه شود |
| 67 | POST | `/business/{business_id}` | `@require_business_access` | `settings` | `edit` | ایجاد قالب - باید dependency اضافه شود |
| 109 | GET | `/business/{business_id}/{template_id}` | `@require_business_access` | `settings` | `view` | دریافت قالب - باید `require_business_permission_by_entity_dep` استفاده شود |
| 129 | PUT | `/business/{business_id}/{template_id}` | `@require_business_access` | `settings` | `edit` | ویرایش قالب - باید `require_business_permission_by_entity_dep` استفاده شود |
| سایر | DELETE/Publish | `@require_business_access` | `settings` | `edit` یا `delete` | بسته به عملیات |
---
## 📁 21. kardex.py - کاردکس
| خط | متد | مسیر | وضعیت فعلی | Section پیشنهادی | Action پیشنهادی | توضیحات |
|----|-----|------|------------|------------------|-----------------|---------|
| 25 | POST | `/business/{business_id}` | `@require_business_access` | `reports` | `view` | کاردکس محصول - باید dependency اضافه شود |
| 87 | POST | `/business/{business_id}/export/excel` | `@require_business_access` | `reports` | `export` | خروجی Excel کاردکس - باید dependency اضافه شود |
| 178 | POST | `/business/{business_id}/export/pdf` | `@require_business_access` | `reports` | `export` | خروجی PDF کاردکس - باید dependency اضافه شود |
---
## 📋 خلاصه آماری
### ✅ Endpoint هایی که الان dependency دارند:
- **cash_registers.py**: اکثر endpoint ها ✅
- **petty_cash.py**: اکثر endpoint ها ✅
- **bank_accounts.py**: اکثر endpoint ها ✅
- **persons.py**: اکثر endpoint ها ✅
- **invoices.py**: فقط endpoint حذف ✅
- **expense_income.py**: endpoint های اصلی ✅
- **documents.py**: endpoint های اصلی ✅
- **receipts_payments.py**: endpoint های اصلی ✅
- **transfers.py**: endpoint های اصلی ✅
- **checks.py**: endpoint های اصلی ✅
- **opening_balance.py**: همه endpoint ها ✅
### ❌ Endpoint هایی که نیاز به dependency دارند:
- **businesses.py**: 7 endpoint
- **business_users.py**: 5 endpoint
- **invoices.py**: ~15 endpoint (فقط 1 تا دارد)
- **products.py**: ~10 endpoint (manual check دارند)
- **categories.py**: 5 endpoint
- **price_lists.py**: 8 endpoint
- **product_attributes.py**: 5 endpoint
- **warehouses.py**: 6 endpoint
- **warehouse_docs.py**: ~15 endpoint
- **accounts.py**: 5 endpoint
- **fiscal_years.py**: 2 endpoint
- **boms.py**: ~8 endpoint (manual check دارند)
- **business_dashboard.py**: ~10 endpoint
- **report_templates.py**: ~9 endpoint
- **kardex.py**: 3 endpoint
**جمع کل endpoint های نیازمند به dependency: ~120 endpoint**
---
## 🔧 نحوه استفاده
### برای endpoint هایی که `business_id` در path دارند:
```python
@require_business_access("business_id")
async def endpoint_name(
request: Request,
business_id: int,
...
_: None = Depends(require_business_permission_dep("section", "action")),
):
...
```
### برای endpoint هایی که entity ID در path دارند (مثل `product_id`, `invoice_id`):
```python
@require_business_access("business_id") # اگر business_id در path باشد
async def endpoint_name(
request: Request,
entity_id: int, # مثل product_id, invoice_id
...
_: None = Depends(require_business_permission_by_entity_dep(
"section", # مثل "products", "invoices"
"action", # مثل "edit", "delete", "view"
EntityModel, # مثل Product, Document
"entity_id_param" # مثل "product_id", "invoice_id"
)),
):
...
```
---
## 📝 اولویت‌بندی
### اولویت بالا (امنیت حساس):
1. **business_users.py** - مدیریت کاربران (`settings.users`)
2. **businesses.py** - تنظیمات کسب‌وکار (`settings.business`, `settings.print`)
3. **invoices.py** - فاکتورها (`invoices.*`)
### اولویت متوسط:
4. **products.py** - محصولات (`products.*`)
5. **accounts.py** - حساب‌ها (`chart_of_accounts.*`)
6. **warehouses.py** - انبارها (`warehouses.*`)
### اولویت پایین:
7. سایر endpoint ها
---
**تاریخ تهیه**: 2025-01-XX
**نسخه**: 1.0