5.8 KiB
Executable file
✅ پیادهسازی کامل مدیریت اپراتورهای پشتیبانی
📋 خلاصه
سیستم کامل مدیریت App Permissions و اپراتورهای پشتیبانی با موفقیت پیادهسازی شد.
✅ فایلهای ایجاد شده
Backend (Python/FastAPI):
- ✅
/var/www/ark/hesabixAPI/adapters/api/v1/admin/users_permissions.py- API کامل برای مدیریت App Permissions
- Endpoints برای CRUD عملیات روی دسترسیها
- Endpoints ویژه برای مدیریت اپراتورها
Frontend (Flutter/Dart):
-
✅
/var/www/ark/hesabixUI/hesabix_ui/lib/services/admin_users_service.dart- Service layer برای تعامل با Backend API
-
✅
/var/www/ark/hesabixUI/hesabix_ui/lib/pages/admin/user_app_permissions_page.dart- UI صفحه مدیریت دسترسیهای سطح اپلیکیشن
-
✅
/var/www/ark/hesabixUI/hesabix_ui/lib/pages/admin/support_operators_page.dart- UI صفحه لیست و مدیریت اپراتورهای پشتیبانی
تنظیمات و Routing:
- ✅
app/main.py- ثبت router جدید - ✅
lib/main.dart- اضافه شدن routes و imports - ✅
lib/pages/system_settings/services/settings_categorization_service.dart- اضافه شدن به منو - ✅ Translations (فارسی و انگلیسی) اضافه شد
مستندات:
- ✅
/var/www/ark/docs/SUPPORT_OPERATORS_MANAGEMENT_SCENARIO.md- سناریوی کامل - ✅
/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. مشاهده لیست اپراتورها:
- وارد سیستم شوید با حساب SuperAdmin
- به تنظیمات سیستم بروید
- بخش "کاربران و کسبوکارها" > "اپراتورهای پشتیبانی"
- لیست تمام اپراتورهای فعال را مشاهده کنید
2. افزودن اپراتور جدید:
روش 1: از طریق API
curl -X POST "http://localhost:8000/api/v1/admin/users/operators/3" \
-H "Authorization: Bearer YOUR_TOKEN"
روش 2: از طریق مدیریت کاربران
- تنظیمات سیستم > مدیریت کاربران
- انتخاب کاربر مورد نظر
- فعال کردن "اپراتور پشتیبانی"
- ذخیره
3. حذف اپراتور:
- تنظیمات سیستم > اپراتورهای پشتیبانی
- کلیک روی دکمه حذف
- تأیید حذف
🐛 Troubleshooting
مشکل: API ها کار نمیکنند
راه حل:
# ریستارت سرویس API
systemctl restart hesabix-api
# بررسی لاگها
journalctl -u hesabix-api -f
مشکل: صفحه در UI نمایش داده نمیشود
راه حل:
# Build مجدد Flutter
cd /var/www/ark/hesabixUI/hesabix_ui
flutter clean
flutter pub get
flutter build web --release
مشکل: کاربر به عنوان اپراتور شناسایی نمیشود
بررسی کنید:
-- بررسی 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