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);
|
||||
$visibility = $this->normaliseVisibility($defaultVisibility);
|
||||
|
||||
// Permisos Unix por defecto (puedes exponerlos en config si lo necesitas)
|
||||
$permissions = $webdav['permissions'] ?? [
|
||||
'file' => [
|
||||
Visibility::PUBLIC => 0644,
|
||||
Visibility::PRIVATE => 0600,
|
||||
],
|
||||
'dir' => [
|
||||
Visibility::PUBLIC => 0755,
|
||||
Visibility::PRIVATE => 0700,
|
||||
],
|
||||
];
|
||||
$permissions = $this->normalisePermissions($webdav['permissions'] ?? []);
|
||||
|
||||
$directoryDefault = $visibility === Visibility::PUBLIC ? 0755 : 0700;
|
||||
|
||||
|
|
@ -124,4 +114,48 @@ final class WebdavAdapter
|
|||
? Visibility::PUBLIC
|
||||
: 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