Как скрыть кнопку Вход и открыть[Решено]
Добавлено: 2019.06.24, 12:13
Есть вход в админку(для админа admin и менеджера manager) и фронтенд(для слушателя author)
Проблема в том, что надо сначала аутентифицироваться, потом еще раз нажать на кнопку и перейти куда надо
в соответствии с ролью(RBAC из коробки).
А надо, чтобы сразу перекидывало на нужную страницу, а кнопка
появлялась только для авторизованных пользователей.
Вид входа на фронтенде site/index
Контроллер
Проблема в том, что надо сначала аутентифицироваться, потом еще раз нажать на кнопку и перейти куда надо
в соответствии с ролью(RBAC из коробки).
А надо, чтобы сразу перекидывало на нужную страницу, а кнопка
Код: Выделить всё
. Html::submitButton(
'Вход (' . Yii::$app->user->identity->surname . ')',
['class' => 'btn btn-success', 'name' => 'login-button']
)
Вид входа на фронтенде site/index
Код: Выделить всё
<div class="col-lg-12">
<?php if (Yii::$app->user->isGuest): ?>
<?php $form = ActiveForm::begin(['id' => 'login-form', 'fieldConfig' => ['enableLabel'=>false]]); ?>
<?= $form->field($model, 'password', ['enableLabel' => false])
->widget(\yii\widgets\MaskedInput::className(), [
'mask' => '9999-9999-99',
])
->textInput(array('placeholder' => 'xxxx-xxxx-xx', 'class'=>'form-control text-center')); ?>
<div class="form-group">
<?= Html::submitButton('Вход', ['class' => 'btn btn-success', 'name' => 'login-button']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php elseif (Yii::$app->getUser()->can('manager')): ?>
<?= '<div class="form-group">'
//. Html::beginForm(['/site/logout'], 'post')
. Html::beginForm(['/admin'], 'post')
. Html::submitButton(
'Вход (' . Yii::$app->user->identity->surname . ')',
['class' => 'btn btn-success', 'name' => 'login-button']
)
. Html::endForm()
. '</div>' ?>
<?php elseif (Yii::$app->getUser()->can('indexEdu')): ?>
<?= '<div class="form-group">'
//. Html::beginForm(['/site/logout'], 'post')
. Html::beginForm(['/edu/index'], 'post')
. Html::submitButton(
'Вход (' . Yii::$app->user->identity->surname . ')',
['class' => 'btn btn-success', 'name' => 'login-button']
)
. Html::endForm()
. '</div>' ?>
<?php endif ?>
</div>
Код: Выделить всё
public function actionIndex()
{
//Это вообще без кнопки Вход
// if (!Yii::$app->user->isGuest) {
// return $this->goHome();
// }
// $model = new LoginForm();
// if ($model->load(Yii::$app->request->post()) && $model->login()) {
// if (Yii::$app->getUser()->can('manageUser'))
// {
//
// return $this->redirect(Yii::$app->urlManager->createUrl('/admin'));
// }
//
// elseif (Yii::$app->getUser()->can('indexEdu'))
// {
// return $this->redirect(Yii::$app->urlManager->createUrl('/edu/index'));
// }
//
//
// } else {
// $model->password = '';
//
// return $this->render('index', [
// 'model' => $model,
// ]);
// }
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
$model->password = '';
return $this->render('index', [
'model' => $model,
]);
}