mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Add link to user profile in markdown mention only if user exists (#21533)
Previously mentioning a user would link to its profile, regardless of whether the user existed. This change tests if the user exists and only if it does - a link to its profile is added. * Fixes #3444 Signed-off-by: Yarden Shoham <hrsi88@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							
								
								
									
										29
									
								
								services/markup/processorhelper.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								services/markup/processorhelper.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package markup
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/user"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/markup"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func ProcessorHelper() *markup.ProcessorHelper {
 | 
			
		||||
	return &markup.ProcessorHelper{
 | 
			
		||||
		IsUsernameMentionable: func(ctx context.Context, username string) bool {
 | 
			
		||||
			// TODO: cast ctx to modules/context.Context and use IsUserVisibleToViewer
 | 
			
		||||
 | 
			
		||||
			// Only link if the user actually exists
 | 
			
		||||
			userExists, err := user.IsUserExist(ctx, 0, username)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("Failed to validate user in mention %q exists, assuming it does", username)
 | 
			
		||||
				userExists = true
 | 
			
		||||
			}
 | 
			
		||||
			return userExists
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user