diff --git a/src/lib/core/stores/websocketStore.ts b/src/lib/core/stores/websocketStore.ts index 8dd831d..40f7c60 100644 --- a/src/lib/core/stores/websocketStore.ts +++ b/src/lib/core/stores/websocketStore.ts @@ -4,7 +4,9 @@ import { get, writable } from 'svelte/store'; import { handleIncomingMessages } from '../handlers/messageHandler'; import { queue as msgQueue, sendMessage } from '../handlers/ws_messageSender'; import { auth } from '../client/firebase'; +import { auth as authStore } from '$lib/core/stores/auth'; import { addNotification } from './noti'; +import { permission } from './permissions'; let socket: WebSocket | null = null; const ENABLE_WS_DEBUG: boolean = false; @@ -21,6 +23,25 @@ export function connectToWebsocket() { socketStore.set(socket); addNotification('INFO:Connected!'); + if (socket) { + // send auth message + + let auth_data = get(authStore); + let perms = get(permission); + + sendMessage({ + type: 'auth', + payload: { + user: { + uid: auth_data?.uid ?? '', + name: auth_data?.displayName ?? '', + email: auth_data?.email ?? '', + permissions: perms.join(',') + } + } + }); + } + // recover messages on connect, flushing while (get(msgQueue).length) { let queue = get(msgQueue); diff --git a/src/lib/core/types/outMessage.ts b/src/lib/core/types/outMessage.ts index e40c0e0..87b16c9 100644 --- a/src/lib/core/types/outMessage.ts +++ b/src/lib/core/types/outMessage.ts @@ -17,6 +17,7 @@ export type OutMessage = type: 'auth'; payload: { user: { + uid: string; name: string; email: string; permissions: string;