[font="Tahoma"][right]
توی کتاب آجیل، برای سطح دسترسی، سه تا جدول به اسم های
AuthItem
AuthItemChild
AuthAssignment
میسازه
که نقش،وظیفه و عمل رو تعریف میکنه و به کاربر اختصاص میده
حالا سوال من اینجاست که برای اعمال این سطح دسترسی،باید بصورت دستی توی همه اکشن های یک کنترلر
شرط زیر رو بنویسیم؟
بافرض داشتن رکوردی با نام
createArticle
توی جدول
authitem
[left]
if(!Yii::app()->user->checkAccess('createArticle'))
{
throw new CHttpException(403,'شما به صفحه ارسال مقاله دسترسی ندارید');
}
[/left]
نمیشه اینو یه جوری توی
accessRules
قرار داد؟
با داشتن نقش های
admin
owner
member
reader
میشه توی کد زیر
[left]
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
[/left]
قسمت
[left]
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
[/left]
به حالت زیر تغییر بدیم؟
[left]
'users'=>array('admin','owner','member'),
[/left]
چطور میشه ابه این صورت کلی
سطح دسترسی داد
اصلا این اسم
admin
مربوط به جدولی میشه یا بصورت پیشفرضه؟
[/right][/font]