Exemple #1
0
 /**
  * 检查菜单权限
  * @param integer $menu_id
  * @param string $operation
  * @param boolean $return
  * @return boolean
  * @throws Base_Exception
  */
 public function checkMenuPermission($operation, $return = false)
 {
     $oMenu = new Widget_Menu();
     $oMenuPurview = new Widget_Menu_Permission();
     $t = explode("&", $_SERVER['QUERY_STRING']);
     foreach ($t as $key => $value) {
         $t2 = explode("=", $value);
         if (trim($t2[0]) == "ctl") {
             $ctl = $value;
             break;
         }
     }
     $link = $ctl;
     //获取页面ID
     $MenuInfo = $oMenu->getOneBylink("?" . $link, "name,menu_id,parent,permission_list");
     //获取当前用户组在当前页面的所有权限
     $purview = $oMenuPurview->getPermission($MenuInfo['menu_id'], $this->menu_group_id);
     //如果只是进入页面,不执行操作
     if ($operation == "0") {
         //当前页面有任何权限
         if (count($purview) > 0) {
             $return = array('return' => 1);
         } else {
             $return = array('return' => 0, 'message' => "对不起,您没有进入 " . $MenuInfo['name'] . " 的权限!");
         }
     } else {
         if (strpos($MenuInfo['permission_list'], $operation)) {
             foreach ($purview as $key => $value) {
                 if ($value['permission'] == $operation) {
                     $return = array('return' => 1);
                     return $return;
                 }
             }
             $t = explode("|", $MenuInfo['permission_list']);
             foreach ($t as $k => $v) {
                 $t2 = explode(":", $v);
                 if ($t2[1] == $operation) {
                     $action = $t2[0];
                     break;
                 }
             }
             $return = array('return' => 0, 'message' => "对不起,您没有执行 " . $action . " 的权限!");
         } else {
             $return = array('return' => 0, 'message' => "无此权限!");
         }
     }
     return $return;
 }