Skip to content
Snippets Groups Projects
Commit ececa907 authored by Vincent Petry's avatar Vincent Petry
Browse files

Set download cookie on public download

parent cd818e74
No related branches found
No related tags found
No related merge requests found
...@@ -233,9 +233,10 @@ class ShareController extends Controller { ...@@ -233,9 +233,10 @@ class ShareController extends Controller {
* @param string $token * @param string $token
* @param string $files * @param string $files
* @param string $path * @param string $path
* @param string $downloadStartSecret
* @return void|RedirectResponse * @return void|RedirectResponse
*/ */
public function downloadShare($token, $files = null, $path = '') { public function downloadShare($token, $files = null, $path = '', $downloadStartSecret = '') {
\OC_User::setIncognitoMode(true); \OC_User::setIncognitoMode(true);
$linkItem = OCP\Share::getShareByToken($token, false); $linkItem = OCP\Share::getShareByToken($token, false);
...@@ -288,6 +289,19 @@ class ShareController extends Controller { ...@@ -288,6 +289,19 @@ class ShareController extends Controller {
} }
} }
/**
* this sets a cookie to be able to recognize the start of the download
* the content must not be longer than 32 characters and must only contain
* alphanumeric characters
*/
if (!empty($downloadStartSecret)
&& !isset($downloadStartSecret[32])
&& preg_match('!^[a-zA-Z0-9]+$!', $downloadStartSecret) === 1) {
// FIXME: set on the response once we use an actual app framework response
setcookie('ocDownloadStarted', $downloadStartSecret, time() + 20, '/');
}
// download selected files // download selected files
if (!is_null($files)) { if (!is_null($files)) {
// FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well // FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment