Мне нужен контроль доступа в yii для двух пользователей.
1. аутентифицированный пользователь: весь доступ
2) Пользователь, вышедший из системы: если пользователь вышел из системы и просмотрев какую-либо контактную систему, он автоматически войдет в систему с гостевым пользователем.
Теперь то, что я хочу, чтобы у гостевого пользователя был ограниченный доступ. хотя пользователь вошел в систему и является аутентифицированным пользователем.
что я пробовал
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('viewgoal','getdescription'),
'users' => array('*'),
),
array('deny', // deny all guest user
'actions'=>array('Maingoal','delete','create'),
'users'=>array('guest'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'users'=>array('@'),
),
);
}
это ограничивает доступ пользователя к странице. Но я хочу, чтобы пользователь мог видеть форму, чтобы создать, но ограничить, чтобы отправить. Мне нужно общее решение, так как у меня есть около 100 форм на многих страницах. Пожалуйста помоги
Вы не можете использовать правила доступа, чтобы ограничить только часть вашего кода.
Но вы можете сделать это, используя роли внутри вашего кода.
if (Yii::app()->user->isAdmin) {
echo CHtml::submitButton();
}
Для аутентифицированных пользователей:
if (!Yii::app()->user->isGuest) {
echo "Authenticated";
}
Для гостей:
if (Yii::app()->user->isGuest) {
echo "Guest";
}