Ejemplo n.º 1
0
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
    }
Ejemplo n.º 3
0
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}
Ejemplo n.º 4
0
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
    }