From 8aa6b897e2673ecc438548bf606bc45725cf2f99 Mon Sep 17 00:00:00 2001 From: Mihai Parparita Date: Sat, 29 Nov 2014 22:03:33 -0800 Subject: [PATCH] Don't clobber the existing Account instance when signing in as an existing user. --- app/retrogit.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/retrogit.go b/app/retrogit.go index 0787dd3..822c818 100644 --- a/app/retrogit.go +++ b/app/retrogit.go @@ -14,6 +14,7 @@ import ( "time" "appengine" + "appengine/datastore" "appengine/delay" "appengine/mail" "appengine/urlfetch" @@ -310,10 +311,14 @@ func githubOAuthCallbackHandler(w http.ResponseWriter, r *http.Request) *AppErro return GitHubFetchError(err, "user") } - account := &Account{ - GitHubUserId: *user.ID, - OAuthToken: *token, + account, err := getAccount(c, *user.ID) + if err != nil && err != datastore.ErrNoSuchEntity { + return InternalError(err, "Could not look up user") } + if account == nil { + account = &Account{GitHubUserId: *user.ID} + } + account.OAuthToken = *token err = account.Put(c) if err != nil { return InternalError(err, "Could not save user")