快速搭建php rbac后台
来源:互联网 发布:世界语言翻译软件 编辑:程序博客网 时间:2024/06/13 10:19
使用yii2的advance版本进行快速建站(rbac控制)
安装yii2 和 一些yii2的插件
建议使用composer方式进行操作
下载yii
composer create-project --prefer-dist yiisoft/yii2-app-advanced honglvshi.cncd honglvshi.cn php init/*会出现两个选项 让你选择是生产环境 还是 开发环境 */
配置nginx
/*前台nginx配置*/server{ listen 80; server_name ******; root /data/www/develop/******/frontend/web; index index.php index.html; access_log /data/log/nginx/develop/******.access.log; error_log /data/log/nginx/develop/******.error.log; include php-fpm.conf;}/*后台nginx配置*/server{ listen 80; server_name ******; root /data/www/develop/******/backend/web; index index.php index.html; access_log /data/log/nginx/develop/******.access.log; error_log /data/log/nginx/******.error.log; include php-fpm.conf;}
复制的时候注意删除注释 路径需要自己根据自己服务器进行配置
安装yii2 拓展
/*后台adminlte 响应式模版*/composer require dmstr/yii2-adminlte-asset "2.*"/*yii2-admin 官方可视化rbac管理组件*/composer require mdmsoft/yii2-admin "2.x-dev"
修改yii2项目
/* 将adminlte的layout布局替换yii2原始的layout布局*/cp -r yii2-app/* /data/www/develop/honglvshi.cn/backend/views//* 修改yii2 backend 的配置项*//*增加以下两个组件*/'components' => [ /*rbac 角色授权管理*/ "authManager" => [ "class" => 'yii\rbac\DbManager', "defaultRoles" => ["guest"], ], /* url美化 */ "urlManager" => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=*****', 'username' => '***', 'password' => '****', 'charset' => 'utf8', ]],/*模块增加以下代码 以后每增加一个模块 都需要再以下配置增加*/"modules" => [ "admin" => [ "class" => "mdm\admin\Module", ],],/**/"aliases" => [ "@mdm/admin" => "@vendor/mdmsoft/yii2-admin",],'as access' => [ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ //目前允许访问所有action 强烈建议填写 登录 注销 和异常页面 '*' ]],
创建rbac的数据库
/*sql语句存在/vendor/yiisoft/yii2/rbac/migrations/shcema-mysql.sql*/create table `auth_rule`( `name` varchar(64) not null, `data` blob, `created_at` integer, `updated_at` integer, primary key (`name`)) engine InnoDB;create table `auth_item`( `name` varchar(64) not null, `type` smallint not null, `description` text, `rule_name` varchar(64), `data` blob, `created_at` integer, `updated_at` integer, primary key (`name`), foreign key (`rule_name`) references `auth_rule` (`name`) on delete set null on update cascade, key `type` (`type`)) engine InnoDB;create table `auth_item_child`( `parent` varchar(64) not null, `child` varchar(64) not null, primary key (`parent`, `child`), foreign key (`parent`) references `auth_item` (`name`) on delete cascade on update cascade, foreign key (`child`) references `auth_item` (`name`) on delete cascade on update cascade) engine InnoDB;create table `auth_assignment`( `item_name` varchar(64) not null, `user_id` varchar(64) not null, `created_at` integer, primary key (`item_name`, `user_id`), foreign key (`item_name`) references `auth_item` (`name`) on delete cascade on update cascade) engine InnoDB;CREATE TABLE `menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL, `parent` int(11) DEFAULT NULL, `route` varchar(256) DEFAULT NULL, `order` int(11) DEFAULT NULL, `data` text, PRIMARY KEY (`id`), KEY `parent` (`parent`), CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `auth_key` varchar(32) NOT NULL, `password_hash` varchar(255) NOT NULL, `password_reset_token` varchar(255) DEFAULT NULL, `email` varchar(255) NOT NULL, `role` smallint(6) NOT NULL DEFAULT '10', `status` smallint(6) NOT NULL DEFAULT '10', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
进入http://admin.**/admin/route查看效果
大功造成了一半 嗯 继续往下
修改布局的左边菜单栏
<aside class="main-sidebar"> <section class="sidebar"> <div class="user-panel"> <div class="pull-left image"> <img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle" alt="User Image"/> </div> <div class="pull-left info"> <p>Alexander Pierce</p> <a href="#"><i class="fa fa-circle text-success"></i> Online</a> </div> </div> <form action="#" method="get" class="sidebar-form"> <div class="input-group"> <input type="text" name="q" class="form-control" placeholder="Search..."/> <span class="input-group-btn"> <button type='submit' name='search' id='search-btn' class="btn btn-flat"><i class="fa fa-search"></i> </button> </span> </div> </form> <?php use mdm\admin\components\MenuHelper; $callback = function($menu){ $data = json_decode($menu['data'], true); $items = $menu['children']; $return = ['label' => $menu['name'],'url' => [$menu['route']]]; //处理我们的配置 if ($data) { isset($data['visible']) && $return['visible'] = $data['visible'];//visible isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon'];//icon //other attribute e.g. class... $return['options'] = $data; } //没配置图标的显示默认图标 (!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o'; $items && $return['items'] = $items; return $return; }; //这里我们对一开始写的菜单menu进行了优化 echo dmstr\widgets\Menu::widget( [ 'options' => ['class' => 'sidebar-menu'], 'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id,null, $callback), ] ); ?> </section></aside>
创建一个用户
在frontend的config/main.php 同样配置数据库'components' => [ /*rbac 角色授权管理*/ /* url美化 */ "urlManager" => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=*****', 'username' => '***', 'password' => '****', 'charset' => 'utf8', ]],/*前台/site/signup 注册一个帐号 就可以再后台登录了*/
/admin/route rbac的路由/admin/permission rbac的权限/admin/role rbac的角色/admin/assigment rbac的分配权限/admin/menu rbac的菜单先配置超级管理员的权限进入****/admin/role/index选中超级管理员分配route给 /*然后进入****/admin/assigment/index分配超级管理员给我们刚创建的用户
1.先创建路由
2.在对路由创建权限(强烈建议对路由进行一对一分配权限)
3.在对权限一对多创建权限
4.在对角色分配权限
5.然后创建菜单
接下里可以根据用户和自己的模块进行rbac的分配了 如果不知道rbac是什么 最好百度或者google了解下rbac的系统
项目的前台在frontend进行编写代码
项目的后台在backend进行编写代码
再根据自己的其他需求自行选择compose框架
yii2 的advanced版本已经涵盖很多功能 基本你想要的yii2 advanced版本都涵盖了
阅读全文
0 0
- 快速搭建php rbac后台
- PHP后台RBAC图解
- bmob 快速搭建后台
- yii2搭建完美后台并实现rbac权限控制实例教程
- Yii2搭建后台并实现rbac权限控制完整实例教程
- 搭建 rbac 后台系列教程(五)—— rbac 效果预览
- RBAC php
- rbac(php)
- 搭建 rbac 后台系列教程(二)—— 安装 AdminLTE 渲染后台和 yii2-admin 集成 rbac
- laravel rbac 后台实例
- php 服务器快速搭建
- 快速搭建php环境
- 快速搭建php环境
- yii2搭建完美后台并实现rbac权限控制案例教程
- yii2搭建完美后台并实现rbac权限控制案例(1)
- yii2搭建完美后台并实现rbac权限控制案例 - 之菜单menu详细教程
- yii2搭建完美后台并实现rbac权限控制案例 - 之权限控制详细操作步骤
- 搭建 rbac 后台系列教程(一)—— 安装 yii2 和 composer
- x264官方学习文档(2)——英文资料,极具参考价值
- 技术相关博客收藏
- 选择排序和冒泡排序
- 【Android实测】分析apk过程记录(一)
- POJ2299 树状数组求逆序对
- 快速搭建php rbac后台
- 欢迎使用CSDN-markdown编辑器
- x264官方学习文档(3)——英文资料,极具参考价值
- UIWebView 的坑点
- string subtraction
- 感兴趣的博客地址临时记录
- Session简单介绍
- 再见Win7----记录Win7系统的安装
- 文章标题