gitea源码

webgit.go 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2025 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repo
  4. import (
  5. user_model "code.gitea.io/gitea/models/user"
  6. "code.gitea.io/gitea/modules/log"
  7. "code.gitea.io/gitea/modules/setting"
  8. "code.gitea.io/gitea/modules/util"
  9. "code.gitea.io/gitea/services/context"
  10. files_service "code.gitea.io/gitea/services/repository/files"
  11. )
  12. func WebGitOperationCommonData(ctx *context.Context) {
  13. // TODO: more places like "wiki page" and "merging a pull request or creating an auto merge merging task"
  14. emails, err := user_model.GetActivatedEmailAddresses(ctx, ctx.Doer.ID)
  15. if err != nil {
  16. log.Error("WebGitOperationCommonData: GetActivatedEmailAddresses: %v", err)
  17. }
  18. if ctx.Doer.KeepEmailPrivate {
  19. emails = append([]string{ctx.Doer.GetPlaceholderEmail()}, emails...)
  20. }
  21. ctx.Data["CommitCandidateEmails"] = emails
  22. ctx.Data["CommitDefaultEmail"] = ctx.Doer.GetEmail()
  23. }
  24. func WebGitOperationGetCommitChosenEmailIdentity(ctx *context.Context, email string) (_ *files_service.IdentityOptions, valid bool) {
  25. if ctx.Data["CommitCandidateEmails"] == nil {
  26. setting.PanicInDevOrTesting("no CommitCandidateEmails in context data")
  27. }
  28. emails, _ := ctx.Data["CommitCandidateEmails"].([]string)
  29. if email == "" {
  30. return nil, true
  31. }
  32. if util.SliceContainsString(emails, email, true) {
  33. return &files_service.IdentityOptions{GitUserEmail: email}, true
  34. }
  35. return nil, false
  36. }