mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:42:26 -05: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
					
				
			
		
					 1 changed files with 13 additions and 5 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue