Cześć,
Serdecznie polecam Ci Yii. Długo szukałem frameworka odpowiedniego dla mnie i myślę, że już mam. Wcześniej testowałem CodeIgnitera, przyjrzałem się Zend, Cake, Symfony i paru innym.
Co do Twojego pytania to domyślam się, że chcesz skorzystać z modułów RBAC. Niedawno wdrożyłem moduł RBAM (jest do pobrania w rozszerzeniach). Polecam Ci go, u mnie działa wyśmienicie. Musisz zainstalować go zgodnie z instrukcją a w kontrolerach musisz zdefiniować filtr oraz przypisać uprawnienia do akcji. Np:
/**
* @return array action filters
*/
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
public function accessRules()
{
return array(
array(
'allow',
'roles'=> array('RBAC Manager')
),
array(
'deny',
'users'=> array('*')
),
);
}
W elementach ‘inline’ gdzie jakiś fragment strony ma się pojawiać bądź też nie w zależności od uprawnienia (najczęściej parametr ‘visible’ lub zwykły if) stosujesz funcję checkAccess:
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=> Yii::t('app', 'Klient'), 'url'=>array('/client')),
array('label'=> Yii::t('app', 'Zamówienie'), 'url'=>array('/order'), 'visible'=>Yii::app()->user->checkAccess('Order')),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'HR', 'url'=>array('/recruit'), 'visible'=>Yii::app()->user->checkAccess('Recruit')),
array('label'=>'Admin', 'url'=>array('/admin'), 'visible'=>Yii::app()->user->checkAccess('RBAC Manager')),
array('label'=>Yii::t('app', 'Zaloguj'), 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>Yii::t('app', 'Wyloguj') .' ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
)); ?>