Word of caution: The module is configured by default to only allow viewing access to users with the role ‘admin’. This functionality is only available in Yii if you have enabled RBAC (via the
authManager-component). If not, please set this option to
null. If you do so you should consider activating either the
accessUsers- or the
accessIps-option, you don’t want to give everyone access to your audit data!
<?php $config = [ 'modules' => [ 'audit' => [ 'class' => 'bedezign\yii2\audit\Audit', // the layout that should be applied for views within this module 'layout' => 'main', // Name of the component to use for database access 'db' => 'db', // List of actions to track. '*' is allowed as the last character to use as wildcard 'trackActions' => ['*'], // Actions to ignore. '*' is allowed as the last character to use as wildcard (eg 'debug/*') 'ignoreActions' => ['audit/*', 'debug/*'], // Maximum age (in days) of the audit entries before they are truncated 'maxAge' => 'debug', // IP address or list of IP addresses with access to the viewer, null for everyone (if the IP matches) 'accessIps' => ['127.0.0.1', '192.168.*'], // Role or list of roles with access to the viewer, null for everyone (if the user matches) 'accessRoles' => ['admin'], // User ID or list of user IDs with access to the viewer, null for everyone (if the role matches) 'accessUsers' => [1, 2], // Compress extra data generated or just keep in text? For people who don't like binary data in the DB 'compressData' => true, // The callback to use to convert a user id into an identifier (username, email, ...). Can also be html. 'userIdentifierCallback' => ['app\models\User', 'userIdentifierCallback'], // If the value is a simple string, it is the identifier of an internal to activate (with default settings) // If the entry is a '<key>' => '<string>|<array>' it is a new panel. It can optionally override a core panel or add a new one. 'panels' => [ 'audit/request', 'audit/error', 'audit/trail', 'app/views' => [ 'class' => 'app\panels\ViewsPanel', // ... ], ], 'panelsMerge' => [ // ... merge data (see below) ] ], ], ];
<?php $config = [ 'modules' => [ 'audit' => [ 'class' => 'bedezign\yii2\audit\Audit', 'ignoreActions' => ['*'], ], ], ];
You have the choice between either using
$panels to specify a complete list of panels and their configuration, or using
$panelsMerge for a selective update.
$panels-variable accepts a number of different formats:
* A simple string (no key) to load a core panel. For example
* A string index with a string value. This adds a new panel with the give class:
"app/views" => "app\panels\ViewPanel" will result in a new panel of class
app\panels\ViewPanel being loaded
* A string index with an array value. If the index is the name of a core panel then the core class will be added, so no need for that. If it is a custom panel you’ll need to specify the entire configuration, including
The module also provides a
$panelsMerge configuration option.
This allows you to simply specify what you like to change, as compared to the current
The panels updated and/or added via this configuration are considered part of the default panel configuration and will be initialised during the logging phaze of the module.
A couple examples
Specify new panels without having to re-specify the entire (core) panels list:
<?php $config = [ 'modules' => [ 'audit' => [ 'class' => 'bedezign\yii2\audit\Audit', 'panelsMerge' => [ 'audit/config' => , ], ], ], ];
Disable the verbose log for the cURL panel:
<?php $config = [ 'modules' => [ 'audit' => [ 'class' => 'bedezign\yii2\audit\Audit', 'panelsMerge' => [ 'audit/curl' => ['log' => false], ], ], ], ];
Add a completely new panel:
<?php $config = [ 'modules' => [ 'audit' => [ 'class' => 'bedezign\yii2\audit\Audit', 'panelsMerge' => [ 'app/views' => [ 'class' => 'app\panels\ViewsPanel', ], ], ], ], ];