mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-28 02:50:39 +00:00
- Frontend restriction shared page
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Files\Resources\FilesCollection;
|
||||
@@ -30,6 +31,7 @@ class VisitorBrowseFolderController
|
||||
// Check if user can get directory
|
||||
($this->verifyAccessToItem)($id, $shared);
|
||||
|
||||
// Get requested folder
|
||||
$requestedFolder = Folder::findOrFail($id);
|
||||
|
||||
// Get files and folders
|
||||
@@ -49,7 +51,7 @@ class VisitorBrowseFolderController
|
||||
return [
|
||||
'folders' => new FolderCollection($folders),
|
||||
'files' => new FilesCollection($files),
|
||||
'root' => $requestedFolder,
|
||||
'root' => new FolderResource($requestedFolder),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\View\View;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
@@ -16,12 +17,16 @@ class SharePublicIndexController extends Controller
|
||||
*/
|
||||
public function __construct(
|
||||
public RecordDownloadAction $recordDownload,
|
||||
) {
|
||||
}
|
||||
) {}
|
||||
|
||||
public function __invoke(
|
||||
Share $share,
|
||||
): View | StreamedResponse {
|
||||
): View | StreamedResponse | RedirectResponse {
|
||||
// Check if user can see shared record
|
||||
if (! $share->user->canVisitShared()) {
|
||||
return redirect('/temporary-unavailable');
|
||||
}
|
||||
|
||||
// Delete share_session if exist
|
||||
if ($share->is_protected) {
|
||||
cookie()->queue('share_session', '', -1);
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Illuminate\View\View;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
@@ -12,7 +14,8 @@ class WebCrawlerOpenGraphController extends Controller
|
||||
*/
|
||||
public function __invoke(
|
||||
Share $share
|
||||
): View {
|
||||
): Application|Factory|View
|
||||
{
|
||||
$namespace = match ($share->type) {
|
||||
'folder' => 'Domain\\Folders\\Models\\Folder',
|
||||
'file' => 'Domain\\Files\\Models\\File',
|
||||
|
||||
Reference in New Issue
Block a user