aboutsummaryrefslogtreecommitdiffstats
path: root/models/user
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-01-02 00:06:52 +0800
committerGitHub <noreply@github.com>2023-01-02 00:06:52 +0800
commita1c30740bb04ed55905415dcd195ee9fb97547de (patch)
tree60dd79afebadd9d092b84d790a1cf4678c4619d4 /models/user
parent0f4e1b9ac66b8ffa0083a5a2516e4710393bb0da (diff)
downloadgitea-a1c30740bb04ed55905415dcd195ee9fb97547de.tar.gz
gitea-a1c30740bb04ed55905415dcd195ee9fb97547de.zip
Fix get system setting bug when enabled redis cache (#22295)
Fix #22281 In #21621 , `Get[V]` and `Set[V]` has been introduced, so that cache value will be `*Setting`. For memory cache it's OK. But for redis cache, it can only store `string` for the current implementation. This PR revert some of changes of that and just store or return a `string` for system setting.
Diffstat (limited to 'models/user')
-rw-r--r--models/user/avatar.go4
-rw-r--r--models/user/setting.go10
2 files changed, 6 insertions, 8 deletions
diff --git a/models/user/avatar.go b/models/user/avatar.go
index ce25139b5f..e6ca49efd0 100644
--- a/models/user/avatar.go
+++ b/models/user/avatar.go
@@ -67,9 +67,7 @@ func (u *User) AvatarLinkWithSize(size int) string {
useLocalAvatar := false
autoGenerateAvatar := false
- disableGravatarSetting, _ := system_model.GetSetting(system_model.KeyPictureDisableGravatar)
-
- disableGravatar := disableGravatarSetting.GetValueBool()
+ disableGravatar := system_model.GetSettingBool(system_model.KeyPictureDisableGravatar)
switch {
case u.UseCustomAvatar:
diff --git a/models/user/setting.go b/models/user/setting.go
index a17483f9af..f5cfef5b33 100644
--- a/models/user/setting.go
+++ b/models/user/setting.go
@@ -53,13 +53,13 @@ func genSettingCacheKey(userID int64, key string) string {
}
// GetSetting returns the setting value via the key
-func GetSetting(uid int64, key string) (*Setting, error) {
- return cache.Get(genSettingCacheKey(uid, key), func() (*Setting, error) {
+func GetSetting(uid int64, key string) (string, error) {
+ return cache.GetString(genSettingCacheKey(uid, key), func() (string, error) {
res, err := GetSettingNoCache(uid, key)
if err != nil {
- return nil, err
+ return "", err
}
- return res, nil
+ return res.SettingValue, nil
})
}
@@ -154,7 +154,7 @@ func SetUserSetting(userID int64, key, value string) error {
return err
}
- _, err := cache.Set(genSettingCacheKey(userID, key), func() (string, error) {
+ _, err := cache.GetString(genSettingCacheKey(userID, key), func() (string, error) {
return value, upsertUserSettingValue(userID, key, value)
})