/** * 框架页 */ public function indexAction() { $oMenu = new Widget_Menu(); $oMenuPurview = new Widget_Menu_Permission(); $allowedMenuArr = $oMenuPurview->getTopPermissionByGroup($this->manager->menu_group_id, 0); $menuArr = $this->getChildMenu(0); include $this->tpl(); }
/** * * 修改更新菜单 * @author 陈晓东 * @param unknown_type $menu_id * @param array $bind */ public function update($menu_id, array $bind) { $this->db->begin(); //菜单修改 $ret = $this->db->update($this->table, $bind, '`menu_id` = ?', $menu_id); if (!$ret) { $this->db->rollBack(); return false; } if (!empty($bind['menu_id'])) { //子菜单修改 $ret = $this->db->update($this->table, array('parent' => $bind['menu_id']), '`parent` = ?', $menu_id); if (!$ret) { $this->db->rollBack(); return false; } //菜单权限修改 $Widget_Menu_Permission = new Widget_Menu_Permission(); $Widget_Menu_Permission->updateByMenuID($menu_id, array('menu_id' => $bind['menu_id'])); } $this->db->commit(); return true; }
/** * * 修改一个管理员组对应的菜单权限执行页面 */ public function updateByGroupAction() { /** * 记录日志 */ $log = "修改一个管理员组对应的菜单权限执行页面\n\nServerIp:\n" . $this->request->getServer('SERVER_ADDR') . "\n\nGET:\n" . var_export($_GET, true) . "\n\nPOST:\n" . var_export($_POST, true); $this->oLogManager->push('log', $log); $this->manager->checkMenuPermission($this->sign, Widget_Manager::MENU_PURVIEW_DELETE); $group_id = $this->request->group_id; $purview = $this->request->purview; $permission = $this->request->permission; $Widget_Menu_Permission = new Widget_Menu_Permission(); $Widget_Menu = new Widget_Menu(); $Widget_Menu_Permission->updatePermissionByGroup($group_id, $permission); $this->response->goBack(); }
public function deleteAction() { /** * 记录日志 */ $log = "数据用户组删除\n\nServerIp:\n" . $this->request->getServer('SERVER_ADDR') . "\n\nGET:\n" . var_export($_GET, true) . "\n\nPOST:\n" . var_export($_POST, true); $this->oLogManager->push('log', $log); //检查权限 $this->manager->checkMenuPermission($this->sign, Widget_Manager::MENU_PURVIEW_DELETE); $group_id = intval($this->request->group_id); $oGroup = new Widget_Group(); $res = $oGroup->delete($group_id); if ($res) { $Widget_Menu_Permission = new Widget_Menu_Permission(); $Widget_Menu_Permission->deleteByGroup($group_id); } $this->response->goBack(); }
/** * 检查菜单权限 * @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; }
/** * * 获取子级菜单 * @author 张骥 */ public function getLeftMenuAction() { $menu_id = $this->request->menu_id; $nextMenu = $this->request->nextMenu; //$childmenu = $this->getChildMenu($menu_id); $oMenuPurview = new Widget_Menu_Permission(); $childmenu = $oMenuPurview->getTopPermissionByGroup($this->manager->menu_group_id, $menu_id); foreach ($childmenu as $m => $m_info) { $childmenu[$m]['tree'] = $oMenuPurview->getTopPermissionByGroup($this->manager->menu_group_id, $m); } $return = array('div' => ''); $is_select = 1; foreach ($childmenu as $k => $v) { if (isset($v['tree'])) { $return2['div'] = ""; if ($is_select) { $return2['div'] .= '<div class="accordion-group"> <div class="accordion-heading sdb_h_active"> <a href="#menu_id_' . $v['menu_id'] . '" data-parent="#side_accordion" data-toggle="collapse" class="accordion-toggle"> <i class="icon-th"></i> ' . $v['name'] . ' </a> </div>'; $return2['div'] .= '<div id="menu_id_' . $v['menu_id'] . '" class="accordion-body in collapse" style="height: auto;"> <div class="accordion-inner"> <ul class="nav nav-list">'; $is_select = 0; } else { $return2['div'] .= '<div class="accordion-group"> <div class="accordion-heading"> <a href="#menu_id_' . $v['menu_id'] . '" data-parent="#side_accordion" data-toggle="collapse" class="accordion-toggle collapsed"> <i class="icon-th"></i> ' . $v['name'] . ' </a> </div>'; $return2['div'] .= '<div id="menu_id_' . $v['menu_id'] . '" class="accordion-body collapse" style="height: 0px;"> <div class="accordion-inner"> <ul class="nav nav-list">'; } $count = 0; foreach ($v['tree'] as $k2 => $v2) { $count++; $return2['div'] .= '<li id="nav_' . $v2['menu_id'] . '" onclick="getRightHtml(\'' . $v2['link'] . '\',\'nav_' . $v2['menu_id'] . '\',\'li\')"><a href="javascript:;">' . $v2['name'] . '</a></li>'; } $return2['div'] .= '</ul> </div> </div>'; if ($count > 0) { $return['div'] .= $return2['div']; } else { $return['div'] .= '<div class="accordion-group"> <div class="accordion-heading" id="nav_' . $v['menu_id'] . '"> <a onclick="getRightHtml(\'' . $v['link'] . '\',\'nav_' . $v['menu_id'] . '\',\'div\')" href="javascript:;" class="accordion-toggle"> <i class="icon-th"></i> ' . $v['name'] . ' </a> </div>'; } } else { $return['div'] .= '<div class="accordion-group"> <div class="accordion-heading" id="nav_' . $v['menu_id'] . '"> <a onclick="getRightHtml(\'' . $v['link'] . '\',\'nav_' . $v['menu_id'] . '\',\'div\')" href="javascript:;" class="accordion-toggle"> <i class="icon-th"></i> ' . $v['name'] . ' </a> </div>'; } $return['div'] .= '</div>'; } echo json_encode($return); }