mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-13 16:55:01 +00:00
19cc01131b
- protected shared view fix
34 lines
745 B
PHP
34 lines
745 B
PHP
<?php
|
|
namespace Domain\Sharing\Actions;
|
|
|
|
use Domain\Files\Models\File;
|
|
use Domain\Sharing\Models\Share;
|
|
|
|
class VerifyAccessToItemWithinAction
|
|
{
|
|
public function __construct(
|
|
private VerifyAccessToItemAction $verifyAccessToItem,
|
|
) {
|
|
}
|
|
|
|
/**
|
|
* Check user file access
|
|
*/
|
|
public function __invoke(
|
|
Share $shared,
|
|
File $file
|
|
): void {
|
|
// Check by parent folder permission
|
|
if ($shared->type === 'folder') {
|
|
($this->verifyAccessToItem)($file->parent_id, $shared);
|
|
}
|
|
|
|
// Check by single file permission
|
|
if ($shared->type === 'file') {
|
|
if ($shared->item_id !== $file->id) {
|
|
abort(403);
|
|
}
|
|
}
|
|
}
|
|
}
|