mirror of https://github.com/go-gitea/gitea
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>pull/21735/head
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