def user_add(): setup_translation() user_role = db.session.execute( select(Role).filter_by(name='user')).scalar_one() add_form = UserAddForm(request.form, role_id=[str(user_role.id)]) add_form.role_id.choices = [(r.id, r.name) for r in db.session.execute( select(Role.id, Role.name).where(Role.name != 'cron').order_by('name')) ] add_form.role_id.default = user_role.id if str(add_form.role_id.data) == 'None': add_form.role_id.data = user_role.id if request.method == 'POST' and add_form.validate(): user, user_email = app.user_manager.find_user_by_email( add_form.email.data) if user: flash(word("A user with that e-mail has already registered"), "error") return redirect(url_for('user_add')) user_auth = UserAuthModel( password=app.user_manager.hash_password(add_form.password.data)) while True: new_social = 'local$' + random_alphanumeric(32) existing_user = db.session.execute( select(UserModel).filter_by(social_id=new_social)).scalar() if existing_user: continue break the_user = UserModel(active=True, nickname=re.sub(r'@.*', '', add_form.email.data), social_id=new_social, email=add_form.email.data, user_auth=user_auth, first_name=add_form.first_name.data, last_name=add_form.last_name.data, confirmed_at=datetime.datetime.now()) num_roles = 0 for role in db.session.execute(select(Role).order_by('id')).scalars(): if role.id in add_form.role_id.data: the_user.roles.append(role) num_roles += 1 if num_roles == 0: the_user.roles.append(user_role) db.session.add(user_auth) db.session.add(the_user) db.session.commit() #docassemble.webapp.daredis.clear_user_cache() flash(word("The new user has been created"), "success") return redirect(url_for('user_list')) response = make_response( render_template('users/add_user_page.html', version_warning=None, bodyclass='daadminbody', page_title=word('Add User'), tab_title=word('Add User'), form=add_form), 200) response.headers[ 'Cache-Control'] = 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0' return response
def user_add(): user_role = Role.query.filter_by(name='user').first() add_form = UserAddForm(request.form, role_id=[text_type(user_role.id)]) add_form.role_id.choices = [(r.id, r.name) for r in db.session.query(Role).filter( Role.name != 'cron').order_by('name')] add_form.role_id.default = user_role.id if text_type(add_form.role_id.data) == 'None': add_form.role_id.data = user_role.id if request.method == 'POST' and add_form.validate(): user, user_email = app.user_manager.find_user_by_email( add_form.email.data) if user: flash(word("A user with that e-mail has already registered"), "error") return redirect(url_for('user_add')) user_auth = UserAuthModel( password=app.user_manager.hash_password(add_form.password.data)) while True: new_social = 'local$' + random_alphanumeric(32) existing_user = UserModel.query.filter_by( social_id=new_social).first() if existing_user: continue break the_user = UserModel(active=True, nickname=re.sub(r'@.*', '', add_form.email.data), social_id=new_social, email=add_form.email.data, user_auth=user_auth, first_name=add_form.first_name.data, last_name=add_form.last_name.data, confirmed_at=datetime.datetime.now()) num_roles = 0 for role in Role.query.order_by('id'): if role.id in add_form.role_id.data: the_user.roles.append(role) num_roles += 1 if num_roles == 0: the_user.roles.append(user_role) db.session.add(user_auth) db.session.add(the_user) db.session.commit() #docassemble.webapp.daredis.clear_user_cache() flash(word("The new user has been created"), "success") return redirect(url_for('user_list')) return render_template('users/add_user_page.html', version_warning=None, bodyclass='daadminbody', page_title=word('Add User'), tab_title=word('Add User'), form=add_form)
def user_add(): user_role = Role.query.filter_by(name='user').first() add_form = UserAddForm(request.form, role_id=[text_type(user_role.id)]) add_form.role_id.choices = [(r.id, r.name) for r in db.session.query(Role).filter(Role.name != 'cron').order_by('name')] add_form.role_id.default = user_role.id if text_type(add_form.role_id.data) == 'None': add_form.role_id.data = user_role.id if request.method == 'POST' and add_form.validate(): user, user_email = app.user_manager.find_user_by_email(add_form.email.data) if user: flash(word("A user with that e-mail has already registered"), "error") return redirect(url_for('user_add')) user_auth = UserAuthModel(password=app.user_manager.hash_password(add_form.password.data)) while True: new_social = 'local$' + random_alphanumeric(32) existing_user = UserModel.query.filter_by(social_id=new_social).first() if existing_user: continue break the_user = UserModel( active=True, nickname=re.sub(r'@.*', '', add_form.email.data), social_id=new_social, email=add_form.email.data, user_auth=user_auth, first_name = add_form.first_name.data, last_name = add_form.last_name.data, confirmed_at = datetime.datetime.now() ) num_roles = 0 for role in Role.query.order_by('id'): if role.id in add_form.role_id.data: the_user.roles.append(role) num_roles +=1 if num_roles == 0: the_user.roles.append(user_role) db.session.add(user_auth) db.session.add(the_user) db.session.commit() #docassemble.webapp.daredis.clear_user_cache() flash(word("The new user has been created"), "success") return redirect(url_for('user_list')) return render_template('users/add_user_page.html', version_warning=None, bodyclass='adminbody', page_title=word('Add User'), tab_title=word('Add User'), form=add_form)