jinxing / yii2-admin
RBAC Auth manager for Yii2
Installs: 982
Dependents: 1
Suggesters: 0
Security: 0
Stars: 34
Watchers: 4
Forks: 11
Open Issues: 0
Type:yii2-extension
Requires
- ext-json: *
- bower-asset/jinxing-admin: ~1.0.0
- bower-asset/jinxing-tables: ~1.0.0
- phpoffice/phpexcel: *
- yiisoft/yii2: >=2.0.13
- yurkinx/yii2-image: ^1.1
README
作者博客
简介
使用的 ace admin 前端框架, 为yii2
开发的一个后台模块;
对于二次开发比较方便,包含了基本的后台功能
功能特性
-
包含基本的后台功能
- 管理员管理: 登录、登出、修改密码等
- 菜单管理: 可视化动态菜单、根据权限显示菜单
- 权限管理: 角色、权限、用户的管理
-
使用
yii2
自带的RBAC
权限管理 -
对于二次开发比较方便
- 定义基本控制器(封装了基本的
CURD
操作), 后续开发基于基础控制器继承修改 - 拥有代码生成功能(类似于
gii
), 可视化生成代码模板, 简单操作即可生成 控制器controller
、模型model
, 视图views
文件,提高开发效率
- 定义基本控制器(封装了基本的
安装
安装要求
- PHP >= 5.4
- MySQL
全新项目安装
全新项目安装可以直接使用liujx/yii2-app-advanced
在已有项目中安装
使用 composer
下载包文件
composer require jinxing/yii2-admin
配置模块信息
在你的 main.php
配置文件中添加下面配置
return [ 'modules' => [ 'admin' => [ 'class' => 'jinxing\admin\Module', // 使用的登录用户组件 'user' => 'admin', // 配置退出登录地址 'logoutUrl' => 'default/logout', // 默认就是default/logout // 验证码验证地址 'captchaAction' => 'default/captcha', // 默认值为null 使用的就是default/captcha ] ], 'components' => [ // 后台登录用户组件信息 'admin' => [ 'class' => 'yii\web\User', 'identityClass' => 'jinxing\admin\models\Admin', 'enableAutoLogin' => true, 'loginUrl' => ['/admin/admin/default/login'], 'idParam' => '_adminId', 'identityCookie' => ['name' => '_admin', 'httpOnly' => true], ], // 后台使用的语言配置信息 'i18n' => [ 'translations' => [ 'admin' => [ 'class' => 'yii\i18n\PhpMessageSource', 'sourceLanguage' => 'en', 'basePath' => '@jinxing/admin/messages' ], ], ], // 配置权限使用数据库 'authManager' => [ 'class' => 'yii\rbac\DbManager', ], ] ];
在你的 params.php
配置文件添加如下配置信息
return [ // 这个配置是为了导入权限信息需要配置的,就是配置后台模块的路径 'admin_rule_prefix' => 'admin', // 登录成功首页是否需要显示其他信息 'projectOpenOther' => true, // 项目信息 'projectName' => 'Yii2 后台管理系统', 'projectTitle' => 'Yii2 后台管理系统', 'companyName' => '<span class="blue bolder"> Liujinxing </span> Yii2 Admin 项目 © 2016-2018', ];
高级版本配置参考
基础版本配置参考
使用数据库迁移、导入后台所需的数据库信息、需要顺序执行下面命令
需要配置 console
在 console
配置中的 components
组件中加入权限配置信息
return [ 'components' => [ // 权限配置 'authManager' => [ 'class' => 'yii\rbac\DbManager', ], ], ];
- 高级版本的配置文件在
console/config/main.php
中 - 基础版本的配置文件在
config/console.php
中
导入权限表信息
php yii migrate --migrationPath=@yii/rbac/migrations
导入后台表信息和默认权限、菜单信息
php yii migrate --migrationPath=@jinxing/admin/migrations
你可以愉快的使用了
访问地址
// 登录地址、域名需要根据你的域名修改
http://localhost/path/to?index.php?r=admin/default/login
默认的账号和密码
-
超级管理员
- username: super
- password: admin123
-
普通管理员
- username: admin
- password: admin888
在自己模块中使用
Yii2
高级版本中使用
定义一个基础控制,其他控制器都继承基础控制器
- 控制器继承
jinxing\admin\controllers\Controller
- 定义控制器使用的布局文件为
@jinxing/admin/views/layouts/main
- 定义上传文件表单类使用自己的 ,例如:
backend\models\forms\UploadForm
- 定义控制器使用的布局文件为
- 如果要记录操作日志和权限验证,定义行为
-
记录日志行为类:
jinxing\admin\behaviors\Logging
默认只会记录: create, update, delete, delete-all, editable, upload 操作的日志, 需要添加或者修改,定义
needLogActions
属性 -
权限验证行为类:
yii\filters\AccessControl
类的属性和配置参考
-
例子:
namespace backend\controllers; use jinxing\admin\behaviors\Logging; use jinxing\admin\controllers\Controller as BaseController; use yii\filters\AccessControl; /** * Class Controller 后台的基础控制器 * @package backend\controllers */ class Controller extends BaseController { /** * @var string 使用 yii2-admin 的布局 */ public $layout = '@jinxing/admin/views/layouts/main'; /** * @var string 使用自己定义的上传文件处理表单 */ public $uploadFromClass = 'backend\models\forms\UploadForm'; /** * 定义使用的行为 * * @return array */ public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'allow' => true, 'permissions' => [$this->action->getUniqueId()], ], ], ], 'logging' => [ 'class' => Logging::className(), ], ]; } }
Yii2
基础版本中使用
yii2
基础版本需要为后台定义一个模块,这个模块可以直接继承jinxing\admin\Module
例子:
namespace app\modules\admin; use Yii; use jinxing\admin\Module; /** * admin module definition class */ class Admin extends Module { /** * {@inheritdoc} */ public $controllerNamespace = 'app\modules\admin\controllers'; /** * {@inheritdoc} */ public function init() { parent::init(); Yii::$app->errorHandler->errorAction = $this->getUniqueId() . '/admin/default/error'; } }
如果不使用模块继承方式,配置参考高级版本