Spaces:
Running
Running
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/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 { | |
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()) | |
} | |