mirror of https://github.com/bjdgyc/anylink.git
119 lines
2.6 KiB
Go
119 lines
2.6 KiB
Go
package admin
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"io"
|
|
"net/http"
|
|
"regexp"
|
|
|
|
"github.com/bjdgyc/anylink/base"
|
|
"github.com/bjdgyc/anylink/dbdata"
|
|
)
|
|
|
|
func setOtherGet(data interface{}, w http.ResponseWriter) {
|
|
err := dbdata.SettingGet(data)
|
|
if err != nil && !dbdata.CheckErrNotFound(err) {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
// 不明文输出SMTP的密码
|
|
switch dbdata.StructName(data) {
|
|
case "SettingSmtp":
|
|
data.(*dbdata.SettingSmtp).Password = ""
|
|
}
|
|
RespSucess(w, data)
|
|
}
|
|
|
|
func setOtherEdit(data interface{}, w http.ResponseWriter, r *http.Request) {
|
|
body, err := io.ReadAll(r.Body)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
defer r.Body.Close()
|
|
|
|
err = json.Unmarshal(body, data)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
|
|
// fmt.Println(data)
|
|
switch dbdata.StructName(data) {
|
|
case "SettingSmtp":
|
|
// 密码为空时则不修改
|
|
smtp := &dbdata.SettingSmtp{}
|
|
err := dbdata.SettingGet(smtp)
|
|
if err == nil && data.(*dbdata.SettingSmtp).Password == "" {
|
|
data.(*dbdata.SettingSmtp).Password = smtp.Password
|
|
}
|
|
}
|
|
err = dbdata.SettingSet(data)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
RespSucess(w, data)
|
|
}
|
|
|
|
func SetOtherSmtp(w http.ResponseWriter, r *http.Request) {
|
|
data := &dbdata.SettingSmtp{}
|
|
setOtherGet(data, w)
|
|
}
|
|
|
|
func SetOtherSmtpEdit(w http.ResponseWriter, r *http.Request) {
|
|
data := &dbdata.SettingSmtp{}
|
|
setOtherEdit(data, w, r)
|
|
}
|
|
|
|
func SetOther(w http.ResponseWriter, r *http.Request) {
|
|
data := &dbdata.SettingOther{}
|
|
setOtherGet(data, w)
|
|
}
|
|
|
|
func SetOtherEdit(w http.ResponseWriter, r *http.Request) {
|
|
data := &dbdata.SettingOther{}
|
|
setOtherEdit(data, w, r)
|
|
}
|
|
|
|
func SetOtherAuditLog(w http.ResponseWriter, r *http.Request) {
|
|
data, err := dbdata.SettingGetAuditLog()
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
data.AuditInterval = base.Cfg.AuditInterval
|
|
RespSucess(w, data)
|
|
}
|
|
|
|
func SetOtherAuditLogEdit(w http.ResponseWriter, r *http.Request) {
|
|
body, err := io.ReadAll(r.Body)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
defer r.Body.Close()
|
|
data := &dbdata.SettingAuditLog{}
|
|
err = json.Unmarshal(body, data)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
if data.LifeDay < 0 || data.LifeDay > 365 {
|
|
RespError(w, RespParamErr, errors.New("日志存储时长范围在 0 ~ 365"))
|
|
return
|
|
}
|
|
ok, _ := regexp.Match("^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0][0])$", []byte(data.ClearTime))
|
|
if !ok {
|
|
RespError(w, RespParamErr, errors.New("每天清理时间填写有误"))
|
|
return
|
|
}
|
|
err = dbdata.SettingSet(data)
|
|
if err != nil {
|
|
RespError(w, RespInternalErr, err)
|
|
return
|
|
}
|
|
RespSucess(w, data)
|
|
}
|