feat: able to set whether to enable message persistence and message rendering now

This commit is contained in:
JustSong
2022-12-22 18:32:10 +08:00
parent d26e578762
commit 6ed173affa
5 changed files with 70 additions and 20 deletions
+2
View File
@@ -29,6 +29,8 @@ var GitHubOAuthEnabled = false
var WeChatAuthEnabled = false
var TurnstileCheckEnabled = false
var RegisterEnabled = true
var MessagePersistenceEnabled = true
var MessageRenderEnabled = true
var SMTPServer = ""
var SMTPAccount = ""
+30 -8
View File
@@ -113,14 +113,18 @@ func pushMessageHelper(c *gin.Context, message *model.Message) {
message.Channel = channel.TypeEmail
}
}
err = message.UpdateAndInsert(user.Id)
message.URL = fmt.Sprintf("%s/message/%s", common.ServerAddress, message.Link)
if err != nil {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": err.Error(),
})
return
if common.MessagePersistenceEnabled {
err = message.UpdateAndInsert(user.Id)
if err != nil {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": err.Error(),
})
return
}
message.URL = fmt.Sprintf("%s/message/%s", common.ServerAddress, message.Link)
} else {
message.URL = fmt.Sprintf("%s/message/unsaved", common.ServerAddress)
}
err = channel.SendMessage(message, &user)
if err != nil {
@@ -143,7 +147,25 @@ func GetStaticFile(c *gin.Context) {
}
func RenderMessage(c *gin.Context) {
if !common.MessageRenderEnabled {
c.HTML(http.StatusOK, "message.html", gin.H{
"title": "无法渲染",
"time": time.Now().Format("2006-01-02 15:04:05"),
"description": "超级管理员禁用了消息渲染",
"content": "很抱歉,您所使用的消息推送服务的管理员禁用了消息渲染功能,因此您的消息无法渲染。",
})
return
}
link := c.Param("link")
if link == "unsaved" {
c.HTML(http.StatusOK, "message.html", gin.H{
"title": "无法渲染",
"time": time.Now().Format("2006-01-02 15:04:05"),
"description": "超级管理员禁用了消息持久化",
"content": "很抱歉,您所使用的消息推送服务的管理员禁用了消息持久化功能,您的消息并没有存储到数据库中,因此无法渲染。",
})
return
}
message, err := model.GetMessageByLink(link)
if err != nil {
c.Status(http.StatusNotFound)
+14 -12
View File
@@ -14,18 +14,20 @@ func GetStatus(c *gin.Context) {
"success": true,
"message": "",
"data": gin.H{
"version": common.Version,
"start_time": common.StartTime,
"email_verification": common.EmailVerificationEnabled,
"github_oauth": common.GitHubOAuthEnabled,
"github_client_id": common.GitHubClientId,
"system_name": common.SystemName,
"footer_html": common.Footer,
"wechat_qrcode": common.WeChatAccountQRCodeImageURL,
"wechat_login": common.WeChatAuthEnabled,
"server_address": common.ServerAddress,
"turnstile_check": common.TurnstileCheckEnabled,
"turnstile_site_key": common.TurnstileSiteKey,
"version": common.Version,
"start_time": common.StartTime,
"email_verification": common.EmailVerificationEnabled,
"github_oauth": common.GitHubOAuthEnabled,
"github_client_id": common.GitHubClientId,
"system_name": common.SystemName,
"footer_html": common.Footer,
"wechat_qrcode": common.WeChatAccountQRCodeImageURL,
"wechat_login": common.WeChatAuthEnabled,
"server_address": common.ServerAddress,
"turnstile_check": common.TurnstileCheckEnabled,
"turnstile_site_key": common.TurnstileSiteKey,
"message_persistence": common.MessagePersistenceEnabled,
"message_render": common.MessageRenderEnabled,
},
})
return
+6
View File
@@ -32,6 +32,8 @@ func InitOptionMap() {
common.OptionMap["WeChatAuthEnabled"] = strconv.FormatBool(common.WeChatAuthEnabled)
common.OptionMap["TurnstileCheckEnabled"] = strconv.FormatBool(common.TurnstileCheckEnabled)
common.OptionMap["RegisterEnabled"] = strconv.FormatBool(common.RegisterEnabled)
common.OptionMap["MessagePersistenceEnabled"] = strconv.FormatBool(common.MessagePersistenceEnabled)
common.OptionMap["MessageRenderEnabled"] = strconv.FormatBool(common.MessageRenderEnabled)
common.OptionMap["SMTPServer"] = ""
common.OptionMap["SMTPAccount"] = ""
common.OptionMap["SMTPToken"] = ""
@@ -103,6 +105,10 @@ func updateOptionMap(key string, value string) {
common.TurnstileCheckEnabled = boolValue
case "RegisterEnabled":
common.RegisterEnabled = boolValue
case "MessagePersistenceEnabled":
common.MessagePersistenceEnabled = boolValue
case "MessageRenderEnabled":
common.MessageRenderEnabled = boolValue
}
}
switch key {
+18
View File
@@ -24,6 +24,8 @@ const SystemSetting = () => {
TurnstileSiteKey: '',
TurnstileSecretKey: '',
RegisterEnabled: '',
MessagePersistenceEnabled: '',
MessageRenderEnabled: '',
});
let originInputs = {};
let [loading, setLoading] = useState(false);
@@ -57,6 +59,8 @@ const SystemSetting = () => {
case 'WeChatAuthEnabled':
case 'TurnstileCheckEnabled':
case 'RegisterEnabled':
case 'MessagePersistenceEnabled':
case 'MessageRenderEnabled':
value = inputs[key] === 'true' ? 'false' : 'true';
break;
default:
@@ -179,6 +183,20 @@ const SystemSetting = () => {
<Form.Button onClick={submitServerAddress}>
更新服务器地址
</Form.Button>
<Form.Group inline>
<Form.Checkbox
checked={inputs.MessagePersistenceEnabled === 'true'}
label='保存消息到数据库(此项为否时,用户推送的消息将不会保存到数据库)'
name='MessagePersistenceEnabled'
onChange={handleInputChange}
/>
<Form.Checkbox
checked={inputs.MessageRenderEnabled === 'true'}
label='允许消息渲染(此项为否时,将禁用消息渲染)'
name='MessageRenderEnabled'
onChange={handleInputChange}
/>
</Form.Group>
<Divider />
<Header as='h3'>配置登录注册</Header>
<Form.Group inline>