Skip to content

Commit fc6f56f

Browse files
author
Aya Bezine
committed
Fix: Prevent review of unsubmitted storage requests
Resolves biigle/core#35
1 parent 31f9451 commit fc6f56f

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

src/Http/Controllers/Views/StorageRequestController.php

+14-10
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,19 @@ public function create(Request $request)
7676
*
7777
* @return \Illuminate\Http\Response
7878
*/
79-
public function review($id)
80-
{
81-
$request = StorageRequest::whereNull('expires_at')
82-
->with('files')
83-
->findOrFail($id);
84-
$this->authorize('approve', $request);
8579

86-
return view('user-storage::review', [
87-
'request' => $request,
88-
]);
89-
}
80+
public function review($id)
81+
{
82+
$request = StorageRequest::whereNull('expires_at')
83+
->whereNotNull('submitted_at') // Add this condition
84+
->with('files')
85+
->findOrFail($id);
86+
87+
$this->authorize('approve', $request);
88+
89+
return view('user-storage::review', [
90+
'request' => $request,
91+
]);
92+
}
93+
9094
}

tests/Http/Controllers/Views/StorageRequestControllerTest.php

+16-7
Original file line numberDiff line numberDiff line change
@@ -55,31 +55,40 @@ public function testReview()
5555
{
5656
$request = StorageRequest::factory()->create();
5757
$id = $request->id;
58-
58+
5959
$this->get("storage-requests/{$id}/review")->assertRedirect('login');
60-
60+
6161
$this->actingAs($request->user)
6262
->get("storage-requests/{$id}/review")
6363
->assertStatus(403);
64-
64+
6565
$user = UserTest::create([
6666
'role_id' => Role::editorId(),
6767
]);
68-
68+
6969
$this->actingAs($user)
7070
->get("storage-requests/{$id}/review")
7171
->assertStatus(403);
72-
72+
7373
$user->role_id = Role::adminId();
7474
$user->save();
75-
75+
7676
$this->actingAs($user)
7777
->get("storage-requests/{$id}/review")
7878
->assertViewIs('user-storage::review');
79-
79+
8080
$request->update(['expires_at' => '2022-03-28 10:40:00']);
8181
$this->actingAs($user)
8282
->get("storage-requests/{$id}/review")
8383
->assertStatus(404);
84+
85+
$unsubmittedRequest = StorageRequest::factory()->create([
86+
'submitted_at' => null,
87+
]);
88+
89+
$this->actingAs($user)
90+
->get("storage-requests/{$unsubmittedRequest->id}/review")
91+
->assertStatus(404);
8492
}
93+
8594
}

0 commit comments

Comments
 (0)