From d4565483e67dfd17f723114d5849b2ce6895c077 Mon Sep 17 00:00:00 2001 From: skyblue Date: Wed, 9 Apr 2014 00:26:12 +0800 Subject: add id for oauth2 --- models/oauth2.go | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'models') diff --git a/models/oauth2.go b/models/oauth2.go index a17d4e30fa..10771d6a73 100644 --- a/models/oauth2.go +++ b/models/oauth2.go @@ -1,6 +1,9 @@ package models -import "fmt" +import ( + "errors" + "fmt" +) // OT: Oauth2 Type const ( @@ -9,12 +12,18 @@ const ( OT_TWITTER ) +var ( + ErrOauth2RecordNotExists = errors.New("not exists oauth2 record") + ErrOauth2NotAssociatedWithUser = errors.New("not associated with user") +) + type Oauth2 struct { - Uid int64 `xorm:"pk"` // userId + Id int64 + Uid int64 `xorm:"pk"` // userId + User *User `xorm:"-"` Type int `xorm:"pk unique(oauth)"` // twitter,github,google... Identity string `xorm:"pk unique(oauth)"` // id.. Token string `xorm:"VARCHAR(200) not null"` - //RefreshTime time.Time `xorm:"created"` } func AddOauth2(oa *Oauth2) (err error) { @@ -24,8 +33,8 @@ func AddOauth2(oa *Oauth2) (err error) { return nil } -func GetOauth2User(identity string) (u *User, err error) { - oa := &Oauth2{} +func GetOauth2(identity string) (oa *Oauth2, err error) { + oa = &Oauth2{} oa.Identity = identity exists, err := orm.Get(oa) if err != nil { @@ -35,5 +44,9 @@ func GetOauth2User(identity string) (u *User, err error) { err = fmt.Errorf("not exists oauth2: %s", identity) return } - return GetUserById(oa.Uid) + if oa.Uid == 0 { + return oa, ErrOauth2NotAssociatedWithUser + } + oa.User, err = GetUserById(oa.Uid) + return } -- cgit v1.2.3