mirror of
1
Fork 0

[bugfix] Carry-over `ApprovedByURI` to avoid marking already-approved remote statuses as pending approval (#3231)

* [bugfix] Carry-over pendingApproval + approvedByURI to avoid pending already-approved remote statuses

* don't carry over pending_approval, not necessary

* comment
This commit is contained in:
tobi 2024-08-25 12:18:39 +02:00 committed by GitHub
parent da3fa2d4a2
commit bef0dfc66c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 0 deletions

View File

@ -514,6 +514,17 @@ func (d *Dereferencer) enrichStatus(
latestStatus.FetchedAt = time.Now() latestStatus.FetchedAt = time.Now()
latestStatus.Local = status.Local latestStatus.Local = status.Local
// Carry-over approvals. Remote instances might not yet
// serve statuses with the `approved_by` field, but we
// might have marked a status as pre-approved on our side
// based on the author's inclusion in a followers/following
// collection. By carrying over previously-set values we
// can avoid marking such statuses as "pending" again.
//
// If a remote has in the meantime retracted its approval,
// the next call to 'isPermittedStatus' will catch that.
latestStatus.ApprovedByURI = status.ApprovedByURI
// Check if this is a permitted status we should accept. // Check if this is a permitted status we should accept.
// Function also sets "PendingApproval" bool as necessary. // Function also sets "PendingApproval" bool as necessary.
permit, err := d.isPermittedStatus(ctx, requestUser, status, latestStatus) permit, err := d.isPermittedStatus(ctx, requestUser, status, latestStatus)