php 获取权限列表函数

//获取权限列表
   public  function getPriveList($id){
   	 $sql="SELECT m.id, m.name
              FROM jh_user AS u, jh_role AS r, jh_role_user AS ru, jh_prive AS p, jh_menu AS m
              WHERE u.id = ru.user_id
              AND ru.role_id = r.id
              AND r.id = p.role_id
              AND m.id = p.menu_id
              AND m.status =1
              AND m.level =1
              AND u.id ={$id}";  
   	$rs=$this->query($sql);
   	//$row=$this->fetch_assoc($rs);
   	$m1=array();
   	while ($row=$this->fetch_assoc($rs)){
   		$m1[]=$row;
   	}
   	$prive=array();
   	foreach ($m1 as $key=>$v){
   		$priveId=$v['id'];
   		$priveName=$v['name'];
   	    $prive[strtoupper($priveName)]=array();
   	    $sql2="SELECT m.id, m.name
              FROM jh_user AS u, jh_role AS r, jh_role_user AS ru, jh_prive AS p, jh_menu AS m
              WHERE u.id = ru.user_id
              AND ru.role_id = r.id
              AND r.id = p.role_id
              AND m.id = p.menu_id
              AND m.status =1
              AND m.level =2
              AND m.pid ={$priveId}
              AND u.id ={$id}";  
   	    $rs2=$this->query($sql2);
   	    $m2=array();
   	    while ($row2=$this->fetch_assoc($rs2)){
   	    	$m2[]=$row2;
   	    }
   	    //判断公共模块
   	    $Public=array();
   	    foreach ($m2 as $key =>$m){
   	    	$pId=$m['id'];
   	    	$pName=$m['name'];
   	    	if('PUBLIC'==strtoupper($m['name'])){
   	    		$sql3="SELECT m.id, m.name
              FROM jh_user AS u, jh_role AS r, jh_role_user AS ru, jh_prive AS p, jh_menu AS m
              WHERE u.id = ru.user_id
              AND ru.role_id = r.id
              AND r.id = p.role_id
              AND m.id = p.menu_id
              AND m.status =1
              AND m.level =3
              AND m.pid ={$pId}
              AND u.id ={$id}";
   	    		$rs3=$this->query($sql3);
   	    		$m3=array();
   	    		while ($row3=$this->fetch_assoc($rs3)){
   	    			$m3[]=$row3;
   	    		}
   	    		foreach ($m3 as $val){
   	    			$Public[$val['name']]=$val['id'];
   	    		}
   	    		//print_r( $m2[$key]);
   	    		unset($m2[$key]);
   	    		break;
   	    	}
   	    }
   		  	// print_r($Public);
  
   	  foreach ($m2 as $key =>$m){
   	  	$pId=$m['id'];
   	    $pName=$m['name'];
   	    $sql4="SELECT m.id, m.name
              FROM jh_user AS u, jh_role AS r, jh_role_user AS ru, jh_prive AS p, jh_menu AS m
              WHERE u.id = ru.user_id
              AND ru.role_id = r.id
              AND r.id = p.role_id
              AND m.id = p.menu_id
              AND m.status =1
              AND m.level =3
              AND m.pid ={$pId}
              AND u.id ={$id}";
   	      $rs4=$this->query($sql4);
   	      $m4=array();
   	      while ($row4=$this->fetch_assoc($rs4)){
   	      	$m4[]=$row4;
   	      }
   	      $action=array();
   	      foreach ($m4 as $va){
   	      	$action[$va['name']]=$va['id'];
   	      }
   	     $action+=$Public;
   	     $prive[strtoupper($priveName)][strtoupper($pName)] =array_change_key_case($action,CASE_UPPER);
   	  }
   	 	}
   	print_r($prive);
   }
	


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaojie2009

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值