mirror of
https://github.com/matrix-org/mjolnir.git
synced 2024-10-01 05:36:06 +00:00
Add a no-op mode
This commit is contained in:
parent
7501e3123a
commit
adec9f58a6
@ -14,7 +14,7 @@ Phase 1:
|
|||||||
|
|
||||||
Phase 2:
|
Phase 2:
|
||||||
* [x] Pantalaimon support
|
* [x] Pantalaimon support
|
||||||
* [ ] No-op mode (for verifying behaviour)
|
* [x] No-op mode (for verifying behaviour)
|
||||||
* [ ] Redact messages on ban (optionally)
|
* [ ] Redact messages on ban (optionally)
|
||||||
* [x] More useful spam in management room
|
* [x] More useful spam in management room
|
||||||
* [ ] Command to import ACLs, etc from rooms
|
* [ ] Command to import ACLs, etc from rooms
|
||||||
|
@ -42,6 +42,11 @@ syncOnStartup: true
|
|||||||
# resets, etc) before Mjolnir is needed.
|
# resets, etc) before Mjolnir is needed.
|
||||||
verifyPermissionsOnStartup: true
|
verifyPermissionsOnStartup: true
|
||||||
|
|
||||||
|
# If true, Mjolnir won't actually ban users or apply server ACLs, but will
|
||||||
|
# think it has. This is useful to see what it does in a scenario where the
|
||||||
|
# bot might not be trusted fully, yet. Default false (do bans/ACLs).
|
||||||
|
noop: false
|
||||||
|
|
||||||
# A list of rooms to protect (matrix.to URLs)
|
# A list of rooms to protect (matrix.to URLs)
|
||||||
protectedRooms:
|
protectedRooms:
|
||||||
- "https://matrix.to/#/#yourroom:example.org"
|
- "https://matrix.to/#/#yourroom:example.org"
|
||||||
|
@ -51,7 +51,9 @@ export async function applyServerAcls(lists: BanList[], roomIds: string[], mjoln
|
|||||||
await mjolnir.client.sendNotice(mjolnir.managementRoomId, `Applying ACL in ${roomId}`);
|
await mjolnir.client.sendNotice(mjolnir.managementRoomId, `Applying ACL in ${roomId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
await mjolnir.client.sendStateEvent(roomId, "m.room.server_acl", "", finalAcl);
|
if (!config.noop) {
|
||||||
|
await mjolnir.client.sendStateEvent(roomId, "m.room.server_acl", "", finalAcl);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
errors.push({roomId, errorMessage: e.message || (e.body ? e.body.error : '<no message>')});
|
errors.push({roomId, errorMessage: e.message || (e.body ? e.body.error : '<no message>')});
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,10 @@ export async function applyUserBans(lists: BanList[], roomIds: string[], mjolnir
|
|||||||
await mjolnir.client.sendNotice(mjolnir.managementRoomId, `Banning ${member['state_key']} in ${roomId} for: ${userRule.reason}`);
|
await mjolnir.client.sendNotice(mjolnir.managementRoomId, `Banning ${member['state_key']} in ${roomId} for: ${userRule.reason}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
await mjolnir.client.banUser(member['state_key'], roomId, userRule.reason);
|
if (!config.noop) {
|
||||||
|
await mjolnir.client.banUser(member['state_key'], roomId, userRule.reason);
|
||||||
|
}
|
||||||
|
|
||||||
banned = true;
|
banned = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ interface IConfig {
|
|||||||
verboseLogging: boolean;
|
verboseLogging: boolean;
|
||||||
syncOnStartup: boolean;
|
syncOnStartup: boolean;
|
||||||
verifyPermissionsOnStartup: boolean;
|
verifyPermissionsOnStartup: boolean;
|
||||||
|
noop: boolean;
|
||||||
protectedRooms: string[]; // matrix.to urls
|
protectedRooms: string[]; // matrix.to urls
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user