{{ _('Appeal reviewer decision') }}

-

{{ _('Decision {0}')|format_html(decision_id) }}

+

{{ _('Decision {0}')|format_html(decision_cinder_id) }}

{% if appeal_processed %} diff --git a/src/olympia/abuse/tests/test_cinder.py b/src/olympia/abuse/tests/test_cinder.py index c3bc343d5c7..5c294ebd16c 100644 --- a/src/olympia/abuse/tests/test_cinder.py +++ b/src/olympia/abuse/tests/test_cinder.py @@ -136,7 +136,9 @@ def _test_appeal(self, appealer, cinder_instance=None): ) assert ( cinder_instance.appeal( - decision_id=fake_decision_id, appeal_text='reason', appealer=appealer + decision_cinder_id=fake_decision_id, + appeal_text='reason', + appealer=appealer, ) == '67890-abc' ) @@ -148,7 +150,9 @@ def _test_appeal(self, appealer, cinder_instance=None): ) with self.assertRaises(ConnectionError): cinder_instance.appeal( - decision_id=fake_decision_id, appeal_text='reason', appealer=appealer + decision_cinder_id=fake_decision_id, + appeal_text='reason', + appealer=appealer, ) def test_appeal_anonymous(self): diff --git a/src/olympia/abuse/tests/test_models.py b/src/olympia/abuse/tests/test_models.py index ee73ce15dba..35557590f3b 100644 --- a/src/olympia/abuse/tests/test_models.py +++ b/src/olympia/abuse/tests/test_models.py @@ -707,13 +707,13 @@ def test_process_decision(self): ) as notify_mock: action_mock.return_value = True cinder_job.process_decision( - decision_id='12345', + decision_cinder_id='12345', decision_date=new_date, decision_action=DECISION_ACTIONS.AMO_BAN_USER.value, decision_notes='teh notes', policy_ids=['123-45', '678-90'], ) - assert cinder_job.decision_id == '12345' + assert cinder_job.decision_cinder_id == '12345' assert cinder_job.decision_date == new_date assert cinder_job.decision_action == DECISION_ACTIONS.AMO_BAN_USER assert cinder_job.decision_notes == 'teh notes' @@ -738,13 +738,13 @@ def test_process_decision_with_duplicate_parent(self): ) as notify_mock: action_mock.return_value = True cinder_job.process_decision( - decision_id='12345', + decision_cinder_id='12345', decision_date=new_date, decision_action=DECISION_ACTIONS.AMO_BAN_USER.value, decision_notes='teh notes', policy_ids=['123-45', '678-90'], ) - assert cinder_job.decision_id == '12345' + assert cinder_job.decision_cinder_id == '12345' assert cinder_job.decision_date == new_date assert cinder_job.decision_action == DECISION_ACTIONS.AMO_BAN_USER assert cinder_job.decision_notes == 'teh notes' @@ -758,13 +758,13 @@ def test_process_decision_escalate_addon(self): assert not cinder_job.resolvable_in_reviewer_tools new_date = datetime(2024, 1, 1) cinder_job.process_decision( - decision_id='12345', + decision_cinder_id='12345', decision_date=new_date, decision_action=DECISION_ACTIONS.AMO_ESCALATE_ADDON, decision_notes='blah', policy_ids=[], ) - assert cinder_job.decision_id == '12345' + assert cinder_job.decision_cinder_id == '12345' assert cinder_job.decision_date == new_date assert cinder_job.decision_action == DECISION_ACTIONS.AMO_ESCALATE_ADDON assert cinder_job.decision_notes == 'blah' @@ -780,7 +780,7 @@ def _test_appeal_as_target(self, *, resolvable_in_reviewer_tools): reason=AbuseReport.REASONS.ILLEGAL, reporter=user_factory(), cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, target_addon=addon, @@ -828,7 +828,7 @@ def test_appeal_as_target_improperly_configured(self): reason=AbuseReport.REASONS.ILLEGAL, reporter=user_factory(), cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, target_addon=addon, @@ -865,7 +865,7 @@ def test_appeal_as_target_ban_improperly_configured(self): reason=AbuseReport.REASONS.ILLEGAL, reporter=user_factory(), cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), # This (target is an add-on, decision is a user ban) shouldn't # be possible but we want to make sure this is handled @@ -908,7 +908,7 @@ def test_appeal_as_target_banned(self): reason=AbuseReport.REASONS.ILLEGAL, reporter=user_factory(), cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_BAN_USER, ), @@ -947,7 +947,7 @@ def test_appeal_as_reporter(self): ) abuse_report.update( cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_APPROVE, target_addon=addon, @@ -985,7 +985,7 @@ def test_appeal_as_reporter_already_appealed(self): ) abuse_report.update( cinder_job=CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_APPROVE, target_addon=addon, @@ -1028,7 +1028,7 @@ def test_appeal_as_reporter_already_appealed(self): def test_appeal_improperly_configured_reporter(self): cinder_job = CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_APPROVE, ) @@ -1047,7 +1047,7 @@ def test_appeal_improperly_configured_author(self): reporter=user_factory(), ) cinder_job = CinderJob.objects.create( - decision_id='4815162342-lost', + decision_cinder_id='4815162342-lost', decision_date=self.days_ago(179), decision_action=DECISION_ACTIONS.AMO_APPROVE, ) @@ -1262,7 +1262,7 @@ def setUp(self): def test_appealed_decision_already_made(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) assert not self.initial_job.appealed_decision_already_made() @@ -1273,13 +1273,13 @@ def test_appealed_decision_already_made(self): self.initial_job.update(appeal_job=appeal_job) assert not self.initial_job.appealed_decision_already_made() - appeal_job.update(decision_id='appeal decision id') + appeal_job.update(decision_cinder_id='appeal decision id') assert self.initial_job.appealed_decision_already_made() def test_reporter_can_appeal_approve_decision(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) assert self.initial_job.can_be_appealed( @@ -1289,7 +1289,7 @@ def test_reporter_can_appeal_approve_decision(self): def test_reporter_cant_appeal_approve_decision_if_abuse_report_is_not_passed(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) assert not self.initial_job.can_be_appealed(is_reporter=True) @@ -1305,7 +1305,7 @@ def test_reporter_cant_appeal_non_approve_decision(self): ): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=decision_action, ) assert not self.initial_job.can_be_appealed( @@ -1315,7 +1315,7 @@ def test_reporter_cant_appeal_non_approve_decision(self): def test_reporter_cant_appeal_approve_decision_already_appealed(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) appeal_job = CinderJob.objects.create( @@ -1332,7 +1332,7 @@ def test_reporter_cant_appeal_approve_decision_already_appealed(self): def test_reporter_can_appeal_approve_decision_already_appealed_someone_else(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) appeal_job = CinderJob.objects.create( @@ -1354,13 +1354,13 @@ def test_reporter_can_appeal_approve_decision_already_appealed_someone_else(self def test_reporter_cant_appeal_approve_decision_already_appealed_and_decided(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) appeal_job = CinderJob.objects.create( job_id='fake_appeal_job_id', decision_date=datetime.now(), - decision_id='fake_appeal_decision_id', + decision_cinder_id='fake_appeal_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) self.initial_job.update(appeal_job=appeal_job) @@ -1379,13 +1379,13 @@ def test_reporter_cant_appeal_approve_decision_already_appealed_and_decided(self def test_reporter_cant_appeal_appealed_decision(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) appeal_job = CinderJob.objects.create( job_id='fake_appeal_job_id', decision_date=datetime.now(), - decision_id='fake_appeal_decision_id', + decision_cinder_id='fake_appeal_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) self.initial_job.update(appeal_job=appeal_job) @@ -1407,7 +1407,7 @@ def test_reporter_cant_appeal_appealed_decision(self): def test_reporter_cant_appeal_past_expiration_delay(self): self.initial_job.update( decision_date=self.days_ago(APPEAL_EXPIRATION_DAYS + 1), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) assert not self.initial_job.can_be_appealed( @@ -1417,7 +1417,7 @@ def test_reporter_cant_appeal_past_expiration_delay(self): def test_author_can_appeal_disable_decision(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, ) assert self.initial_job.can_be_appealed(is_reporter=False) @@ -1430,7 +1430,7 @@ def test_author_can_appeal_delete_decision_rating(self): self.initial_report.update(guid=None, rating=rating) self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_DELETE_RATING, ) self.initial_job.can_be_appealed(is_reporter=False) @@ -1441,7 +1441,7 @@ def test_author_can_appeal_delete_decision_collection(self): self.initial_report.update(guid=None, collection=collection) self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_DELETE_COLLECTION, ) self.initial_job.can_be_appealed(is_reporter=False) @@ -1451,7 +1451,7 @@ def test_author_can_appeal_ban_user(self): self.initial_report.update(guid=None, user=user) self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_BAN_USER, ) self.initial_job.can_be_appealed(is_reporter=False) @@ -1464,7 +1464,7 @@ def test_author_cant_appeal_approve_or_escalation_decision(self): ): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=decision_action, ) assert not self.initial_job.can_be_appealed(is_reporter=False) @@ -1472,7 +1472,7 @@ def test_author_cant_appeal_approve_or_escalation_decision(self): def test_author_cant_appeal_disable_decision_already_appealed(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, ) appeal_job = CinderJob.objects.create( @@ -1484,13 +1484,13 @@ def test_author_cant_appeal_disable_decision_already_appealed(self): def test_author_can_appeal_appealed_decision(self): self.initial_job.update( decision_date=datetime.now(), - decision_id='fake_decision_id', + decision_cinder_id='fake_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_APPROVE, ) appeal_job = CinderJob.objects.create( job_id='fake_appeal_job_id', decision_date=datetime.now(), - decision_id='fake_appeal_decision_id', + decision_cinder_id='fake_appeal_decision_cinder_id', decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, ) self.initial_job.update(appeal_job=appeal_job) diff --git a/src/olympia/abuse/tests/test_tasks.py b/src/olympia/abuse/tests/test_tasks.py index c46f56bcc79..743ee7f9049 100644 --- a/src/olympia/abuse/tests/test_tasks.py +++ b/src/olympia/abuse/tests/test_tasks.py @@ -387,7 +387,7 @@ def test_addon_report_to_cinder_different_locale(): def test_addon_appeal_to_cinder_reporter(statsd_incr_mock): addon = addon_factory() cinder_job = CinderJob.objects.create( - decision_id='4815162342-abc', + decision_cinder_id='4815162342-abc', decision_date=datetime.now(), decision_action=DECISION_ACTIONS.AMO_APPROVE, ) @@ -407,7 +407,7 @@ def test_addon_appeal_to_cinder_reporter(statsd_incr_mock): statsd_incr_mock.reset_mock() appeal_to_cinder.delay( - decision_id=cinder_job.decision_id, + decision_cinder_id=cinder_job.decision_cinder_id, abuse_report_id=abuse_report.id, appeal_text='I appeal', user_id=None, @@ -445,7 +445,7 @@ def test_addon_appeal_to_cinder_reporter(statsd_incr_mock): def test_addon_appeal_to_cinder_reporter_exception(statsd_incr_mock): addon = addon_factory() cinder_job = CinderJob.objects.create( - decision_id='4815162342-abc', + decision_cinder_id='4815162342-abc', decision_date=datetime.now(), decision_action=DECISION_ACTIONS.AMO_APPROVE, ) @@ -466,7 +466,7 @@ def test_addon_appeal_to_cinder_reporter_exception(statsd_incr_mock): with pytest.raises(ConnectionError): appeal_to_cinder.delay( - decision_id=cinder_job.decision_id, + decision_cinder_id=cinder_job.decision_cinder_id, abuse_report_id=abuse_report.id, appeal_text='I appeal', user_id=None, @@ -482,7 +482,7 @@ def test_addon_appeal_to_cinder_authenticated_reporter(): user = user_factory(fxa_id='fake-fxa-id') addon = addon_factory() cinder_job = CinderJob.objects.create( - decision_id='4815162342-abc', + decision_cinder_id='4815162342-abc', decision_date=datetime.now(), decision_action=DECISION_ACTIONS.AMO_APPROVE, ) @@ -500,7 +500,7 @@ def test_addon_appeal_to_cinder_authenticated_reporter(): ) appeal_to_cinder.delay( - decision_id=cinder_job.decision_id, + decision_cinder_id=cinder_job.decision_cinder_id, abuse_report_id=abuse_report.pk, appeal_text='I appeal', user_id=user.pk, @@ -537,7 +537,7 @@ def test_addon_appeal_to_cinder_authenticated_author(): user = user_factory(fxa_id='fake-fxa-id') addon = addon_factory(users=[user]) cinder_job = CinderJob.objects.create( - decision_id='4815162342-abc', + decision_cinder_id='4815162342-abc', decision_date=datetime.now(), decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, ) @@ -554,7 +554,7 @@ def test_addon_appeal_to_cinder_authenticated_author(): ) appeal_to_cinder.delay( - decision_id=cinder_job.decision_id, + decision_cinder_id=cinder_job.decision_cinder_id, abuse_report_id=None, appeal_text='I appeal', user_id=user.pk, diff --git a/src/olympia/abuse/tests/test_utils.py b/src/olympia/abuse/tests/test_utils.py index cb8a3baba6b..f2d7c95eeb0 100644 --- a/src/olympia/abuse/tests/test_utils.py +++ b/src/olympia/abuse/tests/test_utils.py @@ -39,7 +39,7 @@ class BaseTestCinderAction: def setUp(self): self.cinder_job = CinderJob.objects.create( job_id='1234', - decision_id='ab89', + decision_cinder_id='ab89', decision_date=datetime.now(), decision_notes='extra notes', ) @@ -111,7 +111,7 @@ def _test_reporter_ignore_email(self, subject): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': self.abuse_report_no_auth.id, - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) in mail.outbox[0].body @@ -121,7 +121,7 @@ def _test_reporter_ignore_email(self, subject): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': self.abuse_report_auth.id, - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) in mail.outbox[1].body @@ -174,7 +174,7 @@ def _test_owner_takedown_email(self, subject, snippet): reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) in mail_item.body @@ -545,7 +545,7 @@ def test_notify_owners_with_manual_policy_block(self): reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) in mail_item.body @@ -578,7 +578,7 @@ def _test_reject_version(self): reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) in mail_item.body diff --git a/src/olympia/abuse/tests/test_views.py b/src/olympia/abuse/tests/test_views.py index 87039603943..4f9972e41ae 100644 --- a/src/olympia/abuse/tests/test_views.py +++ b/src/olympia/abuse/tests/test_views.py @@ -925,7 +925,7 @@ def _test_process_decision_called(self, data, *, override): response = cinder_webhook(req) process_mock.assert_called() process_mock.assert_called_with( - decision_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', + decision_cinder_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', decision_date=datetime(2023, 10, 12, 9, 8, 37, 4789), decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON.value, decision_notes='some notes', @@ -950,7 +950,7 @@ def test_process_decision_called_for_appeal_confirm_approve(self): addon_factory(guid=abuse_report.guid) original_cinder_job = CinderJob.objects.get() original_cinder_job.update( - decision_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', + decision_cinder_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', decision_date=datetime(2023, 10, 12, 9, 8, 37, 4789), decision_action=DECISION_ACTIONS.AMO_APPROVE.value, appeal_job=CinderJob.objects.create( @@ -962,7 +962,7 @@ def test_process_decision_called_for_appeal_confirm_approve(self): response = cinder_webhook(req) assert process_mock.call_count == 1 process_mock.assert_called_with( - decision_id='76e0006d-1a42-4ec7-9475-148bab1970f1', + decision_cinder_id='76e0006d-1a42-4ec7-9475-148bab1970f1', decision_date=datetime(2024, 1, 12, 15, 20, 19, 226428), decision_action=DECISION_ACTIONS.AMO_APPROVE.value, decision_notes='still no!', @@ -978,7 +978,7 @@ def test_process_decision_called_for_appeal_disable(self): addon_factory(guid=abuse_report.guid) original_cinder_job = CinderJob.objects.get() original_cinder_job.update( - decision_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', + decision_cinder_id='d1f01fae-3bce-41d5-af8a-e0b4b5ceaaed', decision_date=datetime(2023, 10, 12, 9, 8, 37, 4789), decision_action=DECISION_ACTIONS.AMO_APPROVE.value, appeal_job=CinderJob.objects.create( @@ -990,7 +990,7 @@ def test_process_decision_called_for_appeal_disable(self): response = cinder_webhook(req) assert process_mock.call_count == 1 process_mock.assert_called_with( - decision_id='4f18b22c-6078-4934-b395-6a2e01cadf63', + decision_cinder_id='4f18b22c-6078-4934-b395-6a2e01cadf63', decision_date=datetime(2024, 1, 12, 14, 53, 23, 438634), decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON.value, decision_notes="fine I'll disable it", @@ -1621,7 +1621,7 @@ class TestAppeal(TestCase): def setUp(self): self.addon = addon_factory() self.cinder_job = CinderJob.objects.create( - decision_id='my-decision-id', + decision_cinder_id='my-decision-id', decision_action=DECISION_ACTIONS.AMO_APPROVE, decision_date=self.days_ago(1), created=self.days_ago(2), @@ -1636,13 +1636,13 @@ def setUp(self): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': self.abuse_report.id, - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) self.author_appeal_url = reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) patcher = mock.patch('olympia.abuse.views.appeal_to_cinder') @@ -1659,7 +1659,7 @@ def test_no_such_decision(self): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': self.abuse_report.id, - 'decision_id': '1234-5678-9000', + 'decision_cinder_id': '1234-5678-9000', }, ) assert self.client.get(url).status_code == 404 @@ -1667,7 +1667,7 @@ def test_no_such_decision(self): url = reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': '1234-5678-9000', + 'decision_cinder_id': '1234-5678-9000', }, ) assert self.client.get(url).status_code == 404 @@ -1677,7 +1677,7 @@ def test_no_such_abuse_report(self): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': self.abuse_report.id + 1, - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) assert self.client.get(url).status_code == 404 @@ -1741,7 +1741,7 @@ def test_appeal_approval_anonymous_report_with_email_post(self): assert self.appeal_mock.delay.call_args_list[0][0] == () assert self.appeal_mock.delay.call_args_list[0][1] == { 'appeal_text': 'I dont like this', - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, 'abuse_report_id': self.abuse_report.id, 'user_id': None, 'is_reporter': True, @@ -1855,7 +1855,7 @@ def test_appeal_rejection_author(self): assert self.appeal_mock.delay.call_args_list[0][0] == () assert self.appeal_mock.delay.call_args_list[0][1] == { 'appeal_text': 'I dont like this', - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, 'abuse_report_id': None, 'user_id': user.pk, 'is_reporter': False, @@ -1889,7 +1889,7 @@ def test_appeal_banned_user(self): assert self.appeal_mock.delay.call_args_list[0][0] == () assert self.appeal_mock.delay.call_args_list[0][1] == { 'appeal_text': 'I am not a bad guy', - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, 'abuse_report_id': None, 'user_id': None, 'is_reporter': False, @@ -1952,7 +1952,7 @@ def test_reporter_cant_appeal_appealed_decision_already_made_for_other_affirm(se # specific error message (in this case we confirmed the original # decision). appeal_job.update( - decision_id='appeal decision id', + decision_cinder_id='appeal decision id', decision_action=DECISION_ACTIONS.AMO_APPROVE, decision_date=datetime.now(), ) @@ -1999,7 +1999,7 @@ def test_reporter_cant_appeal_appealed_decision_already_made_for_other_turned(se # the content is already supposed to be disabled but the reporter might # not have noticed). appeal_job.update( - decision_id='appeal decision id', + decision_cinder_id='appeal decision id', decision_action=DECISION_ACTIONS.AMO_DISABLE_ADDON, decision_date=datetime.now(), ) diff --git a/src/olympia/abuse/urls.py b/src/olympia/abuse/urls.py index 8e279e5bedb..d35107fdea5 100644 --- a/src/olympia/abuse/urls.py +++ b/src/olympia/abuse/urls.py @@ -5,13 +5,13 @@ urlpatterns = [ path( - 'appeal//', + 'appeal//', appeal, kwargs={'abuse_report_id': None}, name='abuse.appeal_author', ), path( - 'appeal///', + 'appeal///', appeal, name='abuse.appeal_reporter', ), diff --git a/src/olympia/abuse/utils.py b/src/olympia/abuse/utils.py index 691b8952c4f..2227d1d4079 100644 --- a/src/olympia/abuse/utils.py +++ b/src/olympia/abuse/utils.py @@ -84,7 +84,7 @@ def notify_owners(self, *, policy_text=None): with no_jinja_autoescape(): template = loader.get_template(self.owner_template_path) target_name = self.get_target_name() - reference_id = f'ref:{self.cinder_job.decision_id}' + reference_id = f'ref:{self.cinder_job.decision_cinder_id}' context_dict = { 'additional_reasoning': self.cinder_job.decision_notes or '', 'is_third_party_initiated': self.is_third_party_initiated, @@ -111,7 +111,7 @@ def notify_owners(self, *, policy_text=None): reverse( 'abuse.appeal_author', kwargs={ - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': self.cinder_job.decision_cinder_id, }, ) ) @@ -153,7 +153,9 @@ def notify_reporters(self): abuse_report.application_locale or settings.LANGUAGE_CODE ): target_name = self.get_target_name() - reference_id = f'ref:{self.cinder_job.decision_id}/{abuse_report.id}' + reference_id = ( + f'ref:{self.cinder_job.decision_cinder_id}/{abuse_report.id}' + ) subject = _('Mozilla Add-ons: {} [{}]').format( target_name, reference_id ) @@ -177,7 +179,9 @@ def notify_reporters(self): 'abuse.appeal_reporter', kwargs={ 'abuse_report_id': abuse_report.id, - 'decision_id': self.cinder_job.decision_id, + 'decision_cinder_id': ( + self.cinder_job.decision_cinder_id + ), }, ) ) diff --git a/src/olympia/abuse/views.py b/src/olympia/abuse/views.py index 81d36ae3dd0..b1ba9b26301 100644 --- a/src/olympia/abuse/views.py +++ b/src/olympia/abuse/views.py @@ -261,7 +261,7 @@ def cinder_webhook(request): raise ValidationError(f'Payload invalid: {reason}') cinder_job.process_decision( - decision_id=source.get('decision', {}).get('id'), + decision_cinder_id=source.get('decision', {}).get('id'), decision_date=process_datestamp(payload.get('timestamp')), decision_action=enforcement_actions[0], decision_notes=payload.get('notes') or '', @@ -288,13 +288,13 @@ def cinder_webhook(request): ) -def appeal(request, *, abuse_report_id, decision_id, **kwargs): +def appeal(request, *, abuse_report_id, decision_cinder_id, **kwargs): appealable_decisions = tuple(DECISION_ACTIONS.APPEALABLE_BY_AUTHOR.values) + tuple( DECISION_ACTIONS.APPEALABLE_BY_REPORTER.values ) cinder_job = get_object_or_404( CinderJob.objects.filter(decision_action__in=appealable_decisions), - decision_id=decision_id, + decision_cinder_id=decision_cinder_id, ) if abuse_report_id: @@ -312,7 +312,7 @@ def appeal(request, *, abuse_report_id, decision_id, **kwargs): target = cinder_job.target context_data = { - 'decision_id': decision_id, + 'decision_cinder_id': decision_cinder_id, } post_data = request.POST if request.method == 'POST' else None valid_user_or_email_provided = False @@ -389,7 +389,7 @@ def appeal(request, *, abuse_report_id, decision_id, **kwargs): appeal_form = AbuseAppealForm(post_data, request=request) if appeal_form.is_bound and appeal_form.is_valid(): appeal_to_cinder.delay( - decision_id=cinder_job.decision_id, + decision_cinder_id=cinder_job.decision_cinder_id, abuse_report_id=abuse_report.id if abuse_report else None, appeal_text=appeal_form.cleaned_data['reason'], user_id=request.user.pk,