Skip to content

Commit

Permalink
Revide code related to tip re-opening and calculation of the data ret…
Browse files Browse the repository at this point in the history
…ention policy
  • Loading branch information
evilaliv3 committed Feb 14, 2025
1 parent 0c25055 commit fc40821
Showing 1 changed file with 11 additions and 13 deletions.
24 changes: 11 additions & 13 deletions backend/globaleaks/handlers/recipient/rtip.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def get_ttl(session, orm_object_model, orm_object_id):
.filter(orm_object_model.id == orm_object_id).one()[0]


def recalculate_data_retention(session, itip, report_reopen_request):
def db_recalculate_data_retention(session, itip, report_reopen_request):
"""
Transaction for recaulating the data retention after a status change
Expand All @@ -213,7 +213,13 @@ def recalculate_data_retention(session, itip, report_reopen_request):
if ttl > 0:
itip.expiration_date = get_expiration(ttl)

return prev_expiration_date, itip.expiration_date
if prev_expiration_date != itip.expiration_date:
log_data = {
'prev_expiration_date': int(datetime.timestamp(prev_expiration_date)),
'curr_expiration_date': int(datetime.timestamp(curr_expiration_date))
}

db_log(session, tid=tid, type='update_report_expiration', user_id=user_id, object_id=itip.id, data=log_data)


def db_update_submission_status(session, tid, user_id, itip, status_id, substatus_id=None):
Expand All @@ -230,27 +236,19 @@ def db_update_submission_status(session, tid, user_id, itip, status_id, substatu
if status_id == 'new':
return

report_reopen_request = itip.status == "closed" and status_id == "opened"
db_recalculate_data_retention(session, itip, report_reopen_request)

itip.status = status_id
itip.substatus = substatus_id or None

report_reopen_request = itip.status == "closed" and status_id == "opened"
prev_expiration_date, curr_expiration_date = recalculate_data_retention(session, itip, report_reopen_request)

log_data = {
'status': itip.status,
'substatus': itip.substatus
}

db_log(session, tid=tid, type='update_report_status', user_id=user_id, object_id=itip.id, data=log_data)

if prev_expiration_date != curr_expiration_date:
log_data = {
'prev_expiration_date': int(datetime.timestamp(prev_expiration_date)),
'curr_expiration_date': int(datetime.timestamp(curr_expiration_date))
}

db_log(session, tid=tid, type='update_report_expiration', user_id=user_id, object_id=itip.id, data=log_data)


def db_update_temporary_redaction(session, tid, user_id, redaction, redaction_data):
"""
Expand Down

0 comments on commit fc40821

Please sign in to comment.