summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-08 12:41:37 -0400
committerUnknown <joe2010xtmf@163.com>2014-04-08 12:41:37 -0400
commitb5064298036c25b492c9b4547ed5314f928ceaeb (patch)
treed1baffcc17a610e6d72986d643284a055f04aebc /routers
parent115a349131242201953a3f5693141679049355c6 (diff)
parent24d0ca4aa02bd4245cd4c91f71b918c5da1d2e7d (diff)
downloadgitea-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.go33
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("/")
}