浏览代码

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
Eric Uldall 9 年之前
父节点
当前提交
eda442dbf9
共有 3 个文件被更改,包括 28 次插入1 次删除
  1. 1 1
      pkg/api/login_oauth.go
  2. 5 0
      pkg/models/user.go
  3. 22 0
      pkg/services/sqlstore/user.go

+ 1 - 1
pkg/api/login_oauth.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

+ 5 - 0
pkg/models/user.go

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

+ 22 - 0
pkg/services/sqlstore/user.go

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