feat: able to set whether to enable message persistence and message rendering now
This commit is contained in:
@@ -29,6 +29,8 @@ var GitHubOAuthEnabled = false
|
|||||||
var WeChatAuthEnabled = false
|
var WeChatAuthEnabled = false
|
||||||
var TurnstileCheckEnabled = false
|
var TurnstileCheckEnabled = false
|
||||||
var RegisterEnabled = true
|
var RegisterEnabled = true
|
||||||
|
var MessagePersistenceEnabled = true
|
||||||
|
var MessageRenderEnabled = true
|
||||||
|
|
||||||
var SMTPServer = ""
|
var SMTPServer = ""
|
||||||
var SMTPAccount = ""
|
var SMTPAccount = ""
|
||||||
|
|||||||
+30
-8
@@ -113,14 +113,18 @@ func pushMessageHelper(c *gin.Context, message *model.Message) {
|
|||||||
message.Channel = channel.TypeEmail
|
message.Channel = channel.TypeEmail
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = message.UpdateAndInsert(user.Id)
|
if common.MessagePersistenceEnabled {
|
||||||
message.URL = fmt.Sprintf("%s/message/%s", common.ServerAddress, message.Link)
|
err = message.UpdateAndInsert(user.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": err.Error(),
|
"message": err.Error(),
|
||||||
})
|
})
|
||||||
return
|
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)
|
err = channel.SendMessage(message, &user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -143,7 +147,25 @@ func GetStaticFile(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func RenderMessage(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")
|
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)
|
message, err := model.GetMessageByLink(link)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Status(http.StatusNotFound)
|
c.Status(http.StatusNotFound)
|
||||||
|
|||||||
+14
-12
@@ -14,18 +14,20 @@ func GetStatus(c *gin.Context) {
|
|||||||
"success": true,
|
"success": true,
|
||||||
"message": "",
|
"message": "",
|
||||||
"data": gin.H{
|
"data": gin.H{
|
||||||
"version": common.Version,
|
"version": common.Version,
|
||||||
"start_time": common.StartTime,
|
"start_time": common.StartTime,
|
||||||
"email_verification": common.EmailVerificationEnabled,
|
"email_verification": common.EmailVerificationEnabled,
|
||||||
"github_oauth": common.GitHubOAuthEnabled,
|
"github_oauth": common.GitHubOAuthEnabled,
|
||||||
"github_client_id": common.GitHubClientId,
|
"github_client_id": common.GitHubClientId,
|
||||||
"system_name": common.SystemName,
|
"system_name": common.SystemName,
|
||||||
"footer_html": common.Footer,
|
"footer_html": common.Footer,
|
||||||
"wechat_qrcode": common.WeChatAccountQRCodeImageURL,
|
"wechat_qrcode": common.WeChatAccountQRCodeImageURL,
|
||||||
"wechat_login": common.WeChatAuthEnabled,
|
"wechat_login": common.WeChatAuthEnabled,
|
||||||
"server_address": common.ServerAddress,
|
"server_address": common.ServerAddress,
|
||||||
"turnstile_check": common.TurnstileCheckEnabled,
|
"turnstile_check": common.TurnstileCheckEnabled,
|
||||||
"turnstile_site_key": common.TurnstileSiteKey,
|
"turnstile_site_key": common.TurnstileSiteKey,
|
||||||
|
"message_persistence": common.MessagePersistenceEnabled,
|
||||||
|
"message_render": common.MessageRenderEnabled,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ func InitOptionMap() {
|
|||||||
common.OptionMap["WeChatAuthEnabled"] = strconv.FormatBool(common.WeChatAuthEnabled)
|
common.OptionMap["WeChatAuthEnabled"] = strconv.FormatBool(common.WeChatAuthEnabled)
|
||||||
common.OptionMap["TurnstileCheckEnabled"] = strconv.FormatBool(common.TurnstileCheckEnabled)
|
common.OptionMap["TurnstileCheckEnabled"] = strconv.FormatBool(common.TurnstileCheckEnabled)
|
||||||
common.OptionMap["RegisterEnabled"] = strconv.FormatBool(common.RegisterEnabled)
|
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["SMTPServer"] = ""
|
||||||
common.OptionMap["SMTPAccount"] = ""
|
common.OptionMap["SMTPAccount"] = ""
|
||||||
common.OptionMap["SMTPToken"] = ""
|
common.OptionMap["SMTPToken"] = ""
|
||||||
@@ -103,6 +105,10 @@ func updateOptionMap(key string, value string) {
|
|||||||
common.TurnstileCheckEnabled = boolValue
|
common.TurnstileCheckEnabled = boolValue
|
||||||
case "RegisterEnabled":
|
case "RegisterEnabled":
|
||||||
common.RegisterEnabled = boolValue
|
common.RegisterEnabled = boolValue
|
||||||
|
case "MessagePersistenceEnabled":
|
||||||
|
common.MessagePersistenceEnabled = boolValue
|
||||||
|
case "MessageRenderEnabled":
|
||||||
|
common.MessageRenderEnabled = boolValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch key {
|
switch key {
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ const SystemSetting = () => {
|
|||||||
TurnstileSiteKey: '',
|
TurnstileSiteKey: '',
|
||||||
TurnstileSecretKey: '',
|
TurnstileSecretKey: '',
|
||||||
RegisterEnabled: '',
|
RegisterEnabled: '',
|
||||||
|
MessagePersistenceEnabled: '',
|
||||||
|
MessageRenderEnabled: '',
|
||||||
});
|
});
|
||||||
let originInputs = {};
|
let originInputs = {};
|
||||||
let [loading, setLoading] = useState(false);
|
let [loading, setLoading] = useState(false);
|
||||||
@@ -57,6 +59,8 @@ const SystemSetting = () => {
|
|||||||
case 'WeChatAuthEnabled':
|
case 'WeChatAuthEnabled':
|
||||||
case 'TurnstileCheckEnabled':
|
case 'TurnstileCheckEnabled':
|
||||||
case 'RegisterEnabled':
|
case 'RegisterEnabled':
|
||||||
|
case 'MessagePersistenceEnabled':
|
||||||
|
case 'MessageRenderEnabled':
|
||||||
value = inputs[key] === 'true' ? 'false' : 'true';
|
value = inputs[key] === 'true' ? 'false' : 'true';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -179,6 +183,20 @@ const SystemSetting = () => {
|
|||||||
<Form.Button onClick={submitServerAddress}>
|
<Form.Button onClick={submitServerAddress}>
|
||||||
更新服务器地址
|
更新服务器地址
|
||||||
</Form.Button>
|
</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 />
|
<Divider />
|
||||||
<Header as='h3'>配置登录注册</Header>
|
<Header as='h3'>配置登录注册</Header>
|
||||||
<Form.Group inline>
|
<Form.Group inline>
|
||||||
|
|||||||
Reference in New Issue
Block a user