Esempio n. 1
0
def reqister():
    form = RegisterForm()
    if form.validate_on_submit():
        if not set(form.avatar_source.data.filename.lower()) <=\
               set('abcdefghijklmnopqrstuvwxyz0123456789!\'#$'
                   '%&\'()*+,-./:;<=>?@[\]^_`{|}~'):
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message='Недопустимое название файла')
        if form.password_new.data != form.password_again.data:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message='Пароли не совпадают')
        session = db_session.create_session()
        if session.query(User).filter(User.email == form.email.data).first():
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message='Такой пользователь уже есть')
        user = User(
            name=form.name.data,
            email=form.email.data,
            permission=form.permission.data,
        )
        if form.phone_number.data:
            user.phone_number = form.phone_number.data
        if form.about.data:
            user.about = form.about.data
        if form.surname.data:
            user.surname = form.surname.data
        if form.avatar_source.data.filename:
            user.avatar_source = images.save(form.avatar_source.data)
        user.set_password(form.password_new.data)
        session.add(user)
        session.commit()
        return redirect('/login')
    return render_template('register.html', form=form)