aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php
diff options
context:
space:
mode:
authorhubzilla <git@macgirvin.com>2016-06-30 09:34:22 +1000
committerGitHub <noreply@github.com>2016-06-30 09:34:22 +1000
commit05aba0b4dd9ce5798e2c8bb57900b03ae96a233e (patch)
tree0910b2128981452a1c61ba6b6b4683dc51568027 /vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php
parentf098600c41553bc47267a61fb47a4957046e696e (diff)
parent3102440d407fe195878b9535aae4fd0da750f437 (diff)
downloadvolse-hubzilla-05aba0b4dd9ce5798e2c8bb57900b03ae96a233e.tar.gz
volse-hubzilla-05aba0b4dd9ce5798e2c8bb57900b03ae96a233e.tar.bz2
volse-hubzilla-05aba0b4dd9ce5798e2c8bb57900b03ae96a233e.zip
Merge pull request #444 from git-marijus/dev
Merge branch sabre32 into dev
Diffstat (limited to 'vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php')
-rw-r--r--vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php28
1 files changed, 24 insertions, 4 deletions
diff --git a/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php b/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php
index de8b3bb84..d015589ad 100644
--- a/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php
+++ b/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php
@@ -70,14 +70,34 @@ class VCFExportPlugin extends DAV\ServerPlugin {
$aclPlugin->checkPrivileges($path, '{DAV:}read');
}
- $response->setHeader('Content-Type', 'text/directory');
- $response->setStatus(200);
-
$nodes = $this->server->getPropertiesForPath($path, [
'{' . Plugin::NS_CARDDAV . '}address-data',
], 1);
- $response->setBody($this->generateVCF($nodes));
+ $format = 'text/directory';
+
+ $output = null;
+ $filenameExtension = null;
+
+ switch ($format) {
+ case 'text/directory':
+ $output = $this->generateVCF($nodes);
+ $filenameExtension = '.vcf';
+ break;
+ }
+
+ $filename = preg_replace(
+ '/[^a-zA-Z0-9-_ ]/um',
+ '',
+ $node->getName()
+ );
+ $filename .= '-' . date('Y-m-d') . $filenameExtension;
+
+ $response->setHeader('Content-Disposition', 'attachment; filename="' . $filename . '"');
+ $response->setHeader('Content-Type', $format);
+
+ $response->setStatus(200);
+ $response->setBody($output);
// Returning false to break the event chain
return false;