Fix dashboard ignored system setting cache (#21621)
This is a performance regression from #18058 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Andrew Thornton <art27@cantab.net>release
parent
ce5aafbc69
commit
385462d36c
@ -1,46 +0,0 @@
|
|||||||
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a MIT-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package system
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/system"
|
|
||||||
"code.gitea.io/gitea/modules/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
func genKey(key string) string {
|
|
||||||
return "system.setting." + key
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetSetting returns the setting value via the key
|
|
||||||
func GetSetting(key string) (string, error) {
|
|
||||||
return cache.GetString(genKey(key), func() (string, error) {
|
|
||||||
res, err := system.GetSetting(key)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return res.SettingValue, nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetSettingBool return bool value of setting,
|
|
||||||
// none existing keys and errors are ignored and result in false
|
|
||||||
func GetSettingBool(key string) bool {
|
|
||||||
s, _ := GetSetting(key)
|
|
||||||
b, _ := strconv.ParseBool(s)
|
|
||||||
return b
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetSetting sets the setting value
|
|
||||||
func SetSetting(key, value string, version int) error {
|
|
||||||
cache.Remove(genKey(key))
|
|
||||||
|
|
||||||
return system.SetSetting(&system.Setting{
|
|
||||||
SettingKey: key,
|
|
||||||
SettingValue: value,
|
|
||||||
Version: version,
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a MIT-style
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package system
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/user"
|
|
||||||
"code.gitea.io/gitea/modules/cache"
|
|
||||||
)
|
|
||||||
|
|
||||||
func genUserKey(userID int64, key string) string {
|
|
||||||
return fmt.Sprintf("user_%d.setting.%s", userID, key)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetUserSetting returns the user setting value via the key
|
|
||||||
func GetUserSetting(userID int64, key string) (string, error) {
|
|
||||||
return cache.GetString(genUserKey(userID, key), func() (string, error) {
|
|
||||||
res, err := user.GetSetting(userID, key)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return res.SettingValue, nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetUserSetting sets the user setting value
|
|
||||||
func SetUserSetting(userID int64, key, value string) error {
|
|
||||||
cache.Remove(genUserKey(userID, key))
|
|
||||||
|
|
||||||
return user.SetUserSetting(userID, key, value)
|
|
||||||
}
|
|
Loading…
Reference in New Issue