From a99ed58a48a16017edf654d0e1af5d85bfc1ecc1 Mon Sep 17 00:00:00 2001 From: Daniel Olsen Date: Mon, 23 Jun 2025 06:35:50 +0200 Subject: [PATCH] Constrain ghost PLs to the main bridge bot's PL --- src/d2m/actions/register-user.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/d2m/actions/register-user.js b/src/d2m/actions/register-user.js index d20bfb8..6756dbb 100644 --- a/src/d2m/actions/register-user.js +++ b/src/d2m/actions/register-user.js @@ -212,7 +212,12 @@ function _hashProfileContent(content, powerLevel) { async function syncUser(user, member, channel, guild, roomID) { const mxid = await ensureSimJoined(user, roomID) const content = await memberToStateContent(user, member, guild.id) - const powerLevel = memberToPowerLevel(user, member, guild, channel) + + const discordPowerLevel = memberToPowerLevel(user, member, guild, channel) + const powerLevelsStateContent = await api.getStateEvent(roomID, "m.room.power_levels", "") // Kind of sucks we have to do this all the time + const botpl = powerLevelsStateContent.users?.[`@${reg.sender_localpart}:${reg.ooye.server_name}`] || 0 + const powerLevel = Math.min(discordPowerLevel, botpl) + await _sendSyncUser(roomID, mxid, content, powerLevel, { // do not overwrite pre-existing data if we already have data and `member` is not accessible, because this would replace good data with bad data allowOverwrite: !!member,