mirror of
https://github.com/the-draupnir-project/Draupnir.git
synced 2026-09-16 23:54:19 +00:00
Update for MPS's PowerLevelMirror.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -104,8 +104,7 @@ export class BasicFloodingProtection extends AbstractProtection<BasicFloodingPro
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
)
|
||||
this.userConsequences = capabilities.userConsequences;
|
||||
}
|
||||
|
||||
@@ -79,8 +79,7 @@ export class FirstMessageIsImageProtection extends AbstractProtection<FirstMessa
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
);
|
||||
this.userConsequences = capabilities.userConsequences;
|
||||
this.eventConsequences = capabilities.eventConsequences;
|
||||
|
||||
@@ -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>> {
|
||||
|
||||
@@ -70,8 +70,7 @@ export class MessageIsMediaProtection extends AbstractProtection<MessageIsMediaP
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
);
|
||||
this.eventConsequences = this.eventConsequences;
|
||||
}
|
||||
|
||||
@@ -68,8 +68,7 @@ export class MessageIsVoiceProtection extends AbstractProtection<MessageIsVoiceD
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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>> {
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -107,8 +107,7 @@ export class TrustedReporters extends AbstractProtection<TrustedReportersDescrip
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
);
|
||||
this.userConsequences = capabilities.userConsequences;
|
||||
this.eventConsequences = capabilities.eventConsequences;
|
||||
|
||||
@@ -79,8 +79,7 @@ export class WordListProtection extends AbstractProtection<WordListDescription>
|
||||
description,
|
||||
capabilities,
|
||||
protectedRoomsSet,
|
||||
[],
|
||||
[]
|
||||
{}
|
||||
);
|
||||
this.userConsequences = capabilities.userConsequences;
|
||||
this.eventConsequences = capabilities.eventConsequences;
|
||||
|
||||
@@ -35,7 +35,8 @@ describe("Test: Report polling", function() {
|
||||
},
|
||||
description: testProtectionDescription,
|
||||
requiredEventPermissions: [],
|
||||
requiredPermissions: []
|
||||
requiredPermissions: [],
|
||||
requiredStatePermissions: [],
|
||||
})
|
||||
},
|
||||
protectionSettings: new StandardProtectionSettings(
|
||||
|
||||
Reference in New Issue
Block a user