Exemplo n.º 1
0
 private function runAjaxHandler($callable)
 {
     try {
         $result = null;
         //            if (!method_exists($callable [0], $callable [1])) {
         //                $this->err($callable);
         //                $this->err(sprintf('Action "%s" is not found in the controller "%s"', $callable [1], $callable [0]));
         //                throw new SystemException (sprintf("Action %s is not found in the controller %s", $callable [1], $callable [0]));
         //            }
         /**
          * Not logged in, redirect to login screen or show ajax error.
          * 로그인 여부를 체크 할 페이지 인지 확인한다.
          *
          * TODO::다른 방법이 있을 것 같은데~
          */
         $request_uri = if_exists($_SERVER, 'X_HTTP_ORIGINAL_URL', $_SERVER['REQUEST_URI']);
         $return_uri = $callable[0]->getParameter('returnURI', $request_uri);
         $redirect = implode("/", array_map("rawurlencode", explode("/", $return_uri)));
         if (!$this->checkAdmin($callable[0])) {
             if ($this->ajax()) {
                 return 'Access denied!';
             } else {
                 $this->response()->redirect($this->_loginAdminPage . '&returnURI=' . $redirect);
                 return true;
             }
         } else {
             if (!$this->check($callable[0])) {
                 if ($this->ajax()) {
                     return 'Access denied!';
                 } else {
                     $this->response()->redirect($this->_loginPage . '&returnURI=' . $redirect);
                     return true;
                 }
             }
         }
         /**
          * Execute the handler
          */
         $this->info(sprintf('The Class "%s" does "%s" method', get_class($callable[0]), $callable[1]));
         $result = call_user_func_array($callable, []);
         //$this->debug($result);
         return $result ?: true;
     } catch (AjaxException $ex) {
         $this->err($ex->getMessage());
         $this->response()->setContent($ex->getMessage());
     } catch (Exception $ex) {
         $this->err($ex->getMessage());
         throw $ex;
     }
     //$this->debug($result);
     return $result;
 }
Exemplo n.º 2
0
 function if_empty($array, $key, $def = null)
 {
     $ret = if_exists($array, $key, $def);
     return !empty($ret) ? $ret : $def;
 }
Exemplo n.º 3
0
 protected function getViewMode()
 {
     return if_exists($_SESSION, 'view_mode', self::VIEW_MODE_GRID);
 }
Exemplo n.º 4
0
 function write($sessionId, $data)
 {
     $meet_again_baby = 900;
     $key = $this->getkey($sessionId);
     //        $this->err($key);
     // TODO::sudo php5enmod mcrypt
     //        $crypt = new Crypt ();
     //        $crypt->setComplexTypes(TRUE);
     //        $crypt->setKey($key);
     //        $crypt->setData($data);
     //        $encrypt = $crypt->encrypt();
     //        $crypt = new \Crypt\AES ();
     //        $encrypt = $crypt->encrypt($data, $this->key, $this->iv);
     //        $security = new AES();
     //        $encrypt = $security->encrypt($data, $this->key, $this->iv);
     //        $security = new Security();
     //        $encrypt = $security->encrypt($data, $key);
     $crypt = new MCrypt($key);
     $encrypt = $crypt->encrypt($data);
     //        $this->err($data);
     //        $this->err($encrypt);
     //        $userid = if_empty($_SESSION, 'userid', null);
     $admin = if_exists($_SESSION, 'admin', null);
     $user = if_exists($_SESSION, 'user', null);
     $userid = if_exists($admin, 'login', if_exists($user, 'login', null));
     $data = array('id' => $sessionId, 'address' => $_SERVER['REMOTE_ADDR'], 'agent' => $_SERVER['HTTP_USER_AGENT'], 'userid' => $userid, 'privilege' => $encrypt, 'server' => $_SERVER['HTTP_HOST'], 'request' => substr($_SERVER['REQUEST_URI'], 0, 255), 'referer' => isset($_SERVER['HTTP_REFERER']) ? substr($_SERVER['HTTP_REFERER'], 0, 255) : '', 'timer' => Timer::getMicroTime() - self::$sessionMicrotime, 'created' => Timestamp::getUNIXtime(), 'updated' => Timestamp::getUNIXtime() - $meet_again_baby, 'session_key' => $key);
     $res = $this->AutoExecuteReplace('sessions', $data);
     return $res;
 }
Exemplo n.º 5
0
 public function getCsrfToken()
 {
     return if_exists($_SESSION, 'csrf_token', null);
 }