added support to login user oauth user by email only (#6330)

* added support to login user oauth user by email only

* added sql handler

* fixed model method name from GetUserByEmail to GetUserByEmailQuery

* fixed variable declaration typo
This commit is contained in:
Eric Uldall 2016-10-19 21:45:10 -07:00 committed by Torkel Ödegaard
parent 9badb051ba
commit eda442dbf9
3 changed files with 28 additions and 1 deletions

View File

@ -130,7 +130,7 @@ func OAuthLogin(ctx *middleware.Context) {
return
}
userQuery := m.GetUserByLoginQuery{LoginOrEmail: userInfo.Email}
userQuery := m.GetUserByEmailQuery{Email: userInfo.Email}
err = bus.Dispatch(&userQuery)
// create account if missing

View File

@ -96,6 +96,11 @@ type GetUserByLoginQuery struct {
Result *User
}
type GetUserByEmailQuery struct {
Email string
Result *User
}
type GetUserByIdQuery struct {
Id int64
Result *User

View File

@ -19,6 +19,7 @@ func init() {
bus.AddHandler("sql", UpdateUser)
bus.AddHandler("sql", ChangeUserPassword)
bus.AddHandler("sql", GetUserByLogin)
bus.AddHandler("sql", GetUserByEmail)
bus.AddHandler("sql", SetUsingOrg)
bus.AddHandler("sql", GetUserProfile)
bus.AddHandler("sql", GetSignedInUser)
@ -193,6 +194,27 @@ func GetUserByLogin(query *m.GetUserByLoginQuery) error {
return nil
}
func GetUserByEmail(query *m.GetUserByEmailQuery) error {
if query.Email == "" {
return m.ErrUserNotFound
}
user := new(m.User)
user = &m.User{Email: query.Email}
has, err := x.Get(user)
if err != nil {
return err
} else if has == false {
return m.ErrUserNotFound
}
query.Result = user
return nil
}
func UpdateUser(cmd *m.UpdateUserCommand) error {
return inTransaction2(func(sess *session) error {