mitisk/yii2-admin

Админка для проектов Yii2

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

pkg:composer/mitisk/yii2-admin

v1.1.0 2026-01-05 13:55 UTC

This package is auto-updated.

Last update: 2026-01-05 17:36:03 UTC


README

Logo

Yii2 Admin Module

Latest Stable Version Total Downloads

Модуль административной панели для Yii2 приложений. Предоставляет готовый интерфейс для управления пользователями, настройками, меню и другими аспектами системы.

📋 Основные возможности

  • Управление пользователями: CRUD операции, назначение ролей (RBAC), блокировка/активация.
  • Сброс пароля: Функционал генерации и отправки нового пароля пользователю на email.
  • Имперсонация: Возможность входа под другим пользователем ("Login As") для отладки.
  • Управление настройками: Глобальное хранилище настроек (key-value) с удобным интерфейсом.
  • Email шаблоны: Управление шаблонами писем с поддержкой плейсхолдеров.
  • RBAC: Интеграция с kak-rbac для управления ролями и разрешениями.
  • Меню: Динамическое управление пунктами меню.

⚙️ Установка и Настройка

Предпочтительный способ установки — через composer.

Запустите:

composer create-project --prefer-dist yiisoft/yii2-app-basic .
composer require mitisk/yii2-admin

Отредактируйте db.php. Для создания таблиц в БД выполните команду:

php yii migrate --migrationPath=@vendor/mitisk/yii2-admin/migrations

1. Подключение модуля

Добавьте модуль в конфигурацию вашего приложения (config/web.php или common/config/main.php):

'modules' => [
    'admin' => [
        'class' => 'Mitisk\Yii2Admin\Module',
        //'layout' => 'admin', // Используемый лейаут
    ],
    // ...
],

2. Настройка компонентов

Settings Component

Для работы с настройками зарегистрируйте компонент:

'components' => [
    'settings' => [
        'class' => 'Mitisk\Yii2Admin\components\SettingsComponent',
    ],
    // ...
],

Использование в коде:

// Сохранить настройку
Yii::$app->settings->set('Mitisk\Yii2Admin\models\Settings', 'api_key', 'your-key');

// Получить настройку
$apiKey = Yii::$app->settings->get('Mitisk\Yii2Admin\models\Settings', 'api_key');

Пользователи

Напишите свой identityClass или воспользуйтесь примером конфигурации user:

'components' => [
    'user' => [
        'identityClass' => 'Mitisk\Yii2Admin\models\AdminUser',
        'enableAutoLogin' => true,
    ],
],

RBAC Configuration

Пример конфигурации authManager и модуля rbac:

'components' => [
    'authManager' => [
        'class' => 'kak\rbac\components\DbManager',
        'defaultRoles' => ['guest', 'user'],
        'cache' => 'cache',
        'cacheKey' => 'rbac',
    ],
],
'modules' => [
    'rbac' => [
        'class' => 'kak\rbac\Module',
        'mainLayout' => '@app/modules/admin/views/layouts/main.php',
        'userAttributes' => ['username', 'email', 'name'],
        'params' => [
            'protectedRoles' => ['admin', 'superAdminRole'],
            'protectedPermissions' => ['superAdmin', 'manageUserRoles'],
        ]
    ],
    // ...
],

Красивые URL

Пример конфигурации urlManager:

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'suffix' => '/',
        'normalizer' => [
            'class' => 'yii\web\UrlNormalizer',
            'normalizeTrailingSlash' => true,
            'collapseSlashes' => true,
        ],
        'rules' => [
            '/' => 'site/index',
            '<module:(admin|rbac)>' => '<module>/default/index',
        ]
        //'rules' => require_once(__DIR__ . '\url_rules.php'),
    ],
    // ...
],

Парсеры и корень сайта

Пример конфигурации request:

'components' => [
    'request' => [
        'baseUrl'=> '',
        'parsers' => [
            'application/json' => 'yii\web\JsonParser',
        ],
    ],
    // ...
],

Форматирование

Пример конфигурации formatter:

'components' => [
    'formatter' => [
        'class' => yii\i18n\Formatter::class,
        'locale' => 'ru-RU',
        'timeZone' => 'Europe/Moscow',
        'defaultTimeZone' => 'UTC',
        'dateFormat' => 'php:d MMMM Y',
        'timeFormat' => 'php:H:i:s',
        'datetimeFormat' => 'php:d MMMM Y H:i:s',
        'decimalSeparator' => ',',
        'thousandSeparator' => ' ',
        'currencyCode' => 'RUR',
    ],
    // ...
],

bootstrap

Пример конфигурации bootstrap:

'bootstrap' => ['log', 'admin'],

🚀 Функционал

Управление пользователями (UserController)

Контроллер предоставляет полный набор действий для администрирования пользователей:

  • Просмотр и поиск: Фильтрация списка пользователей.
  • Создание и Редактирование: Управление профилем, аватаром и статусом.
  • Управление ролями: Назначение и отзыв ролей RBAC прямо в форме редактирования.
  • Отправка нового пароля:
    • Доступно в форме редактирования пользователя.
    • Генерирует случайный пароль.
    • Отправляет письмо по шаблону new_user_password.
    • Требует наличия email и типа авторизации "Пароль" или "Пароль + код".
  • Вход под пользователем: Действие login-as позволяет администратору авторизоваться под любым пользователем.

Виджет меню (MenuWidget)

Для добавления пунктов меню в виджет используйте событие:

use Mitisk\Yii2Admin\widgets\MenuWidget;

Yii::$app->on(MenuWidget::EVENT_BEFORE_RENDER, function ($event) {
    $event->menuArray[] = [
        'label' => 'Новый пункт',
        'href' => '/new-item',
        'icon' => 'icon-name'
    ];
});

Email Шаблоны

Модуль использует систему шаблонов для отправки писем.

  • Модель: EmailTemplate
  • Сервис: Mitisk\Yii2Admin\components\MailService

Пример отправки письма:

$mailService = new \Mitisk\Yii2Admin\components\MailService();
$mailService->send('template_slug', 'user@example.com', [
    'PARAM1' => 'Value 1',
    'PARAM2' => 'Value 2',
]);

🔒 Права доступа (Permissions)

Основные разрешения, используемые в модуле:

  • viewUsers - Просмотр списка пользователей.
  • createUsers - Создание пользователей.
  • updateUsers - Редактирование пользователей.
  • deleteUsers - Удаление пользователей.
  • manageUserRoles - Управление ролями пользователей.
  • admin - Доступ к админ-панели и функции имперсонации.

📂 Структура

  • controllers/ - Контроллеры (User, Role, Settings, etc.)
  • models/ - Модели данных (AdminUser, Settings, EmailTemplate, etc.)
  • views/ - Представления админ-панели.
  • components/ - Служебные компоненты (MailService, SettingsComponent).
  • widgets/ - Виджеты интерфейса.