merge: Prevent "mark instance as NSFW" from producing hellspawns (!749)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/749 Approved-by: Tess K <me@thvxl.se> Approved-by: dakkar <dakkar@thenautilus.net>
This commit is contained in:
commit
241b186a8a
3 changed files with 42 additions and 2 deletions
|
|
@ -146,6 +146,8 @@ type Option = {
|
|||
app?: MiApp | null;
|
||||
};
|
||||
|
||||
export type PureRenoteOption = Option & { renote: MiNote } & ({ text?: null } | { cw?: null } | { reply?: null } | { poll?: null } | { files?: null | [] });
|
||||
|
||||
@Injectable()
|
||||
export class NoteCreateService implements OnApplicationShutdown {
|
||||
#shutdownController = new AbortController();
|
||||
|
|
@ -412,7 +414,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
|||
|
||||
if (user.host && !data.cw) {
|
||||
await this.federatedInstanceService.fetch(user.host).then(async i => {
|
||||
if (i.isNSFW) {
|
||||
if (i.isNSFW && !this.isPureRenote(data)) {
|
||||
data.cw = 'Instance is marked as NSFW';
|
||||
}
|
||||
});
|
||||
|
|
@ -821,6 +823,11 @@ export class NoteCreateService implements OnApplicationShutdown {
|
|||
if (!user.noindex) this.index(note);
|
||||
}
|
||||
|
||||
@bindThis
|
||||
public isPureRenote(note: Option): note is PureRenoteOption {
|
||||
return this.isRenote(note) && !this.isQuote(note);
|
||||
}
|
||||
|
||||
@bindThis
|
||||
private isRenote(note: Option): note is Option & { renote: MiNote } {
|
||||
return note.renote != null;
|
||||
|
|
|
|||
|
|
@ -442,7 +442,7 @@ export class NoteEditService implements OnApplicationShutdown {
|
|||
|
||||
if (user.host && !data.cw) {
|
||||
await this.federatedInstanceService.fetch(user.host).then(async i => {
|
||||
if (i.isNSFW) {
|
||||
if (i.isNSFW && !this.noteCreateService.isPureRenote(data)) {
|
||||
data.cw = 'Instance is marked as NSFW';
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue