code.gitea.io/gitea@v1.21.7/services/markup/processorhelper.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package markup 5 6 import ( 7 "context" 8 9 "code.gitea.io/gitea/models/user" 10 gitea_context "code.gitea.io/gitea/modules/context" 11 "code.gitea.io/gitea/modules/markup" 12 ) 13 14 func ProcessorHelper() *markup.ProcessorHelper { 15 return &markup.ProcessorHelper{ 16 ElementDir: "auto", // set dir="auto" for necessary (eg: <p>, <h?>, etc) tags 17 IsUsernameMentionable: func(ctx context.Context, username string) bool { 18 mentionedUser, err := user.GetUserByName(ctx, username) 19 if err != nil { 20 return false 21 } 22 23 giteaCtx, ok := ctx.(*gitea_context.Context) 24 if !ok { 25 // when using general context, use user's visibility to check 26 return mentionedUser.Visibility.IsPublic() 27 } 28 29 // when using gitea context (web context), use user's visibility and user's permission to check 30 return user.IsUserVisibleToViewer(giteaCtx, mentionedUser, giteaCtx.Doer) 31 }, 32 } 33 }