سؤال

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

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

المحلول

ليس من الضروري إنشاء إجراء وحدة تحكم جديدة ، ولكن قد تقرر ذلك. لاحظ أنه لا يزال بإمكانك استخدام نفس العرض لاستخدامها $this->render("edit") يرى: http://book.cakephp.org/view/428/render

أعتقد أنه يجب عليك:

  • استخدم نفس إجراء وحدة التحكم ، إذا لم يكن هذا مربكًا للمستخدمين والمستعملين
  • عرض حقل إدخال فقط إذا كان المستخدم هو المسؤول ، وإخراج النص للمستخدمين الآخرين
  • تحقق من الحصول على إذن في وحدة التحكم

نصائح أخرى

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

يمكنك أيضًا القيام بذلك في نموذج مع BeForesave (). إذا كان الحقل موجودًا ولم يكن لديهم إذن ، فقم بإزالته.

يمكنك التحقق من دور المسؤول في عرض التحرير

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top