summaryrefslogtreecommitdiffstats
path: root/routers/user
diff options
context:
space:
mode:
authorskyblue <ssx205@gmail.com>2014-04-09 00:26:12 +0800
committerskyblue <ssx205@gmail.com>2014-04-09 00:26:12 +0800
commitd4565483e67dfd17f723114d5849b2ce6895c077 (patch)
treeef81132a3560ce7b64bb6928ce237c42324b4bf5 /routers/user
parent22feddf804c7fbf3418cbbc8e7302da271da4e5a (diff)
downloadgitea-d4565483e67dfd17f723114d5849b2ce6895c077.tar.gz
gitea-d4565483e67dfd17f723114d5849b2ce6895c077.zip
add id for oauth2
Diffstat (limited to 'routers/user')
-rw-r--r--routers/user/social.go30
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("/")
}