Set permissions for invited users to allow changing visible room name, inviting others, etc.

master
Skylar Ittner 3 years ago
parent 2791d9ce93
commit 51186172c0

@ -121,11 +121,13 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
if (inRoom) {
// we're already in the room, do nothing
logger.debug("Room " + roomName + " already joined.");
setSMSRoomPowerLevels(res.room_id);
callback(res.room_id);
} else {
// not in the room, join it
client.joinRoom(res.room_id).then((room) => {
logger.debug("Room " + roomName + " joined.");
setSMSRoomPowerLevels(res.room_id);
callback(room.room_id);
});
}
@ -141,6 +143,7 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
topic: "SMS conversation with " + formatPhoneNumber(tel, "(NNN) NNN-NNNN") + " (using " + formatPhoneNumber(ournumber, "(NNN) NNN-NNNN") + ")"
}).then((room) => {
logger.debug("Room" + roomName + " created with ID " + room.room_id);
setSMSRoomPowerLevels(res.room_id);
// The first message or two we send doesn't go through unless we do this.
// It just spits out "Error sending event M_FORBIDDEN: Unknown room" instead.
@ -149,6 +152,29 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
});
}
function setSMSRoomPowerLevels(roomid) {
var userPowerLevels = {};
for (var i = 0; i < settings.inviteusers.length; i++) {
userPowerLevels[settings.inviteusers[i]] = 50;
}
client.sendEvent(roomid, "m.room.power_levels", {
"events": {
"m.room.name": 50,
"m.room.power_levels": 50
},
"events_default": 0,
"invite": 50,
"kick": 50,
"notifications": {
"room": 50
},
"redact": 50,
"state_default": 50,
"users": userPowerLevels,
"users_default": 0
});
}
function getAndUploadFile(url, callback) {
logger.info("Downloading MMS media " + url);
// download
@ -357,6 +383,9 @@ client.login("m.login.password", {"user": settings.matrixuser, "password": setti
});
}
return;
} else if (event.getContent().body.startsWith("!fixperms")) {
sendMatrixNotice(event.getRoomId(), "Resetting power levels for this room.");
setSMSRoomPowerLevels(event.getRoomId());
}
const matches = room.name.match(/([1-9][0-9]+)/g);
if (matches.length == 1) {

Loading…
Cancel
Save