aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorC. Montero Luque <cmonteroluque@users.noreply.github.com>2016-04-26 16:46:12 -0400
committerC. Montero Luque <cmonteroluque@users.noreply.github.com>2016-04-26 16:46:12 -0400
commit62a35d3f7a0b904ec10b755dc27ddebef28fb2af (patch)
tree387abd5de965686a9edd76e53fb8818e5976ac36
parentffe561df62d34116b5b745083d793ae27449346f (diff)
parent98820f2af3f31400097192ed7458c40e607789b4 (diff)
downloadnextcloud-server-62a35d3f7a0b904ec10b755dc27ddebef28fb2af.tar.gz
nextcloud-server-62a35d3f7a0b904ec10b755dc27ddebef28fb2af.zip
Merge branch 'stable9' into stable9-remove-pcntl-warning
-rw-r--r--apps/files/js/file-upload.js1
-rw-r--r--lib/private/files/utils/scanner.php16
-rw-r--r--lib/private/installer.php3
-rw-r--r--lib/private/integritycheck/iterator/excludefoldersbypathfilteriterator.php1
-rw-r--r--lib/private/setup.php10
-rw-r--r--settings/js/certificates.js1
-rw-r--r--settings/js/personal.js1
-rw-r--r--tests/lib/files/utils/scanner.php24
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());
+ }
}