diff --git a/object/check.go b/object/check.go index ef710ff3..92fe16f6 100644 --- a/object/check.go +++ b/object/check.go @@ -56,9 +56,9 @@ func CheckUserSignup(organization string, username string, password string, disp } func CheckUserLogin(organization string, username string, password string) (*User, string) { - user := GetUserByField(organization, "name", username) + user := GetUserByFields(organization, username) if user == nil { - return nil, "username does not exist, please sign up first" + return nil, "the user does not exist, please sign up first" } if user.Password != password { diff --git a/object/user.go b/object/user.go index d7c7b693..cbeb4ecb 100644 --- a/object/user.go +++ b/object/user.go @@ -146,6 +146,28 @@ func HasUserByField(organizationName string, field string, value string) bool { return GetUserByField(organizationName, field, value) != nil } +func GetUserByFields(organization string, field string) *User { + // check username + user := GetUserByField(organization, "name", field) + if user != nil { + return user + } + + // check email + user = GetUserByField(organization, "email", field) + if user != nil { + return user + } + + // check phone + user = GetUserByField(organization, "phone", field) + if user != nil { + return user + } + + return nil +} + func SetUserField(user *User, field string, value string) bool { affected, err := adapter.engine.Table(user).ID(core.PK{user.Owner, user.Name}).Update(map[string]interface{}{field: value}) if err != nil { diff --git a/web/src/auth/LoginPage.js b/web/src/auth/LoginPage.js index a0aee597..5410ca76 100644 --- a/web/src/auth/LoginPage.js +++ b/web/src/auth/LoginPage.js @@ -178,11 +178,11 @@ class LoginPage extends React.Component {