Exemplo n.º 1
0
def analysis(analysis_type, sha256):
    """ Analysis result page """
    if analysis_type not in current_app.config.get('FILE_TYPES'):
        return redirect(
            url_for('default.analysis', sha256=sha256, analysis_type=current_app.config.get('FILE_TYPES')[0]))
    sample = Sample.query.filter_by(sha256=sha256).first()
    if sample is None:
        abort(404)

    suggest_reanalyse = datetime.datetime.utcnow() - sample.last_analysis > datetime.timedelta(days=90)
    neighbours = sample.get_neighbours()
    return render_template('analysis.html', sample=sample, analysis_type=analysis_type,
                           tag_list=Tag.get_all(), reanalyse=suggest_reanalyse, neighbours=neighbours)
Exemplo n.º 2
0
def submit_tag(sha256, tag, format):
    tags = Tag.get_all()
    tag_names = [t.name for t in tags]
    if tag is None or tag not in tag_names:
        return "NOK"
    sample = Sample.get(sha256)
    sample_tag_names = [t.name for t in sample.tags]
    if sample is None or tag in sample_tag_names:
        return "NOK"

    _tag = tags[tag_names.index(tag)]
    sample.tags.append(_tag)  # postgre doesn't like str as objects.
    db.session.commit()
    return str(_tag) if format else 'OK'
Exemplo n.º 3
0
def submit_tag(sha256, tag, format):
    tags = Tag.get_all()
    tag_names = [t.name for t in tags]
    if tag is None or tag not in tag_names:
        return "NOK"
    sample = Sample.get(sha256)
    sample_tag_names = [t.name for t in sample.tags]
    if sample is None or tag in sample_tag_names:
        return "NOK"

    _tag = tags[tag_names.index(tag)]
    sample.tags.append(_tag)  # postgre doesn't like str as objects.
    db.session.commit()
    return str(_tag) if format else 'OK'
Exemplo n.º 4
0
def analysis(analysis_type, sha256):
    """ Analysis result page """
    if analysis_type not in current_app.config.get('FILE_TYPES'):
        return redirect(
            url_for('default.analysis',
                    sha256=sha256,
                    analysis_type=current_app.config.get('FILE_TYPES')[0]))
    sample = Sample.query.filter_by(sha256=sha256).first()
    if sample is None:
        abort(404)

    suggest_reanalyse = datetime.datetime.utcnow(
    ) - sample.last_analysis > datetime.timedelta(days=90)
    neighbours = sample.get_neighbours()
    return render_template('analysis.html',
                           sample=sample,
                           analysis_type=analysis_type,
                           tag_list=Tag.get_all(),
                           reanalyse=suggest_reanalyse,
                           neighbours=neighbours)
Exemplo n.º 5
0
def edit(sha256):
    """ Edit a sample metadata """
    sample = Sample.get(sha256)
    if sample:
        all_tags = Tag.get_all()
        if request.method == 'POST':
            all_tags_id = [tag.id for tag in all_tags]
            tag_list = []
            for value in request.form:
                if value.startswith('tag_'):
                    id = int(value[4:])
                    if id in all_tags_id:
                        tag_list.append(Tag.get(id))
            sample.name = request.form.get('name', '').replace(' ', '').split(',')
            sample.mime = request.form.get('mime', '')
            sample.first_analysis = request.form.get('first_analysis', '')
            sample.last_analysis = request.form.get('last_analysis', '')
            sample.tags = tag_list
            db.session.add(sample)
            db.session.commit()
            return redirect(url_for('admin.samples'))

        return render_template('admin/edit.html', sample=sample, names=[tag.name for tag in sample.tags], tags=all_tags)
    abort(404)
Exemplo n.º 6
0
def tags():
    tag_list = Tag.get_all()
    return render_template('admin/tags.html', tags=tag_list)