def manage(): """Allow editing or accessing account details.""" from run import app form = AccountForm(request.form, g.user) if form.validate_on_submit(): user_to_update = User.query.filter(User.id == g.user.id).first() old_email = None password = False if user_to_update.email != form.email.data: old_email = user_to_update.email user_to_update.email = form.email.data if len(form.new_password.data) >= 10: password = True user_to_update.password = User.generate_hash( form.new_password.data) if user_to_update.name != form.name.data: user_to_update.name = form.name.data g.user = user_to_update g.db.commit() if old_email is not None: template = app.jinja_env.get_or_select_template( 'email/email_changed.txt') message = template.render(name=user_to_update.name, email=user_to_update.email) g.mailer.send_simple_message({ "to": [old_email, user_to_update.email], "subject": "CCExtractor CI platform email changed", "text": message }) if password: template = app.jinja_env.get_or_select_template( 'email/password_changed.txt') message = template.render(name=user_to_update.name) to = user_to_update.email if old_email is None else [ old_email, user_to_update.email ] g.mailer.send_simple_message({ "to": to, "subject": "CCExtractor CI platform password changed", "text": message }) flash('Settings saved') github_url = github_redirect() return {'form': form, 'url': github_url}
def manage(): """ Function to edit or access account details """ from run import app form = AccountForm(request.form, g.user) if form.validate_on_submit(): user = User.query.filter(User.id == g.user.id).first() old_email = None password = False if user.email != form.email.data: old_email = user.email user.email = form.email.data if len(form.new_password.data) >= 10: password = True user.password = User.generate_hash(form.new_password.data) if user.name != form.name.data: user.name = form.name.data g.user = user g.db.commit() if old_email is not None: template = app.jinja_env.get_or_select_template('email/email_changed.txt') message = template.render(name=user.name, email=user.email) g.mailer.send_simple_message({ "to": [old_email, user.email], "subject": "CCExtractor CI platform email changed", "text": message }) if password: template = app.jinja_env.get_or_select_template('email/password_changed.txt') message = template.render(name=user.name) to = user.email if old_email is None else [old_email, user.email] g.mailer.send_simple_message({ "to": to, "subject": "CCExtractor CI platform password changed", "text": message }) flash('Settings saved') github_url = github_redirect() return { 'form': form, 'url': github_url }
def manage(): form = AccountForm(request.form, g.user) if not g.user.is_admin(): form.email.validators = [] if request.method == 'POST': result = {'status': 'error', 'errors': []} if form.validate_on_submit(): user = User.query.filter(User.id == g.user.id).first() if user.is_admin(): user.email = form.email.data if len(form.new_password.data) >= 10: user.password = User.generate_hash(form.new_password.data) g.user = user g.db.commit() result['status'] = 'success' result['errors'] = form.errors return jsonify(result) return {'form': form}
def manage(): form = AccountForm(request.form, g.user) if not g.user.is_admin(): form.email.validators = [] if request.method == 'POST': result = { 'status': 'error', 'errors': [] } if form.validate_on_submit(): user = User.query.filter(User.id == g.user.id).first() if user.is_admin(): user.email = form.email.data if len(form.new_password.data) >= 10: user.password = User.generate_hash(form.new_password.data) g.user = user g.db.commit() result['status'] = 'success' result['errors'] = form.errors return jsonify(result) return { 'form': form }