mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-12-22 10:12:11 +00:00
[bugfix] Only allow boosting post from non-interaction-policy-aware instance if public or unlisted (#3396)
This commit is contained in:
parent
18e2f69e85
commit
c023bd30f3
|
@ -306,7 +306,7 @@ func (f *Filter) StatusBoostable(
|
|||
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
|
||||
// visibility, as we're interaction-policy aware.
|
||||
case *status.Local:
|
||||
|
@ -318,13 +318,21 @@ func (f *Filter) StatusBoostable(
|
|||
policy.CanAnnounce,
|
||||
)
|
||||
|
||||
// Otherwise, assume the status is from an
|
||||
// instance that does not use / does not care
|
||||
// about interaction policies, and just return OK.
|
||||
default:
|
||||
// Status is from an instance that does not use
|
||||
// or does not care about interaction policies.
|
||||
// We can boost it if it's unlisted or public.
|
||||
case status.Visibility == gtsmodel.VisibilityPublic ||
|
||||
status.Visibility == gtsmodel.VisibilityUnlocked:
|
||||
return >smodel.PolicyCheckResult{
|
||||
Permission: gtsmodel.PolicyPermissionPermitted,
|
||||
}, nil
|
||||
|
||||
// Not permitted by any of the
|
||||
// above checks, so it's forbidden.
|
||||
default:
|
||||
return >smodel.PolicyCheckResult{
|
||||
Permission: gtsmodel.PolicyPermissionForbidden,
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue