@@ -13,7 +13,6 @@ import (
13
13
git_model "code.gitea.io/gitea/models/git"
14
14
repo_model "code.gitea.io/gitea/models/repo"
15
15
"code.gitea.io/gitea/models/unit"
16
- user_model "code.gitea.io/gitea/models/user"
17
16
"code.gitea.io/gitea/modules/charset"
18
17
"code.gitea.io/gitea/modules/git"
19
18
"code.gitea.io/gitea/modules/json"
@@ -103,18 +102,6 @@ func getParentTreeFields(treePath string) (treeNames, treePaths []string) {
103
102
return treeNames , treePaths
104
103
}
105
104
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
-
118
105
func editFileCommon (ctx * context.Context , isNewFile bool ) {
119
106
ctx .Data ["PageIsEdit" ] = true
120
107
ctx .Data ["IsNewFile" ] = isNewFile
@@ -123,8 +110,6 @@ func editFileCommon(ctx *context.Context, isNewFile bool) {
123
110
ctx .Data ["LineWrapExtensions" ] = strings .Join (setting .Repository .Editor .LineWrapExtensions , "," )
124
111
ctx .Data ["IsEditingFileOnly" ] = ctx .FormString ("return_uri" ) != ""
125
112
ctx .Data ["ReturnURI" ] = ctx .FormString ("return_uri" )
126
- ctx .Data ["CommitCandidateEmails" ] = getCandidateEmailAddresses (ctx )
127
- ctx .Data ["CommitDefaultEmail" ] = ctx .Doer .GetEmail ()
128
113
}
129
114
130
115
func editFile (ctx * context.Context , isNewFile bool ) {
@@ -287,15 +272,11 @@ func editFilePost(ctx *context.Context, form forms.EditRepoFileForm, isNewFile b
287
272
message += "\n \n " + form .CommitMessage
288
273
}
289
274
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
299
280
}
300
281
301
282
operation := "update"
@@ -515,6 +496,13 @@ func DeleteFilePost(ctx *context.Context) {
515
496
message += "\n \n " + form .CommitMessage
516
497
}
517
498
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
+
518
506
if _ , err := files_service .ChangeRepoFiles (ctx , ctx .Repo .Repository , ctx .Doer , & files_service.ChangeRepoFilesOptions {
519
507
LastCommitID : form .LastCommit ,
520
508
OldBranch : ctx .Repo .BranchName ,
@@ -525,8 +513,10 @@ func DeleteFilePost(ctx *context.Context) {
525
513
TreePath : ctx .Repo .TreePath ,
526
514
},
527
515
},
528
- Message : message ,
529
- Signoff : form .Signoff ,
516
+ Message : message ,
517
+ Signoff : form .Signoff ,
518
+ Author : gitCommitter ,
519
+ Committer : gitCommitter ,
530
520
}); err != nil {
531
521
// This is where we handle all the errors thrown by repofiles.DeleteRepoFile
532
522
if git .IsErrNotExist (err ) || files_service .IsErrRepoFileDoesNotExist (err ) {
@@ -726,6 +716,13 @@ func UploadFilePost(ctx *context.Context) {
726
716
message += "\n \n " + form .CommitMessage
727
717
}
728
718
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
+
729
726
if err := files_service .UploadRepoFiles (ctx , ctx .Repo .Repository , ctx .Doer , & files_service.UploadRepoFileOptions {
730
727
LastCommitID : ctx .Repo .CommitID ,
731
728
OldBranch : oldBranchName ,
@@ -734,6 +731,8 @@ func UploadFilePost(ctx *context.Context) {
734
731
Message : message ,
735
732
Files : form .Files ,
736
733
Signoff : form .Signoff ,
734
+ Author : gitCommitter ,
735
+ Committer : gitCommitter ,
737
736
}); err != nil {
738
737
if git_model .IsErrLFSFileLocked (err ) {
739
738
ctx .Data ["Err_TreePath" ] = true
0 commit comments