Privacy/GDPR friendly version (removed: Social, Gravatar, Facebook, Google, Twitter, DropBox, OwnCloud)

Also removed: POP3, OAuth2 and update feature
Added: admin password_hash/password_verify
Requires: PHP 7.3+
Replaced: CRLF with LF
Replaced: pclZip with ZipArchive
This commit is contained in:
djmaze 2020-03-09 17:04:17 +01:00
parent 15ceddc202
commit 2cada68f41
293 changed files with 23728 additions and 85420 deletions

View file

@ -14,36 +14,18 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
*/
private $sDataPath;
/**
* @param string $sStoragePath
*
* @return void
*/
public function __construct($sStoragePath)
public function __construct(string $sStoragePath)
{
$this->aResources = array();
$this->sDataPath = \rtrim(\trim($sStoragePath), '\\/');
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return string
*/
public function GenerateLocalFullFileName($oAccount, $sKey)
public function GenerateLocalFullFileName(\RainLoop\Model\Account $oAccount, string $sKey) : string
{
return $this->generateFullFileName($oAccount, $sKey, true);
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param resource $rSource
*
* @return bool
*/
public function PutFile($oAccount, $sKey, $rSource)
public function PutFile(\RainLoop\Model\Account $oAccount, string $sKey, resource $rSource) : bool
{
$bResult = false;
if ($rSource)
@ -58,27 +40,16 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
return $bResult;
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param string $sSource
*
* @return bool
*/
public function MoveUploadedFile($oAccount, $sKey, $sSource)
public function MoveUploadedFile(\RainLoop\Model\Account $oAccount, string $sKey, string $sSource) : bool
{
return @\move_uploaded_file($sSource,
$this->generateFullFileName($oAccount, $sKey, true));
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param string $sOpenMode = 'rb'
*
* @return resource|bool
*/
public function GetFile($oAccount, $sKey, $sOpenMode = 'rb')
public function GetFile(\RainLoop\Model\Account $oAccount, string $sKey, string $sOpenMode = 'rb')
{
$mResult = false;
$bCreate = !!\preg_match('/[wac]/', $sOpenMode);
@ -98,12 +69,9 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return string|bool
*/
public function GetFileName($oAccount, $sKey)
public function GetFileName(\RainLoop\Model\Account $oAccount, string $sKey)
{
$mResult = false;
$sFileName = $this->generateFullFileName($oAccount, $sKey);
@ -115,13 +83,7 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
return $mResult;
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return bool
*/
public function Clear($oAccount, $sKey)
public function Clear(\RainLoop\Model\Account $oAccount, string $sKey) : bool
{
$mResult = true;
$sFileName = $this->generateFullFileName($oAccount, $sKey);
@ -139,12 +101,9 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return int|bool
*/
public function FileSize($oAccount, $sKey)
public function FileSize(\RainLoop\Model\Account $oAccount, string $sKey)
{
$mResult = false;
$sFileName = $this->generateFullFileName($oAccount, $sKey);
@ -156,23 +115,12 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
return $mResult;
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return bool
*/
public function FileExists($oAccount, $sKey)
public function FileExists(\RainLoop\Model\Account $oAccount, string $sKey) : bool
{
return @\file_exists($this->generateFullFileName($oAccount, $sKey));
}
/**
* @param int $iTimeToClearInHours = 24
*
* @return bool
*/
public function GC($iTimeToClearInHours = 24)
public function GC(int $iTimeToClearInHours = 24) : bool
{
if (0 < $iTimeToClearInHours)
{
@ -183,10 +131,7 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
return false;
}
/**
* @return bool
*/
public function CloseAllOpenedFiles()
public function CloseAllOpenedFiles() : bool
{
if (\is_array($this->aResources) && 0 < \count($this->aResources))
{
@ -202,14 +147,7 @@ class FileStorage implements \RainLoop\Providers\Files\IFiles
return true;
}
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param bool $bMkDir = false
*
* @return string
*/
private function generateFullFileName($oAccount, $sKey, $bMkDir = false)
private function generateFullFileName(\RainLoop\Model\Account $oAccount, string $sKey, bool $bMkDir = false) : string
{
$sEmail = $sSubEmail = '';
if ($oAccount instanceof \RainLoop\Model\Account)

View file

@ -4,77 +4,30 @@ namespace RainLoop\Providers\Files;
interface IFiles
{
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return string
*/
public function GenerateLocalFullFileName($oAccount, $sKey);
public function GenerateLocalFullFileName(\RainLoop\Model\Account $oAccount, string $sKey) : string;
public function PutFile(\RainLoop\Model\Account $oAccount, string $sKey, resource $rSource) : bool;
public function MoveUploadedFile(\RainLoop\Model\Account $oAccount, string $sKey, string $sSource) : bool;
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param resource $rSource
*
* @return bool
*/
public function PutFile($oAccount, $sKey, $rSource);
/**
* @param CAccount $oAccount
* @param string $sKey
* @param string $sSource
*
* @return bool
*/
public function MoveUploadedFile($oAccount, $sKey, $sSource);
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
* @param string $sOpenMode = 'rb'
*
* @return resource|bool
*/
public function GetFile($oAccount, $sKey, $sOpenMode = 'rb');
public function GetFile(\RainLoop\Model\Account $oAccount, string $sKey, string $sOpenMode = 'rb');
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return string|bool
*/
public function GetFileName($oAccount, $sKey);
public function GetFileName(\RainLoop\Model\Account $oAccount, string $sKey);
public function Clear(\RainLoop\Model\Account $oAccount, string $sKey) : bool;
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return bool
*/
public function Clear($oAccount, $sKey);
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return int | bool
*/
public function FileSize($oAccount, $sKey);
public function FileSize(\RainLoop\Model\Account $oAccount, string $sKey);
/**
* @param \RainLoop\Model\Account $oAccount
* @param string $sKey
*
* @return bool
*/
public function FileExists($oAccount, $sKey);
public function FileExists(\RainLoop\Model\Account $oAccount, string $sKey) : bool;
/**
* @param int $iTimeToClearInHours = 24
* @return bool
*/
public function GC($iTimeToClearInHours = 24);
public function GC(int $iTimeToClearInHours = 24) : bool;
}