summaryrefslogtreecommitdiffstats
path: root/models/user
diff options
context:
space:
mode:
authorJakobDev <jakobdev@gmx.de>2023-09-15 08:13:19 +0200
committerGitHub <noreply@github.com>2023-09-15 06:13:19 +0000
commitc548dde205244a39a26ba98377c0f5cc11da7041 (patch)
treef9d9e1185609703e320ed07fd2ff3f95dbdcc230 /models/user
parentf8a109440655b77e8554e1744e31bf52a7c63df7 (diff)
downloadgitea-c548dde205244a39a26ba98377c0f5cc11da7041.tar.gz
gitea-c548dde205244a39a26ba98377c0f5cc11da7041.zip
More refactoring of `db.DefaultContext` (#27083)
Next step of #27065
Diffstat (limited to 'models/user')
-rw-r--r--models/user/openid.go14
-rw-r--r--models/user/openid_test.go15
-rw-r--r--models/user/setting.go32
-rw-r--r--models/user/setting_test.go19
4 files changed, 41 insertions, 39 deletions
diff --git a/models/user/openid.go b/models/user/openid.go
index 596ff182bc..ee4ecabae0 100644
--- a/models/user/openid.go
+++ b/models/user/openid.go
@@ -28,9 +28,9 @@ func init() {
}
// GetUserOpenIDs returns all openid addresses that belongs to given user.
-func GetUserOpenIDs(uid int64) ([]*UserOpenID, error) {
+func GetUserOpenIDs(ctx context.Context, uid int64) ([]*UserOpenID, error) {
openids := make([]*UserOpenID, 0, 5)
- if err := db.GetEngine(db.DefaultContext).
+ if err := db.GetEngine(ctx).
Where("uid=?", uid).
Asc("id").
Find(&openids); err != nil {
@@ -82,16 +82,16 @@ func AddUserOpenID(ctx context.Context, openid *UserOpenID) error {
}
// DeleteUserOpenID deletes an openid address of given user.
-func DeleteUserOpenID(openid *UserOpenID) (err error) {
+func DeleteUserOpenID(ctx context.Context, openid *UserOpenID) (err error) {
var deleted int64
// ask to check UID
address := UserOpenID{
UID: openid.UID,
}
if openid.ID > 0 {
- deleted, err = db.GetEngine(db.DefaultContext).ID(openid.ID).Delete(&address)
+ deleted, err = db.GetEngine(ctx).ID(openid.ID).Delete(&address)
} else {
- deleted, err = db.GetEngine(db.DefaultContext).
+ deleted, err = db.GetEngine(ctx).
Where("openid=?", openid.URI).
Delete(&address)
}
@@ -105,7 +105,7 @@ func DeleteUserOpenID(openid *UserOpenID) (err error) {
}
// ToggleUserOpenIDVisibility toggles visibility of an openid address of given user.
-func ToggleUserOpenIDVisibility(id int64) (err error) {
- _, err = db.GetEngine(db.DefaultContext).Exec("update `user_open_id` set `show` = not `show` where `id` = ?", id)
+func ToggleUserOpenIDVisibility(ctx context.Context, id int64) (err error) {
+ _, err = db.GetEngine(ctx).Exec("update `user_open_id` set `show` = not `show` where `id` = ?", id)
return err
}
diff --git a/models/user/openid_test.go b/models/user/openid_test.go
index 6f0eae55e7..27e6edd1e0 100644
--- a/models/user/openid_test.go
+++ b/models/user/openid_test.go
@@ -6,6 +6,7 @@ package user_test
import (
"testing"
+ "code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
@@ -15,7 +16,7 @@ import (
func TestGetUserOpenIDs(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
- oids, err := user_model.GetUserOpenIDs(int64(1))
+ oids, err := user_model.GetUserOpenIDs(db.DefaultContext, int64(1))
if assert.NoError(t, err) && assert.Len(t, oids, 2) {
assert.Equal(t, "https://user1.domain1.tld/", oids[0].URI)
assert.False(t, oids[0].Show)
@@ -23,7 +24,7 @@ func TestGetUserOpenIDs(t *testing.T) {
assert.True(t, oids[1].Show)
}
- oids, err = user_model.GetUserOpenIDs(int64(2))
+ oids, err = user_model.GetUserOpenIDs(db.DefaultContext, int64(2))
if assert.NoError(t, err) && assert.Len(t, oids, 1) {
assert.Equal(t, "https://domain1.tld/user2/", oids[0].URI)
assert.True(t, oids[0].Show)
@@ -32,28 +33,28 @@ func TestGetUserOpenIDs(t *testing.T) {
func TestToggleUserOpenIDVisibility(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
- oids, err := user_model.GetUserOpenIDs(int64(2))
+ oids, err := user_model.GetUserOpenIDs(db.DefaultContext, int64(2))
if !assert.NoError(t, err) || !assert.Len(t, oids, 1) {
return
}
assert.True(t, oids[0].Show)
- err = user_model.ToggleUserOpenIDVisibility(oids[0].ID)
+ err = user_model.ToggleUserOpenIDVisibility(db.DefaultContext, oids[0].ID)
if !assert.NoError(t, err) {
return
}
- oids, err = user_model.GetUserOpenIDs(int64(2))
+ oids, err = user_model.GetUserOpenIDs(db.DefaultContext, int64(2))
if !assert.NoError(t, err) || !assert.Len(t, oids, 1) {
return
}
assert.False(t, oids[0].Show)
- err = user_model.ToggleUserOpenIDVisibility(oids[0].ID)
+ err = user_model.ToggleUserOpenIDVisibility(db.DefaultContext, oids[0].ID)
if !assert.NoError(t, err) {
return
}
- oids, err = user_model.GetUserOpenIDs(int64(2))
+ oids, err = user_model.GetUserOpenIDs(db.DefaultContext, int64(2))
if !assert.NoError(t, err) {
return
}
diff --git a/models/user/setting.go b/models/user/setting.go
index a41e494db9..b4af0e5ccd 100644
--- a/models/user/setting.go
+++ b/models/user/setting.go
@@ -59,9 +59,9 @@ func genSettingCacheKey(userID int64, key string) string {
}
// GetSetting returns the setting value via the key
-func GetSetting(uid int64, key string) (string, error) {
+func GetSetting(ctx context.Context, uid int64, key string) (string, error) {
return cache.GetString(genSettingCacheKey(uid, key), func() (string, error) {
- res, err := GetSettingNoCache(uid, key)
+ res, err := GetSettingNoCache(ctx, uid, key)
if err != nil {
return "", err
}
@@ -70,8 +70,8 @@ func GetSetting(uid int64, key string) (string, error) {
}
// GetSettingNoCache returns specific setting without using the cache
-func GetSettingNoCache(uid int64, key string) (*Setting, error) {
- v, err := GetSettings(uid, []string{key})
+func GetSettingNoCache(ctx context.Context, uid int64, key string) (*Setting, error) {
+ v, err := GetSettings(ctx, uid, []string{key})
if err != nil {
return nil, err
}
@@ -82,9 +82,9 @@ func GetSettingNoCache(uid int64, key string) (*Setting, error) {
}
// GetSettings returns specific settings from user
-func GetSettings(uid int64, keys []string) (map[string]*Setting, error) {
+func GetSettings(ctx context.Context, uid int64, keys []string) (map[string]*Setting, error) {
settings := make([]*Setting, 0, len(keys))
- if err := db.GetEngine(db.DefaultContext).
+ if err := db.GetEngine(ctx).
Where("user_id=?", uid).
And(builder.In("setting_key", keys)).
Find(&settings); err != nil {
@@ -98,9 +98,9 @@ func GetSettings(uid int64, keys []string) (map[string]*Setting, error) {
}
// GetUserAllSettings returns all settings from user
-func GetUserAllSettings(uid int64) (map[string]*Setting, error) {
+func GetUserAllSettings(ctx context.Context, uid int64) (map[string]*Setting, error) {
settings := make([]*Setting, 0, 5)
- if err := db.GetEngine(db.DefaultContext).
+ if err := db.GetEngine(ctx).
Where("user_id=?", uid).
Find(&settings); err != nil {
return nil, err
@@ -123,13 +123,13 @@ func validateUserSettingKey(key string) error {
}
// GetUserSetting gets a specific setting for a user
-func GetUserSetting(userID int64, key string, def ...string) (string, error) {
+func GetUserSetting(ctx context.Context, userID int64, key string, def ...string) (string, error) {
if err := validateUserSettingKey(key); err != nil {
return "", err
}
setting := &Setting{UserID: userID, SettingKey: key}
- has, err := db.GetEngine(db.DefaultContext).Get(setting)
+ has, err := db.GetEngine(ctx).Get(setting)
if err != nil {
return "", err
}
@@ -143,24 +143,24 @@ func GetUserSetting(userID int64, key string, def ...string) (string, error) {
}
// DeleteUserSetting deletes a specific setting for a user
-func DeleteUserSetting(userID int64, key string) error {
+func DeleteUserSetting(ctx context.Context, userID int64, key string) error {
if err := validateUserSettingKey(key); err != nil {
return err
}
cache.Remove(genSettingCacheKey(userID, key))
- _, err := db.GetEngine(db.DefaultContext).Delete(&Setting{UserID: userID, SettingKey: key})
+ _, err := db.GetEngine(ctx).Delete(&Setting{UserID: userID, SettingKey: key})
return err
}
// SetUserSetting updates a users' setting for a specific key
-func SetUserSetting(userID int64, key, value string) error {
+func SetUserSetting(ctx context.Context, userID int64, key, value string) error {
if err := validateUserSettingKey(key); err != nil {
return err
}
- if err := upsertUserSettingValue(userID, key, value); err != nil {
+ if err := upsertUserSettingValue(ctx, userID, key, value); err != nil {
return err
}
@@ -172,8 +172,8 @@ func SetUserSetting(userID int64, key, value string) error {
return nil
}
-func upsertUserSettingValue(userID int64, key, value string) error {
- return db.WithTx(db.DefaultContext, func(ctx context.Context) error {
+func upsertUserSettingValue(ctx context.Context, userID int64, key, value string) error {
+ return db.WithTx(ctx, func(ctx context.Context) error {
e := db.GetEngine(ctx)
// here we use a general method to do a safe upsert for different databases (and most transaction levels)
diff --git a/models/user/setting_test.go b/models/user/setting_test.go
index d0d612d25d..c56fe93075 100644
--- a/models/user/setting_test.go
+++ b/models/user/setting_test.go
@@ -6,6 +6,7 @@ package user_test
import (
"testing"
+ "code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
@@ -19,41 +20,41 @@ func TestSettings(t *testing.T) {
newSetting := &user_model.Setting{UserID: 99, SettingKey: keyName, SettingValue: "Gitea User Setting Test"}
// create setting
- err := user_model.SetUserSetting(newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
+ err := user_model.SetUserSetting(db.DefaultContext, newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
assert.NoError(t, err)
// test about saving unchanged values
- err = user_model.SetUserSetting(newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
+ err = user_model.SetUserSetting(db.DefaultContext, newSetting.UserID, newSetting.SettingKey, newSetting.SettingValue)
assert.NoError(t, err)
// get specific setting
- settings, err := user_model.GetSettings(99, []string{keyName})
+ settings, err := user_model.GetSettings(db.DefaultContext, 99, []string{keyName})
assert.NoError(t, err)
assert.Len(t, settings, 1)
assert.EqualValues(t, newSetting.SettingValue, settings[keyName].SettingValue)
- settingValue, err := user_model.GetUserSetting(99, keyName)
+ settingValue, err := user_model.GetUserSetting(db.DefaultContext, 99, keyName)
assert.NoError(t, err)
assert.EqualValues(t, newSetting.SettingValue, settingValue)
- settingValue, err = user_model.GetUserSetting(99, "no_such")
+ settingValue, err = user_model.GetUserSetting(db.DefaultContext, 99, "no_such")
assert.NoError(t, err)
assert.EqualValues(t, "", settingValue)
// updated setting
updatedSetting := &user_model.Setting{UserID: 99, SettingKey: keyName, SettingValue: "Updated"}
- err = user_model.SetUserSetting(updatedSetting.UserID, updatedSetting.SettingKey, updatedSetting.SettingValue)
+ err = user_model.SetUserSetting(db.DefaultContext, updatedSetting.UserID, updatedSetting.SettingKey, updatedSetting.SettingValue)
assert.NoError(t, err)
// get all settings
- settings, err = user_model.GetUserAllSettings(99)
+ settings, err = user_model.GetUserAllSettings(db.DefaultContext, 99)
assert.NoError(t, err)
assert.Len(t, settings, 1)
assert.EqualValues(t, updatedSetting.SettingValue, settings[updatedSetting.SettingKey].SettingValue)
// delete setting
- err = user_model.DeleteUserSetting(99, keyName)
+ err = user_model.DeleteUserSetting(db.DefaultContext, 99, keyName)
assert.NoError(t, err)
- settings, err = user_model.GetUserAllSettings(99)
+ settings, err = user_model.GetUserAllSettings(db.DefaultContext, 99)
assert.NoError(t, err)
assert.Len(t, settings, 0)
}