Как ограничить доступ гостя в админку?
-
- Сообщения: 13
- Зарегистрирован: 2016.02.26, 14:39
Как ограничить доступ гостя в админку?
Добрый день. Подскажите пожалуйста как в Yii можно ограничить доступ гостя в админку и при заходе на любую страницу админки ему выдавать виюшку login? Как сделать это в одном месте в behaviors() ? Чтобы работало в других контроллерах? Когда наследую один контроллер другим, то behaviors перекрывают друг друга и не работает. Мне редлагали rbac но он мне пока не нужен. Про AccessControl читал но там написано про то как сделать в одном месте. Придумал реализовать через components в настройках, но как тогда его подключать во всех контроллерах?
Спасибо заранее.
Спасибо заранее.
Re: Как ограничить доступ гостя в админку?
Както так
Код: Выделить всё
<?php
namespace admin;
use Yii;
use yii\filters\AccessControl;
use app\models\User;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'admin\controllers';
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => [User::ROLE_ADMIN]
]
]
]
];
}
}
-
- Сообщения: 13
- Зарегистрирован: 2016.02.26, 14:39
Re: Как ограничить доступ гостя в админку?
Спасибо за столь быстрый ответ. Подскажите, куда мне прописывать этот код? Это модуль? А как его подключать к контроллерам?
Re: Как ограничить доступ гостя в админку?
Module.phpqwww1.1978 писал(а):Спасибо за столь быстрый ответ. Подскажите, куда мне прописывать этот код? Это модуль? А как его подключать к контроллерам?
В контроллере не нужно писать ничего
-
- Сообщения: 13
- Зарегистрирован: 2016.02.26, 14:39
Re: Как ограничить доступ гостя в админку?
Извините, а куда этот файл module.php тогда положить? Нужно ли что-нибудь прописывать в настройках main.php ? Дополню что использую приложение advanced и я использую не модули а у меня просто набор котроллеров, моделей и вьюх.Onotole писал(а): Module.php
В контроллере не нужно писать ничего
Re: Как ограничить доступ гостя в админку?
Можете сделать костыль:
Но ни к чему хорошему это не приведет.
Код: Выделить всё
public function behaviors() {
return array_merge(parent::behaviors(), [
// ...
]);
}
-
- Сообщения: 13
- Зарегистрирован: 2016.02.26, 14:39
Re: Как ограничить доступ гостя в админку?
Спасибо вроде разобрался. Попробую через parent сделать
Re: Как ограничить доступ гостя в админку?
Сгенерируйте модуль в gii и автоматом создастся Module.php в корне модуля. В нем и пишитеqwww1.1978 писал(а):Извините, а куда этот файл module.php тогда положить? Нужно ли что-нибудь прописывать в настройках main.php ? Дополню что использую приложение advanced и я использую не модули а у меня просто набор котроллеров, моделей и вьюх.Onotole писал(а): Module.php
В контроллере не нужно писать ничего
-
- Сообщения: 13
- Зарегистрирован: 2016.02.26, 14:39
Re: Как ограничить доступ гостя в админку?
Onotole писал(а):Сгенерируйте модуль в gii и автоматом создастся Module.php в корне модуля. В нем и пишитеqwww1.1978 писал(а):Извините, а куда этот файл module.php тогда положить? Нужно ли что-нибудь прописывать в настройках main.php ? Дополню что использую приложение advanced и я использую не модули а у меня просто набор котроллеров, моделей и вьюх.Onotole писал(а): Module.php
В контроллере не нужно писать ничего
Хорошо. Спасибо!
Re: Как ограничить доступ гостя в админку?
Undefined class constant 'ROLE_ADMIN' - перевели уже?Skesh писал(а):не подскажете как починить?
Re: Как ограничить доступ гостя в админку?
что перевел?
Re: Как ограничить доступ гостя в админку?
текст ошибки.Skesh писал(а):что перевел?
Re: Как ограничить доступ гостя в админку?
ну да, нужно где то назначить роль админа? ток начал учить юии...
Re: Как ограничить доступ гостя в админку?
как перевели?Skesh писал(а):ну да, нужно где то назначить роль админа? ток начал учить юии...
-
- Сообщения: 132
- Зарегистрирован: 2015.09.30, 20:12
Re: Как ограничить доступ гостя в админку?
Нужно не с фреймворка начинать, а с языка.Skesh писал(а):ну да, нужно где то назначить роль админа? ток начал учить юии...
нужно завести константу ROLE_ADMIN в классе User. Далее работать с ней.
P.s.
@zelenin поздравляю с зеленкой
Re: Как ограничить доступ гостя в админку?
Код: Выделить всё
const $variable = 10;