mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-10 08:38:28 +00:00
chg: [user_management endpoint] check user roles + add 503 template
This commit is contained in:
parent
6eec0aabfe
commit
ef716f22e5
15 changed files with 225 additions and 7 deletions
|
@ -34,6 +34,7 @@ import Flask_config
|
||||||
|
|
||||||
# Import Role_Manager
|
# Import Role_Manager
|
||||||
from Role_Manager import create_user_db, check_password_strength
|
from Role_Manager import create_user_db, check_password_strength
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
|
|
||||||
def flask_init():
|
def flask_init():
|
||||||
# # TODO: move this to update
|
# # TODO: move this to update
|
||||||
|
@ -211,7 +212,15 @@ def logout():
|
||||||
logout_user()
|
logout_user()
|
||||||
return redirect(url_for('login'))
|
return redirect(url_for('login'))
|
||||||
|
|
||||||
|
# role error template
|
||||||
|
@app.route('/role', methods=['POST', 'GET'])
|
||||||
|
@login_required
|
||||||
|
def role():
|
||||||
|
return render_template("error/403.html"), 403
|
||||||
|
|
||||||
@app.route('/searchbox/')
|
@app.route('/searchbox/')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def searchbox():
|
def searchbox():
|
||||||
return render_template("searchbox.html")
|
return render_template("searchbox.html")
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
'''
|
'''
|
||||||
import redis
|
import redis
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, url_for, redirect
|
from flask import Flask, render_template, jsonify, request, Blueprint, url_for, redirect
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
import unicodedata
|
import unicodedata
|
||||||
|
@ -275,6 +277,7 @@ def hive_create_case(hive_tlp, threat_level, hive_description, hive_case_title,
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/", methods=['GET'])
|
@PasteSubmit.route("/PasteSubmit/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def PasteSubmit_page():
|
def PasteSubmit_page():
|
||||||
#active taxonomies
|
#active taxonomies
|
||||||
active_taxonomies = r_serv_tags.smembers('active_taxonomies')
|
active_taxonomies = r_serv_tags.smembers('active_taxonomies')
|
||||||
|
@ -288,6 +291,7 @@ def PasteSubmit_page():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/submit", methods=['POST'])
|
@PasteSubmit.route("/PasteSubmit/submit", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def submit():
|
def submit():
|
||||||
|
|
||||||
#paste_name = request.form['paste_name']
|
#paste_name = request.form['paste_name']
|
||||||
|
@ -398,6 +402,7 @@ def submit():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/submit_status", methods=['GET'])
|
@PasteSubmit.route("/PasteSubmit/submit_status", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def submit_status():
|
def submit_status():
|
||||||
UUID = request.args.get('UUID')
|
UUID = request.args.get('UUID')
|
||||||
|
|
||||||
|
@ -465,6 +470,7 @@ def submit_status():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/create_misp_event", methods=['POST'])
|
@PasteSubmit.route("/PasteSubmit/create_misp_event", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def create_misp_event():
|
def create_misp_event():
|
||||||
|
|
||||||
distribution = int(request.form['misp_data[Event][distribution]'])
|
distribution = int(request.form['misp_data[Event][distribution]'])
|
||||||
|
@ -488,6 +494,7 @@ def create_misp_event():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/create_hive_case", methods=['POST'])
|
@PasteSubmit.route("/PasteSubmit/create_hive_case", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def create_hive_case():
|
def create_hive_case():
|
||||||
|
|
||||||
hive_tlp = int(request.form['hive_tlp'])
|
hive_tlp = int(request.form['hive_tlp'])
|
||||||
|
@ -511,6 +518,7 @@ def create_hive_case():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/edit_tag_export")
|
@PasteSubmit.route("/PasteSubmit/edit_tag_export")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_tag_export():
|
def edit_tag_export():
|
||||||
misp_auto_events = r_serv_db.get('misp:auto-events')
|
misp_auto_events = r_serv_db.get('misp:auto-events')
|
||||||
hive_auto_alerts = r_serv_db.get('hive:auto-alerts')
|
hive_auto_alerts = r_serv_db.get('hive:auto-alerts')
|
||||||
|
@ -576,6 +584,7 @@ def edit_tag_export():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/tag_export_edited", methods=['POST'])
|
@PasteSubmit.route("/PasteSubmit/tag_export_edited", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def tag_export_edited():
|
def tag_export_edited():
|
||||||
tag_enabled_misp = request.form.getlist('tag_enabled_misp')
|
tag_enabled_misp = request.form.getlist('tag_enabled_misp')
|
||||||
tag_enabled_hive = request.form.getlist('tag_enabled_hive')
|
tag_enabled_hive = request.form.getlist('tag_enabled_hive')
|
||||||
|
@ -601,30 +610,35 @@ def tag_export_edited():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/enable_misp_auto_event")
|
@PasteSubmit.route("/PasteSubmit/enable_misp_auto_event")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def enable_misp_auto_event():
|
def enable_misp_auto_event():
|
||||||
r_serv_db.set('misp:auto-events', 1)
|
r_serv_db.set('misp:auto-events', 1)
|
||||||
return edit_tag_export()
|
return edit_tag_export()
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/disable_misp_auto_event")
|
@PasteSubmit.route("/PasteSubmit/disable_misp_auto_event")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def disable_misp_auto_event():
|
def disable_misp_auto_event():
|
||||||
r_serv_db.set('misp:auto-events', 0)
|
r_serv_db.set('misp:auto-events', 0)
|
||||||
return edit_tag_export()
|
return edit_tag_export()
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/enable_hive_auto_alert")
|
@PasteSubmit.route("/PasteSubmit/enable_hive_auto_alert")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def enable_hive_auto_alert():
|
def enable_hive_auto_alert():
|
||||||
r_serv_db.set('hive:auto-alerts', 1)
|
r_serv_db.set('hive:auto-alerts', 1)
|
||||||
return edit_tag_export()
|
return edit_tag_export()
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/disable_hive_auto_alert")
|
@PasteSubmit.route("/PasteSubmit/disable_hive_auto_alert")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def disable_hive_auto_alert():
|
def disable_hive_auto_alert():
|
||||||
r_serv_db.set('hive:auto-alerts', 0)
|
r_serv_db.set('hive:auto-alerts', 0)
|
||||||
return edit_tag_export()
|
return edit_tag_export()
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/add_push_tag")
|
@PasteSubmit.route("/PasteSubmit/add_push_tag")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def add_push_tag():
|
def add_push_tag():
|
||||||
tag = request.args.get('tag')
|
tag = request.args.get('tag')
|
||||||
if tag is not None:
|
if tag is not None:
|
||||||
|
@ -643,6 +657,7 @@ def add_push_tag():
|
||||||
|
|
||||||
@PasteSubmit.route("/PasteSubmit/delete_push_tag")
|
@PasteSubmit.route("/PasteSubmit/delete_push_tag")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def delete_push_tag():
|
def delete_push_tag():
|
||||||
tag = request.args.get('tag')
|
tag = request.args.get('tag')
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ def update_tag_last_seen(tag, tag_first_seen, tag_last_seen):
|
||||||
|
|
||||||
@Tags.route("/tags/", methods=['GET'])
|
@Tags.route("/tags/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
@login_admin
|
@login_analyst
|
||||||
def Tags_page():
|
def Tags_page():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -357,6 +357,7 @@ def Tags_page():
|
||||||
|
|
||||||
@Tags.route("/Tags/get_all_tags")
|
@Tags.route("/Tags/get_all_tags")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_all_tags():
|
def get_all_tags():
|
||||||
|
|
||||||
all_tags = r_serv_tags.smembers('list_tags')
|
all_tags = r_serv_tags.smembers('list_tags')
|
||||||
|
@ -380,6 +381,7 @@ def get_all_tags():
|
||||||
|
|
||||||
@Tags.route("/Tags/get_all_tags_taxonomies")
|
@Tags.route("/Tags/get_all_tags_taxonomies")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_all_tags_taxonomies():
|
def get_all_tags_taxonomies():
|
||||||
|
|
||||||
taxonomies = Taxonomies()
|
taxonomies = Taxonomies()
|
||||||
|
@ -398,6 +400,7 @@ def get_all_tags_taxonomies():
|
||||||
|
|
||||||
@Tags.route("/Tags/get_all_tags_galaxies")
|
@Tags.route("/Tags/get_all_tags_galaxies")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_all_tags_galaxy():
|
def get_all_tags_galaxy():
|
||||||
|
|
||||||
active_galaxies = r_serv_tags.smembers('active_galaxies')
|
active_galaxies = r_serv_tags.smembers('active_galaxies')
|
||||||
|
@ -412,6 +415,7 @@ def get_all_tags_galaxy():
|
||||||
|
|
||||||
@Tags.route("/Tags/get_tags_taxonomie")
|
@Tags.route("/Tags/get_tags_taxonomie")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_tags_taxonomie():
|
def get_tags_taxonomie():
|
||||||
|
|
||||||
taxonomie = request.args.get('taxonomie')
|
taxonomie = request.args.get('taxonomie')
|
||||||
|
@ -439,6 +443,7 @@ def get_tags_taxonomie():
|
||||||
|
|
||||||
@Tags.route("/Tags/get_tags_galaxy")
|
@Tags.route("/Tags/get_tags_galaxy")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_tags_galaxy():
|
def get_tags_galaxy():
|
||||||
|
|
||||||
galaxy = request.args.get('galaxy')
|
galaxy = request.args.get('galaxy')
|
||||||
|
@ -460,6 +465,7 @@ def get_tags_galaxy():
|
||||||
|
|
||||||
@Tags.route("/Tags/remove_tag")
|
@Tags.route("/Tags/remove_tag")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def remove_tag():
|
def remove_tag():
|
||||||
|
|
||||||
#TODO verify input
|
#TODO verify input
|
||||||
|
@ -492,6 +498,7 @@ def confirm_tag():
|
||||||
|
|
||||||
@Tags.route("/Tags/tag_validation")
|
@Tags.route("/Tags/tag_validation")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def tag_validation():
|
def tag_validation():
|
||||||
|
|
||||||
path = request.args.get('paste')
|
path = request.args.get('paste')
|
||||||
|
@ -513,6 +520,7 @@ def tag_validation():
|
||||||
|
|
||||||
@Tags.route("/Tags/addTags")
|
@Tags.route("/Tags/addTags")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def addTags():
|
def addTags():
|
||||||
|
|
||||||
tags = request.args.get('tags')
|
tags = request.args.get('tags')
|
||||||
|
@ -563,6 +571,7 @@ def addTags():
|
||||||
|
|
||||||
@Tags.route("/Tags/taxonomies")
|
@Tags.route("/Tags/taxonomies")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def taxonomies():
|
def taxonomies():
|
||||||
|
|
||||||
active_taxonomies = r_serv_tags.smembers('active_taxonomies')
|
active_taxonomies = r_serv_tags.smembers('active_taxonomies')
|
||||||
|
@ -600,6 +609,7 @@ def taxonomies():
|
||||||
|
|
||||||
@Tags.route("/Tags/edit_taxonomie")
|
@Tags.route("/Tags/edit_taxonomie")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_taxonomie():
|
def edit_taxonomie():
|
||||||
|
|
||||||
taxonomies = Taxonomies()
|
taxonomies = Taxonomies()
|
||||||
|
@ -649,6 +659,7 @@ def edit_taxonomie():
|
||||||
|
|
||||||
@Tags.route("/Tags/disable_taxonomie")
|
@Tags.route("/Tags/disable_taxonomie")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def disable_taxonomie():
|
def disable_taxonomie():
|
||||||
|
|
||||||
taxonomies = Taxonomies()
|
taxonomies = Taxonomies()
|
||||||
|
@ -670,6 +681,7 @@ def disable_taxonomie():
|
||||||
|
|
||||||
@Tags.route("/Tags/active_taxonomie")
|
@Tags.route("/Tags/active_taxonomie")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def active_taxonomie():
|
def active_taxonomie():
|
||||||
|
|
||||||
taxonomies = Taxonomies()
|
taxonomies = Taxonomies()
|
||||||
|
@ -690,6 +702,7 @@ def active_taxonomie():
|
||||||
|
|
||||||
@Tags.route("/Tags/edit_taxonomie_tag")
|
@Tags.route("/Tags/edit_taxonomie_tag")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_taxonomie_tag():
|
def edit_taxonomie_tag():
|
||||||
|
|
||||||
taxonomies = Taxonomies()
|
taxonomies = Taxonomies()
|
||||||
|
@ -733,6 +746,7 @@ def edit_taxonomie_tag():
|
||||||
|
|
||||||
@Tags.route("/Tags/galaxies")
|
@Tags.route("/Tags/galaxies")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def galaxies():
|
def galaxies():
|
||||||
|
|
||||||
active_galaxies = r_serv_tags.smembers('active_galaxies')
|
active_galaxies = r_serv_tags.smembers('active_galaxies')
|
||||||
|
@ -780,6 +794,7 @@ def galaxies():
|
||||||
|
|
||||||
@Tags.route("/Tags/edit_galaxy")
|
@Tags.route("/Tags/edit_galaxy")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_galaxy():
|
def edit_galaxy():
|
||||||
|
|
||||||
id = request.args.get('galaxy')
|
id = request.args.get('galaxy')
|
||||||
|
@ -848,6 +863,7 @@ def edit_galaxy():
|
||||||
|
|
||||||
@Tags.route("/Tags/active_galaxy")
|
@Tags.route("/Tags/active_galaxy")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def active_galaxy():
|
def active_galaxy():
|
||||||
|
|
||||||
id = request.args.get('galaxy')
|
id = request.args.get('galaxy')
|
||||||
|
@ -893,6 +909,7 @@ def active_galaxy():
|
||||||
|
|
||||||
@Tags.route("/Tags/disable_galaxy")
|
@Tags.route("/Tags/disable_galaxy")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def disable_galaxy():
|
def disable_galaxy():
|
||||||
|
|
||||||
id = request.args.get('galaxy')
|
id = request.args.get('galaxy')
|
||||||
|
@ -914,6 +931,7 @@ def disable_galaxy():
|
||||||
|
|
||||||
@Tags.route("/Tags/edit_galaxy_tag")
|
@Tags.route("/Tags/edit_galaxy_tag")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_galaxy_tag():
|
def edit_galaxy_tag():
|
||||||
|
|
||||||
arg1 = request.args.getlist('tag_enabled')
|
arg1 = request.args.getlist('tag_enabled')
|
||||||
|
@ -987,6 +1005,7 @@ def edit_galaxy_tag():
|
||||||
|
|
||||||
@Tags.route("/Tags/tag_galaxy_info")
|
@Tags.route("/Tags/tag_galaxy_info")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def tag_galaxy_info():
|
def tag_galaxy_info():
|
||||||
|
|
||||||
galaxy = request.args.get('galaxy')
|
galaxy = request.args.get('galaxy')
|
||||||
|
|
|
@ -13,6 +13,8 @@ import flask
|
||||||
from Date import Date
|
from Date import Date
|
||||||
|
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, url_for
|
from flask import Flask, render_template, jsonify, request, Blueprint, url_for
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
# ============ VARIABLES ============
|
# ============ VARIABLES ============
|
||||||
|
@ -111,11 +113,13 @@ def datetime_from_utc_to_local(utc_str):
|
||||||
|
|
||||||
@dashboard.route("/_logs")
|
@dashboard.route("/_logs")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def logs():
|
def logs():
|
||||||
return flask.Response(event_stream(), mimetype="text/event-stream")
|
return flask.Response(event_stream(), mimetype="text/event-stream")
|
||||||
|
|
||||||
@dashboard.route("/_get_last_logs_json")
|
@dashboard.route("/_get_last_logs_json")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_last_logs_json():
|
def get_last_logs_json():
|
||||||
date = datetime.datetime.now().strftime("%Y%m%d")
|
date = datetime.datetime.now().strftime("%Y%m%d")
|
||||||
|
|
||||||
|
@ -158,12 +162,14 @@ def get_last_logs_json():
|
||||||
|
|
||||||
@dashboard.route("/_stuff", methods=['GET'])
|
@dashboard.route("/_stuff", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def stuff():
|
def stuff():
|
||||||
return jsonify(row1=get_queues(r_serv))
|
return jsonify(row1=get_queues(r_serv))
|
||||||
|
|
||||||
|
|
||||||
@dashboard.route("/")
|
@dashboard.route("/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def index():
|
def index():
|
||||||
default_minute = cfg.get("Flask", "minute_processed_paste")
|
default_minute = cfg.get("Flask", "minute_processed_paste")
|
||||||
threshold_stucked_module = cfg.getint("Module_ModuleInformation", "threshold_stucked_module")
|
threshold_stucked_module = cfg.getint("Module_ModuleInformation", "threshold_stucked_module")
|
||||||
|
|
|
@ -17,6 +17,7 @@ from hashlib import sha256
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, redirect, url_for, send_file
|
from flask import Flask, render_template, jsonify, request, Blueprint, redirect, url_for, send_file
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
# ============ VARIABLES ============
|
# ============ VARIABLES ============
|
||||||
|
@ -476,6 +477,7 @@ def correlation_graph_node_json(correlation_type, type_id, key_id):
|
||||||
# ============= ROUTES ==============
|
# ============= ROUTES ==============
|
||||||
@hashDecoded.route("/hashDecoded/all_hash_search", methods=['POST'])
|
@hashDecoded.route("/hashDecoded/all_hash_search", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def all_hash_search():
|
def all_hash_search():
|
||||||
date_from = request.form.get('date_from')
|
date_from = request.form.get('date_from')
|
||||||
date_to = request.form.get('date_to')
|
date_to = request.form.get('date_to')
|
||||||
|
@ -486,6 +488,7 @@ def all_hash_search():
|
||||||
|
|
||||||
@hashDecoded.route("/hashDecoded/", methods=['GET'])
|
@hashDecoded.route("/hashDecoded/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hashDecoded_page():
|
def hashDecoded_page():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -604,6 +607,7 @@ def hashDecoded_page():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_by_type')
|
@hashDecoded.route('/hashDecoded/hash_by_type')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_by_type():
|
def hash_by_type():
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
type = 'text/plain'
|
type = 'text/plain'
|
||||||
|
@ -612,6 +616,7 @@ def hash_by_type():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_hash')
|
@hashDecoded.route('/hashDecoded/hash_hash')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_hash():
|
def hash_hash():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
return render_template('hash_hash.html')
|
return render_template('hash_hash.html')
|
||||||
|
@ -619,6 +624,7 @@ def hash_hash():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/showHash')
|
@hashDecoded.route('/hashDecoded/showHash')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showHash():
|
def showHash():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
#hash = 'e02055d3efaad5d656345f6a8b1b6be4fe8cb5ea'
|
#hash = 'e02055d3efaad5d656345f6a8b1b6be4fe8cb5ea'
|
||||||
|
@ -673,6 +679,7 @@ def showHash():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/downloadHash')
|
@hashDecoded.route('/hashDecoded/downloadHash')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def downloadHash():
|
def downloadHash():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
# sanitize hash
|
# sanitize hash
|
||||||
|
@ -710,6 +717,7 @@ def downloadHash():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_by_type_json')
|
@hashDecoded.route('/hashDecoded/hash_by_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_by_type_json():
|
def hash_by_type_json():
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
|
|
||||||
|
@ -744,6 +752,7 @@ def hash_by_type_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/decoder_type_json')
|
@hashDecoded.route('/hashDecoded/decoder_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def decoder_type_json():
|
def decoder_type_json():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -800,6 +809,7 @@ def decoder_type_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/top5_type_json')
|
@hashDecoded.route('/hashDecoded/top5_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def top5_type_json():
|
def top5_type_json():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -859,6 +869,7 @@ def top5_type_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/daily_type_json')
|
@hashDecoded.route('/hashDecoded/daily_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def daily_type_json():
|
def daily_type_json():
|
||||||
date = request.args.get('date')
|
date = request.args.get('date')
|
||||||
|
|
||||||
|
@ -879,6 +890,7 @@ def daily_type_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/range_type_json')
|
@hashDecoded.route('/hashDecoded/range_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def range_type_json():
|
def range_type_json():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -936,6 +948,7 @@ def range_type_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_graph_line_json')
|
@hashDecoded.route('/hashDecoded/hash_graph_line_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_graph_line_json():
|
def hash_graph_line_json():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
|
@ -966,6 +979,7 @@ def hash_graph_line_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_graph_node_json')
|
@hashDecoded.route('/hashDecoded/hash_graph_node_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_graph_node_json():
|
def hash_graph_node_json():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
|
|
||||||
|
@ -1034,6 +1048,7 @@ def hash_graph_node_json():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/hash_types')
|
@hashDecoded.route('/hashDecoded/hash_types')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def hash_types():
|
def hash_types():
|
||||||
date_from = 20180701
|
date_from = 20180701
|
||||||
date_to = 20180706
|
date_to = 20180706
|
||||||
|
@ -1042,6 +1057,7 @@ def hash_types():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/send_file_to_vt_js')
|
@hashDecoded.route('/hashDecoded/send_file_to_vt_js')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def send_file_to_vt_js():
|
def send_file_to_vt_js():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
|
|
||||||
|
@ -1066,6 +1082,7 @@ def send_file_to_vt_js():
|
||||||
|
|
||||||
@hashDecoded.route('/hashDecoded/update_vt_result')
|
@hashDecoded.route('/hashDecoded/update_vt_result')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def update_vt_result():
|
def update_vt_result():
|
||||||
hash = request.args.get('hash')
|
hash = request.args.get('hash')
|
||||||
|
|
||||||
|
@ -1102,6 +1119,8 @@ def update_vt_result():
|
||||||
############################ PGPDump ############################
|
############################ PGPDump ############################
|
||||||
|
|
||||||
@hashDecoded.route('/decoded/pgp_by_type_json') ## TODO: REFRACTOR
|
@hashDecoded.route('/decoded/pgp_by_type_json') ## TODO: REFRACTOR
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def pgp_by_type_json():
|
def pgp_by_type_json():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
|
@ -1146,6 +1165,8 @@ def pgp_by_type_json():
|
||||||
|
|
||||||
############################ Correlation ############################
|
############################ Correlation ############################
|
||||||
@hashDecoded.route("/correlation/pgpdump", methods=['GET'])
|
@hashDecoded.route("/correlation/pgpdump", methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def pgpdump_page():
|
def pgpdump_page():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -1156,6 +1177,8 @@ def pgpdump_page():
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@hashDecoded.route("/correlation/cryptocurrency", methods=['GET'])
|
@hashDecoded.route("/correlation/cryptocurrency", methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def cryptocurrency_page():
|
def cryptocurrency_page():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -1166,6 +1189,8 @@ def cryptocurrency_page():
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@hashDecoded.route("/correlation/all_pgpdump_search", methods=['POST'])
|
@hashDecoded.route("/correlation/all_pgpdump_search", methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def all_pgpdump_search():
|
def all_pgpdump_search():
|
||||||
date_from = request.form.get('date_from')
|
date_from = request.form.get('date_from')
|
||||||
date_to = request.form.get('date_to')
|
date_to = request.form.get('date_to')
|
||||||
|
@ -1174,6 +1199,8 @@ def all_pgpdump_search():
|
||||||
return redirect(url_for('hashDecoded.pgpdump_page', date_from=date_from, date_to=date_to, type_id=type_id, show_decoded_files=show_decoded_files))
|
return redirect(url_for('hashDecoded.pgpdump_page', date_from=date_from, date_to=date_to, type_id=type_id, show_decoded_files=show_decoded_files))
|
||||||
|
|
||||||
@hashDecoded.route("/correlation/all_cryptocurrency_search", methods=['POST'])
|
@hashDecoded.route("/correlation/all_cryptocurrency_search", methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def all_cryptocurrency_search():
|
def all_cryptocurrency_search():
|
||||||
date_from = request.form.get('date_from')
|
date_from = request.form.get('date_from')
|
||||||
date_to = request.form.get('date_to')
|
date_to = request.form.get('date_to')
|
||||||
|
@ -1182,6 +1209,8 @@ def all_cryptocurrency_search():
|
||||||
return redirect(url_for('hashDecoded.cryptocurrency_page', date_from=date_from, date_to=date_to, type_id=type_id, show_decoded_files=show_decoded_files))
|
return redirect(url_for('hashDecoded.cryptocurrency_page', date_from=date_from, date_to=date_to, type_id=type_id, show_decoded_files=show_decoded_files))
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/show_pgpdump')
|
@hashDecoded.route('/correlation/show_pgpdump')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def show_pgpdump():
|
def show_pgpdump():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
|
@ -1189,36 +1218,48 @@ def show_pgpdump():
|
||||||
|
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/show_cryptocurrency')
|
@hashDecoded.route('/correlation/show_cryptocurrency')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def show_cryptocurrency():
|
def show_cryptocurrency():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
return show_correlation('cryptocurrency', type_id, key_id)
|
return show_correlation('cryptocurrency', type_id, key_id)
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/cryptocurrency_range_type_json')
|
@hashDecoded.route('/correlation/cryptocurrency_range_type_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def cryptocurrency_range_type_json():
|
def cryptocurrency_range_type_json():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
return correlation_type_range_type_json('cryptocurrency', date_from, date_to)
|
return correlation_type_range_type_json('cryptocurrency', date_from, date_to)
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/pgpdump_range_type_json')
|
@hashDecoded.route('/correlation/pgpdump_range_type_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def pgpdump_range_type_json():
|
def pgpdump_range_type_json():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
return correlation_type_range_type_json('pgpdump', date_from, date_to)
|
return correlation_type_range_type_json('pgpdump', date_from, date_to)
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/pgpdump_graph_node_json')
|
@hashDecoded.route('/correlation/pgpdump_graph_node_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def pgpdump_graph_node_json():
|
def pgpdump_graph_node_json():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
return correlation_graph_node_json('pgpdump', type_id, key_id)
|
return correlation_graph_node_json('pgpdump', type_id, key_id)
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/cryptocurrency_graph_node_json')
|
@hashDecoded.route('/correlation/cryptocurrency_graph_node_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def cryptocurrency_graph_node_json():
|
def cryptocurrency_graph_node_json():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
return correlation_graph_node_json('cryptocurrency', type_id, key_id)
|
return correlation_graph_node_json('cryptocurrency', type_id, key_id)
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/pgpdump_graph_line_json')
|
@hashDecoded.route('/correlation/pgpdump_graph_line_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def pgpdump_graph_line_json():
|
def pgpdump_graph_line_json():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
|
@ -1251,6 +1292,8 @@ def correlation_graph_line_json(correlation_type, type_id, key_id, date_from, da
|
||||||
return jsonify()
|
return jsonify()
|
||||||
|
|
||||||
@hashDecoded.route('/correlation/cryptocurrency_graph_line_json')
|
@hashDecoded.route('/correlation/cryptocurrency_graph_line_json')
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def cryptocurrency_graph_line_json():
|
def cryptocurrency_graph_line_json():
|
||||||
type_id = request.args.get('type_id')
|
type_id = request.args.get('type_id')
|
||||||
key_id = request.args.get('key_id')
|
key_id = request.args.get('key_id')
|
||||||
|
|
|
@ -12,6 +12,8 @@ import time
|
||||||
import json
|
import json
|
||||||
from pyfaup.faup import Faup
|
from pyfaup.faup import Faup
|
||||||
from flask import Flask, render_template, jsonify, request, send_file, Blueprint, redirect, url_for
|
from flask import Flask, render_template, jsonify, request, send_file, Blueprint, redirect, url_for
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
from Date import Date
|
from Date import Date
|
||||||
|
@ -241,6 +243,7 @@ def delete_auto_crawler(url):
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/", methods=['GET'])
|
@hiddenServices.route("/crawlers/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def dashboard():
|
def dashboard():
|
||||||
crawler_metadata_onion = get_crawler_splash_status('onion')
|
crawler_metadata_onion = get_crawler_splash_status('onion')
|
||||||
crawler_metadata_regular = get_crawler_splash_status('regular')
|
crawler_metadata_regular = get_crawler_splash_status('regular')
|
||||||
|
@ -255,18 +258,15 @@ def dashboard():
|
||||||
crawler_metadata_regular=crawler_metadata_regular,
|
crawler_metadata_regular=crawler_metadata_regular,
|
||||||
statDomains_onion=statDomains_onion, statDomains_regular=statDomains_regular)
|
statDomains_onion=statDomains_onion, statDomains_regular=statDomains_regular)
|
||||||
|
|
||||||
@hiddenServices.route("/hiddenServices/2", methods=['GET'])
|
|
||||||
@login_required
|
|
||||||
def hiddenServices_page_test():
|
|
||||||
return render_template("Crawler_index.html")
|
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/manual", methods=['GET'])
|
@hiddenServices.route("/crawlers/manual", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def manual():
|
def manual():
|
||||||
return render_template("Crawler_Splash_manual.html", crawler_enabled=crawler_enabled)
|
return render_template("Crawler_Splash_manual.html", crawler_enabled=crawler_enabled)
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/crawler_splash_onion", methods=['GET'])
|
@hiddenServices.route("/crawlers/crawler_splash_onion", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def crawler_splash_onion():
|
def crawler_splash_onion():
|
||||||
type = 'onion'
|
type = 'onion'
|
||||||
last_onions = get_last_domains_crawled(type)
|
last_onions = get_last_domains_crawled(type)
|
||||||
|
@ -285,6 +285,7 @@ def crawler_splash_onion():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/Crawler_Splash_last_by_type", methods=['GET'])
|
@hiddenServices.route("/crawlers/Crawler_Splash_last_by_type", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def Crawler_Splash_last_by_type():
|
def Crawler_Splash_last_by_type():
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
# verify user input
|
# verify user input
|
||||||
|
@ -309,6 +310,7 @@ def Crawler_Splash_last_by_type():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/blacklisted_domains", methods=['GET'])
|
@hiddenServices.route("/crawlers/blacklisted_domains", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def blacklisted_domains():
|
def blacklisted_domains():
|
||||||
blacklist_domain = request.args.get('blacklist_domain')
|
blacklist_domain = request.args.get('blacklist_domain')
|
||||||
unblacklist_domain = request.args.get('unblacklist_domain')
|
unblacklist_domain = request.args.get('unblacklist_domain')
|
||||||
|
@ -344,6 +346,7 @@ def blacklisted_domains():
|
||||||
|
|
||||||
@hiddenServices.route("/crawler/blacklist_domain", methods=['GET'])
|
@hiddenServices.route("/crawler/blacklist_domain", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def blacklist_domain():
|
def blacklist_domain():
|
||||||
domain = request.args.get('domain')
|
domain = request.args.get('domain')
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
|
@ -366,6 +369,7 @@ def blacklist_domain():
|
||||||
|
|
||||||
@hiddenServices.route("/crawler/unblacklist_domain", methods=['GET'])
|
@hiddenServices.route("/crawler/unblacklist_domain", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def unblacklist_domain():
|
def unblacklist_domain():
|
||||||
domain = request.args.get('domain')
|
domain = request.args.get('domain')
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
|
@ -388,6 +392,7 @@ def unblacklist_domain():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/create_spider_splash", methods=['POST'])
|
@hiddenServices.route("/crawlers/create_spider_splash", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def create_spider_splash():
|
def create_spider_splash():
|
||||||
url = request.form.get('url_to_crawl')
|
url = request.form.get('url_to_crawl')
|
||||||
automatic = request.form.get('crawler_type')
|
automatic = request.form.get('crawler_type')
|
||||||
|
@ -475,6 +480,7 @@ def create_spider_splash():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/auto_crawler", methods=['GET'])
|
@hiddenServices.route("/crawlers/auto_crawler", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def auto_crawler():
|
def auto_crawler():
|
||||||
nb_element_to_display = 100
|
nb_element_to_display = 100
|
||||||
try:
|
try:
|
||||||
|
@ -528,6 +534,7 @@ def auto_crawler():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/remove_auto_crawler", methods=['GET'])
|
@hiddenServices.route("/crawlers/remove_auto_crawler", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def remove_auto_crawler():
|
def remove_auto_crawler():
|
||||||
url = request.args.get('url')
|
url = request.args.get('url')
|
||||||
page = request.args.get('page')
|
page = request.args.get('page')
|
||||||
|
@ -538,6 +545,7 @@ def remove_auto_crawler():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/crawler_dashboard_json", methods=['GET'])
|
@hiddenServices.route("/crawlers/crawler_dashboard_json", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def crawler_dashboard_json():
|
def crawler_dashboard_json():
|
||||||
|
|
||||||
crawler_metadata_onion = get_crawler_splash_status('onion')
|
crawler_metadata_onion = get_crawler_splash_status('onion')
|
||||||
|
@ -555,6 +563,7 @@ def crawler_dashboard_json():
|
||||||
# # TODO: refractor
|
# # TODO: refractor
|
||||||
@hiddenServices.route("/hiddenServices/last_crawled_domains_with_stats_json", methods=['GET'])
|
@hiddenServices.route("/hiddenServices/last_crawled_domains_with_stats_json", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def last_crawled_domains_with_stats_json():
|
def last_crawled_domains_with_stats_json():
|
||||||
last_onions = r_serv_onion.lrange('last_onion', 0 ,-1)
|
last_onions = r_serv_onion.lrange('last_onion', 0 ,-1)
|
||||||
list_onion = []
|
list_onion = []
|
||||||
|
@ -605,6 +614,7 @@ def last_crawled_domains_with_stats_json():
|
||||||
|
|
||||||
@hiddenServices.route("/hiddenServices/get_onions_by_daterange", methods=['POST'])
|
@hiddenServices.route("/hiddenServices/get_onions_by_daterange", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_onions_by_daterange():
|
def get_onions_by_daterange():
|
||||||
date_from = request.form.get('date_from')
|
date_from = request.form.get('date_from')
|
||||||
date_to = request.form.get('date_to')
|
date_to = request.form.get('date_to')
|
||||||
|
@ -617,6 +627,7 @@ def get_onions_by_daterange():
|
||||||
|
|
||||||
@hiddenServices.route("/hiddenServices/show_domains_by_daterange", methods=['GET'])
|
@hiddenServices.route("/hiddenServices/show_domains_by_daterange", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def show_domains_by_daterange():
|
def show_domains_by_daterange():
|
||||||
date_from = request.args.get('date_from')
|
date_from = request.args.get('date_from')
|
||||||
date_to = request.args.get('date_to')
|
date_to = request.args.get('date_to')
|
||||||
|
@ -722,6 +733,7 @@ def show_domains_by_daterange():
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/show_domain", methods=['GET'])
|
@hiddenServices.route("/crawlers/show_domain", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def show_domain():
|
def show_domain():
|
||||||
domain = request.args.get('domain')
|
domain = request.args.get('domain')
|
||||||
epoch = request.args.get('epoch')
|
epoch = request.args.get('epoch')
|
||||||
|
@ -805,6 +817,8 @@ def show_domain():
|
||||||
domain_tags=domain_tags, screenshot=screenshot)
|
domain_tags=domain_tags, screenshot=screenshot)
|
||||||
|
|
||||||
@hiddenServices.route("/crawlers/download_domain", methods=['GET'])
|
@hiddenServices.route("/crawlers/download_domain", methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def download_domain():
|
def download_domain():
|
||||||
domain = request.args.get('domain')
|
domain = request.args.get('domain')
|
||||||
epoch = request.args.get('epoch')
|
epoch = request.args.get('epoch')
|
||||||
|
@ -857,6 +871,7 @@ def download_domain():
|
||||||
|
|
||||||
@hiddenServices.route("/hiddenServices/onion_son", methods=['GET'])
|
@hiddenServices.route("/hiddenServices/onion_son", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def onion_son():
|
def onion_son():
|
||||||
onion_domain = request.args.get('onion_domain')
|
onion_domain = request.args.get('onion_domain')
|
||||||
|
|
||||||
|
@ -868,6 +883,7 @@ def onion_son():
|
||||||
# ============= JSON ==============
|
# ============= JSON ==============
|
||||||
@hiddenServices.route("/hiddenServices/domain_crawled_7days_json", methods=['GET'])
|
@hiddenServices.route("/hiddenServices/domain_crawled_7days_json", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def domain_crawled_7days_json():
|
def domain_crawled_7days_json():
|
||||||
type = 'onion'
|
type = 'onion'
|
||||||
## TODO: # FIXME: 404 error
|
## TODO: # FIXME: 404 error
|
||||||
|
@ -887,6 +903,7 @@ def domain_crawled_7days_json():
|
||||||
|
|
||||||
@hiddenServices.route('/hiddenServices/domain_crawled_by_type_json')
|
@hiddenServices.route('/hiddenServices/domain_crawled_by_type_json')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def domain_crawled_by_type_json():
|
def domain_crawled_by_type_json():
|
||||||
current_date = request.args.get('date')
|
current_date = request.args.get('date')
|
||||||
type = request.args.get('type')
|
type = request.args.get('type')
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
'''
|
'''
|
||||||
import redis
|
import redis
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint
|
from flask import Flask, render_template, jsonify, request, Blueprint
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
# ============ VARIABLES ============
|
# ============ VARIABLES ============
|
||||||
|
@ -24,6 +26,7 @@ def one():
|
||||||
|
|
||||||
@rawSkeleton.route("/rawSkeleton/", methods=['GET'])
|
@rawSkeleton.route("/rawSkeleton/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def skeleton_page():
|
def skeleton_page():
|
||||||
return render_template("rawSkeleton.html")
|
return render_template("rawSkeleton.html")
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@ import os
|
||||||
import datetime
|
import datetime
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint
|
from flask import Flask, render_template, jsonify, request, Blueprint
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
import Paste
|
import Paste
|
||||||
|
@ -95,6 +97,7 @@ def to_iso_date(timestamp):
|
||||||
|
|
||||||
@searches.route("/search", methods=['POST'])
|
@searches.route("/search", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def search():
|
def search():
|
||||||
query = request.form['query']
|
query = request.form['query']
|
||||||
q = []
|
q = []
|
||||||
|
@ -183,6 +186,7 @@ def search():
|
||||||
|
|
||||||
@searches.route("/get_more_search_result", methods=['POST'])
|
@searches.route("/get_more_search_result", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_more_search_result():
|
def get_more_search_result():
|
||||||
query = request.form['query']
|
query = request.form['query']
|
||||||
q = []
|
q = []
|
||||||
|
|
|
@ -10,6 +10,8 @@ import calendar
|
||||||
from Date import Date
|
from Date import Date
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint
|
from flask import Flask, render_template, jsonify, request, Blueprint
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
import Paste
|
import Paste
|
||||||
|
@ -41,12 +43,14 @@ def get_date_range(num_day):
|
||||||
|
|
||||||
@sentiments.route("/sentiment_analysis_trending/")
|
@sentiments.route("/sentiment_analysis_trending/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def sentiment_analysis_trending():
|
def sentiment_analysis_trending():
|
||||||
return render_template("sentiment_analysis_trending.html")
|
return render_template("sentiment_analysis_trending.html")
|
||||||
|
|
||||||
|
|
||||||
@sentiments.route("/sentiment_analysis_getplotdata/", methods=['GET'])
|
@sentiments.route("/sentiment_analysis_getplotdata/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def sentiment_analysis_getplotdata():
|
def sentiment_analysis_getplotdata():
|
||||||
# Get the top providers based on number of pastes
|
# Get the top providers based on number of pastes
|
||||||
oneHour = 60*60
|
oneHour = 60*60
|
||||||
|
@ -98,6 +102,7 @@ def sentiment_analysis_getplotdata():
|
||||||
|
|
||||||
@sentiments.route("/sentiment_analysis_plot_tool/")
|
@sentiments.route("/sentiment_analysis_plot_tool/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def sentiment_analysis_plot_tool():
|
def sentiment_analysis_plot_tool():
|
||||||
return render_template("sentiment_analysis_plot_tool.html")
|
return render_template("sentiment_analysis_plot_tool.html")
|
||||||
|
|
||||||
|
@ -105,6 +110,7 @@ def sentiment_analysis_plot_tool():
|
||||||
|
|
||||||
@sentiments.route("/sentiment_analysis_plot_tool_getdata/", methods=['GET'])
|
@sentiments.route("/sentiment_analysis_plot_tool_getdata/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def sentiment_analysis_plot_tool_getdata():
|
def sentiment_analysis_plot_tool_getdata():
|
||||||
getProviders = request.args.get('getProviders')
|
getProviders = request.args.get('getProviders')
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, redirect, url_for
|
from flask import Flask, render_template, jsonify, request, Blueprint, redirect, url_for
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
|
|
||||||
from Role_Manager import login_admin, login_analyst, create_user_db, edit_user_db, delete_user_db, check_password_strength
|
from Role_Manager import login_admin, login_analyst
|
||||||
|
from Role_Manager import create_user_db, edit_user_db, delete_user_db, check_password_strength
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import secrets
|
import secrets
|
||||||
|
@ -104,6 +105,7 @@ def get_all_roles():
|
||||||
|
|
||||||
@settings.route("/settings/", methods=['GET'])
|
@settings.route("/settings/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def settings_page():
|
def settings_page():
|
||||||
git_metadata = get_git_metadata()
|
git_metadata = get_git_metadata()
|
||||||
current_version = r_serv_db.get('ail:version')
|
current_version = r_serv_db.get('ail:version')
|
||||||
|
@ -114,18 +116,21 @@ def settings_page():
|
||||||
|
|
||||||
@settings.route("/settings/edit_profile", methods=['GET'])
|
@settings.route("/settings/edit_profile", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def edit_profile():
|
def edit_profile():
|
||||||
user_metadata = get_user_metadata(current_user.get_id())
|
user_metadata = get_user_metadata(current_user.get_id())
|
||||||
return render_template("edit_profile.html", user_metadata=user_metadata)
|
return render_template("edit_profile.html", user_metadata=user_metadata)
|
||||||
|
|
||||||
@settings.route("/settings/new_token", methods=['GET'])
|
@settings.route("/settings/new_token", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def new_token():
|
def new_token():
|
||||||
generate_new_token(current_user.get_id())
|
generate_new_token(current_user.get_id())
|
||||||
return redirect(url_for('settings.edit_profile'))
|
return redirect(url_for('settings.edit_profile'))
|
||||||
|
|
||||||
@settings.route("/settings/new_token_user", methods=['GET'])
|
@settings.route("/settings/new_token_user", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def new_token_user():
|
def new_token_user():
|
||||||
user_id = request.args.get('user_id')
|
user_id = request.args.get('user_id')
|
||||||
if r_serv_db.exists('user_metadata:{}'.format(user_id)):
|
if r_serv_db.exists('user_metadata:{}'.format(user_id)):
|
||||||
|
@ -134,6 +139,7 @@ def new_token_user():
|
||||||
|
|
||||||
@settings.route("/settings/create_user", methods=['GET'])
|
@settings.route("/settings/create_user", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def create_user():
|
def create_user():
|
||||||
user_id = request.args.get('user_id')
|
user_id = request.args.get('user_id')
|
||||||
role = None
|
role = None
|
||||||
|
@ -146,6 +152,7 @@ def create_user():
|
||||||
|
|
||||||
@settings.route("/settings/create_user_post", methods=['POST'])
|
@settings.route("/settings/create_user_post", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def create_user_post():
|
def create_user_post():
|
||||||
email = request.form.get('username')
|
email = request.form.get('username')
|
||||||
role = request.form.get('user_role')
|
role = request.form.get('user_role')
|
||||||
|
@ -190,6 +197,7 @@ def create_user_post():
|
||||||
|
|
||||||
@settings.route("/settings/users_list", methods=['GET'])
|
@settings.route("/settings/users_list", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def users_list():
|
def users_list():
|
||||||
all_users = get_users_metadata(get_all_users())
|
all_users = get_users_metadata(get_all_users())
|
||||||
new_user = request.args.get('new_user')
|
new_user = request.args.get('new_user')
|
||||||
|
@ -202,12 +210,14 @@ def users_list():
|
||||||
|
|
||||||
@settings.route("/settings/edit_user", methods=['GET'])
|
@settings.route("/settings/edit_user", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def edit_user():
|
def edit_user():
|
||||||
user_id = request.args.get('user_id')
|
user_id = request.args.get('user_id')
|
||||||
return redirect(url_for('settings.create_user', user_id=user_id))
|
return redirect(url_for('settings.create_user', user_id=user_id))
|
||||||
|
|
||||||
@settings.route("/settings/delete_user", methods=['GET'])
|
@settings.route("/settings/delete_user", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_admin
|
||||||
def delete_user():
|
def delete_user():
|
||||||
user_id = request.args.get('user_id')
|
user_id = request.args.get('user_id')
|
||||||
delete_user_db(user_id)
|
delete_user_db(user_id)
|
||||||
|
@ -216,6 +226,7 @@ def delete_user():
|
||||||
|
|
||||||
@settings.route("/settings/get_background_update_stats_json", methods=['GET'])
|
@settings.route("/settings/get_background_update_stats_json", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def get_background_update_stats_json():
|
def get_background_update_stats_json():
|
||||||
# handle :end, error
|
# handle :end, error
|
||||||
update_stats = {}
|
update_stats = {}
|
||||||
|
|
|
@ -9,6 +9,8 @@ import json
|
||||||
import os
|
import os
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, make_response, Response, send_from_directory, redirect, url_for
|
from flask import Flask, render_template, jsonify, request, Blueprint, make_response, Response, send_from_directory, redirect, url_for
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
import difflib
|
import difflib
|
||||||
|
@ -383,18 +385,21 @@ def show_item_min(requested_path , content_range=0):
|
||||||
|
|
||||||
@showsavedpastes.route("/showsavedpaste/") #completely shows the paste in a new tab
|
@showsavedpastes.route("/showsavedpaste/") #completely shows the paste in a new tab
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showsavedpaste():
|
def showsavedpaste():
|
||||||
requested_path = request.args.get('paste', '')
|
requested_path = request.args.get('paste', '')
|
||||||
return showpaste(0, requested_path)
|
return showpaste(0, requested_path)
|
||||||
|
|
||||||
@showsavedpastes.route("/showsaveditem_min/") #completely shows the paste in a new tab
|
@showsavedpastes.route("/showsaveditem_min/") #completely shows the paste in a new tab
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showsaveditem_min():
|
def showsaveditem_min():
|
||||||
requested_path = request.args.get('paste', '')
|
requested_path = request.args.get('paste', '')
|
||||||
return show_item_min(requested_path)
|
return show_item_min(requested_path)
|
||||||
|
|
||||||
@showsavedpastes.route("/showsavedrawpaste/") #shows raw
|
@showsavedpastes.route("/showsavedrawpaste/") #shows raw
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showsavedrawpaste():
|
def showsavedrawpaste():
|
||||||
requested_path = request.args.get('paste', '')
|
requested_path = request.args.get('paste', '')
|
||||||
paste = Paste.Paste(requested_path)
|
paste = Paste.Paste(requested_path)
|
||||||
|
@ -403,6 +408,7 @@ def showsavedrawpaste():
|
||||||
|
|
||||||
@showsavedpastes.route("/showpreviewpaste/")
|
@showsavedpastes.route("/showpreviewpaste/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showpreviewpaste():
|
def showpreviewpaste():
|
||||||
num = request.args.get('num', '')
|
num = request.args.get('num', '')
|
||||||
requested_path = request.args.get('paste', '')
|
requested_path = request.args.get('paste', '')
|
||||||
|
@ -411,6 +417,7 @@ def showpreviewpaste():
|
||||||
|
|
||||||
@showsavedpastes.route("/getmoredata/")
|
@showsavedpastes.route("/getmoredata/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def getmoredata():
|
def getmoredata():
|
||||||
requested_path = request.args.get('paste', '')
|
requested_path = request.args.get('paste', '')
|
||||||
paste = Paste.Paste(requested_path)
|
paste = Paste.Paste(requested_path)
|
||||||
|
@ -420,6 +427,7 @@ def getmoredata():
|
||||||
|
|
||||||
@showsavedpastes.route("/showDiff/")
|
@showsavedpastes.route("/showDiff/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def showDiff():
|
def showDiff():
|
||||||
s1 = request.args.get('s1', '')
|
s1 = request.args.get('s1', '')
|
||||||
s2 = request.args.get('s2', '')
|
s2 = request.args.get('s2', '')
|
||||||
|
@ -437,11 +445,13 @@ def showDiff():
|
||||||
|
|
||||||
@showsavedpastes.route('/screenshot/<path:filename>')
|
@showsavedpastes.route('/screenshot/<path:filename>')
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def screenshot(filename):
|
def screenshot(filename):
|
||||||
return send_from_directory(SCREENSHOT_FOLDER, filename+'.png', as_attachment=True)
|
return send_from_directory(SCREENSHOT_FOLDER, filename+'.png', as_attachment=True)
|
||||||
|
|
||||||
@showsavedpastes.route('/send_file_to_vt/', methods=['POST'])
|
@showsavedpastes.route('/send_file_to_vt/', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def send_file_to_vt():
|
def send_file_to_vt():
|
||||||
b64_path = request.form['b64_path']
|
b64_path = request.form['b64_path']
|
||||||
paste = request.form['paste']
|
paste = request.form['paste']
|
||||||
|
|
|
@ -11,6 +11,8 @@ import datetime
|
||||||
import calendar
|
import calendar
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint, url_for, redirect
|
from flask import Flask, render_template, jsonify, request, Blueprint, url_for, redirect
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
@ -146,6 +148,7 @@ def save_tag_to_auto_push(list_tag):
|
||||||
|
|
||||||
@terms.route("/terms_management/")
|
@terms.route("/terms_management/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_management():
|
def terms_management():
|
||||||
per_paste = request.args.get('per_paste')
|
per_paste = request.args.get('per_paste')
|
||||||
if per_paste == "1" or per_paste is None:
|
if per_paste == "1" or per_paste is None:
|
||||||
|
@ -265,6 +268,7 @@ def terms_management():
|
||||||
|
|
||||||
@terms.route("/terms_management_query_paste/")
|
@terms.route("/terms_management_query_paste/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_management_query_paste():
|
def terms_management_query_paste():
|
||||||
term = request.args.get('term')
|
term = request.args.get('term')
|
||||||
paste_info = []
|
paste_info = []
|
||||||
|
@ -298,6 +302,7 @@ def terms_management_query_paste():
|
||||||
|
|
||||||
@terms.route("/terms_management_query/")
|
@terms.route("/terms_management_query/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_management_query():
|
def terms_management_query():
|
||||||
TrackedTermsDate_Name = "TrackedTermDate"
|
TrackedTermsDate_Name = "TrackedTermDate"
|
||||||
BlackListTermsDate_Name = "BlackListTermDate"
|
BlackListTermsDate_Name = "BlackListTermDate"
|
||||||
|
@ -321,6 +326,7 @@ def terms_management_query():
|
||||||
|
|
||||||
@terms.route("/terms_management_action/", methods=['GET'])
|
@terms.route("/terms_management_action/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_management_action():
|
def terms_management_action():
|
||||||
today = datetime.datetime.now()
|
today = datetime.datetime.now()
|
||||||
today = today.replace(microsecond=0)
|
today = today.replace(microsecond=0)
|
||||||
|
@ -447,6 +453,7 @@ def terms_management_action():
|
||||||
|
|
||||||
@terms.route("/terms_management/delete_terms_tags", methods=['POST'])
|
@terms.route("/terms_management/delete_terms_tags", methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def delete_terms_tags():
|
def delete_terms_tags():
|
||||||
term = request.form.get('term')
|
term = request.form.get('term')
|
||||||
tags_to_delete = request.form.getlist('tags_to_delete')
|
tags_to_delete = request.form.getlist('tags_to_delete')
|
||||||
|
@ -460,6 +467,7 @@ def delete_terms_tags():
|
||||||
|
|
||||||
@terms.route("/terms_management/delete_terms_email", methods=['GET'])
|
@terms.route("/terms_management/delete_terms_email", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def delete_terms_email():
|
def delete_terms_email():
|
||||||
term = request.args.get('term')
|
term = request.args.get('term')
|
||||||
email = request.args.get('email')
|
email = request.args.get('email')
|
||||||
|
@ -473,6 +481,7 @@ def delete_terms_email():
|
||||||
|
|
||||||
@terms.route("/terms_plot_tool/")
|
@terms.route("/terms_plot_tool/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_plot_tool():
|
def terms_plot_tool():
|
||||||
term = request.args.get('term')
|
term = request.args.get('term')
|
||||||
if term is not None:
|
if term is not None:
|
||||||
|
@ -483,6 +492,7 @@ def terms_plot_tool():
|
||||||
|
|
||||||
@terms.route("/terms_plot_tool_data/")
|
@terms.route("/terms_plot_tool_data/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_plot_tool_data():
|
def terms_plot_tool_data():
|
||||||
oneDay = 60*60*24
|
oneDay = 60*60*24
|
||||||
range_start = datetime.datetime.utcfromtimestamp(int(float(request.args.get('range_start')))) if request.args.get('range_start') is not None else 0;
|
range_start = datetime.datetime.utcfromtimestamp(int(float(request.args.get('range_start')))) if request.args.get('range_start') is not None else 0;
|
||||||
|
@ -514,6 +524,7 @@ def terms_plot_tool_data():
|
||||||
|
|
||||||
@terms.route("/terms_plot_top/")
|
@terms.route("/terms_plot_top/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_plot_top():
|
def terms_plot_top():
|
||||||
per_paste = request.args.get('per_paste')
|
per_paste = request.args.get('per_paste')
|
||||||
per_paste = per_paste if per_paste is not None else 1
|
per_paste = per_paste if per_paste is not None else 1
|
||||||
|
@ -522,6 +533,7 @@ def terms_plot_top():
|
||||||
|
|
||||||
@terms.route("/terms_plot_top_data/")
|
@terms.route("/terms_plot_top_data/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def terms_plot_top_data():
|
def terms_plot_top_data():
|
||||||
oneDay = 60*60*24
|
oneDay = 60*60*24
|
||||||
today = datetime.datetime.now()
|
today = datetime.datetime.now()
|
||||||
|
@ -569,11 +581,13 @@ def terms_plot_top_data():
|
||||||
|
|
||||||
@terms.route("/credentials_tracker/")
|
@terms.route("/credentials_tracker/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def credentials_tracker():
|
def credentials_tracker():
|
||||||
return render_template("credentials_tracker.html")
|
return render_template("credentials_tracker.html")
|
||||||
|
|
||||||
@terms.route("/credentials_management_query_paste/", methods=['GET', 'POST'])
|
@terms.route("/credentials_management_query_paste/", methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def credentials_management_query_paste():
|
def credentials_management_query_paste():
|
||||||
cred = request.args.get('cred')
|
cred = request.args.get('cred')
|
||||||
allPath = request.json['allPath']
|
allPath = request.json['allPath']
|
||||||
|
@ -598,6 +612,7 @@ def credentials_management_query_paste():
|
||||||
|
|
||||||
@terms.route("/credentials_management_action/", methods=['GET'])
|
@terms.route("/credentials_management_action/", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def cred_management_action():
|
def cred_management_action():
|
||||||
|
|
||||||
supplied = request.args.get('term')
|
supplied = request.args.get('term')
|
||||||
|
|
|
@ -9,6 +9,8 @@ import datetime
|
||||||
from Date import Date
|
from Date import Date
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint
|
from flask import Flask, render_template, jsonify, request, Blueprint
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
# ============ VARIABLES ============
|
# ============ VARIABLES ============
|
||||||
|
@ -38,6 +40,7 @@ def get_date_range(num_day):
|
||||||
|
|
||||||
@trendings.route("/_progressionCharts", methods=['GET'])
|
@trendings.route("/_progressionCharts", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def progressionCharts():
|
def progressionCharts():
|
||||||
attribute_name = request.args.get('attributeName')
|
attribute_name = request.args.get('attributeName')
|
||||||
trending_name = request.args.get('trendingName')
|
trending_name = request.args.get('trendingName')
|
||||||
|
@ -64,6 +67,7 @@ def progressionCharts():
|
||||||
|
|
||||||
@trendings.route("/wordstrending/")
|
@trendings.route("/wordstrending/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def wordstrending():
|
def wordstrending():
|
||||||
default_display = cfg.get("Flask", "default_display")
|
default_display = cfg.get("Flask", "default_display")
|
||||||
return render_template("Wordstrending.html", default_display = default_display)
|
return render_template("Wordstrending.html", default_display = default_display)
|
||||||
|
@ -71,6 +75,7 @@ def wordstrending():
|
||||||
|
|
||||||
@trendings.route("/protocolstrending/")
|
@trendings.route("/protocolstrending/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def protocolstrending():
|
def protocolstrending():
|
||||||
default_display = cfg.get("Flask", "default_display")
|
default_display = cfg.get("Flask", "default_display")
|
||||||
return render_template("Protocolstrending.html", default_display = default_display)
|
return render_template("Protocolstrending.html", default_display = default_display)
|
||||||
|
@ -78,6 +83,7 @@ def protocolstrending():
|
||||||
|
|
||||||
@trendings.route("/trending/")
|
@trendings.route("/trending/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def trending():
|
def trending():
|
||||||
default_display = cfg.get("Flask", "default_display")
|
default_display = cfg.get("Flask", "default_display")
|
||||||
return render_template("Trending.html", default_display = default_display)
|
return render_template("Trending.html", default_display = default_display)
|
||||||
|
|
|
@ -9,6 +9,8 @@ import datetime
|
||||||
from Date import Date
|
from Date import Date
|
||||||
import flask
|
import flask
|
||||||
from flask import Flask, render_template, jsonify, request, Blueprint
|
from flask import Flask, render_template, jsonify, request, Blueprint
|
||||||
|
|
||||||
|
from Role_Manager import login_admin, login_analyst
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
|
|
||||||
# ============ VARIABLES ============
|
# ============ VARIABLES ============
|
||||||
|
@ -51,6 +53,7 @@ def get_date_range(num_day):
|
||||||
|
|
||||||
@trendingmodules.route("/_moduleCharts", methods=['GET'])
|
@trendingmodules.route("/_moduleCharts", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def modulesCharts():
|
def modulesCharts():
|
||||||
keyword_name = request.args.get('keywordName')
|
keyword_name = request.args.get('keywordName')
|
||||||
module_name = request.args.get('moduleName')
|
module_name = request.args.get('moduleName')
|
||||||
|
@ -78,6 +81,7 @@ def modulesCharts():
|
||||||
|
|
||||||
@trendingmodules.route("/_providersChart", methods=['GET'])
|
@trendingmodules.route("/_providersChart", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def providersChart():
|
def providersChart():
|
||||||
keyword_name = request.args.get('keywordName')
|
keyword_name = request.args.get('keywordName')
|
||||||
module_name = request.args.get('moduleName')
|
module_name = request.args.get('moduleName')
|
||||||
|
@ -125,6 +129,7 @@ def providersChart():
|
||||||
|
|
||||||
@trendingmodules.route("/moduletrending/")
|
@trendingmodules.route("/moduletrending/")
|
||||||
@login_required
|
@login_required
|
||||||
|
@login_analyst
|
||||||
def moduletrending():
|
def moduletrending():
|
||||||
return render_template("Moduletrending.html")
|
return render_template("Moduletrending.html")
|
||||||
|
|
||||||
|
|
49
var/www/templates/error/403.html
Normal file
49
var/www/templates/error/403.html
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>403 - AIL</title>
|
||||||
|
<link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png') }}">
|
||||||
|
|
||||||
|
<!-- Core CSS -->
|
||||||
|
<link href="{{ url_for('static', filename='css/bootstrap4.min.css') }}" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{% include 'nav_bar.html' %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<h1 class="text-center">403 Forbidden</h1>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<pre>
|
||||||
|
,d8 ,a8888a, ad888888b,
|
||||||
|
,d888 ,8P"' `"Y8, d8" "88
|
||||||
|
,d8" 88 ,8P Y8, a8P
|
||||||
|
,d8" 88 88 88 aad8"
|
||||||
|
,d8" 88 88 88 ""Y8,
|
||||||
|
8888888888888 `8b d8' "8b
|
||||||
|
88 `8ba, ,ad8' Y8, a88
|
||||||
|
88 "Y8888P" "Y888888P'
|
||||||
|
|
||||||
|
88888888888 88 88 88 88
|
||||||
|
88 88 "" 88 88
|
||||||
|
88 88 88 88
|
||||||
|
88aaaaa ,adPPYba, 8b,dPPYba, 88,dPPYba, 88 ,adPPYb,88 ,adPPYb,88 ,adPPYba, 8b,dPPYba,
|
||||||
|
88""""" a8" "8a 88P' "Y8 88P' "8a 88 a8" `Y88 a8" `Y88 a8P_____88 88P' `"8a
|
||||||
|
88 8b d8 88 88 d8 88 8b 88 8b 88 8PP""""""" 88 88
|
||||||
|
88 "8a, ,a8" 88 88b, ,a8" 88 "8a, ,d88 "8a, ,d88 "8b, ,aa 88 88
|
||||||
|
88 `"YbbdP"' 88 8Y"Ybbd8"' 88 `"8bbdP"Y8 `"8bbdP"Y8 `"Ybbd8"' 88 88
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
</html>
|
Loading…
Reference in a new issue