mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-16 14:11:50 +00:00
Add safety net for attempts to create a duplicate case for a single kick audit log entry
This commit is contained in:
parent
dd7ae1d4b8
commit
c34532e348
2 changed files with 27 additions and 8 deletions
|
@ -77,6 +77,16 @@ export class GuildCases extends BaseRepository {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async findByAuditLogId(auditLogId: string): Promise<Case> {
|
||||||
|
return this.cases.findOne({
|
||||||
|
relations: this.getRelations(),
|
||||||
|
where: {
|
||||||
|
guild_id: this.guildId,
|
||||||
|
audit_log_id: auditLogId,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async getByUserId(userId: string): Promise<Case[]> {
|
async getByUserId(userId: string): Promise<Case[]> {
|
||||||
return this.cases.find({
|
return this.cases.find({
|
||||||
relations: this.getRelations(),
|
relations: this.getRelations(),
|
||||||
|
|
|
@ -267,14 +267,23 @@ export class ModActionsPlugin extends ZeppelinPlugin<IModActionsPluginConfig> {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (kickAuditLogEntry) {
|
if (kickAuditLogEntry) {
|
||||||
this.actions.fire("createCase", {
|
const existingCaseForThisEntry = await this.cases.findByAuditLogId(kickAuditLogEntry.id);
|
||||||
userId: member.id,
|
if (existingCaseForThisEntry) {
|
||||||
modId: kickAuditLogEntry.user.id,
|
logger.warn(
|
||||||
type: CaseTypes.Kick,
|
`Tried to create duplicate case for audit log entry ${kickAuditLogEntry.id}, existing case id ${
|
||||||
auditLogId: kickAuditLogEntry.id,
|
existingCaseForThisEntry.id
|
||||||
reason: kickAuditLogEntry.reason,
|
}`,
|
||||||
automatic: true,
|
);
|
||||||
});
|
} else {
|
||||||
|
this.actions.fire("createCase", {
|
||||||
|
userId: member.id,
|
||||||
|
modId: kickAuditLogEntry.user.id,
|
||||||
|
type: CaseTypes.Kick,
|
||||||
|
auditLogId: kickAuditLogEntry.id,
|
||||||
|
reason: kickAuditLogEntry.reason,
|
||||||
|
automatic: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.serverLogs.log(LogType.MEMBER_KICK, {
|
this.serverLogs.log(LogType.MEMBER_KICK, {
|
||||||
user: stripObjectToScalars(member.user),
|
user: stripObjectToScalars(member.user),
|
||||||
|
|
Loading…
Add table
Reference in a new issue