]> source.dussan.org Git - nextcloud-server.git/commitdiff
Move remoteId of remote reshares to string
authorJulius Härtl <jus@bitgrid.net>
Fri, 20 Nov 2020 12:29:36 +0000 (13:29 +0100)
committerJulius Härtl <jus@bitgrid.net>
Mon, 14 Dec 2020 10:10:58 +0000 (11:10 +0100)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
apps/federatedfilesharing/composer/composer/autoload_classmap.php
apps/federatedfilesharing/composer/composer/autoload_static.php
apps/federatedfilesharing/lib/FederatedShareProvider.php
apps/federatedfilesharing/lib/Migration/Version1010Date20200630191755.php
apps/federatedfilesharing/lib/Migration/Version1011Date20201120125158.php [new file with mode: 0644]
apps/federatedfilesharing/lib/Notifications.php
apps/files_sharing/lib/External/Manager.php

index 8d1364c0d6a944c23a60840c409e1035b240a63a..0b07303e71d5f5a5f9303dc983598fc864677f4c 100644 (file)
@@ -15,6 +15,7 @@ return array(
     'OCA\\FederatedFileSharing\\FederatedShareProvider' => $baseDir . '/../lib/FederatedShareProvider.php',
     'OCA\\FederatedFileSharing\\Listeners\\LoadAdditionalScriptsListener' => $baseDir . '/../lib/Listeners/LoadAdditionalScriptsListener.php',
     'OCA\\FederatedFileSharing\\Migration\\Version1010Date20200630191755' => $baseDir . '/../lib/Migration/Version1010Date20200630191755.php',
+    'OCA\\FederatedFileSharing\\Migration\\Version1011Date20201120125158' => $baseDir . '/../lib/Migration/Version1011Date20201120125158.php',
     'OCA\\FederatedFileSharing\\Notifications' => $baseDir . '/../lib/Notifications.php',
     'OCA\\FederatedFileSharing\\Notifier' => $baseDir . '/../lib/Notifier.php',
     'OCA\\FederatedFileSharing\\OCM\\CloudFederationProviderFiles' => $baseDir . '/../lib/OCM/CloudFederationProviderFiles.php',
index 6e352d6f325f2f86f23b5571492fb2b64c072e1d..97ff383b901897eed96647a211bb5e61e689916b 100644 (file)
@@ -30,6 +30,7 @@ class ComposerStaticInitFederatedFileSharing
         'OCA\\FederatedFileSharing\\FederatedShareProvider' => __DIR__ . '/..' . '/../lib/FederatedShareProvider.php',
         'OCA\\FederatedFileSharing\\Listeners\\LoadAdditionalScriptsListener' => __DIR__ . '/..' . '/../lib/Listeners/LoadAdditionalScriptsListener.php',
         'OCA\\FederatedFileSharing\\Migration\\Version1010Date20200630191755' => __DIR__ . '/..' . '/../lib/Migration/Version1010Date20200630191755.php',
+        'OCA\\FederatedFileSharing\\Migration\\Version1011Date20201120125158' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20201120125158.php',
         'OCA\\FederatedFileSharing\\Notifications' => __DIR__ . '/..' . '/../lib/Notifications.php',
         'OCA\\FederatedFileSharing\\Notifier' => __DIR__ . '/..' . '/../lib/Notifier.php',
         'OCA\\FederatedFileSharing\\OCM\\CloudFederationProviderFiles' => __DIR__ . '/..' . '/../lib/OCM/CloudFederationProviderFiles.php',
index 2e2f0d8adbe941ffc6b651e023443d6b4f6d9bef..4d60744fe347cee9d3dfdb651a7bcaaf161dc2c6 100644 (file)
@@ -462,7 +462,7 @@ class FederatedShareProvider implements IShareProvider {
         * @param $shareId
         * @param $remoteId
         */
-       public function storeRemoteId($shareId, $remoteId) {
+       public function storeRemoteId(int $shareId, string $remoteId): void {
                $query = $this->dbConnection->getQueryBuilder();
                $query->insert('federated_reshares')
                        ->values(
@@ -478,10 +478,10 @@ class FederatedShareProvider implements IShareProvider {
         * get share ID on remote server for federated re-shares
         *
         * @param IShare $share
-        * @return int
+        * @return string
         * @throws ShareNotFound
         */
-       public function getRemoteId(IShare $share) {
+       public function getRemoteId(IShare $share): string {
                $query = $this->dbConnection->getQueryBuilder();
                $query->select('remote_id')->from('federated_reshares')
                        ->where($query->expr()->eq('share_id', $query->createNamedParameter((int)$share->getId())));
index bf0d0f8eecdfea17e51c10589a5afa5a7d44ff5c..b8d498f32284c9bafe3e15ff0fdb400f977ac16b 100644 (file)
@@ -48,9 +48,9 @@ class Version1010Date20200630191755 extends SimpleMigrationStep {
                                'notnull' => true,
                                'length' => 4,
                        ]);
-                       $table->addColumn('remote_id', Types::INTEGER, [
+                       $table->addColumn('remote_id', Types::STRING, [
                                'notnull' => true,
-                               'length' => 4,
+                               'length' => 255,
                        ]);
                        $table->setPrimaryKey(['share_id'], 'federated_res_pk');
 //                     $table->addUniqueIndex(['share_id'], 'share_id_index');
diff --git a/apps/federatedfilesharing/lib/Migration/Version1011Date20201120125158.php b/apps/federatedfilesharing/lib/Migration/Version1011Date20201120125158.php
new file mode 100644 (file)
index 0000000..c3fc22d
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/*
+ * @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/>.
+ *
+ */
+
+declare(strict_types=1);
+
+namespace OCA\FederatedFileSharing\Migration;
+
+use Closure;
+use Doctrine\DBAL\Types\Type;
+use Doctrine\DBAL\Types\Types;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version1011Date20201120125158 extends SimpleMigrationStep {
+       public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
+               /** @var ISchemaWrapper $schema */
+               $schema = $schemaClosure();
+               
+               if ($schema->hasTable('federated_reshares')) {
+                       $table = $schema->getTable('federated_reshares');
+                       $remoteIdColumn = $table->getColumn('remote_id');
+                       if ($remoteIdColumn && $remoteIdColumn->getType()->getName() !== Types::STRING) {
+                               $remoteIdColumn->setType(Type::getType(Types::STRING));
+                               $remoteIdColumn->setOptions(['length' => 255]);
+                       }
+               }
+
+               return $schema;
+       }
+}
index 61513cd2298cf2529c6d57087107c926b9edce6d..5df3c4af89a28dde6749ca18f9809271e9d38da4 100644 (file)
@@ -83,7 +83,7 @@ class Notifications {
         * @param string $token
         * @param string $shareWith
         * @param string $name
-        * @param int $remote_id
+        * @param string $remoteId
         * @param string $owner
         * @param string $ownerFederatedId
         * @param string $sharedBy
@@ -93,7 +93,7 @@ class Notifications {
         * @throws \OC\HintException
         * @throws \OC\ServerNotAvailableException
         */
-       public function sendRemoteShare($token, $shareWith, $name, $remote_id, $owner, $ownerFederatedId, $sharedBy, $sharedByFederatedId, $shareType) {
+       public function sendRemoteShare($token, $shareWith, $name, $remoteId, $owner, $ownerFederatedId, $sharedBy, $sharedByFederatedId, $shareType) {
                list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith);
 
                if ($user && $remote) {
@@ -103,7 +103,7 @@ class Notifications {
                                'shareWith' => $user,
                                'token' => $token,
                                'name' => $name,
-                               'remoteId' => $remote_id,
+                               'remoteId' => $remoteId,
                                'owner' => $owner,
                                'ownerFederatedId' => $ownerFederatedId,
                                'sharedBy' => $sharedBy,
@@ -132,13 +132,13 @@ class Notifications {
         * ask owner to re-share the file with the given user
         *
         * @param string $token
-        * @param int $id remote Id
+        * @param string $id remote Id
         * @param int $shareId internal share Id
         * @param string $remote remote address of the owner
         * @param string $shareWith
         * @param int $permission
         * @param string $filename
-        * @return bool
+        * @return array
         * @throws \OC\HintException
         * @throws \OC\ServerNotAvailableException
         */
@@ -151,7 +151,7 @@ class Notifications {
                ];
 
                $ocmFields = $fields;
-               $ocmFields['remoteId'] = $id;
+               $ocmFields['remoteId'] = (string)$id;
                $ocmFields['localId'] = $shareId;
                $ocmFields['name'] = $filename;
 
@@ -171,7 +171,7 @@ class Notifications {
                if ($httpRequestSuccessful && $ocsCallSuccessful && $validToken && $validRemoteId) {
                        return [
                                $status['ocs']['data']['token'],
-                               (int)$status['ocs']['data']['remoteId']
+                               $status['ocs']['data']['remoteId']
                        ];
                }
 
@@ -206,7 +206,7 @@ class Notifications {
         * send notification to remote server if the permissions was changed
         *
         * @param string $remote
-        * @param int $remoteId
+        * @param string $remoteId
         * @param string $token
         * @param int $permissions
         * @return bool
@@ -219,7 +219,7 @@ class Notifications {
         * forward accept reShare to remote server
         *
         * @param string $remote
-        * @param int $remoteId
+        * @param string $remoteId
         * @param string $token
         */
        public function sendAcceptShare($remote, $remoteId, $token) {
@@ -230,7 +230,7 @@ class Notifications {
         * forward decline reShare to remote server
         *
         * @param string $remote
-        * @param int $remoteId
+        * @param string $remoteId
         * @param string $token
         */
        public function sendDeclineShare($remote, $remoteId, $token) {
@@ -242,7 +242,7 @@ class Notifications {
         *
         * @param string $remote
         * @param string $token
-        * @param int $remoteId Share id on the remote host
+        * @param string $remoteId Share id on the remote host
         * @param string $action possible actions: accept, decline, unshare, revoke, permissions
         * @param array $data
         * @param int $try
index 526e4fcce45df5eb67a7ee4459b0ff53df5241e4..e59c98b07cdb13860d14a8a6bb5c1b01b0eeda92 100644 (file)
@@ -126,7 +126,7 @@ class Manager {
         * @param int $shareType
         * @param boolean $accepted
         * @param string $user
-        * @param int $remoteId
+        * @param string $remoteId
         * @param int $parent
         * @return Mount|null
         * @throws \Doctrine\DBAL\DBALException
@@ -347,7 +347,7 @@ class Manager {
         *
         * @param string $remote
         * @param string $token
-        * @param int $remoteId Share id on the remote host
+        * @param string $remoteId Share id on the remote host
         * @param string $feedback
         * @return boolean
         */
@@ -388,7 +388,7 @@ class Manager {
         *
         * @param string $remoteDomain
         * @param string $token
-        * @param $remoteId id of the share
+        * @param string $remoteId id of the share
         * @param string $feedback
         * @return bool
         */