Browse Source
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
remotes/origin/fix-10825
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
remotes/origin/fix-10825
4 changed files with 131 additions and 1 deletions
-
12apps/files_sharing/appinfo/update.php
-
2apps/files_sharing/appinfo/version
-
42apps/files_sharing/lib/migration.php
-
76apps/files_sharing/tests/migrationtest.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(); |
|||
} |
|||
|
|||
@ -1 +1 @@ |
|||
0.5.4 |
|||
0.6.0 |
|||
@ -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(); |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -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(); |
|||
} |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue