From: Joas Schilling Date: Tue, 30 Jun 2020 19:16:40 +0000 (+0200) Subject: Move federation to migrations X-Git-Tag: v20.0.0beta1~300^2~5 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=77c9ff838a9481eb6b1b0e8d253a8d47b3c09bb5;p=nextcloud-server.git Move federation to migrations Signed-off-by: Joas Schilling --- diff --git a/apps/federation/appinfo/database.xml b/apps/federation/appinfo/database.xml deleted file mode 100644 index 61c3b8ac6d8..00000000000 --- a/apps/federation/appinfo/database.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - *dbname* - true - false - utf8 - - *dbprefix*trusted_servers - - - id - integer - 0 - true - 1 - 4 - - - url - text - true - 512 - Url of trusted server - - - url_hash - text - - true - sha1 hash of the url without the protocol - - - token - text - 128 - token used to exchange the shared secret - - - shared_secret - text - 256 - shared secret used to authenticate - - - status - integer - 4 - true - 2 - current status of the connection - - - sync_token - text - 512 - cardDav sync token - - - url_hash - true - - url_hash - ascending - - - -
-
diff --git a/apps/federation/appinfo/info.xml b/apps/federation/appinfo/info.xml index b56b64bf229..fd6cb3e6e50 100644 --- a/apps/federation/appinfo/info.xml +++ b/apps/federation/appinfo/info.xml @@ -5,7 +5,7 @@ Federation Federation allows you to connect with other trusted servers to exchange the user directory. Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing. - 1.10.0 + 1.10.1 agpl Bjoern Schiessle Federation diff --git a/apps/federation/lib/Migration/Version1010Date20200630191302.php b/apps/federation/lib/Migration/Version1010Date20200630191302.php new file mode 100644 index 00000000000..13aaedd6c06 --- /dev/null +++ b/apps/federation/lib/Migration/Version1010Date20200630191302.php @@ -0,0 +1,83 @@ + + * + * @author Joas Schilling + * + * @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 . + * + */ + +namespace OCA\Federation\Migration; + +use Closure; +use Doctrine\DBAL\Types\Types; +use OCP\DB\ISchemaWrapper; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version1010Date20200630191302 extends SimpleMigrationStep { + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + if (!$schema->hasTable('trusted_servers')) { + $table = $schema->createTable('trusted_servers'); + $table->addColumn('id', Types::INTEGER, [ + 'autoincrement' => true, + 'notnull' => true, + 'length' => 4, + ]); + $table->addColumn('url', Types::STRING, [ + 'notnull' => true, + 'length' => 512, + ]); + $table->addColumn('url_hash', Types::STRING, [ + 'notnull' => true, + 'default' => '', + ]); + $table->addColumn('token', Types::STRING, [ + 'notnull' => false, + 'length' => 128, + ]); + $table->addColumn('shared_secret', Types::STRING, [ + 'notnull' => false, + 'length' => 256, + ]); + $table->addColumn('status', Types::INTEGER, [ + 'notnull' => true, + 'length' => 4, + 'default' => 2, + ]); + $table->addColumn('sync_token', Types::STRING, [ + 'notnull' => false, + 'length' => 512, + ]); + $table->setPrimaryKey(['id']); + $table->addUniqueIndex(['url_hash'], 'url_hash'); + } + return $schema; + } +}