Geen omschrijving

manage_modules_routes.py 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # IRIS Source Code
  2. # Copyright (C) 2021 - Airbus CyberSecurity (SAS)
  3. # ir@cyberactionlab.net
  4. #
  5. # This program is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 3 of the License, or (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. from flask import Blueprint
  19. from flask import redirect
  20. from flask import render_template
  21. from flask import url_for
  22. from flask_wtf import FlaskForm
  23. from app.datamgmt.iris_engine.modules_db import parse_module_parameter
  24. from app.datamgmt.iris_engine.modules_db import get_module_from_id
  25. from app.datamgmt.iris_engine.modules_db import is_mod_configured
  26. from app.forms import AddModuleForm
  27. from app.forms import UpdateModuleParameterForm
  28. from app.models.authorization import Permissions
  29. from app.blueprints.access_controls import ac_requires
  30. from app.blueprints.responses import response_error
  31. manage_modules_blueprint = Blueprint(
  32. 'manage_module',
  33. __name__,
  34. template_folder='templates'
  35. )
  36. @manage_modules_blueprint.route('/manage/modules', methods=['GET'])
  37. @ac_requires(Permissions.server_administrator, no_cid_required=True)
  38. def manage_modules_index(caseid, url_redir):
  39. if url_redir:
  40. return redirect(url_for('manage_module.manage_modules_index', cid=caseid))
  41. form = FlaskForm()
  42. return render_template("manage_modules.html", form=form)
  43. @manage_modules_blueprint.route('/manage/modules/add/modal', methods=['GET'])
  44. @ac_requires(Permissions.server_administrator, no_cid_required=True)
  45. def add_module_modal(caseid, url_redir):
  46. if url_redir:
  47. return redirect(url_for('manage_modules.add_module', cid=caseid))
  48. module = None
  49. form = AddModuleForm()
  50. return render_template("modal_add_module.html", form=form, module=module)
  51. @manage_modules_blueprint.route('/manage/modules/get-parameter/<param_name>', methods=['GET'])
  52. @ac_requires(Permissions.server_administrator, no_cid_required=True)
  53. def getmodule_param(param_name, caseid, url_redir):
  54. if url_redir:
  55. return redirect(url_for('manage_modules.add_module', cid=caseid))
  56. form = UpdateModuleParameterForm()
  57. mod_config, mod_id, mod_name, _, parameter = parse_module_parameter(param_name)
  58. if mod_config is None:
  59. return response_error('Invalid parameter')
  60. return render_template("modal_update_parameter.html", parameter=parameter, mod_name=mod_name, mod_id=mod_id,
  61. form=form)
  62. @manage_modules_blueprint.route('/manage/modules/update/<int:mod_id>/modal', methods=['GET'])
  63. @ac_requires(Permissions.server_administrator, no_cid_required=True)
  64. def view_module(mod_id, caseid, url_redir):
  65. if url_redir:
  66. return redirect(url_for('manage_modules.view_module', cid=caseid, mod_id=mod_id))
  67. form = AddModuleForm()
  68. if mod_id:
  69. module = get_module_from_id(mod_id)
  70. config = module.module_config
  71. is_configured, missing_params = is_mod_configured(config)
  72. return render_template("modal_module_info.html", form=form, data=module,
  73. config=config, is_configured=is_configured, missing_params=missing_params)
  74. return response_error('Malformed request')