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
This commit is contained in:
parent
331d73c3a3
commit
d50e70ba3a
4 changed files with 131 additions and 1 deletions
12
apps/files_sharing/appinfo/update.php
Normal file
12
apps/files_sharing/appinfo/update.php
Normal file
|
@ -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();
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
0.5.4
|
||||
0.6.0
|
||||
|
|
42
apps/files_sharing/lib/migration.php
Normal file
42
apps/files_sharing/lib/migration.php
Normal file
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
76
apps/files_sharing/tests/migrationtest.php
Normal file
76
apps/files_sharing/tests/migrationtest.php
Normal file
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue