[bugfix] Only allow boosting post from non-interaction-policy-aware instance if public or unlisted (#3396)

This commit is contained in:
tobi 2024-10-05 19:15:02 +02:00 committed by GitHub
parent 18e2f69e85
commit c023bd30f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -306,7 +306,7 @@ func (f *Filter) StatusBoostable(
status.InteractionPolicy.CanAnnounce, status.InteractionPolicy.CanAnnounce,
) )
// If status is local and has no policy set, // If status has no policy set but it's local,
// check against the default policy for this // check against the default policy for this
// visibility, as we're interaction-policy aware. // visibility, as we're interaction-policy aware.
case *status.Local: case *status.Local:
@ -318,13 +318,21 @@ func (f *Filter) StatusBoostable(
policy.CanAnnounce, policy.CanAnnounce,
) )
// Otherwise, assume the status is from an // Status is from an instance that does not use
// instance that does not use / does not care // or does not care about interaction policies.
// about interaction policies, and just return OK. // We can boost it if it's unlisted or public.
default: case status.Visibility == gtsmodel.VisibilityPublic ||
status.Visibility == gtsmodel.VisibilityUnlocked:
return &gtsmodel.PolicyCheckResult{ return &gtsmodel.PolicyCheckResult{
Permission: gtsmodel.PolicyPermissionPermitted, Permission: gtsmodel.PolicyPermissionPermitted,
}, nil }, nil
// Not permitted by any of the
// above checks, so it's forbidden.
default:
return &gtsmodel.PolicyCheckResult{
Permission: gtsmodel.PolicyPermissionForbidden,
}, nil
} }
} }