andrewdanilov / yii2-admin-panel
Simple Admin Panel
Installs: 1 607
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4.0
- andrewdanilov/yii2-grid-tools: ~1.0.0
- yiisoft/yii2: ~2.0.0
- yiisoft/yii2-bootstrap5: ~2.0.2
README
Simple Admin Panel template and user accounts manager
Installation
The preferred way to install this extension is through composer.
Either run
composer require andrewdanilov/yii2-admin-panel "~2.0.0"
or add
"andrewdanilov/yii2-admin-panel": "~2.0.0"
to the require
section of your composer.json
file.
Then run db migrations, to modify needed tables:
php yii migrate --migrationPath=@andrewdanilov/adminpanel/migrations
Do not forget to run migrations after extension updates too.
Usage
Copy src/views
directory to your backend views location, then modify these templates to your needs.
You do not need to copy the src/views/user
directory if you want to use the default @andrewdanilov/adminpanel/views/user
.
In backend main config place (or replace) user
section inside components
:
$config = [ // ... 'components' => [ // ... 'user' => [ 'class' => 'yii\web\User', 'identityClass' => 'andrewdanilov\adminpanel\models\User', 'accessChecker' => 'andrewdanilov\adminpanel\AccessChecker', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true], 'loginUrl' => ['user/login'], ], ], ];
Instead of default you can use your own access checker or user identity class, therefore replace correspondent accessChecker or identityClass properties of user component within backend main config. Then copy src/AccessChecker.php if you are replacing access checker and src/models/User.php if you are replacing identity class, and place them to your own location. Modify it, as you need. Do not forget to replace namespace definition of duplicated classes.
To use default extension's controllers add 'controllerMap' section to your backend main config:
$config = [ // ... 'controllerMap' => [ 'user' => [ 'class' => 'andrewdanilov\adminpanel\controllers\UserController', 'viewPath' => '@backend/someotherlocation/views/user', // optional, custom UserController views location 'loginFormClass' => 'backend\models\LoginForm', // optional, default is 'andrewdanilov\adminpanel\models\LoginForm' ], ], ];
If you use custom views location (and it is not default '@backend/views' or other location defined in backend main config) with default extension's UserController
, you need to set viewPath
property in controllerMap
section.
If viewPath
is defined but does not exist, the default @andrewdanilov/adminpanel/views/user
will be used.
Default UserController
already have CRUD methods for managing user accounts. Use this link to get access to them:
use yii\helpers\Url; $userManagerUrl = Url::to(['/user']);
To make access control on all your admin pages working properly, you need to extend all your backend controllers from andrewdanilov\adminpanel\controllers\BackendController
use andrewdanilov\adminpanel\controllers\BackendController; class AnyController extends BackendController { // ... }
To make work it properly you must remove methods behaviors
and actions
from AnyController
or extends that methods from parent class, just like so:
use andrewdanilov\adminpanel\controllers\BackendController; class AnyController extends BackendController { // ... public function actions() { $actions = parent::actions(); $actions['error']['layout'] = 'error'; return $actions; } // ... }
Additionaly you can use FontawesomeActionColumn class in your GridViews instead of default ActionColumn, to replace default Bootstrap action icons with corresponding Fontawesome icons:
/* @var $dataProvider \yii\data\ActiveDataProvider */ /* @var $searchModel \yii\db\ActiveRecord */ use yii\grid\GridView; ?> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ 'id', 'name', [ 'class' => 'andrewdanilov\gridtools\FontawesomeActionColumn', 'template' => '{update}{delete}', ], ], ]); ?>
Access
Default user/password to enter admin area is admin/admin. You can change them throught the users section of admin-panel main menu