/** * 检查菜单权限 * @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; }