public function UpdateUserPassword($userId, $mode = self::MODE_USER, $password = false) { if ($password) { preg_match("/^[\\x20-\\x7e]{3,32}\$/D", $password, $matches); if (empty($matches)) { $this->error = new CVoxImplantError(__METHOD__, 'PASSWORD_INCORRECT', GetMessage('VI_USER_PASS_ERROR')); return false; } } $ViHttp = new CVoxImplantHttp(); $result = $ViHttp->UpdateUserPassword($userId, $mode, $password); if (!$result || $ViHttp->GetError()->error) { if ($ViHttp->GetError()->code == 'USER_NOT_FOUND') { $this->ClearUserInfo($userId); } $this->error = new CVoxImplantError(__METHOD__, $ViHttp->GetError()->code, $ViHttp->GetError()->msg); return false; } global $USER_FIELD_MANAGER; if ($mode == self::MODE_USER) { $USER_FIELD_MANAGER->Update("USER", $userId, array('UF_VI_PASSWORD' => $result->PASSWORD)); } else { if ($mode == self::MODE_PHONE) { $USER_FIELD_MANAGER->Update("USER", $userId, array('UF_VI_PHONE_PASSWORD' => $result->PASSWORD)); } } return array('PASSWORD' => $result->PASSWORD); }