Fix retrying own events as non-moderator
This commit is contained in:
@@ -487,9 +487,8 @@ async function unbridgeDeletedChannel(channel, guildID) {
|
|||||||
/** @type {Ty.Event.M_Power_Levels} */
|
/** @type {Ty.Event.M_Power_Levels} */
|
||||||
const powerLevelContent = await api.getStateEvent(roomID, "m.room.power_levels", "")
|
const powerLevelContent = await api.getStateEvent(roomID, "m.room.power_levels", "")
|
||||||
powerLevelContent.users ??= {}
|
powerLevelContent.users ??= {}
|
||||||
const bot = `@${reg.sender_localpart}:${reg.ooye.server_name}`
|
|
||||||
for (const mxid of Object.keys(powerLevelContent.users)) {
|
for (const mxid of Object.keys(powerLevelContent.users)) {
|
||||||
if (powerLevelContent.users[mxid] >= 100 && mUtils.eventSenderIsFromDiscord(mxid) && mxid !== bot) {
|
if (powerLevelContent.users[mxid] >= 100 && mUtils.eventSenderIsFromDiscord(mxid) && mxid !== mUtils.bot) {
|
||||||
delete powerLevelContent.users[mxid]
|
delete powerLevelContent.users[mxid]
|
||||||
await api.sendState(roomID, "m.room.power_levels", "", powerLevelContent, mxid)
|
await api.sendState(roomID, "m.room.power_levels", "", powerLevelContent, mxid)
|
||||||
}
|
}
|
||||||
@@ -513,7 +512,7 @@ async function unbridgeDeletedChannel(channel, guildID) {
|
|||||||
// (the room can be used with less clutter and the member list makes sense if it's bridged somewhere else)
|
// (the room can be used with less clutter and the member list makes sense if it's bridged somewhere else)
|
||||||
if (row.autocreate === 0) {
|
if (row.autocreate === 0) {
|
||||||
// remove sim members
|
// remove sim members
|
||||||
const members = db.prepare("SELECT mxid FROM sim_member WHERE room_id = ? AND mxid <> ?").pluck().all(roomID, bot)
|
const members = db.prepare("SELECT mxid FROM sim_member WHERE room_id = ? AND mxid <> ?").pluck().all(roomID, mUtils.bot)
|
||||||
const preparedDelete = db.prepare("DELETE FROM sim_member WHERE room_id = ? AND mxid = ?")
|
const preparedDelete = db.prepare("DELETE FROM sim_member WHERE room_id = ? AND mxid = ?")
|
||||||
for (const mxid of members) {
|
for (const mxid of members) {
|
||||||
await api.leaveRoom(roomID, mxid)
|
await api.leaveRoom(roomID, mxid)
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ async function onRetryReactionAdd(reactionEvent) {
|
|||||||
if (event.sender !== `@${reg.sender_localpart}:${reg.ooye.server_name}` || !error) return
|
if (event.sender !== `@${reg.sender_localpart}:${reg.ooye.server_name}` || !error) return
|
||||||
|
|
||||||
// To stop people injecting misleading messages, the reaction needs to come from either the original sender or a room moderator
|
// To stop people injecting misleading messages, the reaction needs to come from either the original sender or a room moderator
|
||||||
if (reactionEvent.sender !== event.sender) {
|
if (reactionEvent.sender !== error.payload.sender) {
|
||||||
// Check if it's a room moderator
|
// Check if it's a room moderator
|
||||||
const {powers: {[reactionEvent.sender]: senderPower}, powerLevels} = await utils.getEffectivePower(roomID, [reactionEvent.sender], api)
|
const {powers: {[reactionEvent.sender]: senderPower}, powerLevels} = await utils.getEffectivePower(roomID, [reactionEvent.sender], api)
|
||||||
if (senderPower < (powerLevels.state_default ?? 50)) return
|
if (senderPower < (powerLevels.state_default ?? 50)) return
|
||||||
|
|||||||
+1
-1
@@ -162,7 +162,7 @@ function getStateEventOuter(roomID, type, key) {
|
|||||||
*/
|
*/
|
||||||
async function getInviteState(roomID) {
|
async function getInviteState(roomID) {
|
||||||
/** @type {Ty.R.SSS} */
|
/** @type {Ty.R.SSS} */
|
||||||
const root = await mreq.mreq("POST", path("/client/unstable/org.matrix.simplified_msc3575/sync", `@${reg.sender_localpart}:${reg.ooye.server_name}`), {
|
const root = await mreq.mreq("POST", path("/client/unstable/org.matrix.simplified_msc3575/sync", `@${reg.sender_localpart}:${reg.ooye.server_name}`, {timeout: "0"}), {
|
||||||
room_subscriptions: {
|
room_subscriptions: {
|
||||||
[roomID]: {
|
[roomID]: {
|
||||||
timeline_limit: 0,
|
timeline_limit: 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user