import {StatusEnum, User} from "types"; import {SessionCommands, webClient} from "websocket"; import {WebSocketConnectReason, WebSocketOptions} from "../websocket/services/WebSocketService"; export default class AuthenticationService { static connect(options: WebSocketOptions): void { SessionCommands.connect(options, WebSocketConnectReason.LOGIN); } static register(options: WebSocketOptions): void { SessionCommands.connect(options, WebSocketConnectReason.REGISTER); } static activateAccount(options: WebSocketOptions): void { SessionCommands.connect(options, WebSocketConnectReason.ACTIVATE_ACCOUNT); } static disconnect(): void { SessionCommands.disconnect(); } static isConnected(state: number): boolean { return state === StatusEnum.LOGGEDIN; } 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() { } }