Esempio n. 1
0
 function preDispatch(Request_Abstract $request, Response_Abstract $response)
 {
     $controllerName = strtolower($request->getControllerName());
     $exclude = array('index', 'error', 'login');
     if (!in_array($controllerName, $exclude)) {
         $model = LoginModel::getInstance();
         if (false == $model->checkLogin()) {
             $request->setControllerName('Login')->setActionName('index');
         }
     }
 }
Esempio n. 2
0
 protected function checkAuth(Request_Abstract $request, Response_Abstract $response)
 {
     $config = ['allow' => ['api-user-create' => 1, 'api-user-login' => 1, 'api-user-recommend' => 1, 'api-user-info' => 1, 'api-group-recommend' => 1]];
     $id = strtolower($request->getModuleName() . '-' . $request->getControllerName() . '-' . $request->getActionName());
     if (!isset($config['allow'][$id])) {
         $user = new User();
         $user->id = ApiRequest::getParam('uid');
         $token = ApiRequest::getParam('token');
         if (!$user->id || TextUtil::isEmptyString($token)) {
             return new ApiResponse(Code::FAIL_PARAMETER_MISSING, 'uid or token is missing');
         }
         if ($resp = UserManager::getInstance()->getUser($user)) {
             return $resp;
         }
         if ($user->token != $token) {
             return new ApiResponse(Code::FAIL_USER_TOKEN_EXPIRE, null);
         }
         UserManager::getInstance()->setAuthorizedUser($user);
     }
     return null;
 }
Esempio n. 3
0
 function dispatchLoopStartup(Request_Abstract $request, Response_Abstract $response)
 {
     $dispatcher = Dispatcher::getInstance();
     $controllerName = strtolower($request->getControllerName());
     $isApi = 0 === strpos($controllerName, 'api');
     $isCli = 0 === strpos($controllerName, 'cli_');
     // db
     \Zend_Db_Table::setDefaultAdapter(AbstractModel::getInstance()->getMultiDb()->getDefaultDb());
     // view
     if ($isApi) {
         $dispatcher->disableView();
     } else {
         if ($response instanceof Http) {
             $response->setHeader('Content-Type', 'text/html; charset=UTF-8');
         }
         $dispatcher->setView(SmartyView::getInstance());
     }
     // cli
     if ($isCli && !$request->isCli()) {
         $request->setControllerName('Error')->setActionName('error403');
     }
 }
Esempio n. 4
0
 /**
  * 常量注册
  * @param \Yaf\Request_Abstract $request 请求对象
  * @param \Yaf\Response_Abstract $response 响应对象
  * @return void
  */
 public function preDispatch(Request_Abstract $request, Response_Abstract $response)
 {
     // 请求方式定义
     define('IS_AJAX', $request->isXmlHttpRequest());
     define('IS_GET', $request->isGet());
     define('IS_POST', $request->isPost());
     define('IS_PUT', $request->isPut());
     define('IS_DELETE', $request->getServer('REQUEST_METHOD') == 'DELETE');
     // 模块信息常量定义
     define('CONTROLLER_NAME', $request->getControllerName());
     define('ACTION_NAME', $request->getActionName());
     define('MODULE_NAME', $request->getModuleName());
     define('MODULE_PATH', sprintf("%smodules%s%s%s", APP_PATH, DS, $request->getModuleName(), DS));
     define('COMMON_VIEW_PATH', sprintf('%sviews%s', APP_PATH, DS));
     define('MODULE_VIEW_PATH', sprintf("%sviews%s", MODULE_PATH, DS));
     // 自定义常量定义
     foreach (new Ini(sprintf("%sconsts.ini", CONF_PATH), \YAF\ENVIRON) as $key => $value) {
         if (is_string($key) && is_string($value)) {
             define(strtoupper($key), $value);
         }
     }
 }
Esempio n. 5
0
 /**
  * 构造方法
  *
  * @access public
  * @param Exception $e
  * @param \Yaf\Request_Abstract $request
  */
 public function __construct(Exception $e, Request_Abstract $request)
 {
     $this->host = @$_SERVER['SERVER_NAME'];
     $this->uri = @$_SERVER['REQUEST_URI'];
     $this->query = @$_SERVER['QUERY_STRING'];
     $this->module = $request->getModuleName();
     $this->controller = $request->getControllerName();
     $this->action = $request->getActionName();
     $this->params = '';
     if ($request->isPost()) {
         $this->params = '$_POST => ' . var_export($request->getPost(), true) . "\r\n";
     }
     if (strtolower($request->getMethod()) == 'cli' || strtolower($request->getMethod()) == 'api') {
         $this->params .= 'CLI_PARAMS => ' . var_export($request->getParams(), true);
     }
     $this->code = $e->getCode();
     $this->message = $e->getMessage();
     $this->file = $e->getFile();
     $this->line = $e->getLine();
     $this->exception = get_class($e);
     $this->datetime = date('Y-m-d H:i:s');
     $this->timestamp = time();
 }
Esempio n. 6
0
 /**
  * [logsMessageAction ]
  * @param  Request_Abstract  $request  [description]
  * @param  Response_Abstract $response [description]
  * @return [type]                      [description]
  */
 private function logsMessageAction(Request_Abstract $request, Response_Abstract $response)
 {
     $permission = Application::app()->getConfig()->get("log")->get("permission");
     if ($permission and $permission == false) {
         return;
     }
     SystemLogger::info('  Controller: ' . $request->getControllerName() . ' Action:' . $request->getActionName() . ' is called');
 }