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; }
function if_empty($array, $key, $def = null) { $ret = if_exists($array, $key, $def); return !empty($ret) ? $ret : $def; }
protected function getViewMode() { return if_exists($_SESSION, 'view_mode', self::VIEW_MODE_GRID); }
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; }
public function getCsrfToken() { return if_exists($_SESSION, 'csrf_token', null); }