aboutsummaryrefslogtreecommitdiff
path: root/internal/route
diff options
context:
space:
mode:
authorᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-02-25 00:35:35 +0800
committerGitHub <noreply@github.com>2020-02-25 00:35:35 +0800
commit52ffb67b33c1823933948c027b6f3605fb42ea7c (patch)
treec93ee7eb2bb1f8417d350f703afc53cf4dd872f8 /internal/route
parent0d6c405ccbde9d20889893168f9f9599118e3f5c (diff)
conf: overhaul email settings (#5940)
Diffstat (limited to 'internal/route')
-rw-r--r--internal/route/admin/admin.go17
-rw-r--r--internal/route/admin/users.go10
-rw-r--r--internal/route/api/v1/admin/user.go8
-rw-r--r--internal/route/install.go16
-rw-r--r--internal/route/repo/setting.go4
-rw-r--r--internal/route/user/auth.go18
-rw-r--r--internal/route/user/setting.go10
7 files changed, 41 insertions, 42 deletions
diff --git a/internal/route/admin/admin.go b/internal/route/admin/admin.go
index f11f0d10..1722c373 100644
--- a/internal/route/admin/admin.go
+++ b/internal/route/admin/admin.go
@@ -17,7 +17,7 @@ import (
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/cron"
"gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/mailer"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/process"
"gogs.io/gogs/internal/tool"
)
@@ -180,12 +180,12 @@ func Dashboard(c *context.Context) {
}
func SendTestMail(c *context.Context) {
- email := c.Query("email")
+ emailAddr := c.Query("email")
// Send a test email to the user's email address and redirect back to Config
- if err := mailer.SendTestMail(email); err != nil {
- c.Flash.Error(c.Tr("admin.config.test_mail_failed", email, err))
+ if err := email.SendTestMail(emailAddr); err != nil {
+ c.Flash.Error(c.Tr("admin.config.email.test_mail_failed", emailAddr, err))
} else {
- c.Flash.Info(c.Tr("admin.config.test_mail_sent", email))
+ c.Flash.Info(c.Tr("admin.config.email.test_mail_sent", emailAddr))
}
c.Redirect(conf.Server.Subpath + "/admin/config")
@@ -202,6 +202,7 @@ func Config(c *context.Context) {
c.Data["Repository"] = conf.Repository
c.Data["Database"] = conf.Database
c.Data["Security"] = conf.Security
+ c.Data["Email"] = conf.Email
c.Data["LogRootPath"] = conf.LogRootPath
@@ -210,12 +211,6 @@ func Config(c *context.Context) {
c.Data["Service"] = conf.Service
c.Data["Webhook"] = conf.Webhook
- c.Data["MailerEnabled"] = false
- if conf.MailService != nil {
- c.Data["MailerEnabled"] = true
- c.Data["Mailer"] = conf.MailService
- }
-
c.Data["CacheAdapter"] = conf.CacheAdapter
c.Data["CacheInterval"] = conf.CacheInterval
c.Data["CacheConn"] = conf.CacheConn
diff --git a/internal/route/admin/users.go b/internal/route/admin/users.go
index 8c4e7ab2..8d503573 100644
--- a/internal/route/admin/users.go
+++ b/internal/route/admin/users.go
@@ -13,8 +13,8 @@ import (
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/form"
- "gogs.io/gogs/internal/mailer"
"gogs.io/gogs/internal/route"
)
@@ -53,7 +53,7 @@ func NewUser(c *context.Context) {
}
c.Data["Sources"] = sources
- c.Data["CanSendEmail"] = conf.MailService != nil
+ c.Data["CanSendEmail"] = conf.Email.Enabled
c.HTML(200, USER_NEW)
}
@@ -69,7 +69,7 @@ func NewUserPost(c *context.Context, f form.AdminCrateUser) {
}
c.Data["Sources"] = sources
- c.Data["CanSendEmail"] = conf.MailService != nil
+ c.Data["CanSendEmail"] = conf.Email.Enabled
if c.HasError() {
c.HTML(200, USER_NEW)
@@ -115,8 +115,8 @@ func NewUserPost(c *context.Context, f form.AdminCrateUser) {
log.Trace("Account created by admin (%s): %s", c.User.Name, u.Name)
// Send email notification.
- if f.SendNotify && conf.MailService != nil {
- mailer.SendRegisterNotifyMail(c.Context, db.NewMailerUser(u))
+ if f.SendNotify && conf.Email.Enabled {
+ email.SendRegisterNotifyMail(c.Context, db.NewMailerUser(u))
}
c.Flash.Success(c.Tr("admin.users.new_success", u.Name))
diff --git a/internal/route/api/v1/admin/user.go b/internal/route/api/v1/admin/user.go
index 8a78a991..00b13bfd 100644
--- a/internal/route/api/v1/admin/user.go
+++ b/internal/route/api/v1/admin/user.go
@@ -11,12 +11,12 @@ import (
api "github.com/gogs/go-gogs-client"
+ "gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
"gogs.io/gogs/internal/db/errors"
- "gogs.io/gogs/internal/mailer"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/route/api/v1/user"
- "gogs.io/gogs/internal/conf"
)
func parseLoginSource(c *context.APIContext, u *db.User, sourceID int64, loginName string) {
@@ -68,8 +68,8 @@ func CreateUser(c *context.APIContext, form api.CreateUserOption) {
log.Trace("Account created by admin %q: %s", c.User.Name, u.Name)
// Send email notification.
- if form.SendNotify && conf.MailService != nil {
- mailer.SendRegisterNotifyMail(c.Context.Context, db.NewMailerUser(u))
+ if form.SendNotify && conf.Email.Enabled {
+ email.SendRegisterNotifyMail(c.Context.Context, db.NewMailerUser(u))
}
c.JSON(http.StatusCreated, u.APIFormat())
diff --git a/internal/route/install.go b/internal/route/install.go
index 707c788d..16054e83 100644
--- a/internal/route/install.go
+++ b/internal/route/install.go
@@ -24,8 +24,8 @@ import (
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/cron"
"gogs.io/gogs/internal/db"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/form"
- "gogs.io/gogs/internal/mailer"
"gogs.io/gogs/internal/markup"
"gogs.io/gogs/internal/osutil"
"gogs.io/gogs/internal/ssh"
@@ -63,8 +63,12 @@ func GlobalInit(customConf string) error {
log.Trace("Build time: %s", conf.BuildTime)
log.Trace("Build commit: %s", conf.BuildCommit)
+ if conf.Email.Enabled {
+ log.Trace("Email service is enabled")
+ }
+
conf.NewServices()
- mailer.NewContext()
+ email.NewContext()
if conf.Security.InstallLock {
highlight.NewContext()
@@ -171,10 +175,10 @@ func Install(c *context.Context) {
f.LogRootPath = conf.LogRootPath
// E-mail service settings
- if conf.MailService != nil {
- f.SMTPHost = conf.MailService.Host
- f.SMTPFrom = conf.MailService.From
- f.SMTPUser = conf.MailService.User
+ if conf.Email.Enabled {
+ f.SMTPHost = conf.Email.Host
+ f.SMTPFrom = conf.Email.From
+ f.SMTPUser = conf.Email.User
}
f.RegisterConfirm = conf.Service.RegisterEmailConfirm
f.MailNotify = conf.Service.EnableNotifyMail
diff --git a/internal/route/repo/setting.go b/internal/route/repo/setting.go
index d3cc46bc..e1049cca 100644
--- a/internal/route/repo/setting.go
+++ b/internal/route/repo/setting.go
@@ -19,7 +19,7 @@ import (
"gogs.io/gogs/internal/db"
"gogs.io/gogs/internal/db/errors"
"gogs.io/gogs/internal/form"
- "gogs.io/gogs/internal/mailer"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/tool"
)
@@ -399,7 +399,7 @@ func SettingsCollaborationPost(c *context.Context) {
}
if conf.Service.EnableNotifyMail {
- mailer.SendCollaboratorMail(db.NewMailerUser(u), db.NewMailerUser(c.User), db.NewMailerRepo(c.Repo.Repository))
+ email.SendCollaboratorMail(db.NewMailerUser(u), db.NewMailerUser(c.User), db.NewMailerRepo(c.Repo.Repository))
}
c.Flash.Success(c.Tr("repo.settings.add_collaborator_success"))
diff --git a/internal/route/user/auth.go b/internal/route/user/auth.go
index e069d4df..5a7bd8e4 100644
--- a/internal/route/user/auth.go
+++ b/internal/route/user/auth.go
@@ -15,8 +15,8 @@ import (
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
"gogs.io/gogs/internal/db/errors"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/form"
- "gogs.io/gogs/internal/mailer"
"gogs.io/gogs/internal/tool"
)
@@ -369,7 +369,7 @@ func SignUpPost(c *context.Context, cpt *captcha.Captcha, f form.Register) {
// Send confirmation email, no need for social account.
if conf.Service.RegisterEmailConfirm && u.ID > 1 {
- mailer.SendActivateAccountMail(c.Context, db.NewMailerUser(u))
+ email.SendActivateAccountMail(c.Context, db.NewMailerUser(u))
c.Data["IsSendRegisterMail"] = true
c.Data["Email"] = u.Email
c.Data["Hours"] = conf.Service.ActiveCodeLives / 60
@@ -398,7 +398,7 @@ func Activate(c *context.Context) {
c.Data["ResendLimited"] = true
} else {
c.Data["Hours"] = conf.Service.ActiveCodeLives / 60
- mailer.SendActivateAccountMail(c.Context, db.NewMailerUser(c.User))
+ email.SendActivateAccountMail(c.Context, db.NewMailerUser(c.User))
if err := c.Cache.Put(c.User.MailResendCacheKey(), 1, 180); err != nil {
log.Error("Failed to put cache key 'mail resend': %v", err)
@@ -457,7 +457,7 @@ func ActivateEmail(c *context.Context) {
func ForgotPasswd(c *context.Context) {
c.Title("auth.forgot_password")
- if conf.MailService == nil {
+ if !conf.Email.Enabled {
c.Data["IsResetDisable"] = true
c.Success(FORGOT_PASSWORD)
return
@@ -470,16 +470,16 @@ func ForgotPasswd(c *context.Context) {
func ForgotPasswdPost(c *context.Context) {
c.Title("auth.forgot_password")
- if conf.MailService == nil {
+ if !conf.Email.Enabled {
c.Status(403)
return
}
c.Data["IsResetRequest"] = true
- email := c.Query("email")
- c.Data["Email"] = email
+ emailAddr := c.Query("email")
+ c.Data["Email"] = emailAddr
- u, err := db.GetUserByEmail(email)
+ u, err := db.GetUserByEmail(emailAddr)
if err != nil {
if errors.IsUserNotExist(err) {
c.Data["Hours"] = conf.Service.ActiveCodeLives / 60
@@ -504,7 +504,7 @@ func ForgotPasswdPost(c *context.Context) {
return
}
- mailer.SendResetPasswordMail(c.Context, db.NewMailerUser(u))
+ email.SendResetPasswordMail(c.Context, db.NewMailerUser(u))
if err = c.Cache.Put(u.MailResendCacheKey(), 1, 180); err != nil {
log.Error("Failed to put cache key 'mail resend': %v", err)
}
diff --git a/internal/route/user/setting.go b/internal/route/user/setting.go
index 1ec2db95..064ebf74 100644
--- a/internal/route/user/setting.go
+++ b/internal/route/user/setting.go
@@ -22,8 +22,8 @@ import (
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
"gogs.io/gogs/internal/db/errors"
+ "gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/form"
- "gogs.io/gogs/internal/mailer"
"gogs.io/gogs/internal/tool"
)
@@ -259,12 +259,12 @@ func SettingsEmailPost(c *context.Context, f form.AddEmail) {
return
}
- email := &db.EmailAddress{
+ emailAddr := &db.EmailAddress{
UID: c.User.ID,
Email: f.Email,
IsActivated: !conf.Service.RegisterEmailConfirm,
}
- if err := db.AddEmailAddress(email); err != nil {
+ if err := db.AddEmailAddress(emailAddr); err != nil {
if db.IsErrEmailAlreadyUsed(err) {
c.RenderWithErr(c.Tr("form.email_been_used"), SETTINGS_EMAILS, &f)
} else {
@@ -275,12 +275,12 @@ func SettingsEmailPost(c *context.Context, f form.AddEmail) {
// Send confirmation email
if conf.Service.RegisterEmailConfirm {
- mailer.SendActivateEmailMail(c.Context, db.NewMailerUser(c.User), email.Email)
+ email.SendActivateEmailMail(c.Context, db.NewMailerUser(c.User), emailAddr.Email)
if err := c.Cache.Put("MailResendLimit_"+c.User.LowerName, c.User.LowerName, 180); err != nil {
log.Error("Set cache 'MailResendLimit' failed: %v", err)
}
- c.Flash.Info(c.Tr("settings.add_email_confirmation_sent", email.Email, conf.Service.ActiveCodeLives/60))
+ c.Flash.Info(c.Tr("settings.add_email_confirmation_sent", emailAddr.Email, conf.Service.ActiveCodeLives/60))
} else {
c.Flash.Success(c.Tr("settings.add_email_success"))
}