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/controllers/user/register.go
akuma06 2c8344faf9 Controllers are now separated
They are in different folders and all loaded in controllers/router.go.
This means that you only have to create a folder with a router.go file and import this folder in main router.go to add a handler.
2017-07-16 17:14:21 +02:00

73 lignes
2 Kio
Go

package userController
import (
"net/http"
"github.com/NyaaPantsu/nyaa/models/users"
"github.com/NyaaPantsu/nyaa/templates"
"github.com/NyaaPantsu/nyaa/utils/captcha"
"github.com/NyaaPantsu/nyaa/utils/cookies"
"github.com/NyaaPantsu/nyaa/utils/email"
msg "github.com/NyaaPantsu/nyaa/utils/messages"
"github.com/NyaaPantsu/nyaa/utils/validator"
"github.com/NyaaPantsu/nyaa/utils/validator/user"
"github.com/gin-gonic/gin"
)
// UserRegisterFormHandler : Getting View User Registration
func UserRegisterFormHandler(c *gin.Context) {
_, _, errorUser := cookies.CurrentUser(c)
// User is already connected, redirect to home
if errorUser == nil {
c.Redirect(http.StatusSeeOther, "/")
return
}
registrationForm := userValidator.RegistrationForm{}
c.Bind(&registrationForm)
registrationForm.CaptchaID = captcha.GetID()
templates.Form(c, "site/user/register.jet.html", registrationForm)
}
// UserRegisterPostHandler : Post Registration controller, we do some check on the form here, the rest on user service
func UserRegisterPostHandler(c *gin.Context) {
b := userValidator.RegistrationForm{}
messages := msg.GetMessages(c)
if !captcha.Authenticate(captcha.Extract(c)) {
messages.AddErrorT("errors", "bad_captcha")
}
if !messages.HasErrors() {
if len(c.PostForm("email")) > 0 {
if !userValidator.EmailValidation(c.PostForm("email")) {
messages.AddErrorT("email", "email_not_valid")
}
}
if !userValidator.ValidateUsername(c.PostForm("username")) {
messages.AddErrorT("username", "username_illegal")
}
if !messages.HasErrors() {
c.Bind(&b)
validator.ValidateForm(&b, messages)
if !messages.HasErrors() {
user, _ := users.CreateUser(c)
if !messages.HasErrors() {
_, err := cookies.SetLogin(c, user)
if err != nil {
messages.Error(err)
}
if b.Email != "" {
email.SendVerificationToUser(user, b.Email)
}
if !messages.HasErrors() {
templates.Static(c, "site/static/signup_success.jet.html")
}
}
}
}
}
if messages.HasErrors() {
UserRegisterFormHandler(c)
}
}