denyCallback в behaviors (продолжить выполнение)

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

denyCallback в behaviors (продолжить выполнение)

Сообщение specterguy »

Можно ли сделать что-то типа

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

return true;
в

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

'denyCallback' => function ($rule, $action) {
чтобы реквест выполнился далее?

Так же как в

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

'matchCallback' => function ($rule, $action) {
Пробовал return true и просто ничего не писал - просто происходит exit() или die(), то есть до екшена не доходит
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: denyCallback в behaviors (продолжить выполнение)

Сообщение lynicidn »

1. это называется фильтрами а не бехавиорами
2. нельзя, в любом случае beforeAction вернет фальш, что приведет к 403 https://github.com/yiisoft/yii2/blob/ma ... l.php#L112
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: denyCallback в behaviors (продолжить выполнение)

Сообщение specterguy »

я просто имел ввиду, что функция в behaviors находится)
тогда может подскажите мне, где можно прописать условие, типа if (userGroup == "admin" or checkAccessToAction("index")), чтобы правила в access в behaviors проигнорировались и екшен в любом случае вызвался?
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: denyCallback в behaviors (продолжить выполнение)

Сообщение specterguy »

хотел сделать так, но видимо уже не получится

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

'denyCallback' => function ($rule, $action) {
                    if (Yii::$app->user->isGuest) {
                        $this->redirect(['site/login']);
                    } else if (!UserIdentity::checkAccess(Yii::$app->controller->route)) {
                        $this->redirect(['site/forbidden']);
                    }
                    return true;
                }
            ]
        ];
    }
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: denyCallback в behaviors (продолжить выполнение)

Сообщение lynicidn »

в конкретном руле вы можете указать https://github.com/yiisoft/yii2/blob/ma ... le.php#L77
Ответить