From a215e9db30729e4f042330725b7beedf6d675ca2 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 25 May 2024 12:20:58 +0200 Subject: [PATCH] fix(services): set SendNotificationEmailOnNewUser regression from 767e9634d3d02acab27f05e1783391c9c7f6292e. It changed the parsing of the [admin] section from being derived from the content of each key with mustMapSetting(rootCfg, "admin", &Admin) to explicitly listing all keys in the code. SEND_NOTIFICATION_EMAIL_ON_NEW_USER was not added and therefore ignored. As a consequence notifications of newly registered users were never sent. (cherry picked from commit ff2a3f4e3a39a645be12ac3417a4f86e7d8290b2) Conflict: modules/setting/admin_test.go EXTERNAL_USER_DISABLE_FEATURES does not exist in v7.0 --- modules/setting/admin.go | 1 + modules/setting/admin_test.go | 30 ++++++++++++++++++++++++++++++ release-notes/8.0.0/fix/3904.md | 1 + 3 files changed, 32 insertions(+) create mode 100644 modules/setting/admin_test.go create mode 100644 release-notes/8.0.0/fix/3904.md diff --git a/modules/setting/admin.go b/modules/setting/admin.go index 35ffa9efbf..4c46a69677 100644 --- a/modules/setting/admin.go +++ b/modules/setting/admin.go @@ -17,6 +17,7 @@ func loadAdminFrom(rootCfg ConfigProvider) { sec := rootCfg.Section("admin") Admin.DisableRegularOrgCreation = sec.Key("DISABLE_REGULAR_ORG_CREATION").MustBool(false) Admin.DefaultEmailNotification = sec.Key("DEFAULT_EMAIL_NOTIFICATIONS").MustString("enabled") + Admin.SendNotificationEmailOnNewUser = sec.Key("SEND_NOTIFICATION_EMAIL_ON_NEW_USER").MustBool(false) Admin.UserDisabledFeatures = container.SetOf(sec.Key("USER_DISABLED_FEATURES").Strings(",")...) } diff --git a/modules/setting/admin_test.go b/modules/setting/admin_test.go new file mode 100644 index 0000000000..65dbc8adf4 --- /dev/null +++ b/modules/setting/admin_test.go @@ -0,0 +1,30 @@ +// Copyright The Forgejo Authors. +// SPDX-License-Identifier: MIT + +package setting + +import ( + "testing" + + "code.gitea.io/gitea/modules/container" + + "github.com/stretchr/testify/assert" +) + +func Test_loadAdminFrom(t *testing.T) { + iniStr := ` + [admin] + DISABLE_REGULAR_ORG_CREATION = true + DEFAULT_EMAIL_NOTIFICATIONS = z + SEND_NOTIFICATION_EMAIL_ON_NEW_USER = true + USER_DISABLED_FEATURES = a,b + ` + cfg, err := NewConfigProviderFromData(iniStr) + assert.NoError(t, err) + loadAdminFrom(cfg) + + assert.EqualValues(t, true, Admin.DisableRegularOrgCreation) + assert.EqualValues(t, "z", Admin.DefaultEmailNotification) + assert.EqualValues(t, true, Admin.SendNotificationEmailOnNewUser) + assert.EqualValues(t, container.SetOf("a", "b"), Admin.UserDisabledFeatures) +} diff --git a/release-notes/8.0.0/fix/3904.md b/release-notes/8.0.0/fix/3904.md new file mode 100644 index 0000000000..f1a934081b --- /dev/null +++ b/release-notes/8.0.0/fix/3904.md @@ -0,0 +1 @@ +- a v7.0.0 regression causing `[admin].SEND_NOTIFICATION_EMAIL_ON_NEW_USER=true` to always be ignored.