Merge pull request #13286 from owncloud/sharing_upgrade
update script for new server-to-server sharingremotes/origin/fix-10825
commit
9a487f0445
@ -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(); |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue