Как полностью закрыть админ панель для обычных пользователей в Yii2 со сквозной авторизацией?

В Yii2 фреймворке для полного закрытия административной панели для обычных пользователей с использованием сквозной авторизации, вам потребуется принять несколько шагов.

Шаг 1: Создание фильтра
Для начала вам нужно создать фильтр, который будет применяться ко всем контроллерам административной панели. Фильтр будет проверять, является ли пользователь администратором, и, в случае отрицательного результата, перенаправлять его на другую страницу. Для создания фильтра вам нужно создать новый класс в каталоге app/filters (если его нет, создайте новую папку filters в каталоге app):

<?php

namespace appfilters;

use Yii;
use yiibaseActionFilter;

class AdminFilter extends ActionFilter
{
    public function beforeAction($action)
    {
        if (!Yii::$app->user->can('admin')) {
            return Yii::$app->getResponse()->redirect(['site/error']);
        }

        return parent::beforeAction($action);
    }
}

Шаг 2: Применение фильтра к контроллерам административной панели
После создания фильтра, вам нужно применить его к контроллерам административной панели. Для этого вам нужно добавить следующую строку кода в каждый контроллер административной панели (например, в файле app/controllers/AdminController.php):

public function behaviors()
{
    return [
        'access' => [
            'class' => 'appfiltersAdminFilter',
        ],
    ];
}

Теперь фильтр будет применяться ко всем действиям в контроллерах административной панели, и, если пользователь не является администратором, он будет перенаправлен на страницу ошибки.

Шаг 3: Настройка сквозной авторизации
Далее вы должны настроить сквозную авторизацию в вашем приложении Yii2. Вам нужно добавить класс IdentityInterface в вашей модели пользователя (обычно это модель app/models/User.php). Для реализации IdentityInterface вы также должны реализовать методы findIdentity() и findIdentityByAccessToken() в вашей модели пользователя.

use yiiwebIdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{
    // ...
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }
    
    public static function findIdentityByAccessToken($token, $type = null)
    {
        // необходимо реализовать
    }
}

Шаг 4: Настройка авторизации
Для настройки авторизации вам нужно настроить класс userComponent в вашем файле конфигурации приложения (обычно это файл config/web.php). Вы должны указать класс пользователя, реализующий IdentityInterface, и настроить объект 'authManager' для использования ролей и разрешений.

`php