سؤال

كيف أعطي حقوق تحرير مستخدم محددة لعقدة معينة؟

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

هل كانت مفيدة؟

المحلول

سأحاول تغطي بعض حالات الاستخدام ، مع كيفية حلها:

  1. إذا كان بإمكان جميع أعضاء فئة من المستخدمين تحرير أي عقدة من نوع معين
    • قم بإنشاء دور جديد لتلك المجموعة الفرعية من المستخدمين ("Super Students" ، كما اقترح Emyr) ومنحهم "تحرير محتوى النوع" من خلال نظام الإذن الأساسي لـ Drupal (لا مطلوب وحدة وصول للعقدة)
  2. إذا كان بإمكان جميع أعضاء فئة من المستخدمين تحرير العقد المحددة
    • قم بإنشاء دور جديد لتلك المجموعة الفرعية من المستخدمين ومنحهم تحرير الأذونات على العقد المحددة (مطلوب وحدات الوصول إلى العقدة ، مثل الوصول إلى العقدة أو الوصول إلى المحتوى). سيتطلب ذلك أيضًا أن يكون لدى شخص ما الأذونات (والوقت) لمنح الوصول إلى الدور كلما تم إنشاء عقدة جديدة.
  3. يمكن لبعض المستخدمين تعديل بعض العقد ؛ لا توجد مجموعة من المستخدمين "النخبة" الذين يمكنهم تحرير جميع العقد ، ولا يمكن لجميع الأعضاء تعديل العقد نفسها
    • سيتطلب ذلك وحدة الوصول إلى العقدة ، مثل الوصول إلى العقدة أو الوصول إلى المحتوى مع ACL. ستحتاج أيضًا إلى أن يكون هناك مستخدمون إداريون لديهم إذن بمنح المستخدمين الآخرين وصولًا إلى تعديل العقد.
  4. السماح للمستخدمين بمنح الآخرين الوصول إلى تحرير عقدة أنشأوها.
    • لقد قمت بتطبيق هذا مؤخرًا مع حقل CCK مرجع المستخدم و مرجع مستخدم الوصول إلى العقدة. يمكنك منح المستخدمين إذنًا لتحرير العقد الخاصة بهم من خلال نظام الأذونات الأساسية ويمكنهم بعد ذلك إضافة مستخدمين آخرين إلى حقل مرجع المستخدم. في حالتي ، لا يتم منح المبدعين هذا الإذن وقمت بإعداد القيمة الافتراضية للحقل إلى معرف مستخدم المبدع ، والذي يسمح للمستخدم بإزالة أنفسهم من القدرة على تحرير العقدة.

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

نصائح أخرى

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

بالنسبة إلى هذه المجموعة المحددة ، يمكنك إنشاء وحدة نمطية تنفذ Hook_nodeapi وعلى $ OP == إعداد ، تحقق من معرف المستخدم مقابل مرجع المستخدم الخاص بك والقيام بصفحة DRUPAL_GOTO التي تم رفض الوصول إليها إذا لم تتطابق معها.

يمكنك القيام بذلك مع الوصول المرن. سيسمح له إعطاء مستخدم معين امتياز "التحديث" على العقدة بتحرير العقدة.

لمزيد من الخيارات ، راجع الصفحة: نظرة عامة على وحدات الوصول إلى العقدة @ drupal.org.

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

ال الوصول إلى العقدة قد تساعدك الوحدة النمطية في وضع أذونات مناسبة على العقد. إليك مقتطفات من صفحة مشروعها:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top