From eb13f10121388ebeffc009d0130e73bed74e2884 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Fri, 26 Sep 2025 21:51:26 +0800 Subject: [PATCH] move enable_two_factor, enable_forget_password and forget_password_require_email_verify option to the auth section --- conf/ezbookkeeping.ini | 19 ++++++++++--------- pkg/settings/setting.go | 41 +++++++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/conf/ezbookkeeping.ini b/conf/ezbookkeeping.ini index 65367337..651e8c99 100644 --- a/conf/ezbookkeeping.ini +++ b/conf/ezbookkeeping.ini @@ -269,6 +269,16 @@ max_failures_per_ip_per_minute = 5 # Maximum count of password / token check failures (0 - 4294967295) per user per minute (use the above duplicate checker), default is 5, set to 0 to disable max_failures_per_user_per_minute = 5 +[auth] +# Set to true to enable two-factor authorization +enable_two_factor = true + +# Set to true to allow users to reset password +enable_forget_password = true + +# Set to true to require email must be verified when use forget password +forget_password_require_email_verify = false + [user] # Set to true to allow users to register account by themselves enable_register = true @@ -279,15 +289,6 @@ enable_email_verify = false # Set to true to require email must be verified when login enable_force_email_verify = false -# Set to true to allow users to reset password -enable_forget_password = true - -# Set to true to require email must be verified when use forget password -forget_password_require_email_verify = false - -# Set to true to enable two-factor authorization -enable_two_factor = true - # Set to true to allow users to upload transaction pictures enable_transaction_picture = true diff --git a/pkg/settings/setting.go b/pkg/settings/setting.go index c6bc548a..04c9d7c3 100644 --- a/pkg/settings/setting.go +++ b/pkg/settings/setting.go @@ -349,19 +349,21 @@ type Config struct { MaxFailuresPerIpPerMinute uint32 MaxFailuresPerUserPerMinute uint32 - // User - EnableUserRegister bool - EnableUserVerifyEmail bool - EnableUserForceVerifyEmail bool + // Auth + EnableTwoFactor bool EnableUserForgetPassword bool ForgetPasswordRequireVerifyEmail bool - EnableTwoFactor bool - EnableTransactionPictures bool - MaxTransactionPictureFileSize uint32 - EnableScheduledTransaction bool - AvatarProvider core.UserAvatarProviderType - MaxAvatarFileSize uint32 - DefaultFeatureRestrictions core.UserFeatureRestrictions + + // User + EnableUserRegister bool + EnableUserVerifyEmail bool + EnableUserForceVerifyEmail bool + EnableTransactionPictures bool + MaxTransactionPictureFileSize uint32 + EnableScheduledTransaction bool + AvatarProvider core.UserAvatarProviderType + MaxAvatarFileSize uint32 + DefaultFeatureRestrictions core.UserFeatureRestrictions // Data EnableDataExport bool @@ -499,6 +501,12 @@ func LoadConfiguration(configFilePath string) (*Config, error) { return nil, err } + err = loadAuthConfiguration(config, cfgFile, "auth") + + if err != nil { + return nil, err + } + err = loadUserConfiguration(config, cfgFile, "user") if err != nil { @@ -946,13 +954,18 @@ func loadSecurityConfiguration(config *Config, configFile *ini.File, sectionName return nil } +func loadAuthConfiguration(config *Config, configFile *ini.File, sectionName string) error { + config.EnableTwoFactor = getConfigItemBoolValue(configFile, sectionName, "enable_two_factor", true) + config.EnableUserForgetPassword = getConfigItemBoolValue(configFile, sectionName, "enable_forget_password", false) + config.ForgetPasswordRequireVerifyEmail = getConfigItemBoolValue(configFile, sectionName, "forget_password_require_email_verify", false) + + return nil +} + func loadUserConfiguration(config *Config, configFile *ini.File, sectionName string) error { config.EnableUserRegister = getConfigItemBoolValue(configFile, sectionName, "enable_register", false) config.EnableUserVerifyEmail = getConfigItemBoolValue(configFile, sectionName, "enable_email_verify", false) config.EnableUserForceVerifyEmail = getConfigItemBoolValue(configFile, sectionName, "enable_force_email_verify", false) - config.EnableUserForgetPassword = getConfigItemBoolValue(configFile, sectionName, "enable_forget_password", false) - config.ForgetPasswordRequireVerifyEmail = getConfigItemBoolValue(configFile, sectionName, "forget_password_require_email_verify", false) - config.EnableTwoFactor = getConfigItemBoolValue(configFile, sectionName, "enable_two_factor", true) config.EnableTransactionPictures = getConfigItemBoolValue(configFile, sectionName, "enable_transaction_picture", false) config.MaxTransactionPictureFileSize = getConfigItemUint32Value(configFile, sectionName, "max_transaction_picture_size", defaultTransactionPictureFileMaxSize) config.EnableScheduledTransaction = getConfigItemBoolValue(configFile, sectionName, "enable_scheduled_transaction", false)