انتقل إلى المحتوى الرئيسي

المقدمة

إدارة حسابات المسؤولين مع الأدوار، الأذونات، والتحكم في الوصول.

🎯 ماذا يفعل هذا الموديل؟

يتيح لك موديل Admins استرجاع من لديه الوصول إلى لوحة تحكم OneEntry الخاصة بك وما يمكنهم فعله.

📖 شرح بسيط

تخيل أنك تدير موقعًا إلكترونيًا مع فريق:

  • 👑 المسؤول الأعلى - يمكنه فعل كل شيء (أنت، المالك)
  • 👨‍💼 مدير المحتوى - يمكنه تعديل الصفحات والمنتجات
  • 📝 المحرر - يمكنه كتابة مقالات المدونة
  • 🎨 المصمم - يمكنه إدارة الصور والكتل
  • 👀 المشاهد - يمكنه فقط عرض البيانات، دون تعديل

بدلاً من منح الجميع وصولاً كاملاً، أنت:

  • ✅ تنشئ حسابات مسؤولين لأعضاء الفريق
  • ✅ تعين أدوارًا وأذونات محددة
  • ✅ تتحكم فيما يمكن لكل شخص رؤيته وتعديله
  • ✅ تتعقب من قام بإجراء تغييرات (سجل التدقيق)
  • ✅ تسحب الوصول عندما يغادر شخص ما الفريق

مثال من العالم الحقيقي:

بدون إدارة المسؤولين:
- الجميع يشارك حسابًا واحدًا → لا يمكن تتبع من فعل ماذا ❌
- الجميع لديه وصول كامل → مخاطرة! ❌
- لا يوجد تحكم في الأذونات ❌

مع إدارة المسؤولين:
- كل عضو في الفريق لديه حسابه الخاص ✅
- أذونات محددة لكل دور ✅
- سجل تدقيق كامل للتغييرات ✅
- سهل إضافة/إزالة أعضاء الفريق ✅

✨ المفاهيم الأساسية

ما هو المسؤول؟

المسؤول (admin) هو مستخدم لديه وصول مرتفع لإدارة مشروع OneEntry الخاص بك:

  • حقوق الوصول - ما الأجزاء من النظام التي يمكنهم الوصول إليها
  • الأذونات - ما الإجراءات التي يمكنهم القيام بها (إنشاء، تعديل، حذف)
  • الدور - موقعهم/مسؤوليتهم (مثل "مدير المحتوى")
  • معلومات الحساب - الاسم، البريد الإلكتروني، الحالة

المسؤول مقابل المستخدم العادي

النوعالغرضالمثال
المسؤوليدير النظام (الواجهة الخلفية)أنت، أعضاء فريقك
المستخدم العادييستخدم تطبيقك/موقعك (الواجهة الأمامية)عملاؤك، زوار الموقع

الفرق الرئيسي: المسؤولون يديرون المحتوى، المستخدمون يستهلكون المحتوى.

📋 ما تحتاج إلى معرفته

سمات المسؤولين

كل مسؤول لديه هذه الحقول الأساسية:

{
id: 123, // معرف المسؤول الفريد
attributeSetId: 27, // معرف مجموعة السمات الفريد
identifier: "admin", // المعرف الفريد
attributeSetIdentifier: "admins", // معرف مجموعة السمات الفريد
position: 1, // الموقع
isSync: true, // ما إذا كان يجب المزامنة مع الواجهة الخلفية
attributeValues: {} // قيم السمات
}

تصفية المسؤولين

استخدم الفلاتر للعثور على مسؤولين محددين:

علامات الشرط (نفسها كما في موديل Products):

العلامةالمعنىالمثال
eqيساويstatusId = 1 (نشط فقط)
neqلا يساويrole ≠ "Viewer"
inيحتوي على (واحد من)role in ["Editor", "Manager"]
ninلا يحتوي علىemail not in ["@temp.com"]
exsموجود (له قيمة)Has lastLogin
nexsغير موجودلم يسجل الدخول أبدًا

اعتبارات الأمان

مهم:

  • 🔒 لا تكشف عن بيانات اعتماد المسؤولين في كود الواجهة الأمامية
  • 🔐 استخدم رموز أمان لاستدعاءات API
  • 👤 نفذ مبدأ الحد الأدنى من الامتيازات - امنح الحد الأدنى من الأذونات المطلوبة
  • 📝 تدقيق التغييرات - تتبع من فعل ماذا
  • 🚪 اسحب الوصول على الفور عندما يغادر شخص ما

❓ الأسئلة الشائعة (FAQ)

ما الفرق بين موديلات Admins وUsers؟

  • Admins - إدارة فريقك (مستخدمون في الواجهة الخلفية يديرون النظام)
  • Users - إدارة العملاء (مستخدمون في الواجهة الأمامية يستخدمون تطبيقك/موقعك)

كيف يمكنني تقييد ما يمكن أن يفعله المسؤول؟

استخدم الأدوار والأذونات.


ماذا يحدث للمحتوى عندما أحذف مسؤولًا؟

يبقى المحتوى، لكن مرجع المنشئ ينكسر.

أفضل ممارسة: قم بإلغاء تنشيط بدلاً من الحذف


💡 ملاحظات مهمة

أفضل ممارسات الأمان

تحقق دائمًا من أذونات المسؤولين


🎓 أفضل الممارسات

  • استخدم الأدوار لتجميع الأذونات
  • نفذ مبدأ الحد الأدنى من الامتيازات (الحد الأدنى من الأذونات المطلوبة)
  • قم بإلغاء تنشيط بدلاً من الحذف (لحفظ سجل التدقيق)
  • تتبع إجراءات المسؤولين (من فعل ماذا، ومتى)
  • راجع الأذونات بانتظام
  • استخدم سياسات كلمات مرور قوية
  • قم بتمكين المصادقة الثنائية (2FA)
  • إعداد إشعارات البريد الإلكتروني للإجراءات الحرجة

لمزيد من المعلومات حول واجهة مستخدم الموديل، قم بزيارة https://doc.oneentry.cloud/docs/category/administrators


تعريف موديل 'Admins'


const { Admins } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);



const body = [
{
"attributeMarker": "num",
"conditionMarker": "mth",
"conditionValue": 1
}
];

مخطط المعلمات

المخطط: (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


🔗 الوثائق ذات الصلة