ignore readonly flag for directories
see http://support.microsoft.com/kb/326549 Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
1dd4f0efc0
commit
2fe8c42a97
|
@ -97,9 +97,6 @@ class SMB extends Common implements INotifyStorage {
|
|||
/** @var bool */
|
||||
protected $checkAcl;
|
||||
|
||||
/** @var bool */
|
||||
protected $rootWritable;
|
||||
|
||||
public function __construct($params) {
|
||||
if (!isset($params['host'])) {
|
||||
throw new \Exception('Invalid configuration, no host provided');
|
||||
|
@ -137,7 +134,6 @@ class SMB extends Common implements INotifyStorage {
|
|||
|
||||
$this->showHidden = isset($params['show_hidden']) && $params['show_hidden'];
|
||||
$this->checkAcl = isset($params['check_acl']) && $params['check_acl'];
|
||||
$this->rootWritable = isset($params['root_force_writable']) && $params['root_force_writable'];
|
||||
|
||||
$this->statCache = new CappedMemoryCache();
|
||||
parent::__construct($params);
|
||||
|
@ -578,9 +574,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
$permissions = Constants::PERMISSION_READ + Constants::PERMISSION_SHARE;
|
||||
|
||||
if (
|
||||
!$fileInfo->isReadOnly() || (
|
||||
$this->rootWritable && $fileInfo->getPath() == $this->buildPath('')
|
||||
)
|
||||
!$fileInfo->isReadOnly() || $fileInfo->isDirectory()
|
||||
) {
|
||||
$permissions += Constants::PERMISSION_DELETE;
|
||||
$permissions += Constants::PERMISSION_UPDATE;
|
||||
|
@ -683,7 +677,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
$info = $this->getFileInfo($path);
|
||||
// following windows behaviour for read-only folders: they can be written into
|
||||
// (https://support.microsoft.com/en-us/kb/326549 - "cause" section)
|
||||
return ($this->showHidden || !$info->isHidden()) && (!$info->isReadOnly() || $this->is_dir($path));
|
||||
return ($this->showHidden || !$info->isHidden()) && (!$info->isReadOnly() || $info->isDirectory());
|
||||
} catch (NotFoundException $e) {
|
||||
return false;
|
||||
} catch (ForbiddenException $e) {
|
||||
|
|
Loading…
Reference in New Issue