示例#1
0
 /**
  * Регистрация. Подтверждение.
  * 
  * @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;
 }