mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
// Copyright 2025 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package repo |
|
|
|
import ( |
|
user_model "code.gitea.io/gitea/models/user" |
|
"code.gitea.io/gitea/modules/log" |
|
"code.gitea.io/gitea/modules/setting" |
|
"code.gitea.io/gitea/modules/util" |
|
"code.gitea.io/gitea/services/context" |
|
files_service "code.gitea.io/gitea/services/repository/files" |
|
) |
|
|
|
func WebGitOperationCommonData(ctx *context.Context) { |
|
// TODO: more places like "wiki page" and "merging a pull request or creating an auto merge merging task" |
|
emails, err := user_model.GetActivatedEmailAddresses(ctx, ctx.Doer.ID) |
|
if err != nil { |
|
log.Error("WebGitOperationCommonData: GetActivatedEmailAddresses: %v", err) |
|
} |
|
if ctx.Doer.KeepEmailPrivate { |
|
emails = append([]string{ctx.Doer.GetPlaceholderEmail()}, emails...) |
|
} |
|
ctx.Data["CommitCandidateEmails"] = emails |
|
ctx.Data["CommitDefaultEmail"] = ctx.Doer.GetEmail() |
|
} |
|
|
|
func WebGitOperationGetCommitChosenEmailIdentity(ctx *context.Context, email string) (_ *files_service.IdentityOptions, valid bool) { |
|
if ctx.Data["CommitCandidateEmails"] == nil { |
|
setting.PanicInDevOrTesting("no CommitCandidateEmails in context data") |
|
} |
|
emails, _ := ctx.Data["CommitCandidateEmails"].([]string) |
|
if email == "" { |
|
return nil, true |
|
} |
|
if util.SliceContainsString(emails, email, true) { |
|
return &files_service.IdentityOptions{GitUserEmail: email}, true |
|
} |
|
return nil, false |
|
}
|
|
|