-
-
Notifications
You must be signed in to change notification settings - Fork 286
Expand file tree
/
Copy pathviews.py
More file actions
229 lines (208 loc) · 12.2 KB
/
views.py
File metadata and controls
229 lines (208 loc) · 12.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# IRIS Source Code
# Copyright (C) 2021 - Airbus CyberSecurity (SAS)
# ir@cyberactionlab.net
#
# 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 app import app
from app import lm
from app.blueprints.pages.activities.activities_routes import activities_blueprint
from app.blueprints.pages.alerts.alerts_routes import alerts_blueprint
from app.blueprints.pages.case.case_routes import case_blueprint
from app.blueprints.pages.case.case_assets_routes import case_assets_blueprint
from app.blueprints.pages.case.case_graphs_routes import case_graph_blueprint
from app.blueprints.pages.case.case_notes_routes import case_notes_blueprint
from app.blueprints.pages.case.case_rfiles_routes import case_rfiles_blueprint
from app.blueprints.pages.case.case_ioc_routes import case_ioc_blueprint
from app.blueprints.pages.case.case_tasks_routes import case_tasks_blueprint
from app.blueprints.pages.case.case_timeline_routes import case_timeline_blueprint
from app.blueprints.pages.dashboard.dashboard_routes import dashboard_blueprint
from app.blueprints.pages.datastore.datastore_routes import datastore_blueprint
from app.blueprints.pages.demo_landing.demo_landing import demo_blueprint
from app.blueprints.pages.dim_tasks.dim_tasks import dim_tasks_blueprint
from app.blueprints.pages.login.login_routes import login_blueprint
from app.blueprints.pages.manage.manage_access_control import manage_ac_blueprint
from app.blueprints.pages.manage.manage_assets_type_routes import manage_assets_type_blueprint
from app.blueprints.pages.manage.manage_attributes_routes import manage_attributes_blueprint
from app.blueprints.pages.manage.manage_case_classification_routes import manage_case_classification_blueprint
from app.blueprints.pages.manage.manage_case_state import manage_case_state_blueprint
from app.blueprints.pages.manage.manage_evidence_types_route import manage_evidence_types_blueprint
from app.blueprints.pages.manage.manage_cases_routes import manage_cases_blueprint
from app.blueprints.pages.manage.manage_customers_routes import manage_customers_blueprint
from app.blueprints.pages.manage.manage_groups_routes import manage_groups_blueprint
from app.blueprints.pages.manage.manage_ioc_types_routes import manage_ioc_type_blueprint
from app.blueprints.pages.manage.manage_modules_routes import manage_modules_blueprint
from app.blueprints.pages.manage.manage_objects_routes import manage_objects_blueprint
from app.blueprints.pages.manage.manage_srv_settings_routes import manage_srv_settings_blueprint
from app.blueprints.pages.manage.manage_templates_routes import manage_templates_blueprint
from app.blueprints.pages.manage.manage_case_templates_routes import manage_case_templates_blueprint
from app.blueprints.pages.manage.manage_users import manage_users_blueprint
from app.blueprints.pages.overview.overview_routes import overview_blueprint
from app.blueprints.pages.profile.profile_routes import profile_blueprint
from app.blueprints.pages.search.search_routes import search_blueprint
from app.blueprints.rest.activities_routes import activities_rest_blueprint
from app.blueprints.rest.alerts_routes import alerts_rest_blueprint
from app.blueprints.rest.api_routes import rest_api_blueprint
from app.blueprints.rest.case.case_assets_routes import case_assets_rest_blueprint
from app.blueprints.rest.case.case_routes import case_rest_blueprint
from app.blueprints.rest.case.case_graphs_routes import case_graph_rest_blueprint
from app.blueprints.rest.case.case_ioc_routes import case_ioc_rest_blueprint
from app.blueprints.rest.case.case_notes_routes import case_notes_rest_blueprint
from app.blueprints.rest.case.case_evidences_routes import case_evidences_rest_blueprint
from app.blueprints.rest.case.case_tasks_routes import case_tasks_rest_blueprint
from app.blueprints.rest.case.case_timeline_routes import case_timeline_rest_blueprint
from app.blueprints.rest.context_routes import context_rest_blueprint
from app.blueprints.rest.dashboard_routes import dashboard_rest_blueprint
from app.blueprints.rest.datastore_routes import datastore_rest_blueprint
from app.blueprints.rest.dim_tasks_routes import dim_tasks_rest_blueprint
from app.blueprints.rest.filters_routes import saved_filters_rest_blueprint
from app.blueprints.rest.manage.manage_access_control_routes import manage_ac_rest_blueprint
from app.blueprints.rest.manage.manage_alerts_status_routes import manage_alerts_status_rest_blueprint
from app.blueprints.rest.manage.manage_analysis_status_routes import manage_analysis_status_rest_blueprint
from app.blueprints.rest.manage.manage_assets_routes import manage_assets_rest_blueprint
from app.blueprints.rest.manage.manage_assets_type_routes import manage_assets_type_rest_blueprint
from app.blueprints.rest.manage.manage_attributes_routes import manage_attributes_rest_blueprint
from app.blueprints.rest.manage.manage_case_classifications_routes import manage_case_classification_rest_blueprint
from app.blueprints.rest.manage.manage_case_state import manage_case_state_rest_blueprint
from app.blueprints.rest.manage.manage_evidence_types_routes import manage_evidence_types_rest_blueprint
from app.blueprints.rest.manage.manage_cases_routes import manage_cases_rest_blueprint
from app.blueprints.rest.manage.manage_customers_routes import manage_customers_rest_blueprint
from app.blueprints.rest.manage.manage_event_categories_routes import manage_event_categories_rest_blueprint
from app.blueprints.rest.manage.manage_groups import manage_groups_rest_blueprint
from app.blueprints.rest.manage.manage_ioc_types_routes import manage_ioc_type_rest_blueprint
from app.blueprints.rest.manage.manage_modules_routes import manage_modules_rest_blueprint
from app.blueprints.rest.manage.manage_severities_routes import manage_severities_rest_blueprint
from app.blueprints.rest.manage.manage_server_settings_routes import manage_server_settings_rest_blueprint
from app.blueprints.rest.manage.manage_tags import manage_tags_rest_blueprint
from app.blueprints.rest.manage.manage_task_status_routes import manage_task_status_rest_blueprint
from app.blueprints.rest.manage.manage_templates_routes import manage_templates_rest_blueprint
from app.blueprints.rest.manage.manage_tlps_routes import manage_tlp_type_rest_blueprint
from app.blueprints.rest.manage.manage_case_templates_routes import manage_case_templates_rest_blueprint
from app.blueprints.rest.manage.manage_users import manage_users_rest_blueprint
from app.blueprints.rest.overview_routes import overview_rest_blueprint
from app.blueprints.rest.profile_routes import profile_rest_blueprint
from app.blueprints.rest.reports_route import reports_rest_blueprint
from app.blueprints.rest.search_routes import search_rest_blueprint
from app.blueprints.graphql.graphql_route import graphql_blueprint
from app.blueprints.rest.v2 import rest_v2_blueprint
from app.models.authorization import User
from app.post_init import run_post_init
app.register_blueprint(graphql_blueprint)
app.register_blueprint(dashboard_blueprint)
app.register_blueprint(dashboard_rest_blueprint)
app.register_blueprint(overview_blueprint)
app.register_blueprint(overview_rest_blueprint)
app.register_blueprint(login_blueprint)
app.register_blueprint(profile_blueprint)
app.register_blueprint(profile_rest_blueprint)
app.register_blueprint(search_blueprint)
app.register_blueprint(search_rest_blueprint)
app.register_blueprint(manage_cases_blueprint)
app.register_blueprint(manage_cases_rest_blueprint)
app.register_blueprint(manage_assets_type_blueprint)
app.register_blueprint(manage_assets_type_rest_blueprint)
app.register_blueprint(manage_srv_settings_blueprint)
app.register_blueprint(manage_server_settings_rest_blueprint)
app.register_blueprint(manage_users_blueprint)
app.register_blueprint(manage_users_rest_blueprint)
app.register_blueprint(manage_templates_blueprint)
app.register_blueprint(manage_templates_rest_blueprint)
app.register_blueprint(manage_modules_blueprint)
app.register_blueprint(manage_modules_rest_blueprint)
app.register_blueprint(manage_customers_blueprint)
app.register_blueprint(manage_customers_rest_blueprint)
app.register_blueprint(manage_analysis_status_rest_blueprint)
app.register_blueprint(manage_ioc_type_blueprint)
app.register_blueprint(manage_ioc_type_rest_blueprint)
app.register_blueprint(manage_event_categories_rest_blueprint)
app.register_blueprint(manage_objects_blueprint)
app.register_blueprint(manage_tlp_type_rest_blueprint)
app.register_blueprint(manage_case_templates_blueprint)
app.register_blueprint(manage_case_templates_rest_blueprint)
app.register_blueprint(manage_task_status_rest_blueprint)
app.register_blueprint(manage_attributes_blueprint)
app.register_blueprint(manage_attributes_rest_blueprint)
app.register_blueprint(manage_ac_blueprint)
app.register_blueprint(manage_ac_rest_blueprint)
app.register_blueprint(manage_groups_blueprint)
app.register_blueprint(manage_groups_rest_blueprint)
app.register_blueprint(manage_case_classification_blueprint)
app.register_blueprint(manage_case_classification_rest_blueprint)
app.register_blueprint(manage_alerts_status_rest_blueprint)
app.register_blueprint(manage_severities_rest_blueprint)
app.register_blueprint(manage_case_state_blueprint)
app.register_blueprint(manage_case_state_rest_blueprint)
app.register_blueprint(manage_evidence_types_blueprint)
app.register_blueprint(manage_evidence_types_rest_blueprint)
app.register_blueprint(manage_assets_rest_blueprint)
app.register_blueprint(manage_tags_rest_blueprint)
app.register_blueprint(saved_filters_rest_blueprint)
app.register_blueprint(context_rest_blueprint)
app.register_blueprint(case_timeline_blueprint)
app.register_blueprint(case_timeline_rest_blueprint)
app.register_blueprint(case_notes_blueprint)
app.register_blueprint(case_notes_rest_blueprint)
app.register_blueprint(case_assets_blueprint)
app.register_blueprint(case_assets_rest_blueprint)
app.register_blueprint(case_ioc_blueprint)
app.register_blueprint(case_ioc_rest_blueprint)
app.register_blueprint(case_rfiles_blueprint)
app.register_blueprint(case_evidences_rest_blueprint)
app.register_blueprint(case_graph_blueprint)
app.register_blueprint(case_graph_rest_blueprint)
app.register_blueprint(case_tasks_blueprint)
app.register_blueprint(case_tasks_rest_blueprint)
app.register_blueprint(case_blueprint)
app.register_blueprint(case_rest_blueprint)
app.register_blueprint(reports_rest_blueprint)
app.register_blueprint(activities_blueprint)
app.register_blueprint(activities_rest_blueprint)
app.register_blueprint(dim_tasks_blueprint)
app.register_blueprint(dim_tasks_rest_blueprint)
app.register_blueprint(datastore_blueprint)
app.register_blueprint(datastore_rest_blueprint)
app.register_blueprint(alerts_blueprint)
app.register_blueprint(alerts_rest_blueprint)
app.register_blueprint(rest_api_blueprint)
app.register_blueprint(demo_blueprint)
app.register_blueprint(rest_v2_blueprint)
try:
run_post_init(development=app.config["DEVELOPMENT"])
except Exception as e:
app.logger.exception(f"Post init failed. IRIS not started")
raise e
# provide login manager with load_user callback
@lm.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
def _get_user_by_api_key(api_key):
if not api_key:
return None
api_key = api_key.replace('Bearer ', '', 1)
return User.query.filter(
User.api_key == api_key,
User.active == True
).first()
@lm.request_loader
def load_user_from_request(request):
api_key_sources = [
request.headers.get('X-IRIS-AUTH'),
request.headers.get('Authorization')
]
for api_key in api_key_sources:
if api_key:
user = _get_user_by_api_key(api_key)
if user:
return user
return None