zoukankan      html  css  js  c++  java
  • PHP.45-TP框架商城应用实例-后台20-权限管理-RBAC表构造与代码生成

    权限管理  

      三张主表{p39_privilege(权限)、p39_role(角色)、p39_admin(管理)}

      两张中间表{p39_role_pri(角色-权限)、p39_admin_role(管理-角色)}

    注:权限表与角色表为多对多关系,管理与角色表为多对多关系

    1、建表语句  

    /********* 权限表 *********/
    drop if exists p39_privilege;
    create table p39_privilege
    (
        id mediumint unsigned not null auto_increment comment 'Id',
        pri_name varchar(30) not null comment '权限名称',
        module_name varchar(30) not null default '' comment '模块名称',
        controller_name varchar(30) not null default '' comment '控制器名称',
        action_name varchar(30) not null default '' comment '方法名称',
        parent_id mediumint unsigned not null default '0' comment '上级权限Id',
        primary key (id)
    )engine=InnoDB default charset=utf8 comment '权限';
        /********* 角色-权限表 *********/
    drop if exists p39_role_pri;
    create table p39_role_pri
    (
        pri_id mediumint unsigned not null comment '权限Id',
        role_id mediumint unsigned not null comment '角色Id',
        key pri_id (pri_id),
        key role_id(role_id)
    )engine=InnoDB default charset=utf8 comment '角色权限';
    /********* 角色表 *********/
    drop if exists p39_role;
    create table p39_role
    (
        id mediumint unsigned not null auto_increment comment 'Id',
        role_name varchar(30) not null comment '角色名称',
        primary key (id)
    )engine=InnoDB default charset=utf8 comment '角色';
        /********* 管理-角色表 *********/
    drop if exists p39_admin_role;
    create table p39_admin_role
    (
        admin_id mediumint unsigned not null comment '管理Id',
        role_id mediumint unsigned not null comment '角色Id',
        key admin_id (admin_id),
        key role_id(role_id)
    )engine=InnoDB default charset=utf8 comment '管理角色';
    /********* 管理表 *********/
    drop if exists p39_admin;
    create table p39_admin
    (
        id mediumint unsigned not null auto_increment comment 'Id',
        username varchar(30) not null comment '用户名',
        password char(32) not null comment '密码',
        primary key (id)
    )engine=InnoDB default charset=utf8 comment '管理员';
    INSERT INTO p39_admin(id,username,password) VALUES(1, 'root', '21232f297a57a5a743894a0e4a801fc3');

      注:管理员表中插入一个超级管理员账号,没有角色,拥有所有权限

    2、使用GII代码生成器生成三个主表的代码

      p39_privilege修改配置,去掉搜索功能代码

        

      

      p39_role配置,不要搜索

       p39_admin配置, 只留用户名搜索

     

    3、添加管理员是,密码加密

    4、超级管理员不能删除,且页面不显示删除按钮

    5、修改管理员时,密码留空则不修改密码【即修改用户名功能】

        修改表单验证规则,修改时可以为空,添加时不能为空,直接删除密码长度验证

    修改前判断是否修改密码

     

     

  • 相关阅读:
    条件转移指令小结
    《那些年啊,那些事——一个程序员的奋斗史》——50
    《那些年啊,那些事——一个程序员的奋斗史》——50
    《那些年啊,那些事——一个程序员的奋斗史》——51
    《那些年啊,那些事——一个程序员的奋斗史》——51
    《那些年啊,那些事——一个程序员的奋斗史》——52
    《那些年啊,那些事——一个程序员的奋斗史》——49
    《那些年啊,那些事——一个程序员的奋斗史》——51
    《那些年啊,那些事——一个程序员的奋斗史》——52
    《那些年啊,那些事——一个程序员的奋斗史》——50
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/7122544.html
Copyright © 2011-2022 走看看