summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/user/external_login_user.go38
1 files changed, 6 insertions, 32 deletions
diff --git a/models/user/external_login_user.go b/models/user/external_login_user.go
index 354dee04a9..8cf7c652b1 100644
--- a/models/user/external_login_user.go
+++ b/models/user/external_login_user.go
@@ -10,9 +10,7 @@ import (
"time"
"code.gitea.io/gitea/models/db"
- "code.gitea.io/gitea/models/login"
- "github.com/markbates/goth"
"xorm.io/builder"
)
@@ -139,42 +137,18 @@ func GetUserIDByExternalUserID(provider, userID string) (int64, error) {
return id, nil
}
-// UpdateExternalUser updates external user's information
-func UpdateExternalUser(user *User, gothUser goth.User) error {
- loginSource, err := login.GetActiveOAuth2LoginSourceByName(gothUser.Provider)
- if err != nil {
- return err
- }
- externalLoginUser := &ExternalLoginUser{
- ExternalID: gothUser.UserID,
- UserID: user.ID,
- LoginSourceID: loginSource.ID,
- RawData: gothUser.RawData,
- Provider: gothUser.Provider,
- Email: gothUser.Email,
- Name: gothUser.Name,
- FirstName: gothUser.FirstName,
- LastName: gothUser.LastName,
- NickName: gothUser.NickName,
- Description: gothUser.Description,
- AvatarURL: gothUser.AvatarURL,
- Location: gothUser.Location,
- AccessToken: gothUser.AccessToken,
- AccessTokenSecret: gothUser.AccessTokenSecret,
- RefreshToken: gothUser.RefreshToken,
- ExpiresAt: gothUser.ExpiresAt,
- }
-
- has, err := db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", gothUser.UserID, loginSource.ID).
+// UpdateExternalUserByExternalID updates an external user's information
+func UpdateExternalUserByExternalID(external *ExternalLoginUser) error {
+ has, err := db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", external.ExternalID, external.LoginSourceID).
NoAutoCondition().
- Exist(externalLoginUser)
+ Exist(external)
if err != nil {
return err
} else if !has {
- return ErrExternalLoginUserNotExist{user.ID, loginSource.ID}
+ return ErrExternalLoginUserNotExist{external.UserID, external.LoginSourceID}
}
- _, err = db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", gothUser.UserID, loginSource.ID).AllCols().Update(externalLoginUser)
+ _, err = db.GetEngine(db.DefaultContext).Where("external_id=? AND login_source_id=?", external.ExternalID, external.LoginSourceID).AllCols().Update(external)
return err
}