diff --git a/routes/upload-request.php b/routes/upload-request.php index 2ee331ec..2d47a2e1 100644 --- a/routes/upload-request.php +++ b/routes/upload-request.php @@ -1,7 +1,7 @@ where('basename', $originalFileName) + ->where('basename', substr($filename, 3)) ->firstOrFail(); if (! Gate::any(['can-edit', 'can-view'], [$file, null])) { diff --git a/src/Domain/Files/Controllers/FileAccess/VisitorGetThumbnailController.php b/src/Domain/Files/Controllers/FileAccess/VisitorGetThumbnailController.php index 9d7a8e68..f94949fc 100644 --- a/src/Domain/Files/Controllers/FileAccess/VisitorGetThumbnailController.php +++ b/src/Domain/Files/Controllers/FileAccess/VisitorGetThumbnailController.php @@ -30,11 +30,9 @@ class VisitorGetThumbnailController extends Controller // Check ability to access protected share files ($this->protectShareRecord)($shared); - $originalFileName = substr($filename, 3); - // Get file record $file = UserFile::where('user_id', $shared->user_id) - ->where('basename', $originalFileName) + ->where('basename', substr($filename, 3)) ->firstOrFail(); // Check file access diff --git a/src/Domain/Files/Models/File.php b/src/Domain/Files/Models/File.php index f9c5d346..17cc21f9 100644 --- a/src/Domain/Files/Models/File.php +++ b/src/Domain/Files/Models/File.php @@ -115,7 +115,6 @@ class File extends Model // Generate thumbnail link for local storage if ($this->type === 'image') { - foreach ($thumbnail_sizes as $item) { $route = route('thumbnail', ['name' => $item['name'] . '-' . $this->basename]); diff --git a/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php b/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php index b35d5671..853735b6 100644 --- a/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php +++ b/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php @@ -1,13 +1,12 @@ status !== 'active') { + return response('Gone', 410); + } + // Get file $file = File::where('user_id', $uploadRequest->user_id) ->where('basename', $filename) + ->where('parent_id', $uploadRequest->id) ->firstOrFail(); // Store user download size diff --git a/src/Domain/UploadRequest/Controllers/FileAccess/GetThumbnailFromUploadRequestController.php b/src/Domain/UploadRequest/Controllers/FileAccess/GetThumbnailFromUploadRequestController.php index 6de38df6..889b0502 100644 --- a/src/Domain/UploadRequest/Controllers/FileAccess/GetThumbnailFromUploadRequestController.php +++ b/src/Domain/UploadRequest/Controllers/FileAccess/GetThumbnailFromUploadRequestController.php @@ -1,11 +1,14 @@ status !== 'active') { + return response('Gone', 410); + } // Get file $file = File::where('user_id', $uploadRequest->user_id) - ->where('basename', $originalFileName) + ->where('basename', substr($filename, 3)) + ->where('parent_id', $uploadRequest->id) ->firstOrFail(); // Store user download size diff --git a/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php b/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php index f2232a39..cbc92cf4 100644 --- a/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php +++ b/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php @@ -1,20 +1,20 @@ 'error', @@ -71,4 +70,4 @@ class UploadFilesForUploadRequestController 'name' => "Upload Request from $timestampName", ]); } -} \ No newline at end of file +} diff --git a/src/Domain/UploadRequest/Models/UploadRequest.php b/src/Domain/UploadRequest/Models/UploadRequest.php index 953020b1..c26a4d35 100644 --- a/src/Domain/UploadRequest/Models/UploadRequest.php +++ b/src/Domain/UploadRequest/Models/UploadRequest.php @@ -2,10 +2,10 @@ namespace Domain\UploadRequest\Models; use App\Users\Models\User; -use Database\Factories\UploadRequestFactory; -use Domain\Folders\Models\Folder; use Illuminate\Support\Str; +use Domain\Folders\Models\Folder; use Illuminate\Database\Eloquent\Model; +use Database\Factories\UploadRequestFactory; use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Factories\HasFactory; diff --git a/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php b/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php index 5bf8fe5a..eecd2a4e 100644 --- a/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php +++ b/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php @@ -1,12 +1,11 @@ hasSettings() + ->create(); + + $uploadRequest = UploadRequest::factory() + ->create([ + 'status' => 'active', + 'user_id' => $user->id, + 'created_at' => now(), + ]); + + $file = UploadedFile::fake() + ->create(Str::random() . '-fake-file.pdf', 1200, 'application/pdf'); + + Storage::putFileAs("files/$user->id", $file, $file->name); + + File::factory() + ->create([ + 'parent_id' => $uploadRequest->id, + 'basename' => $file->name, + 'user_id' => $user->id, + 'name' => 'fake-file.pdf', + ]); + + $this + ->get("/file/$file->name/upload-request/$uploadRequest->id") + ->assertOk(); + } + + /** + * @test + */ + public function it_get_thumbnail_from_upload_request_folder() + { + $user = User::factory() + ->hasSettings() + ->create(); + + $uploadRequest = UploadRequest::factory() + ->create([ + 'status' => 'active', + 'user_id' => $user->id, + 'created_at' => now(), + ]); + + $thumbnail = UploadedFile::fake() + ->image('fake-thumbnail.jpg'); + + Storage::putFileAs("files/$user->id", $thumbnail, $thumbnail->name); + + File::factory() + ->create([ + 'parent_id' => $uploadRequest->id, + 'basename' => 'fake-thumbnail.jpg', + 'user_id' => $user->id, + ]); + + $this + ->get("/thumbnail/xs-$thumbnail->name/upload-request/$uploadRequest->id") + ->assertOk(); + } + + /** + * @test + */ + public function it_try_get_file_from_expired_upload_request_folder() + { + $uploadRequest = UploadRequest::factory() + ->create([ + 'status' => 'expired', + 'created_at' => now(), + ]); + + $this + ->get("/file/fake-file.pdf/upload-request/$uploadRequest->id") + ->assertStatus(410); + } + + /** + * @test + */ + public function it_try_get_thumbnail_from_expired_upload_request_folder() + { + $uploadRequest = UploadRequest::factory() + ->create([ + 'status' => 'filled', + 'created_at' => now(), + ]); + + $this + ->get("/thumbnail/xs-fake-thumbnail.jpeg/upload-request/$uploadRequest->id") + ->assertStatus(410); + } +} diff --git a/tests/Domain/UploadRequest/UploadRequestTest.php b/tests/Domain/UploadRequest/UploadRequestTest.php index 3c0eb85b..06f63cba 100644 --- a/tests/Domain/UploadRequest/UploadRequestTest.php +++ b/tests/Domain/UploadRequest/UploadRequestTest.php @@ -1,16 +1,14 @@ actingAs($user) - ->postJson("/api/upload-request", [ + ->postJson('/api/upload-request', [ 'folder_id' => '00cacdb9-1d09-4a32-8ad7-c0d45d66b758', 'email' => 'howdy@hi5ve.digital', 'notes' => 'Please send me your files...', @@ -63,7 +61,7 @@ class UploadRequestTest extends TestCase $this ->actingAs($user) - ->postJson("/api/upload-request", [ + ->postJson('/api/upload-request', [ 'folder_id' => '00cacdb9-1d09-4a32-8ad7-c0d45d66b758', 'notes' => 'Please send me your files...', ]) @@ -144,7 +142,7 @@ class UploadRequestTest extends TestCase /** * @test */ - public function it_upload_file_into_non_active_upload_request() + public function it_try_upload_file_into_non_active_upload_request() { $user = User::factory() ->hasSettings() @@ -169,71 +167,4 @@ class UploadRequestTest extends TestCase 'is_last' => 'true', ])->assertStatus(410); } - - /** - * @test - */ - public function it_get_file_from_upload_request_folder() - { - $user = User::factory() - ->hasSettings() - ->create(); - - $uploadRequest = UploadRequest::factory() - ->create([ - 'status' => 'active', - 'user_id' => $user->id, - 'created_at' => now(), - ]); - - $file = UploadedFile::fake() - ->create(Str::random() . '-fake-file.pdf', 1200, 'application/pdf'); - - Storage::putFileAs("files/$user->id", $file, $file->name); - - File::factory() - ->create([ - 'parent_id' => $uploadRequest->id, - 'basename' => $file->name, - 'user_id' => $user->id, - 'name' => 'fake-file.pdf', - ]); - - $this - ->get("/file/$file->name/upload-request/$uploadRequest->id") - ->assertOk(); - } - - /** - * @test - */ - public function it_get_thumbnail_from_upload_request_folder() - { - $user = User::factory() - ->hasSettings() - ->create(); - - $uploadRequest = UploadRequest::factory() - ->create([ - 'status' => 'active', - 'user_id' => $user->id, - 'created_at' => now(), - ]); - - $thumbnail = UploadedFile::fake() - ->image('fake-thumbnail.jpg'); - - Storage::putFileAs("files/$user->id", $thumbnail, $thumbnail->name); - - File::factory() - ->create([ - 'parent_id' => $uploadRequest->id, - 'basename' => 'fake-thumbnail.jpg', - 'user_id' => $user->id, - ]); - - $this - ->get("/thumbnail/xs-$thumbnail->name/upload-request/$uploadRequest->id") - ->assertOk(); - } -} \ No newline at end of file +}