From 3a86ac43ff3137a704707e513dfd6df61ad19017 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Sun, 7 Aug 2022 21:22:01 +0000 Subject: [PATCH 1/3] Moved InitMailRender. --- routers/init.go | 2 ++ routers/web/web.go | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/routers/init.go b/routers/init.go index e640ca48453b..bada06d8e0e2 100644 --- a/routers/init.go +++ b/routers/init.go @@ -27,6 +27,7 @@ import ( "code.gitea.io/gitea/modules/ssh" "code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/svg" + "code.gitea.io/gitea/modules/templates" "code.gitea.io/gitea/modules/translation" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" @@ -118,6 +119,7 @@ func GlobalInitInstalled(ctx context.Context) { mustInit(storage.Init) mailer.NewContext() + mailer.InitMailRender(templates.Mailer()) mustInit(cache.NewContext) notification.NewContext() mustInit(archiver.Init) diff --git a/routers/web/web.go b/routers/web/web.go index a9f43fb2c4fe..34d3de6fde0a 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -22,7 +22,6 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/structs" - "code.gitea.io/gitea/modules/templates" "code.gitea.io/gitea/modules/validation" "code.gitea.io/gitea/modules/web" "code.gitea.io/gitea/modules/web/routing" @@ -43,7 +42,6 @@ import ( context_service "code.gitea.io/gitea/services/context" "code.gitea.io/gitea/services/forms" "code.gitea.io/gitea/services/lfs" - "code.gitea.io/gitea/services/mailer" _ "code.gitea.io/gitea/modules/session" // to registers all internal adapters @@ -152,8 +150,6 @@ func Routes() *web.Route { common = append(common, h) } - mailer.InitMailRender(templates.Mailer()) - if setting.Service.EnableCaptcha { // The captcha http.Handler should only fire on /captcha/* so we can just mount this on that url routes.Route("/captcha/*", "GET,HEAD", append(common, captcha.Captchaer(context.GetImageCaptcha()))...) From f52b75ae6b7c72f6af7c93db560741dab761ca65 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Mon, 8 Aug 2022 07:03:00 +0100 Subject: [PATCH 2/3] Init mail templates in NewContext. --- routers/init.go | 2 -- services/mailer/mail.go | 6 ------ services/mailer/mailer.go | 3 +++ 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/routers/init.go b/routers/init.go index bada06d8e0e2..e640ca48453b 100644 --- a/routers/init.go +++ b/routers/init.go @@ -27,7 +27,6 @@ import ( "code.gitea.io/gitea/modules/ssh" "code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/svg" - "code.gitea.io/gitea/modules/templates" "code.gitea.io/gitea/modules/translation" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" @@ -119,7 +118,6 @@ func GlobalInitInstalled(ctx context.Context) { mustInit(storage.Init) mailer.NewContext() - mailer.InitMailRender(templates.Mailer()) mustInit(cache.NewContext) notification.NewContext() mustInit(archiver.Init) diff --git a/services/mailer/mail.go b/services/mailer/mail.go index b8d79bd818a0..738a207ce8d0 100644 --- a/services/mailer/mail.go +++ b/services/mailer/mail.go @@ -55,12 +55,6 @@ var ( subjectRemoveSpaces = regexp.MustCompile(`[\s]+`) ) -// InitMailRender initializes the mail renderer -func InitMailRender(subjectTpl *texttmpl.Template, bodyTpl *template.Template) { - subjectTemplates = subjectTpl - bodyTemplates = bodyTpl -} - // SendTestMail sends a test mail func SendTestMail(email string) error { if setting.MailService == nil { diff --git a/services/mailer/mailer.go b/services/mailer/mailer.go index c86c54c748c5..fdbb6e562bfc 100644 --- a/services/mailer/mailer.go +++ b/services/mailer/mailer.go @@ -24,6 +24,7 @@ import ( "code.gitea.io/gitea/modules/process" "code.gitea.io/gitea/modules/queue" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/templates" "github.com/jaytaylor/html2text" "gopkg.in/gomail.v2" @@ -379,6 +380,8 @@ func NewContext() { }, &Message{}) go graceful.GetManager().RunWithShutdownFns(mailQueue.Run) + + subjectTemplates, bodyTemplates = templates.Mailer() } // SendAsync send mail asynchronously From 604c0efd3b16b924dec3e8781487e806405b6cc3 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Mon, 8 Aug 2022 07:59:38 +0000 Subject: [PATCH 3/3] Fix tests. --- services/mailer/mail_test.go | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/services/mailer/mail_test.go b/services/mailer/mail_test.go index 93837ba8c4ca..604efe37b642 100644 --- a/services/mailer/mail_test.go +++ b/services/mailer/mail_test.go @@ -67,9 +67,8 @@ func prepareMailerTest(t *testing.T) (doer *user_model.User, repo *repo_model.Re func TestComposeIssueCommentMessage(t *testing.T) { doer, _, issue, comment := prepareMailerTest(t) - stpl := texttmpl.Must(texttmpl.New("issue/comment").Parse(subjectTpl)) - btpl := template.Must(template.New("issue/comment").Parse(bodyTpl)) - InitMailRender(stpl, btpl) + subjectTemplates = texttmpl.Must(texttmpl.New("issue/comment").Parse(subjectTpl)) + bodyTemplates = template.Must(template.New("issue/comment").Parse(bodyTpl)) recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}, {Name: "Test2", Email: "test2@gitea.com"}} msgs, err := composeIssueCommentMessages(&mailCommentContext{ @@ -97,9 +96,8 @@ func TestComposeIssueCommentMessage(t *testing.T) { func TestComposeIssueMessage(t *testing.T) { doer, _, issue, _ := prepareMailerTest(t) - stpl := texttmpl.Must(texttmpl.New("issue/new").Parse(subjectTpl)) - btpl := template.Must(template.New("issue/new").Parse(bodyTpl)) - InitMailRender(stpl, btpl) + subjectTemplates = texttmpl.Must(texttmpl.New("issue/new").Parse(subjectTpl)) + bodyTemplates = template.Must(template.New("issue/new").Parse(bodyTpl)) recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}, {Name: "Test2", Email: "test2@gitea.com"}} msgs, err := composeIssueCommentMessages(&mailCommentContext{ @@ -128,17 +126,15 @@ func TestTemplateSelection(t *testing.T) { doer, repo, issue, comment := prepareMailerTest(t) recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}} - stpl := texttmpl.Must(texttmpl.New("issue/default").Parse("issue/default/subject")) - texttmpl.Must(stpl.New("issue/new").Parse("issue/new/subject")) - texttmpl.Must(stpl.New("pull/comment").Parse("pull/comment/subject")) - texttmpl.Must(stpl.New("issue/close").Parse("")) // Must default to fallback subject + subjectTemplates = texttmpl.Must(texttmpl.New("issue/default").Parse("issue/default/subject")) + texttmpl.Must(subjectTemplates.New("issue/new").Parse("issue/new/subject")) + texttmpl.Must(subjectTemplates.New("pull/comment").Parse("pull/comment/subject")) + texttmpl.Must(subjectTemplates.New("issue/close").Parse("")) // Must default to fallback subject - btpl := template.Must(template.New("issue/default").Parse("issue/default/body")) - template.Must(btpl.New("issue/new").Parse("issue/new/body")) - template.Must(btpl.New("pull/comment").Parse("pull/comment/body")) - template.Must(btpl.New("issue/close").Parse("issue/close/body")) - - InitMailRender(stpl, btpl) + bodyTemplates = template.Must(template.New("issue/default").Parse("issue/default/body")) + template.Must(bodyTemplates.New("issue/new").Parse("issue/new/body")) + template.Must(bodyTemplates.New("pull/comment").Parse("pull/comment/body")) + template.Must(bodyTemplates.New("issue/close").Parse("issue/close/body")) expect := func(t *testing.T, msg *Message, expSubject, expBody string) { subject := msg.ToMessage().GetHeader("Subject") @@ -187,9 +183,8 @@ func TestTemplateServices(t *testing.T) { expect := func(t *testing.T, issue *issues_model.Issue, comment *issues_model.Comment, doer *user_model.User, actionType models.ActionType, fromMention bool, tplSubject, tplBody, expSubject, expBody string, ) { - stpl := texttmpl.Must(texttmpl.New("issue/default").Parse(tplSubject)) - btpl := template.Must(template.New("issue/default").Parse(tplBody)) - InitMailRender(stpl, btpl) + subjectTemplates = texttmpl.Must(texttmpl.New("issue/default").Parse(tplSubject)) + bodyTemplates = template.Must(template.New("issue/default").Parse(tplBody)) recipients := []*user_model.User{{Name: "Test", Email: "test@gitea.com"}} msg := testComposeIssueCommentMessage(t, &mailCommentContext{