Открыть доступ к методу api

157
26 ноября 2020, 09:30

Возможно-ли в yii2 при использовании аутентификатора, открыть доступ к какому-либо методу(-ам)(в моем случае actionParents) для неаутентифицированного пользователя

namespace app\modules\api\controllers;

use app\models\Department;
use app\models\User;
use yii\data\ActiveDataProvider;
use yii\filters\AccessControl;
use yii\filters\auth\HttpBasicAuth;
use yii\rest\ActiveController;
class DepartmentController extends ActiveController
{
    public $modelClass = 'app\models\Department';
    public function behaviors()
    {
        return array_merge(parent::behaviors(), [
            'basicAuth' => [
                'class' => HttpBasicAuth::class,
                'auth' => function ($u, $p) {
                    $user = User::findOne(['username' => $u]);
                    return $user->validatePassword($p) ? $user : null;
                }
            ],
            'access' => [
                'class' => AccessControl::class,
                'only' => ['parents'],
                'rules' => [
                    [
                        'allow' => true,
                        'actions' => ['parents'],
                        'roles' => ['?'], // тут как бы должно произойти чудо, но нет
                    ],
                ]
            ],
        ]);
    }
    public function actionParents($id)
    {
        return new ActiveDataProvider([
            'query' => Department::find()->parents($id)
        ]);
    }
}

Сейчас неаутентифицированный пользователь видит:

{
    "name": "Unauthorized",
    "message": "Your request was made with invalid credentials.",
    "code": 0,
    "status": 401,
    "type": "yii\\web\\UnauthorizedHttpException"
}
READ ALSO
Здравствуйте! Есть проблема с ООП в PHP

Здравствуйте! Есть проблема с ООП в PHP

Начал недавно изучать ООП и решил переписать с нуля свой скрипт написанный с помощью процедурного стиля в ООП стильНо мой код почему-то работает...

111
Работа с get методом. Передача параметров

Работа с get методом. Передача параметров

]Код работает до момента когда я делаю запрос delete from он его просто как будто не читаетНе понимаю в чем дело

126
Переопределить класс?

Переопределить класс?

У меня такая проблемаЕсть класс, при его наследовании я добавляю в дочерний класс переменную, но при обращении к этой переменной ошибка

165
Выводит только первую строку

Выводит только первую строку

Пытаюсь заполнить таблицу значениями из БДНо выводятся только первые значения

156