Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/service/user/form/formValidator.go
2017-05-07 06:39:28 -04:00

92 lignes
2,4 Kio
Go

package form
import (
"regexp"
"github.com/ewhal/nyaa/util/log"
)
const EMAIL_REGEX = `(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})`
const USERNAME_REGEX = `(\W)`
func EmailValidation(email string) bool {
exp, err := regexp.Compile(EMAIL_REGEX)
if regexpCompiled := log.CheckError(err); regexpCompiled {
if exp.MatchString(email) {
return true
}
}
return false
}
func ValidateUsername(username string) bool {
exp, err := regexp.Compile(USERNAME_REGEX)
if username == "" {
return false
}
if (len(username) < 3) || (len(username) > 15) {
return false
}
if regexpCompiled := log.CheckError(err); regexpCompiled {
if exp.MatchString(username) {
return false
}
} else {
return false
}
return true
}
// RegistrationForm is used when creating a user.
type RegistrationForm struct {
Username string `form:"registrationUsername" binding:"required"`
Email string `form:"registrationEmail" binding:"required"`
Password string `form:"registrationPassword" binding:"required"`
CaptchaID string `form:"captchaID" binding:"required"`
}
// RegistrationForm is used when creating a user authentication.
type LoginForm struct {
Email string `form:"email" binding:"required"`
Password string `form:"password" binding:"required"`
}
// UserForm is used when updating a user.
type UserForm struct {
Email string `form:"email" binding:"required"`
}
// PasswordForm is used when updating a user password.
type PasswordForm struct {
CurrentPassword string `form:"currentPassword" binding:"required"`
Password string `form:"newPassword" binding:"required"`
}
// SendPasswordResetForm is used when sending a password reset token.
type SendPasswordResetForm struct {
Email string `form:"email" binding:"required"`
}
// PasswordResetForm is used when reseting a password.
type PasswordResetForm struct {
PasswordResetToken string `form:"token" binding:"required"`
Password string `form:"newPassword" binding:"required"`
}
// VerifyEmailForm is used when verifying an email.
type VerifyEmailForm struct {
ActivationToken string `form:"token" binding:"required"`
}
// ActivateForm is used when activating user.
type ActivateForm struct {
Activation bool `form:"activation" binding:"required"`
}
// UserRoleForm is used when adding or removing a role from a user.
type UserRoleForm struct {
UserId int `form:"userId" binding:"required"`
RoleId int `form:"roleId" binding:"required"`
}