إطار Yii - كيفية تحديد قواعد الوصول نفس لكافة وحدات تحكم وحدة؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

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

المحلول

وحل واحد سيكون توسيع وحدة تحكم BaseClass مشترك لكل فئة مصادقة.

وبهذه الطريقة يمكنك كتابة مرة واحدة.

نصائح أخرى

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

والحل الحيوي الوحيد هو لتحديد التجريد الجديد على النحو المقترح إسماعيل.

class ExtendedController
{
    public function rules()
    {
        return array_merge(parent::rules(), array(
           // your rules
        ));
    }
}

وإسماعيل وpestaa خيارات جيدة للغاية حتى بسرعة لتنفيذ، مع ذلك أنا دائما يوصي بدائل أكثر قوة مثل نموذج RBAC. يمكنك العثور على واجهة المستخدم الرسومية جيد جدا ل Yii RBAC في <لأ href = "HTTP: / /code.google.com/p/srbac/ "يختلط =" نوفولو noreferrer "> http://code.google.com/p/srbac/

وهذا عمل بالنسبة لي:

class extendedController extends baseController
{
    public function accessRules()
    {
        return array_merge(

            // This controller's rules are added first:
            // Allow all users to call the 'hello' action.
            array(
                array('allow',
                    'actions'=>array('hello'), 
                    'users'=>array('*'),
                ),
            ),

            // BaseController rules are added last, especially
            // if the last rule in the baseController denies all
            // users that were not allowed yet.
            parent::accessRules()
        );
    }

    public function actionHello()
    {
        echo('Hello!');
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top