Друзья, прошу помочь новичку разобраться с таким вопросом:
Есть главное меню, которое настраивается через layouts/main.php. Предполагается что видимость одного из элементов будет определяться в зависимости от текущей роли юзера:
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
...
array('label'=>'Activate account','url'=>array('/registration/codeactivation'),
'visible'=>Yii::app()->user->checkAccess('allowactivation')....
...
В контроллере происходят действия, которые меняют роль и право на allowactivation исчезает. Хочу что бы при этом и соответствующий пункт меню прятался. Если после изменения прав в контролере делать
RegistrationController.php
$this->redirect(array('site/index'));
то все отлично и меню отображается уже по другому. Но если вместо редиректа делаю render нового view и затем refresh, то меню не меняется:
RegistrationController.php
$this->render('linkactivation');
$this->refresh();
При этом в мануале про CController.refresh английским по белому сказано что метод CController.refresh аналогичен нажатию кнопки "обновить" в браузере. Не аналогичен - при нажатии на рефреш браузера меню обновляется.
Может надо как-то объект CMenu рендерить перед refresh отдельно? Но как получить к нему доступ из контроллера?
Буду благодарен за подсказку