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
pull/6333/head
Eric Uldall 9 years ago committed by Torkel Ödegaard
parent 9badb051ba
commit eda442dbf9
  1. 2
      pkg/api/login_oauth.go
  2. 5
      pkg/models/user.go
  3. 22
      pkg/services/sqlstore/user.go

@ -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

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

@ -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 {

Loading…
Cancel
Save