diff options
author | zhsso <zhssoge@gmail.com> | 2014-04-10 14:20:58 -0400 |
---|---|---|
committer | zhsso <zhssoge@gmail.com> | 2014-04-10 14:20:58 -0400 |
commit | a4cbe79567072befd96cf1b7eb319de1e2809ca3 (patch) | |
tree | 3dff34e53f34632532fd7a05e00e6f06b3e7fb82 /models/oauth2.go | |
parent | f3ed11d177d76bcb1850c6670c1516d25a66eb2c (diff) | |
download | gitea-a4cbe79567072befd96cf1b7eb319de1e2809ca3.tar.gz gitea-a4cbe79567072befd96cf1b7eb319de1e2809ca3.zip |
fix
Diffstat (limited to 'models/oauth2.go')
-rw-r--r-- | models/oauth2.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/models/oauth2.go b/models/oauth2.go new file mode 100644 index 0000000000..45728b0d51 --- /dev/null +++ b/models/oauth2.go @@ -0,0 +1,49 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package models + +import "errors" + +// OT: Oauth2 Type +const ( + OT_GITHUB = iota + 1 + OT_GOOGLE + OT_TWITTER +) + +var ( + ErrOauth2RecordNotExists = errors.New("not exists oauth2 record") + ErrOauth2NotAssociatedWithUser = errors.New("not associated with user") +) + +type Oauth2 struct { + Id int64 + Uid int64 // 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"` +} + +func AddOauth2(oa *Oauth2) (err error) { + if _, err = orm.Insert(oa); err != nil { + return err + } + return nil +} + +func GetOauth2(identity string) (oa *Oauth2, err error) { + oa = &Oauth2{Identity: identity} + isExist, err := orm.Get(oa) + if err != nil { + return + } else if !isExist { + return nil, ErrOauth2RecordNotExists + } else if oa.Uid == 0 { + return oa, ErrOauth2NotAssociatedWithUser + } + oa.User, err = GetUserById(oa.Uid) + return oa, err +} |