PDA

View Full Version : accessrules



hosein123
پنج شنبه 21 اسفند 1393, 10:37 صبح
سلام برای استفاده از access rules باید تنظیمات خاصی انجام یا نه
من از کد در کنترلر استفاده میکنم ولی تاثیری نداره میخوام فقط حذف توسط مدیر انجام بشه ولی هر کاربری که عضو میشه میتونه عملیات رو انجام بده
و این که چطور بین کاربران عضو کاربر مدیر رو معرفی کنم
مشکل کار کجاست


public function accessRules()
{
return array(
array('deny',
'actions'=>array('create', 'edit'),
'users'=>array('?'),
),
array('allow',
'actions'=>array('delete'),
'roles'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
'actions'=>array('delete'),
'message'=>'شما اجازه این کار را ندارید',
),
);
}

farazsahebdel
پنج شنبه 21 اسفند 1393, 11:45 صبح
سلام
شما مگه از RBAC استفاده کردین ؟


array('allow', 'actions'=>array('delete'), 'users'=>array('admin'),
),


تغییر بدین.

hosein123
پنج شنبه 21 اسفند 1393, 12:23 عصر
یکم درباره RBAC توضیح دهید؟
قبلش این تابع را باید میزاشتم که نزاشته بودم الان دیگه درست شد کار میکنه
وقتی کسی که بهش اجازه نداده باشم اون action استفاده کنه به صفحه خطاها میره و اون پیامو بهش نشون میده
به نظر شما این کار درسته ؟


public function filters()
{
return array(
'accessControl',
);
}

MMSHFE
پنج شنبه 21 اسفند 1393, 23:28 عصر
بله درسته. به این میگن SimpleAccessControl و RBAC یکم کاملتر و پیچیده تره و برای وقتی بکار میره که بخواین به کاربران سطوح دسترسی مختلفی بدین. درمورد Roll Based Access Control in Yii تحقیق کنید.

hamidreza_zamanian
سه شنبه 11 فروردین 1394, 13:29 عصر
شما باید deny رو آخر قرار بدید مثلا


public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('captcha','adminArea'),
'users'=>array('*'),
),


array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('changePass','increaseBalance'),
'users'=>array('@'),
),





array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('sabtName','action2','action3'),
'users'=>array('?'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('action4','action5''),
'users'=>array('@'),
'expression'=>'Yii::app()->user->AyaAdminAst()',



),




array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('vorod','sabtenam'),
'users'=>array('?'),


),












array('deny', // deny all users
'users'=>array('*'),
'deniedCallback' => array($this, 'redirecting'),
),
);
}

که در این مثلا تکر کاربر اجازه دسترسی نداشت به یک صفحه دیکه هدایت میشه نمومش رو میتونید تو وب سایت NazarFa.ir مشاهده کنید

hosein123
یک شنبه 16 فروردین 1394, 07:16 صبح
شما باید deny رو آخر قرار بدید مثلا


public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('captcha','adminArea'),
'users'=>array('*'),
),


array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('changePass','increaseBalance'),
'users'=>array('@'),
),





array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('sabtName','action2','action3'),
'users'=>array('?'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('action4','action5''),
'users'=>array('@'),
'expression'=>'Yii::app()->user->AyaAdminAst()',



),




array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('vorod','sabtenam'),
'users'=>array('?'),


),












array('deny', // deny all users
'users'=>array('*'),
'deniedCallback' => array($this, 'redirecting'),
),
);
}

که در این مثلا تکر کاربر اجازه دسترسی نداشت به یک صفحه دیکه هدایت میشه نمومش رو میتونید تو وب سایت NazarFa.ir مشاهده کنید



ممنون که وقت گذاشتید و جواب دادید اگه ممکنه در مورداین خط بیشتر توضیح دهید که redirecting به کجا صورت میگیرد و این یک تابع هست یا کلمه رزرو هست


.'deniedCallback' => array($this, 'redirecting'),
),
.

MMSHFE
سه شنبه 18 فروردین 1394, 09:52 صبح
داره به متد actionRedirecting از کنترلر جاری انجام میشه (باید اکشن مربوطه رو خودتون بنویسید).