Merge branch 'fix-58' into dev

Fixes #58
This commit is contained in:
yushijinhun 2019-05-19 14:24:00 +08:00
commit 6eee0233c3
No known key found for this signature in database
GPG Key ID: 5BC167F73EA558E4
2 changed files with 11 additions and 7 deletions

View File

@ -109,11 +109,15 @@ class ReportController extends Controller
$report->texture->delete();
break;
case 'ban':
if (auth()->user()->permission <= $report->informer->permission) {
$uploader = User::find($report->uploader);
if (! $uploader) {
return json(trans('admin.users.operations.non-existent'), 1);
}
if (auth()->user()->permission <= $uploader->permission) {
return json(trans('admin.users.operations.no-permission'), 1);
}
$report->informer->permission = User::BANNED;
$report->informer->save();
$uploader->permission = User::BANNED;
$uploader->save();
break;
}

View File

@ -115,7 +115,8 @@ class ReportControllerTest extends TestCase
public function testReview()
{
$uploader = factory(User::class)->create();
$reporter = factory(User::class, 'admin')->create();
$reporter = factory(User::class)->create();
$admin = factory(User::class, 'admin')->create();
$texture = factory(Texture::class)->create(['uploader' => $uploader->uid]);
$report = new Report;
@ -128,7 +129,7 @@ class ReportControllerTest extends TestCase
$report->refresh();
// Without `id` field
$this->actingAs($reporter)
$this->actingAs($admin)
->postJson('/admin/reports')
->assertJsonValidationErrors('id');
@ -200,9 +201,7 @@ class ReportControllerTest extends TestCase
option(['reporter_reward_score' => 6]);
$report->refresh();
$report->status = Report::PENDING;
$report->reporter = $uploader->uid; // I REPORT MYSELF. (我 举 报 我 自 己)
$report->save();
$reporter = $uploader;
$score = $reporter->score;
$this->postJson('/admin/reports', ['id' => $report->id, 'action' => 'ban'])
->assertJson([
@ -211,6 +210,7 @@ class ReportControllerTest extends TestCase
'data' => ['status' => Report::RESOLVED],
]);
$reporter->refresh();
$uploader->refresh();
$this->assertEquals(User::BANNED, $uploader->permission);
$this->assertEquals($score + 6, $reporter->score);
option(['reporter_reward_score' => 0]);