/
settings.go
49 lines (45 loc) · 1.24 KB
/
settings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* Copyright (c) 2018, 奶爸<1@5.nu>
* All rights reserved.
*/
package router
import (
"github.com/gin-gonic/gin"
"github.com/naiba/nocd"
"github.com/naiba/nocd/utils/ftqq"
"github.com/naiba/nocd/utils/mgin"
"net/http"
)
func serveSettings(r *gin.Engine) {
settings := r.Group("/settings")
settings.Use(mgin.FilterMiddleware(mgin.FilterOption{User: true}))
{
settings.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "settings/index", mgin.CommonData(c, true, gin.H{}))
})
settings.POST("/", saveSetting)
}
}
func saveSetting(c *gin.Context) {
var uf nocd.User
if err := c.Bind(&uf); err != nil {
c.String(http.StatusForbidden, "输入不符合规范:"+err.Error())
return
}
u := c.MustGet(mgin.CtxUser).(*nocd.User)
if u.Sckey != uf.Sckey {
resp := ftqq.SendMessage(uf.Sckey, "[NoCD - "+nocd.Conf.Section("nocd").Key("domain").String()+"]", "Server酱推送绑定成功。")
if resp.Errno != 0 {
nocd.Logger().Errorln(resp.Error)
c.String(http.StatusForbidden, "SCKEY验证失败:"+resp.Errmsg)
return
}
}
u.Sckey = uf.Sckey
u.PushSuccess = uf.PushSuccess
if err := userService.Update(u); err != nil {
nocd.Logger().Errorln(err)
c.String(http.StatusInternalServerError, "数据库错误")
return
}
}