aboutsummaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api
diff options
context:
space:
mode:
Diffstat (limited to 'apps/provisioning_api')
-rw-r--r--apps/provisioning_api/appinfo/routes.php3
-rw-r--r--apps/provisioning_api/l10n/bg.js18
-rw-r--r--apps/provisioning_api/l10n/bg.json16
-rw-r--r--apps/provisioning_api/l10n/ca.js2
-rw-r--r--apps/provisioning_api/l10n/ca.json2
-rw-r--r--apps/provisioning_api/l10n/cs.js1
-rw-r--r--apps/provisioning_api/l10n/cs.json1
-rw-r--r--apps/provisioning_api/l10n/da.js2
-rw-r--r--apps/provisioning_api/l10n/da.json2
-rw-r--r--apps/provisioning_api/l10n/de.js19
-rw-r--r--apps/provisioning_api/l10n/de.json19
-rw-r--r--apps/provisioning_api/l10n/de_DE.js13
-rw-r--r--apps/provisioning_api/l10n/de_DE.json13
-rw-r--r--apps/provisioning_api/l10n/el.js16
-rw-r--r--apps/provisioning_api/l10n/el.json14
-rw-r--r--apps/provisioning_api/l10n/en_GB.js1
-rw-r--r--apps/provisioning_api/l10n/en_GB.json1
-rw-r--r--apps/provisioning_api/l10n/es_EC.js18
-rw-r--r--apps/provisioning_api/l10n/es_EC.json16
-rw-r--r--apps/provisioning_api/l10n/et_EE.js41
-rw-r--r--apps/provisioning_api/l10n/et_EE.json39
-rw-r--r--apps/provisioning_api/l10n/fa.js18
-rw-r--r--apps/provisioning_api/l10n/fa.json16
-rw-r--r--apps/provisioning_api/l10n/ga.js1
-rw-r--r--apps/provisioning_api/l10n/ga.json1
-rw-r--r--apps/provisioning_api/l10n/gl.js4
-rw-r--r--apps/provisioning_api/l10n/gl.json4
-rw-r--r--apps/provisioning_api/l10n/hr.js18
-rw-r--r--apps/provisioning_api/l10n/hr.json16
-rw-r--r--apps/provisioning_api/l10n/hu.js18
-rw-r--r--apps/provisioning_api/l10n/hu.json16
-rw-r--r--apps/provisioning_api/l10n/is.js15
-rw-r--r--apps/provisioning_api/l10n/is.json13
-rw-r--r--apps/provisioning_api/l10n/it.js18
-rw-r--r--apps/provisioning_api/l10n/it.json16
-rw-r--r--apps/provisioning_api/l10n/ja.js1
-rw-r--r--apps/provisioning_api/l10n/ja.json1
-rw-r--r--apps/provisioning_api/l10n/nl.js18
-rw-r--r--apps/provisioning_api/l10n/nl.json16
-rw-r--r--apps/provisioning_api/l10n/pl.js31
-rw-r--r--apps/provisioning_api/l10n/pl.json31
-rw-r--r--apps/provisioning_api/l10n/pt_BR.js19
-rw-r--r--apps/provisioning_api/l10n/pt_BR.json19
-rw-r--r--apps/provisioning_api/l10n/pt_PT.js17
-rw-r--r--apps/provisioning_api/l10n/pt_PT.json15
-rw-r--r--apps/provisioning_api/l10n/ro.js18
-rw-r--r--apps/provisioning_api/l10n/ro.json16
-rw-r--r--apps/provisioning_api/l10n/ru.js32
-rw-r--r--apps/provisioning_api/l10n/ru.json32
-rw-r--r--apps/provisioning_api/l10n/sc.js8
-rw-r--r--apps/provisioning_api/l10n/sc.json6
-rw-r--r--apps/provisioning_api/l10n/sk.js16
-rw-r--r--apps/provisioning_api/l10n/sk.json16
-rw-r--r--apps/provisioning_api/l10n/sl.js12
-rw-r--r--apps/provisioning_api/l10n/sl.json10
-rw-r--r--apps/provisioning_api/l10n/sv.js18
-rw-r--r--apps/provisioning_api/l10n/sv.json18
-rw-r--r--apps/provisioning_api/l10n/tr.js2
-rw-r--r--apps/provisioning_api/l10n/tr.json2
-rw-r--r--apps/provisioning_api/l10n/uk.js6
-rw-r--r--apps/provisioning_api/l10n/uk.json6
-rw-r--r--apps/provisioning_api/l10n/zh_CN.js34
-rw-r--r--apps/provisioning_api/l10n/zh_CN.json34
-rw-r--r--apps/provisioning_api/l10n/zh_HK.js1
-rw-r--r--apps/provisioning_api/l10n/zh_HK.json1
-rw-r--r--apps/provisioning_api/l10n/zh_TW.js1
-rw-r--r--apps/provisioning_api/l10n/zh_TW.json1
-rw-r--r--apps/provisioning_api/lib/AppInfo/Application.php1
-rw-r--r--apps/provisioning_api/lib/Capabilities.php4
-rw-r--r--apps/provisioning_api/lib/Controller/AUserDataOCSController.php7
-rw-r--r--apps/provisioning_api/lib/Controller/AppsController.php43
-rw-r--r--apps/provisioning_api/lib/Controller/GroupsController.php1
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php218
-rw-r--r--apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php1
-rw-r--r--apps/provisioning_api/lib/ResponseDefinitions.php2
-rw-r--r--apps/provisioning_api/openapi-administration.json13
-rw-r--r--apps/provisioning_api/openapi-full.json771
-rw-r--r--apps/provisioning_api/openapi.json260
-rw-r--r--apps/provisioning_api/tests/CapabilitiesTest.php23
-rw-r--r--apps/provisioning_api/tests/Controller/AppConfigControllerTest.php91
-rw-r--r--apps/provisioning_api/tests/Controller/AppsControllerTest.php34
-rw-r--r--apps/provisioning_api/tests/Controller/GroupsControllerTest.php62
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php354
-rw-r--r--apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php49
-rw-r--r--apps/provisioning_api/tests/TestCase.php5
85 files changed, 2004 insertions, 824 deletions
diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php
index 78526ce6402..df4f806fa08 100644
--- a/apps/provisioning_api/appinfo/routes.php
+++ b/apps/provisioning_api/appinfo/routes.php
@@ -35,6 +35,7 @@ return [
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#getEditableFields', 'url' => '/user/fields', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#getEditableFieldsForUser', 'url' => '/user/fields/{userId}', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#getEnabledApps', 'url' => '/user/apps', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
['root' => '/cloud', 'name' => 'Users#editUserMultiValue', 'url' => '/users/{userId}/{collectionName}', 'verb' => 'PUT', 'requirements' => ['collectionName' => '^(?!enable$|disable$)[a-zA-Z0-9_]*$']],
['root' => '/cloud', 'name' => 'Users#wipeUserDevices', 'url' => '/users/{userId}/wipe', 'verb' => 'POST'],
@@ -42,9 +43,11 @@ return [
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
['root' => '/cloud', 'name' => 'Users#disableUser', 'url' => '/users/{userId}/disable', 'verb' => 'PUT'],
['root' => '/cloud', 'name' => 'Users#getUsersGroups', 'url' => '/users/{userId}/groups', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#getUsersGroupsDetails', 'url' => '/users/{userId}/groups/details', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#addToGroup', 'url' => '/users/{userId}/groups', 'verb' => 'POST'],
['root' => '/cloud', 'name' => 'Users#removeFromGroup', 'url' => '/users/{userId}/groups', 'verb' => 'DELETE'],
['root' => '/cloud', 'name' => 'Users#getUserSubAdminGroups', 'url' => '/users/{userId}/subadmins', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#getUserSubAdminGroupsDetails', 'url' => '/users/{userId}/subadmins/details', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#addSubAdmin', 'url' => '/users/{userId}/subadmins', 'verb' => 'POST'],
['root' => '/cloud', 'name' => 'Users#removeSubAdmin', 'url' => '/users/{userId}/subadmins', 'verb' => 'DELETE'],
['root' => '/cloud', 'name' => 'Users#resendWelcomeMessage', 'url' => '/users/{userId}/welcome', 'verb' => 'POST'],
diff --git a/apps/provisioning_api/l10n/bg.js b/apps/provisioning_api/l10n/bg.js
deleted file mode 100644
index 65f85f8e42a..00000000000
--- a/apps/provisioning_api/l10n/bg.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Влезлият потребител трябва да е администратор или да има разрешение за редактиране на тази настройка.",
- "User already exists" : "Вече съществува потребител",
- "Email confirmation" : "Потвърждение по имейл",
- "To enable the email address %s please click the button below." : "За да активирате имейл адреса %s, моля, щракнете върху долния бутон.",
- "Confirm" : "Потвърди",
- "Email was already removed from account and cannot be confirmed anymore." : "Имейлът вече е премахнат от профила и не може да бъде потвърден повече.",
- "Could not verify mail because the token is expired." : "Не можа да се потвърди пощата, защото токенът е изтекъл.",
- "Could not verify mail because the token is invalid." : "Не можа да се потвърди пощата, защото токенът е невалиден.",
- "An unexpected error occurred. Please contact your admin." : "Възникна неочаквана грешка. Моля, свържете се с вашия администратор.",
- "Email confirmation successful" : "Потвърждението по имейл е успешно",
- "Provisioning API" : "Осигуряващ API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Това приложение активира набор от API, които външните системи могат да използват за управление на потребители, групи и приложения.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Това приложение активира набор от API, които външните системи могат да използват за създаване, редактиране, изтриване и запитване на потребител\n\t\tатрибути, заявка, задаване и премахване на групи, задаване на квота и заявка за общо хранилище, използвано в Nextcloud. Потребители с администратор на групата\n\t\tможе също да подава заявка към Nextcloud и да изпълнява същите функции като администратор за групи, които управляват. API също позволява\n\t\tадминистратор, който да потърси активни приложения Nextcloud, информация за приложението и да активира или деактивира приложение от разстояние.\n\t\tСлед като приложението е активирано, HTTP заявките могат да се използват чрез Basic Auth заглавка за изпълнение на някоя от функциите\n\t\tизброени по-горе. Повече информация е налична в документацията на API за предоставяне, включително примерни повиквания\n\t\tи отговори на сървъра."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/bg.json b/apps/provisioning_api/l10n/bg.json
deleted file mode 100644
index 52b2fdb313f..00000000000
--- a/apps/provisioning_api/l10n/bg.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Влезлият потребител трябва да е администратор или да има разрешение за редактиране на тази настройка.",
- "User already exists" : "Вече съществува потребител",
- "Email confirmation" : "Потвърждение по имейл",
- "To enable the email address %s please click the button below." : "За да активирате имейл адреса %s, моля, щракнете върху долния бутон.",
- "Confirm" : "Потвърди",
- "Email was already removed from account and cannot be confirmed anymore." : "Имейлът вече е премахнат от профила и не може да бъде потвърден повече.",
- "Could not verify mail because the token is expired." : "Не можа да се потвърди пощата, защото токенът е изтекъл.",
- "Could not verify mail because the token is invalid." : "Не можа да се потвърди пощата, защото токенът е невалиден.",
- "An unexpected error occurred. Please contact your admin." : "Възникна неочаквана грешка. Моля, свържете се с вашия администратор.",
- "Email confirmation successful" : "Потвърждението по имейл е успешно",
- "Provisioning API" : "Осигуряващ API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Това приложение активира набор от API, които външните системи могат да използват за управление на потребители, групи и приложения.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Това приложение активира набор от API, които външните системи могат да използват за създаване, редактиране, изтриване и запитване на потребител\n\t\tатрибути, заявка, задаване и премахване на групи, задаване на квота и заявка за общо хранилище, използвано в Nextcloud. Потребители с администратор на групата\n\t\tможе също да подава заявка към Nextcloud и да изпълнява същите функции като администратор за групи, които управляват. API също позволява\n\t\tадминистратор, който да потърси активни приложения Nextcloud, информация за приложението и да активира или деактивира приложение от разстояние.\n\t\tСлед като приложението е активирано, HTTP заявките могат да се използват чрез Basic Auth заглавка за изпълнение на някоя от функциите\n\t\tизброени по-горе. Повече информация е налична в документацията на API за предоставяне, включително примерни повиквания\n\t\tи отговори на сървъра."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ca.js b/apps/provisioning_api/l10n/ca.js
index 07ce80666d6..dd83b291c48 100644
--- a/apps/provisioning_api/l10n/ca.js
+++ b/apps/provisioning_api/l10n/ca.js
@@ -11,6 +11,7 @@ OC.L10N.register(
"Cannot create sub-admins for admin group" : "No es poden crear subadministradors per al grup d'administració",
"No permissions to promote sub-admins" : "No teniu permís per a ascendir subadministradors",
"Invalid password value" : "El valor de la contrasenya no és vàlid",
+ "An email address is required, to send a password link to the user." : "Es requereix una adreça de correu electrònic per enviar un enllaç de contrasenya a l'usuari.",
"Required email address was not provided" : "No s'ha proporcionat l'adreça electrònica obligatòria",
"Invalid quota value: %1$s" : "El valor de quota no és vàlid: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "El valor de quota no és vàlid. %1$s supera la quota màxima",
@@ -18,6 +19,7 @@ OC.L10N.register(
"Setting the password is not supported by the users backend" : "El rerefons d'usuaris no permet definir la contrasenya",
"Invalid language" : "La llengua no és vàlida",
"Invalid locale" : "La configuració regional no és vàlida",
+ "Invalid first day of week" : "El primer dia de la setmana no és vàlid",
"Cannot remove yourself from the admin group" : "No us podeu suprimir del grup d'administració",
"Cannot remove yourself from this group as you are a sub-admin" : "No us podeu suprimir d'aquest grup perquè en sou subadministrador",
"Not viable to remove user from the last group you are sub-admin of" : "No és viable suprimir l'usuari del darrer grup del qual sou subadministrador",
diff --git a/apps/provisioning_api/l10n/ca.json b/apps/provisioning_api/l10n/ca.json
index 1551d621f7d..6d39192d835 100644
--- a/apps/provisioning_api/l10n/ca.json
+++ b/apps/provisioning_api/l10n/ca.json
@@ -9,6 +9,7 @@
"Cannot create sub-admins for admin group" : "No es poden crear subadministradors per al grup d'administració",
"No permissions to promote sub-admins" : "No teniu permís per a ascendir subadministradors",
"Invalid password value" : "El valor de la contrasenya no és vàlid",
+ "An email address is required, to send a password link to the user." : "Es requereix una adreça de correu electrònic per enviar un enllaç de contrasenya a l'usuari.",
"Required email address was not provided" : "No s'ha proporcionat l'adreça electrònica obligatòria",
"Invalid quota value: %1$s" : "El valor de quota no és vàlid: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "El valor de quota no és vàlid. %1$s supera la quota màxima",
@@ -16,6 +17,7 @@
"Setting the password is not supported by the users backend" : "El rerefons d'usuaris no permet definir la contrasenya",
"Invalid language" : "La llengua no és vàlida",
"Invalid locale" : "La configuració regional no és vàlida",
+ "Invalid first day of week" : "El primer dia de la setmana no és vàlid",
"Cannot remove yourself from the admin group" : "No us podeu suprimir del grup d'administració",
"Cannot remove yourself from this group as you are a sub-admin" : "No us podeu suprimir d'aquest grup perquè en sou subadministrador",
"Not viable to remove user from the last group you are sub-admin of" : "No és viable suprimir l'usuari del darrer grup del qual sou subadministrador",
diff --git a/apps/provisioning_api/l10n/cs.js b/apps/provisioning_api/l10n/cs.js
index 2705acc4fce..a6fdb3482fa 100644
--- a/apps/provisioning_api/l10n/cs.js
+++ b/apps/provisioning_api/l10n/cs.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "Neplatná hodnota hesla",
"An email address is required, to send a password link to the user." : "Je vyžadována e-mailová adresa (pro zaslání odkazu na heslo uživateli).",
"Required email address was not provided" : "Nebyla poskytnuta potřebná e-mailová adresa",
+ "User creation failed" : "Vytváření uživatele se nezdařilo",
"Invalid quota value: %1$s" : "Neplatná hodnota kvóty: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Neplatná hodnota kvóty. %1$s překračuje maximální kvótu",
"Unlimited quota is forbidden on this instance" : "Neomezená kvóta není na této instanci dovolena",
diff --git a/apps/provisioning_api/l10n/cs.json b/apps/provisioning_api/l10n/cs.json
index 00cf059abd9..6f9ad347813 100644
--- a/apps/provisioning_api/l10n/cs.json
+++ b/apps/provisioning_api/l10n/cs.json
@@ -11,6 +11,7 @@
"Invalid password value" : "Neplatná hodnota hesla",
"An email address is required, to send a password link to the user." : "Je vyžadována e-mailová adresa (pro zaslání odkazu na heslo uživateli).",
"Required email address was not provided" : "Nebyla poskytnuta potřebná e-mailová adresa",
+ "User creation failed" : "Vytváření uživatele se nezdařilo",
"Invalid quota value: %1$s" : "Neplatná hodnota kvóty: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Neplatná hodnota kvóty. %1$s překračuje maximální kvótu",
"Unlimited quota is forbidden on this instance" : "Neomezená kvóta není na této instanci dovolena",
diff --git a/apps/provisioning_api/l10n/da.js b/apps/provisioning_api/l10n/da.js
index 905d84ff54b..b752d549f6e 100644
--- a/apps/provisioning_api/l10n/da.js
+++ b/apps/provisioning_api/l10n/da.js
@@ -11,6 +11,7 @@ OC.L10N.register(
"Cannot create sub-admins for admin group" : "Kan ikke oprette underadministratorer for administratorgruppen",
"No permissions to promote sub-admins" : "Ingen tilladelser til at forfremme underadministratorer",
"Invalid password value" : "Ugyldig adgangskodeværdi",
+ "An email address is required, to send a password link to the user." : "En e-mailadresse er krævet for at sende et adgangskodelink til brugeren.",
"Required email address was not provided" : "Den krævede e-mailadresse blev ikke oplyst",
"Invalid quota value: %1$s" : "Ugyldig kvoteværdi: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ugyldig kvoteværdi. %1$s overskrider den maksimale kvote",
@@ -18,6 +19,7 @@ OC.L10N.register(
"Setting the password is not supported by the users backend" : "Indstilling af adgangskode understøttes ikke af brugernes backend",
"Invalid language" : "Ugyldigt sprog",
"Invalid locale" : "Ugyldigt landestandard",
+ "Invalid first day of week" : "Ugyldig første dag i ugen",
"Cannot remove yourself from the admin group" : "Du kan ikke fjerne dig selv fra administratorgruppen",
"Cannot remove yourself from this group as you are a sub-admin" : "Du kan ikke fjerne dig selv fra denne gruppe, da du er en underadministrator",
"Not viable to remove user from the last group you are sub-admin of" : "Ikke muligt at fjerne brugeren fra den sidste gruppe, du er underadministrator for",
diff --git a/apps/provisioning_api/l10n/da.json b/apps/provisioning_api/l10n/da.json
index 294524812a2..2156565221f 100644
--- a/apps/provisioning_api/l10n/da.json
+++ b/apps/provisioning_api/l10n/da.json
@@ -9,6 +9,7 @@
"Cannot create sub-admins for admin group" : "Kan ikke oprette underadministratorer for administratorgruppen",
"No permissions to promote sub-admins" : "Ingen tilladelser til at forfremme underadministratorer",
"Invalid password value" : "Ugyldig adgangskodeværdi",
+ "An email address is required, to send a password link to the user." : "En e-mailadresse er krævet for at sende et adgangskodelink til brugeren.",
"Required email address was not provided" : "Den krævede e-mailadresse blev ikke oplyst",
"Invalid quota value: %1$s" : "Ugyldig kvoteværdi: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ugyldig kvoteværdi. %1$s overskrider den maksimale kvote",
@@ -16,6 +17,7 @@
"Setting the password is not supported by the users backend" : "Indstilling af adgangskode understøttes ikke af brugernes backend",
"Invalid language" : "Ugyldigt sprog",
"Invalid locale" : "Ugyldigt landestandard",
+ "Invalid first day of week" : "Ugyldig første dag i ugen",
"Cannot remove yourself from the admin group" : "Du kan ikke fjerne dig selv fra administratorgruppen",
"Cannot remove yourself from this group as you are a sub-admin" : "Du kan ikke fjerne dig selv fra denne gruppe, da du er en underadministrator",
"Not viable to remove user from the last group you are sub-admin of" : "Ikke muligt at fjerne brugeren fra den sidste gruppe, du er underadministrator for",
diff --git a/apps/provisioning_api/l10n/de.js b/apps/provisioning_api/l10n/de.js
index 825d905473b..f4e30f174f7 100644
--- a/apps/provisioning_api/l10n/de.js
+++ b/apps/provisioning_api/l10n/de.js
@@ -6,13 +6,14 @@ OC.L10N.register(
"User already exists" : "Benutzer existiert bereits",
"Group %1$s does not exist" : "Gruppe %1$s existiert nicht",
"Insufficient privileges for group %1$s" : "Unzureichende Berechtigungen für Gruppe %1$s",
- "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unter-Administration)",
- "Sub-admin group does not exist" : "Die Unter-Administrations-Gruppe existiert nicht",
- "Cannot create sub-admins for admin group" : "Kann keine Unter-Administration für die Administrations-Gruppe erstellen",
- "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unter-Administration zu ernennen",
+ "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unteradministration)",
+ "Sub-admin group does not exist" : "Die Unteradministrations-Gruppe existiert nicht",
+ "Cannot create sub-admins for admin group" : "Kann keine Unteradministration für die Administrations-Gruppe erstellen",
+ "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unteradministration zu ernennen",
"Invalid password value" : "Ungültiger Passwort-Wert",
"An email address is required, to send a password link to the user." : "Um dem Benutzer einen Passwortlink zu senden, ist eine E-Mail-Adresse erforderlich.",
"Required email address was not provided" : "Erforderliche E-Mail-Adresse wurde nicht angegeben",
+ "User creation failed" : "Benutzererstellung fehlgeschlagen",
"Invalid quota value: %1$s" : "Ungültiger Wert für Speicherkontigent: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ungültiger Wert für Speicherkontigent. %1$s überschreitet das maximale Kontigent",
"Unlimited quota is forbidden on this instance" : "Unbegrenztes Speicherkontigent ist auf dieser Instanz unzulässig",
@@ -25,16 +26,16 @@ OC.L10N.register(
"Not viable to remove user from the last group you are sub-admin of" : "Das Konto aus der letzten Gruppe zu entfernen, in der du zur Unteradministration gehörst ist nicht möglich.",
"User does not exist" : "Konto existiert nicht",
"Group does not exist" : "Gruppe existiert nicht",
- "User is not a sub-admin of this group" : "Konto ist kein Unter-Administrator dieser Gruppe",
+ "User is not a sub-admin of this group" : "Konto ist kein Unteradministrator dieser Gruppe",
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
- "To enable the email address %s please click the button below." : "Um die E-Mail-Adresse %s zu bestätigen, klicke bitte auf die untenstehende Schaltfläche.",
+ "To enable the email address %s please click the button below." : "Um die E-Mailadresse %s zu bestätigen, auf die untenstehende Schaltfläche klicken.",
"Confirm" : "Bestätigen",
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
- "Could not verify mail because the token is expired." : "Die E-Mail konnte nicht verifiziert werden, da die Frist des Tokens abgelaufen ist.",
- "Could not verify mail because the token is invalid." : "Die E-Mail konnte nicht verifiziert werden, da der Token ungültig ist.",
- "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deinen Administrator.",
+ "Could not verify mail because the token is expired." : "Die E-Mailadresse konnte nicht verifiziert werden, da das Token abgelaufen ist.",
+ "Could not verify mail because the token is invalid." : "Die E-Mailadresse konnte nicht verifiziert werden, da der Token ungültig ist.",
+ "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deine Administration.",
"Email confirmation successful" : "Die E-Mail Bestätigung war erfolgreich.",
"Provisioning API" : "Bereitstellungs-API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Diese Applikation stellt einen Satz von APIs für externe Systeme zur Verfügung um Konten, Gruppen und Apps zu verwalten.",
diff --git a/apps/provisioning_api/l10n/de.json b/apps/provisioning_api/l10n/de.json
index 0dda16304ff..85c24424b21 100644
--- a/apps/provisioning_api/l10n/de.json
+++ b/apps/provisioning_api/l10n/de.json
@@ -4,13 +4,14 @@
"User already exists" : "Benutzer existiert bereits",
"Group %1$s does not exist" : "Gruppe %1$s existiert nicht",
"Insufficient privileges for group %1$s" : "Unzureichende Berechtigungen für Gruppe %1$s",
- "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unter-Administration)",
- "Sub-admin group does not exist" : "Die Unter-Administrations-Gruppe existiert nicht",
- "Cannot create sub-admins for admin group" : "Kann keine Unter-Administration für die Administrations-Gruppe erstellen",
- "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unter-Administration zu ernennen",
+ "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unteradministration)",
+ "Sub-admin group does not exist" : "Die Unteradministrations-Gruppe existiert nicht",
+ "Cannot create sub-admins for admin group" : "Kann keine Unteradministration für die Administrations-Gruppe erstellen",
+ "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unteradministration zu ernennen",
"Invalid password value" : "Ungültiger Passwort-Wert",
"An email address is required, to send a password link to the user." : "Um dem Benutzer einen Passwortlink zu senden, ist eine E-Mail-Adresse erforderlich.",
"Required email address was not provided" : "Erforderliche E-Mail-Adresse wurde nicht angegeben",
+ "User creation failed" : "Benutzererstellung fehlgeschlagen",
"Invalid quota value: %1$s" : "Ungültiger Wert für Speicherkontigent: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ungültiger Wert für Speicherkontigent. %1$s überschreitet das maximale Kontigent",
"Unlimited quota is forbidden on this instance" : "Unbegrenztes Speicherkontigent ist auf dieser Instanz unzulässig",
@@ -23,16 +24,16 @@
"Not viable to remove user from the last group you are sub-admin of" : "Das Konto aus der letzten Gruppe zu entfernen, in der du zur Unteradministration gehörst ist nicht möglich.",
"User does not exist" : "Konto existiert nicht",
"Group does not exist" : "Gruppe existiert nicht",
- "User is not a sub-admin of this group" : "Konto ist kein Unter-Administrator dieser Gruppe",
+ "User is not a sub-admin of this group" : "Konto ist kein Unteradministrator dieser Gruppe",
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
- "To enable the email address %s please click the button below." : "Um die E-Mail-Adresse %s zu bestätigen, klicke bitte auf die untenstehende Schaltfläche.",
+ "To enable the email address %s please click the button below." : "Um die E-Mailadresse %s zu bestätigen, auf die untenstehende Schaltfläche klicken.",
"Confirm" : "Bestätigen",
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
- "Could not verify mail because the token is expired." : "Die E-Mail konnte nicht verifiziert werden, da die Frist des Tokens abgelaufen ist.",
- "Could not verify mail because the token is invalid." : "Die E-Mail konnte nicht verifiziert werden, da der Token ungültig ist.",
- "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deinen Administrator.",
+ "Could not verify mail because the token is expired." : "Die E-Mailadresse konnte nicht verifiziert werden, da das Token abgelaufen ist.",
+ "Could not verify mail because the token is invalid." : "Die E-Mailadresse konnte nicht verifiziert werden, da der Token ungültig ist.",
+ "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deine Administration.",
"Email confirmation successful" : "Die E-Mail Bestätigung war erfolgreich.",
"Provisioning API" : "Bereitstellungs-API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Diese Applikation stellt einen Satz von APIs für externe Systeme zur Verfügung um Konten, Gruppen und Apps zu verwalten.",
diff --git a/apps/provisioning_api/l10n/de_DE.js b/apps/provisioning_api/l10n/de_DE.js
index 1a652076290..0a44ee87126 100644
--- a/apps/provisioning_api/l10n/de_DE.js
+++ b/apps/provisioning_api/l10n/de_DE.js
@@ -6,13 +6,14 @@ OC.L10N.register(
"User already exists" : "Benutzer existiert bereits",
"Group %1$s does not exist" : "Gruppe %1$s existiert nicht",
"Insufficient privileges for group %1$s" : "Unzureichende Berechtigungen für Gruppe %1$s",
- "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unter-Administratoren)",
- "Sub-admin group does not exist" : "Die Unter-Administratoren-Gruppe existiert nicht",
- "Cannot create sub-admins for admin group" : "Kann keine Unter-Administratoren für die Administrations-Gruppe erstellen",
- "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unter-Administratoren zu ernennen",
+ "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unteradministratoren)",
+ "Sub-admin group does not exist" : "Die Unteradministratoren-Gruppe existiert nicht",
+ "Cannot create sub-admins for admin group" : "Kann keine Unteradministratoren für die Administrationsgruppe erstellen",
+ "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unteradministratoren zu ernennen",
"Invalid password value" : "Ungültiger Passwort-Wert",
"An email address is required, to send a password link to the user." : "Um dem Benutzer einen Passwortlink zu senden, ist eine E-Mail-Adresse erforderlich.",
"Required email address was not provided" : "Erforderliche E-Mail-Adresse wurde nicht angegeben",
+ "User creation failed" : "Benutzererstellung fehlgeschlagen",
"Invalid quota value: %1$s" : "Ungültiger Wert für Speicherkontigent: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ungültiger Wert für Speicherkontigent. %1$s überschreitet das maximale Kontigent",
"Unlimited quota is forbidden on this instance" : "Unbegrenztes Speicherkontigent ist auf dieser Instanz unzulässig",
@@ -25,7 +26,7 @@ OC.L10N.register(
"Not viable to remove user from the last group you are sub-admin of" : "Den Benutzer aus der letzten Gruppe zu entfernen, in der Sie Unteradministrator sind ist nicht möglich.",
"User does not exist" : "Benutzer existiert nicht",
"Group does not exist" : "Gruppe existiert nicht",
- "User is not a sub-admin of this group" : "Benutzer ist kein Unter-Administrator dieser Gruppe",
+ "User is not a sub-admin of this group" : "Benutzer ist kein Unteradministrator dieser Gruppe",
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
@@ -34,7 +35,7 @@ OC.L10N.register(
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
"Could not verify mail because the token is expired." : "Die E-Mail-Adresse konnte aufgrund eines abgelaufenen Tokens nicht zurückgesetzt werden",
"Could not verify mail because the token is invalid." : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht bestätigt werden",
- "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktieren Sie Ihren Administrator.",
+ "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktieren Sie Ihre Administration.",
"Email confirmation successful" : "E-Mail-Adresse wurde bestätgt",
"Provisioning API" : "Bereitstellung-API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Diese Applikation stellt einen Satz von APIs für externe Systeme zur Verfügung um Konten, Gruppen und Apps zu verwalten.",
diff --git a/apps/provisioning_api/l10n/de_DE.json b/apps/provisioning_api/l10n/de_DE.json
index bba09227012..84036ced30b 100644
--- a/apps/provisioning_api/l10n/de_DE.json
+++ b/apps/provisioning_api/l10n/de_DE.json
@@ -4,13 +4,14 @@
"User already exists" : "Benutzer existiert bereits",
"Group %1$s does not exist" : "Gruppe %1$s existiert nicht",
"Insufficient privileges for group %1$s" : "Unzureichende Berechtigungen für Gruppe %1$s",
- "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unter-Administratoren)",
- "Sub-admin group does not exist" : "Die Unter-Administratoren-Gruppe existiert nicht",
- "Cannot create sub-admins for admin group" : "Kann keine Unter-Administratoren für die Administrations-Gruppe erstellen",
- "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unter-Administratoren zu ernennen",
+ "No group specified (required for sub-admins)" : "Keine Gruppe angegeben (erforderlich für Unteradministratoren)",
+ "Sub-admin group does not exist" : "Die Unteradministratoren-Gruppe existiert nicht",
+ "Cannot create sub-admins for admin group" : "Kann keine Unteradministratoren für die Administrationsgruppe erstellen",
+ "No permissions to promote sub-admins" : "Keine Berechtigungen, um Unteradministratoren zu ernennen",
"Invalid password value" : "Ungültiger Passwort-Wert",
"An email address is required, to send a password link to the user." : "Um dem Benutzer einen Passwortlink zu senden, ist eine E-Mail-Adresse erforderlich.",
"Required email address was not provided" : "Erforderliche E-Mail-Adresse wurde nicht angegeben",
+ "User creation failed" : "Benutzererstellung fehlgeschlagen",
"Invalid quota value: %1$s" : "Ungültiger Wert für Speicherkontigent: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Ungültiger Wert für Speicherkontigent. %1$s überschreitet das maximale Kontigent",
"Unlimited quota is forbidden on this instance" : "Unbegrenztes Speicherkontigent ist auf dieser Instanz unzulässig",
@@ -23,7 +24,7 @@
"Not viable to remove user from the last group you are sub-admin of" : "Den Benutzer aus der letzten Gruppe zu entfernen, in der Sie Unteradministrator sind ist nicht möglich.",
"User does not exist" : "Benutzer existiert nicht",
"Group does not exist" : "Gruppe existiert nicht",
- "User is not a sub-admin of this group" : "Benutzer ist kein Unter-Administrator dieser Gruppe",
+ "User is not a sub-admin of this group" : "Benutzer ist kein Unteradministrator dieser Gruppe",
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
@@ -32,7 +33,7 @@
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
"Could not verify mail because the token is expired." : "Die E-Mail-Adresse konnte aufgrund eines abgelaufenen Tokens nicht zurückgesetzt werden",
"Could not verify mail because the token is invalid." : "Das Passwort konnte aufgrund eines ungültigen Tokens nicht bestätigt werden",
- "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktieren Sie Ihren Administrator.",
+ "An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktieren Sie Ihre Administration.",
"Email confirmation successful" : "E-Mail-Adresse wurde bestätgt",
"Provisioning API" : "Bereitstellung-API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Diese Applikation stellt einen Satz von APIs für externe Systeme zur Verfügung um Konten, Gruppen und Apps zu verwalten.",
diff --git a/apps/provisioning_api/l10n/el.js b/apps/provisioning_api/l10n/el.js
deleted file mode 100644
index 5b10b4adafe..00000000000
--- a/apps/provisioning_api/l10n/el.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "User already exists" : "Ο χρήστης υπάρχει ήδη",
- "Email confirmation" : "Επιβεβαίωση ηλεκτρονικού ταχυδρομείου",
- "To enable the email address %s please click the button below." : "Για να ενεργοποιήσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου %s κάντε κλικ στο παρακάτω κουμπί.",
- "Confirm" : "Επιβεβαίωση",
- "Email was already removed from account and cannot be confirmed anymore." : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου έχει ήδη αφαιρεθεί από τον λογαριασμό και δεν μπορεί πλέον να επιβεβαιωθεί.",
- "Could not verify mail because the token is expired." : "Δεν ήταν δυνατή η επαλήθευση της αλληλογραφίας επειδή το διακριτικό έχει λήξει.",
- "Could not verify mail because the token is invalid." : "Αδυναμία επαλήθευσης ηλεκτρονικής αλληλογραφίας επειδή το διακριτικό δεν είναι έγκυρο.",
- "Email confirmation successful" : "Η επιβεβαίωση μέσω ηλεκτρονικού ταχυδρομείου ήταν επιτυχής",
- "Provisioning API" : "API παροχής",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για τη διαχείριση χρηστών, ομάδων και εφαρμογών.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για να δημιουργήσουν, να επεξεργαστούν, να διαγράψουν και να ρωτήσουν τις ιδιότητες των χρηστών, το ερώτημα, να ορίσουν και να αφαιρέσουν ομάδες, να ορίσουν το όριο και το συνολικό χώρο αποθήκευσης ερωτημάτων που χρησιμοποιούνται στο Nextcloud. Οι χρήστες διαχειριστή ομάδας μπορούν επίσης να υποβάλουν ερώτημα στο Nextcloud και να εκτελούν τις ίδιες λειτουργίες με έναν διαχειριστή για ομάδες που αυτοί διαχειρίζονται. Το API επιτρέπει επίσης σε έναν διαχειριστή να υποβάλλει ερώτημα για ενεργές εφαρμογές Nextcloud, πληροφορίες εφαρμογής και να ενεργοποιήσει ή να απενεργοποιήσει μια εφαρμογή από απόσταση. Μόλις ενεργοποιηθεί η εφαρμογή, τα αιτήματα HTTP μπορούν να χρησιμοποιηθούν μέσω κεφαλίδας Basic Auth για να εκτελέσουν οποιαδήποτε των λειτουργιών που αναφέρονται παραπάνω. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση Provisioning API, συμπεριλαμβανομένων παραδειγμάτων κλήσεων και απαντήσεων διακομιστή."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/el.json b/apps/provisioning_api/l10n/el.json
deleted file mode 100644
index 525148a11a8..00000000000
--- a/apps/provisioning_api/l10n/el.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "User already exists" : "Ο χρήστης υπάρχει ήδη",
- "Email confirmation" : "Επιβεβαίωση ηλεκτρονικού ταχυδρομείου",
- "To enable the email address %s please click the button below." : "Για να ενεργοποιήσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου %s κάντε κλικ στο παρακάτω κουμπί.",
- "Confirm" : "Επιβεβαίωση",
- "Email was already removed from account and cannot be confirmed anymore." : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου έχει ήδη αφαιρεθεί από τον λογαριασμό και δεν μπορεί πλέον να επιβεβαιωθεί.",
- "Could not verify mail because the token is expired." : "Δεν ήταν δυνατή η επαλήθευση της αλληλογραφίας επειδή το διακριτικό έχει λήξει.",
- "Could not verify mail because the token is invalid." : "Αδυναμία επαλήθευσης ηλεκτρονικής αλληλογραφίας επειδή το διακριτικό δεν είναι έγκυρο.",
- "Email confirmation successful" : "Η επιβεβαίωση μέσω ηλεκτρονικού ταχυδρομείου ήταν επιτυχής",
- "Provisioning API" : "API παροχής",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για τη διαχείριση χρηστών, ομάδων και εφαρμογών.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για να δημιουργήσουν, να επεξεργαστούν, να διαγράψουν και να ρωτήσουν τις ιδιότητες των χρηστών, το ερώτημα, να ορίσουν και να αφαιρέσουν ομάδες, να ορίσουν το όριο και το συνολικό χώρο αποθήκευσης ερωτημάτων που χρησιμοποιούνται στο Nextcloud. Οι χρήστες διαχειριστή ομάδας μπορούν επίσης να υποβάλουν ερώτημα στο Nextcloud και να εκτελούν τις ίδιες λειτουργίες με έναν διαχειριστή για ομάδες που αυτοί διαχειρίζονται. Το API επιτρέπει επίσης σε έναν διαχειριστή να υποβάλλει ερώτημα για ενεργές εφαρμογές Nextcloud, πληροφορίες εφαρμογής και να ενεργοποιήσει ή να απενεργοποιήσει μια εφαρμογή από απόσταση. Μόλις ενεργοποιηθεί η εφαρμογή, τα αιτήματα HTTP μπορούν να χρησιμοποιηθούν μέσω κεφαλίδας Basic Auth για να εκτελέσουν οποιαδήποτε των λειτουργιών που αναφέρονται παραπάνω. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση Provisioning API, συμπεριλαμβανομένων παραδειγμάτων κλήσεων και απαντήσεων διακομιστή."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/en_GB.js b/apps/provisioning_api/l10n/en_GB.js
index 469642b202c..3469fee516d 100644
--- a/apps/provisioning_api/l10n/en_GB.js
+++ b/apps/provisioning_api/l10n/en_GB.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "Invalid password value",
"An email address is required, to send a password link to the user." : "An email address is required, to send a password link to the user.",
"Required email address was not provided" : "Required email address was not provided",
+ "User creation failed" : "User creation failed",
"Invalid quota value: %1$s" : "Invalid quota value: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Invalid quota value. %1$s is exceeding the maximum quota",
"Unlimited quota is forbidden on this instance" : "Unlimited quota is forbidden on this instance",
diff --git a/apps/provisioning_api/l10n/en_GB.json b/apps/provisioning_api/l10n/en_GB.json
index 0a60e2dc48b..6a6898da4c4 100644
--- a/apps/provisioning_api/l10n/en_GB.json
+++ b/apps/provisioning_api/l10n/en_GB.json
@@ -11,6 +11,7 @@
"Invalid password value" : "Invalid password value",
"An email address is required, to send a password link to the user." : "An email address is required, to send a password link to the user.",
"Required email address was not provided" : "Required email address was not provided",
+ "User creation failed" : "User creation failed",
"Invalid quota value: %1$s" : "Invalid quota value: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Invalid quota value. %1$s is exceeding the maximum quota",
"Unlimited quota is forbidden on this instance" : "Unlimited quota is forbidden on this instance",
diff --git a/apps/provisioning_api/l10n/es_EC.js b/apps/provisioning_api/l10n/es_EC.js
deleted file mode 100644
index 5f62f67c552..00000000000
--- a/apps/provisioning_api/l10n/es_EC.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "El usuario conectado debe ser un administrador o tener autorización para editar esta configuración.",
- "User already exists" : "El usuario ya existe",
- "Email confirmation" : "Confirmación de correo electrónico",
- "To enable the email address %s please click the button below." : "Para habilitar la dirección de correo electrónico %s, haz clic en el botón de abajo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "El correo electrónico ya fue eliminado de la cuenta y no se puede confirmar.",
- "Could not verify mail because the token is expired." : "No se pudo verificar el correo porque el token ha expirado.",
- "Could not verify mail because the token is invalid." : "No se pudo verificar el correo porque el token no es válido.",
- "An unexpected error occurred. Please contact your admin." : "Se produjo un error inesperado. Por favor, contacta al administrador.",
- "Email confirmation successful" : "Confirmación de correo electrónico exitosa",
- "Provisioning API" : "API de aprovisionamiento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para administrar usuarios, grupos y aplicaciones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para crear, editar, eliminar y consultar atributos de usuarios, consultar, establecer y eliminar grupos, establecer cuotas y consultar el almacenamiento total utilizado en Nextcloud. Los usuarios administradores de grupos también pueden consultar Nextcloud y realizar las mismas funciones que un administrador para los grupos que administran. La API también permite a un administrador consultar las aplicaciones activas de Nextcloud, la información de las aplicaciones y habilitar o deshabilitar una aplicación de forma remota. Una vez que la aplicación está habilitada, se pueden utilizar solicitudes HTTP a través de un encabezado de autenticación básica para realizar cualquiera de las funciones mencionadas anteriormente. Hay más información disponible en la documentación de la API de aprovisionamiento, que incluye ejemplos de llamadas y respuestas del servidor."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/es_EC.json b/apps/provisioning_api/l10n/es_EC.json
deleted file mode 100644
index f37c9a17418..00000000000
--- a/apps/provisioning_api/l10n/es_EC.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "El usuario conectado debe ser un administrador o tener autorización para editar esta configuración.",
- "User already exists" : "El usuario ya existe",
- "Email confirmation" : "Confirmación de correo electrónico",
- "To enable the email address %s please click the button below." : "Para habilitar la dirección de correo electrónico %s, haz clic en el botón de abajo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "El correo electrónico ya fue eliminado de la cuenta y no se puede confirmar.",
- "Could not verify mail because the token is expired." : "No se pudo verificar el correo porque el token ha expirado.",
- "Could not verify mail because the token is invalid." : "No se pudo verificar el correo porque el token no es válido.",
- "An unexpected error occurred. Please contact your admin." : "Se produjo un error inesperado. Por favor, contacta al administrador.",
- "Email confirmation successful" : "Confirmación de correo electrónico exitosa",
- "Provisioning API" : "API de aprovisionamiento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para administrar usuarios, grupos y aplicaciones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para crear, editar, eliminar y consultar atributos de usuarios, consultar, establecer y eliminar grupos, establecer cuotas y consultar el almacenamiento total utilizado en Nextcloud. Los usuarios administradores de grupos también pueden consultar Nextcloud y realizar las mismas funciones que un administrador para los grupos que administran. La API también permite a un administrador consultar las aplicaciones activas de Nextcloud, la información de las aplicaciones y habilitar o deshabilitar una aplicación de forma remota. Una vez que la aplicación está habilitada, se pueden utilizar solicitudes HTTP a través de un encabezado de autenticación básica para realizar cualquiera de las funciones mencionadas anteriormente. Hay más información disponible en la documentación de la API de aprovisionamiento, que incluye ejemplos de llamadas y respuestas del servidor."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/et_EE.js b/apps/provisioning_api/l10n/et_EE.js
new file mode 100644
index 00000000000..2081f8c467c
--- /dev/null
+++ b/apps/provisioning_api/l10n/et_EE.js
@@ -0,0 +1,41 @@
+OC.L10N.register(
+ "provisioning_api",
+ {
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Sisselogitud kasutajakonto peab olema peakasutajat või omama eraldi õigust selle seadustuse muutmiseks.",
+ "User already exists" : "Kasutaja on juba olemas",
+ "Group %1$s does not exist" : "%1$s gruppi pole olemas",
+ "Insufficient privileges for group %1$s" : "%1$s grupi jaoks pole pole piisavalt õigusi",
+ "No group specified (required for sub-admins)" : "Ühtegi gruppi pole määratud (vajalik peakasutajate alamgrupi puhul)",
+ "Sub-admin group does not exist" : "Peakasutajate alamgruppi pole olemas",
+ "Cannot create sub-admins for admin group" : "Peakasutajate grupi alamgruppi loomine ei õnnestu",
+ "No permissions to promote sub-admins" : "Pole õigusi peakasutajat alamgruppi määramiseks",
+ "Invalid password value" : "Vigane salasõna väärtus",
+ "An email address is required, to send a password link to the user." : "Salasõnalingi saatmiseks kasutajale on vajalik e-posti aadress.",
+ "Required email address was not provided" : "Vajalik e-posti aadress on lisamata",
+ "User creation failed" : "Kasutaja loomine ei õnnestunud",
+ "Invalid quota value: %1$s" : "Vigane kvoodi väärtus: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Vigane kvoodi väärtus. %1$s üledab maksimumkvoodi piiri",
+ "Unlimited quota is forbidden on this instance" : "Piiramatu kvoodi kasutamine on selles serveris keelatud",
+ "Setting the password is not supported by the users backend" : "Salasõna lisamine pole kasutajate taustateenuse poolt toetatud",
+ "Invalid language" : "Vigane keel",
+ "Invalid locale" : "Vigane lokaat",
+ "Invalid first day of week" : "Vigane nädala esimene päev",
+ "Cannot remove yourself from the admin group" : "Sa ei saa end peakasutajate grupist eemaldada",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Kuna oled peakasutajate alamgrupi liige, siis sa ei saa end eemaldada",
+ "Not viable to remove user from the last group you are sub-admin of" : "Pole mõistlik eemaldada kasutajat viimasest grupist, kus oled peakasutajate alamgrupi liige",
+ "User does not exist" : "Kasutajat pole olemas",
+ "Group does not exist" : "Gruppi pole olemas",
+ "User is not a sub-admin of this group" : "Kasutaja pole selle grupi peakasutajate alamgrupi liige",
+ "Email address not available" : "E-posti aadress pole saadaval",
+ "Sending email failed" : "E-kirja saatmine ei õnnestunud",
+ "Email confirmation" : "E-posti aadressi kinnitamine",
+ "To enable the email address %s please click the button below." : "%s e-posti aadressi kinnitamiseks palun klõpsi järgnevat nuppu.",
+ "Confirm" : "Kinnita",
+ "Email was already removed from account and cannot be confirmed anymore." : "E-posti aadress on kasutaja andmetest eemaldatud ja seda ei saa enam kinnitada.",
+ "Could not verify mail because the token is expired." : "Kuna tunnusluba on aegunud, siis e-posti aadressi kinnitamine pole võimalik.",
+ "Could not verify mail because the token is invalid." : "Kuna tunnusluba on vigane, siis e-posti aadressi kinnitamine pole võimalik.",
+ "An unexpected error occurred. Please contact your admin." : "Tekkis ootamatu viga. Palun võta ühendust peakasutajaga.",
+ "Email confirmation successful" : "E-posti aadressi kinnitamine õnnestus.",
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "See rakendus võtab kasutusele sellised API-d mis võimaldavad välistel süsteemidel hallata kasutajakontosid, gruppe ja rakendusi."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/et_EE.json b/apps/provisioning_api/l10n/et_EE.json
new file mode 100644
index 00000000000..f339e224be0
--- /dev/null
+++ b/apps/provisioning_api/l10n/et_EE.json
@@ -0,0 +1,39 @@
+{ "translations": {
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Sisselogitud kasutajakonto peab olema peakasutajat või omama eraldi õigust selle seadustuse muutmiseks.",
+ "User already exists" : "Kasutaja on juba olemas",
+ "Group %1$s does not exist" : "%1$s gruppi pole olemas",
+ "Insufficient privileges for group %1$s" : "%1$s grupi jaoks pole pole piisavalt õigusi",
+ "No group specified (required for sub-admins)" : "Ühtegi gruppi pole määratud (vajalik peakasutajate alamgrupi puhul)",
+ "Sub-admin group does not exist" : "Peakasutajate alamgruppi pole olemas",
+ "Cannot create sub-admins for admin group" : "Peakasutajate grupi alamgruppi loomine ei õnnestu",
+ "No permissions to promote sub-admins" : "Pole õigusi peakasutajat alamgruppi määramiseks",
+ "Invalid password value" : "Vigane salasõna väärtus",
+ "An email address is required, to send a password link to the user." : "Salasõnalingi saatmiseks kasutajale on vajalik e-posti aadress.",
+ "Required email address was not provided" : "Vajalik e-posti aadress on lisamata",
+ "User creation failed" : "Kasutaja loomine ei õnnestunud",
+ "Invalid quota value: %1$s" : "Vigane kvoodi väärtus: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Vigane kvoodi väärtus. %1$s üledab maksimumkvoodi piiri",
+ "Unlimited quota is forbidden on this instance" : "Piiramatu kvoodi kasutamine on selles serveris keelatud",
+ "Setting the password is not supported by the users backend" : "Salasõna lisamine pole kasutajate taustateenuse poolt toetatud",
+ "Invalid language" : "Vigane keel",
+ "Invalid locale" : "Vigane lokaat",
+ "Invalid first day of week" : "Vigane nädala esimene päev",
+ "Cannot remove yourself from the admin group" : "Sa ei saa end peakasutajate grupist eemaldada",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Kuna oled peakasutajate alamgrupi liige, siis sa ei saa end eemaldada",
+ "Not viable to remove user from the last group you are sub-admin of" : "Pole mõistlik eemaldada kasutajat viimasest grupist, kus oled peakasutajate alamgrupi liige",
+ "User does not exist" : "Kasutajat pole olemas",
+ "Group does not exist" : "Gruppi pole olemas",
+ "User is not a sub-admin of this group" : "Kasutaja pole selle grupi peakasutajate alamgrupi liige",
+ "Email address not available" : "E-posti aadress pole saadaval",
+ "Sending email failed" : "E-kirja saatmine ei õnnestunud",
+ "Email confirmation" : "E-posti aadressi kinnitamine",
+ "To enable the email address %s please click the button below." : "%s e-posti aadressi kinnitamiseks palun klõpsi järgnevat nuppu.",
+ "Confirm" : "Kinnita",
+ "Email was already removed from account and cannot be confirmed anymore." : "E-posti aadress on kasutaja andmetest eemaldatud ja seda ei saa enam kinnitada.",
+ "Could not verify mail because the token is expired." : "Kuna tunnusluba on aegunud, siis e-posti aadressi kinnitamine pole võimalik.",
+ "Could not verify mail because the token is invalid." : "Kuna tunnusluba on vigane, siis e-posti aadressi kinnitamine pole võimalik.",
+ "An unexpected error occurred. Please contact your admin." : "Tekkis ootamatu viga. Palun võta ühendust peakasutajaga.",
+ "Email confirmation successful" : "E-posti aadressi kinnitamine õnnestus.",
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "See rakendus võtab kasutusele sellised API-d mis võimaldavad välistel süsteemidel hallata kasutajakontosid, gruppe ja rakendusi."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/fa.js b/apps/provisioning_api/l10n/fa.js
deleted file mode 100644
index be264dd36af..00000000000
--- a/apps/provisioning_api/l10n/fa.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Logged in user must be an administrator or have authorization to edit this setting.",
- "User already exists" : "User already exists",
- "Email confirmation" : "Email confirmation",
- "To enable the email address %s please click the button below." : "To enable the email address %s please click the button below.",
- "Confirm" : "تائید",
- "Email was already removed from account and cannot be confirmed anymore." : "Email was already removed from account and cannot be confirmed anymore.",
- "Could not verify mail because the token is expired." : "Could not verify mail because the token is expired.",
- "Could not verify mail because the token is invalid." : "Could not verify mail because the token is invalid.",
- "An unexpected error occurred. Please contact your admin." : "An unexpected error occurred. Please contact your admin.",
- "Email confirmation successful" : "Email confirmation successful",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "This application enables a set of APIs that external systems can use to manage users, groups and apps.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses."
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/provisioning_api/l10n/fa.json b/apps/provisioning_api/l10n/fa.json
deleted file mode 100644
index bffa08e9c25..00000000000
--- a/apps/provisioning_api/l10n/fa.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Logged in user must be an administrator or have authorization to edit this setting.",
- "User already exists" : "User already exists",
- "Email confirmation" : "Email confirmation",
- "To enable the email address %s please click the button below." : "To enable the email address %s please click the button below.",
- "Confirm" : "تائید",
- "Email was already removed from account and cannot be confirmed anymore." : "Email was already removed from account and cannot be confirmed anymore.",
- "Could not verify mail because the token is expired." : "Could not verify mail because the token is expired.",
- "Could not verify mail because the token is invalid." : "Could not verify mail because the token is invalid.",
- "An unexpected error occurred. Please contact your admin." : "An unexpected error occurred. Please contact your admin.",
- "Email confirmation successful" : "Email confirmation successful",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "This application enables a set of APIs that external systems can use to manage users, groups and apps.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ga.js b/apps/provisioning_api/l10n/ga.js
index ff44b2ee659..6d6b3944c48 100644
--- a/apps/provisioning_api/l10n/ga.js
+++ b/apps/provisioning_api/l10n/ga.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "Luach pasfhocail neamhbhailí",
"An email address is required, to send a password link to the user." : "Tá seoladh ríomhphoist ag teastáil, chun nasc pasfhocal a sheoladh chuig an úsáideoir.",
"Required email address was not provided" : "Níor cuireadh an seoladh ríomhphoist riachtanach ar fáil",
+ "User creation failed" : "Theip ar chruthú úsáideora",
"Invalid quota value: %1$s" : "Luach cuóta neamhbhailí: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Luach cuóta neamhbhailí. Tá %1$s níos mó ná an t-uaschuóta",
"Unlimited quota is forbidden on this instance" : "Tá cosc ​​ar chuóta neamhtheoranta sa chás seo",
diff --git a/apps/provisioning_api/l10n/ga.json b/apps/provisioning_api/l10n/ga.json
index 7adbb45272a..691a2dc7af6 100644
--- a/apps/provisioning_api/l10n/ga.json
+++ b/apps/provisioning_api/l10n/ga.json
@@ -11,6 +11,7 @@
"Invalid password value" : "Luach pasfhocail neamhbhailí",
"An email address is required, to send a password link to the user." : "Tá seoladh ríomhphoist ag teastáil, chun nasc pasfhocal a sheoladh chuig an úsáideoir.",
"Required email address was not provided" : "Níor cuireadh an seoladh ríomhphoist riachtanach ar fáil",
+ "User creation failed" : "Theip ar chruthú úsáideora",
"Invalid quota value: %1$s" : "Luach cuóta neamhbhailí: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Luach cuóta neamhbhailí. Tá %1$s níos mó ná an t-uaschuóta",
"Unlimited quota is forbidden on this instance" : "Tá cosc ​​ar chuóta neamhtheoranta sa chás seo",
diff --git a/apps/provisioning_api/l10n/gl.js b/apps/provisioning_api/l10n/gl.js
index ae7bbfc7002..20d47f8b28e 100644
--- a/apps/provisioning_api/l10n/gl.js
+++ b/apps/provisioning_api/l10n/gl.js
@@ -22,7 +22,7 @@ OC.L10N.register(
"Invalid first day of week" : "O primeiro día da semana non é válido",
"Cannot remove yourself from the admin group" : "Non pode retirarse do grupo de administración",
"Cannot remove yourself from this group as you are a sub-admin" : "Non pode retirarse deste grupo xa que Vde. é persoal de subadministración",
- "Not viable to remove user from the last group you are sub-admin of" : "Non é viábel eliminar o usuario do último grupo do que é persoal de subadministración",
+ "Not viable to remove user from the last group you are sub-admin of" : "Non é viábel retirar o usuario do último grupo do que é persoal de subadministración",
"User does not exist" : "O usuario non existe",
"Group does not exist" : "O grupo non existe",
"User is not a sub-admin of this group" : "O usuario non pertence á subadministración deste grupo",
@@ -31,7 +31,7 @@ OC.L10N.register(
"Email confirmation" : "Confirmación do correo",
"To enable the email address %s please click the button below." : "Para activar o enderezo de correo %s, prema no botón de embaixo.",
"Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O correo foi eliminado da conta e xa non se pode confirmar.",
+ "Email was already removed from account and cannot be confirmed anymore." : "O correo foi retirado da conta e xa non é posíbel confirmalo.",
"Could not verify mail because the token is expired." : "Non foi posíbel verificar o correo porque o testemuño caducou.",
"Could not verify mail because the token is invalid." : "Non foi posíbel verificar o correo porque o testemuño non é válido.",
"An unexpected error occurred. Please contact your admin." : "Produciuse un erro non agardado. Póñase en contacto cun administrador.",
diff --git a/apps/provisioning_api/l10n/gl.json b/apps/provisioning_api/l10n/gl.json
index 4037f308bd0..59dbb4af966 100644
--- a/apps/provisioning_api/l10n/gl.json
+++ b/apps/provisioning_api/l10n/gl.json
@@ -20,7 +20,7 @@
"Invalid first day of week" : "O primeiro día da semana non é válido",
"Cannot remove yourself from the admin group" : "Non pode retirarse do grupo de administración",
"Cannot remove yourself from this group as you are a sub-admin" : "Non pode retirarse deste grupo xa que Vde. é persoal de subadministración",
- "Not viable to remove user from the last group you are sub-admin of" : "Non é viábel eliminar o usuario do último grupo do que é persoal de subadministración",
+ "Not viable to remove user from the last group you are sub-admin of" : "Non é viábel retirar o usuario do último grupo do que é persoal de subadministración",
"User does not exist" : "O usuario non existe",
"Group does not exist" : "O grupo non existe",
"User is not a sub-admin of this group" : "O usuario non pertence á subadministración deste grupo",
@@ -29,7 +29,7 @@
"Email confirmation" : "Confirmación do correo",
"To enable the email address %s please click the button below." : "Para activar o enderezo de correo %s, prema no botón de embaixo.",
"Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O correo foi eliminado da conta e xa non se pode confirmar.",
+ "Email was already removed from account and cannot be confirmed anymore." : "O correo foi retirado da conta e xa non é posíbel confirmalo.",
"Could not verify mail because the token is expired." : "Non foi posíbel verificar o correo porque o testemuño caducou.",
"Could not verify mail because the token is invalid." : "Non foi posíbel verificar o correo porque o testemuño non é válido.",
"An unexpected error occurred. Please contact your admin." : "Produciuse un erro non agardado. Póñase en contacto cun administrador.",
diff --git a/apps/provisioning_api/l10n/hr.js b/apps/provisioning_api/l10n/hr.js
deleted file mode 100644
index 5c94beac555..00000000000
--- a/apps/provisioning_api/l10n/hr.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Korisnik koji je prijavljen mora biti administrator ili imati ovlaštenje za uređivanje ove postavke.",
- "User already exists" : "Korisnik već postoji",
- "Email confirmation" : "Potvrda e-poštom",
- "To enable the email address %s please click the button below." : "Kliknite na gumb u nastavku kako biste omogućili adresu e-pošte %s.",
- "Confirm" : "Potvrdi",
- "Email was already removed from account and cannot be confirmed anymore." : "Adresa e-pošte uklonjena je iz računa i nije je moguće potvrditi.",
- "Could not verify mail because the token is expired." : "Potvrđivanje adrese e-pošte nije moguće jer je token istekao.",
- "Could not verify mail because the token is invalid." : "Potvrđivanje adrese e-pošte nije moguće jer je token nevažeći.",
- "An unexpected error occurred. Please contact your admin." : "Došlo je do neočekivane pogreške. Obratite se svom administratoru.",
- "Email confirmation successful" : "Adresa e-pošte uspješno je potvrđena",
- "Provisioning API" : "API za uvođenje u rad",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ova aplikacija omogućuje uporabu skupa API-ja koje vanjski sustavi mogu iskoristiti za upravljanje korisnicima, grupama i aplikacijama.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ova aplikacija omogućuje skup API-ja koje vanjski sustavi mogu iskoristiti za stvaranje, uređivanje, brisanje i upućivanje upita o korisničkim\n\t\tatributima, postavljanje i uklanjanje grupa, postavljanje kvota i provjeravanje ukupne količine pohrane koju upotrebljava Nextcloud. Korisnici administratori grupe\n\t\ttakođer mogu upućivati upite Nextcloudu i izvršavati iste funkcije kao i administrator grupe kojima upravljaju. API također omogućuje\n\t\tadministratoru upućivanje upita o aktivnim aplikacijama u Nextcloudu, traženje informacija o aplikacijama i daljinsko omogućavanje ili onemogućavanje aplikacije.\n\t\tKad je aplikacija omogućena, HTTP zahtjevi mogu se slati putem Basic Auth zaglavlja za izvršavanje bilo koje od\n\t\tnavedenih funkcija. Više informacija možete pronaći u dokumentaciji API-ja, uključujući primjere poziva\n\t\ti odgovora poslužitelja."
-},
-"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/hr.json b/apps/provisioning_api/l10n/hr.json
deleted file mode 100644
index f2270c9f90d..00000000000
--- a/apps/provisioning_api/l10n/hr.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Korisnik koji je prijavljen mora biti administrator ili imati ovlaštenje za uređivanje ove postavke.",
- "User already exists" : "Korisnik već postoji",
- "Email confirmation" : "Potvrda e-poštom",
- "To enable the email address %s please click the button below." : "Kliknite na gumb u nastavku kako biste omogućili adresu e-pošte %s.",
- "Confirm" : "Potvrdi",
- "Email was already removed from account and cannot be confirmed anymore." : "Adresa e-pošte uklonjena je iz računa i nije je moguće potvrditi.",
- "Could not verify mail because the token is expired." : "Potvrđivanje adrese e-pošte nije moguće jer je token istekao.",
- "Could not verify mail because the token is invalid." : "Potvrđivanje adrese e-pošte nije moguće jer je token nevažeći.",
- "An unexpected error occurred. Please contact your admin." : "Došlo je do neočekivane pogreške. Obratite se svom administratoru.",
- "Email confirmation successful" : "Adresa e-pošte uspješno je potvrđena",
- "Provisioning API" : "API za uvođenje u rad",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ova aplikacija omogućuje uporabu skupa API-ja koje vanjski sustavi mogu iskoristiti za upravljanje korisnicima, grupama i aplikacijama.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ova aplikacija omogućuje skup API-ja koje vanjski sustavi mogu iskoristiti za stvaranje, uređivanje, brisanje i upućivanje upita o korisničkim\n\t\tatributima, postavljanje i uklanjanje grupa, postavljanje kvota i provjeravanje ukupne količine pohrane koju upotrebljava Nextcloud. Korisnici administratori grupe\n\t\ttakođer mogu upućivati upite Nextcloudu i izvršavati iste funkcije kao i administrator grupe kojima upravljaju. API također omogućuje\n\t\tadministratoru upućivanje upita o aktivnim aplikacijama u Nextcloudu, traženje informacija o aplikacijama i daljinsko omogućavanje ili onemogućavanje aplikacije.\n\t\tKad je aplikacija omogućena, HTTP zahtjevi mogu se slati putem Basic Auth zaglavlja za izvršavanje bilo koje od\n\t\tnavedenih funkcija. Više informacija možete pronaći u dokumentaciji API-ja, uključujući primjere poziva\n\t\ti odgovora poslužitelja."
-},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/hu.js b/apps/provisioning_api/l10n/hu.js
deleted file mode 100644
index df4aef6fd00..00000000000
--- a/apps/provisioning_api/l10n/hu.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "A bejelentkezett felhasználónak rendszergazdának kell lennie, vagy engedéllyel kell rendelkeznie, hogy szerkessze ezt a beállítást.",
- "User already exists" : "A felhasználó már létezik",
- "Email confirmation" : "E-mail-cím megerősítése",
- "To enable the email address %s please click the button below." : "A(z) %s e-mail-cím engedélyezéséhez kattintson a lenti gombra.",
- "Confirm" : "Megerősítés",
- "Email was already removed from account and cannot be confirmed anymore." : "Az e-mail már el lett távolítva a fiókból, és már nem erősíthető meg.",
- "Could not verify mail because the token is expired." : "Az e-mail-címet nem lehet megerősíteni, mert a token lejárt.",
- "Could not verify mail because the token is invalid." : "Az e-mail-címet nem lehet megerősíteni, mert a token érvénytelen.",
- "An unexpected error occurred. Please contact your admin." : "Váratlan hiba történt. Lépjen kapcsolatba a rendszergazdával.",
- "Email confirmation successful" : "Az e-mail-cím megerősítése sikeres",
- "Provisioning API" : "Felügyeleti API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek arra használhatnak, hogy a felhasználókat, csoportokat és alkalmazásokat kezeljenek.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek használhatnak a felhasználók létrehozására,\n\t\tszerkesztésére, törlésére és attribútumok lekérdezésére, csoportok beállítására, eltávolítására és\n\t\tlekérdezésére, kvóta beállítására és a teljes tárhely lekérdezésére a Nextcloudban. A csoport admin felhasználók\n\t\tlekérdezhetik a Nextcloudot, és ugyanazokat a funkciókat hajthatják végre, mint az adminisztrátor az általuk\n\t\tkezelt csoportoknál. Az API szintén megengedi a rendszergazdának az aktív nextcloudos alkalmazások,\n\t\talkalmazásinformációk lekérdezését, valamint az alkalmazások távoli engedélyezését vagy letiltását. Miután\n\t\tengedélyezte az alkalmazást, a HTTP-kéréseket a Basic hitelesítési fejlécen keresztül fel lehet használni\n\t\tbármely, a feljebb felsorolt funkció végrehajtására. További információ a Provisioning API dokumentációjában\n\t\ttalálható, beleértve a példahívásokat és a kiszolgáló válaszait is."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/hu.json b/apps/provisioning_api/l10n/hu.json
deleted file mode 100644
index 4a08b9acae8..00000000000
--- a/apps/provisioning_api/l10n/hu.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "A bejelentkezett felhasználónak rendszergazdának kell lennie, vagy engedéllyel kell rendelkeznie, hogy szerkessze ezt a beállítást.",
- "User already exists" : "A felhasználó már létezik",
- "Email confirmation" : "E-mail-cím megerősítése",
- "To enable the email address %s please click the button below." : "A(z) %s e-mail-cím engedélyezéséhez kattintson a lenti gombra.",
- "Confirm" : "Megerősítés",
- "Email was already removed from account and cannot be confirmed anymore." : "Az e-mail már el lett távolítva a fiókból, és már nem erősíthető meg.",
- "Could not verify mail because the token is expired." : "Az e-mail-címet nem lehet megerősíteni, mert a token lejárt.",
- "Could not verify mail because the token is invalid." : "Az e-mail-címet nem lehet megerősíteni, mert a token érvénytelen.",
- "An unexpected error occurred. Please contact your admin." : "Váratlan hiba történt. Lépjen kapcsolatba a rendszergazdával.",
- "Email confirmation successful" : "Az e-mail-cím megerősítése sikeres",
- "Provisioning API" : "Felügyeleti API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek arra használhatnak, hogy a felhasználókat, csoportokat és alkalmazásokat kezeljenek.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek használhatnak a felhasználók létrehozására,\n\t\tszerkesztésére, törlésére és attribútumok lekérdezésére, csoportok beállítására, eltávolítására és\n\t\tlekérdezésére, kvóta beállítására és a teljes tárhely lekérdezésére a Nextcloudban. A csoport admin felhasználók\n\t\tlekérdezhetik a Nextcloudot, és ugyanazokat a funkciókat hajthatják végre, mint az adminisztrátor az általuk\n\t\tkezelt csoportoknál. Az API szintén megengedi a rendszergazdának az aktív nextcloudos alkalmazások,\n\t\talkalmazásinformációk lekérdezését, valamint az alkalmazások távoli engedélyezését vagy letiltását. Miután\n\t\tengedélyezte az alkalmazást, a HTTP-kéréseket a Basic hitelesítési fejlécen keresztül fel lehet használni\n\t\tbármely, a feljebb felsorolt funkció végrehajtására. További információ a Provisioning API dokumentációjában\n\t\ttalálható, beleértve a példahívásokat és a kiszolgáló válaszait is."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/is.js b/apps/provisioning_api/l10n/is.js
deleted file mode 100644
index 1e84328cd81..00000000000
--- a/apps/provisioning_api/l10n/is.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Innskráður notandi verður að vera kerfisstjóri eða hafa fengið sérstaka aðgangsheimild fyrir þessa stillingu.",
- "User already exists" : "Notandi er þegar til",
- "Email confirmation" : "Staðfesting tölvupósts",
- "To enable the email address %s please click the button below." : "Til að virkja tölvupóstfangið %s skaltu ýta á hnappinn hér fyrir neðan.",
- "Confirm" : "Staðfesta",
- "Email was already removed from account and cannot be confirmed anymore." : "Tölvupóstfangið hefur þegar verið fjarlægt úr aðgangnum og er ekki lengur hægt að staðfesta það.",
- "Could not verify mail because the token is expired." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er útrunnið.",
- "Could not verify mail because the token is invalid." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er ógilt.",
- "An unexpected error occurred. Please contact your admin." : "Óvænt villa kom upp. Hafðu samband við kerfisstjóra.",
- "Email confirmation successful" : "Staðfesting tölvupósts tókst"
-},
-"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/provisioning_api/l10n/is.json b/apps/provisioning_api/l10n/is.json
deleted file mode 100644
index 727ac3a9c09..00000000000
--- a/apps/provisioning_api/l10n/is.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Innskráður notandi verður að vera kerfisstjóri eða hafa fengið sérstaka aðgangsheimild fyrir þessa stillingu.",
- "User already exists" : "Notandi er þegar til",
- "Email confirmation" : "Staðfesting tölvupósts",
- "To enable the email address %s please click the button below." : "Til að virkja tölvupóstfangið %s skaltu ýta á hnappinn hér fyrir neðan.",
- "Confirm" : "Staðfesta",
- "Email was already removed from account and cannot be confirmed anymore." : "Tölvupóstfangið hefur þegar verið fjarlægt úr aðgangnum og er ekki lengur hægt að staðfesta það.",
- "Could not verify mail because the token is expired." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er útrunnið.",
- "Could not verify mail because the token is invalid." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er ógilt.",
- "An unexpected error occurred. Please contact your admin." : "Óvænt villa kom upp. Hafðu samband við kerfisstjóra.",
- "Email confirmation successful" : "Staðfesting tölvupósts tókst"
-},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/it.js b/apps/provisioning_api/l10n/it.js
deleted file mode 100644
index d9c7c0352e2..00000000000
--- a/apps/provisioning_api/l10n/it.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "L'utente connesso deve essere un amministratore o avere il permesso di modificare questa impostazione.",
- "User already exists" : "L'utente esiste già",
- "Email confirmation" : "Conferma email",
- "To enable the email address %s please click the button below." : "Per attivare l'indirizzo email %s fai clic sul pulsante sottostante.",
- "Confirm" : "Conferma",
- "Email was already removed from account and cannot be confirmed anymore." : "L'email era già stata rimossa dall'account e non può più essere confermata.",
- "Could not verify mail because the token is expired." : "Impossibile verificare l'email perché il token è scaduto.",
- "Could not verify mail because the token is invalid." : "Impossibile verificare l'email perché il token non è valido.",
- "An unexpected error occurred. Please contact your admin." : "Si è verificato un errore imprevisto. Contatta l'amministratore.",
- "Email confirmation successful" : "Conferma email riuscita",
- "Provisioning API" : "API di approvvigionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Questa applicazione abilita un insiemw di API che sistemi esterni possono usare per gestire utenti, gruppi e applicazioni.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Questa applicazione abilita un insieme di API che sistemi esterni possono usare per creare, modificare, eliminare e rilevare attributi\n\t\tutente, interrogare, impostare e rimuovere gruppi, limitare e rilevare lo spazio totale usato in Nextcloud. Gli utenti amministratori di un gruppo\n\t\tpossono anche interrogare Nextcloud e fare le stesse azioni degli amministratori per i gruppi che gestiscono. L'API permette anche\n\t\ta un amministratore di interrogare le applicazioni Nextcloud attive, informazioni sulle applicazioni, e di abilitare e disabilitare un'applicazione da remoto.\n\t\tUna volta che l'applicazione è abilitata, possono essere utilizzate richieste HTTP attraverso un'intestazione Basic Auth per eseguire qualsiasi funzione\n\telencata sopra. Ulteriori informazioni sono disponibili nella documentazione dell'API di approvvigionamento, incluse chiamate di esempio\n\t\te risposte del server."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/it.json b/apps/provisioning_api/l10n/it.json
deleted file mode 100644
index a1493bda9f7..00000000000
--- a/apps/provisioning_api/l10n/it.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "L'utente connesso deve essere un amministratore o avere il permesso di modificare questa impostazione.",
- "User already exists" : "L'utente esiste già",
- "Email confirmation" : "Conferma email",
- "To enable the email address %s please click the button below." : "Per attivare l'indirizzo email %s fai clic sul pulsante sottostante.",
- "Confirm" : "Conferma",
- "Email was already removed from account and cannot be confirmed anymore." : "L'email era già stata rimossa dall'account e non può più essere confermata.",
- "Could not verify mail because the token is expired." : "Impossibile verificare l'email perché il token è scaduto.",
- "Could not verify mail because the token is invalid." : "Impossibile verificare l'email perché il token non è valido.",
- "An unexpected error occurred. Please contact your admin." : "Si è verificato un errore imprevisto. Contatta l'amministratore.",
- "Email confirmation successful" : "Conferma email riuscita",
- "Provisioning API" : "API di approvvigionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Questa applicazione abilita un insiemw di API che sistemi esterni possono usare per gestire utenti, gruppi e applicazioni.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Questa applicazione abilita un insieme di API che sistemi esterni possono usare per creare, modificare, eliminare e rilevare attributi\n\t\tutente, interrogare, impostare e rimuovere gruppi, limitare e rilevare lo spazio totale usato in Nextcloud. Gli utenti amministratori di un gruppo\n\t\tpossono anche interrogare Nextcloud e fare le stesse azioni degli amministratori per i gruppi che gestiscono. L'API permette anche\n\t\ta un amministratore di interrogare le applicazioni Nextcloud attive, informazioni sulle applicazioni, e di abilitare e disabilitare un'applicazione da remoto.\n\t\tUna volta che l'applicazione è abilitata, possono essere utilizzate richieste HTTP attraverso un'intestazione Basic Auth per eseguire qualsiasi funzione\n\telencata sopra. Ulteriori informazioni sono disponibili nella documentazione dell'API di approvvigionamento, incluse chiamate di esempio\n\t\te risposte del server."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ja.js b/apps/provisioning_api/l10n/ja.js
index b62bedfedc7..b4775480591 100644
--- a/apps/provisioning_api/l10n/ja.js
+++ b/apps/provisioning_api/l10n/ja.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "無効なパスワード値",
"An email address is required, to send a password link to the user." : "ユーザーにパスワードリンクを送信するため、メールアドレスが必要です。",
"Required email address was not provided" : "必要のEメールアドレスが提供されていません",
+ "User creation failed" : "ユーザーの作成に失敗しました",
"Invalid quota value: %1$s" : "無効なクォータ値: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無効なクォータ値。%1$sは最大クォータを超えています",
"Unlimited quota is forbidden on this instance" : "このインスタンスでは無制限のクォータは禁止されています。",
diff --git a/apps/provisioning_api/l10n/ja.json b/apps/provisioning_api/l10n/ja.json
index 455f155f111..8b057bdbaa1 100644
--- a/apps/provisioning_api/l10n/ja.json
+++ b/apps/provisioning_api/l10n/ja.json
@@ -11,6 +11,7 @@
"Invalid password value" : "無効なパスワード値",
"An email address is required, to send a password link to the user." : "ユーザーにパスワードリンクを送信するため、メールアドレスが必要です。",
"Required email address was not provided" : "必要のEメールアドレスが提供されていません",
+ "User creation failed" : "ユーザーの作成に失敗しました",
"Invalid quota value: %1$s" : "無効なクォータ値: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無効なクォータ値。%1$sは最大クォータを超えています",
"Unlimited quota is forbidden on this instance" : "このインスタンスでは無制限のクォータは禁止されています。",
diff --git a/apps/provisioning_api/l10n/nl.js b/apps/provisioning_api/l10n/nl.js
deleted file mode 100644
index 0a5cb60fc79..00000000000
--- a/apps/provisioning_api/l10n/nl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Ingelogde gebruiker moet een beheerder zijn of geautoriseerd zijn om deze instelling aan te passen",
- "User already exists" : "Gebruiker bestaat al",
- "Email confirmation" : "E-mailbevestiging",
- "To enable the email address %s please click the button below." : "Klik op de onderstaande knop om het e-mail adres %s in te schakelen.",
- "Confirm" : "Bevestigen",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail was reeds verwijderd van de account en kan niet meer bevestigd worden.",
- "Could not verify mail because the token is expired." : "Kon de mail niet verifiëren omdat de token verlopen is.",
- "Could not verify mail because the token is invalid." : "Kon de mail niet verifiëren omdat de token ongeldig is.",
- "An unexpected error occurred. Please contact your admin." : "Een onverwachte fout trad op. Neem contact op met je beheerder.",
- "Email confirmation successful" : "E-mailbevestiging succesvol",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers, groepen en apps te beheren.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers te creëren, bewerken, verwijderen en bevragen\n\t\tattributen, query's uitvoeren, groepen instellen en verwijderen, quota instellen en de totale opslagruimte opvragen die wordt gebruikt in Nextcloud. Groepsbeheerders\n\t\tkunnen ook Nextcloud opvragen en dezelfde functies uitvoeren als een beheerder voor groepen die ze beheert. De API maakt het ook\n\t\tmogelijk voor een beheerder om te vragen naar actieve Nextcloud-applicaties, applicatie-info en om een app op afstand in- of uit te schakelen.\n\t\tZodra de app is ingeschakeld, kunnen HTTP-verzoeken worden gebruikt via een Basic Auth-header om de functies \n\t\thierboven uit te voeren. Meer informatie is beschikbaar in de Provisioning API-documentatie, inclusief voorbeeldoproepen\n\t\ten serverreacties."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/nl.json b/apps/provisioning_api/l10n/nl.json
deleted file mode 100644
index 6b79cc3fd5c..00000000000
--- a/apps/provisioning_api/l10n/nl.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Ingelogde gebruiker moet een beheerder zijn of geautoriseerd zijn om deze instelling aan te passen",
- "User already exists" : "Gebruiker bestaat al",
- "Email confirmation" : "E-mailbevestiging",
- "To enable the email address %s please click the button below." : "Klik op de onderstaande knop om het e-mail adres %s in te schakelen.",
- "Confirm" : "Bevestigen",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail was reeds verwijderd van de account en kan niet meer bevestigd worden.",
- "Could not verify mail because the token is expired." : "Kon de mail niet verifiëren omdat de token verlopen is.",
- "Could not verify mail because the token is invalid." : "Kon de mail niet verifiëren omdat de token ongeldig is.",
- "An unexpected error occurred. Please contact your admin." : "Een onverwachte fout trad op. Neem contact op met je beheerder.",
- "Email confirmation successful" : "E-mailbevestiging succesvol",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers, groepen en apps te beheren.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers te creëren, bewerken, verwijderen en bevragen\n\t\tattributen, query's uitvoeren, groepen instellen en verwijderen, quota instellen en de totale opslagruimte opvragen die wordt gebruikt in Nextcloud. Groepsbeheerders\n\t\tkunnen ook Nextcloud opvragen en dezelfde functies uitvoeren als een beheerder voor groepen die ze beheert. De API maakt het ook\n\t\tmogelijk voor een beheerder om te vragen naar actieve Nextcloud-applicaties, applicatie-info en om een app op afstand in- of uit te schakelen.\n\t\tZodra de app is ingeschakeld, kunnen HTTP-verzoeken worden gebruikt via een Basic Auth-header om de functies \n\t\thierboven uit te voeren. Meer informatie is beschikbaar in de Provisioning API-documentatie, inclusief voorbeeldoproepen\n\t\ten serverreacties."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/pl.js b/apps/provisioning_api/l10n/pl.js
index 1a3b3c554f8..ccb9e76b8ac 100644
--- a/apps/provisioning_api/l10n/pl.js
+++ b/apps/provisioning_api/l10n/pl.js
@@ -1,8 +1,33 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in user must be an administrator or have authorization to edit this setting." : "Zalogowany użytkownik musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Zalogowane konto musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Could not create non-existing user ID" : "Nie można utworzyć nieistniejącego identyfikatora użytkownika",
"User already exists" : "Użytkownik już istnieje",
+ "Group %1$s does not exist" : "Grupa %1$s nie istnieje",
+ "Insufficient privileges for group %1$s" : "Niewystarczające uprawnienia do grupy %1$s",
+ "No group specified (required for sub-admins)" : "Nie określono grupy (wymagane dla podadministratorów)",
+ "Sub-admin group does not exist" : "Grupa podadministratorów nie istnieje",
+ "Cannot create sub-admins for admin group" : "Nie można tworzyć podadministratorów dla grupy administratorów",
+ "No permissions to promote sub-admins" : "Brak uprawnień do promowania podadministratorów",
+ "Invalid password value" : "Nieprawidłowa wartość hasła",
+ "An email address is required, to send a password link to the user." : "Wymagany jest adres e-mail, aby wysłać użytkownikowi link do ustawienia hasła.",
+ "Required email address was not provided" : "Nie podano wymaganego adresu e-mail",
+ "Invalid quota value: %1$s" : "Nieprawidłowa wartość limitu: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Nieprawidłowy limit. %1$s przekracza maksymalny dopuszczalny limit",
+ "Unlimited quota is forbidden on this instance" : "Nieograniczony limit jest zabroniony na tej instancji",
+ "Setting the password is not supported by the users backend" : "Ustawianie hasła nie jest obsługiwane przez backend użytkowników",
+ "Invalid language" : "Nieprawidłowy język",
+ "Invalid locale" : "Nieprawidłowa lokalizacja",
+ "Invalid first day of week" : "Nieprawidłowy pierwszy dzień tygodnia",
+ "Cannot remove yourself from the admin group" : "Nie możesz usunąć siebie z grupy administratorów",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Nie możesz usunąć siebie z tej grupy, ponieważ jesteś jej podadministratorem",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie można usunąć użytkownika z ostatniej grupy, której jest podadministratorem",
+ "User does not exist" : "Użytkownik nie istnieje",
+ "Group does not exist" : "Grupa nie istnieje",
+ "User is not a sub-admin of this group" : "Użytkownik nie jest podadministratorem tej grupy",
+ "Email address not available" : "Adres e-mail niedostępny",
+ "Sending email failed" : "Wysyłanie e-maila nie powiodło się",
"Email confirmation" : "Potwierdzenie e-mailem",
"To enable the email address %s please click the button below." : "Aby włączyć adres e-mail %s, kliknij poniższy przycisk.",
"Confirm" : "Potwierdź",
@@ -12,7 +37,7 @@ OC.L10N.register(
"An unexpected error occurred. Please contact your admin." : "Wystąpił nieoczekiwany błąd. Skontaktuj się z administratorem.",
"Email confirmation successful" : "Potwierdzenie e-maila powiodło się",
"Provisioning API" : "API obsługi administracyjnej",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do zarządzania użytkownikami, grupami i aplikacjami.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do tworzenia, edytowania, usuwania i wysyłania zapytań o atrybuty użytkowników,\n\t\tkonfigurowania i usuwania grup, ustawiania przydziałów i zapytań o całkowitą pamięć używaną w Nextcloud. Użytkownicy będący administratorami grup\n\t\tmogą również wysyłać zapytania do Nextcloud i wykonywać te same funkcje, co administrator w zarządzanych przez siebie grupach. API umożliwia również\n\t\tadministratorowi do wysyłania zapytań o aktywne aplikacje Nextcloud, informacje o aplikacji oraz do zdalnego włączania lub wyłączania aplikacji.\n\t\tPo włączeniu aplikacji można używać żądań HTTP za pośrednictwem nagłówka Basic Auth do wykonywania dowolnej funkcji\n\t\twymienionej powyżej. Więcej informacji można znaleźć w dokumentacji interfejsu API do obsługi administracyjnej, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Ta aplikacja umożliwia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do zarządzania kontami, grupami i aplikacjami.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ta aplikacja udostępnia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do tworzenia, edytowania, usuwania i wyszukiwania kont użytkowników,\n\t\tatrybutów, zapytań, ustawiania i usuwania grup, limitów oraz zapytań o całkowite wykorzystanie przestrzeni w Nextcloud. Konta administratorów grup\n\t\tmogą również wykonywać zapytania do Nextcloud i działać jak administrator dla grup, którymi zarządzają. API umożliwia też administratorowi pobieranie aktywnych aplikacji, ich identyfikatorów, oraz włączanie lub wyłączanie aplikacji zdalnie.\n\t\tPo włączeniu aplikacji, zapytania HTTP mogą być wykonywane z nagłówkiem uwierzytelniającym Basic Auth, aby korzystać z funkcji\n\t\twymienionych powyżej. Więcej informacji znajduje się w dokumentacji API Provisioning, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/provisioning_api/l10n/pl.json b/apps/provisioning_api/l10n/pl.json
index e35ae0c4279..ace8f19e8ab 100644
--- a/apps/provisioning_api/l10n/pl.json
+++ b/apps/provisioning_api/l10n/pl.json
@@ -1,6 +1,31 @@
{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Zalogowany użytkownik musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Zalogowane konto musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
+ "Could not create non-existing user ID" : "Nie można utworzyć nieistniejącego identyfikatora użytkownika",
"User already exists" : "Użytkownik już istnieje",
+ "Group %1$s does not exist" : "Grupa %1$s nie istnieje",
+ "Insufficient privileges for group %1$s" : "Niewystarczające uprawnienia do grupy %1$s",
+ "No group specified (required for sub-admins)" : "Nie określono grupy (wymagane dla podadministratorów)",
+ "Sub-admin group does not exist" : "Grupa podadministratorów nie istnieje",
+ "Cannot create sub-admins for admin group" : "Nie można tworzyć podadministratorów dla grupy administratorów",
+ "No permissions to promote sub-admins" : "Brak uprawnień do promowania podadministratorów",
+ "Invalid password value" : "Nieprawidłowa wartość hasła",
+ "An email address is required, to send a password link to the user." : "Wymagany jest adres e-mail, aby wysłać użytkownikowi link do ustawienia hasła.",
+ "Required email address was not provided" : "Nie podano wymaganego adresu e-mail",
+ "Invalid quota value: %1$s" : "Nieprawidłowa wartość limitu: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Nieprawidłowy limit. %1$s przekracza maksymalny dopuszczalny limit",
+ "Unlimited quota is forbidden on this instance" : "Nieograniczony limit jest zabroniony na tej instancji",
+ "Setting the password is not supported by the users backend" : "Ustawianie hasła nie jest obsługiwane przez backend użytkowników",
+ "Invalid language" : "Nieprawidłowy język",
+ "Invalid locale" : "Nieprawidłowa lokalizacja",
+ "Invalid first day of week" : "Nieprawidłowy pierwszy dzień tygodnia",
+ "Cannot remove yourself from the admin group" : "Nie możesz usunąć siebie z grupy administratorów",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Nie możesz usunąć siebie z tej grupy, ponieważ jesteś jej podadministratorem",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie można usunąć użytkownika z ostatniej grupy, której jest podadministratorem",
+ "User does not exist" : "Użytkownik nie istnieje",
+ "Group does not exist" : "Grupa nie istnieje",
+ "User is not a sub-admin of this group" : "Użytkownik nie jest podadministratorem tej grupy",
+ "Email address not available" : "Adres e-mail niedostępny",
+ "Sending email failed" : "Wysyłanie e-maila nie powiodło się",
"Email confirmation" : "Potwierdzenie e-mailem",
"To enable the email address %s please click the button below." : "Aby włączyć adres e-mail %s, kliknij poniższy przycisk.",
"Confirm" : "Potwierdź",
@@ -10,7 +35,7 @@
"An unexpected error occurred. Please contact your admin." : "Wystąpił nieoczekiwany błąd. Skontaktuj się z administratorem.",
"Email confirmation successful" : "Potwierdzenie e-maila powiodło się",
"Provisioning API" : "API obsługi administracyjnej",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do zarządzania użytkownikami, grupami i aplikacjami.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do tworzenia, edytowania, usuwania i wysyłania zapytań o atrybuty użytkowników,\n\t\tkonfigurowania i usuwania grup, ustawiania przydziałów i zapytań o całkowitą pamięć używaną w Nextcloud. Użytkownicy będący administratorami grup\n\t\tmogą również wysyłać zapytania do Nextcloud i wykonywać te same funkcje, co administrator w zarządzanych przez siebie grupach. API umożliwia również\n\t\tadministratorowi do wysyłania zapytań o aktywne aplikacje Nextcloud, informacje o aplikacji oraz do zdalnego włączania lub wyłączania aplikacji.\n\t\tPo włączeniu aplikacji można używać żądań HTTP za pośrednictwem nagłówka Basic Auth do wykonywania dowolnej funkcji\n\t\twymienionej powyżej. Więcej informacji można znaleźć w dokumentacji interfejsu API do obsługi administracyjnej, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Ta aplikacja umożliwia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do zarządzania kontami, grupami i aplikacjami.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ta aplikacja udostępnia zestaw interfejsów API, które zewnętrzne systemy mogą wykorzystać do tworzenia, edytowania, usuwania i wyszukiwania kont użytkowników,\n\t\tatrybutów, zapytań, ustawiania i usuwania grup, limitów oraz zapytań o całkowite wykorzystanie przestrzeni w Nextcloud. Konta administratorów grup\n\t\tmogą również wykonywać zapytania do Nextcloud i działać jak administrator dla grup, którymi zarządzają. API umożliwia też administratorowi pobieranie aktywnych aplikacji, ich identyfikatorów, oraz włączanie lub wyłączanie aplikacji zdalnie.\n\t\tPo włączeniu aplikacji, zapytania HTTP mogą być wykonywane z nagłówkiem uwierzytelniającym Basic Auth, aby korzystać z funkcji\n\t\twymienionych powyżej. Więcej informacji znajduje się w dokumentacji API Provisioning, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/pt_BR.js b/apps/provisioning_api/l10n/pt_BR.js
index aeb3ca9c1bf..4fbd4024484 100644
--- a/apps/provisioning_api/l10n/pt_BR.js
+++ b/apps/provisioning_api/l10n/pt_BR.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in account must be an administrator or have authorization to edit this setting." : "A conta logada deve ser de administrador ou ter autorização para editar esta configuração.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "A conta logada deve ser um administrador ou ter autorização para editar esta configuração.",
"Could not create non-existing user ID" : "Não foi possível criar um ID de usuário inexistente",
"User already exists" : "Usuário já existe",
"Group %1$s does not exist" : "O grupo %1$s não existe",
@@ -13,23 +13,24 @@ OC.L10N.register(
"Invalid password value" : "Valor de senha inválido",
"An email address is required, to send a password link to the user." : "É necessário um endereço de e-mail, para enviar um link de senha para o usuário.",
"Required email address was not provided" : "O endereço de e-mail obrigatório não foi fornecido",
+ "User creation failed" : "Falha na criação do usuário",
"Invalid quota value: %1$s" : "Valor de cota inválido: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Valor de cota inválido. %1$s está excedendo a cota máxima",
"Unlimited quota is forbidden on this instance" : "Cota ilimitada é proibida nesta instância",
"Setting the password is not supported by the users backend" : "A configuração da senha não é suportada pelo back-end dos usuários",
"Invalid language" : "Idioma inválido",
- "Invalid locale" : "Local inválido",
+ "Invalid locale" : "Configuração regional inválida",
"Invalid first day of week" : "Primeiro dia da semana inválido",
- "Cannot remove yourself from the admin group" : "Não é possível remover-se do grupo de administradores",
- "Cannot remove yourself from this group as you are a sub-admin" : "Não é possível remover-se deste grupo porque você é um subadministrador",
+ "Cannot remove yourself from the admin group" : "Não é possível remover a si mesmo do grupo de administradores",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Não é possível remover a si mesmo desse grupo, pois você é um subadministrador",
"Not viable to remove user from the last group you are sub-admin of" : "Não é viável remover o usuário do último grupo do qual você é subadministrador",
"User does not exist" : "Usuário não existe",
- "Group does not exist" : "O grupo não existe",
+ "Group does not exist" : "Grupo não existe",
"User is not a sub-admin of this group" : "O usuário não é um subadministrador deste grupo",
"Email address not available" : "Endereço de e-mail não disponível",
"Sending email failed" : "Falha ao enviar e-mail",
- "Email confirmation" : "Confirmação de e-mail",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de e-mail %s por favor click no botão abaixo.",
+ "Email confirmation" : "Confirmação do endereço de e-mail",
+ "To enable the email address %s please click the button below." : "Para ativar o endereço de e-mail %s, por favor, clique no botão abaixo.",
"Confirm" : "Confirmar",
"Email was already removed from account and cannot be confirmed anymore." : "O e-mail já foi removido da conta e não pode mais ser confirmado.",
"Could not verify mail because the token is expired." : "Não foi possível verificar o e-mail porque o token expirou.",
@@ -37,7 +38,7 @@ OC.L10N.register(
"An unexpected error occurred. Please contact your admin." : "Um erro inesperado ocorreu. Entre em contato com o seu administrador.",
"Email confirmation successful" : "E-mail confirmado com sucesso",
"Provisioning API" : "API de provisionamento",
- "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Este aplicativo permite um conjunto de APIs que sistemas externos podem usar para gerenciar contas, grupos e aplicativos.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Este aplicativo permite um conjunto de APIs que sistemas externos podem usar para criar, editar, excluir e consultar contas\n \t\t atributos, consultar, definir e remover grupos, definir cota e consultar o armazenamento total usado no Nextcloud. Contas de administrador de grupo \n\t\t também pode consultar o Nextcloud e executar as mesmas funções que um administrador para os grupos que gerencia. A API também permite\n \t\tum administrador para consultar aplicativos Nextcloud ativos, informações do aplicativo e ativar ou desativar um aplicativo remotamente.\n \t\tDepois que o aplicativo estiver ativado, as solicitações HTTP podem ser usadas por meio de um cabeçalho Basic Auth para executar qualquer uma das funções\n \t\tlistado acima. Mais informações estão disponíveis na documentação da API de provisionamento, incluindo exemplos de chamadas\n \t\te respostas do servidor."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Este aplicativo habilita um conjunto de APIs que sistemas externos podem usar para gerenciar contas, grupos e aplicativos.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Este aplicativo habilita um conjunto de APIs que sistemas externos podem usar para criar, editar, excluir e consultar atributos\n\t\tde conta, consultar, definir e remover grupos, definir cotas e consultar o armazenamento total usado no Nextcloud. As contas de administrador de grupo\n\t\ttambém podem consultar o Nextcloud e executar as mesmas funções de um administrador para os grupos que gerenciam. A API também permite\n\t\tque um administrador consulte os aplicativos ativos do Nextcloud, as informações do aplicativo e ative ou desative um aplicativo remotamente.\n\t\tDepois que o aplicativo é ativado, as solicitações HTTP podem ser usadas por meio de um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tlistadas acima. Mais informações estão disponíveis na documentação da API de Provisionamento, incluindo exemplos de solicitações\n\t\te respostas do servidor."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/pt_BR.json b/apps/provisioning_api/l10n/pt_BR.json
index 670ebb3598d..bb951174d30 100644
--- a/apps/provisioning_api/l10n/pt_BR.json
+++ b/apps/provisioning_api/l10n/pt_BR.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Logged in account must be an administrator or have authorization to edit this setting." : "A conta logada deve ser de administrador ou ter autorização para editar esta configuração.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "A conta logada deve ser um administrador ou ter autorização para editar esta configuração.",
"Could not create non-existing user ID" : "Não foi possível criar um ID de usuário inexistente",
"User already exists" : "Usuário já existe",
"Group %1$s does not exist" : "O grupo %1$s não existe",
@@ -11,23 +11,24 @@
"Invalid password value" : "Valor de senha inválido",
"An email address is required, to send a password link to the user." : "É necessário um endereço de e-mail, para enviar um link de senha para o usuário.",
"Required email address was not provided" : "O endereço de e-mail obrigatório não foi fornecido",
+ "User creation failed" : "Falha na criação do usuário",
"Invalid quota value: %1$s" : "Valor de cota inválido: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Valor de cota inválido. %1$s está excedendo a cota máxima",
"Unlimited quota is forbidden on this instance" : "Cota ilimitada é proibida nesta instância",
"Setting the password is not supported by the users backend" : "A configuração da senha não é suportada pelo back-end dos usuários",
"Invalid language" : "Idioma inválido",
- "Invalid locale" : "Local inválido",
+ "Invalid locale" : "Configuração regional inválida",
"Invalid first day of week" : "Primeiro dia da semana inválido",
- "Cannot remove yourself from the admin group" : "Não é possível remover-se do grupo de administradores",
- "Cannot remove yourself from this group as you are a sub-admin" : "Não é possível remover-se deste grupo porque você é um subadministrador",
+ "Cannot remove yourself from the admin group" : "Não é possível remover a si mesmo do grupo de administradores",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Não é possível remover a si mesmo desse grupo, pois você é um subadministrador",
"Not viable to remove user from the last group you are sub-admin of" : "Não é viável remover o usuário do último grupo do qual você é subadministrador",
"User does not exist" : "Usuário não existe",
- "Group does not exist" : "O grupo não existe",
+ "Group does not exist" : "Grupo não existe",
"User is not a sub-admin of this group" : "O usuário não é um subadministrador deste grupo",
"Email address not available" : "Endereço de e-mail não disponível",
"Sending email failed" : "Falha ao enviar e-mail",
- "Email confirmation" : "Confirmação de e-mail",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de e-mail %s por favor click no botão abaixo.",
+ "Email confirmation" : "Confirmação do endereço de e-mail",
+ "To enable the email address %s please click the button below." : "Para ativar o endereço de e-mail %s, por favor, clique no botão abaixo.",
"Confirm" : "Confirmar",
"Email was already removed from account and cannot be confirmed anymore." : "O e-mail já foi removido da conta e não pode mais ser confirmado.",
"Could not verify mail because the token is expired." : "Não foi possível verificar o e-mail porque o token expirou.",
@@ -35,7 +36,7 @@
"An unexpected error occurred. Please contact your admin." : "Um erro inesperado ocorreu. Entre em contato com o seu administrador.",
"Email confirmation successful" : "E-mail confirmado com sucesso",
"Provisioning API" : "API de provisionamento",
- "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Este aplicativo permite um conjunto de APIs que sistemas externos podem usar para gerenciar contas, grupos e aplicativos.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Este aplicativo permite um conjunto de APIs que sistemas externos podem usar para criar, editar, excluir e consultar contas\n \t\t atributos, consultar, definir e remover grupos, definir cota e consultar o armazenamento total usado no Nextcloud. Contas de administrador de grupo \n\t\t também pode consultar o Nextcloud e executar as mesmas funções que um administrador para os grupos que gerencia. A API também permite\n \t\tum administrador para consultar aplicativos Nextcloud ativos, informações do aplicativo e ativar ou desativar um aplicativo remotamente.\n \t\tDepois que o aplicativo estiver ativado, as solicitações HTTP podem ser usadas por meio de um cabeçalho Basic Auth para executar qualquer uma das funções\n \t\tlistado acima. Mais informações estão disponíveis na documentação da API de provisionamento, incluindo exemplos de chamadas\n \t\te respostas do servidor."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Este aplicativo habilita um conjunto de APIs que sistemas externos podem usar para gerenciar contas, grupos e aplicativos.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Este aplicativo habilita um conjunto de APIs que sistemas externos podem usar para criar, editar, excluir e consultar atributos\n\t\tde conta, consultar, definir e remover grupos, definir cotas e consultar o armazenamento total usado no Nextcloud. As contas de administrador de grupo\n\t\ttambém podem consultar o Nextcloud e executar as mesmas funções de um administrador para os grupos que gerenciam. A API também permite\n\t\tque um administrador consulte os aplicativos ativos do Nextcloud, as informações do aplicativo e ative ou desative um aplicativo remotamente.\n\t\tDepois que o aplicativo é ativado, as solicitações HTTP podem ser usadas por meio de um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tlistadas acima. Mais informações estão disponíveis na documentação da API de Provisionamento, incluindo exemplos de solicitações\n\t\te respostas do servidor."
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/pt_PT.js b/apps/provisioning_api/l10n/pt_PT.js
deleted file mode 100644
index 88f90905de4..00000000000
--- a/apps/provisioning_api/l10n/pt_PT.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "O usuário conectado deve ser um administrador ou ter autorização para editar esta configuração. ",
- "Email confirmation" : "Verificação de correio eletrónico.",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de correio eletrónico %s por favor pressione o botão abaixo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O endereço já foi removido da conta e não pode mais ser confirmado.",
- "Could not verify mail because the token is expired." : "Não foi possível verificar o endereço porque o marcador expirou.",
- "Could not verify mail because the token is invalid." : "Não foi possível verificar o endereço porque o marcador é inválido.",
- "An unexpected error occurred. Please contact your admin." : "Ocorreu um erro inesperado. Contacte o seu administrador de sistemas.",
- "Email confirmation successful" : "Endereço confirmado com sucesso",
- "Provisioning API" : "API de aprovisionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir utilizadores, grupos e aplicações.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir criar, editar, apagar ou pesquisar atributos de utilizadores,\n\t\tpesquisar, definir e remover grupos, definir cotas e consultar o armazenamento total usado em Nextcloud. Utilizadores administradores de grupos\n\t\ttambém podem pesquisar no Nextcloud e executar as mesmas funções que um administrador para os grupos que gerem. A API também permite\n\t\tque um administrador possa consultar aplicações ativas no Nextcloud, informações das mesmas e para ativar ou desativar uma aplicação remotamente.\n\t\tDepois de ativar uma aplicação, podem-se usar pedidos HTTP com um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tacima indicadas. Mais informações estão disponíveis na documentação da API de aprovisionamento, incluindo pedidos de exemplo\n\t\te respostas do servidor."
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/pt_PT.json b/apps/provisioning_api/l10n/pt_PT.json
deleted file mode 100644
index bbb9fb9754b..00000000000
--- a/apps/provisioning_api/l10n/pt_PT.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "O usuário conectado deve ser um administrador ou ter autorização para editar esta configuração. ",
- "Email confirmation" : "Verificação de correio eletrónico.",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de correio eletrónico %s por favor pressione o botão abaixo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O endereço já foi removido da conta e não pode mais ser confirmado.",
- "Could not verify mail because the token is expired." : "Não foi possível verificar o endereço porque o marcador expirou.",
- "Could not verify mail because the token is invalid." : "Não foi possível verificar o endereço porque o marcador é inválido.",
- "An unexpected error occurred. Please contact your admin." : "Ocorreu um erro inesperado. Contacte o seu administrador de sistemas.",
- "Email confirmation successful" : "Endereço confirmado com sucesso",
- "Provisioning API" : "API de aprovisionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir utilizadores, grupos e aplicações.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir criar, editar, apagar ou pesquisar atributos de utilizadores,\n\t\tpesquisar, definir e remover grupos, definir cotas e consultar o armazenamento total usado em Nextcloud. Utilizadores administradores de grupos\n\t\ttambém podem pesquisar no Nextcloud e executar as mesmas funções que um administrador para os grupos que gerem. A API também permite\n\t\tque um administrador possa consultar aplicações ativas no Nextcloud, informações das mesmas e para ativar ou desativar uma aplicação remotamente.\n\t\tDepois de ativar uma aplicação, podem-se usar pedidos HTTP com um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tacima indicadas. Mais informações estão disponíveis na documentação da API de aprovisionamento, incluindo pedidos de exemplo\n\t\te respostas do servidor."
-},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ro.js b/apps/provisioning_api/l10n/ro.js
deleted file mode 100644
index ee35fa15cd8..00000000000
--- a/apps/provisioning_api/l10n/ro.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Utilizatorul trebuie să fie un administrator sau să fie autorizat să editeze această setare.",
- "User already exists" : "Utilizatorul există deja",
- "Email confirmation" : "Confirmare email",
- "To enable the email address %s please click the button below." : "Pentru a activa adresa de mail %s apăsați butonul de mai jos.",
- "Confirm" : "Confirmă",
- "Email was already removed from account and cannot be confirmed anymore." : "Emailul a fost eliminat din cont și nu mai poate fi reconfirmat.",
- "Could not verify mail because the token is expired." : "Nu se poate verifica emailul deoarece tokenul a exirat.",
- "Could not verify mail because the token is invalid." : "Nu se poate verifica emailul deoarece tokenul este invalid.",
- "An unexpected error occurred. Please contact your admin." : "A apărut o eroare neașteptată. Contactați administratorul.",
- "Email confirmation successful" : "Confirmare email cu succes",
- "Provisioning API" : "API de provizionare",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Această aplicație pornește un set de API-uri ce pot fi folosite de systemele externe pentru a gestiona utilizatori, grupuri și aplicații. ",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Această aplicație permite unui set de API-uri ce pot fi folosite de sustemele externe pentru a creea, edita, șterge și a interoga utilizatori\n\t\tatribute, interogare, setare și eliminare grupuri, setare cote și interogare stocare totală utilizată în Nextcloud. Utilizatorii grupului admin\n\t\tpot de asemenea iteroga Nextcloud și îndeplini aceleași funcții ca și grupul de admini pe care îi și gestionează. API-ul permite \n\t\tunui administrator să caute aplicații active Nextcloud, informații despre aplicații și informații legate de activarea sau dezactivarea unei aplicații de la distanță.\n\t\tOdată ce aplicația este activată, solicitările HTTP pot fi utilizate printr-un antet Basic Auth pentru a efectua oricare dintre funcțiile\n\t\tmenționate mai sus. Mai multe informații sunt prezente în documentatie de provizionare de API, inclusiv exemple de interogări\n\t\tși răspunsul primit de la server."
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/provisioning_api/l10n/ro.json b/apps/provisioning_api/l10n/ro.json
deleted file mode 100644
index eafdab0876b..00000000000
--- a/apps/provisioning_api/l10n/ro.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Utilizatorul trebuie să fie un administrator sau să fie autorizat să editeze această setare.",
- "User already exists" : "Utilizatorul există deja",
- "Email confirmation" : "Confirmare email",
- "To enable the email address %s please click the button below." : "Pentru a activa adresa de mail %s apăsați butonul de mai jos.",
- "Confirm" : "Confirmă",
- "Email was already removed from account and cannot be confirmed anymore." : "Emailul a fost eliminat din cont și nu mai poate fi reconfirmat.",
- "Could not verify mail because the token is expired." : "Nu se poate verifica emailul deoarece tokenul a exirat.",
- "Could not verify mail because the token is invalid." : "Nu se poate verifica emailul deoarece tokenul este invalid.",
- "An unexpected error occurred. Please contact your admin." : "A apărut o eroare neașteptată. Contactați administratorul.",
- "Email confirmation successful" : "Confirmare email cu succes",
- "Provisioning API" : "API de provizionare",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Această aplicație pornește un set de API-uri ce pot fi folosite de systemele externe pentru a gestiona utilizatori, grupuri și aplicații. ",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Această aplicație permite unui set de API-uri ce pot fi folosite de sustemele externe pentru a creea, edita, șterge și a interoga utilizatori\n\t\tatribute, interogare, setare și eliminare grupuri, setare cote și interogare stocare totală utilizată în Nextcloud. Utilizatorii grupului admin\n\t\tpot de asemenea iteroga Nextcloud și îndeplini aceleași funcții ca și grupul de admini pe care îi și gestionează. API-ul permite \n\t\tunui administrator să caute aplicații active Nextcloud, informații despre aplicații și informații legate de activarea sau dezactivarea unei aplicații de la distanță.\n\t\tOdată ce aplicația este activată, solicitările HTTP pot fi utilizate printr-un antet Basic Auth pentru a efectua oricare dintre funcțiile\n\t\tmenționate mai sus. Mai multe informații sunt prezente în documentatie de provizionare de API, inclusiv exemple de interogări\n\t\tși răspunsul primit de la server."
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ru.js b/apps/provisioning_api/l10n/ru.js
index 604a71392e7..1ba160a590b 100644
--- a/apps/provisioning_api/l10n/ru.js
+++ b/apps/provisioning_api/l10n/ru.js
@@ -1,8 +1,34 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.",
+ "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя",
"User already exists" : "Пользователь уже существует",
+ "Group %1$s does not exist" : "Группа %1$s не существует",
+ "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s",
+ "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)",
+ "Sub-admin group does not exist" : "Группа субадминистратора не существует",
+ "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов",
+ "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов",
+ "Invalid password value" : "Некорректное значение пароля",
+ "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.",
+ "Required email address was not provided" : "Не указан обязательный адрес электронной почты",
+ "User creation failed" : "Не удалось создать пользователя",
+ "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение",
+ "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе",
+ "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями",
+ "Invalid language" : "Недопустимый язык",
+ "Invalid locale" : "Недопустимая локаль",
+ "Invalid first day of week" : "Недопустимый первый день недели",
+ "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором",
+ "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором",
+ "User does not exist" : "Пользователь не существует",
+ "Group does not exist" : "Группа не существует",
+ "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы",
+ "Email address not available" : "Адрес электронной почты недоступен",
+ "Sending email failed" : "Не удалось отправить письмо",
"Email confirmation" : "Подтверждение электронной почты",
"To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.",
"Confirm" : "Подтвердить",
@@ -12,7 +38,7 @@ OC.L10N.register(
"An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.",
"Email confirmation successful" : "Электронная почта подтверждена",
"Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/provisioning_api/l10n/ru.json b/apps/provisioning_api/l10n/ru.json
index d2e5e4f12cc..35f64d94497 100644
--- a/apps/provisioning_api/l10n/ru.json
+++ b/apps/provisioning_api/l10n/ru.json
@@ -1,6 +1,32 @@
{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.",
+ "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя",
"User already exists" : "Пользователь уже существует",
+ "Group %1$s does not exist" : "Группа %1$s не существует",
+ "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s",
+ "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)",
+ "Sub-admin group does not exist" : "Группа субадминистратора не существует",
+ "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов",
+ "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов",
+ "Invalid password value" : "Некорректное значение пароля",
+ "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.",
+ "Required email address was not provided" : "Не указан обязательный адрес электронной почты",
+ "User creation failed" : "Не удалось создать пользователя",
+ "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение",
+ "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе",
+ "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями",
+ "Invalid language" : "Недопустимый язык",
+ "Invalid locale" : "Недопустимая локаль",
+ "Invalid first day of week" : "Недопустимый первый день недели",
+ "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором",
+ "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором",
+ "User does not exist" : "Пользователь не существует",
+ "Group does not exist" : "Группа не существует",
+ "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы",
+ "Email address not available" : "Адрес электронной почты недоступен",
+ "Sending email failed" : "Не удалось отправить письмо",
"Email confirmation" : "Подтверждение электронной почты",
"To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.",
"Confirm" : "Подтвердить",
@@ -10,7 +36,7 @@
"An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.",
"Email confirmation successful" : "Электронная почта подтверждена",
"Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/sc.js b/apps/provisioning_api/l10n/sc.js
deleted file mode 100644
index e5331408419..00000000000
--- a/apps/provisioning_api/l10n/sc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Provisioning API" : "Frunidura API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podint impreare pro organizare utentes, grupos e aplicatziones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podent impreare pro creare, modificare, cantzellare e chircare\n\t\tatributos de s'utèntzia, chircare, impostare e eliminare grupos, impostare su lìmite e chircare totu su chi est allogadu in Nextcloud. Is chi amministrant unu grupu\n\t\tpodint puru pregontare a Nextcloud e acumprire is pròpias funtziones de un'amministradore pro su grupu chi amministrant. S'API ativat\n\t\tpermitit puru a un'amministradore de pedire aplicatziones Nextcloud ativas, informatziones de is aplicatziones e de ativare o disativare dae tesu. \n\t\t Cando s'ativat s'aplicatzione, is preguntas HTTP si podent impreare cun una intestatzione de autenticatzione bàsica pro acumprire cale si siat funtzione in s'elencu. \n\t\t Àteras informatziones a disponimentu in sa documentatzione de Frunidura API, inclùdidos esèmpios de mutidas\n\t\t e rispostas de su serbidore."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/sc.json b/apps/provisioning_api/l10n/sc.json
deleted file mode 100644
index 9c411e484e7..00000000000
--- a/apps/provisioning_api/l10n/sc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Provisioning API" : "Frunidura API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podint impreare pro organizare utentes, grupos e aplicatziones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podent impreare pro creare, modificare, cantzellare e chircare\n\t\tatributos de s'utèntzia, chircare, impostare e eliminare grupos, impostare su lìmite e chircare totu su chi est allogadu in Nextcloud. Is chi amministrant unu grupu\n\t\tpodint puru pregontare a Nextcloud e acumprire is pròpias funtziones de un'amministradore pro su grupu chi amministrant. S'API ativat\n\t\tpermitit puru a un'amministradore de pedire aplicatziones Nextcloud ativas, informatziones de is aplicatziones e de ativare o disativare dae tesu. \n\t\t Cando s'ativat s'aplicatzione, is preguntas HTTP si podent impreare cun una intestatzione de autenticatzione bàsica pro acumprire cale si siat funtzione in s'elencu. \n\t\t Àteras informatziones a disponimentu in sa documentatzione de Frunidura API, inclùdidos esèmpios de mutidas\n\t\t e rispostas de su serbidore."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/sk.js b/apps/provisioning_api/l10n/sk.js
index e8d9251ab3f..a6c5fda49cd 100644
--- a/apps/provisioning_api/l10n/sk.js
+++ b/apps/provisioning_api/l10n/sk.js
@@ -1,12 +1,28 @@
OC.L10N.register(
"provisioning_api",
{
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Prihlásený používateľ musí byť správcom, alebo musí mať špeciálne právo na uprávu k tohoto nastavenia.",
+ "Could not create non-existing user ID" : "Nie je možné vytvoriť neexistujúce ID užívateľa",
"User already exists" : "Používateľ už existuje",
+ "Group %1$s does not exist" : "Skupina %1$s neexistuje",
+ "Insufficient privileges for group %1$s" : "Nedostatočné práva pre skupinu %1$s",
+ "No group specified (required for sub-admins)" : "Nebola zadaná žiadna skupina (potrebné pre sub-administrátorov)",
+ "Sub-admin group does not exist" : "Pod-administrátorská skupina neexistuje",
+ "Cannot create sub-admins for admin group" : "Nemôžem vytvoriť pod-administrátorskú skupinu pre administrátorskú skupinu",
+ "No permissions to promote sub-admins" : "Na povýšenie pod-administrátorov nie sú práva",
+ "Invalid password value" : "Neplatná hodnota hesla",
+ "An email address is required, to send a password link to the user." : "E-mail adresa je vyžadovaná pre poslanie odkazu uživateľovi pre reset hesla.",
+ "Required email address was not provided" : "Nebola zadaná požadovaná e-mailová adresa",
+ "Invalid quota value: %1$s" : "Neplatná hodnota kvóty: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Neplatná hodnota pre kvótu %1$s je väčšia ako maximálna kvóta",
+ "Unlimited quota is forbidden on this instance" : "Kvóta bez limitu nie je na tejto inštancii povolená",
+ "Setting the password is not supported by the users backend" : "Nastavenie hesla nie je pre podporované uživateľským backenom",
"Invalid language" : "Neplatný jazyk",
"Invalid locale" : "Neplatné miestne nastavenie",
"Invalid first day of week" : "Neplatný prvý deň týždňa",
"Cannot remove yourself from the admin group" : "Nemôžete odstrániť samého seba zo skupiny administrátorov",
"Cannot remove yourself from this group as you are a sub-admin" : "Nemôžete odstrániť samého seba z tejto skupiny, pretože ste sub-administrátor",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie je možné odstrániť používateľa z poslednej skupiny, ktorej je pod-správcom",
"User does not exist" : "Užívateľ neexistuje",
"Group does not exist" : "Skupina neexistuje",
"User is not a sub-admin of this group" : "Užívateľ nie je sub-administrátor tejto skupiny",
diff --git a/apps/provisioning_api/l10n/sk.json b/apps/provisioning_api/l10n/sk.json
index a5374adbad0..81d6561a079 100644
--- a/apps/provisioning_api/l10n/sk.json
+++ b/apps/provisioning_api/l10n/sk.json
@@ -1,10 +1,26 @@
{ "translations": {
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Prihlásený používateľ musí byť správcom, alebo musí mať špeciálne právo na uprávu k tohoto nastavenia.",
+ "Could not create non-existing user ID" : "Nie je možné vytvoriť neexistujúce ID užívateľa",
"User already exists" : "Používateľ už existuje",
+ "Group %1$s does not exist" : "Skupina %1$s neexistuje",
+ "Insufficient privileges for group %1$s" : "Nedostatočné práva pre skupinu %1$s",
+ "No group specified (required for sub-admins)" : "Nebola zadaná žiadna skupina (potrebné pre sub-administrátorov)",
+ "Sub-admin group does not exist" : "Pod-administrátorská skupina neexistuje",
+ "Cannot create sub-admins for admin group" : "Nemôžem vytvoriť pod-administrátorskú skupinu pre administrátorskú skupinu",
+ "No permissions to promote sub-admins" : "Na povýšenie pod-administrátorov nie sú práva",
+ "Invalid password value" : "Neplatná hodnota hesla",
+ "An email address is required, to send a password link to the user." : "E-mail adresa je vyžadovaná pre poslanie odkazu uživateľovi pre reset hesla.",
+ "Required email address was not provided" : "Nebola zadaná požadovaná e-mailová adresa",
+ "Invalid quota value: %1$s" : "Neplatná hodnota kvóty: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Neplatná hodnota pre kvótu %1$s je väčšia ako maximálna kvóta",
+ "Unlimited quota is forbidden on this instance" : "Kvóta bez limitu nie je na tejto inštancii povolená",
+ "Setting the password is not supported by the users backend" : "Nastavenie hesla nie je pre podporované uživateľským backenom",
"Invalid language" : "Neplatný jazyk",
"Invalid locale" : "Neplatné miestne nastavenie",
"Invalid first day of week" : "Neplatný prvý deň týždňa",
"Cannot remove yourself from the admin group" : "Nemôžete odstrániť samého seba zo skupiny administrátorov",
"Cannot remove yourself from this group as you are a sub-admin" : "Nemôžete odstrániť samého seba z tejto skupiny, pretože ste sub-administrátor",
+ "Not viable to remove user from the last group you are sub-admin of" : "Nie je možné odstrániť používateľa z poslednej skupiny, ktorej je pod-správcom",
"User does not exist" : "Užívateľ neexistuje",
"Group does not exist" : "Skupina neexistuje",
"User is not a sub-admin of this group" : "Užívateľ nie je sub-administrátor tejto skupiny",
diff --git a/apps/provisioning_api/l10n/sl.js b/apps/provisioning_api/l10n/sl.js
deleted file mode 100644
index 96bf5c7e3b2..00000000000
--- a/apps/provisioning_api/l10n/sl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "User already exists" : "Uporabnik že obstaja",
- "Email confirmation" : "Potrditev elektronskega naslova",
- "Confirm" : "Potrdi",
- "Email confirmation successful" : "Potrditev elektronskega naslov je uspela.",
- "Provisioning API" : "Vmesnik API za povezovanje",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Program omogoča nastavitev vmesnikov API, ki jih zunanji sistemi lahko uporabijo za upravljanje uporabnikov, skupin in programov.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Program omogoča uporabo različnih vmesnikov, ki jih lahko zunanji sistemi uporabijo za ustvarjanje, urejanje, upravljanje in preverjanje\n\t\tatributov uporabnikov, poizvedb, upravljanje skupin, količinskih omejitev in nadzor na skupno uporabljenim prostorom v okolju. Skrbniki skupin\n\t\tlahko prav tako izvajajo dejavnosti za upravljanje skupin znotraj okolja. Vmesnik API omogoča\n\t\tskrbnikom pregled nad dejavnimi programi, podrobnostmi in upravljanje tudi na daljavo.\n\t\tKo je program enkrat zagnan, je mogoče pošiljati zahteve za izvajanje osnovnega postopka overjanja.\n\t\tVeč podrobnosti je na voljo v dokumentaciji za uporabo vmesnika, vključno s\n\t\tprimeri sklicev in odzivov strežnika."
-},
-"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/provisioning_api/l10n/sl.json b/apps/provisioning_api/l10n/sl.json
deleted file mode 100644
index 44572066c09..00000000000
--- a/apps/provisioning_api/l10n/sl.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "User already exists" : "Uporabnik že obstaja",
- "Email confirmation" : "Potrditev elektronskega naslova",
- "Confirm" : "Potrdi",
- "Email confirmation successful" : "Potrditev elektronskega naslov je uspela.",
- "Provisioning API" : "Vmesnik API za povezovanje",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Program omogoča nastavitev vmesnikov API, ki jih zunanji sistemi lahko uporabijo za upravljanje uporabnikov, skupin in programov.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Program omogoča uporabo različnih vmesnikov, ki jih lahko zunanji sistemi uporabijo za ustvarjanje, urejanje, upravljanje in preverjanje\n\t\tatributov uporabnikov, poizvedb, upravljanje skupin, količinskih omejitev in nadzor na skupno uporabljenim prostorom v okolju. Skrbniki skupin\n\t\tlahko prav tako izvajajo dejavnosti za upravljanje skupin znotraj okolja. Vmesnik API omogoča\n\t\tskrbnikom pregled nad dejavnimi programi, podrobnostmi in upravljanje tudi na daljavo.\n\t\tKo je program enkrat zagnan, je mogoče pošiljati zahteve za izvajanje osnovnega postopka overjanja.\n\t\tVeč podrobnosti je na voljo v dokumentaciji za uporabo vmesnika, vključno s\n\t\tprimeri sklicev in odzivov strežnika."
-},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/sv.js b/apps/provisioning_api/l10n/sv.js
index 776f32a03ea..021f3bb02c0 100644
--- a/apps/provisioning_api/l10n/sv.js
+++ b/apps/provisioning_api/l10n/sv.js
@@ -1,8 +1,20 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in user must be an administrator or have authorization to edit this setting." : "Inloggad användare måste vara en administratör eller ha auktorisering för att ändra denna inställning.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Inloggat konto måste vara en administratör eller ha behörighet att ändra denna inställning.",
+ "Could not create non-existing user ID" : "Kunde inte skapa ej existerande användar-ID",
"User already exists" : "Användaren finns redan",
+ "Group %1$s does not exist" : "Grupp %1$s existerar inte",
+ "Insufficient privileges for group %1$s" : "Otillräckliga privilegier för grupp %1$s",
+ "No group specified (required for sub-admins)" : "Ingen grupp specificerad (krävs för underadministratörer)",
+ "Invalid password value" : "Ogiltigt lösenords-värde",
+ "Unlimited quota is forbidden on this instance" : "Obegränsad kvot är inte tillåtet på denna instans",
+ "Invalid language" : "Ogiltigt språk",
+ "Invalid locale" : "Ogiltigt språkområde",
+ "User does not exist" : "Användare existerar inte",
+ "Group does not exist" : "Grupp existerar inte",
+ "Email address not available" : "E-postadress är inte tillgänglig",
+ "Sending email failed" : "Utskick av e-postmeddelande misslyckades",
"Email confirmation" : "E-postverifikation",
"To enable the email address %s please click the button below." : "För att aktivera e-postadressen %s vänligen klicka på knappen nedanför.",
"Confirm" : "Bekräfta",
@@ -11,8 +23,6 @@ OC.L10N.register(
"Could not verify mail because the token is invalid." : "Kunde inte verifiera e-postadressen eftersom verifikationskoden är inkorrekt.",
"An unexpected error occurred. Please contact your admin." : "Ett oväntat fel har uppkommit. Vänligen kontakta din administratör.",
"Email confirmation successful" : "E-postbekräftelsen lyckades",
- "Provisioning API" : "Distribuerings API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Den här appen aktiverar API:s som externa system kan använda för att hantera användare, grupper och andra appar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Den här appen aktiverar ett antal API -ändpunkter som externa system kan använda för att skapa, ändra, ta bort och söka användarattribut\n\t\tsöka, konfigurera och ta bort grupper, konfigurera användarkvoter och se den använda lagringen i Nextcloud. Gruppadministratörer kan också utföra samma funktioner som en server-administratör för den grupp de administrerar. API:n tillåter även administratörer att söka efter aktiva appar, appinfo samt aktivera/inaktivera dem på avstånd.\n\t\tNär appen är aktiverad kan HTTP-anrop användas genom en Basic Aunth header för att genomföra samtliga av de ovanstående funktionerna. Mer information finns tillgänglig i dokumentationen, där även exempel på anrop och serversvar återfinns."
+ "Provisioning API" : "Distribuerings API"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/sv.json b/apps/provisioning_api/l10n/sv.json
index aadfe9b2802..2485c5d8966 100644
--- a/apps/provisioning_api/l10n/sv.json
+++ b/apps/provisioning_api/l10n/sv.json
@@ -1,6 +1,18 @@
{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Inloggad användare måste vara en administratör eller ha auktorisering för att ändra denna inställning.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Inloggat konto måste vara en administratör eller ha behörighet att ändra denna inställning.",
+ "Could not create non-existing user ID" : "Kunde inte skapa ej existerande användar-ID",
"User already exists" : "Användaren finns redan",
+ "Group %1$s does not exist" : "Grupp %1$s existerar inte",
+ "Insufficient privileges for group %1$s" : "Otillräckliga privilegier för grupp %1$s",
+ "No group specified (required for sub-admins)" : "Ingen grupp specificerad (krävs för underadministratörer)",
+ "Invalid password value" : "Ogiltigt lösenords-värde",
+ "Unlimited quota is forbidden on this instance" : "Obegränsad kvot är inte tillåtet på denna instans",
+ "Invalid language" : "Ogiltigt språk",
+ "Invalid locale" : "Ogiltigt språkområde",
+ "User does not exist" : "Användare existerar inte",
+ "Group does not exist" : "Grupp existerar inte",
+ "Email address not available" : "E-postadress är inte tillgänglig",
+ "Sending email failed" : "Utskick av e-postmeddelande misslyckades",
"Email confirmation" : "E-postverifikation",
"To enable the email address %s please click the button below." : "För att aktivera e-postadressen %s vänligen klicka på knappen nedanför.",
"Confirm" : "Bekräfta",
@@ -9,8 +21,6 @@
"Could not verify mail because the token is invalid." : "Kunde inte verifiera e-postadressen eftersom verifikationskoden är inkorrekt.",
"An unexpected error occurred. Please contact your admin." : "Ett oväntat fel har uppkommit. Vänligen kontakta din administratör.",
"Email confirmation successful" : "E-postbekräftelsen lyckades",
- "Provisioning API" : "Distribuerings API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Den här appen aktiverar API:s som externa system kan använda för att hantera användare, grupper och andra appar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Den här appen aktiverar ett antal API -ändpunkter som externa system kan använda för att skapa, ändra, ta bort och söka användarattribut\n\t\tsöka, konfigurera och ta bort grupper, konfigurera användarkvoter och se den använda lagringen i Nextcloud. Gruppadministratörer kan också utföra samma funktioner som en server-administratör för den grupp de administrerar. API:n tillåter även administratörer att söka efter aktiva appar, appinfo samt aktivera/inaktivera dem på avstånd.\n\t\tNär appen är aktiverad kan HTTP-anrop användas genom en Basic Aunth header för att genomföra samtliga av de ovanstående funktionerna. Mer information finns tillgänglig i dokumentationen, där även exempel på anrop och serversvar återfinns."
+ "Provisioning API" : "Distribuerings API"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/tr.js b/apps/provisioning_api/l10n/tr.js
index a8aeb46e790..db6d11429bb 100644
--- a/apps/provisioning_api/l10n/tr.js
+++ b/apps/provisioning_api/l10n/tr.js
@@ -38,6 +38,6 @@ OC.L10N.register(
"Email confirmation successful" : "E-posta onaylandı",
"Provisioning API" : "Karşılama API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tyapılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/provisioning_api/l10n/tr.json b/apps/provisioning_api/l10n/tr.json
index cb045906426..3e4a591bb5f 100644
--- a/apps/provisioning_api/l10n/tr.json
+++ b/apps/provisioning_api/l10n/tr.json
@@ -36,6 +36,6 @@
"Email confirmation successful" : "E-posta onaylandı",
"Provisioning API" : "Karşılama API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tyapılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/uk.js b/apps/provisioning_api/l10n/uk.js
index ca720ba4d75..11c218eea89 100644
--- a/apps/provisioning_api/l10n/uk.js
+++ b/apps/provisioning_api/l10n/uk.js
@@ -11,13 +11,16 @@ OC.L10N.register(
"Cannot create sub-admins for admin group" : "Неможливо створити другорядних адміністраторів для групи адміністраторів",
"No permissions to promote sub-admins" : "Відсутні дозволи для збільшення повноважень другорядних адміністраторів",
"Invalid password value" : "Недійсне значення паролю",
+ "An email address is required, to send a password link to the user." : "Для надсилання посилання на пароль користувачеві необхідна адреса електронної пошти.",
"Required email address was not provided" : "Не зазначено обов'язкової ел. адреси",
+ "User creation failed" : "Не вдалося створити користувача",
"Invalid quota value: %1$s" : "Недійсне значення квоти: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Недійсне значення квоти: %1$s перебільшує максимальну квоту",
"Unlimited quota is forbidden on this instance" : "Необмежену квоту заборонено на цьому примірнику",
"Setting the password is not supported by the users backend" : "Встановлення паролю не підтримується бекендом користувача",
"Invalid language" : "Недійсний вибір мови",
"Invalid locale" : "Недійсний вибір локалі",
+ "Invalid first day of week" : "Недійсний перший день тижня",
"Cannot remove yourself from the admin group" : "Неможливо вилучити себе із групи адміністраторів",
"Cannot remove yourself from this group as you are a sub-admin" : "Неможливо вилучити себе із цієї групи, оскільки ви є другорядним адміністратором",
"Not viable to remove user from the last group you are sub-admin of" : "Неможливо вилучити користувача з останньої групи, в якій ви є другорядним адміністратором",
@@ -35,6 +38,7 @@ OC.L10N.register(
"An unexpected error occurred. Please contact your admin." : "Сталася неочікувана помилка. Будь ласка, зверніться до свого адміністратора.",
"Email confirmation successful" : "Підтвердження електронною поштою успішно",
"Provisioning API" : "API надання",
- "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Цей застосунок надає доступ до набору API, які можуть використовувати стоонні системи для керування обліковими записами, групами та застосунками."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Цей застосунок надає доступ до набору API, які можуть використовувати стоонні системи для керування обліковими записами, групами та застосунками.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Цей застосунок підтримує набір API, які зовнішні системи можуть використовувати для створення, редагування, видалення та запитів користувача атрибути, запит, встановлення та видалення груп, встановлення квоти та запит загального обсягу пам’яті, що використовується в Nextcloud. Адміністратори групи користувачів також можуть надсилати запити Nextcloud і виконувати ті самі функції, що й адміністратори, для груп, якими вони керують. API також дозволяє адміністраторам надсилати запити до активних застосунків Nextcloud, отримувати інформацію про застосунок та віддалено вмикати чи вимикати застосунок. Після увімкнення застосунку HTTP-запити можна використовувати через заголовок Basic Auth для виконання будь-яких функцій, які перераховано вище. Додаткову інформацію можна знайти в документації Provisioning API включно з прикладами викликів та відповідей сервера."
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/provisioning_api/l10n/uk.json b/apps/provisioning_api/l10n/uk.json
index d3ecd2c1336..09884faa2e7 100644
--- a/apps/provisioning_api/l10n/uk.json
+++ b/apps/provisioning_api/l10n/uk.json
@@ -9,13 +9,16 @@
"Cannot create sub-admins for admin group" : "Неможливо створити другорядних адміністраторів для групи адміністраторів",
"No permissions to promote sub-admins" : "Відсутні дозволи для збільшення повноважень другорядних адміністраторів",
"Invalid password value" : "Недійсне значення паролю",
+ "An email address is required, to send a password link to the user." : "Для надсилання посилання на пароль користувачеві необхідна адреса електронної пошти.",
"Required email address was not provided" : "Не зазначено обов'язкової ел. адреси",
+ "User creation failed" : "Не вдалося створити користувача",
"Invalid quota value: %1$s" : "Недійсне значення квоти: %1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "Недійсне значення квоти: %1$s перебільшує максимальну квоту",
"Unlimited quota is forbidden on this instance" : "Необмежену квоту заборонено на цьому примірнику",
"Setting the password is not supported by the users backend" : "Встановлення паролю не підтримується бекендом користувача",
"Invalid language" : "Недійсний вибір мови",
"Invalid locale" : "Недійсний вибір локалі",
+ "Invalid first day of week" : "Недійсний перший день тижня",
"Cannot remove yourself from the admin group" : "Неможливо вилучити себе із групи адміністраторів",
"Cannot remove yourself from this group as you are a sub-admin" : "Неможливо вилучити себе із цієї групи, оскільки ви є другорядним адміністратором",
"Not viable to remove user from the last group you are sub-admin of" : "Неможливо вилучити користувача з останньої групи, в якій ви є другорядним адміністратором",
@@ -33,6 +36,7 @@
"An unexpected error occurred. Please contact your admin." : "Сталася неочікувана помилка. Будь ласка, зверніться до свого адміністратора.",
"Email confirmation successful" : "Підтвердження електронною поштою успішно",
"Provisioning API" : "API надання",
- "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Цей застосунок надає доступ до набору API, які можуть використовувати стоонні системи для керування обліковими записами, групами та застосунками."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Цей застосунок надає доступ до набору API, які можуть використовувати стоонні системи для керування обліковими записами, групами та застосунками.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Цей застосунок підтримує набір API, які зовнішні системи можуть використовувати для створення, редагування, видалення та запитів користувача атрибути, запит, встановлення та видалення груп, встановлення квоти та запит загального обсягу пам’яті, що використовується в Nextcloud. Адміністратори групи користувачів також можуть надсилати запити Nextcloud і виконувати ті самі функції, що й адміністратори, для груп, якими вони керують. API також дозволяє адміністраторам надсилати запити до активних застосунків Nextcloud, отримувати інформацію про застосунок та віддалено вмикати чи вимикати застосунок. Після увімкнення застосунку HTTP-запити можна використовувати через заголовок Basic Auth для виконання будь-яких функцій, які перераховано вище. Додаткову інформацію можна знайти в документації Provisioning API включно з прикладами викликів та відповідей сервера."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/zh_CN.js b/apps/provisioning_api/l10n/zh_CN.js
index 1405b6d791e..2bb24cb01ae 100644
--- a/apps/provisioning_api/l10n/zh_CN.js
+++ b/apps/provisioning_api/l10n/zh_CN.js
@@ -1,8 +1,34 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in user must be an administrator or have authorization to edit this setting." : "已登录用户必须是一名管理员或拥有编辑此设置的授权",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "登录的账号必须是管理员或有权编辑此设置。",
+ "Could not create non-existing user ID" : "无法创建不存在的用户 ID",
"User already exists" : "用户已存在",
+ "Group %1$s does not exist" : "组 %1$s 不存在",
+ "Insufficient privileges for group %1$s" : "组 %1$s 的权限不足",
+ "No group specified (required for sub-admins)" : "未指定组(子管理员需要)",
+ "Sub-admin group does not exist" : "子管理员组不存在",
+ "Cannot create sub-admins for admin group" : "无法为管理员组创建子管理员",
+ "No permissions to promote sub-admins" : "没有提升子管理员的权限",
+ "Invalid password value" : "密码值无效",
+ "An email address is required, to send a password link to the user." : "需要电子邮件地址,以将密码链接发送给用户。",
+ "Required email address was not provided" : "未提供所需的电子邮件地址",
+ "User creation failed" : "用户创建失败",
+ "Invalid quota value: %1$s" : "配额值无效:%1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "配额值无效。%1$s 超过了最大配额",
+ "Unlimited quota is forbidden on this instance" : "此实例上禁止无限配额",
+ "Setting the password is not supported by the users backend" : "用户后端不支持设置密码",
+ "Invalid language" : "语言无效",
+ "Invalid locale" : "区域设置无效",
+ "Invalid first day of week" : "一周的第一天无效",
+ "Cannot remove yourself from the admin group" : "无法将自己从管理员组中移除",
+ "Cannot remove yourself from this group as you are a sub-admin" : "无法将自己从此组中移除,因为您是子管理员",
+ "Not viable to remove user from the last group you are sub-admin of" : "无法从您作为子管理员的最后一个组中移除用户",
+ "User does not exist" : "用户不存在",
+ "Group does not exist" : "组不存在",
+ "User is not a sub-admin of this group" : "用户不是此组的子管理员",
+ "Email address not available" : "电子邮件地址不可用",
+ "Sending email failed" : "发送电子邮件失败",
"Email confirmation" : "电子邮件确认",
"To enable the email address %s please click the button below." : "要启用电子邮件地址 %s 请点击下方按钮。",
"Confirm" : "确认",
@@ -11,8 +37,8 @@ OC.L10N.register(
"Could not verify mail because the token is invalid." : "无法验证邮件,因为令牌无效",
"An unexpected error occurred. Please contact your admin." : "发生意外错误。请联系系统管理员",
"Email confirmation successful" : "电子邮件确认成功",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "此应用程序启用了一组 API ,外部系统可以使用这些 API 来管理用户、组和应用程序。",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "此应用程序启用了一组 API,外部系统可以使用它们来创建、编辑、删除和查询用户\n\t\t属性、查询、设置和删除组,设置配额以及查询 Nextcloud 中使用的总存储量。组管理员用户\n\t\t还可以查询 Nextcloud,并为其管理的组执行与管理员相同的功能。该 API 还支持\n\t\t管理员查询活动的 Nextcloud 应用程序、应用程序信息,以及远程启用或禁用应用程序。\n\t\t启用该应用后,可以通过基本身份验证标头使用 HTTP 请求执行\n以上所列任何功能。Provisioning API 文档中提供了更多信息,包括示例调用\n\t\t和服务器响应。"
+ "Provisioning API" : "供应 API",
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "此应用程序启用了一组 API,外部系统可以使用这些 API 来管理账号、组和应用。",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "此应用程序启用了一组 API,外部系统可以使用这些 API 创建、编辑、删除和查询账号\n\t\t属性,查询、设置和移除组,设置配额和查询 Nextcloud 中使用的总存储量。组管理员账号\n\t\t还可以查询 Nextcloud,并为其管理的组执行与管理员相同的功能。API 还允许\n\t\t管理员查询活动的 Nextcloud 应用程序、应用程序信息,并远程启用或禁用应用程序。\n\t\t启用了应用程序后,可以通过基本身份验证标头使用 HTTP 请求来执行\n\t\t上方列出的任何功能。更多信息,可在供应 API 文档中获得,包括示例调用\n\t\t和服务器响应。"
},
"nplurals=1; plural=0;");
diff --git a/apps/provisioning_api/l10n/zh_CN.json b/apps/provisioning_api/l10n/zh_CN.json
index e0d94597806..03efc200979 100644
--- a/apps/provisioning_api/l10n/zh_CN.json
+++ b/apps/provisioning_api/l10n/zh_CN.json
@@ -1,6 +1,32 @@
{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "已登录用户必须是一名管理员或拥有编辑此设置的授权",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "登录的账号必须是管理员或有权编辑此设置。",
+ "Could not create non-existing user ID" : "无法创建不存在的用户 ID",
"User already exists" : "用户已存在",
+ "Group %1$s does not exist" : "组 %1$s 不存在",
+ "Insufficient privileges for group %1$s" : "组 %1$s 的权限不足",
+ "No group specified (required for sub-admins)" : "未指定组(子管理员需要)",
+ "Sub-admin group does not exist" : "子管理员组不存在",
+ "Cannot create sub-admins for admin group" : "无法为管理员组创建子管理员",
+ "No permissions to promote sub-admins" : "没有提升子管理员的权限",
+ "Invalid password value" : "密码值无效",
+ "An email address is required, to send a password link to the user." : "需要电子邮件地址,以将密码链接发送给用户。",
+ "Required email address was not provided" : "未提供所需的电子邮件地址",
+ "User creation failed" : "用户创建失败",
+ "Invalid quota value: %1$s" : "配额值无效:%1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "配额值无效。%1$s 超过了最大配额",
+ "Unlimited quota is forbidden on this instance" : "此实例上禁止无限配额",
+ "Setting the password is not supported by the users backend" : "用户后端不支持设置密码",
+ "Invalid language" : "语言无效",
+ "Invalid locale" : "区域设置无效",
+ "Invalid first day of week" : "一周的第一天无效",
+ "Cannot remove yourself from the admin group" : "无法将自己从管理员组中移除",
+ "Cannot remove yourself from this group as you are a sub-admin" : "无法将自己从此组中移除,因为您是子管理员",
+ "Not viable to remove user from the last group you are sub-admin of" : "无法从您作为子管理员的最后一个组中移除用户",
+ "User does not exist" : "用户不存在",
+ "Group does not exist" : "组不存在",
+ "User is not a sub-admin of this group" : "用户不是此组的子管理员",
+ "Email address not available" : "电子邮件地址不可用",
+ "Sending email failed" : "发送电子邮件失败",
"Email confirmation" : "电子邮件确认",
"To enable the email address %s please click the button below." : "要启用电子邮件地址 %s 请点击下方按钮。",
"Confirm" : "确认",
@@ -9,8 +35,8 @@
"Could not verify mail because the token is invalid." : "无法验证邮件,因为令牌无效",
"An unexpected error occurred. Please contact your admin." : "发生意外错误。请联系系统管理员",
"Email confirmation successful" : "电子邮件确认成功",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "此应用程序启用了一组 API ,外部系统可以使用这些 API 来管理用户、组和应用程序。",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "此应用程序启用了一组 API,外部系统可以使用它们来创建、编辑、删除和查询用户\n\t\t属性、查询、设置和删除组,设置配额以及查询 Nextcloud 中使用的总存储量。组管理员用户\n\t\t还可以查询 Nextcloud,并为其管理的组执行与管理员相同的功能。该 API 还支持\n\t\t管理员查询活动的 Nextcloud 应用程序、应用程序信息,以及远程启用或禁用应用程序。\n\t\t启用该应用后,可以通过基本身份验证标头使用 HTTP 请求执行\n以上所列任何功能。Provisioning API 文档中提供了更多信息,包括示例调用\n\t\t和服务器响应。"
+ "Provisioning API" : "供应 API",
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "此应用程序启用了一组 API,外部系统可以使用这些 API 来管理账号、组和应用。",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "此应用程序启用了一组 API,外部系统可以使用这些 API 创建、编辑、删除和查询账号\n\t\t属性,查询、设置和移除组,设置配额和查询 Nextcloud 中使用的总存储量。组管理员账号\n\t\t还可以查询 Nextcloud,并为其管理的组执行与管理员相同的功能。API 还允许\n\t\t管理员查询活动的 Nextcloud 应用程序、应用程序信息,并远程启用或禁用应用程序。\n\t\t启用了应用程序后,可以通过基本身份验证标头使用 HTTP 请求来执行\n\t\t上方列出的任何功能。更多信息,可在供应 API 文档中获得,包括示例调用\n\t\t和服务器响应。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/zh_HK.js b/apps/provisioning_api/l10n/zh_HK.js
index a5b009391a8..50e0bd73c4a 100644
--- a/apps/provisioning_api/l10n/zh_HK.js
+++ b/apps/provisioning_api/l10n/zh_HK.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "無效的密碼值",
"An email address is required, to send a password link to the user." : "需要提供電郵地址,以便向用戶發送密碼鏈接。",
"Required email address was not provided" : "未提供必要的電郵地址",
+ "User creation failed" : "用戶建立失敗",
"Invalid quota value: %1$s" : "無效的空間限額值:%1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無效的空間限額值。%1$s 超過了最大空間限額",
"Unlimited quota is forbidden on this instance" : "此實例禁止無限空間限額",
diff --git a/apps/provisioning_api/l10n/zh_HK.json b/apps/provisioning_api/l10n/zh_HK.json
index 39fdcf578fa..3ad90d8b398 100644
--- a/apps/provisioning_api/l10n/zh_HK.json
+++ b/apps/provisioning_api/l10n/zh_HK.json
@@ -11,6 +11,7 @@
"Invalid password value" : "無效的密碼值",
"An email address is required, to send a password link to the user." : "需要提供電郵地址,以便向用戶發送密碼鏈接。",
"Required email address was not provided" : "未提供必要的電郵地址",
+ "User creation failed" : "用戶建立失敗",
"Invalid quota value: %1$s" : "無效的空間限額值:%1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無效的空間限額值。%1$s 超過了最大空間限額",
"Unlimited quota is forbidden on this instance" : "此實例禁止無限空間限額",
diff --git a/apps/provisioning_api/l10n/zh_TW.js b/apps/provisioning_api/l10n/zh_TW.js
index 038c95a537d..716e6e0ee44 100644
--- a/apps/provisioning_api/l10n/zh_TW.js
+++ b/apps/provisioning_api/l10n/zh_TW.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Invalid password value" : "無效的密碼值",
"An email address is required, to send a password link to the user." : "電子郵件地址必填,用來寄送密碼連結給使用者。",
"Required email address was not provided" : "未提供必要的電子郵件地址",
+ "User creation failed" : "使用者建立失敗",
"Invalid quota value: %1$s" : "無效的空間限額值:%1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無效的空間限額值。%1$s 超過了最大空間限額",
"Unlimited quota is forbidden on this instance" : "此站台禁止無限空間限額",
diff --git a/apps/provisioning_api/l10n/zh_TW.json b/apps/provisioning_api/l10n/zh_TW.json
index 91cffa5ce90..e8b80a3f1d2 100644
--- a/apps/provisioning_api/l10n/zh_TW.json
+++ b/apps/provisioning_api/l10n/zh_TW.json
@@ -11,6 +11,7 @@
"Invalid password value" : "無效的密碼值",
"An email address is required, to send a password link to the user." : "電子郵件地址必填,用來寄送密碼連結給使用者。",
"Required email address was not provided" : "未提供必要的電子郵件地址",
+ "User creation failed" : "使用者建立失敗",
"Invalid quota value: %1$s" : "無效的空間限額值:%1$s",
"Invalid quota value. %1$s is exceeding the maximum quota" : "無效的空間限額值。%1$s 超過了最大空間限額",
"Unlimited quota is forbidden on this instance" : "此站台禁止無限空間限額",
diff --git a/apps/provisioning_api/lib/AppInfo/Application.php b/apps/provisioning_api/lib/AppInfo/Application.php
index b13f2b0eba5..57de9dad416 100644
--- a/apps/provisioning_api/lib/AppInfo/Application.php
+++ b/apps/provisioning_api/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/provisioning_api/lib/Capabilities.php b/apps/provisioning_api/lib/Capabilities.php
index 1c2a7b867fa..5becf6f611f 100644
--- a/apps/provisioning_api/lib/Capabilities.php
+++ b/apps/provisioning_api/lib/Capabilities.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,6 +9,7 @@ namespace OCA\Provisioning_API;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCP\App\IAppManager;
use OCP\Capabilities\ICapability;
+use OCP\Server;
class Capabilities implements ICapability {
@@ -36,7 +38,7 @@ class Capabilities implements ICapability {
$federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing');
if ($federatedFileSharingEnabled) {
/** @var FederatedShareProvider $shareProvider */
- $shareProvider = \OC::$server->query(FederatedShareProvider::class);
+ $shareProvider = Server::get(FederatedShareProvider::class);
$publishedScopeEnabled = $shareProvider->isLookupServerUploadEnabled();
}
diff --git a/apps/provisioning_api/lib/Controller/AUserDataOCSController.php b/apps/provisioning_api/lib/Controller/AUserDataOCSController.php
index 4db3528f8d3..d321adf7c8f 100644
--- a/apps/provisioning_api/lib/Controller/AUserDataOCSController.php
+++ b/apps/provisioning_api/lib/Controller/AUserDataOCSController.php
@@ -28,6 +28,7 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
+use OCP\Server;
use OCP\User\Backend\ISetDisplayNameBackend;
use OCP\User\Backend\ISetPasswordBackend;
use OCP\Util;
@@ -141,7 +142,8 @@ abstract class AUserDataOCSController extends OCSController {
$additionalEmails = $additionalEmailScopes = [];
$emailCollection = $userAccount->getPropertyCollection(IAccountManager::COLLECTION_EMAIL);
foreach ($emailCollection->getProperties() as $property) {
- $additionalEmails[] = $property->getValue();
+ $email = mb_strtolower(trim($property->getValue()));
+ $additionalEmails[] = $email;
if ($includeScopes) {
$additionalEmailScopes[] = $property->getScope();
}
@@ -162,6 +164,7 @@ abstract class AUserDataOCSController extends OCSController {
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
IAccountManager::PROPERTY_FEDIVERSE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
@@ -307,7 +310,7 @@ abstract class AUserDataOCSController extends OCSController {
'used' => 0
];
} catch (\Exception $e) {
- \OC::$server->get(\Psr\Log\LoggerInterface::class)->error(
+ Server::get(\Psr\Log\LoggerInterface::class)->error(
'Could not load storage info for {user}',
[
'app' => 'provisioning_api',
diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php
index 04dfd8f29b1..3f6cff7442a 100644
--- a/apps/provisioning_api/lib/Controller/AppsController.php
+++ b/apps/provisioning_api/lib/Controller/AppsController.php
@@ -8,6 +8,8 @@ declare(strict_types=1);
*/
namespace OCA\Provisioning_API\Controller;
+use OC\App\AppStore\AppNotFoundException;
+use OC\Installer;
use OC_App;
use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
@@ -16,6 +18,7 @@ use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
+use OCP\IAppConfig;
use OCP\IRequest;
class AppsController extends OCSController {
@@ -23,11 +26,24 @@ class AppsController extends OCSController {
string $appName,
IRequest $request,
private IAppManager $appManager,
+ private Installer $installer,
+ private IAppConfig $appConfig,
) {
parent::__construct($appName, $request);
}
/**
+ * @throws \InvalidArgumentException
+ */
+ protected function verifyAppId(string $app): string {
+ $cleanId = $this->appManager->cleanAppId($app);
+ if ($cleanId !== $app) {
+ throw new \InvalidArgumentException('Invalid app id given');
+ }
+ return $cleanId;
+ }
+
+ /**
* Get a list of installed apps
*
* @param ?string $filter Filter for enabled or disabled apps
@@ -71,6 +87,11 @@ class AppsController extends OCSController {
* 200: App info returned
*/
public function getAppInfo(string $app): DataResponse {
+ try {
+ $app = $this->verifyAppId($app);
+ } catch (\InvalidArgumentException $e) {
+ throw new OCSException($e->getMessage(), OCSController::RESPOND_UNAUTHORISED);
+ }
$info = $this->appManager->getAppInfo($app);
if (!is_null($info)) {
return new DataResponse($info);
@@ -91,8 +112,20 @@ class AppsController extends OCSController {
#[PasswordConfirmationRequired]
public function enable(string $app): DataResponse {
try {
+ $app = $this->verifyAppId($app);
+
+ if (!$this->installer->isDownloaded($app)) {
+ $this->installer->downloadApp($app);
+ }
+
+ if ($this->appConfig->getValueString($app, 'installed_version', '') === '') {
+ $this->installer->installApp($app);
+ }
+
$this->appManager->enableApp($app);
- } catch (AppPathNotFoundException $e) {
+ } catch (\InvalidArgumentException $e) {
+ throw new OCSException($e->getMessage(), OCSController::RESPOND_UNAUTHORISED);
+ } catch (AppPathNotFoundException|AppNotFoundException $e) {
throw new OCSException('The request app was not found', OCSController::RESPOND_NOT_FOUND);
}
return new DataResponse();
@@ -103,12 +136,18 @@ class AppsController extends OCSController {
*
* @param string $app ID of the app
* @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
+ * @throws OCSException
*
* 200: App disabled successfully
*/
#[PasswordConfirmationRequired]
public function disable(string $app): DataResponse {
- $this->appManager->disableApp($app);
+ try {
+ $app = $this->verifyAppId($app);
+ $this->appManager->disableApp($app);
+ } catch (\InvalidArgumentException $e) {
+ throw new OCSException($e->getMessage(), OCSController::RESPOND_UNAUTHORISED);
+ }
return new DataResponse();
}
}
diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php
index 3d9fa6b1cfc..37af51419df 100644
--- a/apps/provisioning_api/lib/Controller/GroupsController.php
+++ b/apps/provisioning_api/lib/Controller/GroupsController.php
@@ -98,6 +98,7 @@ class GroupsController extends AUserDataOCSController {
*/
#[NoAdminRequired]
#[AuthorizedAdminSetting(settings: Sharing::class)]
+ #[AuthorizedAdminSetting(settings: Users::class)]
public function getGroupsDetails(string $search = '', ?int $limit = null, int $offset = 0): DataResponse {
$groups = $this->groupManager->search($search, $limit, $offset);
$groups = array_values(array_map(function ($group) {
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 301ee47c0a6..513a27c7df8 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -12,6 +12,7 @@ namespace OCA\Provisioning_API\Controller;
use InvalidArgumentException;
use OC\Authentication\Token\RemoteWipe;
+use OC\Group\Group;
use OC\KnownUser\KnownUserService;
use OC\User\Backend;
use OCA\Provisioning_API\ResponseDefinitions;
@@ -20,6 +21,7 @@ use OCA\Settings\Settings\Admin\Users;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\Accounts\PropertyDoesNotExistException;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
@@ -52,6 +54,7 @@ use OCP\Util;
use Psr\Log\LoggerInterface;
/**
+ * @psalm-import-type Provisioning_APIGroupDetails from ResponseDefinitions
* @psalm-import-type Provisioning_APIUserDetails from ResponseDefinitions
*/
class UsersController extends AUserDataOCSController {
@@ -77,6 +80,7 @@ class UsersController extends AUserDataOCSController {
private KnownUserService $knownUserService,
private IEventDispatcher $eventDispatcher,
private IPhoneNumberUtil $phoneNumberUtil,
+ private IAppManager $appManager,
) {
parent::__construct(
$appName,
@@ -533,14 +537,21 @@ class UsersController extends AUserDataOCSController {
$generatePasswordResetToken = true;
}
+ $email = mb_strtolower(trim($email));
if ($email === '' && $this->config->getAppValue('core', 'newUser.requireEmail', 'no') === 'yes') {
throw new OCSException($this->l10n->t('Required email address was not provided'), 110);
}
+ // Create the user
try {
$newUser = $this->userManager->createUser($userid, $password);
- $this->logger->info('Successful addUser call with userid: ' . $userid, ['app' => 'ocs_api']);
+ if (!$newUser instanceof IUser) {
+ // If the user is not an instance of IUser, it means the user creation failed
+ $this->logger->error('Failed addUser attempt: User creation failed.', ['app' => 'ocs_api']);
+ throw new OCSException($this->l10n->t('User creation failed'), 111);
+ }
+ $this->logger->info('Successful addUser call with userid: ' . $userid, ['app' => 'ocs_api']);
foreach ($groups as $group) {
$this->groupManager->get($group)->addUser($newUser);
$this->logger->info('Added userid ' . $userid . ' to group ' . $group, ['app' => 'ocs_api']);
@@ -579,7 +590,7 @@ class UsersController extends AUserDataOCSController {
// Send new user mail only if a mail is set
if ($email !== '') {
- $newUser->setEMailAddress($email);
+ $newUser->setSystemEMailAddress($email);
if ($this->config->getAppValue('core', 'newUser.sendEmail', 'yes') === 'yes') {
try {
$emailTemplate = $this->newUserMailHelper->generateTemplate($newUser, $generatePasswordResetToken);
@@ -708,6 +719,19 @@ class UsersController extends AUserDataOCSController {
}
/**
+ * Get a list of enabled apps for the current user
+ *
+ * @return DataResponse<Http::STATUS_OK, array{apps: list<string>}, array{}>
+ *
+ * 200: Enabled apps returned
+ */
+ #[NoAdminRequired]
+ public function getEnabledApps(): DataResponse {
+ $currentLoggedInUser = $this->userSession->getUser();
+ return new DataResponse(['apps' => $this->appManager->getEnabledAppsForUser($currentLoggedInUser)]);
+ }
+
+ /**
* @NoSubAdminRequired
*
* Get a list of fields that are editable for a user
@@ -746,14 +770,16 @@ class UsersController extends AUserDataOCSController {
$targetUser = $currentLoggedInUser;
}
- // Editing self (display, email)
- if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) {
- if (
- $targetUser->getBackend() instanceof ISetDisplayNameBackend
- || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)
- ) {
- $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME;
- }
+ $allowDisplayNameChange = $this->config->getSystemValue('allow_user_to_change_display_name', true);
+ if ($allowDisplayNameChange === true && (
+ $targetUser->getBackend() instanceof ISetDisplayNameBackend
+ || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)
+ )) {
+ $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME;
+ }
+
+ // Fallback to display name value to avoid changing behavior with the new option.
+ if ($this->config->getSystemValue('allow_user_to_change_email', $allowDisplayNameChange)) {
$permittedFields[] = IAccountManager::PROPERTY_EMAIL;
}
@@ -762,6 +788,7 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
+ $permittedFields[] = IAccountManager::PROPERTY_BLUESKY;
$permittedFields[] = IAccountManager::PROPERTY_FEDIVERSE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
@@ -838,6 +865,7 @@ class UsersController extends AUserDataOCSController {
$mailCollection = $userAccount->getPropertyCollection(IAccountManager::COLLECTION_EMAIL);
$mailCollection->removePropertyByValue($key);
if ($value !== '') {
+ $value = mb_strtolower(trim($value));
$mailCollection->addPropertyWithDefaults($value);
$property = $mailCollection->getPropertyByValue($key);
if ($isAdminOrSubadmin && $property) {
@@ -894,7 +922,7 @@ class UsersController extends AUserDataOCSController {
*/
#[PasswordConfirmationRequired]
#[NoAdminRequired]
- #[UserRateLimit(limit: 50, period: 60)]
+ #[UserRateLimit(limit: 50, period: 600)]
public function editUser(string $userId, string $key, string $value): DataResponse {
$currentLoggedInUser = $this->userSession->getUser();
@@ -905,15 +933,17 @@ class UsersController extends AUserDataOCSController {
$permittedFields = [];
if ($targetUser->getUID() === $currentLoggedInUser->getUID()) {
- // Editing self (display, email)
- if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) {
- if (
- $targetUser->getBackend() instanceof ISetDisplayNameBackend
- || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)
- ) {
- $permittedFields[] = self::USER_FIELD_DISPLAYNAME;
- $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME;
- }
+ $allowDisplayNameChange = $this->config->getSystemValue('allow_user_to_change_display_name', true);
+ if ($allowDisplayNameChange !== false && (
+ $targetUser->getBackend() instanceof ISetDisplayNameBackend
+ || $targetUser->getBackend()->implementsActions(Backend::SET_DISPLAYNAME)
+ )) {
+ $permittedFields[] = self::USER_FIELD_DISPLAYNAME;
+ $permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME;
+ }
+
+ // Fallback to display name value to avoid changing behavior with the new option.
+ if ($this->config->getSystemValue('allow_user_to_change_email', $allowDisplayNameChange)) {
$permittedFields[] = IAccountManager::PROPERTY_EMAIL;
}
@@ -925,17 +955,17 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = self::USER_FIELD_PASSWORD;
$permittedFields[] = self::USER_FIELD_NOTIFICATION_EMAIL;
if (
- $this->config->getSystemValue('force_language', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_language', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LANGUAGE;
}
if (
- $this->config->getSystemValue('force_locale', false) === false ||
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
+ $this->config->getSystemValue('force_locale', false) === false
+ || $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID())
) {
$permittedFields[] = self::USER_FIELD_LOCALE;
$permittedFields[] = self::USER_FIELD_FIRST_DAY_OF_WEEK;
@@ -945,6 +975,7 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
+ $permittedFields[] = IAccountManager::PROPERTY_BLUESKY;
$permittedFields[] = IAccountManager::PROPERTY_FEDIVERSE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
@@ -958,6 +989,7 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER . self::SCOPE_SUFFIX;
+ $permittedFields[] = IAccountManager::PROPERTY_BLUESKY . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_FEDIVERSE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_ROLE . self::SCOPE_SUFFIX;
@@ -979,8 +1011,8 @@ class UsersController extends AUserDataOCSController {
// Check if admin / subadmin
$subAdminManager = $this->groupManager->getSubAdmin();
if (
- $this->groupManager->isAdmin($currentLoggedInUser->getUID()) ||
- $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
+ $this->groupManager->isAdmin($currentLoggedInUser->getUID())
+ || $this->groupManager->isDelegatedAdmin($currentLoggedInUser->getUID()) && !$this->groupManager->isInGroup($targetUser->getUID(), 'admin')
|| $subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)
) {
// They have permissions over the user
@@ -1001,6 +1033,7 @@ class UsersController extends AUserDataOCSController {
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
+ $permittedFields[] = IAccountManager::PROPERTY_BLUESKY;
$permittedFields[] = IAccountManager::PROPERTY_FEDIVERSE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
@@ -1073,7 +1106,7 @@ class UsersController extends AUserDataOCSController {
}
$targetUser->setPassword($value);
} catch (HintException $e) { // password policy error
- throw new OCSException($e->getMessage(), 107);
+ throw new OCSException($e->getHint(), 107);
}
break;
case self::USER_FIELD_LANGUAGE:
@@ -1121,13 +1154,15 @@ class UsersController extends AUserDataOCSController {
}
break;
case IAccountManager::PROPERTY_EMAIL:
+ $value = mb_strtolower(trim($value));
if (filter_var($value, FILTER_VALIDATE_EMAIL) || $value === '') {
- $targetUser->setEMailAddress($value);
+ $targetUser->setSystemEMailAddress($value);
} else {
throw new OCSException('', 101);
}
break;
case IAccountManager::COLLECTION_EMAIL:
+ $value = mb_strtolower(trim($value));
if (filter_var($value, FILTER_VALIDATE_EMAIL) && $value !== $targetUser->getSystemEMailAddress()) {
$userAccount = $this->accountManager->getAccount($targetUser);
$mailCollection = $userAccount->getPropertyCollection(IAccountManager::COLLECTION_EMAIL);
@@ -1146,6 +1181,7 @@ class UsersController extends AUserDataOCSController {
case IAccountManager::PROPERTY_ADDRESS:
case IAccountManager::PROPERTY_WEBSITE:
case IAccountManager::PROPERTY_TWITTER:
+ case IAccountManager::PROPERTY_BLUESKY:
case IAccountManager::PROPERTY_FEDIVERSE:
case IAccountManager::PROPERTY_ORGANISATION:
case IAccountManager::PROPERTY_ROLE:
@@ -1193,6 +1229,7 @@ class UsersController extends AUserDataOCSController {
case IAccountManager::PROPERTY_ADDRESS . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_WEBSITE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_TWITTER . self::SCOPE_SUFFIX:
+ case IAccountManager::PROPERTY_BLUESKY . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_FEDIVERSE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_ORGANISATION . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_ROLE . self::SCOPE_SUFFIX:
@@ -1403,6 +1440,127 @@ class UsersController extends AUserDataOCSController {
}
/**
+ * @NoSubAdminRequired
+ *
+ * Get a list of groups with details
+ *
+ * @param string $userId ID of the user
+ * @return DataResponse<Http::STATUS_OK, array{groups: list<Provisioning_APIGroupDetails>}, array{}>
+ * @throws OCSException
+ *
+ * 200: Users groups returned
+ */
+ #[NoAdminRequired]
+ public function getUsersGroupsDetails(string $userId): DataResponse {
+ $loggedInUser = $this->userSession->getUser();
+
+ $targetUser = $this->userManager->get($userId);
+ if ($targetUser === null) {
+ throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
+ }
+
+ $isAdmin = $this->groupManager->isAdmin($loggedInUser->getUID());
+ $isDelegatedAdmin = $this->groupManager->isDelegatedAdmin($loggedInUser->getUID());
+ if ($targetUser->getUID() === $loggedInUser->getUID() || $isAdmin || $isDelegatedAdmin) {
+ // Self lookup or admin lookup
+ $groups = array_map(
+ function (Group $group) {
+ return [
+ 'id' => $group->getGID(),
+ 'displayname' => $group->getDisplayName(),
+ 'usercount' => $group->count(),
+ 'disabled' => $group->countDisabled(),
+ 'canAdd' => $group->canAddUser(),
+ 'canRemove' => $group->canRemoveUser(),
+ ];
+ },
+ array_values($this->groupManager->getUserGroups($targetUser)),
+ );
+ return new DataResponse([
+ 'groups' => $groups,
+ ]);
+ } else {
+ $subAdminManager = $this->groupManager->getSubAdmin();
+
+ // Looking up someone else
+ if ($subAdminManager->isUserAccessible($loggedInUser, $targetUser)) {
+ // Return the group that the method caller is subadmin of for the user in question
+ $gids = array_values(array_intersect(
+ array_map(
+ static fn (IGroup $group) => $group->getGID(),
+ $subAdminManager->getSubAdminsGroups($loggedInUser),
+ ),
+ $this->groupManager->getUserGroupIds($targetUser)
+ ));
+ $groups = array_map(
+ function (string $gid) {
+ $group = $this->groupManager->get($gid);
+ return [
+ 'id' => $group->getGID(),
+ 'displayname' => $group->getDisplayName(),
+ 'usercount' => $group->count(),
+ 'disabled' => $group->countDisabled(),
+ 'canAdd' => $group->canAddUser(),
+ 'canRemove' => $group->canRemoveUser(),
+ ];
+ },
+ $gids,
+ );
+ return new DataResponse([
+ 'groups' => $groups,
+ ]);
+ } else {
+ // Not permitted
+ throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
+ }
+ }
+ }
+
+ /**
+ * @NoSubAdminRequired
+ *
+ * Get a list of the groups the user is a subadmin of, with details
+ *
+ * @param string $userId ID of the user
+ * @return DataResponse<Http::STATUS_OK, array{groups: list<Provisioning_APIGroupDetails>}, array{}>
+ * @throws OCSException
+ *
+ * 200: Users subadmin groups returned
+ */
+ #[NoAdminRequired]
+ public function getUserSubAdminGroupsDetails(string $userId): DataResponse {
+ $loggedInUser = $this->userSession->getUser();
+
+ $targetUser = $this->userManager->get($userId);
+ if ($targetUser === null) {
+ throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
+ }
+
+ $isAdmin = $this->groupManager->isAdmin($loggedInUser->getUID());
+ $isDelegatedAdmin = $this->groupManager->isDelegatedAdmin($loggedInUser->getUID());
+ if ($targetUser->getUID() === $loggedInUser->getUID() || $isAdmin || $isDelegatedAdmin) {
+ $subAdminManager = $this->groupManager->getSubAdmin();
+ $groups = array_map(
+ function (IGroup $group) {
+ return [
+ 'id' => $group->getGID(),
+ 'displayname' => $group->getDisplayName(),
+ 'usercount' => $group->count(),
+ 'disabled' => $group->countDisabled(),
+ 'canAdd' => $group->canAddUser(),
+ 'canRemove' => $group->canRemoveUser(),
+ ];
+ },
+ array_values($subAdminManager->getSubAdminsGroups($targetUser)),
+ );
+ return new DataResponse([
+ 'groups' => $groups,
+ ]);
+ }
+ throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
+ }
+
+ /**
* Add a user to a group
*
* @param string $userId ID of the user
diff --git a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
index c7be073b8af..b014d6a1495 100644
--- a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
+++ b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/provisioning_api/lib/ResponseDefinitions.php b/apps/provisioning_api/lib/ResponseDefinitions.php
index d41a78746b5..62ae4ca577b 100644
--- a/apps/provisioning_api/lib/ResponseDefinitions.php
+++ b/apps/provisioning_api/lib/ResponseDefinitions.php
@@ -67,6 +67,8 @@ namespace OCA\Provisioning_API;
* subadmin: list<string>,
* twitter: string,
* twitterScope?: Provisioning_APIUserDetailsScope,
+ * bluesky: string,
+ * blueskyScope?: Provisioning_APIUserDetailsScope,
* website: string,
* websiteScope?: Provisioning_APIUserDetailsScope,
* }
diff --git a/apps/provisioning_api/openapi-administration.json b/apps/provisioning_api/openapi-administration.json
index 3c54be68194..08bba7a05a1 100644
--- a/apps/provisioning_api/openapi-administration.json
+++ b/apps/provisioning_api/openapi-administration.json
@@ -106,6 +106,7 @@
"role",
"subadmin",
"twitter",
+ "bluesky",
"website"
],
"properties": {
@@ -267,6 +268,12 @@
"twitterScope": {
"$ref": "#/components/schemas/UserDetailsScope"
},
+ "bluesky": {
+ "type": "string"
+ },
+ "blueskyScope": {
+ "$ref": "#/components/schemas/UserDetailsScope"
+ },
"website": {
"type": "string"
},
@@ -381,7 +388,8 @@
"description": "Filter for enabled or disabled apps",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1003,7 +1011,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
diff --git a/apps/provisioning_api/openapi-full.json b/apps/provisioning_api/openapi-full.json
index 252fa16e06e..3684e7cbc41 100644
--- a/apps/provisioning_api/openapi-full.json
+++ b/apps/provisioning_api/openapi-full.json
@@ -153,6 +153,7 @@
"role",
"subadmin",
"twitter",
+ "bluesky",
"website"
],
"properties": {
@@ -314,6 +315,12 @@
"twitterScope": {
"$ref": "#/components/schemas/UserDetailsScope"
},
+ "bluesky": {
+ "type": "string"
+ },
+ "blueskyScope": {
+ "$ref": "#/components/schemas/UserDetailsScope"
+ },
"website": {
"type": "string"
},
@@ -428,7 +435,8 @@
"description": "Filter for enabled or disabled apps",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -772,6 +780,88 @@
}
},
"/ocs/v2.php/cloud/groups": {
+ "post": {
+ "operationId": "groups-add-group",
+ "summary": "Create a new group",
+ "description": "This endpoint requires admin access\nThis endpoint requires password confirmation",
+ "tags": [
+ "groups"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "groupid"
+ ],
+ "properties": {
+ "groupid": {
+ "type": "string",
+ "description": "ID of the group"
+ },
+ "displayname": {
+ "type": "string",
+ "default": "",
+ "description": "Display name of the group"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Group created successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"get": {
"operationId": "groups-get-groups",
"summary": "Get a list of groups",
@@ -803,7 +893,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -873,6 +964,166 @@
}
},
"/ocs/v2.php/cloud/groups/{groupId}": {
+ "put": {
+ "operationId": "groups-update-group",
+ "summary": "Update a group",
+ "description": "This endpoint requires admin access\nThis endpoint requires password confirmation",
+ "tags": [
+ "groups"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "key",
+ "value"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Key to update, only 'displayname'"
+ },
+ "value": {
+ "type": "string",
+ "description": "New value for the key"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "groupId",
+ "in": "path",
+ "description": "ID of the group",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "pattern": "^.+$"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Group updated successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "groups-delete-group",
+ "summary": "Delete a group",
+ "description": "This endpoint requires admin access\nThis endpoint requires password confirmation",
+ "tags": [
+ "groups"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "groupId",
+ "in": "path",
+ "description": "ID of the group",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "pattern": "^.+$"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Group deleted successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"get": {
"operationId": "groups-get-group",
"summary": "Get a list of users in the specified group",
@@ -988,7 +1239,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1510,6 +1762,269 @@
}
},
"/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/{app}/{key}": {
+ "get": {
+ "operationId": "app_config-get-value",
+ "summary": "Get a the config value of an app",
+ "description": "This endpoint requires admin access",
+ "tags": [
+ "app_config"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "app",
+ "in": "path",
+ "description": "ID of the app",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "key",
+ "in": "path",
+ "description": "Key",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "defaultValue",
+ "in": "query",
+ "description": "Default returned value if the value is empty",
+ "schema": {
+ "type": "string",
+ "default": ""
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Value returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "data"
+ ],
+ "properties": {
+ "data": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "App is not allowed",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "data"
+ ],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "operationId": "app_config-delete-key",
+ "summary": "Delete a config key of an app",
+ "description": "This endpoint requires admin access\nThis endpoint requires password confirmation",
+ "tags": [
+ "app_config"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "app",
+ "in": "path",
+ "description": "ID of the app",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "key",
+ "in": "path",
+ "description": "Key to delete",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Key deleted successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "App or key is not allowed",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "data"
+ ],
+ "properties": {
+ "data": {
+ "type": "object",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "message": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"post": {
"operationId": "app_config-set-value",
"summary": "Update the config value of an app",
@@ -1684,7 +2199,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1933,7 +2449,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2049,7 +2566,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2190,6 +2708,7 @@
"manager": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Manager of the user"
}
}
@@ -2311,7 +2830,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2427,7 +2947,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -3059,6 +3580,78 @@
}
}
},
+ "/ocs/v2.php/cloud/user/apps": {
+ "get": {
+ "operationId": "users-get-enabled-apps",
+ "summary": "Get a list of enabled apps for the current user",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Enabled apps returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "apps"
+ ],
+ "properties": {
+ "apps": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/{collectionName}": {
"put": {
"operationId": "users-edit-user-multi-value",
@@ -3610,6 +4203,168 @@
}
}
},
+ "/ocs/v2.php/cloud/users/{userId}/groups/details": {
+ "get": {
+ "operationId": "users-get-users-groups-details",
+ "summary": "Get a list of groups with details",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "path",
+ "description": "ID of the user",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Users groups returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "groups"
+ ],
+ "properties": {
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupDetails"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ocs/v2.php/cloud/users/{userId}/subadmins/details": {
+ "get": {
+ "operationId": "users-get-user-sub-admin-groups-details",
+ "summary": "Get a list of the groups the user is a subadmin of, with details",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "path",
+ "description": "ID of the user",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Users subadmin groups returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "groups"
+ ],
+ "properties": {
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupDetails"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/welcome": {
"post": {
"operationId": "users-resend-welcome-message",
diff --git a/apps/provisioning_api/openapi.json b/apps/provisioning_api/openapi.json
index a55b8c5771f..cec2f7f86f1 100644
--- a/apps/provisioning_api/openapi.json
+++ b/apps/provisioning_api/openapi.json
@@ -153,6 +153,7 @@
"role",
"subadmin",
"twitter",
+ "bluesky",
"website"
],
"properties": {
@@ -314,6 +315,12 @@
"twitterScope": {
"$ref": "#/components/schemas/UserDetailsScope"
},
+ "bluesky": {
+ "type": "string"
+ },
+ "blueskyScope": {
+ "$ref": "#/components/schemas/UserDetailsScope"
+ },
"website": {
"type": "string"
},
@@ -437,7 +444,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -538,7 +546,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -787,7 +796,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -986,7 +996,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1127,6 +1138,7 @@
"manager": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Manager of the user"
}
}
@@ -1248,7 +1260,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1364,7 +1377,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1996,6 +2010,78 @@
}
}
},
+ "/ocs/v2.php/cloud/user/apps": {
+ "get": {
+ "operationId": "users-get-enabled-apps",
+ "summary": "Get a list of enabled apps for the current user",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Enabled apps returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "apps"
+ ],
+ "properties": {
+ "apps": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/{collectionName}": {
"put": {
"operationId": "users-edit-user-multi-value",
@@ -2547,6 +2633,168 @@
}
}
},
+ "/ocs/v2.php/cloud/users/{userId}/groups/details": {
+ "get": {
+ "operationId": "users-get-users-groups-details",
+ "summary": "Get a list of groups with details",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "path",
+ "description": "ID of the user",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Users groups returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "groups"
+ ],
+ "properties": {
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupDetails"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ocs/v2.php/cloud/users/{userId}/subadmins/details": {
+ "get": {
+ "operationId": "users-get-user-sub-admin-groups-details",
+ "summary": "Get a list of the groups the user is a subadmin of, with details",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "userId",
+ "in": "path",
+ "description": "ID of the user",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Users subadmin groups returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "groups"
+ ],
+ "properties": {
+ "groups": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/GroupDetails"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/welcome": {
"post": {
"operationId": "users-resend-welcome-message",
diff --git a/apps/provisioning_api/tests/CapabilitiesTest.php b/apps/provisioning_api/tests/CapabilitiesTest.php
index e3c14f37ed7..86d2bb8c4fa 100644
--- a/apps/provisioning_api/tests/CapabilitiesTest.php
+++ b/apps/provisioning_api/tests/CapabilitiesTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Provisioning_API\Tests\unit;
+namespace OCA\Provisioning_API\Tests;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Provisioning_API\Capabilities;
@@ -21,11 +23,8 @@ use Test\TestCase;
*/
class CapabilitiesTest extends TestCase {
- /** @var Capabilities */
- protected $capabilities;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
+ protected IAppManager&MockObject $appManager;
+ protected Capabilities $capabilities;
public function setUp(): void {
parent::setUp();
@@ -38,7 +37,7 @@ class CapabilitiesTest extends TestCase {
->willReturn('1.12');
}
- public function getCapabilitiesProvider() {
+ public static function getCapabilitiesProvider(): array {
return [
[true, false, false, true, false],
[true, true, false, true, false],
@@ -49,16 +48,14 @@ class CapabilitiesTest extends TestCase {
];
}
- /**
- * @dataProvider getCapabilitiesProvider
- */
- public function testGetCapabilities($federationAppEnabled, $federatedFileSharingAppEnabled, $lookupServerEnabled, $expectedFederatedScopeEnabled, $expectedPublishedScopeEnabled): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('getCapabilitiesProvider')]
+ public function testGetCapabilities(bool $federationAppEnabled, bool $federatedFileSharingAppEnabled, bool $lookupServerEnabled, bool $expectedFederatedScopeEnabled, bool $expectedPublishedScopeEnabled): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
- ->will($this->returnValueMap([
+ ->willReturnMap([
['federation', null, $federationAppEnabled],
['federatedfilesharing', null, $federatedFileSharingAppEnabled],
- ]));
+ ]);
$federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->overwriteService(FederatedShareProvider::class, $federatedShareProvider);
diff --git a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
index 41739b6283f..1b09838cbc3 100644
--- a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -30,7 +32,6 @@ use function json_encode;
* @package OCA\Provisioning_API\Tests
*/
class AppConfigControllerTest extends TestCase {
-
private IAppConfig&MockObject $appConfig;
private IUserSession&MockObject $userSession;
private IL10N&MockObject $l10n;
@@ -51,7 +52,7 @@ class AppConfigControllerTest extends TestCase {
/**
* @param string[] $methods
- * @return AppConfigController|\PHPUnit\Framework\MockObject\MockObject
+ * @return AppConfigController|MockObject
*/
protected function getInstance(array $methods = []) {
$request = $this->createMock(IRequest::class);
@@ -79,7 +80,7 @@ class AppConfigControllerTest extends TestCase {
$this->settingManager,
$this->appManager,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
}
@@ -95,21 +96,15 @@ class AppConfigControllerTest extends TestCase {
$this->assertEquals(['data' => ['apps']], $result->getData());
}
- public function dataGetKeys() {
+ public static function dataGetKeys(): array {
return [
['app1 ', null, new \InvalidArgumentException('error'), Http::STATUS_FORBIDDEN],
['app2', ['keys'], null, Http::STATUS_OK],
];
}
- /**
- * @dataProvider dataGetKeys
- * @param string $app
- * @param array|null $keys
- * @param \Exception|null $throws
- * @param int $status
- */
- public function testGetKeys($app, $keys, $throws, $status): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetKeys')]
+ public function testGetKeys(string $app, ?array $keys, ?\Throwable $throws, int $status): void {
$api = $this->getInstance(['verifyAppId']);
if ($throws instanceof \Exception) {
$api->expects($this->once())
@@ -140,23 +135,15 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataGetValue() {
+ public static function dataGetValue(): array {
return [
['app1', 'key', 'default', null, new \InvalidArgumentException('error'), Http::STATUS_FORBIDDEN],
['app2', 'key', 'default', 'return', null, Http::STATUS_OK],
];
}
- /**
- * @dataProvider dataGetValue
- * @param string $app
- * @param string|null $key
- * @param string|null $default
- * @param string|null $return
- * @param \Exception|null $throws
- * @param int $status
- */
- public function testGetValue($app, $key, $default, $return, $throws, $status): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetValue')]
+ public function testGetValue(string $app, string $key, string $default, ?string $return, ?\Throwable $throws, int $status): void {
$api = $this->getInstance(['verifyAppId']);
if ($throws instanceof \Exception) {
$api->expects($this->once())
@@ -184,7 +171,7 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataSetValue() {
+ public static function dataSetValue(): array {
return [
['app1', 'key', 'default', new \InvalidArgumentException('error1'), null, Http::STATUS_FORBIDDEN],
['app2', 'key', 'default', null, new \InvalidArgumentException('error2'), Http::STATUS_FORBIDDEN],
@@ -199,16 +186,8 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataSetValue
- * @param string $app
- * @param string|null $key
- * @param string|null $value
- * @param \Exception|null $appThrows
- * @param \Exception|null $keyThrows
- * @param int|\Throwable $status
- */
- public function testSetValue($app, $key, $value, $appThrows, $keyThrows, $status, int|\Throwable $type = IAppConfig::VALUE_MIXED): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSetValue')]
+ public function testSetValue(string $app, string $key, string $value, ?\Throwable $appThrows, ?\Throwable $keyThrows, int $status, int|\Throwable $type = IAppConfig::VALUE_MIXED): void {
$adminUser = $this->createMock(IUser::class);
$adminUser->expects($this->once())
->method('getUid')
@@ -297,7 +276,7 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataDeleteValue() {
+ public static function dataDeleteValue(): array {
return [
['app1', 'key', new \InvalidArgumentException('error1'), null, Http::STATUS_FORBIDDEN],
['app2', 'key', null, new \InvalidArgumentException('error2'), Http::STATUS_FORBIDDEN],
@@ -305,15 +284,8 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataDeleteValue
- * @param string $app
- * @param string|null $key
- * @param \Exception|null $appThrows
- * @param \Exception|null $keyThrows
- * @param int $status
- */
- public function testDeleteValue($app, $key, $appThrows, $keyThrows, $status): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteValue')]
+ public function testDeleteValue(string $app, string $key, ?\Throwable $appThrows, ?\Throwable $keyThrows, int $status): void {
$api = $this->getInstance(['verifyAppId', 'verifyConfigKey']);
if ($appThrows instanceof \Exception) {
$api->expects($this->once())
@@ -367,7 +339,7 @@ class AppConfigControllerTest extends TestCase {
$this->addToAssertionCount(1);
}
- public function dataVerifyAppIdThrows() {
+ public static function dataVerifyAppIdThrows(): array {
return [
['activity..'],
['activity/'],
@@ -376,18 +348,15 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyAppIdThrows
- * @param string $app
- */
- public function testVerifyAppIdThrows($app): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyAppIdThrows')]
+ public function testVerifyAppIdThrows(string $app): void {
$this->expectException(\InvalidArgumentException::class);
$api = $this->getInstance();
$this->invokePrivate($api, 'verifyAppId', [$app]);
}
- public function dataVerifyConfigKey() {
+ public static function dataVerifyConfigKey(): array {
return [
['activity', 'abc', ''],
['dav', 'public_route', ''],
@@ -396,19 +365,14 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyConfigKey
- * @param string $app
- * @param string $key
- * @param string $value
- */
- public function testVerifyConfigKey($app, $key, $value): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyConfigKey')]
+ public function testVerifyConfigKey(string $app, string $key, string $value): void {
$api = $this->getInstance();
$this->invokePrivate($api, 'verifyConfigKey', [$app, $key, $value]);
$this->addToAssertionCount(1);
}
- public function dataVerifyConfigKeyThrows() {
+ public static function dataVerifyConfigKeyThrows(): array {
return [
['activity', 'installed_version', ''],
['calendar', 'enabled', ''],
@@ -422,13 +386,8 @@ class AppConfigControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataVerifyConfigKeyThrows
- * @param string $app
- * @param string $key
- * @param string $value
- */
- public function testVerifyConfigKeyThrows($app, $key, $value): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataVerifyConfigKeyThrows')]
+ public function testVerifyConfigKeyThrows(string $app, string $key, string $value): void {
$this->expectException(\InvalidArgumentException::class);
$api = $this->getInstance();
diff --git a/apps/provisioning_api/tests/Controller/AppsControllerTest.php b/apps/provisioning_api/tests/Controller/AppsControllerTest.php
index 51980ce7ed2..f95daeae7d3 100644
--- a/apps/provisioning_api/tests/Controller/AppsControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/AppsControllerTest.php
@@ -7,12 +7,17 @@
*/
namespace OCA\Provisioning_API\Tests\Controller;
+use OC\Installer;
use OCA\Provisioning_API\Controller\AppsController;
use OCA\Provisioning_API\Tests\TestCase;
use OCP\App\IAppManager;
use OCP\AppFramework\OCS\OCSException;
+use OCP\IAppConfig;
+use OCP\IGroupManager;
use OCP\IRequest;
use OCP\IUserSession;
+use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class AppsTest
@@ -22,28 +27,29 @@ use OCP\IUserSession;
* @package OCA\Provisioning_API\Tests
*/
class AppsControllerTest extends TestCase {
- /** @var IAppManager */
- private $appManager;
- /** @var AppsController */
- private $api;
- /** @var IUserSession */
- private $userSession;
+ private IAppManager $appManager;
+ private IAppConfig&MockObject $appConfig;
+ private Installer&MockObject $installer;
+ private AppsController $api;
+ private IUserSession $userSession;
protected function setUp(): void {
parent::setUp();
- $this->appManager = \OC::$server->getAppManager();
- $this->groupManager = \OC::$server->getGroupManager();
- $this->userSession = \OC::$server->getUserSession();
+ $this->appManager = Server::get(IAppManager::class);
+ $this->groupManager = Server::get(IGroupManager::class);
+ $this->userSession = Server::get(IUserSession::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->installer = $this->createMock(Installer::class);
- $request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(IRequest::class);
$this->api = new AppsController(
'provisioning_api',
$request,
- $this->appManager
+ $this->appManager,
+ $this->installer,
+ $this->appConfig,
);
}
@@ -94,7 +100,7 @@ class AppsControllerTest extends TestCase {
$this->assertEquals(count($disabled), count($data['apps']));
}
-
+
public function testGetAppsInvalidFilter(): void {
$this->expectException(OCSException::class);
$this->expectExceptionCode(101);
diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
index 29b098429e8..85e5d733b1f 100644
--- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
@@ -22,30 +22,20 @@ use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class GroupsControllerTest extends \Test\TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var Manager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
- /** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $accountManager;
- /** @var ISubAdmin|\PHPUnit\Framework\MockObject\MockObject */
- protected $subAdminManager;
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var GroupsController|\PHPUnit\Framework\MockObject\MockObject */
- protected $api;
+ protected IRequest&MockObject $request;
+ protected IUserManager&MockObject $userManager;
+ protected IConfig&MockObject $config;
+ protected Manager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAccountManager&MockObject $accountManager;
+ protected ISubAdmin&MockObject $subAdminManager;
+ protected IFactory&MockObject $l10nFactory;
+ protected LoggerInterface&MockObject $logger;
+ protected GroupsController&MockObject $api;
private IRootFolder $rootFolder;
@@ -82,16 +72,12 @@ class GroupsControllerTest extends \Test\TestCase {
$this->rootFolder,
$this->logger
])
- ->setMethods(['fillStorageInfo'])
+ ->onlyMethods(['fillStorageInfo'])
->getMock();
}
- /**
- * @param string $gid
- * @return IGroup|\PHPUnit\Framework\MockObject\MockObject
- */
- private function createGroup($gid) {
- $group = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
+ private function createGroup(string $gid): IGroup&MockObject {
+ $group = $this->createMock(IGroup::class);
$group
->method('getGID')
->willReturn($gid);
@@ -116,7 +102,7 @@ class GroupsControllerTest extends \Test\TestCase {
/**
* @param string $uid
- * @return IUser|\PHPUnit\Framework\MockObject\MockObject
+ * @return IUser&MockObject
*/
private function createUser($uid) {
$user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
@@ -165,7 +151,7 @@ class GroupsControllerTest extends \Test\TestCase {
});
}
- public function dataGetGroups() {
+ public static function dataGetGroups(): array {
return [
[null, 0, 0],
['foo', 0, 0],
@@ -175,14 +161,8 @@ class GroupsControllerTest extends \Test\TestCase {
];
}
- /**
- * @dataProvider dataGetGroups
- *
- * @param string|null $search
- * @param int|null $limit
- * @param int|null $offset
- */
- public function testGetGroups($search, $limit, $offset): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetGroups')]
+ public function testGetGroups(?string $search, int $limit, int $offset): void {
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
$search = $search === null ? '' : $search;
@@ -198,12 +178,12 @@ class GroupsControllerTest extends \Test\TestCase {
}
/**
- * @dataProvider dataGetGroups
*
* @param string|null $search
* @param int|null $limit
* @param int|null $offset
*/
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetGroups')]
public function testGetGroupsDetails($search, $limit, $offset): void {
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
@@ -509,7 +489,7 @@ class GroupsControllerTest extends \Test\TestCase {
->method('getUserGroups')
->willReturn([$group]);
- /** @var \PHPUnit\Framework\MockObject\MockObject */
+ /** @var MockObject */
$this->subAdminManager->expects($this->any())
->method('isSubAdminOfGroup')
->willReturn(false);
@@ -554,7 +534,7 @@ class GroupsControllerTest extends \Test\TestCase {
->method('getUserGroups')
->willReturn([$group]);
- /** @var \PHPUnit\Framework\MockObject\MockObject */
+ /** @var MockObject */
$this->subAdminManager->expects($this->any())
->method('isSubAdminOfGroup')
->willReturn(false);
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index 439ee0be250..0c0a0ae3d74 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -20,6 +20,7 @@ use OCP\Accounts\IAccount;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\Accounts\IAccountPropertyCollection;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\EventDispatcher\IEventDispatcher;
@@ -42,44 +43,29 @@ use OCP\User\Backend\ISetDisplayNameBackend;
use OCP\UserInterface;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
+use RuntimeException;
use Test\TestCase;
class UsersControllerTest extends TestCase {
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var IConfig|MockObject */
- protected $config;
- /** @var Manager|MockObject */
- protected $groupManager;
- /** @var IUserSession|MockObject */
- protected $userSession;
- /** @var LoggerInterface|MockObject */
- protected $logger;
- /** @var UsersController|MockObject */
- protected $api;
- /** @var IAccountManager|MockObject */
- protected $accountManager;
- /** @var ISubAdmin|MockObject */
- protected $subAdminManager;
- /** @var IURLGenerator|MockObject */
- protected $urlGenerator;
- /** @var IRequest|MockObject */
- protected $request;
- /** @var IFactory|MockObject */
- private $l10nFactory;
- /** @var NewUserMailHelper|MockObject */
- private $newUserMailHelper;
- /** @var ISecureRandom|MockObject */
- private $secureRandom;
- /** @var RemoteWipe|MockObject */
- private $remoteWipe;
- /** @var KnownUserService|MockObject */
- private $knownUserService;
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
+ protected IUserManager&MockObject $userManager;
+ protected IConfig&MockObject $config;
+ protected Manager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected LoggerInterface&MockObject $logger;
+ protected UsersController&MockObject $api;
+ protected IAccountManager&MockObject $accountManager;
+ protected ISubAdmin&MockObject $subAdminManager;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IRequest&MockObject $request;
+ private IFactory&MockObject $l10nFactory;
+ private NewUserMailHelper&MockObject $newUserMailHelper;
+ private ISecureRandom&MockObject $secureRandom;
+ private RemoteWipe&MockObject $remoteWipe;
+ private KnownUserService&MockObject $knownUserService;
+ private IEventDispatcher&MockObject $eventDispatcher;
private IRootFolder $rootFolder;
- /** @var IPhoneNumberUtil */
- private $phoneNumberUtil;
+ private IPhoneNumberUtil $phoneNumberUtil;
+ private IAppManager $appManager;
protected function setUp(): void {
parent::setUp();
@@ -100,6 +86,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService = $this->createMock(KnownUserService::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->phoneNumberUtil = new PhoneNumberUtil();
+ $this->appManager = $this->createMock(IAppManager::class);
$this->rootFolder = $this->createMock(IRootFolder::class);
$l10n = $this->createMock(IL10N::class);
@@ -126,6 +113,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['fillStorageInfo'])
->getMock();
@@ -211,8 +199,7 @@ class UsersControllerTest extends TestCase {
->willReturn($subAdminManager);
$this->groupManager
->expects($this->any())
- ->method('displayNamesInGroup')
- ->will($this->onConsecutiveCalls(['AnotherUserInTheFirstGroup' => []], ['UserInTheSecondGroup' => []]));
+ ->method('displayNamesInGroup')->willReturnOnConsecutiveCalls(['AnotherUserInTheFirstGroup' => []], ['UserInTheSecondGroup' => []]);
$expected = [
'users' => [
@@ -448,10 +435,6 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(2))
->method('groupExists')
- ->withConsecutive(
- ['ExistingGroup'],
- ['NonExistingGroup']
- )
->willReturnMap([
['ExistingGroup', true],
['NonExistingGroup', false]
@@ -469,7 +452,8 @@ class UsersControllerTest extends TestCase {
$this->userManager
->expects($this->once())
->method('createUser')
- ->with('NewUser', 'PasswordOfTheNewUser');
+ ->with('NewUser', 'PasswordOfTheNewUser')
+ ->willReturn($this->createMock(IUser::class));
$this->logger
->expects($this->once())
->method('info')
@@ -521,6 +505,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['editUser'])
->getMock();
@@ -533,7 +518,8 @@ class UsersControllerTest extends TestCase {
$this->userManager
->expects($this->once())
->method('createUser')
- ->with('NewUser', 'PasswordOfTheNewUser');
+ ->with('NewUser', 'PasswordOfTheNewUser')
+ ->willReturn($this->createMock(IUser::class));
$this->logger
->expects($this->once())
->method('info')
@@ -583,7 +569,8 @@ class UsersControllerTest extends TestCase {
$this->userManager
->expects($this->once())
->method('createUser')
- ->with($this->anything(), 'PasswordOfTheNewUser');
+ ->with($this->anything(), 'PasswordOfTheNewUser')
+ ->willReturn($this->createMock(IUser::class));
$this->logger
->expects($this->once())
->method('info')
@@ -625,7 +612,7 @@ class UsersControllerTest extends TestCase {
->willReturn(false);
$newUser = $this->createMock(IUser::class);
$newUser->expects($this->once())
- ->method('setEMailAddress');
+ ->method('setSystemEMailAddress');
$this->userManager
->expects($this->once())
->method('createUser')
@@ -661,6 +648,51 @@ class UsersControllerTest extends TestCase {
));
}
+ public function testAddUserSuccessfulLowercaseEmail(): void {
+ $this->userManager
+ ->expects($this->once())
+ ->method('userExists')
+ ->with('NewUser')
+ ->willReturn(false);
+ $newUser = $this->createMock(IUser::class);
+ $newUser->expects($this->once())
+ ->method('setSystemEMailAddress')
+ ->with('foo@bar.com');
+ $this->userManager
+ ->expects($this->once())
+ ->method('createUser')
+ ->willReturn($newUser);
+ $this->logger
+ ->expects($this->once())
+ ->method('info')
+ ->with('Successful addUser call with userid: NewUser', ['app' => 'ocs_api']);
+ $loggedInUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $loggedInUser
+ ->expects($this->exactly(2))
+ ->method('getUID')
+ ->willReturn('adminUser');
+ $this->userSession
+ ->expects($this->once())
+ ->method('getUser')
+ ->willReturn($loggedInUser);
+ $this->groupManager
+ ->expects($this->once())
+ ->method('isAdmin')
+ ->with('adminUser')
+ ->willReturn(true);
+ $this->eventDispatcher
+ ->expects($this->once())
+ ->method('dispatchTyped')
+ ->with(new GenerateSecurePasswordEvent());
+
+ $this->assertTrue(key_exists(
+ 'id',
+ $this->api->addUser('NewUser', '', '', 'fOo@BaR.CoM')->getData()
+ ));
+ }
+
public function testAddUserFailedToGenerateUserID(): void {
$this->expectException(OCSException::class);
@@ -797,18 +829,20 @@ class UsersControllerTest extends TestCase {
->method('get')
->with('ExistingGroup')
->willReturn($group);
+
+ $calls = [
+ ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup', ['app' => 'ocs_api']],
+ ];
$this->logger
->expects($this->exactly(2))
->method('info')
- ->withConsecutive(
- ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup', ['app' => 'ocs_api']]
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
- $this->assertTrue(key_exists(
- 'id',
- $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup'])->getData()
- ));
+ $this->assertArrayHasKey('id', $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup'])->getData());
}
@@ -827,7 +861,7 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('createUser')
->with('NewUser', 'PasswordOfTheNewUser')
- ->will($this->throwException($exception));
+ ->willThrowException($exception);
$this->logger
->expects($this->once())
->method('error')
@@ -965,11 +999,10 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(2))
->method('groupExists')
- ->withConsecutive(
- ['ExistingGroup1'],
- ['ExistingGroup2']
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['ExistingGroup1', true],
+ ['ExistingGroup2', true]
+ ]);
$user = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -995,24 +1028,23 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(4))
->method('get')
- ->withConsecutive(
- ['ExistingGroup1'],
- ['ExistingGroup2'],
- ['ExistingGroup1'],
- ['ExistingGroup2']
- )
->willReturnMap([
['ExistingGroup1', $existingGroup1],
['ExistingGroup2', $existingGroup2]
]);
+
+ $calls = [
+ ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup1', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup2', ['app' => 'ocs_api']],
+ ];
$this->logger
->expects($this->exactly(3))
->method('info')
- ->withConsecutive(
- ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup1', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup2', ['app' => 'ocs_api']]
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
$this->groupManager
@@ -1022,16 +1054,12 @@ class UsersControllerTest extends TestCase {
$subAdminManager
->expects($this->exactly(2))
->method('isSubAdminOfGroup')
- ->withConsecutive(
- [$loggedInUser, $existingGroup1],
- [$loggedInUser, $existingGroup2]
- )
- ->willReturn(true);
+ ->willReturnMap([
+ [$loggedInUser, $existingGroup1, true],
+ [$loggedInUser, $existingGroup2, true],
+ ]);
- $this->assertTrue(key_exists(
- 'id',
- $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup1', 'ExistingGroup2'])->getData()
- ));
+ $this->assertArrayHasKey('id', $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup1', 'ExistingGroup2'])->getData());
}
@@ -1115,6 +1143,7 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ IAccountManager::PROPERTY_BLUESKY => ['value' => 'bluesky'],
IAccountManager::PROPERTY_FEDIVERSE => ['value' => 'fediverse'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
@@ -1191,6 +1220,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'groups' => ['group0', 'group1', 'group2'],
'language' => 'de',
@@ -1304,6 +1334,7 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ IAccountManager::PROPERTY_BLUESKY => ['value' => 'bluesky'],
IAccountManager::PROPERTY_FEDIVERSE => ['value' => 'fediverse'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
@@ -1336,6 +1367,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'groups' => [],
'language' => 'da',
@@ -1488,6 +1520,7 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ IAccountManager::PROPERTY_BLUESKY => ['value' => 'bluesky'],
IAccountManager::PROPERTY_FEDIVERSE => ['value' => 'fediverse'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
@@ -1519,6 +1552,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'groups' => [],
'language' => 'ru',
@@ -1540,7 +1574,7 @@ class UsersControllerTest extends TestCase {
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UID']));
}
- public function dataSearchByPhoneNumbers(): array {
+ public static function dataSearchByPhoneNumbers(): array {
return [
'Invalid country' => ['Not a country code', ['12345' => ['NaN']], 400, null, null, []],
'No number to search' => ['DE', ['12345' => ['NaN']], 200, null, null, []],
@@ -1553,13 +1587,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataSearchByPhoneNumbers
- * @param string $location
- * @param array $search
- * @param int $status
- * @param array $expected
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataSearchByPhoneNumbers')]
public function testSearchByPhoneNumbers(string $location, array $search, int $status, ?array $searchUsers, ?array $userMatches, array $expected): void {
$knownTo = 'knownTo';
$user = $this->createMock(IUser::class);
@@ -1655,7 +1683,7 @@ class UsersControllerTest extends TestCase {
->willReturn($targetUser);
$targetUser
->expects($this->once())
- ->method('setEMailAddress')
+ ->method('setSystemEMailAddress')
->with('demo@nextcloud.com');
$targetUser
->expects($this->any())
@@ -1668,6 +1696,8 @@ class UsersControllerTest extends TestCase {
->method('getBackend')
->willReturn($backend);
+ $this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => $default);
+
$this->assertEquals([], $this->api->editUser('UserToEdit', 'email', 'demo@nextcloud.com')->getData());
}
@@ -1862,12 +1892,15 @@ class UsersControllerTest extends TestCase {
->method('getBackend')
->willReturn($backend);
+ $this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => $default);
+
$this->api->editUser('UserToEdit', 'email', 'demo.org');
}
- public function selfEditChangePropertyProvider() {
+ public static function selfEditChangePropertyProvider(): array {
return [
[IAccountManager::PROPERTY_TWITTER, '@oldtwitter', '@newtwitter'],
+ [IAccountManager::PROPERTY_BLUESKY, 'old.bluesky', 'new.bluesky'],
[IAccountManager::PROPERTY_FEDIVERSE, '@oldFediverse@floss.social', '@newFediverse@floss.social'],
[IAccountManager::PROPERTY_PHONE, '1234', '12345'],
[IAccountManager::PROPERTY_ADDRESS, 'Something street 2', 'Another street 3'],
@@ -1881,9 +1914,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider selfEditChangePropertyProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('selfEditChangePropertyProvider')]
public function testEditUserRegularUserSelfEditChangeProperty($propertyName, $oldValue, $newValue): void {
$loggedInUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
@@ -1946,6 +1977,7 @@ class UsersControllerTest extends TestCase {
[IAccountManager::PROPERTY_DISPLAYNAME, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
[IAccountManager::PROPERTY_EMAIL, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
[IAccountManager::PROPERTY_TWITTER, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
+ [IAccountManager::PROPERTY_BLUESKY, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
[IAccountManager::PROPERTY_FEDIVERSE, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
[IAccountManager::PROPERTY_PHONE, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
[IAccountManager::PROPERTY_ADDRESS, IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_FEDERATED],
@@ -1959,9 +1991,7 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider selfEditChangePropertyProvider
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('selfEditChangePropertyProvider')]
public function testEditUserRegularUserSelfEditChangePropertyScope($propertyName, $oldScope, $newScope): void {
$loggedInUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
@@ -2289,16 +2319,14 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'de')->getData());
}
- public function dataEditUserSelfEditChangeLanguageButForced() {
+ public static function dataEditUserSelfEditChangeLanguageButForced(): array {
return [
['de'],
[true],
];
}
- /**
- * @dataProvider dataEditUserSelfEditChangeLanguageButForced
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataEditUserSelfEditChangeLanguageButForced')]
public function testEditUserSelfEditChangeLanguageButForced($forced): void {
$this->expectException(OCSException::class);
@@ -2392,9 +2420,7 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'de')->getData());
}
- /**
- * @dataProvider dataEditUserSelfEditChangeLanguageButForced
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataEditUserSelfEditChangeLanguageButForced')]
public function testEditUserAdminEditChangeLanguageInvalidLanguage(): void {
$this->expectException(OCSException::class);
@@ -3820,6 +3846,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3837,6 +3864,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'organisation' => 'organisation',
'role' => 'role',
@@ -3858,6 +3886,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'organisation' => 'organisation',
'role' => 'role',
@@ -3911,6 +3940,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3924,6 +3954,7 @@ class UsersControllerTest extends TestCase {
'address' => 'address',
'website' => 'website',
'twitter' => 'twitter',
+ 'bluesky' => 'bluesky',
'fediverse' => 'fediverse',
'displayname' => 'Demo User',
'display-name' => 'Demo User',
@@ -3937,11 +3968,10 @@ class UsersControllerTest extends TestCase {
$api->expects($this->exactly(2))
->method('getUserData')
- ->withConsecutive(
- ['uid', false],
- ['currentuser', true],
- )
- ->willReturn($expected);
+ ->willReturnMap([
+ ['uid', false, $expected],
+ ['currentuser', true, $expected],
+ ]);
$this->assertSame($expected, $api->getUser('uid')->getData());
@@ -4258,14 +4288,32 @@ class UsersControllerTest extends TestCase {
}
- public function dataGetEditableFields() {
+ public static function dataGetEditableFields(): array {
return [
- [false, ISetDisplayNameBackend::class, [
+ [false, true, ISetDisplayNameBackend::class, [
+ IAccountManager::PROPERTY_EMAIL,
+ IAccountManager::COLLECTION_EMAIL,
+ IAccountManager::PROPERTY_PHONE,
+ IAccountManager::PROPERTY_ADDRESS,
+ IAccountManager::PROPERTY_WEBSITE,
+ IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
+ IAccountManager::PROPERTY_FEDIVERSE,
+ IAccountManager::PROPERTY_ORGANISATION,
+ IAccountManager::PROPERTY_ROLE,
+ IAccountManager::PROPERTY_HEADLINE,
+ IAccountManager::PROPERTY_BIOGRAPHY,
+ IAccountManager::PROPERTY_PROFILE_ENABLED,
+ IAccountManager::PROPERTY_PRONOUNS,
+ ]],
+ [true, false, ISetDisplayNameBackend::class, [
+ IAccountManager::PROPERTY_DISPLAYNAME,
IAccountManager::COLLECTION_EMAIL,
IAccountManager::PROPERTY_PHONE,
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
IAccountManager::PROPERTY_FEDIVERSE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
@@ -4274,7 +4322,7 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_PROFILE_ENABLED,
IAccountManager::PROPERTY_PRONOUNS,
]],
- [true, ISetDisplayNameBackend::class, [
+ [true, true, ISetDisplayNameBackend::class, [
IAccountManager::PROPERTY_DISPLAYNAME,
IAccountManager::PROPERTY_EMAIL,
IAccountManager::COLLECTION_EMAIL,
@@ -4282,6 +4330,7 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
IAccountManager::PROPERTY_FEDIVERSE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
@@ -4290,13 +4339,75 @@ class UsersControllerTest extends TestCase {
IAccountManager::PROPERTY_PROFILE_ENABLED,
IAccountManager::PROPERTY_PRONOUNS,
]],
- [true, UserInterface::class, [
+ [false, false, ISetDisplayNameBackend::class, [
+ IAccountManager::COLLECTION_EMAIL,
+ IAccountManager::PROPERTY_PHONE,
+ IAccountManager::PROPERTY_ADDRESS,
+ IAccountManager::PROPERTY_WEBSITE,
+ IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
+ IAccountManager::PROPERTY_FEDIVERSE,
+ IAccountManager::PROPERTY_ORGANISATION,
+ IAccountManager::PROPERTY_ROLE,
+ IAccountManager::PROPERTY_HEADLINE,
+ IAccountManager::PROPERTY_BIOGRAPHY,
+ IAccountManager::PROPERTY_PROFILE_ENABLED,
+ IAccountManager::PROPERTY_PRONOUNS,
+ ]],
+ [false, true, UserInterface::class, [
IAccountManager::PROPERTY_EMAIL,
IAccountManager::COLLECTION_EMAIL,
IAccountManager::PROPERTY_PHONE,
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
+ IAccountManager::PROPERTY_FEDIVERSE,
+ IAccountManager::PROPERTY_ORGANISATION,
+ IAccountManager::PROPERTY_ROLE,
+ IAccountManager::PROPERTY_HEADLINE,
+ IAccountManager::PROPERTY_BIOGRAPHY,
+ IAccountManager::PROPERTY_PROFILE_ENABLED,
+ IAccountManager::PROPERTY_PRONOUNS,
+ ]],
+ [true, false, UserInterface::class, [
+ IAccountManager::COLLECTION_EMAIL,
+ IAccountManager::PROPERTY_PHONE,
+ IAccountManager::PROPERTY_ADDRESS,
+ IAccountManager::PROPERTY_WEBSITE,
+ IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
+ IAccountManager::PROPERTY_FEDIVERSE,
+ IAccountManager::PROPERTY_ORGANISATION,
+ IAccountManager::PROPERTY_ROLE,
+ IAccountManager::PROPERTY_HEADLINE,
+ IAccountManager::PROPERTY_BIOGRAPHY,
+ IAccountManager::PROPERTY_PROFILE_ENABLED,
+ IAccountManager::PROPERTY_PRONOUNS,
+ ]],
+ [true, true, UserInterface::class, [
+ IAccountManager::PROPERTY_EMAIL,
+ IAccountManager::COLLECTION_EMAIL,
+ IAccountManager::PROPERTY_PHONE,
+ IAccountManager::PROPERTY_ADDRESS,
+ IAccountManager::PROPERTY_WEBSITE,
+ IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
+ IAccountManager::PROPERTY_FEDIVERSE,
+ IAccountManager::PROPERTY_ORGANISATION,
+ IAccountManager::PROPERTY_ROLE,
+ IAccountManager::PROPERTY_HEADLINE,
+ IAccountManager::PROPERTY_BIOGRAPHY,
+ IAccountManager::PROPERTY_PROFILE_ENABLED,
+ IAccountManager::PROPERTY_PRONOUNS,
+ ]],
+ [false, false, UserInterface::class, [
+ IAccountManager::COLLECTION_EMAIL,
+ IAccountManager::PROPERTY_PHONE,
+ IAccountManager::PROPERTY_ADDRESS,
+ IAccountManager::PROPERTY_WEBSITE,
+ IAccountManager::PROPERTY_TWITTER,
+ IAccountManager::PROPERTY_BLUESKY,
IAccountManager::PROPERTY_FEDIVERSE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
@@ -4308,20 +4419,13 @@ class UsersControllerTest extends TestCase {
];
}
- /**
- * @dataProvider dataGetEditableFields
- *
- * @param bool $allowedToChangeDisplayName
- * @param string $userBackend
- * @param array $expected
- */
- public function testGetEditableFields(bool $allowedToChangeDisplayName, string $userBackend, array $expected): void {
- $this->config
- ->method('getSystemValue')
- ->with(
- $this->equalTo('allow_user_to_change_display_name'),
- $this->anything()
- )->willReturn($allowedToChangeDisplayName);
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetEditableFields')]
+ public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $allowedToChangeEmail, string $userBackend, array $expected): void {
+ $this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => match ($key) {
+ 'allow_user_to_change_display_name' => $allowedToChangeDisplayName,
+ 'allow_user_to_change_email' => $allowedToChangeEmail,
+ default => throw new RuntimeException('Unexpected system config key: ' . $key),
+ });
$user = $this->createMock(IUser::class);
$this->userSession->method('getUser')
@@ -4350,7 +4454,7 @@ class UsersControllerTest extends TestCase {
$account = $this->createMock(IAccount::class);
$account->method('getProperty')
- ->will($this->returnValueMap($mockedProperties));
+ ->willReturnMap($mockedProperties);
$this->accountManager->expects($this->any())->method('getAccount')
->with($targetUser)
diff --git a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
index d097febb04f..c027e518a3d 100644
--- a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
+++ b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -24,34 +25,27 @@ class ProvisioningApiMiddlewareTest extends TestCase {
$this->reflector = $this->createMock(IControllerMethodReflector::class);
}
- public function dataAnnotation() {
+ public static function dataAnnotation(): array {
return [
[false, false, false, false, false],
- [false, false, true, false, false],
- [false, true, true, false, false],
- [ true, false, false, false, true],
- [ true, false, true, false, false],
- [ true, true, false, false, false],
- [ true, true, true, false, false],
+ [false, false, true, false, false],
+ [false, true, true, false, false],
+ [true, false, false, false, true],
+ [true, false, true, false, false],
+ [true, true, false, false, false],
+ [true, true, true, false, false],
[false, false, false, true, false],
- [false, false, true, true, false],
- [false, true, true, true, false],
- [ true, false, false, true, false],
- [ true, false, true, true, false],
- [ true, true, false, true, false],
- [ true, true, true, true, false],
+ [false, false, true, true, false],
+ [false, true, true, true, false],
+ [true, false, false, true, false],
+ [true, false, true, true, false],
+ [true, true, false, true, false],
+ [true, true, true, true, false],
];
}
- /**
- * @dataProvider dataAnnotation
- *
- * @param bool $subadminRequired
- * @param bool $isAdmin
- * @param bool $isSubAdmin
- * @param bool $shouldThrowException
- */
- public function testBeforeController($subadminRequired, $isAdmin, $isSubAdmin, $hasSettingAuthorizationAnnotation, $shouldThrowException): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAnnotation')]
+ public function testBeforeController(bool $subadminRequired, bool $isAdmin, bool $isSubAdmin, bool $hasSettingAuthorizationAnnotation, bool $shouldThrowException): void {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
$isAdmin,
@@ -80,20 +74,15 @@ class ProvisioningApiMiddlewareTest extends TestCase {
}
}
- public function dataAfterException() {
+ public static function dataAfterException(): array {
return [
[new NotSubAdminException(), false],
[new \Exception('test', 42), true],
];
}
- /**
- * @dataProvider dataAfterException
- *
- * @param \Exception $e
- * @param bool $forwared
- */
- public function testAfterException(\Exception $exception, $forwared): void {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataAfterException')]
+ public function testAfterException(\Exception $exception, bool $forwared): void {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
false,
diff --git a/apps/provisioning_api/tests/TestCase.php b/apps/provisioning_api/tests/TestCase.php
index de2a0120184..30e7f3a4ecf 100644
--- a/apps/provisioning_api/tests/TestCase.php
+++ b/apps/provisioning_api/tests/TestCase.php
@@ -10,6 +10,7 @@ namespace OCA\Provisioning_API\Tests;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserManager;
+use OCP\Server;
abstract class TestCase extends \Test\TestCase {
@@ -25,8 +26,8 @@ abstract class TestCase extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->userManager = \OC::$server->getUserManager();
- $this->groupManager = \OC::$server->getGroupManager();
+ $this->userManager = Server::get(IUserManager::class);
+ $this->groupManager = Server::get(IGroupManager::class);
$this->groupManager->createGroup('admin');
}