mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-24 08:53:37 +01:00
* Calendar: fix not working Mail/Meetingrequest to all participants action
This commit is contained in:
parent
463774b0de
commit
369249a5e8
@ -1355,16 +1355,36 @@ class mail_compose
|
|||||||
/**
|
/**
|
||||||
* Add preset files like vcard as attachments into content array
|
* Add preset files like vcard as attachments into content array
|
||||||
*
|
*
|
||||||
|
* Preset attachments are read from $_REQUEST['preset']['file'] with
|
||||||
|
* optional ['type'] and ['name'].
|
||||||
|
*
|
||||||
|
* Attachments must either be in EGroupware Vfs or configured temp. directory!
|
||||||
|
*
|
||||||
* @param array $_content content
|
* @param array $_content content
|
||||||
* @param string $_insertSigOnTop
|
* @param string $_insertSigOnTop
|
||||||
* @param boolean $_eliminateDoubleAttachments
|
* @param boolean $_eliminateDoubleAttachments
|
||||||
*/
|
*/
|
||||||
function addPresetFiles (&$_content, &$_insertSigOnTop, $_eliminateDoubleAttachments)
|
function addPresetFiles (&$_content, &$_insertSigOnTop, $_eliminateDoubleAttachments)
|
||||||
{
|
{
|
||||||
$names = !is_array($_REQUEST['preset']['name'])? json_decode($_REQUEST['preset']['name'], true):$_REQUEST['preset']['name'];
|
// check if JSON was used
|
||||||
$types = !is_array($_REQUEST['preset']['type'])? json_decode($_REQUEST['preset']['type'], true):$_REQUEST['preset']['type'];
|
if (!is_array($_REQUEST['preset']['file']) &&
|
||||||
//if (!empty($types) && in_array('text/calendar; method=request',$types))
|
($_REQUEST['preset']['file'][0] === '[' && substr($_REQUEST['preset']['file'], -1) === ']' ||
|
||||||
$files = !is_array($_REQUEST['preset']['file'])? json_decode($_REQUEST['preset']['file'], true):$_REQUEST['preset']['file'];
|
$_REQUEST['preset']['file'][0] === '{' && substr($_REQUEST['preset']['file'], -1) === '}') &&
|
||||||
|
($files = json_decode($_REQUEST['preset']['file'], true)))
|
||||||
|
{
|
||||||
|
$types = !empty($_REQUEST['preset']['type']) ?
|
||||||
|
json_decode($_REQUEST['preset']['type'], true) : array();
|
||||||
|
$names = !empty($_REQUEST['preset']['name']) ?
|
||||||
|
json_decode($_REQUEST['preset']['name'], true) : array();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$files = (array)$_REQUEST['preset']['file'];
|
||||||
|
$types = !empty($_REQUEST['preset']['type']) ?
|
||||||
|
(array)$_REQUEST['preset']['type'] : array();
|
||||||
|
$names = !empty($_REQUEST['preset']['name']) ?
|
||||||
|
(array)$_REQUEST['preset']['name'] : array();
|
||||||
|
}
|
||||||
|
|
||||||
foreach($files as $k => $path)
|
foreach($files as $k => $path)
|
||||||
{
|
{
|
||||||
@ -1373,9 +1393,8 @@ class mail_compose
|
|||||||
$_insertSigOnTop = 'below';
|
$_insertSigOnTop = 'below';
|
||||||
}
|
}
|
||||||
//error_log(__METHOD__.__LINE__.$path.'->'.array2string(parse_url($path,PHP_URL_SCHEME == 'vfs')));
|
//error_log(__METHOD__.__LINE__.$path.'->'.array2string(parse_url($path,PHP_URL_SCHEME == 'vfs')));
|
||||||
if (parse_url($path,PHP_URL_SCHEME == 'vfs'))
|
if (($scheme = parse_url($path,PHP_URL_SCHEME)) === 'vfs')
|
||||||
{
|
{
|
||||||
//Vfs::load_wrapper('vfs');
|
|
||||||
$type = Vfs::mime_content_type($path);
|
$type = Vfs::mime_content_type($path);
|
||||||
// special handling for attaching vCard of iCal --> use their link-title as name
|
// special handling for attaching vCard of iCal --> use their link-title as name
|
||||||
if (substr($path,-7) != '/.entry' ||
|
if (substr($path,-7) != '/.entry' ||
|
||||||
@ -1406,6 +1425,11 @@ class mail_compose
|
|||||||
Framework::message(lang('Directories have to be shared.'), 'info');
|
Framework::message(lang('Directories have to be shared.'), 'info');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// do not allow to attache something from server filesystem outside configured temp_dir
|
||||||
|
elseif (strpos(realpath(parse_url($path, PHP_URL_PATH)), realpath($GLOBALS['egw_info']['server']['temp_dir']).'/') !== 0)
|
||||||
|
{
|
||||||
|
error_log(__METHOD__."() Attaching '$path' outside configured temp. directory '{$GLOBALS['egw_info']['server']['temp_dir']}' denied!");
|
||||||
|
}
|
||||||
elseif(is_readable($path))
|
elseif(is_readable($path))
|
||||||
{
|
{
|
||||||
$formData = array(
|
$formData = array(
|
||||||
|
Loading…
Reference in New Issue
Block a user