Q: Yii2 интегрирует Rbac и кнопку распознавания - PullRequest
0 голосов
/ 10 октября 2018

Я занимаюсь разработкой веб-сайта на PHP с Yii2, и у меня проблема с Rbac.Я следовал официальному руководству, запустил миграцию, и теперь в моей базе данных есть четыре таблицы по умолчанию, которые определяют мои роли и разрешения.Сейчас я не знаю, как интегрировать эти роли в свой проект, я имею в виду, что я хотел бы, чтобы некоторые представления были видны только пользователям с определенными разрешениями, но не могли понять, как это реализовать.

У меня также проблема со входом в систему, я не знаю, как различить нажатие кнопки.

вход в систему (просмотр):

<div class="form-group">
    <div class="col-lg-offset-1 col-lg-11">
        <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button', 'value' => 'login']) ?>
        <?= Html::submitButton('Register', ['class' => 'btn btn-primary', 'name' => 'register-button', 'value' => 'register']) ?>
    </div>
</div>

SiteController:

public function actionLogin()
{
    if (!Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new LoginForm();
    if (isset($_POST['submit']) && $_POST['submit']=='login') {
        return $this->goBack();
    }
    if (isset($_POST['submit']) && $_POST['submit']=='register') {

        return $this->render('register');
    }
    return $this->render('login', [
        'model' => $model,
    ]);
}

Мне просто нужно визуализировать в разных видах пользователя после нажатия правой кнопки.Если нажата кнопка «Войти», я хочу, чтобы меня перенаправляли в окне входа в систему, если нажата кнопка «Зарегистрироваться», я хочу быть перенаправленным в окне регистрации.

1 Ответ

0 голосов
/ 11 октября 2018

Кажется, это вопрос два в одном.

Во-первых, RBAC.

Это очень хорошо объясняется в документах .Вы можете использовать AccessControl, чтобы разрешить доступ к определенным действиям только роли или разрешения.Если вам нужно показать какой-либо контент в представлении на основе роли или разрешения, используйте if(Yii::$app->user->can('permission_or_role)) echo "I can"; ( docs ).

Second, кнопки

Проверка это ссылка , имя кнопки должно быть именем, которое вы проверяете в контроллере (не login-button / register-button и проверка submit).

...