|
package handles |
|
|
|
import ( |
|
"strconv" |
|
"strings" |
|
|
|
"github.com/alist-org/alist/v3/internal/conf" |
|
"github.com/alist-org/alist/v3/internal/model" |
|
"github.com/alist-org/alist/v3/internal/op" |
|
"github.com/alist-org/alist/v3/internal/setting" |
|
"github.com/alist-org/alist/v3/internal/sign" |
|
"github.com/alist-org/alist/v3/pkg/utils/random" |
|
"github.com/alist-org/alist/v3/server/common" |
|
"github.com/alist-org/alist/v3/server/static" |
|
"github.com/gin-gonic/gin" |
|
) |
|
|
|
func ResetToken(c *gin.Context) { |
|
token := random.Token() |
|
item := model.SettingItem{Key: "token", Value: token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE} |
|
if err := op.SaveSettingItem(&item); err != nil { |
|
common.ErrorResp(c, err, 500) |
|
return |
|
} |
|
sign.Instance() |
|
common.SuccessResp(c, token) |
|
} |
|
|
|
func GetSetting(c *gin.Context) { |
|
key := c.Query("key") |
|
keys := c.Query("keys") |
|
if key != "" { |
|
item, err := op.GetSettingItemByKey(key) |
|
if err != nil { |
|
common.ErrorResp(c, err, 400) |
|
return |
|
} |
|
common.SuccessResp(c, item) |
|
} else { |
|
items, err := op.GetSettingItemInKeys(strings.Split(keys, ",")) |
|
if err != nil { |
|
common.ErrorResp(c, err, 400) |
|
return |
|
} |
|
common.SuccessResp(c, items) |
|
} |
|
} |
|
|
|
func SaveSettings(c *gin.Context) { |
|
var req []model.SettingItem |
|
if err := c.ShouldBind(&req); err != nil { |
|
common.ErrorResp(c, err, 400) |
|
return |
|
} |
|
if err := op.SaveSettingItems(req); err != nil { |
|
common.ErrorResp(c, err, 500) |
|
} else { |
|
if req[0].Group == 10 { |
|
title := setting.GetStr(conf.SiteTitle) |
|
if setting.GetBool(conf.NotifyEnabled) { |
|
go op.Notify(title+"测试通知", "欢迎使用!!!!") |
|
} |
|
} |
|
common.SuccessResp(c) |
|
static.UpdateIndex() |
|
} |
|
} |
|
|
|
func ListSettings(c *gin.Context) { |
|
groupStr := c.Query("group") |
|
groupsStr := c.Query("groups") |
|
var settings []model.SettingItem |
|
var err error |
|
if groupsStr == "" && groupStr == "" { |
|
settings, err = op.GetSettingItems() |
|
} else { |
|
var groupStrings []string |
|
if groupsStr != "" { |
|
groupStrings = strings.Split(groupsStr, ",") |
|
} else { |
|
groupStrings = append(groupStrings, groupStr) |
|
} |
|
var groups []int |
|
for _, str := range groupStrings { |
|
group, err := strconv.Atoi(str) |
|
if err != nil { |
|
common.ErrorResp(c, err, 400) |
|
return |
|
} |
|
groups = append(groups, group) |
|
} |
|
settings, err = op.GetSettingItemsInGroups(groups) |
|
} |
|
if err != nil { |
|
common.ErrorResp(c, err, 400) |
|
return |
|
} |
|
common.SuccessResp(c, settings) |
|
} |
|
|
|
func DeleteSetting(c *gin.Context) { |
|
key := c.Query("key") |
|
if err := op.DeleteSettingItemByKey(key); err != nil { |
|
common.ErrorResp(c, err, 500) |
|
return |
|
} |
|
common.SuccessResp(c) |
|
} |
|
|
|
func PublicSettings(c *gin.Context) { |
|
common.SuccessResp(c, op.GetPublicSettingsMap()) |
|
} |
|
|