هل تريد تزويد المستخدم برابط "تغيير الأذونات" في نوع المحتوى؟

StackOverflow https://stackoverflow.com/questions/1622716

  •  06-07-2019
  •  | 
  •  

سؤال

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

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

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

أيه أفكار؟

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

المحلول

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

  • تاك لايت يسمح لك بربط المفردات بمخطط التحكم في الوصول.يمكن ربط كل مصطلح بأذونات وصول عرض/تحرير مختلفة لمستخدمين محددين أو أدوار مستخدمين محددة.

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

    تتمثل ميزة TAC_lite في المرونة في إنشاء نموذج الوصول الخاص بك مع ظهور متطلبات جديدة - مثل حصول "المشتركين المميزين" على إمكانية الوصول إلى محتوى أكثر تقييدًا.

  • الوصول إلى المحتوى يسمح لك بتعيين قواعد التحكم في الوصول حسب نوع المحتوى، والتجاوز حسب العقدة.لا أستطيع التحدث إلى واجهة المستخدم، لأنني لم أستخدم هذا الوضع.

نصائح أخرى

في حالة عدم ملاءمة اقتراح Graysides (الجيد)، يمكنك القيام بذلك بنفسك دون "اختراق" وحدة المدونة عن طريق التنفيذ hook_nodeapi() و hook_form_alter() في وحدة مخصصة:

  • في عملية "تحميل" الخطافات، يمكنك إضافة فحص لإعدادات الوصول الحالية للعقد فيما يتعلق بالمجهول مقابل المجهول.مستخدمون موثقين.يمكنك إضافة خاصية لذلك إلى كائن العقدة (كن على دراية بتعارضات التسمية المحتملة - يجب عليك بادئة أسماء الخصائص المخصصة في كائن العقدة باسم الوحدات النمطية الخاصة بك).
  • عبر hook_form_alter(), ، يمكنك إضافة عنصر نموذج (على سبيل المثالأزرار الاختيار) إلى نماذج تحرير العقدة لعقد مدونتك التي تسمح للمستخدمين بتحديد الرؤية، مع تعيينها افتراضيًا على خاصية العقدة الجديدة من الأعلى.
  • على insert و update عمليات hook_nodeapi(), ، عليك بعد ذلك التحقق من الخاصية الجديدة مرة أخرى وضبط إعدادات الوصول إلى العقد وفقًا لذلك.

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

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