This commit is contained in:
the-djmaze 2024-03-24 15:03:50 +01:00
parent b45459d645
commit 3513669412

View file

@ -17,6 +17,15 @@ trait Attachments
$sFilename = \MailSo\Base\Utils::SecureFileName($this->GetActionParam('filename', '')); $sFilename = \MailSo\Base\Utils::SecureFileName($this->GetActionParam('filename', ''));
$aHashes = $this->GetActionParam('hashes', null); $aHashes = $this->GetActionParam('hashes', null);
$oFilesProvider = $this->FilesProvider(); $oFilesProvider = $this->FilesProvider();
if (empty($sAction)) {
$this->logWrite('AttachmentsAction target not set');
}
if (!$this->GetCapa(Capa::ATTACHMENTS_ACTIONS)) {
$this->logWrite('AttachmentsAction disabled');
}
if (!$oFilesProvider || !$oFilesProvider->IsActive()) {
$this->logWrite('AttachmentsAction FilesProvider inactive');
}
if (empty($sAction) || !$this->GetCapa(Capa::ATTACHMENTS_ACTIONS) || !$oFilesProvider || !$oFilesProvider->IsActive()) { if (empty($sAction) || !$this->GetCapa(Capa::ATTACHMENTS_ACTIONS) || !$oFilesProvider || !$oFilesProvider->IsActive()) {
return $this->FalseResponse(); return $this->FalseResponse();
} }
@ -31,6 +40,7 @@ trait Attachments
foreach ($aHashes as $sZipHash) { foreach ($aHashes as $sZipHash) {
$aResult = $this->getMimeFileByHash($oAccount, $sZipHash); $aResult = $this->getMimeFileByHash($oAccount, $sZipHash);
if (empty($aResult['data']) && empty($aResult['fileHash'])) { if (empty($aResult['data']) && empty($aResult['fileHash'])) {
$this->logWrite('AttachmentsAction data/fileHash not set: ' . \print_r($aResult,1));
$bError = true; $bError = true;
break; break;
} }
@ -151,11 +161,10 @@ trait Attachments
$aValues['fileHash'] = null; $aValues['fileHash'] = null;
if (isset($aValues['data'])) { if (isset($aValues['data'])) {
$aValues['data'] = \MailSo\Base\Utils::UrlSafeBase64Decode($aValues['data']); $aValues['data'] = \MailSo\Base\Utils::UrlSafeBase64Decode($aValues['data']);
} else { } else if (!empty($aValues['folder']) && !empty($aValues['uid'])) {
$sFolder = isset($aValues['folder']) ? (string) $aValues['folder'] : ''; $sFolder = (string) $aValues['folder'];
$iUid = isset($aValues['uid']) ? (int) $aValues['uid'] : 0; $iUid = (int) $aValues['uid'];
$sMimeIndex = isset($aValues['mimeIndex']) ? (string) $aValues['mimeIndex'] : ''; $sMimeIndex = (string) $aValues['mimeIndex'];
if ($sFolder && $iUid && $sMimeIndex) {
$oFileProvider = $this->FilesProvider(); $oFileProvider = $this->FilesProvider();
$mResult = $this->MailClient()->MessageMimeStream( $mResult = $this->MailClient()->MessageMimeStream(
function ($rResource, $sContentType, $sFileName, $sMimeIndex = '') function ($rResource, $sContentType, $sFileName, $sMimeIndex = '')
@ -179,7 +188,6 @@ trait Attachments
$sMimeIndex $sMimeIndex
); );
} }
}
return $aValues; return $aValues;
} }