]> source.dussan.org Git - nextcloud-server.git/commitdiff
Adjust default
authorJulius Härtl <jus@bitgrid.net>
Thu, 3 Dec 2020 16:39:56 +0000 (17:39 +0100)
committerJulius Härtl <jus@bitgrid.net>
Mon, 14 Dec 2020 10:10:59 +0000 (11:10 +0100)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
apps/federatedfilesharing/lib/FederatedShareProvider.php
apps/federatedfilesharing/lib/Migration/Version1010Date20200630191755.php
apps/federatedfilesharing/lib/Migration/Version1011Date20201120125158.php
apps/federatedfilesharing/lib/Notifications.php
apps/files_sharing/lib/Migration/Version11300Date20201120141438.php
apps/files_sharing/tests/External/ManagerTest.php

index 4d60744fe347cee9d3dfdb651a7bcaaf161dc2c6..13348a1d7bd816eef2a90484030622ce40194879 100644 (file)
@@ -493,7 +493,7 @@ class FederatedShareProvider implements IShareProvider {
                        throw new ShareNotFound();
                }
 
-               return (int)$data['remote_id'];
+               return (string)$data['remote_id'];
        }
 
        /**
index 7376c8d9e73195b1fa76e6b1f96cc2ad4de05f5f..afd41c20f647461bcbcd78276e3fb98b343b15d5 100644 (file)
@@ -48,8 +48,9 @@ class Version1010Date20200630191755 extends SimpleMigrationStep {
                                'notnull' => true,
                        ]);
                        $table->addColumn('remote_id', Types::STRING, [
-                               'notnull' => true,
+                               'notnull' => false,
                                'length' => 255,
+                               'default' => '',
                        ]);
                        $table->setPrimaryKey(['share_id'], 'federated_res_pk');
 //                     $table->addUniqueIndex(['share_id'], 'share_id_index');
index 1f32f2cced2d7b1cdd9cc46aa58ba172ff5ae63c..e89838c06f4bf3d22d7ba5149028aa82788bd421 100644 (file)
@@ -29,10 +29,19 @@ use Closure;
 use Doctrine\DBAL\Types\Type;
 use Doctrine\DBAL\Types\Types;
 use OCP\DB\ISchemaWrapper;
+use OCP\IDBConnection;
 use OCP\Migration\IOutput;
 use OCP\Migration\SimpleMigrationStep;
 
 class Version1011Date20201120125158 extends SimpleMigrationStep {
+
+       /** @var IDBConnection */
+       private $connection;
+
+       public function __construct(IDBConnection $connection) {
+               $this->connection = $connection;
+       }
+
        public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
                /** @var ISchemaWrapper $schema */
                $schema = $schemaClosure();
@@ -41,6 +50,7 @@ class Version1011Date20201120125158 extends SimpleMigrationStep {
                        $table = $schema->getTable('federated_reshares');
                        $remoteIdColumn = $table->getColumn('remote_id');
                        if ($remoteIdColumn && $remoteIdColumn->getType()->getName() !== Types::STRING) {
+                               $remoteIdColumn->setNotnull(false);
                                $remoteIdColumn->setType(Type::getType(Types::STRING));
                                $remoteIdColumn->setOptions(['length' => 255]);
                                $remoteIdColumn->setDefault('');
@@ -50,4 +60,12 @@ class Version1011Date20201120125158 extends SimpleMigrationStep {
 
                return null;
        }
+
+       public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
+               $qb = $this->connection->getQueryBuilder();
+               $qb->update('federated_reshares')
+                       ->set('remote_id', $qb->createNamedParameter(''))
+                       ->where($qb->expr()->eq('remote_id', $qb->createNamedParameter('-1')));
+               $qb->execute();
+       }
 }
index 5df3c4af89a28dde6749ca18f9809271e9d38da4..b0add6befb42b6c4530363432d49b807468ac582 100644 (file)
@@ -133,12 +133,12 @@ class Notifications {
         *
         * @param string $token
         * @param string $id remote Id
-        * @param int $shareId internal share Id
+        * @param string $shareId internal share Id
         * @param string $remote remote address of the owner
         * @param string $shareWith
         * @param int $permission
         * @param string $filename
-        * @return array
+        * @return array|false
         * @throws \OC\HintException
         * @throws \OC\ServerNotAvailableException
         */
@@ -182,7 +182,7 @@ class Notifications {
         * send server-to-server unshare to remote server
         *
         * @param string $remote url
-        * @param int $id share id
+        * @param string $id share id
         * @param string $token
         * @return bool
         */
@@ -194,7 +194,7 @@ class Notifications {
         * send server-to-server unshare to remote server
         *
         * @param string $remote url
-        * @param int $id share id
+        * @param string $id share id
         * @param string $token
         * @return bool
         */
index 6183324982828465e7eefc067aacb7338099579a..dfc5bc68a07d72bd9766bd3723a90942d034757c 100644 (file)
@@ -2,16 +2,48 @@
 
 declare(strict_types=1);
 
+/*
+ * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
 namespace OCA\Files_Sharing\Migration;
 
 use Closure;
 use Doctrine\DBAL\Types\Type;
 use Doctrine\DBAL\Types\Types;
 use OCP\DB\ISchemaWrapper;
+use OCP\IDBConnection;
 use OCP\Migration\IOutput;
 use OCP\Migration\SimpleMigrationStep;
 
 class Version11300Date20201120141438 extends SimpleMigrationStep {
+
+       /** @var IDBConnection */
+       private $connection;
+
+       public function __construct(IDBConnection $connection) {
+               $this->connection = $connection;
+       }
+
        public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
                /** @var ISchemaWrapper $schema */
                $schema = $schemaClosure();
@@ -35,9 +67,9 @@ class Version11300Date20201120141438 extends SimpleMigrationStep {
                                'length' => 512,
                        ]);
                        $table->addColumn('remote_id', Types::STRING, [
-                               'notnull' => true,
+                               'notnull' => false,
                                'length' => 255,
-                               'default' => -1,
+                               'default' => '',
                        ]);
                        $table->addColumn('share_token', Types::STRING, [
                                'notnull' => true,
@@ -79,11 +111,21 @@ class Version11300Date20201120141438 extends SimpleMigrationStep {
                        $table = $schema->getTable('share_external');
                        $remoteIdColumn = $table->getColumn('remote_id');
                        if ($remoteIdColumn && $remoteIdColumn->getType()->getName() !== Types::STRING) {
+                               $remoteIdColumn->setNotnull(false);
                                $remoteIdColumn->setType(Type::getType(Types::STRING));
                                $remoteIdColumn->setOptions(['length' => 255]);
+                               $remoteIdColumn->setDefault('');
                        }
                }
 
                return $schema;
        }
+
+       public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
+               $qb = $this->connection->getQueryBuilder();
+               $qb->update('share_external')
+                       ->set('remote_id', $qb->createNamedParameter(''))
+                       ->where($qb->expr()->eq('remote_id', $qb->createNamedParameter('-1')));
+               $qb->execute();
+       }
 }
index 22005c8fc6bc8924f0c04092bdc407dc8df614fa..2734e3cce647fce8ab50def92fa0f0c992124138 100644 (file)
@@ -149,6 +149,7 @@ class ManagerTest extends TestCase {
                        'shareType' => IShare::TYPE_USER,
                        'accepted' => false,
                        'user' => $this->uid,
+                       'remote_id' => '2342'
                ];
                $shareData2 = $shareData1;
                $shareData2['token'] = 'token2';
@@ -158,8 +159,8 @@ class ManagerTest extends TestCase {
                $this->userManager->expects($this->any())->method('get')->willReturn($this->user);
                $this->groupManager->expects($this->any())->method(('getUserGroups'))->willReturn([]);
 
-               $this->manager->expects($this->at(0))->method('tryOCMEndPoint')->with('http://localhost', 'token1', -1, 'accept')->willReturn(false);
-               $this->manager->expects($this->at(1))->method('tryOCMEndPoint')->with('http://localhost', 'token3', -1, 'decline')->willReturn(false);
+               $this->manager->expects($this->at(0))->method('tryOCMEndPoint')->with('http://localhost', 'token1', '2342', 'accept')->willReturn(false);
+               $this->manager->expects($this->at(1))->method('tryOCMEndPoint')->with('http://localhost', 'token3', '2342', 'decline')->willReturn(false);
 
                // Add a share for "user"
                $this->assertSame(null, call_user_func_array([$this->manager, 'addShare'], $shareData1));