diff options
author | skyblue <ssx205@gmail.com> | 2014-04-09 00:26:12 +0800 |
---|---|---|
committer | skyblue <ssx205@gmail.com> | 2014-04-09 00:26:12 +0800 |
commit | d4565483e67dfd17f723114d5849b2ce6895c077 (patch) | |
tree | ef81132a3560ce7b64bb6928ce237c42324b4bf5 /routers/user | |
parent | 22feddf804c7fbf3418cbbc8e7302da271da4e5a (diff) | |
download | gitea-d4565483e67dfd17f723114d5849b2ce6895c077.tar.gz gitea-d4565483e67dfd17f723114d5849b2ce6895c077.zip |
add id for oauth2
Diffstat (limited to 'routers/user')
-rw-r--r-- | routers/user/social.go | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/routers/user/social.go b/routers/user/social.go index 08cfcd83f2..b47a4c1cef 100644 --- a/routers/user/social.go +++ b/routers/user/social.go @@ -11,7 +11,6 @@ import ( "code.google.com/p/goauth2/oauth" "github.com/gogits/gogs/models" - "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/middleware" "github.com/gogits/gogs/modules/oauth2" @@ -85,7 +84,6 @@ func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) { return } var err error - var u *models.User if err = gh.Update(); err != nil { // FIXME: handle error page log.Error("connect with github error: %s", err) @@ -93,20 +91,14 @@ func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) { } var soc SocialConnector = gh log.Info("login: %s", soc.Name()) - // FIXME: login here, user email to check auth, if not registe, then generate a uniq username - if u, err = models.GetOauth2User(soc.Identity()); err != nil { - u = &models.User{ - Name: soc.Name(), - Email: soc.Email(), - Passwd: "123456", - IsActive: !base.Service.RegisterEmailConfirm, - } - if u, err = models.RegisterUser(u); err != nil { - log.Error("register user: %v", err) - return - } - oa := &models.Oauth2{} - oa.Uid = u.Id + oa, err := models.GetOauth2(soc.Identity()) + switch err { + case nil: + ctx.Session.Set("userId", oa.User.Id) + ctx.Session.Set("userName", oa.User.Name) + case models.ErrOauth2RecordNotExists: + oa = &models.Oauth2{} + oa.Uid = 0 oa.Type = soc.Type() oa.Token = soc.Token() oa.Identity = soc.Identity() @@ -115,8 +107,10 @@ func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) { log.Error("add oauth2 %v", err) return } + case models.ErrOauth2NotAssociatedWithUser: + // pass } - ctx.Session.Set("userId", u.Id) - ctx.Session.Set("userName", u.Name) + ctx.Session.Set("socialId", oa.Id) + log.Info("socialId: %v", oa.Id) ctx.Redirect("/") } |