frontend: fix missing secret error when reloading room recordings page by extracting secret from session storage

This commit is contained in:
juancarmore 2025-06-18 12:10:02 +02:00
parent f732ddbe67
commit 0c2b76d754

View File

@ -1,6 +1,6 @@
import { inject } from '@angular/core'; import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivateFn } from '@angular/router'; import { ActivatedRouteSnapshot, CanActivateFn } from '@angular/router';
import { ContextService, NavigationService } from '../services'; import { ContextService, NavigationService, SessionStorageService } from '../services';
import { ErrorReason } from '@lib/models/navigation.model'; import { ErrorReason } from '@lib/models/navigation.model';
export const extractRoomQueryParamsGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => { export const extractRoomQueryParamsGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => {
@ -32,9 +32,12 @@ export const extractRoomQueryParamsGuard: CanActivateFn = (route: ActivatedRoute
export const extractRecordingQueryParamsGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => { export const extractRecordingQueryParamsGuard: CanActivateFn = (route: ActivatedRouteSnapshot) => {
const navigationService = inject(NavigationService); const navigationService = inject(NavigationService);
const contextService = inject(ContextService); const contextService = inject(ContextService);
const { roomId, secret } = extractParams(route); const sessionStorageService = inject(SessionStorageService);
if (!secret) { const { roomId, secret } = extractParams(route);
const storedSecret = sessionStorageService.getModeratorSecret(roomId);
if (!secret && !storedSecret) {
// If no secret is provided, redirect to the error page // If no secret is provided, redirect to the error page
return navigationService.createRedirectionToErrorPage(ErrorReason.MISSING_ROOM_SECRET); return navigationService.createRedirectionToErrorPage(ErrorReason.MISSING_ROOM_SECRET);
} }