HEX
Server: Apache
System: Linux server1.ariadata.co 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: nepi (1051)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,show_source,popen,proc_open
Upload Files
File: /home/nepi/file.nepi.ir/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
{
    public function __construct(private Folder $folder)
    {
    }

    public function index(int $userId): JsonResponse
    {
        $this->authorize('index', [FileEntry::class, null, $userId]);

        $query = $this->folder->where(
            'workspace_id',
            app(ActiveWorkspace::class)->id,
        );

        if (!app(ActiveWorkspace::class)->id) {
            $query->where('owner_id', $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(),
            ),
        ]);
    }
}