Skip to content

Commit

Permalink
Reset reports' reminder when reports are closed
Browse files Browse the repository at this point in the history
  • Loading branch information
evilaliv3 committed Feb 14, 2025
1 parent fc40821 commit 22df318
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 3 deletions.
7 changes: 6 additions & 1 deletion backend/globaleaks/handlers/recipient/rtip.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,8 +236,8 @@ def db_update_submission_status(session, tid, user_id, itip, status_id, substatu
if status_id == 'new':
return

report_close_request = itip.status != "closed" and status_id == "closed"
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
Expand All @@ -249,6 +249,11 @@ def db_update_submission_status(session, tid, user_id, itip, status_id, substatu

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

if report_close_request:
itip.reminder_date = datetime_never()

db_recalculate_data_retention(session, itip, report_reopen_request)


def db_update_temporary_redaction(session, tid, user_id, redaction, redaction_data):
"""
Expand Down
43 changes: 42 additions & 1 deletion backend/globaleaks/tests/handlers/recipient/test_rtip.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from globaleaks.handlers.recipient import rtip
from globaleaks.jobs.delivery import Delivery
from globaleaks.tests import helpers
from globaleaks.utils.utility import datetime_now
from globaleaks.utils.utility import datetime_never, datetime_now


class TestRTipInstance(helpers.TestHandlerWithPopulatedDB):
Expand Down Expand Up @@ -292,6 +292,47 @@ def test_delete_existent_tip_by_existent_and_logged_but_wrong_receiver(self):
handler = self.request(role='receiver', user_id=rtip_desc['receiver_id'])
yield self.assertFailure(handler.delete(u"unexistent_tip"), NoResultFound)

@inlineCallbacks
def test_set_reminder_and_reset_upon_close(self):
rtip_descs = yield self.get_rtips()

for rtip_desc in rtip_descs:
self.assertEqual(rtip_desc['reminder_date'], datetime_never())

operation = {
'operation': 'set_reminder',
'args': {
'value': datetime_now().timestamp() + 7 * 22 * 3600 * 1000,
'substatus': '',
'motivation': ''
}
}

handler = self.request(operation, role='receiver', user_id=rtip_desc['receiver_id'])
yield handler.put(rtip_desc['id'])
self.assertEqual(handler.request.code, 200)

rtip_descs = yield self.get_rtips()
for rtip_desc in rtip_descs:
self.assertNotEqual(rtip_desc['reminder_date'], datetime_never())

operation = {
'operation': 'update_status',
'args': {
'status': 'closed',
'substatus': '',
'motivation': ''
}
}

handler = self.request(operation, role='receiver', user_id=rtip_desc['receiver_id'])
yield handler.put(rtip_desc['id'])
self.assertEqual(handler.request.code, 200)

rtip_descs = yield self.get_rtips()
for rtip_desc in rtip_descs:
self.assertEqual(rtip_desc['reminder_date'], datetime_never())


class TestRTipCommentCollection(helpers.TestHandlerWithPopulatedDB):
_handler = rtip.RTipCommentCollection
Expand Down
2 changes: 1 addition & 1 deletion backend/globaleaks/tests/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ def __init__(self):
'additional_questionnaire_id': '',
'select_all_receivers': True,
'tip_timetolive': 20,
'tip_reminder': 80,
'tip_reminder': 0,
'maximum_selectable_receivers': 0,
'show_context': True,
'allow_recipients_selection': False,
Expand Down

0 comments on commit 22df318

Please sign in to comment.