diff options
Diffstat (limited to 'apps/oauth2')
31 files changed, 29 insertions, 254 deletions
diff --git a/apps/oauth2/appinfo/routes.php b/apps/oauth2/appinfo/routes.php index f40eaf96406..b34aff05552 100644 --- a/apps/oauth2/appinfo/routes.php +++ b/apps/oauth2/appinfo/routes.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/l10n/af.js b/apps/oauth2/l10n/af.js deleted file mode 100644 index dbc8eeb71d3..00000000000 --- a/apps/oauth2/l10n/af.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0" : "OAuth 2.0", - "OAuth 2.0 clients" : "OAuth 2.0-kliënte", - "Name" : "Naam", - "Redirection URI" : "Herverwysings-URI", - "Client Identifier" : "Kliëntidentifiseerder", - "Add client" : "Voeg kliënt toe", - "Add" : "Voeg toe", - "Delete" : "Skrap" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/oauth2/l10n/af.json b/apps/oauth2/l10n/af.json deleted file mode 100644 index 9f8e49b2d5a..00000000000 --- a/apps/oauth2/l10n/af.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0" : "OAuth 2.0", - "OAuth 2.0 clients" : "OAuth 2.0-kliënte", - "Name" : "Naam", - "Redirection URI" : "Herverwysings-URI", - "Client Identifier" : "Kliëntidentifiseerder", - "Add client" : "Voeg kliënt toe", - "Add" : "Voeg toe", - "Delete" : "Skrap" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_419.js b/apps/oauth2/l10n/es_419.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_419.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_419.json b/apps/oauth2/l10n/es_419.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_419.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_HN.js b/apps/oauth2/l10n/es_HN.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_HN.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_HN.json b/apps/oauth2/l10n/es_HN.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_HN.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_NI.js b/apps/oauth2/l10n/es_NI.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_NI.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_NI.json b/apps/oauth2/l10n/es_NI.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_NI.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_PA.js b/apps/oauth2/l10n/es_PA.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_PA.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_PA.json b/apps/oauth2/l10n/es_PA.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_PA.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_PE.js b/apps/oauth2/l10n/es_PE.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_PE.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_PE.json b/apps/oauth2/l10n/es_PE.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_PE.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_PR.js b/apps/oauth2/l10n/es_PR.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_PR.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_PR.json b/apps/oauth2/l10n/es_PR.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_PR.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_PY.js b/apps/oauth2/l10n/es_PY.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_PY.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_PY.json b/apps/oauth2/l10n/es_PY.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_PY.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/es_UY.js b/apps/oauth2/l10n/es_UY.js deleted file mode 100644 index e40806c627d..00000000000 --- a/apps/oauth2/l10n/es_UY.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/oauth2/l10n/es_UY.json b/apps/oauth2/l10n/es_UY.json deleted file mode 100644 index 0e63ef8d72e..00000000000 --- a/apps/oauth2/l10n/es_UY.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Clientes OAuth 2.0", - "Name" : "Nombre", - "Redirection URI" : "URI para redirección", - "Client Identifier" : "Identificador del cliente", - "Secret key" : "Llave secreta", - "Add client" : "Agregar cliente", - "Add" : "Agregar", - "Delete" : "Borrar" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/oauth2/l10n/hu.js b/apps/oauth2/l10n/hu.js index d584b3e8f83..eddb2928651 100644 --- a/apps/oauth2/l10n/hu.js +++ b/apps/oauth2/l10n/hu.js @@ -9,12 +9,15 @@ OC.L10N.register( "OAuth 2.0 clients" : "OAuth 2.0 kliensek", "OAuth 2.0 allows external services to request access to {instanceName}." : "Az OAuth 2.0 engedélyezi, hogy külső szolgáltatások hozzáférést kérjenek a következőhöz: {instanceName}.", "Name" : "Név", - "Redirection URI" : "Átirányítési URI", + "Redirection URI" : "Átirányítási URI", "Client Identifier" : "Ügyfélazonosító", "Secret key" : "Titkos kulcs", + "Delete client" : "Kliens törlése", + "Make sure you store the secret key, it cannot be recovered." : "Győződjön meg róla tárolja a titkos kulcsot, mert nem nyerhető vissza.", "Add client" : "Kliens hozzáadása", "Add" : "Hozzáadás", - "Show client secret" : "Kliens titkának megjelenítése", + "Show client secret" : "Klienstitok megjelenítése", + "Hide client secret" : "Klienstitok elrejtése", "Delete" : "Törlés" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/oauth2/l10n/hu.json b/apps/oauth2/l10n/hu.json index 99888640fbc..2e0a9c4de02 100644 --- a/apps/oauth2/l10n/hu.json +++ b/apps/oauth2/l10n/hu.json @@ -7,12 +7,15 @@ "OAuth 2.0 clients" : "OAuth 2.0 kliensek", "OAuth 2.0 allows external services to request access to {instanceName}." : "Az OAuth 2.0 engedélyezi, hogy külső szolgáltatások hozzáférést kérjenek a következőhöz: {instanceName}.", "Name" : "Név", - "Redirection URI" : "Átirányítési URI", + "Redirection URI" : "Átirányítási URI", "Client Identifier" : "Ügyfélazonosító", "Secret key" : "Titkos kulcs", + "Delete client" : "Kliens törlése", + "Make sure you store the secret key, it cannot be recovered." : "Győződjön meg róla tárolja a titkos kulcsot, mert nem nyerhető vissza.", "Add client" : "Kliens hozzáadása", "Add" : "Hozzáadás", - "Show client secret" : "Kliens titkának megjelenítése", + "Show client secret" : "Klienstitok megjelenítése", + "Hide client secret" : "Klienstitok elrejtése", "Delete" : "Törlés" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/oauth2/l10n/id.js b/apps/oauth2/l10n/id.js deleted file mode 100644 index 7be61f59d20..00000000000 --- a/apps/oauth2/l10n/id.js +++ /dev/null @@ -1,13 +0,0 @@ -OC.L10N.register( - "oauth2", - { - "OAuth 2.0 clients" : "Klien OAuth 2.0", - "Name" : "Nama", - "Redirection URI" : "URI Pengalihan", - "Client Identifier" : "Identifier klien", - "Secret key" : "Kunci rahasia", - "Add client" : "Tambah klien", - "Add" : "Tambah", - "Delete" : "Hapus" -}, -"nplurals=1; plural=0;"); diff --git a/apps/oauth2/l10n/id.json b/apps/oauth2/l10n/id.json deleted file mode 100644 index 430b92957b8..00000000000 --- a/apps/oauth2/l10n/id.json +++ /dev/null @@ -1,11 +0,0 @@ -{ "translations": { - "OAuth 2.0 clients" : "Klien OAuth 2.0", - "Name" : "Nama", - "Redirection URI" : "URI Pengalihan", - "Client Identifier" : "Identifier klien", - "Secret key" : "Kunci rahasia", - "Add client" : "Tambah klien", - "Add" : "Tambah", - "Delete" : "Hapus" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/oauth2/lib/Db/AccessToken.php b/apps/oauth2/lib/Db/AccessToken.php index f9c0e6de51e..34adc4f4797 100644 --- a/apps/oauth2/lib/Db/AccessToken.php +++ b/apps/oauth2/lib/Db/AccessToken.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/lib/Db/Client.php b/apps/oauth2/lib/Db/Client.php index 458d85b24ab..8fce0040c96 100644 --- a/apps/oauth2/lib/Db/Client.php +++ b/apps/oauth2/lib/Db/Client.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php b/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php index 1e090665735..04ac0bfbd28 100644 --- a/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php +++ b/apps/oauth2/tests/Controller/LoginRedirectorControllerTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/tests/Controller/OauthApiControllerTest.php b/apps/oauth2/tests/Controller/OauthApiControllerTest.php index 8d13265ec9e..0ecdb2e6b59 100644 --- a/apps/oauth2/tests/Controller/OauthApiControllerTest.php +++ b/apps/oauth2/tests/Controller/OauthApiControllerTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -382,8 +383,8 @@ class OauthApiControllerTest extends TestCase { ->method('update') ->with( $this->callback(function (AccessToken $token) { - return $token->getHashedCode() === hash('sha512', 'random128') && - $token->getEncryptedToken() === 'newEncryptedToken'; + return $token->getHashedCode() === hash('sha512', 'random128') + && $token->getEncryptedToken() === 'newEncryptedToken'; }) ); @@ -478,8 +479,8 @@ class OauthApiControllerTest extends TestCase { ->method('update') ->with( $this->callback(function (AccessToken $token) { - return $token->getHashedCode() === hash('sha512', 'random128') && - $token->getEncryptedToken() === 'newEncryptedToken'; + return $token->getHashedCode() === hash('sha512', 'random128') + && $token->getEncryptedToken() === 'newEncryptedToken'; }) ); @@ -577,8 +578,8 @@ class OauthApiControllerTest extends TestCase { ->method('update') ->with( $this->callback(function (AccessToken $token) { - return $token->getHashedCode() === hash('sha512', 'random128') && - $token->getEncryptedToken() === 'newEncryptedToken'; + return $token->getHashedCode() === hash('sha512', 'random128') + && $token->getEncryptedToken() === 'newEncryptedToken'; }) ); diff --git a/apps/oauth2/tests/Controller/SettingsControllerTest.php b/apps/oauth2/tests/Controller/SettingsControllerTest.php index cdde611c957..030a220e3d7 100644 --- a/apps/oauth2/tests/Controller/SettingsControllerTest.php +++ b/apps/oauth2/tests/Controller/SettingsControllerTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -95,10 +96,10 @@ class SettingsControllerTest extends TestCase { ->expects($this->once()) ->method('insert') ->with($this->callback(function (Client $c) { - return $c->getName() === 'My Client Name' && - $c->getRedirectUri() === 'https://example.com/' && - $c->getSecret() === bin2hex('MyHashedSecret') && - $c->getClientIdentifier() === 'MyClientIdentifier'; + return $c->getName() === 'My Client Name' + && $c->getRedirectUri() === 'https://example.com/' + && $c->getSecret() === bin2hex('MyHashedSecret') + && $c->getClientIdentifier() === 'MyClientIdentifier'; }))->willReturnCallback(function (Client $c) { $c->setId(42); return $c; diff --git a/apps/oauth2/tests/Db/AccessTokenMapperTest.php b/apps/oauth2/tests/Db/AccessTokenMapperTest.php index 1ed282dae1d..41a79fe725b 100644 --- a/apps/oauth2/tests/Db/AccessTokenMapperTest.php +++ b/apps/oauth2/tests/Db/AccessTokenMapperTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/tests/Db/ClientMapperTest.php b/apps/oauth2/tests/Db/ClientMapperTest.php index fccc0cd96fe..2e8d20ad200 100644 --- a/apps/oauth2/tests/Db/ClientMapperTest.php +++ b/apps/oauth2/tests/Db/ClientMapperTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/oauth2/tests/Settings/AdminTest.php b/apps/oauth2/tests/Settings/AdminTest.php index ca9100669df..0f08bb30276 100644 --- a/apps/oauth2/tests/Settings/AdminTest.php +++ b/apps/oauth2/tests/Settings/AdminTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later |