Пример #1
0
def register():
    user = User()
    form = UserForm(csrf_enabled=False)
    if form.validate_on_submit():
        user.create(form.username.data,form.password.data,form.email.data)
        
    return render_template('register.html',form=form)
Пример #2
0
def user_edit(id_: int):
    form = UserForm()
    db_sess = db_session.create_session()
    users_type = [(i.id, i.users_type)
                  for i in db_sess.query(UsersTypes).all()]
    form.user_type_id.choices = users_type
    if request.method == "GET":
        user = db_sess.query(Users).filter(Users.id == id_).first()
        if user and current_user.user_type_id == 1:
            form.name.data = user.name
            form.login.data = user.login
            form.email.data = user.email
            form.user_type_id.data = user.user_type_id
        else:
            abort(404)
    if form.validate_on_submit():
        user = db_sess.query(Users).filter(Users.id == id_).first()
        if user and current_user.user_type_id == 1:
            if form.password.data and form.password.data != form.password_again.data:
                return render_template("user.html",
                                       title="Редактирование пользователя",
                                       form=form,
                                       message="Пароли не совпадают")
            elif form.password.data:
                user.set_password(form.password.data)
            user.name = form.name.data
            user.login = form.login.data
            user.email = form.email.data
            # Админ не может себя понизить
            if current_user == user:
                pass
            else:
                user.user_type_id = form.user_type_id.data
            db_sess.commit()
            return redirect('/users')
        else:
            abort(404)
    return render_template('user.html',
                           title='Редактирование пользователя',
                           form=form)
Пример #3
0
def signup():
    form = UserForm(request.form)

    if not form.validate_on_submit():
        return render_template('signup.html', form=form)

    user = User()
    form.populate_obj(user)
    passwd = form.password.data # un-encrypted

    if not Whitelist.allowed(user.email):
        flash(u"Desværre - du skal have en email fra et godkendt uddannelsessted", 'error')
        return render_template('signup.html', form=form)

    token = ValidationTokens(user=user,
                             type=ValidationTokens.CREATE_USER,
                             password=passwd)

    db.session.add(user)
    db.session.add(token)

    db.session.commit()

    link = '%s?token=%s' % (url_for(verify.__name__, _external=True), token.token)
    msg = render_template('email_verification.txt', user=user, link=link)

    mail.send(receivers=[u'%s <%s>' % (user.username, user.email)],
              subject=u'Bekræft din email adresse til Iftek-skyen',
              text=msg)

    flash(u"""Fedt, du er blevet oprettet!<br /><br />
For at aktivere din konto, skal du bekræfte din email adresse.<br /><br />
Vi har sendt en email med et link<br /><br />
Ses snart i skyen!""")

    return redirect(url_for(flash_message.__name__))