示例#1
0
def gateway():
    if is_logged_in():
        return redirect(url_for("index"))
    err = ""
    if request.method == "POST":
        try:
            email = fix(request.form["email"], "@\.")
            username = fix(request.form["username"])
            password = fix(request.form["password"])
            confirm = fix(request.form["confirm"])
            if validate_email(email):
                if not Profile.already_exists(email=email):
                    if validate_username(username):
                        if not Profile.already_exists(username=username):
                            if password == confirm and password != "":
                                Profile.insert_profile(email, username,
                                                       hash_password(password))
                                return render_template("gateway.html",
                                                       title="Gateway")
                            else:
                                err = "Invalid Passwords Entered"
                        else:
                            err = "Username Already Exists"
                    else:
                        err = "Invalid Username Entered"
                else:
                    err = "Email Already Exists"
            else:
                err = "Invalid Email Entered"
        except Exception as e:
            email = fix(request.form["email"], "@\.")
            password = fix(request.form["password"])
            if email is not None and password is not None:
                if Profile.already_exists(email=email):
                    expected_pass = Profile.get_password_hash(email)
                    salt, pass_hash = str(expected_pass).split("$")
                    if expected_pass == str(hash_password(password, salt)):
                        session["email"] = email
                        session["username"] = Profile.get("username",
                                                          email=email)
                        return redirect(url_for("index"))
                    else:
                        err = "Incorrect Email or Password"
                else:
                    err = "Incorrect Email"
            else:
                err = "Fill in all blanks"

    reg = True if request.args.get("reg") == "true" else False
    return render_template("gateway.html",
                           title="Gateway",
                           indent=False,
                           reg=reg,
                           err=err)