首页 > 后端开发 > php教程 > php 获取权限列表函数_PHP教程

php 获取权限列表函数_PHP教程

WBOY
发布: 2016-07-13 17:49:00
原创
830 人浏览过

//获取权限列表 
   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; 
        } 
        //判断公共模块  www.2cto.com
        $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); 
   } 
     

 

摘自 chaojie2009的专栏

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478387.htmlTechArticle//获取权限列表 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.us...
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板