美文网首页
Yii2 框架RBAC 管理Smart版

Yii2 框架RBAC 管理Smart版

作者: softfc | 来源:发表于2018-09-05 12:36 被阅读122次

    Smart Rbac Manager for Yii2

    项目地址:https://github.com/rockyfc/yii2-smart-rbac
    本应用建立在Yii2的数据结构基础之上,使用之前请先安装yii2框架的rbac推荐的数据表。

    网上提供的rbac功能界面理解起来有一定的难度,所以在项目中开发中重写了一套
    RBAC。并把它分享出来。

    其中包括四个模块:

    • Action管理
    • 角色管理
    • 菜单管理
    • 用户授权管理

    在开发过程中,为了使用户能方便快速的的进行二次开发,基本代码层次和架构均同yii2框架的Module
    书写方法,代码主体代码用gii生成。并且未对view层做过多修饰,必要时可自行调整。

    安装方法

    推荐使用 composer 安装

    或者运行以下命令

    php composer.phar require --prefer-dist rockyfc/yii2-smart-rbac "*"
    

    或者将以下代码写进你的composer.json 文件中执行

    "rockyfc/yii2-smart-rbac": "*"
    

    使用方法

    将以下代码添加到你的配置文件中

    
    //权限管理组件
    'components' => [
        
        ...其他组件
        
        "authManager" => [
            // yii\rbac\DbManager的增强版
            "class" => 'smart\rbac\components\DbManager', 
            "defaultRoles" => ["guest"],
            
            //菜单表名称
            "menuTable" => 'menu',
        
            //可以绑定角色的用户表名称
            "userTable" => 'user', 
        ],
        
        ...其他组件
        
    ]
    
    "modules" => [
        'rbac' => [
            'class' => 'smart\rbac\Module',
            
            //有些Module你并不想添加权限判断,则把它过滤掉
            'skipOn' => ['debug','gii'], 
        ],
    ]
    

    请将菜单表导入数据库(表名称可自定义)

    CREATE TABLE `menu` (
      `menu_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
      `parent_id` int(11) DEFAULT NULL COMMENT '上级菜单',
      `menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
      `url` varchar(300) NOT NULL DEFAULT '' COMMENT '链接地址',
      `icon` varchar(100) DEFAULT NULL COMMENT '菜单icon图',
      `create_at` int(11) DEFAULT NULL COMMENT '创建时间',
      `update_at` int(11) NOT NULL COMMENT '更新时间',
      `action_id` varchar(100) DEFAULT NULL COMMENT '当前菜单关联的actionId',
      `order_by` int(11) NOT NULL DEFAULT '0' COMMENT '排序值,越大越靠前',
      `status` int(1) NOT NULL DEFAULT '2' COMMENT '是否可用1:不可用 2:可用',
      PRIMARY KEY (`menu_id`) 
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='菜单管理表';
    

    我们将 @vendor\yiisoft\yii2\rbac\migrations\schema-mysql.sql 文件导入数据库,或者通过可视化管理工具、手动等方式创建改文件中的数据表。

    访问方法

    @title标签的使用

    当你访问action列表的时候,如果"描述"列直接显示Action不够直观的话,可以在编写controller的时候给class和function的注释加上@title标签,重新"刷新"action列表就可以看到中文了。

    /**
     *
     * @title 这里填写Controller标题
     */
    class UserController extends Controller{
    
        /**
         * @title 这是action标题
         */
        public function actionIndex()
        {
           ...
        }
    }
    

    你也可以给Module class添加@title,方法同上。

    相关文章

      网友评论

          本文标题:Yii2 框架RBAC 管理Smart版

          本文链接:https://www.haomeiwen.com/subject/rlkawftx.html