first sync
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 29s

This commit is contained in:
2025-03-04 07:59:21 +01:00
parent 9cdcf486b6
commit 506716e703
1450 changed files with 577316 additions and 62 deletions

View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
#
# IRIS Source Code
# DFIR-IRIS Team
# contact@dfir-iris.org
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from flask import Blueprint, request
from flask import render_template
from flask import url_for
from flask_login import current_user
from flask_wtf import FlaskForm
from werkzeug.utils import redirect
from app.datamgmt.overview.overview_db import get_overview_db
from app.util import ac_api_requires
from app.util import ac_requires
from app.util import response_success
overview_blueprint = Blueprint(
'overview',
__name__,
template_folder='templates'
)
@overview_blueprint.route('/overview', methods=['GET'])
@ac_requires()
def get_overview(caseid, url_redir):
"""
Return an overview of the cases
"""
if url_redir:
return redirect(url_for('index.index', cid=caseid, redirect=True))
form = FlaskForm()
return render_template('overview.html', caseid=caseid, form=form)
@overview_blueprint.route('/overview/filter', methods=['GET'])
@ac_api_requires()
def get_overview_filter(caseid):
"""
Return an overview of the cases
"""
show_full = request.args.get('show_closed', 'false') == 'true'
overview = get_overview_db(current_user.id, show_full)
return response_success('', data=overview)

View File

@@ -0,0 +1,126 @@
{% extends "layouts/default.html" %}
{% block title %} Overview {% endblock title %}
{% block stylesheets %}
<link rel="stylesheet" href="/static/assets/css/suggestags.css">
<link href="/static/assets/css/dataTables.buttons.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.contextualActions.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.select.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.responsive.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.searchBuilder.css" rel="stylesheet">
{% endblock stylesheets %}
{% block content %}
{{ form.hidden_tag() }}
<div class="page-inner">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col">
<div class="card-title" id="overviewTableTitle">Open cases</div>
</div>
<div class="col">
<button type="button" class="btn btn-sm btn-outline-black float-right" onclick="get_cases_overview(false);">
Refresh
</button>
<div class="selectgroup float-right mt--1">
<div class="form-check float-right">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" id="overviewLoadClosedCase">
<span class="form-check-sign"> Show closed cases
</span>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive" id="overview_table_wrapper">
<span id="table_buttons"></span>
<table class="table display wrap col-border table-striped table-hover" width="100%"
cellspacing="0" id="overview_table">
<thead>
<tr>
<th></th>
<th>Title</th>
<th>Customer</th>
<th>Classification</th>
<th>State</th>
<th>Tags</th>
<th>Open since</th>
<th>Open date</th>
<th>Tasks</th>
<th>Owner</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>Title</th>
<th>Customer</th>
<th>Classification</th>
<th>State</th>
<th>Tags</th>
<th>Open since</th>
<th>Open date</th>
<th>Tasks</th>
<th>Owner</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal modal-case-focus" tabindex="-1" role="dialog" id="caseViewModal" data-backdrop="true">
<div class="modal-xl modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<div class="col md-12">
<div class="row">
<div class="col align-self-center">
<h4 class="modal-title mr-4">Case</h4>
<small><a class="text-muted modal-subtitle"></a></small>
</div>
<div class="col">
<div class="row float-right">
<button type="button" class="pull-right btn bg-transparent" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true"><i class="fa fa-times"></i></span></button>
</div>
</div>
</div>
</div>
</div>
<div class="modal-body">
<div class="container col-md-12">
</div>
</div>
</div>
</div>
</div>
{% endblock content %}
{% block javascripts %}
<script src="/static/assets/js/iris/datatablesUtils.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.responsive.min.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.searchBuilder.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.dateTime.min.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.searchBuilder.bs4.js"></script>
<script src="/static/assets/js/iris/overview.js"></script>
{% endblock javascripts %}