diff options
author | zeripath <art27@cantab.net> | 2021-08-12 08:26:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-12 10:26:33 +0300 |
commit | 162c32af7ec9cc434895079cfc7bfc683feb4d4c (patch) | |
tree | 5110a77931917910e4a92b92705a185891a0ff83 /services/auth/source | |
parent | e29e1637370ad95e4ca9f861c25d366b74829dcc (diff) | |
download | gitea-162c32af7ec9cc434895079cfc7bfc683feb4d4c.tar.gz gitea-162c32af7ec9cc434895079cfc7bfc683feb4d4c.zip |
Send registration email on user autoregistration (#16523)
When users login and are autoregistered send email notification.
Fix #16178
* Protect public functions within the mailer by testing if the mailer is configured
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'services/auth/source')
-rw-r--r-- | services/auth/source/ldap/source_authenticate.go | 8 | ||||
-rw-r--r-- | services/auth/source/pam/source_authenticate.go | 10 | ||||
-rw-r--r-- | services/auth/source/smtp/source_authenticate.go | 10 |
3 files changed, 25 insertions, 3 deletions
diff --git a/services/auth/source/ldap/source_authenticate.go b/services/auth/source/ldap/source_authenticate.go index 1d5e69539b..ecc95fbd56 100644 --- a/services/auth/source/ldap/source_authenticate.go +++ b/services/auth/source/ldap/source_authenticate.go @@ -9,6 +9,7 @@ import ( "strings" "code.gitea.io/gitea/models" + "code.gitea.io/gitea/services/mailer" ) // Authenticate queries if login/password is valid against the LDAP directory pool, @@ -84,8 +85,13 @@ func (source *Source) Authenticate(user *models.User, login, password string) (* } err := models.CreateUser(user) + if err != nil { + return user, err + } + + mailer.SendRegisterNotifyMail(user) - if err == nil && isAttributeSSHPublicKeySet && models.AddPublicKeysBySource(user, source.loginSource, sr.SSHPublicKey) { + if isAttributeSSHPublicKeySet && models.AddPublicKeysBySource(user, source.loginSource, sr.SSHPublicKey) { err = models.RewriteAllPublicKeys() } diff --git a/services/auth/source/pam/source_authenticate.go b/services/auth/source/pam/source_authenticate.go index 6ca0642904..8241aed725 100644 --- a/services/auth/source/pam/source_authenticate.go +++ b/services/auth/source/pam/source_authenticate.go @@ -11,6 +11,7 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/auth/pam" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/services/mailer" "github.com/google/uuid" ) @@ -58,5 +59,12 @@ func (source *Source) Authenticate(user *models.User, login, password string) (* LoginName: login, // This is what the user typed in IsActive: true, } - return user, models.CreateUser(user) + + if err := models.CreateUser(user); err != nil { + return user, err + } + + mailer.SendRegisterNotifyMail(user) + + return user, nil } diff --git a/services/auth/source/smtp/source_authenticate.go b/services/auth/source/smtp/source_authenticate.go index e3dcd83222..cff64c69d2 100644 --- a/services/auth/source/smtp/source_authenticate.go +++ b/services/auth/source/smtp/source_authenticate.go @@ -12,6 +12,7 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/util" + "code.gitea.io/gitea/services/mailer" ) // Authenticate queries if the provided login/password is authenticates against the SMTP server @@ -74,5 +75,12 @@ func (source *Source) Authenticate(user *models.User, login, password string) (* LoginName: login, IsActive: true, } - return user, models.CreateUser(user) + + if err := models.CreateUser(user); err != nil { + return user, err + } + + mailer.SendRegisterNotifyMail(user) + + return user, nil } |