From c2fc96299fd39453a69109c8380b1da7463541a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de> Date: Fri, 2 Aug 2019 14:40:05 +0200 Subject: [PATCH] Refactor setting role on room join --- .../shared/room-join/room-join.component.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/app/components/shared/room-join/room-join.component.ts b/src/app/components/shared/room-join/room-join.component.ts index 302f4ed94..44fbb5e11 100644 --- a/src/app/components/shared/room-join/room-join.component.ts +++ b/src/app/components/shared/room-join/room-join.component.ts @@ -9,6 +9,8 @@ import { TranslateService } from '@ngx-translate/core'; import { AuthenticationService } from '../../../services/http/authentication.service'; import { UserRole } from '../../../models/user-roles.enum'; import { User } from '../../../models/user'; +import { Moderator } from '../../../models/moderator'; +import { ModeratorService } from '../../../services/http/moderator.service'; @Component({ selector: 'app-room-join', @@ -30,7 +32,8 @@ export class RoomJoinComponent implements OnInit { private router: Router, public notificationService: NotificationService, private translateService: TranslateService, - public authenticationService: AuthenticationService + public authenticationService: AuthenticationService, + private moderatorService: ModeratorService ) { } @@ -95,9 +98,20 @@ export class RoomJoinComponent implements OnInit { this.router.navigate([`/creator/room/${this.room.shortId}/comments`]); } else { this.roomService.addToHistory(this.room.id); - this.authenticationService.setAccess(this.room.shortId, UserRole.PARTICIPANT); - - this.router.navigate([`/participant/room/${this.room.shortId}/comments`]); + this.moderatorService.get(this.room.id).subscribe((moderators: Moderator[]) => { + let isModerator = false; + for (const m of moderators) { + if (m.userId === this.user.id) { + this.authenticationService.setAccess(this.room.shortId, UserRole.EXECUTIVE_MODERATOR); + this.router.navigate([`/moderator/room/${this.room.shortId}/comments`]); + isModerator = true; + } + } + if (!isModerator) { + this.authenticationService.setAccess(this.room.shortId, UserRole.PARTICIPANT); + this.router.navigate([`/participant/room/${this.room.shortId}/comments`]); + } + }); } } } -- GitLab