// Copyright 2022 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package markup import ( "context" "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/markup" gitea_context "code.gitea.io/gitea/services/context" ) func ProcessorHelper() *markup.RenderHelperFuncs { return &markup.RenderHelperFuncs{ RenderRepoFileCodePreview: renderRepoFileCodePreview, IsUsernameMentionable: func(ctx context.Context, username string) bool { mentionedUser, err := user.GetUserByName(ctx, username) if err != nil { return false } giteaCtx, ok := ctx.(*gitea_context.Context) if !ok { // when using general context, use user's visibility to check return mentionedUser.Visibility.IsPublic() } // when using gitea context (web context), use user's visibility and user's permission to check return user.IsUserVisibleToViewer(giteaCtx, mentionedUser, giteaCtx.Doer) }, } }