3.0.0
This commit is contained in:
parent
ac0a351064
commit
56d96b32cb
|
|
@ -60,17 +60,7 @@ final class WebdavAdapter
|
||||||
$defaultVisibility = $webdav['default_visibility'] ?? ($config['visibility'] ?? Visibility::PRIVATE);
|
$defaultVisibility = $webdav['default_visibility'] ?? ($config['visibility'] ?? Visibility::PRIVATE);
|
||||||
$visibility = $this->normaliseVisibility($defaultVisibility);
|
$visibility = $this->normaliseVisibility($defaultVisibility);
|
||||||
|
|
||||||
// Permisos Unix por defecto (puedes exponerlos en config si lo necesitas)
|
$permissions = $this->normalisePermissions($webdav['permissions'] ?? []);
|
||||||
$permissions = $webdav['permissions'] ?? [
|
|
||||||
'file' => [
|
|
||||||
Visibility::PUBLIC => 0644,
|
|
||||||
Visibility::PRIVATE => 0600,
|
|
||||||
],
|
|
||||||
'dir' => [
|
|
||||||
Visibility::PUBLIC => 0755,
|
|
||||||
Visibility::PRIVATE => 0700,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
$directoryDefault = $visibility === Visibility::PUBLIC ? 0755 : 0700;
|
$directoryDefault = $visibility === Visibility::PUBLIC ? 0755 : 0700;
|
||||||
|
|
||||||
|
|
@ -124,4 +114,48 @@ final class WebdavAdapter
|
||||||
? Visibility::PUBLIC
|
? Visibility::PUBLIC
|
||||||
: Visibility::PRIVATE;
|
: Visibility::PRIVATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function normalisePermissions(array $permissions): array
|
||||||
|
{
|
||||||
|
$defaults = [
|
||||||
|
'file' => [
|
||||||
|
Visibility::PUBLIC => 0644,
|
||||||
|
Visibility::PRIVATE => 0600,
|
||||||
|
],
|
||||||
|
'dir' => [
|
||||||
|
Visibility::PUBLIC => 0755,
|
||||||
|
Visibility::PRIVATE => 0700,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach (['file', 'dir'] as $type) {
|
||||||
|
if (! isset($permissions[$type]) || ! is_array($permissions[$type])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($permissions[$type] as $visibility => $mode) {
|
||||||
|
$visibility = strtolower((string) $visibility);
|
||||||
|
|
||||||
|
if ($visibility !== Visibility::PUBLIC && $visibility !== Visibility::PRIVATE) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_string($mode)) {
|
||||||
|
$mode = trim($mode);
|
||||||
|
|
||||||
|
if ($mode === '') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$mode = octdec($mode);
|
||||||
|
} elseif (! is_int($mode)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$defaults[$type][$visibility] = $mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $defaults;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue