Esempio n. 1
0
def register():
    form: RegisterForm = RegisterForm(request.form)

    if request.method == "POST" and form.validate_on_submit():
        username: str = form.username.data
        password: str = form.password.data
        password_confirm: str = form.password_confirm.data
        school_name: str = form.school.data

        if password != password_confirm:
            return render_template("forms/register.html",
                                   form=form,
                                   error="비밀번호를 다시 입력해주세요.")

        if User.query.filter(User.username == username).first() is not None:
            return render_template("forms/register.html",
                                   form=form,
                                   error="중복되는 아이디입니다.")

        school: School = School.query.filter(
            School.name == school_name).first()

        if school is None:
            school = School.generate(db_session, school_name)

        db_session.add(
            User(username=username,
                 password=authenticator.hash(password),
                 school=school)), db_session.commit()

        return redirect("/login")

    return render_template("forms/register.html", form=form)