Esempio n. 1
0
def register():
    if current_user.is_authenticated:
        logout()
    form = User_reg()
    db_sess = db_session.create_session()
    if form.validate_on_submit():
        if form.password.data != form.repeat_password.data:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Пароли не совпадают")
        user_log = db_sess.query(User).filter(
            User.login == form.login.data).first()
        if user_log:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Такой логин уже существует!")
        user = User()
        user.name = form.name.data.capitalize()
        user.surname = form.surname.data.capitalize()
        user.login = form.login.data
        if form.teacher.data:
            while True:
                x = generate_password()
                if not db_sess.query(User).\
                        filter((User.grade == x) | (User.grade_for_teacher == x)).first():
                    user.grade = x
                    break
            while True:
                x = generate_password()
                if not db_sess.query(User).\
                        filter((User.grade == x) | (User.grade_for_teacher == x)).first():
                    user.grade_for_teacher = x
                    user.classes = x
                    break
        user.teacher = form.teacher.data
        user.hashed_password = hashlib.sha512(
            form.password.data.encode('utf-8')).hexdigest()
        db_sess.add(user)
        db_sess.commit()
        login_user(user, remember=False)
        return redirect('/main_page')
    return render_template("register.html", form=form, title='Регистрация')