function rewritten to use the values from server settings

master
Alex 2021-06-06 20:22:11 +02:00
parent 4893a9fab2
commit 2632665845
1 changed files with 15 additions and 21 deletions

View File

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