private function _processFieldFilter()
 {
     $class = $this->_getSearchClass();
     $classFieldsConfig = $class::stGetFieldsConfig();
     if (!is_array($this->filters)) {
         // TODO error
         return false;
     }
     foreach ($this->filters as $filter => &$value) {
         // Si todavia no es un array ponemos el operador por defecto
         if (!is_array($value)) {
             $value = array("=", $value);
         } else {
             // Si es un array pero de un elemento suponemos que es el valor a buscar, no debería ser así pero lo admitimos porque puede ser cómodo
             if (count($value) == 1) {
                 $value = array("=", $value[0]);
             }
             if (!in_array($value[0], $this->operators)) {
                 LogsErrors::stCreate(array("errorCode" => ObjectPersistentSearch::ERROR_CODE_INVALID_OPERATOR, "object" => $this, "degree" => "fatal", "param" => $filter, "value" => $value[0]));
                 return false;
             }
         }
         if (!in_array($filter, array_keys($classFieldsConfig))) {
             LogsErrors::stCreate(array("errorCode" => ObjectPersistentSearch::ERROR_CODE_INVALID_FILTER, "object" => $this, "degree" => "fatal", "value" => $filter));
             return false;
         }
     }
     return true;
 }
 private function _validateParams()
 {
     // Comprobamos los parametros que nos han pasado son válidos
     foreach (array_intersect(array_keys($this->params), array_keys($this->objFields)) as $param) {
         if (!$this->getFieldDTObj($param) || !$this->getFieldDTObj($param)->isValidValue($this->params[$param])) {
             LogsErrors::stCreate(array("errorCode" => ObjectConfigurable::ERROR_CODE_PARAM_IS_NOT_VALID, "object" => $this, "degree" => "fatal", "param" => $param, "value" => $this->params[$param]));
         }
     }
 }
 protected function _getResponse()
 {
     $callableMethod = $this->_getCallableMethod();
     if ($callableMethod === array()) {
         return array();
     }
     list($class, $func) = $callableMethod;
     $params = $this->_getFunctionParams($class, $func);
     if (!$params) {
         LogsErrors::stCreate(array("errorCode" => APIRESTResponseJSONPage::ERROR_CODE_INVALID_FUNCTION_PARAM, "function" => "_getFunctionParams"));
         return array();
     }
     $res = call_user_func_array($callableMethod, array_values($params));
     return array("response" => $res, "class" => $class, "function" => $func);
 }
 protected function _getCallableMethod()
 {
     $class = LoadInit::stGetClassCaseInsensitive($this->object);
     $func = $this->function;
     $obj = $class::stVirtualConstructor();
     // Permitimos que no pasen la funcion tan cual
     if (!method_exists($obj, $func)) {
         $func = "st" . ucfirst($this->function);
     }
     if (!method_exists($obj, $func)) {
         LogsErrors::stCreate(array("errorCode" => APIRESTResponseJSONPage::ERROR_CODE_INVALID_FUNCTION_PARAM, "function" => "_getFunctionParams"));
         return array();
     }
     return array($class, $func);
 }
 static function stCreate($params)
 {
     // Para ello no se debe de llamar NUNCA a DBObject::stCreate si no con la clase del objeto a crear
     $class = get_called_class();
     $createParams = ObjectPersistent::stGetValidCreateParams($class);
     $invalidParams = array_diff(array_keys($params), $createParams);
     if (count($invalidParams) !== 0) {
         LogsErrors::stCreate(array("errorCode" => 0, "param" => implode(",", $invalidParams)));
         return false;
     }
     if (!ObjectPersistent::stIsValidParamsValues($class, $params)) {
         // TODO warning y crear error
         return false;
     }
     return static::_stCreate($params);
 }
Beispiel #6
0
 static function stLogin($userName, $password)
 {
     $password = sha1($password);
     $filters = array("userName" => array($userName));
     $user = UserSearch::stVirtualConstructor(array("filters" => $filters, "limit" => 1))->getResult();
     if (!$user) {
         LogsErrors::stCreate(array("errorCode" => User::ERROR_CODE_USER_NOT_EXISTS, "param" => "userName", "value" => $userName));
         return false;
     }
     if ($user["password"] != $password) {
         LogsErrors::stCreate(array("errorCode" => User::ERROR_CODE_PASSWORD_NOT_MATCH, "param" => "password"));
         return false;
     }
     $token = sha1($password . time());
     if (!HTTPSession::stCreate(array("userName" => $userName, "password" => $password, "token" => $token))) {
         return false;
     }
     return array("token" => $token);
 }
 static function stCreate($params)
 {
     return LogsErrors::stVirtualConstructor($params);
 }