%PDF- %PDF-
| Direktori : /home/graphicd/public_html/vebto/app/Http/Controllers/ |
| Current File : /home/graphicd/public_html/vebto/app/Http/Controllers/UserFoldersController.php |
<?php
namespace App\Http\Controllers;
use App\FileEntry;
use App\Folder;
use App\RootFolder;
use App\Services\Entries\SetPermissionsOnEntry;
use Common\Core\BaseController;
use Common\Workspaces\ActiveWorkspace;
use Illuminate\Http\JsonResponse;
class UserFoldersController extends BaseController
{
/**
* @var Folder
*/
private $folder;
/**
* @param Folder $folder
*/
public function __construct(Folder $folder)
{
$this->folder = $folder;
}
/**
* @param $userId
* @return JsonResponse
*/
public function index($userId)
{
$this->authorize('index', [FileEntry::class, null, $userId]);
$query = $this->folder
->where('workspace_id', app(ActiveWorkspace::class)->id ?? null);
if ( ! app(ActiveWorkspace::class)->id) {
$query->whereOwner($userId);
}
$folders = $query->select('file_entries.id', 'name', 'parent_id', 'path', 'type', 'workspace_id')
->with('users')
->orderByRaw('LENGTH(path)')
->limit(100)
->get();
foreach ($folders as $key => $folder) {
$folders[$key] = app(SetPermissionsOnEntry::class)->execute($folder);
}
return $this->success([
'folders' => $folders,
'rootFolder' => app(SetPermissionsOnEntry::class)->execute(new RootFolder()),
]);
}
}