diff options
author | Unknown <joe2010xtmf@163.com> | 2014-04-08 12:41:37 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-04-08 12:41:37 -0400 |
commit | b5064298036c25b492c9b4547ed5314f928ceaeb (patch) | |
tree | d1baffcc17a610e6d72986d643284a055f04aebc /routers | |
parent | 115a349131242201953a3f5693141679049355c6 (diff) | |
parent | 24d0ca4aa02bd4245cd4c91f71b918c5da1d2e7d (diff) | |
download | gitea-b5064298036c25b492c9b4547ed5314f928ceaeb.tar.gz gitea-b5064298036c25b492c9b4547ed5314f928ceaeb.zip |
Merge branch 'dev' of github.com:gogits/gogs into dev
Diffstat (limited to 'routers')
-rw-r--r-- | routers/user/social.go | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/routers/user/social.go b/routers/user/social.go index 08cfcd83f2..7b4d232987 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,13 @@ func SocialSignIn(ctx *middleware.Context, tokens oauth2.Tokens) { log.Error("add oauth2 %v", err) return } + case models.ErrOauth2NotAssociatedWithUser: + // pass + default: + log.Error(err) // FIXME: handle error page + return } - 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("/") } |