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

@ -151,7 +151,7 @@ class Contact
public function RegenerateContactStr()
{
$this->IdContactStr = \class_exists('Sabre\DAV\Client') ?
\Sabre\DAV\UUIDUtil::getUUID() : \md5(\microtime(true).'-'.\rand(10000, 99999));
\Sabre\DAV\UUIDUtil::getUUID() : \MailSo\Base\Utils::Md5Rand();
}
/**

View file

@ -107,6 +107,15 @@ class Files extends \RainLoop\Providers\AbstractProvider
return $this->oDriver ? $this->oDriver->GC($iTimeToClearInHours) : false;
}
/**
* @return bool
*/
public function CloseAllOpenedFiles()
{
return $this->oDriver && \method_exists($this->oDriver, 'CloseAllOpenedFiles') ?
$this->oDriver->CloseAllOpenedFiles() : false;
}
/**
* @return bool
*/

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