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

إدارة وصول المستخدمين

نظرة عامة

نظام إدارة وصول المستخدمين مصمم للتحكم التفصيلي في من يمكنه الوصول إلى موارد التطبيق. يستخدم النظام نموذج إدارة الوصول القائم على الأدوار (RBAC)، حيث يتم تعيين المستخدمين إلى مجموعات، وتُمنح حقوق الوصول لهذه المجموعات. وهذا يضمن إدارة فعالة وآمنة للوصول.

إدارة المجموعات

إنشاء مجموعة جديدة

  1. الانتقال إلى قسم المجموعات:
    • افتح علامة التبويب Groups.
  2. إضافة مجموعة:
    • اضغط على زر Create Group.
    • حدد اسمًا وصفيًا وعلامة.
    • عيّن حقوق الوصول الأولية.
تحذير

يتم دائمًا إنشاء مجموعة Guest بشكل افتراضي في المشروع الجديد.

وراثة حقوق الوصول

في علامة التبويب "المجموعات"، يتم عرض المجموعات التي تم إنشاؤها سابقًا بشكل هرمي، ويمكن ربط المجموعة الجديدة بمجموعة تم إنشاؤها بالفعل لكي ترث الحقوق من المجموعة الأصلية.

تحذير

إذا كان هناك قيد في المسار في المجموعة الأصلية، وتم الكتابة على نفس القيد في المجموعة الفرعية، فإن القيد النهائي سيكون قيد المجموعة الفرعية، ولكن فقط إذا لم يتم تحديد خيار "الإذن النهائي" في المجموعة الأصلية.

المجموعة الوحيدة في السلسلة

يمكن تحديد المجموعة فقط إذا لم يتم اختيار أي مجموعة أصلية أو فرعية مسبقًا.

تغيير حقوق الوصول

علامة التبويب "Permissions" هي المفتاح لتحرير حقوق الوصول.

تجميع الحقوق

إذا كنت قد حددت مجموعة أصلية مسبقًا لوراثة الحقوق، فستكون جميع المعلومات حول الحقوق المحددة موجودة في الجدول أعلاه، ولا يُسمح بتحرير الحقوق الموروثة. تُجمع الحقوق التي تتضمن استثناءات والحقوق غير المستخدمة بشكل منفصل في نفس الجدول.

إدارة حقوق الوصول

إنشاء حقوق الوصول

للبدء في إنشاء حق، اضغط على زر "إنشاء حق" في علامة التبويب "Permissions"

يتكون حق الوصول من مجموعة من الطريقة والمسار.

remove
  1. إنشاء مجموعة الحد الأدنى من الأذونات:
    • تتيح لك هذه الخيار تقليل مهمة إنشاء الحقوق من خلال توليد الحد الأدنى من مجموعة الأذونات المطلوبة.
تحذير

متاحة فقط إذا لم يكن هناك أي أذونات محددة مسبقًا

  1. تحديد قيود على إصدار البيانات:
    • ينطبق الخيار فقط عند اختيار "إنشاء مجموعة الحد الأدنى من الأذونات"، ويحدد قيدًا على إصدار البيانات (10 سجلات)
  2. قسم API:
    • معلمة إلزامية، إذا كنت تقوم بإنشاء حق جديد، تحدد المسار لاختيار الأذونات.
  3. المسار:
    • الاختيار متاح فقط بعد اختيار قسم API، يوضح المسار لتعيين الحقوق.
  4. الاسم:
    • حقل إلزامي لاسم الحق.
  5. جدول "Permissions":
    • يمثل الجدول اختيارًا من طرق HTTP للمسار المحدد، مع تحديد خيارات "بدون قيود" و"مع قيود على عدد السجلات".
تحذير

لأي مسار في الجدول، يتم دائمًا تحديد 4 طرق: GET، POST، PUT، DELETE

  1. شروط إضافية تظهر هذه الشروط ليس لجميع المسارات، ولكن فقط للمسارات "القائمة" وتسمح بتخصيص الاستثناءات على الوثائق المستلمة.

    • إذا كنت بحاجة، على سبيل المثال، إلى منح الوصول لجميع الصفحات، ولكن مع استثناء، يمكنك الضغط على زر "اختر البيانات التي تريد استثنائها". في النافذة الإضافية التي تفتح، يمكنك اختيار البيانات التي تحتاج إلى تقييد الوصول إليها. على سبيل المثال، لقسم API - الصفحات، سيتم عرض قائمة هرمية من الصفحات، لقسم السمات - وفقًا لذلك السمات.

    قائمة المسارات المتاحة مع الشروط الإضافية:

    • /api/content/admins/all
    • /api/content/attributes-sets
    • /api/content/attributes-sets/{marker}/attributes
    • /api/content/pages
    • /api/content/blocks
    • /api/content/forms
    • /api/content/events/subscriptions
    • /api/content/orders-storage
    • /api/content/product-statuses
    • /api/content/templates
    • /api/content/template-previews
    • /api/content/integration-collections

    بعد اختيار البيانات للاستثناء، ستظهر خياران جديدان: "استثناء" - يشير الخيار إلى أن البيانات المحددة نريد استثنائها. "الحق النهائي" - هذا الحق لا يُورث في سلسلة المجموعات الفرعية (يصبح الخيار متاحًا فقط إذا تم اختيار خيار "استثناء").

تحذير

يعتمد اختيار الشروط الإضافية على المسار المحدد وليس دائمًا متاحًا. عند وجود مثل هذا الاختيار، يتم تمييزه بعلامة - "استثناءات متاحة للاختيار"

exceptions_marker

قائمة المسارات المتاحة للتخصيص

بشكل افتراضي، تدخل الحقوق الجديدة في قسم "الحقوق غير المستخدمة"، لتفعيلها، يكفي اختيارها، بالضغط على مربع الاختيار على يسار الاسم.

لفتح المحرر، يتم استخدام الزر edit

للحذف، استخدم remove

فهم حقوق الوصول

حقوق الوصول هي إعدادات تفصيلية تحدد الإجراءات التي يمكن أن تقوم بها المجموعة مع موارد معينة. وهي منظمة حسب أقسام API ويمكن توضيحها بشكل إضافي باستخدام الشروط.

البحث عن الحقوق في الجدول

يتم البحث عن الحقوق المطلوبة في الجدول عن طريق إدخال نص في حقل "بحث الحقوق"، واختيار الأقسام المطلوبة من API في المحدد، واختيار خيار "اختيار غير المستخدمة".

الحقوق النهائية

علامة التبويب الخاصة بالحقوق النهائية هي جدول معلوماتي مع تصفية حسب أقسام API لتسهيل البحث.

مثال: تقييد الوصول إلى المنتجات

  • قسم API: products
  • حقوق الوصول:
    • قراءة (Read): نعم
    • إضافة (Add): لا
    • تحرير (Edit): لا
    • حذف (Delete): لا

التكامل مع API

يوفر النظام API لإدارة المستخدمين والمجموعات وحقوق الوصول برمجيًا. فيما يلي أمثلة على العمليات النموذجية.

مثال على الطلب

/api/content/attributes-sets/product_1/attributes

الرد، إذا كانت المصادقة بدون توكن (مجموعة الضيف):

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
}
]

الرد، مع المصادقة، حيث تم السماح بجميع حقول السمة:

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "float",
"value": {},
"marker": "price",
"position": 19,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "price"
},
"additionalFields": []
}
]

كما نرى، حصل المستخدم المصرح له على حقل إضافي للسعر.