aboutsummaryrefslogtreecommitdiffstats
path: root/models/user
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-11-24 11:49:41 +0800
committerGitHub <noreply@github.com>2023-11-24 03:49:41 +0000
commitdf1e7d0067bb39913eb681ccc920649884fb1938 (patch)
tree2419feab5c28658adb7f71878df646bdc9bdc50e /models/user
parentd24a8223ce1e47a0c9b103aae07f67c3112ca048 (diff)
downloadgitea-df1e7d0067bb39913eb681ccc920649884fb1938.tar.gz
gitea-df1e7d0067bb39913eb681ccc920649884fb1938.zip
Use db.Find instead of writing methods for every object (#28084)
For those simple objects, it's unnecessary to write the find and count methods again and again.
Diffstat (limited to 'models/user')
-rw-r--r--models/user/external_login_user.go36
1 files changed, 9 insertions, 27 deletions
diff --git a/models/user/external_login_user.go b/models/user/external_login_user.go
index 4121c5d89f..0db702f225 100644
--- a/models/user/external_login_user.go
+++ b/models/user/external_login_user.go
@@ -96,19 +96,6 @@ func GetExternalLogin(ctx context.Context, externalLoginUser *ExternalLoginUser)
return db.GetEngine(ctx).Get(externalLoginUser)
}
-// ListAccountLinks returns a map with the ExternalLoginUser and its LoginSource
-func ListAccountLinks(ctx context.Context, user *User) ([]*ExternalLoginUser, error) {
- externalAccounts := make([]*ExternalLoginUser, 0, 5)
- err := db.GetEngine(ctx).Where("user_id=?", user.ID).
- Desc("login_source_id").
- Find(&externalAccounts)
- if err != nil {
- return nil, err
- }
-
- return externalAccounts, nil
-}
-
// LinkExternalToUser link the external user to the user
func LinkExternalToUser(ctx context.Context, user *User, externalLoginUser *ExternalLoginUser) error {
has, err := db.GetEngine(ctx).Where("external_id=? AND login_source_id=?", externalLoginUser.ExternalID, externalLoginUser.LoginSourceID).
@@ -173,28 +160,23 @@ func UpdateExternalUserByExternalID(ctx context.Context, external *ExternalLogin
// FindExternalUserOptions represents an options to find external users
type FindExternalUserOptions struct {
+ db.ListOptions
Provider string
- Limit int
- Start int
+ UserID int64
+ OrderBy string
}
-func (opts FindExternalUserOptions) toConds() builder.Cond {
+func (opts FindExternalUserOptions) ToConds() builder.Cond {
cond := builder.NewCond()
if len(opts.Provider) > 0 {
cond = cond.And(builder.Eq{"provider": opts.Provider})
}
+ if opts.UserID > 0 {
+ cond = cond.And(builder.Eq{"user_id": opts.UserID})
+ }
return cond
}
-// FindExternalUsersByProvider represents external users via provider
-func FindExternalUsersByProvider(ctx context.Context, opts FindExternalUserOptions) ([]ExternalLoginUser, error) {
- var users []ExternalLoginUser
- err := db.GetEngine(ctx).Where(opts.toConds()).
- Limit(opts.Limit, opts.Start).
- OrderBy("login_source_id ASC, external_id ASC").
- Find(&users)
- if err != nil {
- return nil, err
- }
- return users, nil
+func (opts FindExternalUserOptions) ToOrders() string {
+ return opts.OrderBy
}