| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | // 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 modelsimport (	"errors")// OT: Oauth2 Typeconst (	OT_GITHUB = iota + 1	OT_GOOGLE	OT_TWITTER	OT_QQ)var (	ErrOauth2RecordNotExists       = errors.New("not exists oauth2 record")	ErrOauth2NotAssociatedWithUser = errors.New("not associated with user"))type Oauth2 struct {	Id       int64	Uid      int64  `xorm:"unique(s)"` // userId	User     *User  `xorm:"-"`	Type     int    `xorm:"unique(s) unique(oauth)"` // twitter,github,google...	Identity string `xorm:"unique(s) unique(oauth)"` // id..	Token    string `xorm:"TEXT not null"`}func BindUserOauth2(userId, oauthId int64) error {	_, err := orm.Id(oauthId).Update(&Oauth2{Uid: userId})	return err}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 == -1 {		return oa, ErrOauth2NotAssociatedWithUser	}	oa.User, err = GetUserById(oa.Uid)	return oa, err}func GetOauth2ById(id int64) (oa *Oauth2, err error) {	oa = new(Oauth2)	has, err := orm.Id(id).Get(oa)	if err != nil {		return nil, err	}	if !has {		return nil, ErrOauth2RecordNotExists	}	return oa, nil}
 |