203 lines
5.8 KiB
Markdown
Executable file
203 lines
5.8 KiB
Markdown
Executable file
# ✅ پیادهسازی کامل مدیریت اپراتورهای پشتیبانی
|
||
|
||
## 📋 خلاصه
|
||
|
||
سیستم کامل مدیریت App Permissions و اپراتورهای پشتیبانی با موفقیت پیادهسازی شد.
|
||
|
||
---
|
||
|
||
## ✅ فایلهای ایجاد شده
|
||
|
||
### Backend (Python/FastAPI):
|
||
1. ✅ `/var/www/ark/hesabixAPI/adapters/api/v1/admin/users_permissions.py`
|
||
- API کامل برای مدیریت App Permissions
|
||
- Endpoints برای CRUD عملیات روی دسترسیها
|
||
- Endpoints ویژه برای مدیریت اپراتورها
|
||
|
||
### Frontend (Flutter/Dart):
|
||
2. ✅ `/var/www/ark/hesabixUI/hesabix_ui/lib/services/admin_users_service.dart`
|
||
- Service layer برای تعامل با Backend API
|
||
|
||
3. ✅ `/var/www/ark/hesabixUI/hesabix_ui/lib/pages/admin/user_app_permissions_page.dart`
|
||
- UI صفحه مدیریت دسترسیهای سطح اپلیکیشن
|
||
|
||
4. ✅ `/var/www/ark/hesabixUI/hesabix_ui/lib/pages/admin/support_operators_page.dart`
|
||
- UI صفحه لیست و مدیریت اپراتورهای پشتیبانی
|
||
|
||
### تنظیمات و Routing:
|
||
5. ✅ `app/main.py` - ثبت router جدید
|
||
6. ✅ `lib/main.dart` - اضافه شدن routes و imports
|
||
7. ✅ `lib/pages/system_settings/services/settings_categorization_service.dart` - اضافه شدن به منو
|
||
8. ✅ Translations (فارسی و انگلیسی) اضافه شد
|
||
|
||
### مستندات:
|
||
9. ✅ `/var/www/ark/docs/SUPPORT_OPERATORS_MANAGEMENT_SCENARIO.md` - سناریوی کامل
|
||
10. ✅ `/var/www/ark/docs/PERMISSIONS_SYSTEM.md` - بهروزرسانی شد
|
||
|
||
---
|
||
|
||
## 🔌 API Endpoints
|
||
|
||
### 1. دریافت App Permissions کاربر
|
||
```
|
||
GET /api/v1/admin/users/{user_id}/app-permissions
|
||
```
|
||
|
||
### 2. بهروزرسانی App Permissions کاربر
|
||
```
|
||
PUT /api/v1/admin/users/{user_id}/app-permissions
|
||
Body: {
|
||
"permissions": {
|
||
"support_operator": true,
|
||
"system_settings": false
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. لیست اپراتورهای پشتیبانی
|
||
```
|
||
GET /api/v1/admin/users/operators
|
||
```
|
||
|
||
### 4. اضافه کردن اپراتور
|
||
```
|
||
POST /api/v1/admin/users/operators/{user_id}
|
||
```
|
||
|
||
### 5. حذف اپراتور
|
||
```
|
||
DELETE /api/v1/admin/users/operators/{user_id}
|
||
```
|
||
|
||
---
|
||
|
||
## 🎨 UI Pages
|
||
|
||
### 1. صفحه لیست اپراتورها
|
||
**مسیر:** `/user/profile/system-settings/support-operators`
|
||
**دسترسی:** فقط SuperAdmin
|
||
**امکانات:**
|
||
- مشاهده لیست تمام اپراتورها
|
||
- نمایش وضعیت اتصال تلگرام
|
||
- حذف اپراتور
|
||
|
||
### 2. صفحه مدیریت دسترسیها
|
||
**مسیر:** از طریق User Management
|
||
**دسترسی:** فقط SuperAdmin
|
||
**امکانات:**
|
||
- مشاهده و ویرایش App Permissions
|
||
- Switch برای هر permission
|
||
- ذخیره تغییرات
|
||
|
||
---
|
||
|
||
## 🔒 امنیت
|
||
|
||
- ✅ تمام Endpoints با `@require_app_permission("superadmin")` محافظت شدهاند
|
||
- ✅ کاربر نمیتواند permissions خودش را تغییر دهد
|
||
- ✅ فقط permissions معتبر پذیرفته میشوند
|
||
- ✅ UI فقط برای SuperAdmin قابل دسترسی است
|
||
|
||
---
|
||
|
||
## 🧪 نحوه استفاده
|
||
|
||
### برای SuperAdmin:
|
||
|
||
#### 1. مشاهده لیست اپراتورها:
|
||
1. وارد سیستم شوید با حساب SuperAdmin
|
||
2. به تنظیمات سیستم بروید
|
||
3. بخش "کاربران و کسبوکارها" > "اپراتورهای پشتیبانی"
|
||
4. لیست تمام اپراتورهای فعال را مشاهده کنید
|
||
|
||
#### 2. افزودن اپراتور جدید:
|
||
**روش 1: از طریق API**
|
||
```bash
|
||
curl -X POST "http://localhost:8000/api/v1/admin/users/operators/3" \
|
||
-H "Authorization: Bearer YOUR_TOKEN"
|
||
```
|
||
|
||
**روش 2: از طریق مدیریت کاربران**
|
||
1. تنظیمات سیستم > مدیریت کاربران
|
||
2. انتخاب کاربر مورد نظر
|
||
3. فعال کردن "اپراتور پشتیبانی"
|
||
4. ذخیره
|
||
|
||
#### 3. حذف اپراتور:
|
||
1. تنظیمات سیستم > اپراتورهای پشتیبانی
|
||
2. کلیک روی دکمه حذف
|
||
3. تأیید حذف
|
||
|
||
---
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### مشکل: API ها کار نمیکنند
|
||
**راه حل:**
|
||
```bash
|
||
# ریستارت سرویس API
|
||
systemctl restart hesabix-api
|
||
|
||
# بررسی لاگها
|
||
journalctl -u hesabix-api -f
|
||
```
|
||
|
||
### مشکل: صفحه در UI نمایش داده نمیشود
|
||
**راه حل:**
|
||
```bash
|
||
# Build مجدد Flutter
|
||
cd /var/www/ark/hesabixUI/hesabix_ui
|
||
flutter clean
|
||
flutter pub get
|
||
flutter build web --release
|
||
```
|
||
|
||
### مشکل: کاربر به عنوان اپراتور شناسایی نمیشود
|
||
**بررسی کنید:**
|
||
```sql
|
||
-- بررسی app_permissions در دیتابیس
|
||
SELECT id, email, app_permissions
|
||
FROM users
|
||
WHERE email = 'user@example.com';
|
||
|
||
-- باید support_operator: true داشته باشد
|
||
-- {"support_operator": true}
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 وضعیت فعلی سیستم
|
||
|
||
✅ **Backend:** آماده و تست شده
|
||
✅ **Frontend:** پیادهسازی کامل
|
||
✅ **Routing:** تنظیم شده
|
||
✅ **Translations:** اضافه شده
|
||
✅ **Security:** پیادهسازی شده
|
||
✅ **Documentation:** کامل
|
||
|
||
---
|
||
|
||
## 🚀 مراحل بعدی (اختیاری)
|
||
|
||
### اولویت پایین:
|
||
- [ ] افزودن Audit Logging برای تغییرات permissions
|
||
- [ ] اضافه کردن فیلتر و جستجو در لیست اپراتورها
|
||
- [ ] نمایش تاریخچه تغییرات permissions
|
||
- [ ] ارسال نوتیفیکیشن هنگام تغییر permissions
|
||
|
||
---
|
||
|
||
## 📞 پشتیبانی
|
||
|
||
- مستندات کامل: `/docs/SUPPORT_OPERATORS_MANAGEMENT_SCENARIO.md`
|
||
- Swagger UI: `http://localhost:8000/docs`
|
||
- Permissions System: `/docs/PERMISSIONS_SYSTEM.md`
|
||
|
||
---
|
||
|
||
**تاریخ تکمیل:** 2025-12-05
|
||
**نسخه:** 1.0.0
|
||
**وضعیت:** ✅ آماده برای استفاده در Production
|
||
|
||
|
||
|