Skip to content
Snippets Groups Projects
Unverified Commit 04d93061 authored by Negin Moshki's avatar Negin Moshki Committed by GitHub
Browse files

Allow teacher to change user permissions (#28)


* Add permission function

* Update permission function

* format with prettier

---------

Co-authored-by: default avatarneda_moshki <uzijb@student.kit.edu>
Co-authored-by: default avatarFlorian Raith <florianraith00@gmail.com>
Co-authored-by: default avatarMarius Friess <34072851+mariusfriess@users.noreply.github.com>
parent 48c55c39
No related branches found
No related tags found
No related merge requests found
......@@ -105,6 +105,7 @@ export class ChannelGateway implements OnGatewayConnection {
video: student.video,
audio: student.audio,
handSignal: student.handSignal,
permission: student.permission,
}));
return {
......@@ -196,6 +197,23 @@ export class ChannelGateway implements OnGatewayConnection {
return true;
}
@SubscribeMessage('update-permission')
@UseRequestContext()
public async updatePermission(
@ConnectedSocket() client: Socket,
@MessageBody() payload: { studentId: string; permission: boolean },
) {
const channel = await this.channels.fromClientOrFail(client);
channel.updatePermission(payload.studentId, payload.permission);
this.server.to(channel.id).emit('update-permission', {
id: payload.studentId,
permission: payload.permission,
});
return true;
}
public async handleConnection(client: Socket) {
/*
* This is a workaround for getting the client's rooms in the disconnecting event.
......
......@@ -16,6 +16,7 @@ export interface Teacher extends ChannelUser {
export interface Student extends ChannelUser {
name: string;
handSignal: boolean;
permission: boolean;
}
export class Channel {
......@@ -39,6 +40,7 @@ export class Channel {
video: true,
audio: true,
handSignal: false,
permission: false,
};
this.students.set(client.id, student);
......@@ -143,6 +145,14 @@ export class Channel {
}
}
public updatePermission(studentId: string, permission: boolean) {
const student = this.getStudent(studentId);
if (student) {
student.permission = permission;
}
}
public toString(): string {
return `Channel{${this.id}}`;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment