// Process register: check form, create new inactive user and send activation email func (self *RegisterController) ProcessRegister(params martini.Params, req *http.Request, r render.Render, di *di.DI) { userManager := di.UserManager() user := userManager.NewUser() // need validate user.Email = req.FormValue("Email") rawPassword := req.FormValue("Password") user.Password = userManager.CryptPassword(rawPassword) user.FullName = req.FormValue("FullName") user.Address = req.FormValue("Address") user.Phone = req.FormValue("Phone") user.IsActive = false user.Hash = userManager.GenerateHash(user.Email + user.FullName) userManager.Create(user) // send email mailer := di.Mailer() go mailer.Send(mailer.BuildRegistrationMail(user)) // message: "Activation link was sent to your email." r.Redirect("/users/") }