mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:02:25 -05:00 
			
		
		
		
	ensure 'none' gets included in serializable visibilities
This commit is contained in:
		
					parent
					
						
							
								a44065726c
							
						
					
				
			
			
				commit
				
					
						bb89decad7
					
				
			
		
					 2 changed files with 12 additions and 14 deletions
				
			
		|  | @ -221,9 +221,8 @@ func (p *Processor) Create( | |||
| 		return nil, errWithCode | ||||
| 	} | ||||
| 
 | ||||
| 	if err := p.processVisibility(ctx, form, requester.Settings.Privacy, status); err != nil { | ||||
| 		return nil, gtserror.NewErrorInternalError(err) | ||||
| 	} | ||||
| 	// Process the incoming created status visibility. | ||||
| 	processVisibility(form, requester.Settings.Privacy, status) | ||||
| 
 | ||||
| 	// Process policy AFTER visibility as it relies | ||||
| 	// on status.Visibility and form.Visibility being set. | ||||
|  | @ -485,12 +484,11 @@ func (p *Processor) processThreadID(ctx context.Context, status *gtsmodel.Status | |||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (p *Processor) processVisibility( | ||||
| 	ctx context.Context, | ||||
| func processVisibility( | ||||
| 	form *apimodel.StatusCreateRequest, | ||||
| 	accountDefaultVis gtsmodel.Visibility, | ||||
| 	status *gtsmodel.Status, | ||||
| ) error { | ||||
| ) { | ||||
| 	switch { | ||||
| 	// Visibility set on form, use that. | ||||
| 	case form.Visibility != "": | ||||
|  | @ -500,21 +498,19 @@ func (p *Processor) processVisibility( | |||
| 	// this back on the form for later use. | ||||
| 	case accountDefaultVis != 0: | ||||
| 		status.Visibility = accountDefaultVis | ||||
| 		form.Visibility = p.converter.VisToAPIVis(ctx, accountDefaultVis) | ||||
| 		form.Visibility = typeutils.VisToAPIVis(accountDefaultVis) | ||||
| 
 | ||||
| 	// What? Fall back to global default, set | ||||
| 	// this back on the form for later use. | ||||
| 	default: | ||||
| 		status.Visibility = gtsmodel.VisibilityDefault | ||||
| 		form.Visibility = p.converter.VisToAPIVis(ctx, gtsmodel.VisibilityDefault) | ||||
| 		form.Visibility = typeutils.VisToAPIVis(gtsmodel.VisibilityDefault) | ||||
| 	} | ||||
| 
 | ||||
| 	// Set federated according to "local_only" field, | ||||
| 	// assuming federated (ie., not local-only) by default. | ||||
| 	localOnly := util.PtrOrValue(form.LocalOnly, false) | ||||
| 	status.Federated = util.Ptr(!localOnly) | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func processInteractionPolicy( | ||||
|  |  | |||
|  | @ -139,8 +139,8 @@ func (c *Converter) AccountToAPIAccountSensitive(ctx context.Context, a *gtsmode | |||
| 	} | ||||
| 
 | ||||
| 	apiAccount.Source = &apimodel.Source{ | ||||
| 		Privacy:             c.VisToAPIVis(ctx, a.Settings.Privacy), | ||||
| 		WebVisibility:       c.VisToAPIVis(ctx, a.Settings.WebVisibility), | ||||
| 		Privacy:             VisToAPIVis(a.Settings.Privacy), | ||||
| 		WebVisibility:       VisToAPIVis(a.Settings.WebVisibility), | ||||
| 		WebLayout:           a.Settings.WebLayout.String(), | ||||
| 		Sensitive:           *a.Settings.Sensitive, | ||||
| 		Language:            a.Settings.Language, | ||||
|  | @ -1395,7 +1395,7 @@ func (c *Converter) baseStatusToFrontend( | |||
| 		InReplyToID:        nil, // Set below. | ||||
| 		InReplyToAccountID: nil, // Set below. | ||||
| 		Sensitive:          *s.Sensitive, | ||||
| 		Visibility:         c.VisToAPIVis(ctx, s.Visibility), | ||||
| 		Visibility:         VisToAPIVis(s.Visibility), | ||||
| 		LocalOnly:          s.IsLocalOnly(), | ||||
| 		Language:           nil, // Set below. | ||||
| 		URI:                s.URI, | ||||
|  | @ -1654,7 +1654,7 @@ func (c *Converter) StatusToAPIEdits(ctx context.Context, status *gtsmodel.Statu | |||
| } | ||||
| 
 | ||||
| // VisToAPIVis converts a gts visibility into its api equivalent | ||||
| func (c *Converter) VisToAPIVis(ctx context.Context, m gtsmodel.Visibility) apimodel.Visibility { | ||||
| func VisToAPIVis(m gtsmodel.Visibility) apimodel.Visibility { | ||||
| 	switch m { | ||||
| 	case gtsmodel.VisibilityPublic: | ||||
| 		return apimodel.VisibilityPublic | ||||
|  | @ -1664,6 +1664,8 @@ func (c *Converter) VisToAPIVis(ctx context.Context, m gtsmodel.Visibility) apim | |||
| 		return apimodel.VisibilityPrivate | ||||
| 	case gtsmodel.VisibilityDirect: | ||||
| 		return apimodel.VisibilityDirect | ||||
| 	case gtsmodel.VisibilityNone: | ||||
| 		return apimodel.VisibilityNone | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue