Nenhuma Descrição

views.py 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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 app.blueprints.pages.activities.activities_routes import activities_blueprint
  19. from app.blueprints.pages.alerts.alerts_routes import alerts_blueprint
  20. from app.blueprints.pages.case.case_routes import case_blueprint
  21. from app.blueprints.pages.case.case_assets_routes import case_assets_blueprint
  22. from app.blueprints.pages.case.case_graphs_routes import case_graph_blueprint
  23. from app.blueprints.pages.case.case_notes_routes import case_notes_blueprint
  24. from app.blueprints.pages.case.case_rfiles_routes import case_rfiles_blueprint
  25. from app.blueprints.pages.case.case_ioc_routes import case_ioc_blueprint
  26. from app.blueprints.pages.case.case_tasks_routes import case_tasks_blueprint
  27. from app.blueprints.pages.case.case_timeline_routes import case_timeline_blueprint
  28. from app.blueprints.pages.dashboard.dashboard_routes import dashboard_blueprint
  29. from app.blueprints.pages.datastore.datastore_routes import datastore_blueprint
  30. from app.blueprints.pages.demo_landing.demo_landing import demo_blueprint
  31. from app.blueprints.pages.dim_tasks.dim_tasks import dim_tasks_blueprint
  32. from app.blueprints.pages.login.login_routes import login_blueprint
  33. from app.blueprints.pages.manage.manage_access_control import manage_ac_blueprint
  34. from app.blueprints.pages.manage.manage_assets_type_routes import manage_assets_type_blueprint
  35. from app.blueprints.pages.manage.manage_attributes_routes import manage_attributes_blueprint
  36. from app.blueprints.pages.manage.manage_case_classification_routes import manage_case_classification_blueprint
  37. from app.blueprints.pages.manage.manage_case_state import manage_case_state_blueprint
  38. from app.blueprints.pages.manage.manage_evidence_types_route import manage_evidence_types_blueprint
  39. from app.blueprints.pages.manage.manage_cases_routes import manage_cases_blueprint
  40. from app.blueprints.pages.manage.manage_customers_routes import manage_customers_blueprint
  41. from app.blueprints.pages.manage.manage_groups_routes import manage_groups_blueprint
  42. from app.blueprints.pages.manage.manage_ioc_types_routes import manage_ioc_type_blueprint
  43. from app.blueprints.pages.manage.manage_modules_routes import manage_modules_blueprint
  44. from app.blueprints.pages.manage.manage_objects_routes import manage_objects_blueprint
  45. from app.blueprints.pages.manage.manage_srv_settings_routes import manage_srv_settings_blueprint
  46. from app.blueprints.pages.manage.manage_templates_routes import manage_templates_blueprint
  47. from app.blueprints.pages.manage.manage_case_templates_routes import manage_case_templates_blueprint
  48. from app.blueprints.pages.manage.manage_users import manage_users_blueprint
  49. from app.blueprints.pages.overview.overview_routes import overview_blueprint
  50. from app.blueprints.pages.profile.profile_routes import profile_blueprint
  51. from app.blueprints.pages.search.search_routes import search_blueprint
  52. from app.blueprints.rest.activities_routes import activities_rest_blueprint
  53. from app.blueprints.rest.alerts_routes import alerts_rest_blueprint
  54. from app.blueprints.rest.api_routes import rest_api_blueprint
  55. from app.blueprints.rest.case.case_assets_routes import case_assets_rest_blueprint
  56. from app.blueprints.rest.case.case_routes import case_rest_blueprint
  57. from app.blueprints.rest.case.case_graphs_routes import case_graph_rest_blueprint
  58. from app.blueprints.rest.case.case_ioc_routes import case_ioc_rest_blueprint
  59. from app.blueprints.rest.case.case_notes_routes import case_notes_rest_blueprint
  60. from app.blueprints.rest.case.case_evidences_routes import case_evidences_rest_blueprint
  61. from app.blueprints.rest.case.case_tasks_routes import case_tasks_rest_blueprint
  62. from app.blueprints.rest.case.case_timeline_routes import case_timeline_rest_blueprint
  63. from app.blueprints.rest.context_routes import context_rest_blueprint
  64. from app.blueprints.rest.dashboard_routes import dashboard_rest_blueprint
  65. from app.blueprints.rest.datastore_routes import datastore_rest_blueprint
  66. from app.blueprints.rest.dim_tasks_routes import dim_tasks_rest_blueprint
  67. from app.blueprints.rest.filters_routes import saved_filters_rest_blueprint
  68. from app.blueprints.rest.manage.manage_access_control_routes import manage_ac_rest_blueprint
  69. from app.blueprints.rest.manage.manage_alerts_status_routes import manage_alerts_status_rest_blueprint
  70. from app.blueprints.rest.manage.manage_analysis_status_routes import manage_analysis_status_rest_blueprint
  71. from app.blueprints.rest.manage.manage_assets_routes import manage_assets_rest_blueprint
  72. from app.blueprints.rest.manage.manage_assets_type_routes import manage_assets_type_rest_blueprint
  73. from app.blueprints.rest.manage.manage_attributes_routes import manage_attributes_rest_blueprint
  74. from app.blueprints.rest.manage.manage_case_classifications_routes import manage_case_classification_rest_blueprint
  75. from app.blueprints.rest.manage.manage_case_state import manage_case_state_rest_blueprint
  76. from app.blueprints.rest.manage.manage_evidence_types_routes import manage_evidence_types_rest_blueprint
  77. from app.blueprints.rest.manage.manage_cases_routes import manage_cases_rest_blueprint
  78. from app.blueprints.rest.manage.manage_customers_routes import manage_customers_rest_blueprint
  79. from app.blueprints.rest.manage.manage_event_categories_routes import manage_event_categories_rest_blueprint
  80. from app.blueprints.rest.manage.manage_groups import manage_groups_rest_blueprint
  81. from app.blueprints.rest.manage.manage_ioc_types_routes import manage_ioc_type_rest_blueprint
  82. from app.blueprints.rest.manage.manage_modules_routes import manage_modules_rest_blueprint
  83. from app.blueprints.rest.manage.manage_severities_routes import manage_severities_rest_blueprint
  84. from app.blueprints.rest.manage.manage_server_settings_routes import manage_server_settings_rest_blueprint
  85. from app.blueprints.rest.manage.manage_tags import manage_tags_rest_blueprint
  86. from app.blueprints.rest.manage.manage_task_status_routes import manage_task_status_rest_blueprint
  87. from app.blueprints.rest.manage.manage_templates_routes import manage_templates_rest_blueprint
  88. from app.blueprints.rest.manage.manage_tlps_routes import manage_tlp_type_rest_blueprint
  89. from app.blueprints.rest.manage.manage_case_templates_routes import manage_case_templates_rest_blueprint
  90. from app.blueprints.rest.manage.manage_users import manage_users_rest_blueprint
  91. from app.blueprints.rest.overview_routes import overview_rest_blueprint
  92. from app.blueprints.rest.profile_routes import profile_rest_blueprint
  93. from app.blueprints.rest.reports_route import reports_rest_blueprint
  94. from app.blueprints.rest.search_routes import search_rest_blueprint
  95. from app.blueprints.graphql.graphql_route import graphql_blueprint
  96. from app.blueprints.rest.v2 import rest_v2_blueprint
  97. from app.blueprints.pages.kpi_dashboard.kpi_dashboard_routes import kpi_dashboard_blueprint
  98. from app.models.authorization import User
  99. def register_blusprints(app):
  100. app.register_blueprint(graphql_blueprint)
  101. app.register_blueprint(dashboard_blueprint)
  102. app.register_blueprint(dashboard_rest_blueprint)
  103. app.register_blueprint(overview_blueprint)
  104. app.register_blueprint(overview_rest_blueprint)
  105. app.register_blueprint(login_blueprint)
  106. app.register_blueprint(profile_blueprint)
  107. app.register_blueprint(profile_rest_blueprint)
  108. app.register_blueprint(search_blueprint)
  109. app.register_blueprint(search_rest_blueprint)
  110. app.register_blueprint(manage_cases_blueprint)
  111. app.register_blueprint(manage_cases_rest_blueprint)
  112. app.register_blueprint(manage_assets_type_blueprint)
  113. app.register_blueprint(manage_assets_type_rest_blueprint)
  114. app.register_blueprint(manage_srv_settings_blueprint)
  115. app.register_blueprint(manage_server_settings_rest_blueprint)
  116. app.register_blueprint(manage_users_blueprint)
  117. app.register_blueprint(manage_users_rest_blueprint)
  118. app.register_blueprint(manage_templates_blueprint)
  119. app.register_blueprint(manage_templates_rest_blueprint)
  120. app.register_blueprint(manage_modules_blueprint)
  121. app.register_blueprint(manage_modules_rest_blueprint)
  122. app.register_blueprint(manage_customers_blueprint)
  123. app.register_blueprint(manage_customers_rest_blueprint)
  124. app.register_blueprint(manage_analysis_status_rest_blueprint)
  125. app.register_blueprint(manage_ioc_type_blueprint)
  126. app.register_blueprint(manage_ioc_type_rest_blueprint)
  127. app.register_blueprint(manage_event_categories_rest_blueprint)
  128. app.register_blueprint(manage_objects_blueprint)
  129. app.register_blueprint(manage_tlp_type_rest_blueprint)
  130. app.register_blueprint(manage_case_templates_blueprint)
  131. app.register_blueprint(manage_case_templates_rest_blueprint)
  132. app.register_blueprint(manage_task_status_rest_blueprint)
  133. app.register_blueprint(manage_attributes_blueprint)
  134. app.register_blueprint(manage_attributes_rest_blueprint)
  135. app.register_blueprint(manage_ac_blueprint)
  136. app.register_blueprint(manage_ac_rest_blueprint)
  137. app.register_blueprint(manage_groups_blueprint)
  138. app.register_blueprint(manage_groups_rest_blueprint)
  139. app.register_blueprint(manage_case_classification_blueprint)
  140. app.register_blueprint(manage_case_classification_rest_blueprint)
  141. app.register_blueprint(manage_alerts_status_rest_blueprint)
  142. app.register_blueprint(manage_severities_rest_blueprint)
  143. app.register_blueprint(manage_case_state_blueprint)
  144. app.register_blueprint(manage_case_state_rest_blueprint)
  145. app.register_blueprint(manage_evidence_types_blueprint)
  146. app.register_blueprint(manage_evidence_types_rest_blueprint)
  147. app.register_blueprint(manage_assets_rest_blueprint)
  148. app.register_blueprint(manage_tags_rest_blueprint)
  149. app.register_blueprint(saved_filters_rest_blueprint)
  150. app.register_blueprint(context_rest_blueprint)
  151. app.register_blueprint(case_timeline_blueprint)
  152. app.register_blueprint(case_timeline_rest_blueprint)
  153. app.register_blueprint(case_notes_blueprint)
  154. app.register_blueprint(case_notes_rest_blueprint)
  155. app.register_blueprint(case_assets_blueprint)
  156. app.register_blueprint(case_assets_rest_blueprint)
  157. app.register_blueprint(case_ioc_blueprint)
  158. app.register_blueprint(case_ioc_rest_blueprint)
  159. app.register_blueprint(case_rfiles_blueprint)
  160. app.register_blueprint(case_evidences_rest_blueprint)
  161. app.register_blueprint(case_graph_blueprint)
  162. app.register_blueprint(case_graph_rest_blueprint)
  163. app.register_blueprint(case_tasks_blueprint)
  164. app.register_blueprint(case_tasks_rest_blueprint)
  165. app.register_blueprint(case_blueprint)
  166. app.register_blueprint(case_rest_blueprint)
  167. app.register_blueprint(reports_rest_blueprint)
  168. app.register_blueprint(activities_blueprint)
  169. app.register_blueprint(activities_rest_blueprint)
  170. app.register_blueprint(dim_tasks_blueprint)
  171. app.register_blueprint(dim_tasks_rest_blueprint)
  172. app.register_blueprint(datastore_blueprint)
  173. app.register_blueprint(datastore_rest_blueprint)
  174. app.register_blueprint(alerts_blueprint)
  175. app.register_blueprint(alerts_rest_blueprint)
  176. app.register_blueprint(rest_api_blueprint)
  177. app.register_blueprint(demo_blueprint)
  178. app.register_blueprint(rest_v2_blueprint)
  179. app.register_blueprint(kpi_dashboard_blueprint)
  180. # provide login manager with load_user callback
  181. def load_user(user_id):
  182. return User.query.get(int(user_id))
  183. def _get_user_by_api_key(api_key):
  184. if not api_key:
  185. return None
  186. api_key = api_key.replace('Bearer ', '', 1)
  187. return User.query.filter(
  188. User.api_key == api_key,
  189. User.active == True
  190. ).first()
  191. def load_user_from_request(request):
  192. api_key_sources = [
  193. request.headers.get('X-IRIS-AUTH'),
  194. request.headers.get('Authorization')
  195. ]
  196. for api_key in api_key_sources:
  197. if api_key:
  198. user = _get_user_by_api_key(api_key)
  199. if user:
  200. return user
  201. return None