//Registration page func (c *UserController) Register(rw http.ResponseWriter, r *http.Request, p httprouter.Params) { if r.Method == "GET" { var user *models.User if getUserName(r) != "" { user = GetUserByUsername(getUserName(r)) c.HTML(rw, http.StatusOK, "user/profile", user) } else { c.HTML(rw, http.StatusOK, "user/register", nil) } } else if r.Method == "POST" { r.ParseForm() username := strings.ToLower(r.FormValue("username")) email := r.FormValue("email") firstname := r.FormValue("firstname") surname := r.FormValue("lastname") password := r.FormValue("password") confirmpassword := r.FormValue("confirmpassword") newUser := models.User{ Username: username, Email: email, FirstName: firstname, Surname: surname, Password: password, ConfirmPassword: confirmpassword, Role: "user"} newUser.ValidateRegister() if newUser.Message != "" { c.HTML(rw, http.StatusOK, "user/register", newUser) return } if CheckForExistingUsername(&newUser) { if CheckForExistingEmail(&newUser) { CreateUser(&newUser) newUser.Message = "User " + newUser.Username + " successfully created." } else { newUser.Message = "Email: " + newUser.Email + " already taken." } } else { newUser.Message = "User: "******" already exists." } c.HTML(rw, http.StatusOK, "user/register", newUser) } }