Update for MPS's PowerLevelMirror.

This commit is contained in:
gnuxie
2024-05-02 15:57:44 +01:00
committed by Gnuxie
parent 9ea217c8ca
commit 2bbca6d27a
14 changed files with 20 additions and 22 deletions
@@ -24,6 +24,7 @@ class StandardServerConsequencesRenderer implements ServerConsequences {
}
public readonly requiredEventPermissions = this.capability.requiredEventPermissions;
public readonly requiredPermissions = this.capability.requiredPermissions;
public readonly requiredStatePermissions = this.capability.requiredStatePermissions;
public async consequenceForServerInRoom(roomID: StringRoomID, revision: PolicyListRevision): Promise<ActionResult<void>> {
const capabilityResult = await this.capability.consequenceForServerInRoom(roomID, revision);
const title = <fragment>
@@ -24,6 +24,7 @@ class StandardEventConsequencesRenderer implements EventConsequences {
}
public readonly requiredEventPermissions = this.capability.requiredEventPermissions;
public readonly requiredPermissions = this.capability.requiredPermissions;
public readonly requiredStatePermissions = this.capability.requiredStatePermissions;
public async consequenceForEvent(roomID: StringRoomID, eventID: StringEventID, reason: string): Promise<ActionResult<void>> {
const capabilityResult = await this.capability.consequenceForEvent(roomID, eventID, reason);
const title = <fragment>Redacting {Permalinks.forEvent(roomID, eventID)}.</fragment>;
@@ -65,6 +65,7 @@ class StandardUserConsequencesRenderer implements UserConsequences {
}
public readonly requiredEventPermissions = this.capability.requiredEventPermissions;
public readonly requiredPermissions = this.capability.requiredPermissions;
public readonly requiredStatePermissions = this.capability.requiredStatePermissions;
public async consequenceForUserInRoom(roomID: StringRoomID, userID: StringUserID, reason: string): Promise<ActionResult<void>> {
const capabilityResult = await this.capability.consequenceForUserInRoom(roomID, userID, reason);
+1 -1
View File
@@ -156,7 +156,7 @@ export class BanPropagationProtection
protectedRoomsSet: ProtectedRoomsSet,
private readonly draupnir: Draupnir,
) {
super(description, capabilities, protectedRoomsSet, [], []);
super(description, capabilities, protectedRoomsSet, {});
this.userConsequences = capabilities.userConsequences;
this.draupnir.reactionHandler.on(BAN_PROPAGATION_PROMPT_LISTENER, this.banPropagationPromptListener);
this.draupnir.reactionHandler.on(UNBAN_PROPAGATION_PROMPT_LISTENER, this.unbanPropagationPromptListener);
+1 -2
View File
@@ -104,8 +104,7 @@ export class BasicFloodingProtection extends AbstractProtection<BasicFloodingPro
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
)
this.userConsequences = capabilities.userConsequences;
}
+1 -2
View File
@@ -79,8 +79,7 @@ export class FirstMessageIsImageProtection extends AbstractProtection<FirstMessa
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
);
this.userConsequences = capabilities.userConsequences;
this.eventConsequences = capabilities.eventConsequences;
+3 -4
View File
@@ -81,8 +81,6 @@ describeProtection<JoinWaveShortCircuitProtectionCapabilities, Draupnir, JoinWav
})
export class JoinWaveShortCircuitProtection extends AbstractProtection<JoinWaveShortCircuitProtectionDescription> implements DraupnirProtection<JoinWaveShortCircuitProtectionDescription> {
requiredStatePermissions = ["m.room.join_rules"]
private joinBuckets: {
[roomID: StringRoomID]: {
lastBucketStart: Date,
@@ -101,8 +99,9 @@ export class JoinWaveShortCircuitProtection extends AbstractProtection<JoinWaveS
description,
capabilities,
protectedRoomsSet,
["m.room.join_rules"],
[]
{
requiredStatePermissions: ["m.room.join_rules"]
}
);
}
public async handleMembershipChange(revision: RoomMembershipRevision, changes: MembershipChange[]): Promise<ActionResult<void>> {
+1 -2
View File
@@ -70,8 +70,7 @@ export class MessageIsMediaProtection extends AbstractProtection<MessageIsMediaP
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
);
this.eventConsequences = this.eventConsequences;
}
+1 -2
View File
@@ -68,8 +68,7 @@ export class MessageIsVoiceProtection extends AbstractProtection<MessageIsVoiceD
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
);
}
+1 -1
View File
@@ -38,7 +38,7 @@ export class PolicyChangeNotification
protectedRoomsSet: ProtectedRoomsSet,
private readonly draupnir: Draupnir,
) {
super(description, capabilities, protectedRoomsSet, [], []);
super(description, capabilities, protectedRoomsSet, {});
}
public async handlePolicyChange(revision: PolicyListRevision, changes: PolicyRuleChange[]): Promise<ActionResult<void>> {
+4 -3
View File
@@ -7,7 +7,7 @@
// policies that operate on a timeline cache, which removes the painfull process
// that is currently used to repeatedly fetch `/messages`.
import { AbstractProtection, ActionResult, CapabilitySet, MatrixGlob, MembershipChange, MembershipChangeType, Ok, PolicyListRevision, PolicyRule, PolicyRuleChange, PolicyRuleType, ProtectedRoomsSet, Protection, ProtectionDescription, Recommendation, RoomMembershipRevision, SimpleChangeType, StringRoomID, StringUserID, Task, describeProtection } from "matrix-protection-suite";
import { AbstractProtection, ActionResult, CapabilitySet, MatrixGlob, MembershipChange, MembershipChangeType, Ok, PolicyListRevision, PolicyRule, PolicyRuleChange, PolicyRuleType, PowerLevelPermission, ProtectedRoomsSet, Protection, ProtectionDescription, Recommendation, RoomMembershipRevision, SimpleChangeType, StringRoomID, StringUserID, Task, describeProtection } from "matrix-protection-suite";
import { Draupnir } from "../Draupnir";
import { redactUserMessagesIn } from "../utils";
@@ -25,8 +25,9 @@ export class RedactionSynchronisationProtection extends AbstractProtection<Redac
description,
capabilities,
protectedRoomsSet,
[],
['redact']
{
requiredPermissions: [PowerLevelPermission.Redact]
}
);
for (const reason of draupnir.config.automaticallyRedactForReasons) {
this.automaticRedactionReasons.push(new MatrixGlob(reason.toLowerCase()));
+1 -2
View File
@@ -107,8 +107,7 @@ export class TrustedReporters extends AbstractProtection<TrustedReportersDescrip
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
);
this.userConsequences = capabilities.userConsequences;
this.eventConsequences = capabilities.eventConsequences;
+1 -2
View File
@@ -79,8 +79,7 @@ export class WordListProtection extends AbstractProtection<WordListDescription>
description,
capabilities,
protectedRoomsSet,
[],
[]
{}
);
this.userConsequences = capabilities.userConsequences;
this.eventConsequences = capabilities.eventConsequences;
+2 -1
View File
@@ -35,7 +35,8 @@ describe("Test: Report polling", function() {
},
description: testProtectionDescription,
requiredEventPermissions: [],
requiredPermissions: []
requiredPermissions: [],
requiredStatePermissions: [],
})
},
protectionSettings: new StandardProtectionSettings(