亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

管理員權(quán)限的操作方法

オリジナル 2019-01-04 15:13:35 368
サマリー:總結(jié):在Base.php控制器里實現(xiàn)管理員權(quán)限控制,判斷用戶是否有權(quán)限,還有課訪問的菜單,如果沒有權(quán)限,會提示無法訪問,如果有權(quán)限可以進行操作,通過查詢這個賬號的gid對應(yīng)的權(quán)限表的gid進行查詢。/************************  Base.php  *******************************/<?phpnamespace app\

總結(jié):在Base.php控制器里實現(xiàn)管理員權(quán)限控制,判斷用戶是否有權(quán)限,還有課訪問的菜單,如果沒有權(quán)限,會提示無法訪問,如果有權(quán)限可以進行操作,通過查詢這個賬號的gid對應(yīng)的權(quán)限表的gid進行查詢。

/************************  Base.php  *******************************/

<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;

class Base extends Controller{
  public function __construct(){
     parent::__construct();
     $this->_admin = session('admin');
     if(!$this->_admin){
        header('Location:/index.php/admins/account/login');
        exit;
     }
     $this->assign('admin',$this->_admin);
     $this->db = new SysDb;
     // 判斷用戶是否有權(quán)限
     $group = $this->db->table('admin_groups')->where(array('gid'=>$this->_admin['gid']))->item();
     if(!$group){
        $this->request_error('對不起,您沒有權(quán)限');
     }
     $rights = json_decode($group['rights']);
     // 當前訪問的菜單
     $controller = request()->controller();
     $method = request()->action();
     $res = $this->db->table('admin_menus')->where(array('controller'=>$controller,'method'=>$method))->item();
     if(!$res){
        $this->request_error('對不起,您訪問的功能不存在');
     }
     if($res['status'] == 1){
        $this->request_error('對不起,該功能已禁止使用');
     }
     if(!in_array($res['mid'],$rights)){
        $this->request_error('對不起,您沒有權(quán)限');
     }

  }

  private function request_error($msg){
     if(request()->isAjax()){
        exit(json_encode(array('code'=>1,'msg'=>$msg)));
     }
     exit($msg);
  }

}


/****************************   Home.php ***************************/

<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;

class Home extends Base{

   public function index(){
      $role = $this->db->table('admin_groups')->where(array('gid'=>$this->_admin['gid']))->item();
      if($role){
         $role['rights'] = $role['rights']?json_decode($role['rights'],true):[];
      }
      if($role['rights']){
         $where = 'mid in('.implode(',', $role['rights']).') and ishidden=0 and status=0';
         $menus = $this->db->table('admin_menus')->where($where)->cates('mid');
         $menus && $menus = $this->gettreeitems($menus);
      }

      $data['menus'] = $menus;
      $data['role'] = $role;
      return $this->fetch('',$data);
  }

  public function welcome(){
     return $this->fetch();
  }

  private function gettreeitems($items){
     $tree = [];
     foreach ($items as $item) {
        if(isset($items[$item['pid']])){
           $items[$item['pid']]['children'][] = &$items[$item['mid']];
        }else{
           $tree[] = &$items[$item['mid']];
        }
     }
     return $tree;
  }
}

添削の先生:查無此人添削時間:2019-01-04 15:23:00
先生のまとめ:做的不錯,思考的方向是對的。按照你的方向,可以把每個列表的按鈕,也做個權(quán)限。這個有點難度。 繼續(xù)加油。

手記を発表する

人気のある見出し語