@@ -13,7 +13,6 @@ import (
1313 git_model "code.gitea.io/gitea/models/git"
1414 repo_model "code.gitea.io/gitea/models/repo"
1515 "code.gitea.io/gitea/models/unit"
16- user_model "code.gitea.io/gitea/models/user"
1716 "code.gitea.io/gitea/modules/charset"
1817 "code.gitea.io/gitea/modules/git"
1918 "code.gitea.io/gitea/modules/json"
@@ -103,18 +102,6 @@ func getParentTreeFields(treePath string) (treeNames, treePaths []string) {
103102 return treeNames , treePaths
104103}
105104
106- func getCandidateEmailAddresses (ctx * context.Context ) []string {
107- emails , err := user_model .GetActivatedEmailAddresses (ctx , ctx .Doer .ID )
108- if err != nil {
109- log .Error ("getCandidateEmailAddresses: GetActivatedEmailAddresses: %v" , err )
110- }
111-
112- if ctx .Doer .KeepEmailPrivate {
113- emails = append ([]string {ctx .Doer .GetPlaceholderEmail ()}, emails ... )
114- }
115- return emails
116- }
117-
118105func editFileCommon (ctx * context.Context , isNewFile bool ) {
119106 ctx .Data ["PageIsEdit" ] = true
120107 ctx .Data ["IsNewFile" ] = isNewFile
@@ -123,8 +110,6 @@ func editFileCommon(ctx *context.Context, isNewFile bool) {
123110 ctx .Data ["LineWrapExtensions" ] = strings .Join (setting .Repository .Editor .LineWrapExtensions , "," )
124111 ctx .Data ["IsEditingFileOnly" ] = ctx .FormString ("return_uri" ) != ""
125112 ctx .Data ["ReturnURI" ] = ctx .FormString ("return_uri" )
126- ctx .Data ["CommitCandidateEmails" ] = getCandidateEmailAddresses (ctx )
127- ctx .Data ["CommitDefaultEmail" ] = ctx .Doer .GetEmail ()
128113}
129114
130115func editFile (ctx * context.Context , isNewFile bool ) {
@@ -287,15 +272,11 @@ func editFilePost(ctx *context.Context, form forms.EditRepoFileForm, isNewFile b
287272 message += "\n \n " + form .CommitMessage
288273 }
289274
290- gitCommitter := & files_service.IdentityOptions {}
291- if form .CommitEmail != "" {
292- if util .SliceContainsString (getCandidateEmailAddresses (ctx ), form .CommitEmail , true ) {
293- gitCommitter .GitUserEmail = form .CommitEmail
294- } else {
295- ctx .Data ["Err_CommitEmail" ] = true
296- ctx .RenderWithErr (ctx .Tr ("repo.editor.invalid_commit_email" ), tplEditFile , & form )
297- return
298- }
275+ gitCommitter , valid := WebGitOperationGetCommitChosenEmailIdentity (ctx , form .CommitEmail )
276+ if ! valid {
277+ ctx .Data ["Err_CommitEmail" ] = true
278+ ctx .RenderWithErr (ctx .Tr ("repo.editor.invalid_commit_email" ), tplEditFile , & form )
279+ return
299280 }
300281
301282 operation := "update"
@@ -515,6 +496,13 @@ func DeleteFilePost(ctx *context.Context) {
515496 message += "\n \n " + form .CommitMessage
516497 }
517498
499+ gitCommitter , valid := WebGitOperationGetCommitChosenEmailIdentity (ctx , form .CommitEmail )
500+ if ! valid {
501+ ctx .Data ["Err_CommitEmail" ] = true
502+ ctx .RenderWithErr (ctx .Tr ("repo.editor.invalid_commit_email" ), tplDeleteFile , & form )
503+ return
504+ }
505+
518506 if _ , err := files_service .ChangeRepoFiles (ctx , ctx .Repo .Repository , ctx .Doer , & files_service.ChangeRepoFilesOptions {
519507 LastCommitID : form .LastCommit ,
520508 OldBranch : ctx .Repo .BranchName ,
@@ -525,8 +513,10 @@ func DeleteFilePost(ctx *context.Context) {
525513 TreePath : ctx .Repo .TreePath ,
526514 },
527515 },
528- Message : message ,
529- Signoff : form .Signoff ,
516+ Message : message ,
517+ Signoff : form .Signoff ,
518+ Author : gitCommitter ,
519+ Committer : gitCommitter ,
530520 }); err != nil {
531521 // This is where we handle all the errors thrown by repofiles.DeleteRepoFile
532522 if git .IsErrNotExist (err ) || files_service .IsErrRepoFileDoesNotExist (err ) {
@@ -726,6 +716,13 @@ func UploadFilePost(ctx *context.Context) {
726716 message += "\n \n " + form .CommitMessage
727717 }
728718
719+ gitCommitter , valid := WebGitOperationGetCommitChosenEmailIdentity (ctx , form .CommitEmail )
720+ if ! valid {
721+ ctx .Data ["Err_CommitEmail" ] = true
722+ ctx .RenderWithErr (ctx .Tr ("repo.editor.invalid_commit_email" ), tplUploadFile , & form )
723+ return
724+ }
725+
729726 if err := files_service .UploadRepoFiles (ctx , ctx .Repo .Repository , ctx .Doer , & files_service.UploadRepoFileOptions {
730727 LastCommitID : ctx .Repo .CommitID ,
731728 OldBranch : oldBranchName ,
@@ -734,6 +731,8 @@ func UploadFilePost(ctx *context.Context) {
734731 Message : message ,
735732 Files : form .Files ,
736733 Signoff : form .Signoff ,
734+ Author : gitCommitter ,
735+ Committer : gitCommitter ,
737736 }); err != nil {
738737 if git_model .IsErrLFSFileLocked (err ) {
739738 ctx .Data ["Err_TreePath" ] = true
0 commit comments