mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
Merge remote-tracking branch 'origin/api' into api
# Conflicts: # .env.testing # public/mix-manifest.json # resources/js/components/RemoteUpload/RemoteUploadPopup.vue # resources/js/store/modules/fileBrowser.js # resources/js/store/modules/fileFunctions.js # routes/share.php # src/Domain/Files/Controllers/VisitorUploadFileChunksController.php # tests/Domain/Sharing/VisitorManipulatingTest.php # tests/Domain/Traffic/TrafficTest.php
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
use Domain\Sharing\Controllers\ShareController;
|
||||
use Domain\Zip\Controllers\VisitorZipController;
|
||||
use Domain\Files\Controllers\VisitorShowFileController;
|
||||
use Domain\Files\Controllers\VisitorUploadFileController;
|
||||
use Domain\Folders\Controllers\VisitorCreateFolderController;
|
||||
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
|
||||
use Domain\Browsing\Controllers\VisitorBrowseFolderController;
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
<?php
|
||||
namespace Domain\Files\Controllers;
|
||||
|
||||
use Str;
|
||||
use Storage;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Files\Actions\ProcessFileAction;
|
||||
use Domain\Files\Requests\UploadFileRequest;
|
||||
use Support\Demo\Actions\FakeUploadFileAction;
|
||||
use Domain\Files\Actions\StoreFileChunksAction;
|
||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
/**
|
||||
* guest user upload file into shared folder
|
||||
*/
|
||||
class VisitorUploadFileController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public ProcessFileAction $processFie,
|
||||
public StoreFileChunksAction $storeFileChunks,
|
||||
private FakeUploadFileAction $fakeUploadFile,
|
||||
private ProtectShareRecordAction $protectShareRecord,
|
||||
private VerifyAccessToItemAction $verifyAccessToItem,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
UploadFileRequest $request,
|
||||
Share $shared,
|
||||
): JsonResponse {
|
||||
if (isDemoAccount()) {
|
||||
return response()->json(($this->fakeUploadFile)($request), 201);
|
||||
}
|
||||
|
||||
// Check ability to access protected share record
|
||||
($this->protectShareRecord)($shared);
|
||||
|
||||
// Check shared permission
|
||||
if (is_visitor($shared)) {
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
// Add default parent id if missing
|
||||
if ($request->missing('parent_id')) {
|
||||
$request->merge(['parent_id' => $shared->item_id]);
|
||||
}
|
||||
|
||||
// Check access to requested directory
|
||||
($this->verifyAccessToItem)($request->input('parent_id'), $shared);
|
||||
|
||||
// Get file name
|
||||
$name = Str::uuid() . '.' . $request->input('extension');
|
||||
|
||||
// Put file to user directory
|
||||
Storage::disk('local')->put("files/$shared->user_id/$name", $request->file('file')->get());
|
||||
|
||||
// Process file
|
||||
$file = ($this->processFie)($request, $shared->user, $name);
|
||||
|
||||
// Set public access url
|
||||
$file->setSharedPublicUrl($shared->token);
|
||||
|
||||
return response()->json(new FileResource($file), 201);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user