/** * Регистрация. Подтверждение. * * @param array $aParams массив входящих данных * @return array $aResult ответ */ protected function x____users_signup_complete($aParams = array()) { $this->_validDevice($aParams); $aResult = array(); require_once ABS_PATH . '/classes/registration.php'; $registration = new registration(); $oUser = $registration->actionRegistrationMobileComplete($aParams); if (!empty($oUser->uid)) { // пользователь существует // формируем ответ -------------- $aData = array(); $aClassVars = array_keys(get_class_vars('users')); foreach ($aClassVars as $sVar) { $aData[$sVar] = $oUser->{$sVar}; } if (!is_emp($aData['role'])) { require_once ABS_PATH . '/classes/freelancer.php'; $aTmp = freelancer::getFreelancerByLogin(array($aData['login'])); $aData['spec'] = $aTmp[0]['spec']; } $aResult = $this->_getUserData($aData, true); // логиним ---------------------- login($oUser->login, $oUser->GetField($oUser->uid, $error, "passwd"), 0, false); switch ($this->_sPlatform) { case 'ios': case 'android': $sql = "SELECT id FROM external_m_push_settings WHERE device_id = ? AND device_type = ? AND user_id = ?i"; $settings_id = $DB->val($sql, $this->_sUdid, $this->_sPlatform, $oUser->uid); if (!$settings_id) { $sql = "INSERT INTO external_m_push_settings (\n device_id, \n device_type, \n user_id, \n message_new, \n project_response_new, \n project_select_candidate, \n project_select_performer, \n project_select_reject\n ) VALUES (\n ?,\n ?,\n ?i,\n 't',\n 't',\n 't',\n 't',\n 't'\n )"; $DB->query($sql, $this->_sUdid, $this->_sPlatform, $oUser->uid); } break; } users::regVisit(); } else { $this->_setLoginError($registration); $this->_setEmailError($registration); $this->_setPasswordError($registration); $this->_setPhoneError($registration); $this->_setRoleError($registration); if (!empty($registration->error['exceed_max_reg_ip'])) { $this->error(EXTERNAL_ERR_EXCEED_MAX_REG_IP); } if (!empty($registration->error['smscode'])) { $this->error(EXTERNAL_ERR_INVALID_SMS_CODE); } } return $aResult; }