diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/user/external_login_user.go | 38 |
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 } |