From de5bb2a224ab2ae9be891de1ee88a7454a07f7e9 Mon Sep 17 00:00:00 2001
From: Earl Warren <contact@earl-warren.org>
Date: Wed, 20 Sep 2023 06:18:10 +0200
Subject: [PATCH] [GITEA] notifies admins on new user registration (squash)
 cosmetic changes

Co-authored-by: delvh <dev.lh@web.de>
(cherry picked from commit 9f1670e040b469ed4346aa2689a75088e4e71c8b)
---
 custom/conf/app.example.ini                      |  4 ++--
 .../administration/config-cheat-sheet.en-us.md   |  1 +
 modules/setting/admin.go                         |  6 +++---
 options/locale/locale_en-US.ini                  |  2 +-
 services/mailer/mail_admin_new_user.go           |  4 ++--
 services/mailer/mail_admin_new_user_test.go      | 16 ++++++++--------
 services/notify/notify.go                        |  2 +-
 services/notify/null.go                          |  1 -
 templates/mail/{ => notify}/admin_new_user.tmpl  |  0
 9 files changed, 18 insertions(+), 18 deletions(-)
 rename templates/mail/{ => notify}/admin_new_user.tmpl (100%)

diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini
index 5f573723b6..d912950bf9 100644
--- a/custom/conf/app.example.ini
+++ b/custom/conf/app.example.ini
@@ -1455,8 +1455,8 @@ LEVEL = Info
 ;;
 ;; Default configuration for email notifications for users (user configurable). Options: enabled, onmention, disabled
 ;DEFAULT_EMAIL_NOTIFICATIONS = enabled
-;; Send email notifications to all instance admins on new user sign-ups. Options: enabled, true, false
-;NOTIFY_NEW_SIGN_UPS = false
+;; Send an email to all admins when a new user signs up to inform the admins about this act. Options: true, false
+;SEND_NOTIFICATION_EMAIL_ON_NEW_USER = false
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/docs/content/administration/config-cheat-sheet.en-us.md b/docs/content/administration/config-cheat-sheet.en-us.md
index aa29f8be4b..120c918ddc 100644
--- a/docs/content/administration/config-cheat-sheet.en-us.md
+++ b/docs/content/administration/config-cheat-sheet.en-us.md
@@ -510,6 +510,7 @@ And the following unique queues:
 
 - `DEFAULT_EMAIL_NOTIFICATIONS`: **enabled**: Default configuration for email notifications for users (user configurable). Options: enabled, onmention, disabled
 - `DISABLE_REGULAR_ORG_CREATION`: **false**: Disallow regular (non-admin) users from creating organizations.
+- `SEND_NOTIFICATION_EMAIL_ON_NEW_USER`: **false**: Send an email to all admins when a new user signs up to inform the admins about this act.
 
 ## Security (`security`)
 
diff --git a/modules/setting/admin.go b/modules/setting/admin.go
index 4e2f343715..d7f0ee827d 100644
--- a/modules/setting/admin.go
+++ b/modules/setting/admin.go
@@ -5,9 +5,9 @@ package setting
 
 // Admin settings
 var Admin struct {
-	DisableRegularOrgCreation bool
-	DefaultEmailNotification  string
-	NotifyNewSignUps          bool
+	DisableRegularOrgCreation      bool
+	DefaultEmailNotification       string
+	SendNotificationEmailOnNewUser bool
 }
 
 func loadAdminFrom(rootCfg ConfigProvider) {
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index c9f8fbe9c3..a07d431a65 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -439,7 +439,7 @@ activate_email = Verify your email address
 activate_email.title = %s, please verify your email address
 activate_email.text = Please click the following link to verify your email address within <b>%s</b>:
 
-admin.new_user.subject = New user %s
+admin.new_user.subject = New user %s just signed up
 admin.new_user.user_info = User Information
 admin.new_user.text = Please <a href="%s">click here</a> to manage the user from the admin panel.
 
diff --git a/services/mailer/mail_admin_new_user.go b/services/mailer/mail_admin_new_user.go
index fbed615b67..47b110412c 100644
--- a/services/mailer/mail_admin_new_user.go
+++ b/services/mailer/mail_admin_new_user.go
@@ -16,14 +16,14 @@ import (
 )
 
 const (
-	tplNewUserMail base.TplName = "admin_new_user"
+	tplNewUserMail base.TplName = "notify/admin_new_user"
 )
 
 var sa = SendAsyncs
 
 // MailNewUser sends notification emails on new user registrations to all admins
 func MailNewUser(ctx context.Context, u *user_model.User) {
-	if !setting.Admin.NotifyNewSignUps {
+	if !setting.Admin.SendNotificationEmailOnNewUser {
 		return
 	}
 
diff --git a/services/mailer/mail_admin_new_user_test.go b/services/mailer/mail_admin_new_user_test.go
index d79566c648..4bb8d6a7a0 100644
--- a/services/mailer/mail_admin_new_user_test.go
+++ b/services/mailer/mail_admin_new_user_test.go
@@ -21,13 +21,13 @@ func getTestUsers() []*user_model.User {
 	admin.Name = "admin"
 	admin.IsAdmin = true
 	admin.Language = "en_US"
-	admin.Email = "admin@forgejo.org"
+	admin.Email = "admin@example.com"
 
 	newUser := new(user_model.User)
 	newUser.Name = "new_user"
 	newUser.Language = "en_US"
 	newUser.IsAdmin = false
-	newUser.Email = "new_user@forgejo.org"
+	newUser.Email = "new_user@example.com"
 	newUser.LastLoginUnix = 1693648327
 	newUser.CreatedUnix = 1693648027
 
@@ -49,7 +49,7 @@ func cleanUpUsers(ctx context.Context, users []*user_model.User) {
 
 func TestAdminNotificationMail_test(t *testing.T) {
 	mailService := setting.Mailer{
-		From:     "test@forgejo.org",
+		From:     "test@example.com",
 		Protocol: "dummy",
 	}
 
@@ -57,8 +57,8 @@ func TestAdminNotificationMail_test(t *testing.T) {
 	setting.Domain = "localhost"
 	setting.AppSubURL = "http://localhost"
 
-	// test with NOTIFY_NEW_SIGNUPS enabled
-	setting.Admin.NotifyNewSignUps = true
+	// test with SEND_NOTIFICATION_EMAIL_ON_NEW_USER enabled
+	setting.Admin.SendNotificationEmailOnNewUser = true
 
 	ctx := context.Background()
 	NewContext(ctx)
@@ -78,10 +78,10 @@ func TestAdminNotificationMail_test(t *testing.T) {
 	}
 	MailNewUser(ctx, users[1])
 
-	// test with NOTIFY_NEW_SIGNUPS disabled; emails shouldn't be sent
-	setting.Admin.NotifyNewSignUps = false
+	// test with SEND_NOTIFICATION_EMAIL_ON_NEW_USER disabled; emails shouldn't be sent
+	setting.Admin.SendNotificationEmailOnNewUser = false
 	sa = func(msgs []*Message) {
-		assert.Equal(t, 1, 0, "this shouldn't execute. MailNewUser must exit early since NOTIFY_NEW_SIGNUPS is disabled")
+		assert.Equal(t, 1, 0, "this shouldn't execute. MailNewUser must exit early since SEND_NOTIFICATION_EMAIL_ON_NEW_USER is disabled")
 	}
 
 	MailNewUser(ctx, users[1])
diff --git a/services/notify/notify.go b/services/notify/notify.go
index 1f7722f703..9cb329d302 100644
--- a/services/notify/notify.go
+++ b/services/notify/notify.go
@@ -347,7 +347,7 @@ func RepoPendingTransfer(ctx context.Context, doer, newOwner *user_model.User, r
 	}
 }
 
-// NewUserSignUp notifies deletion of a package to notifiers
+// NewUserSignUp notifies about a newly signed up user to notifiers
 func NewUserSignUp(ctx context.Context, newUser *user_model.User) {
 	for _, notifier := range notifiers {
 		notifier.NewUserSignUp(ctx, newUser)
diff --git a/services/notify/null.go b/services/notify/null.go
index 847a18d1af..894d118eac 100644
--- a/services/notify/null.go
+++ b/services/notify/null.go
@@ -197,7 +197,6 @@ func (*NullNotifier) SyncDeleteRef(ctx context.Context, doer *user_model.User, r
 func (*NullNotifier) RepoPendingTransfer(ctx context.Context, doer, newOwner *user_model.User, repo *repo_model.Repository) {
 }
 
-// NotifyNewUserSignUp notifies deletion of a package to notifiers
 func (*NullNotifier) NewUserSignUp(ctx context.Context, newUser *user_model.User) {
 }
 
diff --git a/templates/mail/admin_new_user.tmpl b/templates/mail/notify/admin_new_user.tmpl
similarity index 100%
rename from templates/mail/admin_new_user.tmpl
rename to templates/mail/notify/admin_new_user.tmpl