mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
Some checks failed
Build Desktop / Configure (push) Has been cancelled
Build Docker Image / amd64 & arm64 (push) Has been cancelled
Build Web / React (Node 16) (push) Has been cancelled
Build Web / React (Node lts/*) (push) Has been cancelled
Build Desktop / Debian 11 (push) Has been cancelled
Build Desktop / Debian 13 (push) Has been cancelled
Build Desktop / Debian 12 (push) Has been cancelled
Build Desktop / Fedora 43 (push) Has been cancelled
Build Desktop / Fedora 42 (push) Has been cancelled
Build Desktop / Servatrice_Debian 11 (push) Has been cancelled
Build Desktop / Ubuntu 24.04 (push) Has been cancelled
Build Desktop / Ubuntu 26.04 (push) Has been cancelled
Build Desktop / Ubuntu 22.04 (push) Has been cancelled
Build Desktop / Arch (push) Has been cancelled
Build Desktop / macOS 14 (push) Has been cancelled
Build Desktop / macOS 15 (push) Has been cancelled
Build Desktop / macOS 13 Intel (push) Has been cancelled
Build Desktop / macOS 15 Debug (push) Has been cancelled
Build Desktop / Windows 10 (push) Has been cancelled
64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import { RequestPasswordSaltParams } from 'store';
|
|
import { StatusEnum, WebSocketConnectOptions, WebSocketConnectReason } from 'types';
|
|
|
|
import webClient from '../../WebClient';
|
|
import { BackendService } from '../../services/BackendService';
|
|
import { ProtoController } from '../../services/ProtoController';
|
|
import { SessionPersistence } from '../../persistence';
|
|
|
|
import {
|
|
activate,
|
|
disconnect,
|
|
login,
|
|
forgotPasswordReset,
|
|
updateStatus
|
|
} from './';
|
|
|
|
export function requestPasswordSalt(options: WebSocketConnectOptions): void {
|
|
const { userName } = options as RequestPasswordSaltParams;
|
|
|
|
const onFailure = () => {
|
|
switch (options.reason) {
|
|
case WebSocketConnectReason.ACTIVATE_ACCOUNT:
|
|
SessionPersistence.accountActivationFailed();
|
|
break;
|
|
case WebSocketConnectReason.PASSWORD_RESET:
|
|
SessionPersistence.resetPasswordFailed();
|
|
break;
|
|
default:
|
|
SessionPersistence.loginFailed();
|
|
}
|
|
disconnect();
|
|
};
|
|
|
|
BackendService.sendSessionCommand('Command_RequestPasswordSalt', {
|
|
...webClient.clientConfig,
|
|
userName,
|
|
}, {
|
|
responseName: 'Response_PasswordSalt',
|
|
onSuccess: (resp) => {
|
|
const passwordSalt = resp?.passwordSalt;
|
|
|
|
switch (options.reason) {
|
|
case WebSocketConnectReason.ACTIVATE_ACCOUNT:
|
|
activate(options, passwordSalt);
|
|
break;
|
|
case WebSocketConnectReason.PASSWORD_RESET:
|
|
forgotPasswordReset(options, passwordSalt);
|
|
break;
|
|
default:
|
|
login(options, passwordSalt);
|
|
}
|
|
},
|
|
onResponseCode: {
|
|
[ProtoController.root.Response.ResponseCode.RespRegistrationRequired]: () => {
|
|
updateStatus(StatusEnum.DISCONNECTED, 'Login failed: registration required');
|
|
onFailure();
|
|
},
|
|
},
|
|
onError: () => {
|
|
updateStatus(StatusEnum.DISCONNECTED, 'Login failed: Unknown Reason');
|
|
onFailure();
|
|
},
|
|
});
|
|
}
|