2017-05-07 00:10:40 +02:00
package form
2017-05-06 21:21:39 +02:00
import (
"regexp"
2017-05-07 10:25:09 +02:00
2017-05-06 21:21:39 +02:00
"github.com/ewhal/nyaa/util/log"
)
const EMAIL_REGEX = ` (\w[-._\w]*\w@\w[-._\w]*\w\.\w { 2,3}) `
2017-05-07 05:04:55 +02:00
const USERNAME_REGEX = ` (\W) `
2017-05-06 21:21:39 +02:00
2017-05-07 19:59:38 +02:00
func EmailValidation ( email string , err map [ string ] [ ] string ) ( bool , map [ string ] [ ] string ) {
exp , errorRegex := regexp . Compile ( EMAIL_REGEX )
if regexpCompiled := log . CheckError ( errorRegex ) ; regexpCompiled {
2017-05-06 21:21:39 +02:00
if exp . MatchString ( email ) {
2017-05-07 19:59:38 +02:00
return true , err
2017-05-06 21:21:39 +02:00
}
2017-05-07 20:10:23 +02:00
}
err [ "email" ] = append ( err [ "email" ] , "Email Address is not valid" )
2017-05-07 19:59:38 +02:00
return false , err
2017-05-06 21:21:39 +02:00
}
2017-05-07 19:59:38 +02:00
func ValidateUsername ( username string , err map [ string ] [ ] string ) ( bool , map [ string ] [ ] string ) {
exp , errorRegex := regexp . Compile ( USERNAME_REGEX )
if regexpCompiled := log . CheckError ( errorRegex ) ; regexpCompiled {
2017-05-07 05:04:55 +02:00
if exp . MatchString ( username ) {
2017-05-07 19:59:38 +02:00
err [ "username" ] = append ( err [ "username" ] , "Username contains illegal characters" )
return false , err
2017-05-07 05:04:55 +02:00
}
} else {
2017-05-07 19:59:38 +02:00
return false , err
2017-05-07 05:04:55 +02:00
}
2017-05-07 19:59:38 +02:00
return true , err
}
func NewErrors ( ) map [ string ] [ ] string {
err := make ( map [ string ] [ ] string )
return err
2017-05-07 05:04:55 +02:00
}
2017-05-07 16:08:45 +02:00
func IsAgreed ( t_and_c string ) bool {
if t_and_c == "1" {
return true
}
return false
}
2017-05-06 21:21:39 +02:00
// RegistrationForm is used when creating a user.
type RegistrationForm struct {
2017-05-07 20:21:46 +02:00
Username string ` form:"username" needed:"true" len_min:"3" len_max:"20" `
2017-05-07 19:59:38 +02:00
Email string ` form:"email" needed:"true" `
2017-05-07 20:21:46 +02:00
Password string ` form:"password" needed:"true" len_min:"6" len_max:"25" equalInput:"Confirm_Password" `
2017-05-07 19:59:38 +02:00
Confirm_Password string ` form:"password_confirmation" omit:"true" needed:"true" `
CaptchaID string ` form:"captchaID" omit:"true" needed:"true" `
T_and_C bool ` form:"t_and_c" omit:"true" needed:"true" equal:"true" hum_name:"Terms and Conditions" `
2017-05-06 21:21:39 +02:00
}
// RegistrationForm is used when creating a user authentication.
type LoginForm struct {
2017-05-08 00:21:31 +02:00
Username string ` form:"username" needed="true" `
Password string ` form:"password" needed="true" `
2017-05-06 21:21:39 +02:00
}
// UserForm is used when updating a user.
type UserForm struct {
2017-05-07 14:53:01 +02:00
Email string ` form:"email" `
2017-05-06 21:21:39 +02:00
}
// PasswordForm is used when updating a user password.
type PasswordForm struct {
2017-05-07 14:53:01 +02:00
CurrentPassword string ` form:"currentPassword" `
Password string ` form:"newPassword" `
2017-05-06 21:21:39 +02:00
}
// SendPasswordResetForm is used when sending a password reset token.
type SendPasswordResetForm struct {
2017-05-07 14:53:01 +02:00
Email string ` form:"email" `
2017-05-06 21:21:39 +02:00
}
// PasswordResetForm is used when reseting a password.
type PasswordResetForm struct {
2017-05-07 14:53:01 +02:00
PasswordResetToken string ` form:"token" `
Password string ` form:"newPassword" `
2017-05-06 21:21:39 +02:00
}
// VerifyEmailForm is used when verifying an email.
type VerifyEmailForm struct {
2017-05-07 14:53:01 +02:00
ActivationToken string ` form:"token" `
2017-05-06 21:21:39 +02:00
}
// ActivateForm is used when activating user.
type ActivateForm struct {
2017-05-07 14:53:01 +02:00
Activation bool ` form:"activation" `
2017-05-06 21:21:39 +02:00
}
// UserRoleForm is used when adding or removing a role from a user.
type UserRoleForm struct {
2017-05-07 14:53:01 +02:00
UserId int ` form:"userId" `
RoleId int ` form:"roleId" `
2017-05-06 21:21:39 +02:00
}