drop allowZIPdownload and maxZIPSize as options

This commit is contained in:
Morris Jobke 2014-06-02 16:29:03 +02:00
parent 6f4bdbdb94
commit 57ef089aac
11 changed files with 14 additions and 102 deletions

View File

@ -34,17 +34,7 @@ if($_POST && OC_Util::isCallRegistered()) {
$maxUploadFilesize = OCP\Util::humanFileSize($setMaxSize); $maxUploadFilesize = OCP\Util::humanFileSize($setMaxSize);
} }
} }
if(isset($_POST['maxZipInputSize'])) {
$maxZipInputSize=$_POST['maxZipInputSize'];
OCP\Config::setSystemValue('maxZipInputSize', OCP\Util::computerFileSize($maxZipInputSize));
}
if(isset($_POST['submitFilesAdminSettings'])) {
OCP\Config::setSystemValue('allowZipDownload', isset($_POST['allowZipDownload']));
}
} }
$maxZipInputSizeDefault = OCP\Util::computerFileSize('800 MB');
$maxZipInputSize = OCP\Util::humanFileSize(OCP\Config::getSystemValue('maxZipInputSize', $maxZipInputSizeDefault));
$allowZipDownload = intval(OCP\Config::getSystemValue('allowZipDownload', true));
OCP\App::setActiveNavigationEntry( "files_administration" ); OCP\App::setActiveNavigationEntry( "files_administration" );
@ -56,6 +46,4 @@ $tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
// max possible makes only sense on a 32 bit system // max possible makes only sense on a 32 bit system
$tmpl->assign( 'displayMaxPossibleUploadSize', PHP_INT_SIZE===4); $tmpl->assign( 'displayMaxPossibleUploadSize', PHP_INT_SIZE===4);
$tmpl->assign( 'maxPossibleUploadSize', OCP\Util::humanFileSize(PHP_INT_MAX)); $tmpl->assign( 'maxPossibleUploadSize', OCP\Util::humanFileSize(PHP_INT_MAX));
$tmpl->assign( 'allowZipDownload', $allowZipDownload);
$tmpl->assign( 'maxZipInputSize', $maxZipInputSize);
return $tmpl->fetchPage(); return $tmpl->fetchPage();

View File

@ -0,0 +1,8 @@
<?php
// this drops the keys below, because they aren't needed anymore
// core related
if (version_compare(\OC_Config::getValue('version', '0.0.0'), '7.0.0', '<')) {
\OC_Config::deleteKey('allowZipDownload');
\OC_Config::deleteKey('maxZipInputSize');
}

View File

@ -123,6 +123,5 @@ $tmpl->assign("allowShareWithLink", $config->getAppValue('core', 'shareapi_allow
$tmpl->assign("encryptionInitStatus", $encryptionInitStatus); $tmpl->assign("encryptionInitStatus", $encryptionInitStatus);
$tmpl->assign('appNavigation', $nav); $tmpl->assign('appNavigation', $nav);
$tmpl->assign('appContents', $contentItems); $tmpl->assign('appContents', $contentItems);
$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->printPage(); $tmpl->printPage();

View File

@ -25,12 +25,4 @@ $(document).ready(function() {
// To get rid of onClick() // To get rid of onClick()
switchPublicFolder(); switchPublicFolder();
}); });
$('#allowZipDownload').bind('change', function() {
if($('#allowZipDownload').attr('checked')) {
$('#maxZipInputSize').removeAttr('disabled');
} else {
$('#maxZipInputSize').attr('disabled', 'disabled');
}
});
}); });

View File

@ -275,14 +275,8 @@
}); });
this.setDefault('dir', 'Open'); this.setDefault('dir', 'Open');
var downloadScope;
if ($('#allowZipDownload').val() == 1) {
downloadScope = 'all';
} else {
downloadScope = 'file';
}
this.register(downloadScope, 'Download', OC.PERMISSION_READ, function () { this.register('all', 'Download', OC.PERMISSION_READ, function () {
return OC.imagePath('core', 'actions/download'); return OC.imagePath('core', 'actions/download');
}, function (filename, context) { }, function (filename, context) {
var dir = context.dir || context.fileList.getCurrentDirectory(); var dir = context.dir || context.fileList.getCurrentDirectory();

View File

@ -33,6 +33,5 @@ $uploadLimit=OCP\Util::uploadLimit();
$tmpl = new OCP\Template('files', 'list', ''); $tmpl = new OCP\Template('files', 'list', '');
$tmpl->assign('uploadLimit', $uploadLimit); // PHP upload limit $tmpl->assign('uploadLimit', $uploadLimit); // PHP upload limit
$tmpl->assign('publicUploadEnabled', $publicUploadEnabled); $tmpl->assign('publicUploadEnabled', $publicUploadEnabled);
$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->printPage(); $tmpl->printPage();

View File

@ -10,16 +10,6 @@
<?php endif;?> <?php endif;?>
<br/> <br/>
<?php endif;?> <?php endif;?>
<input type="checkbox" name="allowZipDownload" id="allowZipDownload" value="1"
title="<?php p($l->t( 'Needed for multi-file and folder downloads.' )); ?>"
<?php if ($_['allowZipDownload']): ?> checked="checked"<?php endif; ?> />
<label for="allowZipDownload"><?php p($l->t( 'Enable ZIP-download' )); ?></label><br/>
<input type="text" name="maxZipInputSize" id="maxZipInputSize" style="width:180px;" value='<?php p($_['maxZipInputSize']) ?>'
title="<?php p($l->t( '0 is unlimited' )); ?>"
<?php if (!$_['allowZipDownload']): ?> disabled="disabled"<?php endif; ?> /><br />
<em><?php p($l->t( 'Maximum input size for ZIP files' )); ?> </em><br />
<input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" /> <input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" />
<input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings" <input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings"
value="<?php p($l->t( 'Save' )); ?>"/> value="<?php p($l->t( 'Save' )); ?>"/>

View File

@ -61,13 +61,11 @@
<label for="select_all_files"></label> <label for="select_all_files"></label>
<a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a> <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
<span id="selectedActionsList" class="selectedActions"> <span id="selectedActionsList" class="selectedActions">
<?php if($_['allowZipDownload']) : ?> <a href="" class="download">
<a href="" class="download"> <img class="svg" alt="Download"
<img class="svg" alt="Download" src="<?php print_unescaped(OCP\image_path("core", "actions/download.svg")); ?>" />
src="<?php print_unescaped(OCP\image_path("core", "actions/download.svg")); ?>" /> <?php p($l->t('Download'))?>
<?php p($l->t('Download'))?> </a>
</a>
<?php endif; ?>
</span> </span>
</div> </div>
</th> </th>
@ -89,7 +87,6 @@
<tfoot> <tfoot>
</tfoot> </tfoot>
</table> </table>
<input type="hidden" name="allowZipDownload" id="allowZipDownload" value="<?php p($_['allowZipDownload']); ?>" />
<input type="hidden" name="dir" id="dir" value="" /> <input type="hidden" name="dir" id="dir" value="" />
<div id="editor"></div><!-- FIXME Do not use this div in your app! It is deprecated and will be removed in the future! --> <div id="editor"></div><!-- FIXME Do not use this div in your app! It is deprecated and will be removed in the future! -->
<div id="uploadsize-message" title="<?php p($l->t('Upload too large'))?>"> <div id="uploadsize-message" title="<?php p($l->t('Upload too large'))?>">

View File

@ -160,17 +160,12 @@ if (isset($path)) {
$folder->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); $folder->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
$folder->assign('freeSpace', $freeSpace); $folder->assign('freeSpace', $freeSpace);
$folder->assign('uploadLimit', $uploadLimit); // PHP upload limit $folder->assign('uploadLimit', $uploadLimit); // PHP upload limit
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$folder->assign('usedSpacePercent', 0); $folder->assign('usedSpacePercent', 0);
$folder->assign('trash', false); $folder->assign('trash', false);
$tmpl->assign('folder', $folder->fetchPage()); $tmpl->assign('folder', $folder->fetchPage());
$allowZip = OCP\Config::getSystemValue('allowZipDownload', true);
$tmpl->assign('allowZipDownload', intval($allowZip));
$tmpl->assign('showDownloadButton', intval($allowZip));
$tmpl->assign('downloadURL', $tmpl->assign('downloadURL',
OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath)); OCP\Util::linkToPublic('files') . $urlLinkIdentifiers . '&download&path=' . urlencode($getPath));
} else { } else {
$tmpl->assign('showDownloadButton', true);
$tmpl->assign('dir', $dir); $tmpl->assign('dir', $dir);
// Show file preview if viewer is available // Show file preview if viewer is available

View File

@ -15,12 +15,10 @@
src="<?php print_unescaped(image_path('', 'logo-wide.svg')); ?>" alt="<?php p($theme->getName()); ?>" /></a> src="<?php print_unescaped(image_path('', 'logo-wide.svg')); ?>" alt="<?php p($theme->getName()); ?>" /></a>
<div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div>
<div class="header-right"> <div class="header-right">
<?php if ($_['showDownloadButton']): ?>
<a href="<?php p($_['downloadURL']); ?>" id="download" class="button"> <a href="<?php p($_['downloadURL']); ?>" id="download" class="button">
<img class="svg" alt="" src="<?php print_unescaped(OCP\image_path("core", "actions/download.svg")); ?>"/> <img class="svg" alt="" src="<?php print_unescaped(OCP\image_path("core", "actions/download.svg")); ?>"/>
<?php p($l->t('Download'))?> <?php p($l->t('Download'))?>
</a> </a>
<?php endif ?>
</div> </div>
</div></header> </div></header>
<div id="content"> <div id="content">

View File

@ -108,7 +108,6 @@ class OC_Files {
$xsendfile = false; $xsendfile = false;
} }
} else { } else {
self::validateZipDownload($dir, $files);
$zip = new ZipStreamer(false); $zip = new ZipStreamer(false);
} }
OC_Util::obEnd(); OC_Util::obEnd();
@ -221,53 +220,6 @@ class OC_Files {
} }
} }
/**
* checks if the selected files are within the size constraint. If not, outputs an error page.
*
* @param string $dir
* @param array|string $files
*/
static function validateZipDownload($dir, $files) {
if (!OC_Config::getValue('allowZipDownload', true)) {
$l = OC_L10N::get('lib');
header("HTTP/1.0 409 Conflict");
OC_Template::printErrorPage(
$l->t('ZIP download is turned off.'),
$l->t('Files need to be downloaded one by one.')
. '<br/><a href="'.OCP\Util::linkTo('files', 'index.php', array('dir' => $dir)).'">' . $l->t('Back to Files') . '</a>'
);
exit;
}
$zipLimit = OC_Config::getValue('maxZipInputSize', OC_Helper::computerFileSize('800 MB'));
if ($zipLimit > 0) {
$totalsize = 0;
if(!is_array($files)) {
$files = array($files);
}
foreach ($files as $file) {
$path = $dir . '/' . $file;
if(\OC\Files\Filesystem::is_dir($path)) {
foreach (\OC\Files\Filesystem::getDirectoryContent($path) as $i) {
$totalsize += $i['size'];
}
} else {
$totalsize += \OC\Files\Filesystem::filesize($path);
}
}
if ($totalsize > $zipLimit) {
$l = OC_L10N::get('lib');
header("HTTP/1.0 409 Conflict");
OC_Template::printErrorPage(
$l->t('Selected files too large to generate zip file.'),
$l->t('Please download the files separately in smaller chunks or kindly ask your administrator.')
. '<br/><a href="'.OCP\Util::linkTo('files', 'index.php', array('dir' => $dir)).'">' . $l->t('Back to Files') . '</a>'
);
exit;
}
}
}
/** /**
* set the maximum upload size limit for apache hosts using .htaccess * set the maximum upload size limit for apache hosts using .htaccess
* *