gitea源码

renderhelper.go 1016B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package markup
  4. import (
  5. "context"
  6. "code.gitea.io/gitea/models/user"
  7. "code.gitea.io/gitea/modules/markup"
  8. gitea_context "code.gitea.io/gitea/services/context"
  9. )
  10. func FormalRenderHelperFuncs() *markup.RenderHelperFuncs {
  11. return &markup.RenderHelperFuncs{
  12. RenderRepoFileCodePreview: renderRepoFileCodePreview,
  13. RenderRepoIssueIconTitle: renderRepoIssueIconTitle,
  14. IsUsernameMentionable: func(ctx context.Context, username string) bool {
  15. mentionedUser, err := user.GetUserByName(ctx, username)
  16. if err != nil {
  17. return false
  18. }
  19. giteaCtx := gitea_context.GetWebContext(ctx)
  20. if giteaCtx == nil {
  21. // when using general context, use user's visibility to check
  22. return mentionedUser.Visibility.IsPublic()
  23. }
  24. // when using gitea context (web context), use user's visibility and user's permission to check
  25. return user.IsUserVisibleToViewer(giteaCtx, mentionedUser, giteaCtx.Doer)
  26. },
  27. }
  28. }