/**
  * 基类初始化操作
  * @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');
 }
 /**
  * @covers AbiosGaming\Session::isExpired
  */
 public function testIsExpired()
 {
     $cache = new \Onoi\Cache\FixedInMemoryLruCache(10);
     $this->api->useCache($cache);
     // create session with empty cache
     $this->getsData(200, '{"session_id":"FAKESESSION"}');
     $session = new Session($this->api);
     $this->assertFalse($session->isExpired(), 'Newly created session should be valid');
     // create session from fresh cache
     $session = new Session($this->api);
     $this->assertFalse($session->isExpired(), 'New session from cache should be valid');
     // create session from stale cache
     $this->getsData(200, '{"session_id":"FRESHSESSION"}');
     $cache->save(Session::$cachingKey, serialize(["STALESESSION", time() - 10000]));
     $session = new Session($this->api);
     $this->assertEquals($session->getKey(), 'FRESHSESSION', 'Stale sessions from cache should not be used');
 }
 /**
  * 基类初始化操作
  * @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');
 }
Exemple #4
0
 function _initialize()
 {
     /* 对用户传入的变量进行转义操作。*/
     if (MAGIC_QUOTES_GPC) {
         if (!empty($_GET)) {
             $_GET = stripslashesDeep($_GET);
         }
         if (!empty($_POST)) {
             $_POST = stripslashesDeep($_POST);
         }
         $_COOKIE = stripslashesDeep($_COOKIE);
         $_REQUEST = stripslashesDeep($_REQUEST);
     }
     $this->assign('module_name', MODULE_NAME);
     $this->assign('action_name', ACTION_NAME);
     $langSet = C('DEFAULT_LANG');
     // 定义当前语言
     define('FANWE_LANG_SET', strtolower($langSet));
     $this->assign('default_lang', FANWE_LANG_SET);
     // 读取项目公共语言包
     if (is_file(LANG_PATH . $langSet . '/common.php')) {
         L(include LANG_PATH . $langSet . '/common.php');
     }
     // 读取当前模块语言包
     if (is_file(LANG_PATH . $langSet . '/' . MODULE_NAME . '.php')) {
         L(include LANG_PATH . $langSet . '/' . MODULE_NAME . '.php');
     }
     $this->assign('ur_href', L(MODULE_NAME) . ' > ' . L(MODULE_NAME . '_' . ACTION_NAME));
     if (Session::isExpired()) {
         unset($_SESSION[C('USER_AUTH_KEY')]);
         unset($_SESSION);
         session_destroy();
     }
     Session::setExpire(time() + fanweC("EXPIRED_TIME") * 60);
     // 用户权限检查
     if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
         import('@.ORG.RBAC');
         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'));
                 }
                 // 提示错误信息
                 if (intval($_REQUEST['ajax']) == 2) {
                     echo L('_VALID_ACCESS_');
                     exit;
                 } else {
                     $this->assign("jumpUrl", u("Index/main"));
                     $this->error(L('_VALID_ACCESS_'));
                 }
             }
         }
     }
 }