function rewritten to use the values from server settings
parent
4893a9fab2
commit
2632665845
|
@ -21,6 +21,8 @@ import (
|
|||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var settings = &serversettings.Settings
|
||||
|
||||
type LoginInput struct {
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email"`
|
||||
|
@ -87,7 +89,7 @@ func NewUser(c *fiber.Ctx) error {
|
|||
|
||||
input.Password = string(decodedPassword)
|
||||
|
||||
if !isValid(input.Username, 3, 30) || !isEmailValid(input.Email) || !isValid(input.Password, 6, 250) {
|
||||
if /*!isValid(input.Username, 3, 30)*/ !isUsernameValid(input.Username) || !isEmailValid(input.Email) || /*!isValid(input.Password, 6, 250)*/ !isPasswordValid(input.Password) {
|
||||
return c.SendStatus(fiber.StatusForbidden)
|
||||
}
|
||||
|
||||
|
@ -220,8 +222,8 @@ func isUpper(s string) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func isValid(s string, min int, max int) bool {
|
||||
if len(s) < min || len(s) > max {
|
||||
func isUsernameValid(u string) bool {
|
||||
if len(u) < int(settings.UsernameMinLen) || len(u) > int(settings.UsernameMaxLen) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
@ -230,12 +232,19 @@ func isValid(s string, min int, max int) bool {
|
|||
var emailRegex = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
|
||||
|
||||
func isEmailValid(e string) bool {
|
||||
if len(e) < 3 || len(e) > 255 {
|
||||
if len(e) < int(settings.EmailMinLen) || len(e) > int(settings.EmailMaxLen) {
|
||||
return false
|
||||
}
|
||||
return emailRegex.MatchString(e)
|
||||
}
|
||||
|
||||
func isPasswordValid(p string) bool {
|
||||
if len(p) < int(settings.PasswordMinLen) || len(p) > int(settings.PasswordMaxLen) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func isEmailAvailable(db *gorm.DB, email string) bool {
|
||||
var res string
|
||||
|
||||
|
@ -349,7 +358,8 @@ func Login(c *fiber.Ctx) error {
|
|||
|
||||
log.Println(input)
|
||||
|
||||
if input.Username != "" && !isValid(input.Username, 3, 30) || input.Email != "" && !isEmailValid(input.Email) || input.Username == "" && input.Email == "" || input.Password == "" {
|
||||
if input.Username != "" && /*!isValid(input.Username, 3, 30) */ !isUsernameValid(input.Username) || input.Email != "" && !isEmailValid(input.Email) || input.Username == "" && input.Email == "" || input.Password == "" {
|
||||
log.Info("bad")
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
}
|
||||
|
||||
|
@ -362,31 +372,15 @@ func Login(c *fiber.Ctx) error {
|
|||
|
||||
input.Password = string(decodedPassword)
|
||||
|
||||
/*if input.Username != "" {
|
||||
err = db.QueryRow("SELECT user_id, user_hashtag, password FROM users WHERE username = ?", input.Username).Scan(&userId, &userHashtag, &hashedPassword)
|
||||
} else {
|
||||
err = db.QueryRow("SELECT user_id, user_hashtag, username, password FROM users WHERE email = ?", input.Email).Scan(&userId, &userHashtag, &username, &hashedPassword)
|
||||
} */
|
||||
/*
|
||||
if err != nil {
|
||||
return c.SendStatus(fiber.StatusUnauthorized)
|
||||
} */
|
||||
|
||||
db := database.DB
|
||||
user := structs.User{}
|
||||
|
||||
if input.Username != "" {
|
||||
db.Select("id, hashtag, password").Where("name = ?", input.Username).Find(&user)
|
||||
|
||||
log.Infoln("a", user)
|
||||
} else {
|
||||
db.Select("id, hashtag, name, password").Where("email = ?", input.Email).Find(&user)
|
||||
|
||||
log.Infoln("a", user)
|
||||
}
|
||||
|
||||
log.Infoln("pass", input.Password, user.Password)
|
||||
|
||||
err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(input.Password))
|
||||
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue