Many fixes

New ownCloud package with a built-in webmail
This commit is contained in:
RainLoop Team 2015-02-12 01:39:27 +04:00
parent 323dd34c8b
commit 6116597f6f
56 changed files with 1137 additions and 232 deletions

View file

@ -4,6 +4,11 @@ namespace RainLoop\Providers\Files;
class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface
{
/**
* @var array
*/
private $aResources;
/**
* @var string
*/
@ -16,6 +21,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface
*/
public function __construct($sStoragePath)
{
$this->aResources = array();
$this->sDataPath = \rtrim(\trim($sStoragePath), '\\/');
}
@ -70,6 +76,11 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface
if ($bCreate || \file_exists($sFileName))
{
$mResult = @\fopen($sFileName, $sOpenMode);
if (\is_resource($mResult))
{
$this->aResources[$sFileName] = $mResult;
}
}
return $mResult;
@ -105,6 +116,11 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface
$sFileName = $this->generateFileName($oAccount, $sKey);
if (\file_exists($sFileName))
{
if (isset($this->aResources[$sFileName]) && \is_resource($this->aResources[$sFileName]))
{
@\fclose($this->aResources[$sFileName]);
}
$mResult = @\unlink($sFileName);
}
@ -156,6 +172,25 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface
return false;
}
/**
* @return bool
*/
public function CloseAllOpenedFiles()
{
if (\is_array($this->aResources) && 0 < \count($this->aResources))
{
foreach ($this->aResources as $sFileName => $rFile)
{
if (!empty($sFileName) && \is_resource($rFile))
{
@\fclose($rFile);
}
}
}
return true;
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey