コード例 #1
0
    def post(self):
        have_error = False
        username = self.request.get("username")
        password = self.request.get("password")
        verify = self.request.get("verify")
        email = self.request.get("email")

        params = dict(username=username, email=email)

        # Validating all fields
        if not Validation.valid_username(username):
            params["error_username"] = "******"
            have_error = True

        if not Validation.valid_password(password):
            params["error_password"] = "******"
            have_error = True
        elif password != verify:
            params["error_verify"] = "Your passwords didn't match."
            have_error = True

        if not Validation.valid_email(email):
            params["error_email"] = "That's not a valid email."
            have_error = True
        if User.get_by_name(username):
            params["user_taken"] = "This username is already taken"
            have_error = True

        if have_error:
            self.render("sign-up.html", **params)
        else:
            # Creates new user
            new_user = User.register(username, password, email)
            new_user.put()
            self.login(new_user)
            self.redirect("/")