Как ограничить доступ гостя в админку?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как ограничить доступ гостя в админку?

Сообщение zelenin »

Leffken писал(а):

Код: Выделить всё

const $variable = 10; 
так не работает что ли ?
в имени константы не может быть $
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как ограничить доступ гостя в админку?

Сообщение zelenin »

Skesh писал(а):Изображение
почему вы в yii лезете, если базисов языка не знаете? вам банально сложно будет.

const ROLE_ADMIN = 'admin';
Skesh
Сообщения: 12
Зарегистрирован: 2016.04.22, 10:05

Re: Как ограничить доступ гостя в админку?

Сообщение Skesh »

Выноват, учусь по ходу дела. У меня с ООП туго было, так решил двух зайцев убить.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как ограничить доступ гостя в админку?

Сообщение zelenin »

Skesh писал(а):Выноват, учусь по ходу дела. У меня с ООП туго было, так решил двух зайцев убить.
ООП тут не причем - это основа языка - именование переменных, функций, констант.
Skesh
Сообщения: 12
Зарегистрирован: 2016.04.22, 10:05

Re: Как ограничить доступ гостя в админку?

Сообщение Skesh »

А можно здесь как то назначить роль только админу?

Код: Выделить всё

'access' => [
                'class' => AccessControl::className(),
                'only' => ['index', 'create','update','delete'],
                'rules' => [
                    [
                        'actions' => ['index','create','update','delete'],
                        'allow' => true,
                        'roles' => ['@'], /* admin? */
                    ],
                ],
            ],
или только через RBAC?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как ограничить доступ гостя в админку?

Сообщение zelenin »

вместо @ можете прописать роль либо пермишн. Доку прочтите - там все описано.
Skesh
Сообщения: 12
Зарегистрирован: 2016.04.22, 10:05

Re: Как ограничить доступ гостя в админку?

Сообщение Skesh »

читаю: http://stuff.cebe.cc/yii2docs-ru/guide- ... ation.html
но никак не могу понять, как именно админу назначить права
гуглю так: yii access roles admin
там куча всего, но не того что нужно, хоть подскажите как гуглить?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как ограничить доступ гостя в админку?

Сообщение zelenin »

это фильтр доступа к экшну по роли, а не назначение роли.
Skesh
Сообщения: 12
Зарегистрирован: 2016.04.22, 10:05

Re: Как ограничить доступ гостя в админку?

Сообщение Skesh »

zelenin плачу 100 р. на вебмани, за рабочий пример конкретно для моего случая?
Есть модуль admin, в нем куча под модулей типа категорий под категорий и тд., нужно ограничить доступ к нему, доступ только админу.
Идет?
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Как ограничить доступ гостя в админку?

Сообщение Dominus »

Без RBAC, в контроллере:

Код: Выделить всё

use yii\filters\AccessControl;

...
public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['login', 'logout'], // действия в контроллере
                'rules' => [ // правила к действиям
                    [
                        'allow' => true,
                        'actions' => ['login'], // действия в контроллере
                        'roles' => ['?'], // Доступ к действиям только для не авторизованных пользователей
                    ],
                    [
                        'allow' => true,
                        'actions' => ['logout'], // действия в контроллере
                        'roles' => ['@'], // Доступ к действиям только для авторизованных пользователей
                    ],
                ],
            ],
        ];
    }
.... 
Соответственно у тебя только 2е роли админ и гость. Админом считается авторизованный пользователь, остальные гости.

Если же нужно больше ролей, то нужен RBAC.

Чтобы проверить является ли пользователь гостем:

Код: Выделить всё

Yii::$app->user->isGuest ? 'Гость' : 'Не гость';
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Skesh
Сообщения: 12
Зарегистрирован: 2016.04.22, 10:05

Re: Как ограничить доступ гостя в админку?

Сообщение Skesh »

В том и дело что роль нужна не для авторизованного пользователя, а именно для админа. Но в любом случае спасибо, уже разбираюсь с RBAC.
Думал что это можно сделать просто в контроллере, а тут бубен.
Все говорят что с фреймворком разработка в разы быстрее, но пока раздуплишся в нем то 5 сайтов можно было сделать )))
Ответить