المقدمة
إدارة حسابات المسؤولين مع الأدوار، الأذونات، والتحكم في الوصول.
🎯 ماذا يفعل هذا الموديل؟
يتيح لك موديل Admins استرجاع من لديه الوصول إلى لوحة تحكم OneEntry الخاصة بك وما يمكنهم فعله.
📖 شرح بسيط
تخيل أنك تدير موقعًا إلكترونيًا مع فريق:
- 👑 المسؤول الأعلى - يمكنه فعل كل شيء (أنت، المالك).
- 👨💼 مدير المحتوى - يمكنه تعديل الصفحات والمنتجات.
- 📝 المحرر - يمكنه كتابة مقالات المدونة.
- 🎨 المصمم - يمكنه إدارة الصور والكتل.
- 👀 المشاهد - يمكنه فقط عرض البيانات، دون تعديل.
بدلاً من منح الجميع وصولاً كاملاً، أنت:
- تنشئ حسابات مسؤولين لأعضاء الفريق.
- تعين أدوارًا وأذونات محددة.
- تتحكم فيما يمكن لكل شخص رؤيته وتعديله.
- تتعقب من قام بإجراء تغييرات (سجل التدقيق).
- تسحب الوصول عندما يغادر شخص ما الفريق.
مثال من العالم الحقيقي:
Without Admin Management:
- Everyone shares one account → Can't track who did what.
- Everyone has full access → Risky!
- No control over permissions.
With Admin Management:
- Each team member has their own account.
- Specific permissions per role.
- Full audit trail of changes.
- Easy to add/remove team members.
✨ المفاهيم الأساسية
ما هو المسؤول؟
المسؤول (admin) هو مستخدم لديه وصول مرتفع لإدارة مشروع OneEntry الخاص بك:
- حقوق الوصول - ما الأجزاء من النظام التي يمكنهم الوصول إليها.
- الأذونات - ما الإجراءات التي يمكنهم القيام بها (إنشاء، تعديل، حذف).
- الدور - موقعهم/مسؤوليتهم (مثل "مدير المحتوى").
- معلومات الحساب - الاسم، البريد الإلكتروني، الحالة.
المسؤول مقابل المستخدم العادي
| النوع | الغرض | المثال |
|---|---|---|
| المسؤول | يدير النظام (الواجهة الخلفية) | أنت، أعضاء فريقك |
| المستخدم العادي | يستخدم تطبيقك/موقعك (الواجهة الأمامية) | عملاؤك، زوار الموقع |
الفرق الرئيسي: المسؤولون يديرون المحتوى، المستخدمون يستهلكون المحتوى.
📋 ما تحتاج إلى معرفته
سمات المسؤولين
كل مسؤول لديه هذه الحقول الأساسية:
{
id: 123, // Unique admin ID
attributeSetId: 27, // Unique attribute set ID
identifier: "admin", // Unique identifier
attributeSetIdentifier: "admins", // Unique attribute set identifier
position: 1, // Position
isSync: true, // Whether to sync with the backend
attributeValues: {} // Attribute values
}
تصفية المسؤولين
استخدم الفلاتر للعثور على مسؤولين محددين:
علامات الشرط (نفسها كما في موديل المنتجات):
| العلامة | المعنى | المثال |
|---|---|---|
| eq | يساوي | statusId = 1 (نشط فقط) |
| neq | لا يساوي | role ≠ "مشاهد" |
| in | يحتوي على (واحد من) | role in ["محرر", "مدير"] |
| nin | لا يحتوي على | email not in ["@temp.com"] |
| exs | موجود (له قيمة) | Has lastLogin |
| nexs | غير موجود | لم يسجل الدخول أبدًا |
اعتبارات الأمان
مهم:
- 🔒 لا تكشف أبدًا عن بيانات اعتماد المسؤول في كود الواجهة الأمامية.
- 🔐 استخدم رموز أمان لاستدعاءات API أو شهادات mtls.
- 👤 نفذ مبدأ الحد الأدنى من الامتيازات - امنح الحد الأدنى من الأذونات المطلوبة.
- 📝 تدقيق التغييرات - تتبع من فعل ماذا.
- 🚪 اسحب الوصول على الفور عندما يغادر شخص ما.
❓ الأسئلة الشائعة (FAQ)
ما الفرق بين موديلات Admins و Users؟
- Admins - يدير فريقك (مستخدمون في الواجهة الخلفية يديرون النظام).
- Users - يدير العملاء (مستخدمون في الواجهة الأمامية يستخدمون تطبيقك/موقعك).
كيف يمكنني تقييد ما يمكن أن يفعله المسؤول؟
استخدم الأدوار والأذونات.
🎓 أفضل الممارسات
- نفذ مبدأ الحد الأدنى من الامتيازات (الحد الأدنى من الأذونات المطلوبة).
- تتبع إجراءات المسؤولين (من فعل ماذا، ومتى).
- راجع الأذونات بانتظام.
- استخدم سياسات كلمات مرور قوية.
- ضع في اعتبارك استخدام المصادقة متعددة العوامل.
- غير كلمات مرور المسؤولين بانتظام.
للمزيد من المعلومات حول واجهة مستخدم الموديل، قم بزيارة https://doc.oneentry.cloud/docs/category/administrators
تعريف موديل 'Admins'
const { Admins } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
const { Admins } = defineOneEntry( "your-project-url", { "token": "your-app-token" });const body = [ { "attributeMarker": "num", "conditionMarker": "mth", "conditionValue": 1 }];
const response = await Admins.getAdminsInfo(body, "en_US", 0, 30);
مخطط المعلمات
المخطط: (body)
attributeMarker: string
معرف نصي للخاصية
مثال: price
conditionMarker: string
معرف نصي للشرط، القيم الممكنة: 'in' - يحتوي، 'nin' - لا يحتوي، 'eq' - يساوي، 'neq' - لا يساوي، 'mth' - أكثر من، 'lth' - أقل من، 'exs' - موجود، 'nexs' - غير موجود، 'pat' - نمط، على سبيل المثال -، حيث '' يمثل أي حرف، 'same' - نفس القيمة كخاصية مختارة*
مثال: in
Enum: [ in, nin, eq, neq, mth, lth, exs, nexs, pat, same ]
conditionValue: number
قيمة الشرط
مثال: 1