[mirotalksfu] - lock the room by the password
هذا الالتزام موجود في:
@@ -11,6 +11,7 @@ module.exports = class Room {
|
||||
this.router = null;
|
||||
this.io = io;
|
||||
this._isLocked = false;
|
||||
this._roomPassword = null;
|
||||
this.peers = new Map();
|
||||
this.createTheRouter();
|
||||
}
|
||||
@@ -193,11 +194,15 @@ module.exports = class Room {
|
||||
// ROOM STATUS
|
||||
// ####################################################
|
||||
|
||||
getPassword() {
|
||||
return this._roomPassword;
|
||||
}
|
||||
isLocked() {
|
||||
return this._isLocked;
|
||||
}
|
||||
setLocked(status) {
|
||||
setLocked(status, password) {
|
||||
this._isLocked = status;
|
||||
this._roomPassword = password;
|
||||
}
|
||||
|
||||
// ####################################################
|
||||
|
||||
@@ -241,17 +241,32 @@ io.on('connection', (socket) => {
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('roomAction', (action) => {
|
||||
switch (action) {
|
||||
socket.on('roomAction', (data) => {
|
||||
log.debug('Room action:', data);
|
||||
switch (data.action) {
|
||||
case 'lock':
|
||||
roomList.get(socket.room_id).setLocked(true);
|
||||
roomList.get(socket.room_id).setLocked(true, data.password);
|
||||
roomList.get(socket.room_id).broadCast(socket.id, 'roomAction', data.action);
|
||||
break;
|
||||
case 'checkPassword':
|
||||
let roomData = {
|
||||
room: null,
|
||||
password: 'KO',
|
||||
};
|
||||
if (data.password == roomList.get(socket.room_id).getPassword()) {
|
||||
roomData.room = roomList.get(socket.room_id).toJson();
|
||||
roomData.password = 'OK'
|
||||
roomList.get(socket.room_id).sendTo(socket.id, 'roomPassword', roomData);
|
||||
} else {
|
||||
roomList.get(socket.room_id).sendTo(socket.id, 'roomPassword', roomData);
|
||||
}
|
||||
break;
|
||||
case 'unlock':
|
||||
roomList.get(socket.room_id).setLocked(false);
|
||||
roomList.get(socket.room_id).broadCast(socket.id, 'roomAction', data.action);
|
||||
break;
|
||||
}
|
||||
log.debug('Room locked:', roomList.get(socket.room_id).isLocked());
|
||||
roomList.get(socket.room_id).broadCast(socket.id, 'roomAction', action);
|
||||
});
|
||||
|
||||
socket.on('peerAction', (data) => {
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم