add notification when user registers

This commit is contained in:
MaysWind
2024-08-08 22:29:01 +08:00
parent 32155ca63d
commit a4849fa4f0
4 changed files with 32 additions and 5 deletions
+8 -2
View File
@@ -203,12 +203,18 @@ avatar_provider = internal
enable_export = true enable_export = true
[notification] [notification]
# Set to true to display custom notification in home page every time users register
enable_notification_after_register = false
# The notification content displayed each time users register, it supports multi-language configuration
# Add an underscore and a language tag after the setting key to configure the notification content in that language, the same below
# For example, after_login_notification_content_zh_hans means the notification content in Simplified Chinese
after_register_notification_content =
# Set to true to display custom notification in home page every time users login # Set to true to display custom notification in home page every time users login
enable_notification_after_login = false enable_notification_after_login = false
# The notification content displayed each time users log in, it supports multi-language configuration # The notification content displayed each time users log in, it supports multi-language configuration
# Add an underscore and a language tag after the setting key to configure the notification content in that language, the same below
# For example, after_login_notification_content_zh_hans means the notification content in Simplified Chinese
after_login_notification_content = after_login_notification_content =
# Set to true to display custom notification in home page every time users open the app # Set to true to display custom notification in home page every time users open the app
+1 -1
View File
@@ -93,7 +93,7 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (any, *errs.Error) {
AuthResponse: models.AuthResponse{ AuthResponse: models.AuthResponse{
Need2FA: false, Need2FA: false,
User: user.ToUserBasicInfo(), User: user.ToUserBasicInfo(),
NotificationContent: settings.Container.GetAfterLoginNotificationContent(user.Language, c.GetClientLocale()), NotificationContent: settings.Container.GetAfterRegisterNotificationContent(user.Language, c.GetClientLocale()),
}, },
NeedVerifyEmail: settings.Container.Current.EnableUserVerifyEmail && settings.Container.Current.EnableUserForceVerifyEmail, NeedVerifyEmail: settings.Container.Current.EnableUserVerifyEmail && settings.Container.Current.EnableUserForceVerifyEmail,
PresetCategoriesSaved: presetCategoriesSaved, PresetCategoriesSaved: presetCategoriesSaved,
+4 -2
View File
@@ -279,8 +279,9 @@ type Config struct {
EnableDataExport bool EnableDataExport bool
// Notification // Notification
AfterLoginNotification NotificationConfig AfterRegisterNotification NotificationConfig
AfterOpenNotification NotificationConfig AfterLoginNotification NotificationConfig
AfterOpenNotification NotificationConfig
// Map // Map
MapProvider string MapProvider string
@@ -748,6 +749,7 @@ func loadDataConfiguration(config *Config, configFile *ini.File, sectionName str
} }
func loadNotificationConfiguration(config *Config, configFile *ini.File, sectionName string) error { func loadNotificationConfiguration(config *Config, configFile *ini.File, sectionName string) error {
config.AfterRegisterNotification = getNotificationConfiguration(configFile, sectionName, "enable_notification_after_register", "after_register_notification_content")
config.AfterLoginNotification = getNotificationConfiguration(configFile, sectionName, "enable_notification_after_login", "after_login_notification_content") config.AfterLoginNotification = getNotificationConfiguration(configFile, sectionName, "enable_notification_after_login", "after_login_notification_content")
config.AfterOpenNotification = getNotificationConfiguration(configFile, sectionName, "enable_notification_after_open", "after_open_notification_content") config.AfterOpenNotification = getNotificationConfiguration(configFile, sectionName, "enable_notification_after_open", "after_open_notification_content")
+19
View File
@@ -17,6 +17,25 @@ func SetCurrentConfig(config *Config) {
Container.Current = config Container.Current = config
} }
// GetAfterRegisterNotificationContent returns the notification content displayed each time users register
func (c *ConfigContainer) GetAfterRegisterNotificationContent(userLanguage string, clientLanguage string) string {
language := userLanguage
if language == "" {
language = clientLanguage
}
if !c.Current.AfterRegisterNotification.Enabled {
return ""
}
if multiLanguageContent, exists := c.Current.AfterRegisterNotification.MultiLanguageContent[language]; exists {
return multiLanguageContent
}
return c.Current.AfterRegisterNotification.DefaultContent
}
// GetAfterLoginNotificationContent returns the notification content displayed each time users log in // GetAfterLoginNotificationContent returns the notification content displayed each time users log in
func (c *ConfigContainer) GetAfterLoginNotificationContent(userLanguage string, clientLanguage string) string { func (c *ConfigContainer) GetAfterLoginNotificationContent(userLanguage string, clientLanguage string) string {
language := userLanguage language := userLanguage