diff options
author | C. Montero Luque <cmonteroluque@users.noreply.github.com> | 2016-04-26 16:46:12 -0400 |
---|---|---|
committer | C. Montero Luque <cmonteroluque@users.noreply.github.com> | 2016-04-26 16:46:12 -0400 |
commit | 62a35d3f7a0b904ec10b755dc27ddebef28fb2af (patch) | |
tree | 387abd5de965686a9edd76e53fb8818e5976ac36 | |
parent | ffe561df62d34116b5b745083d793ae27449346f (diff) | |
parent | 98820f2af3f31400097192ed7458c40e607789b4 (diff) | |
download | nextcloud-server-62a35d3f7a0b904ec10b755dc27ddebef28fb2af.tar.gz nextcloud-server-62a35d3f7a0b904ec10b755dc27ddebef28fb2af.zip |
Merge branch 'stable9' into stable9-remove-pcntl-warning
-rw-r--r-- | apps/files/js/file-upload.js | 1 | ||||
-rw-r--r-- | lib/private/files/utils/scanner.php | 16 | ||||
-rw-r--r-- | lib/private/installer.php | 3 | ||||
-rw-r--r-- | lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php | 1 | ||||
-rw-r--r-- | lib/private/setup.php | 10 | ||||
-rw-r--r-- | settings/js/certificates.js | 1 | ||||
-rw-r--r-- | settings/js/personal.js | 1 | ||||
-rw-r--r-- | tests/lib/files/utils/scanner.php | 24 |
8 files changed, 55 insertions, 2 deletions
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index bd80afd072c..fca69064cde 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -274,6 +274,7 @@ OC.Upload = { if ( $('#file_upload_start').exists() ) { var file_upload_param = { dropZone: $('#content'), // restrict dropZone to content div + pasteZone: null, autoUpload: false, sequentialUploads: true, //singleFileUploads is on by default, so the data.files array will always have length 1 diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php index 06526583899..b013cbecabc 100644 --- a/lib/private/files/utils/scanner.php +++ b/lib/private/files/utils/scanner.php @@ -29,6 +29,7 @@ use OC\Files\Filesystem; use OC\ForbiddenException; use OC\Hooks\PublicEmitter; use OC\Lock\DBLockingProvider; +use OCP\Files\Storage\IStorage; use OCP\Files\StorageNotAvailableException; use OCP\ILogger; @@ -153,6 +154,17 @@ class Scanner extends PublicEmitter { $scanner->setUseTransactions(false); $this->attachListener($mount); $isDbLocking = \OC::$server->getLockingProvider() instanceof DBLockingProvider; + + $scanner->listen('\OC\Files\Cache\Scanner', 'removeFromCache', function ($path) use ($storage) { + $this->triggerPropagator($storage, $path); + }); + $scanner->listen('\OC\Files\Cache\Scanner', 'updateCache', function ($path) use ($storage) { + $this->triggerPropagator($storage, $path); + }); + $scanner->listen('\OC\Files\Cache\Scanner', 'addToCache', function ($path) use ($storage) { + $this->triggerPropagator($storage, $path); + }); + if (!$isDbLocking) { $this->db->beginTransaction(); } @@ -168,5 +180,9 @@ class Scanner extends PublicEmitter { } } } + + private function triggerPropagator(IStorage $storage, $internalPath) { + $storage->getPropagator()->propagateChange($internalPath, time()); + } } diff --git a/lib/private/installer.php b/lib/private/installer.php index fca9fce23ef..f1d4d551786 100644 --- a/lib/private/installer.php +++ b/lib/private/installer.php @@ -269,7 +269,8 @@ class OC_Installer{ //download the file if necessary if($data['source']=='http') { $pathInfo = pathinfo($data['href']); - $path = \OC::$server->getTempManager()->getTemporaryFile('.' . $pathInfo['extension']); + $extension = isset($pathInfo['extension']) ? '.' . $pathInfo['extension'] : ''; + $path = \OC::$server->getTempManager()->getTemporaryFile($extension); if(!isset($data['href'])) { throw new \Exception($l->t("No href specified when installing app from http")); } diff --git a/lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php b/lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php index e4b9c0f1998..29deea6268d 100644 --- a/lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php +++ b/lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php @@ -44,6 +44,7 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator { // See https://github.com/owncloud/updater/issues/318#issuecomment-212497846 rtrim($root . '/updater', '/'), rtrim($root . '/_oc_upgrade', '/'), + rtrim($root . '/__apps', '/'), ]; $customDataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', ''); if($customDataDir !== '') { diff --git a/lib/private/setup.php b/lib/private/setup.php index d2f3802ebad..196ae8a8bce 100644 --- a/lib/private/setup.php +++ b/lib/private/setup.php @@ -427,10 +427,18 @@ class Setup { //custom 404 error page $content.= "\nErrorDocument 404 ".$webRoot."/core/templates/404.php"; + // ownCloud may be configured to live at the root folder without a + // trailing slash being specified. In this case manually set the + // rewrite base to `/` + $rewriteBase = $webRoot; + if($webRoot === '') { + $rewriteBase = '/'; + } + // Add rewrite base $content .= "\n<IfModule mod_rewrite.c>"; $content .= "\n RewriteRule . index.php [PT,E=PATH_INFO:$1]"; - $content .= "\n RewriteBase ".$webRoot; + $content .= "\n RewriteBase ".$rewriteBase; $content .= "\n <IfModule mod_env.c>"; $content .= "\n SetEnv front_controller_active true"; $content .= "\n <IfModule mod_dir.c>"; diff --git a/settings/js/certificates.js b/settings/js/certificates.js index 9ce9f9aa8d8..f2a8e6b0afb 100644 --- a/settings/js/certificates.js +++ b/settings/js/certificates.js @@ -16,6 +16,7 @@ $(document).ready(function () { $('#sslCertificate tr > td').tipsy({gravity: 'n', live: true}); $('#rootcert_import').fileupload({ + pasteZone: null, submit: function (e, data) { data.formData = _.extend(data.formData || {}, { requesttoken: OC.requestToken diff --git a/settings/js/personal.js b/settings/js/personal.js index 3b2316d0614..bd13b7fd251 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -244,6 +244,7 @@ $(document).ready(function () { }); var uploadparms = { + pasteZone: null, done: function (e, data) { var response = data; if (typeof data.result === 'string') { diff --git a/tests/lib/files/utils/scanner.php b/tests/lib/files/utils/scanner.php index 7779e2778cb..1220c57e962 100644 --- a/tests/lib/files/utils/scanner.php +++ b/tests/lib/files/utils/scanner.php @@ -163,4 +163,28 @@ class Scanner extends \Test\TestCase { $scanner = new TestScanner('', \OC::$server->getDatabaseConnection(), \OC::$server->getLogger()); $scanner->scan($invalidPath); } + + public function testPropagateEtag() { + $storage = new Temporary(array()); + $mount = new MountPoint($storage, ''); + Filesystem::getMountManager()->addMount($mount); + $cache = $storage->getCache(); + + $storage->mkdir('folder'); + $storage->file_put_contents('folder/bar.txt', 'qwerty'); + $storage->touch('folder/bar.txt', time() - 200); + + $scanner = new TestScanner('', \OC::$server->getDatabaseConnection(), \OC::$server->getLogger()); + $scanner->addMount($mount); + + $scanner->scan(''); + $this->assertTrue($cache->inCache('folder/bar.txt')); + $oldRoot = $cache->get(''); + + $storage->file_put_contents('folder/bar.txt', 'qwerty'); + $scanner->scan(''); + $newRoot = $cache->get(''); + + $this->assertNotEquals($oldRoot->getEtag(), $newRoot->getEtag()); + } } |