Search by

illusiard / audit

Illusiard

Yii2 Audit UI module (views + search) for illusiard/yii2-auditlog

Package info

github.com/Illusiard/yii2-audit

Type:yii2-extension

pkg:composer/illusiard/audit

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

v1.2.0 2026-09-19 20:52 UTC

This package is not auto-updated.

Last update: 2026-10-17 21:28:31 UTC


README

UI-модуль для просмотра и анализа логов в Yii2-приложениях.

Пакет предоставляет готовый веб-интерфейс (GridView + модальные окна) для просмотра логов, записываемых через пакет illusiard/yii2-auditlog.

Модуль не зависит от конкретной реализации пользователей в проекте и полностью конфигурируется через настройки.

Возможности

  • Просмотр audit log через /audit
  • Поиск и фильтрация:
    • entity type
    • entity id (включая UUID)
    • action
    • user id (включая UUID)
    • период дат
  • Детальный просмотр записи в модальном окне
  • Удобное отображение diff:
    • подсветка изменений
    • сворачиваемые длинные значения
    • pretty JSON для массивов и объектов
  • Отображение контекста выполнения
  • Гибкая интеграция с пользовательской моделью
  • RBAC / IP фильтрация доступа
  • Использует стандартные виджеты Yii2 (GridView, Pjax, хелперы)

Требования

  • PHP 8.5+
  • Yii2 2.0.55+
  • illusiard/yii2-auditlog ^1.2

Установка

composer require illusiard/yii2-audit

Пакет автоматически регистрирует модуль audit через Bootstrap.

Миграции

Миграции находятся в core-пакете:

php yii migrate --migrationPath=@illusiard/auditlog/migrations

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

Минимальная конфигурация не требуется — модуль доступен сразу по адресу:

/audit

Полная конфигурация

'modules' => [
    'audit' => [
        'class' => illusiard\audit\AuditModule::class,

        // Layout (null = layout приложения)
        // 'layout' => '@app/views/layouts/admin',

        // Класс модели пользователя (если не указан — выводится ID)
        'userClass' => \common\models\User::class,

        // Строка-атрибут, массив строк-атрибутов или callable(User $model): string
        // 'userLabel' => 'username',
        // 'userLabel' => fn(User $u) => $u->name,

        // URL профиля пользователя, строка, массив или callable(User $model): string|array
        // 'userUrl' => fn(User $u) => ['/user/view', 'id' => $u->id],
        // 'userUrl' => '/user/view',
        // 'userUrl' => ['/user/view', '#' => 'profile'],

        // Ограничение доступа по IP
        // 'allowedIPs' => ['127.0.0.1'],

        // Ограничение доступа по ролям (RBAC)
        // 'roles' => ['admin'],
    ],
],

Отображение пользователя

Модуль не требует наличия FK или relation к таблице пользователей.

Алгоритм:

  1. Если userClass задан — загружается модель пользователя
  2. Формируется label:
    • через userLabel (callable или имя атрибута)
    • либо fallback на ID
  3. Если задан userUrl — отображается кнопка со ссылкой на профиль

Если пользователь не найден или не сконфигурирован — отображается user_id.

Архитектура

  • UI вынесен в отдельный пакет
  • Не содержит бизнес-логики логирования
  • Использует модели из illusiard/yii2-auditlog
  • Не навязывает структуру User-модели

Лицензия

MIT