/home/ivoiecob/email.hirewise-va.com/vendor/afterlogic/dav/lib/DAV/FS/Local/Personal/Directory.php
<?php
/**
* This code is licensed under AGPLv3 license or Afterlogic Software License
* if commercial version of the product was purchased.
* For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
*/
namespace Afterlogic\DAV\FS\Local\Personal;
use Afterlogic\DAV\FS\HistoryDirectory;
use Afterlogic\DAV\Server;
use Aurora\System\Api;
use Sabre\DAV\Exception\NotFound;
/**
* @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0
* @license https://afterlogic.com/products/common-licensing Afterlogic Software License
* @copyright Copyright (c) 2019, Afterlogic Corp.
*/
class Directory extends \Afterlogic\DAV\FS\Local\Directory
{
use \Afterlogic\DAV\FS\Shared\DirectoryTrait;
public function __construct($path)
{
parent::__construct(\Aurora\System\Enums\FileStorageType::Personal, $path);
}
public function getChild($name)
{
$mResult = false;
try {
$mResult = $this->getLocalChild($name);
} catch (\Exception $oEx) {
}
if (!$mResult) {
$mResult = $this->getSharedChild($name);
}
if (!$mResult) {
throw new NotFound();
}
return $mResult;
}
public function getLocalChild($name)
{
$result = null;
$path = $this->checkFileName($name);
if (is_dir($path)) {
$ext = strtolower(substr($name, -5));
if ($ext === '.hist') {
$result = new HistoryDirectory($this->getStorage(), $path);
} else {
$result = new self($path);
}
} else {
$result = new File($path);
}
return $result;
}
public function createFile($name, $data = null, $rangeType = 0, $offset = 0, $extendedProps = [])
{
$result = parent::createFile($name, $data, $rangeType, $offset, $extendedProps);
$this->updateUsedSpace();
return $result;
}
public function getQuotaInfo()
{
$oRoot = Server::getNodeForPath('files/personal');
if ($oRoot instanceof Root) {
return $oRoot->getQuotaInfo();
} else {
return [0, 0];
}
}
public function getChildren()
{
$children = parent::getChildren();
$bShowSharedFilesInPersonalStorage = Api::GetModuleManager()->getModuleConfigValue('PersonalFiles', 'ShowSharedFilesInPersonalStorage');
if ($bShowSharedFilesInPersonalStorage) {
$children = array_merge(
$children,
$this->getSharedChildren()
);
}
return $children;
}
}