예제 #1
0
 /**
  * 基类初始化操作
  * @author Terry<*****@*****.**>
  * @date 2013-3-25
  */
 public function _initialize()
 {
     $langSet = C('DEFAULT_LANG');
     //        echo "<pre>";print_r(MODULE_NAME);exit;
     // 读取当前模块语言包
     if (is_file(LANG_PATH . $langSet . '/' . MODULE_NAME . '.php')) {
         L(include LANG_PATH . $langSet . '/' . MODULE_NAME . '.php');
     }
     //判断用户是否登陆
     $this->doCheckLogin();
     $bm = array();
     $bm['url'] = MODULE_NAME;
     $bm['module'] = L(MODULE_NAME);
     $bm['action'] = L(MODULE_NAME . '_' . ACTION_NAME);
     $this->assign('breadcrumbs', $bm);
     import('ORG.Util.Session');
     $this->assign("uid", session("admin"));
     $admin_access = D('Config')->getCfgByModule('ADMIN_ACCESS');
     if (intval($admin_access['EXPIRED_TIME']) > 0 && Session::isExpired()) {
         unset($_SESSION[C('USER_AUTH_KEY')]);
         unset($_SESSION);
         session_destroy();
     }
     if (intval($admin_access['EXPIRED_TIME']) > 0) {
         Session::setExpire(time() + $admin_access['EXPIRED_TIME'] * 60);
     }
     if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
         $rbac = new Arbac();
         if (!$rbac->AccessDecision()) {
             //检查认证识别号
             if (!$_SESSION[C('USER_AUTH_KEY')]) {
                 //跳转到认证网关
                 redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
             }
             // 没有权限 抛出错误
             if (C('RBAC_ERROR_PAGE')) {
                 // 定义权限错误页面
                 redirect(C('RBAC_ERROR_PAGE'));
             } else {
                 if (C('GUEST_AUTH_ON')) {
                     $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
                 }
                 // 提示错误信息
                 $this->error(L('_VALID_ACCESS_'));
             }
         }
     }
     $this->getTop();
     $this->getMenus();
     import('ORG.Util.Page');
 }
예제 #2
0
 /**
  * 基类初始化操作
  * @author Terry<*****@*****.**>
  * @date 2013-3-25
  */
 public function _initialize()
 {
     $this->doCheckLogin();
     $this->_name = $this->getActionName();
     $langSet = C('DEFAULT_LANG');
     //读取公共语言包
     L(include LANG_PATH . $langSet . '/Common.php');
     // 读取当前模块语言包
     if (is_file(LANG_PATH . $langSet . '/' . MODULE_NAME . '.php')) {
         L(include LANG_PATH . $langSet . '/' . MODULE_NAME . '.php');
     }
     //判断用户是否登陆
     $ary_get = $this->_get();
     $module = $ary_get['_URL_'][1] ? $ary_get['_URL_'][1] : "Index";
     $action = $ary_get['_URL_'][2] ? $ary_get['_URL_'][2] : "index";
     if (!empty($module) && !empty($action)) {
         $array_where = array();
         $array_where['action'] = $action;
         $array_where['module'] = $module;
         $array_where['status'] = '1';
         $array_where['is_show'] = '1';
         $rolenode = D("RoleNode")->where($array_where)->order('sort asc')->find();
         if (!empty($rolenode) && is_array($rolenode)) {
             $navid = $rolenode['nav_id'];
         } else {
             $node = D("RoleNode")->where(array('module' => $module, 'action' => array('NEQ', ''), 'status' => '1'))->order('sort asc')->find();
             $navid = $node['nav_id'];
             $module = $node['module'];
             $action = $node['action'];
         }
     }
     $this->assign("modulename", $module);
     $this->assign("actionname", $action);
     $this->assign("navid", $navid);
     $navname = D("RoleNav")->where(array('id' => $navid))->find();
     session("navname", $navname['name']);
     $rolenav = M('RoleNav')->field(C('DB_PREFIX') . 'role_nav.name,' . C('DB_PREFIX') . 'role_node.*')->join(C('DB_PREFIX') . 'role_node ON ' . C('DB_PREFIX') . 'role_nav.id = ' . C('DB_PREFIX') . 'role_node.`nav_id`')->where(C('DB_PREFIX') . 'role_nav.id =  "' . $navid . '" AND ' . C('DB_PREFIX') . 'role_node.`action` =  "' . $action . '" AND ' . C('DB_PREFIX') . 'role_node.`module` =  "' . $module . '"')->find();
     if (!empty($rolenav) && is_array($rolenav)) {
         cookie("menuid", $rolenav['id']);
     }
     import('ORG.Util.Session');
     $this->assign("uid", session("admin"));
     $admin_access = D('Config')->getCfgByModule('ADMIN_ACCESS');
     if (intval($admin_access['EXPIRED_TIME']) > 0 && Session::isExpired()) {
         unset($_SESSION[C('USER_AUTH_KEY')]);
         unset($_SESSION);
         session_destroy();
     }
     if (intval($admin_access['EXPIRED_TIME']) > 0) {
         Session::setExpire(time() + $admin_access['EXPIRED_TIME'] * 60);
     }
     if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
         $rbac = new Arbac();
         if (!$rbac->AccessDecision()) {
             //检查认证识别号
             if (!$_SESSION[C('USER_AUTH_KEY')]) {
                 //跳转到认证网关
                 redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
             }
             // 没有权限 抛出错误
             if (C('RBAC_ERROR_PAGE')) {
                 // 定义权限错误页面
                 redirect(C('RBAC_ERROR_PAGE'));
             } else {
                 if (C('GUEST_AUTH_ON')) {
                     $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
                 }
                 // 提示错误信息
                 $this->error(L('_VALID_ACCESS_'));
             }
         }
     }
     $this->getTop();
     $this->getMenus($navid);
     $this->_Breadcrumb($navid);
     import('ORG.Util.Page');
     import('ORG.Util.Tree');
     import('ORG.Util.Dir');
 }