3.0.0
This commit is contained in:
parent
0dcd0dbf00
commit
510a40a350
|
|
@ -4,9 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace FlysystemOffload\Filesystem\Adapters;
|
namespace FlysystemOffload\Filesystem\Adapters;
|
||||||
|
|
||||||
use FlysystemOffload\Filesystem\AdapterInterface; // ← CORRECTO (sin Adapters)
|
use FlysystemOffload\Filesystem\AdapterInterface;
|
||||||
use League\Flysystem\FilesystemAdapter;
|
use League\Flysystem\FilesystemAdapter;
|
||||||
use League\Flysystem\WebDAV\WebDAVAdapter as LeagueWebDAVAdapter;
|
use League\Flysystem\WebDAV\WebDAVAdapter as LeagueWebDAVAdapter;
|
||||||
|
use League\Flysystem\UnixVisibility\PortableVisibilityConverter;
|
||||||
use Sabre\DAV\Client;
|
use Sabre\DAV\Client;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
|
|
||||||
|
|
@ -43,25 +44,36 @@ class WebdavAdapter implements AdapterInterface
|
||||||
// Crear cliente
|
// Crear cliente
|
||||||
$client = new Client($clientConfig);
|
$client = new Client($clientConfig);
|
||||||
|
|
||||||
// Configurar permisos
|
// Configurar permisos usando PortableVisibilityConverter
|
||||||
$permissions = [
|
$filePublic = $this->normalizePermission($config['file_public'] ?? '0644');
|
||||||
|
$filePrivate = $this->normalizePermission($config['file_private'] ?? '0600');
|
||||||
|
$dirPublic = $this->normalizePermission($config['dir_public'] ?? '0755');
|
||||||
|
$dirPrivate = $this->normalizePermission($config['dir_private'] ?? '0700');
|
||||||
|
|
||||||
|
$visibilityConverter = PortableVisibilityConverter::fromArray([
|
||||||
'file' => [
|
'file' => [
|
||||||
'public' => $this->normalizePermission($config['file_public'] ?? '0644'),
|
'public' => $filePublic,
|
||||||
'private' => $this->normalizePermission($config['file_private'] ?? '0600'),
|
'private' => $filePrivate,
|
||||||
],
|
],
|
||||||
'dir' => [
|
'dir' => [
|
||||||
'public' => $this->normalizePermission($config['dir_public'] ?? '0755'),
|
'public' => $dirPublic,
|
||||||
'private' => $this->normalizePermission($config['dir_private'] ?? '0700'),
|
'private' => $dirPrivate,
|
||||||
],
|
],
|
||||||
];
|
]);
|
||||||
|
|
||||||
error_log('[WebDAV Adapter] Creating adapter with permissions: ' . print_r($permissions, true));
|
error_log(sprintf(
|
||||||
|
'[WebDAV Adapter] Creating adapter with permissions - File: public=%o private=%o, Dir: public=%o private=%o',
|
||||||
|
$filePublic,
|
||||||
|
$filePrivate,
|
||||||
|
$dirPublic,
|
||||||
|
$dirPrivate
|
||||||
|
));
|
||||||
|
|
||||||
// Crear adaptador
|
// Crear adaptador con PortableVisibilityConverter
|
||||||
$adapter = new LeagueWebDAVAdapter(
|
$adapter = new LeagueWebDAVAdapter(
|
||||||
$client,
|
$client,
|
||||||
$config['prefix'] ?? '',
|
$config['prefix'] ?? '',
|
||||||
$permissions
|
$visibilityConverter
|
||||||
);
|
);
|
||||||
|
|
||||||
error_log('[WebDAV Adapter] Adapter created successfully');
|
error_log('[WebDAV Adapter] Adapter created successfully');
|
||||||
|
|
@ -127,12 +139,12 @@ class WebdavAdapter implements AdapterInterface
|
||||||
|
|
||||||
if (is_string($permission)) {
|
if (is_string($permission)) {
|
||||||
$permission = trim($permission);
|
$permission = trim($permission);
|
||||||
|
|
||||||
// Si es octal string (ej: "0644")
|
// Si es octal string (ej: "0644")
|
||||||
if (preg_match('/^0[0-7]{3}$/', $permission)) {
|
if (preg_match('/^0[0-7]{3}$/', $permission)) {
|
||||||
return intval($permission, 8);
|
return intval($permission, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si es decimal string sin el 0 (ej: "644")
|
// Si es decimal string sin el 0 (ej: "644")
|
||||||
if (preg_match('/^[0-7]{3}$/', $permission)) {
|
if (preg_match('/^[0-7]{3}$/', $permission)) {
|
||||||
return intval('0' . $permission, 8);
|
return intval('0' . $permission, 8);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue