| 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()) | |
| } | |