From 9c0c72c16674591c4113c543e5221cc33fd68ce7 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Wed, 8 May 2019 12:51:48 +0800 Subject: [PATCH] Allow to process report more than once --- app/Http/Controllers/ReportController.php | 21 ++++++++++----------- resources/misc/changelogs/en/4.2.0.md | 1 + resources/misc/changelogs/zh_CN/4.2.0.md | 1 + tests/ReportControllerTest.php | 7 ++----- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 9f45d45c..440bd6de 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -89,14 +89,11 @@ class ReportController extends Controller ]); $report = Report::find($data['id']); - if ($report->status != Report::PENDING) { - return json(trans('admin.report-reviewed'), 1); - } - if ($data['action'] == 'reject') { if ( $report->informer && - ($score = option('reporter_score_modification', 0)) > 0 + ($score = option('reporter_score_modification', 0)) > 0 && + $report->status == Report::PENDING ) { $report->informer->score -= $score; $report->informer->save(); @@ -120,15 +117,17 @@ class ReportController extends Controller break; } + if ($report->status == Report::PENDING) { + if (($score = option('reporter_score_modification', 0)) < 0) { + $report->informer->score -= $score; + } + $report->informer->score += option('reporter_reward_score', 0); + $report->informer->save(); + } + $report->status = Report::RESOLVED; $report->save(); - if (($score = option('reporter_score_modification', 0)) < 0) { - $report->informer->score -= $score; - } - $report->informer->score += option('reporter_reward_score', 0); - $report->informer->save(); - return json(trans('general.op-success'), 0, ['status' => Report::RESOLVED]); } } diff --git a/resources/misc/changelogs/en/4.2.0.md b/resources/misc/changelogs/en/4.2.0.md index 9bcfa684..63932697 100644 --- a/resources/misc/changelogs/en/4.2.0.md +++ b/resources/misc/changelogs/en/4.2.0.md @@ -6,6 +6,7 @@ ## Tweaked - Preview the player automatically if a user has only one player. +- Allowed to process report more than once. ## Fixed diff --git a/resources/misc/changelogs/zh_CN/4.2.0.md b/resources/misc/changelogs/zh_CN/4.2.0.md index 60ddf2da..48ddd151 100644 --- a/resources/misc/changelogs/zh_CN/4.2.0.md +++ b/resources/misc/changelogs/zh_CN/4.2.0.md @@ -6,6 +6,7 @@ ## 调整 - 当用户只有一个角色时,角色页面会自动预览该角色 +- 允许多次处理同一条举报 ## 修复 diff --git a/tests/ReportControllerTest.php b/tests/ReportControllerTest.php index 7197e028..366bfbfa 100644 --- a/tests/ReportControllerTest.php +++ b/tests/ReportControllerTest.php @@ -144,12 +144,9 @@ class ReportControllerTest extends TestCase $this->postJson('/admin/reports', ['id' => $report->id, 'action' => 'a']) ->assertJsonValidationErrors('action'); - // Only process pending report + // Allow to process again $this->postJson('/admin/reports', ['id' => $report->id, 'action' => 'reject']) - ->assertJson([ - 'code' => 1, - 'message' => trans('admin.report-reviewed'), - ]); + ->assertJson(['code' => 0]); // Reject $report->status = Report::PENDING;