Cockatrice/webclient/src/api/AuthenticationService.tsx
Jeremy Letto 6ce346af4a
Webatrice: KnownHosts component (#4456)
* refactor dexie services for future schema updates

Co-authored-by: Jeremy Letto <jeremy.letto@datasite.com>
2021-11-25 22:12:23 -05:00

50 lines
1.6 KiB
TypeScript

import { StatusEnum, User, WebSocketConnectReason, WebSocketConnectOptions } from 'types';
import { SessionCommands, webClient } from 'websocket';
export default class AuthenticationService {
static login(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.LOGIN);
}
static register(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.REGISTER);
}
static activateAccount(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.ACTIVATE_ACCOUNT);
}
static resetPasswordRequest(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.PASSWORD_RESET_REQUEST);
}
static resetPasswordChallenge(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.PASSWORD_RESET_CHALLENGE);
}
static resetPassword(options: WebSocketConnectOptions): void {
SessionCommands.connect(options, WebSocketConnectReason.PASSWORD_RESET);
}
static disconnect(): void {
SessionCommands.disconnect();
}
static isConnected(state: number): boolean {
return state === StatusEnum.LOGGED_IN;
}
static isModerator(user: User): boolean {
const moderatorLevel = webClient.protobuf.controller.ServerInfo_User.UserLevelFlag.IsModerator;
// @TODO tell cockatrice not to do this so shittily
return (user.userLevel & moderatorLevel) === moderatorLevel;
}
static isAdmin() {
}
static connectionAttemptMade() {
return webClient.connectionAttemptMade;
}
}