fix: [backend] Fixed unbound variable and AuditLog support
This commit is contained in:
parent
e662e5b7aa
commit
e2cd688eff
2 changed files with 17 additions and 4 deletions
17
exercise.py
17
exercise.py
|
@ -61,6 +61,7 @@ def read_exercise_dir():
|
||||||
|
|
||||||
|
|
||||||
def backup_exercises_progress():
|
def backup_exercises_progress():
|
||||||
|
global LAST_BACKUP
|
||||||
toBackup = {
|
toBackup = {
|
||||||
'EXERCISES_STATUS': db.EXERCISES_STATUS,
|
'EXERCISES_STATUS': db.EXERCISES_STATUS,
|
||||||
'SELECTED_EXERCISES': db.SELECTED_EXERCISES,
|
'SELECTED_EXERCISES': db.SELECTED_EXERCISES,
|
||||||
|
@ -247,8 +248,8 @@ def get_available_tasks_for_user(user_id: int) -> list[str]:
|
||||||
|
|
||||||
|
|
||||||
def get_model_action(data: dict):
|
def get_model_action(data: dict):
|
||||||
if 'Log' in data:
|
if 'Log' in data or 'AuditLog' in data:
|
||||||
data = data['Log']
|
data = data['Log'] if 'Log' in data else data['AuditLog']
|
||||||
if 'model' in data and 'action' in data:
|
if 'model' in data and 'action' in data:
|
||||||
return (data['model'], data['action'],)
|
return (data['model'], data['action'],)
|
||||||
return (None, None,)
|
return (None, None,)
|
||||||
|
@ -260,8 +261,9 @@ def is_accepted_query(data: dict) -> bool:
|
||||||
# # improved condition below. It blocks some queries
|
# # improved condition below. It blocks some queries
|
||||||
# if data['Log']['change'].startswith('attribute_count'):
|
# if data['Log']['change'].startswith('attribute_count'):
|
||||||
# return False
|
# return False
|
||||||
if data['Log']['change'].startswith('Validation errors:'):
|
if 'Log' in data:
|
||||||
return False
|
if data['Log']['change'].startswith('Validation errors:'):
|
||||||
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if data.get('user_agent', None) == 'misp-exercise-dashboard':
|
if data.get('user_agent', None) == 'misp-exercise-dashboard':
|
||||||
|
@ -430,6 +432,13 @@ def parse_event_id_from_log(data: dict) -> Union[int, None]:
|
||||||
if event_id_search is not None:
|
if event_id_search is not None:
|
||||||
event_id = event_id_search.group(1)
|
event_id = event_id_search.group(1)
|
||||||
return event_id
|
return event_id
|
||||||
|
elif 'AuditLog' in data:
|
||||||
|
log = data['AuditLog']
|
||||||
|
if 'model' in log and 'model_id' in log and log['model'] == 'Event':
|
||||||
|
return int(log['model_id'])
|
||||||
|
if 'change' in log:
|
||||||
|
if 'event_id' in log:
|
||||||
|
return int(log['event_id'])
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,10 @@ def get_user_id(data: dict):
|
||||||
data = data['Log']
|
data = data['Log']
|
||||||
if 'user_id' in data:
|
if 'user_id' in data:
|
||||||
return int(data['user_id'])
|
return int(data['user_id'])
|
||||||
|
if 'AuditLog' in data:
|
||||||
|
data = data['AuditLog']
|
||||||
|
if 'user_id' in data:
|
||||||
|
return int(data['user_id'])
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue