rbac

/*----------------------------------5张表------------------------------------------------*/

admin(管理员表):
        admin_id (管理员表自增id)
        admin_name (varchar 45)
        password (char 32)

    admin_status(tinyint ) 是否启用
        last_time (int)
       last_ip (varchar 15)
admin_rode 关系表(管理员-角色):
      admin_id (管理员表自增id)
      rode_id (角色表自增id)
rode (角色表):
      rode_id (角色表自增id)
      role_name(varchar 45)
      rode_desc(varchar 255)

          rode_status(tinyint ) 是否启用
rode_node(角色-权限):
      rode_id (角色表自增id)
      node_id(节点表自增id)
node(节点):
      node_id(节点自增id)
      node_title(varchar 45)中文名字(例如:分类添加)
      controller(varchar 60)控制器
      action(varchar 60)方法
      pavent_int(int)父级id

/*----------------------------------php代码------------------------------------------------*/

admin(管理员表):
      admin_id (管理员表自增id)
      admin_name (varchar 45)
      password (char 32)
      last_time (int)
     last_ip (varchar 15)
admin_rode 关系表(管理员-角色):
    admin_id (管理员表自增id)
    rode_id (角色表自增id)
rode (角色表):
    rode_id (角色表自增id)
    role_name(varchar 45)
    rode_desc(varchar 255)
rode_node(角色-权限):
    rode_id (角色表自增id)
    node_id(节点表自增id)
node(节点):
    node_id(节点自增id)
    node_title(varchar 45)中文名字(例如:分类添加)
    controller(varchar 60)控制器
    action(varchar 60)方法
    pavent_int(int)父级id

1:先写node(权限表)的form表单
    权限分类中文名称(node_title):
    控制器(controller):
    方法(action):
    父级id(parent_id):
  结果:把接到的数据添加到node(权限表里)
2:rode(角色表)的form表单
    角色名称(rode_name):
    角色权限()多选框:例如:□分类添加   □分类展示  □导航添加
    注意:这些数据都是从node(权限表)中查出来的权限分类中文名称(node_title)
    角色描述(rode_desc):
    是否启用(rode_status):
  结果:接到这些值以后,先添加角色名称(rode_name),角色描述(rode_desc),
            是否启用(rode_status)到rode(角色表),添加成功返回来的rode_id(角色的自增id)
            和node_id(权限表的自增id)循环添加到rode_node(角色-权限)表
3: 在写admin(管理员)的form表单
    管理员姓名(admin_name):
     密码(admin_pwd):
    确认密码(res_pwd):
    职位()多选框,例如:□经理  □主任
    注意:这些数据都是从rode(角色表)中查出来的角色名称(rode_name)
 结果:接到这些值以后,先添加管理员姓名(admin_name), 密码(admin_pwd),
          确认密码(res_pwd)到admin(管理员)中,添加成功返回自增id(admin_id),在和
         rode_id(角色表的自增id)循环添加入库

  
/*-----------------------------列表展示和修改-------------------------------------------------*/  

注意:只有当拥有最高权限(admin)的用户才可以看见和操作列表展示
1:管理员表(admin)的展示
    1》 添加管理员按钮
    2》 展示管理员列表
               管理员名称        管理员角色        操作
       例如:admin                       董事长,总经理        修改/删除
    刘瑞        ceo,副经理            修改/删除
    3》当点击修改后展现出如下:
    例如form表单:
                 管理员名称:刘瑞
    选择角色:□董事长  □经理   □副经理   
    旧密码:
    新密码:
    确认密码:
       注:只用旧密码输入成功后才可以进行修改
2:角色的权限(rode)列表
    1》添加角色
    2》展示角色列表
    例如: 角色名称        是否启用         权限                      操作
    董事长        是         分类添加,分类展示,导航添加     编辑/删除
    经理        是             分类展示,导航添加            编辑/删除
    3》点击修改之后form表单
    角色名称:经理
    是否启用:是
    权限:□分类添加   □分类展示  □导航添加
     角色描述:
3:节点表(node)
    1》添加节点
    2》节点展示
        节点中文名称        控制器             方法        操作
        分类管理       admin             add        编辑/删除
     3》点击编辑按钮form表带
          权限名称:  分类管理
      控制器   :  admin          
      方法    :   add

/*-------------------------------------查找权限很重要的sql语句--------------------------------------------------------*/

select * from rode_node left join node on rode_node.node_id=node.node_id where rode_id in (select rode_id from admin_rode where admin_id=1)

 

posted @ 2017-02-07 14:50  太空刘  阅读(285)  评论(0编辑  收藏  举报