[PHP] 用户管理系统(RBAC) →→→→→进入此内容的聊天室

来自 , 2021-03-06, 写在 PHP, 查看 147 次.
URL http://www.code666.cn/view/fa84632d
  1. <?php
  2. class RbacAction extends CommonAction{
  3.  
  4.         public function addRole(){
  5.                 $this->display();
  6.         }
  7.  
  8.         //添加角色表单处理
  9.         public function addRoleHandle(){
  10.                 if(M('Role')->add($_POST)){
  11.                         $this->success('添加成功!',U('rbac/addrole'));
  12.                 }
  13.         }
  14.  
  15.         //角色管理(角色列表)
  16.         public function roleList(){
  17.                 $this->role=M('Role')->select();
  18.                 $this->display();
  19.         }
  20.  
  21.         // 添加权限(节点)
  22.         public function addNode(){
  23.                 $this->node=M('Node')->where('level!=3')->order('sort')->select();
  24.                 $this->display();
  25.         }
  26.  
  27.         // 添加节点表单处理
  28.         public function addNodeHandle(){
  29.                 $node=M('Node');
  30.                 $node->create();
  31.                 if($node->add()){
  32.                         $this->success('添加成功!',U('rbac/nodeList'));
  33.                 }
  34.         }
  35.  
  36.         // 权限管理(节点列表)
  37.         public function nodeList(){
  38.                 import('ORG.Util.Tree');
  39.                 $node=M('Node')->order('sort')->select();
  40.                 $this->node=Tree::create($node);
  41.                 $this->display();
  42.         }
  43.  
  44.         //删除权限(节点)
  45.         public function deletenode(){
  46.                 if(M('Node')->where('id='.I('id','',int))->delete()){
  47.                         $this->success('删除成功!',U('rbac/nodeList'));
  48.                 }
  49.         }
  50.  
  51.         public function addUser(){
  52.                 $this->role=M('Role')->select();
  53.                 $this->display();
  54.         }
  55.  
  56.         //添加用户处理
  57.         public function addUserHandle(){
  58.                 $data['username']=I('username');
  59.                 $data['password']=I('password','','md5');
  60.                 $data['logintime']=time();
  61.                 $data['loginip']=get_client_ip();
  62.                 $data['status']=1;
  63.                 $uid=M('User')->add($data);
  64.                 if($uid){
  65.                         //用户添加成功后添加用户角色表
  66.                         $role['role_id']=I('role_id','',int);
  67.                         $role['user_id']=$uid;
  68.                         $this->success('添加成功!',U('rbac/addUser'));
  69.                 }else{
  70.                         $this->error('添加失败!');
  71.                 }
  72.         }
  73.  
  74.         //用户列表
  75.         public function userList(){
  76.                 $this->user=D('User')->field('password',true)->relation(true)->select();
  77.                 $this->display();
  78.         }
  79.  
  80.         //配置权限
  81.         public function access(){
  82.                 import('ORG.Util.Tree');
  83.                 $rid=I('rid','',int);
  84.                 $node=M('Node')->order('sort')->select();
  85.                 $this->node=Tree::create($node);
  86.  
  87.                 $data=array();//$data用于存放最新数组,里面包含当前用户组是否有每一个权限
  88.                 $access=M('Access');
  89.                 foreach ($node as $value) {
  90.                         $count=$access->where('role_id='.$rid.' and node_id='.$value['id'])->count();
  91.                         if($count){
  92.                                 $value['access']=1;
  93.                         }else{
  94.                                 $value['access']=0;
  95.                         }
  96.                         $data[]=$value;
  97.                 }
  98.                 $this->nodelist=$data;
  99.                 $this->rid=$rid;
  100.                 $this->name=M('Role')->getFieldById($rid,'name');
  101.                 $this->display();
  102.         }
  103.  
  104.         //添加角色-权限表(节点表)
  105.         public function setAccess(){
  106.                 $rid=I('rid','',int);
  107.                 $access=M('Access');
  108.                 $access->where('role_id='.$rid)->delete();//清空当前角色的所有权限
  109.                
  110.                 if(isset($_POST['access'])){
  111.                         $data=array();
  112.                         foreach($_POST['access'] as $value){
  113.                                 $tmp=explode('_', $value);
  114.                                 $data[]=array(
  115.                                         'role_id'=> $rid,
  116.                                         'node_id'=> $tmp[0],
  117.                                         'level'  => $tmp[1],
  118.                                 );
  119.                         }
  120.                         if($access->addAll($data)){
  121.                                 $this->success('修改成功!',U('rbac/addRole'));
  122.                         }else{
  123.                                 $this->error('修改失败!',U('rbac/access'),60);
  124.                         }
  125.                 }else{
  126.                         $this->error('修改失败!');
  127.                 }
  128.         }
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143. }

回复 "用户管理系统(RBAC)"

这儿你可以回复上面这条便签

captcha