summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2015-01-12 17:04:19 +0100
committerBjoern Schiessle <schiessle@owncloud.com>2015-01-13 17:24:00 +0100
commitd50e70ba3a2277becfb9293d0b45e044b6385174 (patch)
tree6da59be29f87240bb6c974a81de7379f539b5b6c /apps
parent331d73c3a37e74f1e322b9bfb239940275422a65 (diff)
downloadnextcloud-server-d50e70ba3a2277becfb9293d0b45e044b6385174.tar.gz
nextcloud-server-d50e70ba3a2277becfb9293d0b45e044b6385174.zip
set accept to 1 (=true) for all server-to-server shares on update, at this point in time all shares are created by the first version of server-to-server sharing and are accepted if they were added to the table
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/appinfo/update.php12
-rw-r--r--apps/files_sharing/appinfo/version2
-rw-r--r--apps/files_sharing/lib/migration.php42
-rw-r--r--apps/files_sharing/tests/migrationtest.php76
4 files changed, 131 insertions, 1 deletions
diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php
new file mode 100644
index 00000000000..1e910eb6ac1
--- /dev/null
+++ b/apps/files_sharing/appinfo/update.php
@@ -0,0 +1,12 @@
+<?php
+
+use OCA\Files_Sharing\Migration;
+
+$installedVersion = \OC::$server->getConfig()->getAppValue('files_sharing', 'installed_version');
+
+// Migration OC7 -> OC8
+if (version_compare($installedVersion, '0.6.0', '<')) {
+ $m = new Migration();
+ $m->addAcceptRow();
+}
+
diff --git a/apps/files_sharing/appinfo/version b/apps/files_sharing/appinfo/version
index 7d8568351b4..a918a2aa18d 100644
--- a/apps/files_sharing/appinfo/version
+++ b/apps/files_sharing/appinfo/version
@@ -1 +1 @@
-0.5.4
+0.6.0
diff --git a/apps/files_sharing/lib/migration.php b/apps/files_sharing/lib/migration.php
new file mode 100644
index 00000000000..1a3bfecffb0
--- /dev/null
+++ b/apps/files_sharing/lib/migration.php
@@ -0,0 +1,42 @@
+<?php
+ /**
+ * ownCloud - migration to new version of the files sharing app
+ *
+ * @copyright (C) 2014 ownCloud, Inc.
+ *
+ * @author Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+ namespace OCA\Files_Sharing;
+
+class Migration {
+
+
+ /**
+ * set accepted to 1 for all external shares. At this point in time we only
+ * have shares from the first version of server-to-server sharing so all should
+ * be accepted
+ */
+ public function addAcceptRow() {
+ $statement = 'UPDATE `*PREFIX*share_external` SET `accepted` = 1';
+ $connection = \OC::$server->getDatabaseConnection();
+ $query = $connection->prepare($statement);
+ $query->execute();
+ }
+
+
+}
diff --git a/apps/files_sharing/tests/migrationtest.php b/apps/files_sharing/tests/migrationtest.php
new file mode 100644
index 00000000000..1f29d9bed04
--- /dev/null
+++ b/apps/files_sharing/tests/migrationtest.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Bjoern Schiessle
+ * @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+use OCA\Files_Sharing\Tests\TestCase;
+use OCA\Files_Sharing\Migration;
+
+class MigrationTest extends TestCase {
+
+ /**
+ * @var \OCP\IDBConnection
+ */
+ private $connection;
+
+ function __construct() {
+ parent::__construct();
+
+ $this->connection = \OC::$server->getDatabaseConnection();
+ }
+
+ function testAddAccept() {
+
+ $query = $this->connection->prepare('
+ INSERT INTO `*PREFIX*share_external`
+ (`remote`, `share_token`, `password`, `name`, `owner`, `user`, `mountpoint`, `mountpoint_hash`, `remote_id`, `accepted`)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ ');
+
+ for ($i = 0; $i < 10; $i++) {
+ $query->execute(array('remote', 'token', 'password', 'name', 'owner', 'user', 'mount point', $i, $i, 0));
+ }
+
+ $query = $this->connection->prepare('SELECT `id` FROM `*PREFIX*share_external`');
+ $query->execute();
+ $dummyEntries = $query->fetchAll();
+
+ $this->assertSame(10, count($dummyEntries));
+
+ $m = new Migration();
+ $m->addAcceptRow();
+
+ // verify result
+ $query = $this->connection->prepare('SELECT `accepted` FROM `*PREFIX*share_external`');
+ $query->execute();
+ $results = $query->fetchAll();
+ $this->assertSame(10, count($results));
+
+ foreach ($results as $r) {
+ $this->assertSame(1, (int) $r['accepted']);
+ }
+
+ // cleanup
+ $cleanup = $this->connection->prepare('DELETE FROM `*PREFIX*share_external`');
+ $cleanup->execute();
+ }
+
+}