mirror of
https://github.com/casdoor/casdoor.git
synced 2025-09-07 02:20:28 +08:00
feat: support e164 phone number in GetUserByPhone() (#4099)
This commit is contained in:
@@ -510,6 +510,8 @@ func GetUserByPhone(owner string, phone string) (*User, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
phone = util.GetSeperatedPhone(phone)
|
||||
|
||||
user := User{Owner: owner, Phone: phone}
|
||||
existed, err := ormer.Engine.Get(&user)
|
||||
if err != nil {
|
||||
@@ -528,6 +530,8 @@ func GetUserByPhoneOnly(phone string) (*User, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
phone = util.GetSeperatedPhone(phone)
|
||||
|
||||
user := User{Phone: phone}
|
||||
existed, err := ormer.Engine.Get(&user)
|
||||
if err != nil {
|
||||
|
@@ -80,7 +80,8 @@ func GetUserByFields(organization string, field string) (*User, error) {
|
||||
}
|
||||
|
||||
// check phone
|
||||
user, err = GetUserByField(organization, "phone", field)
|
||||
phone := util.GetSeperatedPhone(field)
|
||||
user, err = GetUserByField(organization, "phone", phone)
|
||||
if user != nil || err != nil {
|
||||
return user, err
|
||||
}
|
||||
|
@@ -30,6 +30,7 @@ import (
|
||||
"unicode"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/nyaruka/phonenumbers"
|
||||
)
|
||||
|
||||
func ParseInt(s string) int {
|
||||
@@ -278,6 +279,19 @@ func GetMaskedPhone(phone string) string {
|
||||
return rePhone.ReplaceAllString(phone, "$1****$2")
|
||||
}
|
||||
|
||||
func GetSeperatedPhone(phone string) string {
|
||||
if strings.HasPrefix(phone, "+") {
|
||||
phoneNumberParsed, err := phonenumbers.Parse(phone, "")
|
||||
if err != nil {
|
||||
return phone
|
||||
}
|
||||
|
||||
phone = fmt.Sprintf("%d", phoneNumberParsed.GetNationalNumber())
|
||||
}
|
||||
|
||||
return phone
|
||||
}
|
||||
|
||||
func GetMaskedEmail(email string) string {
|
||||
if email == "" {
|
||||
return ""
|
||||
|
Reference in New Issue
Block a user