Skip to content
Merged
2 changes: 1 addition & 1 deletion apps/federatedfilesharing/appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<name>Federated file sharing</name>
<summary>Provide federated file sharing across servers</summary>
<description>Provide federated file sharing across servers</description>
<version>1.10.1</version>
<version>1.10.2</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<author>Roeland Jago Douma</author>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
'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',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
8 changes: 4 additions & 4 deletions apps/federatedfilesharing/lib/FederatedShareProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ protected function updateSuccessfulReShare($shareId, $token) {
* @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(
Expand All @@ -478,10 +478,10 @@ public function storeRemoteId($shareId, $remoteId) {
* 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())));
Expand All @@ -493,7 +493,7 @@ public function getRemoteId(IShare $share) {
throw new ShareNotFound();
}

return (int)$data['remote_id'];
return (string)$data['remote_id'];
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ public function changeSchema(IOutput $output, Closure $schemaClosure, array $opt

if (!$schema->hasTable('federated_reshares')) {
$table = $schema->createTable('federated_reshares');
$table->addColumn('share_id', Types::INTEGER, [
$table->addColumn('share_id', Types::BIGINT, [
'notnull' => true,
'length' => 4,
]);
$table->addColumn('remote_id', Types::INTEGER, [
'notnull' => true,
'length' => 4,
$table->addColumn('remote_id', Types::STRING, [
'notnull' => false,
'length' => 255,
'default' => '',
]);
$table->setPrimaryKey(['share_id'], 'federated_res_pk');
// $table->addUniqueIndex(['share_id'], 'share_id_index');
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php
/*
* @copyright Copyright (c) 2020 Julius Härtl <[email protected]>
*
* @author Julius Härtl <[email protected]>
*
* @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\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();

if ($schema->hasTable('federated_reshares')) {
$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('');
return $schema;
}
}

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();
}
}
28 changes: 14 additions & 14 deletions apps/federatedfilesharing/lib/Notifications.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public function __construct(
* @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
Expand All @@ -93,7 +93,7 @@ public function __construct(
* @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) {
Expand All @@ -103,7 +103,7 @@ public function sendRemoteShare($token, $shareWith, $name, $remote_id, $owner, $
'shareWith' => $user,
'token' => $token,
'name' => $name,
'remoteId' => $remote_id,
'remoteId' => $remoteId,
'owner' => $owner,
'ownerFederatedId' => $ownerFederatedId,
'sharedBy' => $sharedBy,
Expand Down Expand Up @@ -132,13 +132,13 @@ public function sendRemoteShare($token, $shareWith, $name, $remote_id, $owner, $
* ask owner to re-share the file with the given user
*
* @param string $token
* @param int $id remote Id
* @param int $shareId internal share Id
* @param string $id remote 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 bool
* @return array|false
* @throws \OC\HintException
* @throws \OC\ServerNotAvailableException
*/
Expand All @@ -151,7 +151,7 @@ public function requestReShare($token, $id, $shareId, $remote, $shareWith, $perm
];

$ocmFields = $fields;
$ocmFields['remoteId'] = $id;
$ocmFields['remoteId'] = (string)$id;
$ocmFields['localId'] = $shareId;
$ocmFields['name'] = $filename;

Expand All @@ -171,7 +171,7 @@ public function requestReShare($token, $id, $shareId, $remote, $shareWith, $perm
if ($httpRequestSuccessful && $ocsCallSuccessful && $validToken && $validRemoteId) {
return [
$status['ocs']['data']['token'],
(int)$status['ocs']['data']['remoteId']
$status['ocs']['data']['remoteId']
];
}

Expand All @@ -182,7 +182,7 @@ public function requestReShare($token, $id, $shareId, $remote, $shareWith, $perm
* 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
*/
Expand All @@ -194,7 +194,7 @@ public function sendRemoteUnShare($remote, $id, $token) {
* 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
*/
Expand All @@ -206,7 +206,7 @@ public function sendRevokeShare($remote, $id, $token) {
* 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
Expand All @@ -219,7 +219,7 @@ public function sendPermissionChange($remote, $remoteId, $token, $permissions) {
* forward accept reShare to remote server
*
* @param string $remote
* @param int $remoteId
* @param string $remoteId
* @param string $token
*/
public function sendAcceptShare($remote, $remoteId, $token) {
Expand All @@ -230,7 +230,7 @@ public function sendAcceptShare($remote, $remoteId, $token) {
* forward decline reShare to remote server
*
* @param string $remote
* @param int $remoteId
* @param string $remoteId
* @param string $token
*/
public function sendDeclineShare($remote, $remoteId, $token) {
Expand All @@ -242,7 +242,7 @@ public function sendDeclineShare($remote, $remoteId, $token) {
*
* @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
Expand Down
120 changes: 0 additions & 120 deletions apps/files_sharing/appinfo/database.xml

This file was deleted.

2 changes: 1 addition & 1 deletion apps/files_sharing/appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
Turning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation.

</description>
<version>1.12.0</version>
<version>1.12.1</version>
<licence>agpl</licence>
<author>Michael Gapczynski</author>
<author>Bjoern Schiessle</author>
Expand Down
Loading