/**
  * 框架页
  */
 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();
 }
Exemple #2
0
 /**
  * 
  * 修改更新菜单
  * @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();
 }
Exemple #5
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;
 }
    /**
     * 
     * 获取子级菜单
     * @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);
    }