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)
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)
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__))