Implement kick, op and friends.

This commit is contained in:
Juliusz Chroboczek
2020-04-25 17:36:35 +02:00
parent e0eee9e7e2
commit 25825e5b22
3 changed files with 118 additions and 16 deletions
+35 -7
View File
@@ -15,6 +15,8 @@ let up = {}, down = {};
let iceServers = [];
let permissions = {};
function toHex(array) {
let a = new Uint8Array(array);
let s = '';
@@ -515,9 +517,10 @@ function gotUser(id, name, del) {
addUser(id, name);
}
function gotPermissions(permissions) {
document.getElementById('presenterbox').disabled = !permissions.present;
document.getElementById('sharebox').disabled = !permissions.present;
function gotPermissions(perm) {
permissions = perm;
document.getElementById('presenterbox').disabled = !perm.present;
document.getElementById('sharebox').disabled = !perm.present;
}
const urlRegexp = /https?:\/\/[-a-zA-Z0-9@:%/._\+~#=?]+[-a-zA-Z0-9@:%/_\+~#=]/g;
@@ -634,14 +637,39 @@ function handleInput() {
}
switch(cmd) {
case '/nick':
setNick(rest);
storeNick(rest);
return;
case '/me':
message = rest;
me = true;
break;
case '/op':
case '/unop':
case '/kick':
case '/present':
case '/unpresent':
if(!permissions.admin) {
displayError("You're not an administrator");
return;
}
let id;
if(id in users) {
id = rest;
} else {
for(let i in users) {
if(users[i] === rest) {
id = i;
break;
}
}
}
if(!id) {
displayError('Unknown user ' + rest);
return;
}
send({
type: cmd.slice(1),
id: id,
});
return;
default:
displayError('Uknown command ' + cmd);
return;