コード例 #1
0
ファイル: UserController.go プロジェクト: Klouds/klouds
//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)

	}

}