diff options
Diffstat (limited to 'apps/user_ldap')
179 files changed, 1086 insertions, 3241 deletions
diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php index f09295355ac..68bce69f982 100644 --- a/apps/user_ldap/ajax/deleteConfiguration.php +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -1,8 +1,6 @@ <?php use OCA\User_LDAP\Helper; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use OCP\Util; @@ -17,7 +15,7 @@ use OCP\Util; \OC_JSON::callCheck(); $prefix = (string)$_POST['ldap_serverconfig_chooser']; -$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); +$helper = Server::get(Helper::class); if ($helper->deleteServerConfiguration($prefix)) { \OC_JSON::success(); } else { diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index e8746a7c1b1..e5ba6375c73 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -2,8 +2,6 @@ use OCA\User_LDAP\Configuration; use OCA\User_LDAP\Helper; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; /** @@ -16,7 +14,7 @@ use OCP\Server; \OC_JSON::checkAppEnabled('user_ldap'); \OC_JSON::callCheck(); -$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); +$helper = Server::get(Helper::class); $serverConnections = $helper->getServerConfigurationPrefixes(); sort($serverConnections); $lk = array_pop($serverConnections); diff --git a/apps/user_ldap/css/renewPassword.css b/apps/user_ldap/css/renewPassword.css index 0fe8c4d183e..8acd97254fa 100644 --- a/apps/user_ldap/css/renewPassword.css +++ b/apps/user_ldap/css/renewPassword.css @@ -33,7 +33,6 @@ letter-spacing:normal; line-break:auto; line-height:1.6; - text-align:left; text-align:start; text-decoration:none; text-shadow:none; diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css index 3aa9b2a168e..a1048031fa2 100644 --- a/apps/user_ldap/css/settings.css +++ b/apps/user_ldap/css/settings.css @@ -202,10 +202,12 @@ select[multiple=multiple] + button { width: 16px; vertical-align: text-bottom; } + .ldap_config_state_indicator_sign.success { background: #37ce02; border-radius: 8px; } + .ldap_config_state_indicator_sign.error { background: #ce3702; } diff --git a/apps/user_ldap/l10n/ach.js b/apps/user_ldap/l10n/ach.js deleted file mode 100644 index 95c97db2f9c..00000000000 --- a/apps/user_ldap/l10n/ach.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/ach.json b/apps/user_ldap/l10n/ach.json deleted file mode 100644 index 8e0cd6f6783..00000000000 --- a/apps/user_ldap/l10n/ach.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ady.js b/apps/user_ldap/l10n/ady.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/ady.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ady.json b/apps/user_ldap/l10n/ady.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/ady.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ak.js b/apps/user_ldap/l10n/ak.js deleted file mode 100644 index a88c80b7933..00000000000 --- a/apps/user_ldap/l10n/ak.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=n > 1;"); diff --git a/apps/user_ldap/l10n/ak.json b/apps/user_ldap/l10n/ak.json deleted file mode 100644 index 58fcef711ee..00000000000 --- a/apps/user_ldap/l10n/ak.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=n > 1;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/am_ET.js b/apps/user_ldap/l10n/am_ET.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/am_ET.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/am_ET.json b/apps/user_ldap/l10n/am_ET.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/am_ET.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ast.js b/apps/user_ldap/l10n/ast.js deleted file mode 100644 index 2561ee32f6b..00000000000 --- a/apps/user_ldap/l10n/ast.js +++ /dev/null @@ -1,152 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Fallu al llimpiar los mapeos.", - "Failed to delete the server configuration" : "Fallu al desaniciar la configuración del sirvidor", - "Valid configuration, connection established!" : "¡Configuración válida, afitóse la conexón!", - "Invalid configuration. Please have a look at the logs for further details." : "Configuración non válida. Écha-yos un güeyu a los rexistros pa más detalles, por favor.", - "No action specified" : "Nun s'especificó l'aición", - "No configuration specified" : "Nun s'especificó la configuración", - "No data specified" : "Nun s'especificaron los datos", - " Could not set configuration %s" : "Nun pudo afitase la configuración %s", - "Action does not exist" : "L'acción nun esiste", - "Renewing …" : "Renovando...", - "Very weak password" : "Contraseña perfeble", - "Weak password" : "Contraseña feble", - "So-so password" : "Contraseña normalina", - "Good password" : "Contraseña bona", - "Strong password" : "Contraseña fuerte", - "The Base DN appears to be wrong" : "La base DN paez tar mal", - "Testing configuration…" : "Probando configuración...", - "Configuration incorrect" : "Configuración incorreuta", - "Configuration incomplete" : "Configuración incompleta", - "Configuration OK" : "Configuración correuta", - "Select groups" : "Esbillar grupos", - "Select object classes" : "Esbillar les clases d'oxetu", - "Please check the credentials, they seem to be wrong." : "Por favor, compruebe les credenciales, que paecen tar mal.", - "Please specify the port, it could not be auto-detected." : "Por favor especifica'l puertu, nun puede ser detectáu automáticamente .", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nun puede ser detectada automáticamente, por favor revisa les credenciales, host yá'l puertu.", - "Could not detect Base DN, please enter it manually." : "Nun se detectó base DN, por favor introduzla manualmente .", - "{nthServer}. Server" : "{nthServer}. Sirvidor", - "No object found in the given Base DN. Please revise." : "Nun s'atopó nengún oxetu na Base DN dada. Por favor, revísalo.", - "More than 1,000 directory entries available." : "Más de 1.000 entraes de directoriu disponibles.", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Asocedió un erru. Por favor, compruebe la Base DN , amás de la configuración de conexón y les credenciales.", - "Do you really want to delete the current Server Configuration?" : "¿Daveres que quies desaniciar la configuración actual del sirvidor?", - "Confirm Deletion" : "Confirmar desaniciu", - "Mappings cleared successfully!" : "¡Asignaciones borraes correutamente!", - "Error while clearing the mappings." : "Fallu mientres desaniciaben les asignaciones.", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Nun s'almite l'enllaz anónimu. Por favor apurre un usuariu DN y contraseña.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Erru d'operaciones LDAP . Enllaz anónimu nun s'almite.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Nun pudo guardase. Por favor asegúrate que la base de datos ta en funcionamientu. Actualiza enantes de siguir.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar el mou va habilitar les consultes LDAP automátiques . Dependiendo del to tamañu de LDAP puede llevar un tiempu. ¿Inda deseya camudar el mou?", - "Select attributes" : "Esbillar atributos", - "User found and settings verified." : "Usuariu atopáu y la configuración verificada.", - "An unspecified error occurred. Please check log and settings." : "Asocedió un fallu non especificáu. Comprueba'l rexistru y los axustes, por favor.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtru de busca nun ye válidu , probablemente por cuenta de problemes de sintaxis como'l númberu impar de soportes abiertos y zarraos. Por favor revisalo.", - "Please provide a login name to test against" : "Por favor, proporcione un nombre de inicio de sesión para comprobar en contra", - "Your password will expire today." : "Güei caduca la to contraseña.", - "Could not find the desired feature" : "Nun pudo alcontrase la carauterística deseyada", - "Invalid Host" : "Agospiu non válidu", - "Test Configuration" : "Configuración de prueba", - "Help" : "Ayuda", - "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:", - "Only these object classes:" : "Namái d'estes clases d'oxetu:", - "Only from these groups:" : "Namái d'estos grupos:", - "Search groups" : "Esbillar grupos", - "Available groups" : "Grupos disponibles", - "Selected groups" : "Grupos seleicionaos", - "Edit LDAP Query" : "Editar consulta LDAP", - "LDAP Filter:" : "Filtru LDAP:", - "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.", - "Verify settings and count the groups" : "Verificar axustes y contar los grupos", - "When logging in, %s will find the user based on the following attributes:" : "Al empecipiar sesión, %s atópase l'usuariu en función de los siguientes atributos :", - "Other Attributes:" : "Otros atributos:", - "Test Loginname" : "Preba de Nome d'Aniciu de Sesión", - "Verify settings" : "Comprobar los axustes", - "%s. Server:" : "%s. Sirvidor:", - "Copy current configuration into new directory binding" : "Copiar configuración actual nel nuevu directoriu obligatoriu", - "Delete the current configuration" : "Desaniciar la configuración actual", - "Host" : "Equipu", - "Port" : "Puertu", - "Detect Port" : "Detectar Puertu", - "User DN" : "DN usuariu", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuariu veceru col que va facese l'asociación, p.ex. uid=axente,dc=exemplu,dc=com. P'accesu anónimu, dexa DN y contraseña baleros.", - "Password" : "Contraseña", - "For anonymous access, leave DN and Password empty." : "Pa un accesu anónimu, dexar el DN y la contraseña baleros.", - "One Base DN per line" : "Un DN Base por llinia", - "You can specify Base DN for users and groups in the Advanced tab" : "Pues especificar el DN base pa usuarios y grupos na llingüeta Avanzáu", - "Detect Base DN" : "Detectar Base DN", - "Test Base DN" : "Probar Base DN", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automátiques de LDAP. Meyor pa grandes configuraciones, pero rique mayor conocimientu de LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Inxerta manualmente los filtros de LDAP (recomendáu pa direutorios llargos)", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les clases d'oxetos más comunes pa los usuarios d'Internet son organizationalPerson, persona, usuariu y inetOrgPerson . Si nun ta seguro de qué clase d'oxetu escoyer, por favor consulte al so alministrador de directorios.", - "The filter specifies which LDAP users shall have access to the %s instance." : "El filtru especifica qué usuarios LDAP puen tener accesu a %s.", - "Verify settings and count users" : "Comprobar la configuración y usuarios de recuentu", - "Saving" : "Guardando", - "Back" : "Atrás", - "Continue" : "Continuar", - "Please renew your password." : "Renueva la to contraseña, por favor.", - "An internal error occurred." : "Asocedió un fallu internu.", - "Please try again or contact your administrator." : "Volvi tentalo o contauta col to alministrador, por favor.", - "Current password" : "Contraseña actual", - "New password" : "Contraseña nueva", - "Renew password" : "Renovar contraseña", - "Wrong password." : "Contraseña incorreuta.", - "Cancel" : "Encaboxar", - "Server" : "Sirvidor", - "Users" : "Usuarios", - "Login Attributes" : "Los atributos d'aniciu de sesión", - "Groups" : "Grupos", - "Expert" : "Espertu", - "Advanced" : "Avanzáu", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avisu:</b> El módulu LDAP de PHP nun ta instaláu, el sistema nun va funcionar. Por favor consulta al alministrador del sistema pa instalalu.", - "Connection Settings" : "Axustes de conexón", - "Configuration Active" : "Configuración activa", - "When unchecked, this configuration will be skipped." : "Cuando nun tea conseñáu, saltaráse esta configuración.", - "Backup (Replica) Host" : "Sirvidor de copia de seguranza (Réplica)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Dar un sirvidor de copia de seguranza opcional. Tien de ser una réplica del sirvidor principal LDAP / AD.", - "Backup (Replica) Port" : "Puertu pa copies de seguranza (Réplica)", - "Disable Main Server" : "Deshabilitar sirvidor principal", - "Only connect to the replica server." : "Coneutar namái col sirvidor de réplica.", - "Turn off SSL certificate validation." : "Apagar la validación del certificáu SSL.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nun se recomienda, ¡úsalu namái pa pruebes! Si la conexón namái funciona con esta opción, importa'l certificáu SSL del sirvidor LDAP nel to sirvidor %s.", - "Cache Time-To-Live" : "Cache Time-To-Live", - "in seconds. A change empties the cache." : "en segundos. Un cambéu vacia la caché.", - "Directory Settings" : "Axustes del direutoriu", - "User Display Name Field" : "Campu de nome d'usuariu a amosar", - "The LDAP attribute to use to generate the user's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del usuariu.", - "2nd User Display Name Field" : "2ª usuariu amuesa Nome del campu", - "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributu LDAP que s'amesta al nome de visualización ente paréntesis. Los resultaos en, por exemplu, »John Doe (john.doe@example.org)«.", - "Base User Tree" : "Árbol base d'usuariu", - "One User Base DN per line" : "Un DN Base d'Usuariu por llinia", - "User Search Attributes" : "Atributos de la gueta d'usuariu", - "Optional; one attribute per line" : "Opcional; un atributu por llinia", - "Group Display Name Field" : "Campu de nome de grupu a amosar", - "The LDAP attribute to use to generate the groups's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del grupu.", - "Base Group Tree" : "Árbol base de grupu", - "One Group Base DN per line" : "Un DN Base de Grupu por llinia", - "Group Search Attributes" : "Atributos de gueta de grupu", - "Group-Member association" : "Asociación Grupu-Miembru", - "Dynamic Group Member URL" : "URL Dinámica de Grupu d'Usuarios", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "L'atributu LDAP que nos oxetos de grupu contien una gueta de URLs de LDAP que determina qué oxetos pertenecen al grupu. (Un axuste vacíu desanicia la funcionalidá dinámica de pertenencia al grupu.)", - "Nested Groups" : "Grupos añeraos", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando s'active, van permitise grupos que contengan otros grupos (namái funciona si l'atributu de miembru de grupu contién DNs).", - "Paging chunksize" : "Tamañu de los fragmentos de paxinación", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamañu de los fragmentos usáu pa busques LDAP paxinaes que puen devolver resultaos voluminosos, como enubmeración d'usuarios o de grupos. (Si s'afita en 0, van deshabilitase les busques LDAP paxinaes neses situaciones.)", - "(New password is sent as plain text to LDAP)" : "(La contraseña únviase como testu planu a LDAP)", - "Special Attributes" : "Atributos especiales", - "Quota Field" : "Cuota", - "Quota Default" : "Cuota por defeutu", - "Email Field" : "E-mail", - "User Home Folder Naming Rule" : "Regla pa la carpeta Home d'usuariu", - "Internal Username" : "Nome d'usuariu internu", - "Internal Username Attribute:" : "Atributu Nome d'usuariu Internu:", - "Override UUID detection" : "Sobrescribir la deteición UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defeutu, l'atributu UUID autodetéutase. Esti atributu úsase pa identificar induldablemente usuarios y grupos LDAP. Arriendes, el nome d'usuariu internu va crease en bas al UUID, si nun s'especificó otru comportamientu arriba. Pues sobrescribir la configuración y pasar un atributu de la to eleición. Tienes d'asegurate de que l'atributu de la to eleición seya accesible polos usuarios y grupos y ser únicu. Déxalu en blanco pa usar el comportamientu por defeutu. Los cambeos van tener efeutu namái nos usuarios y grupos de LDAP mapeaos (amestaos) recién.", - "UUID Attribute for Users:" : "Atributu UUID pa usuarios:", - "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:", - "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP", - "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP", - "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ast.json b/apps/user_ldap/l10n/ast.json deleted file mode 100644 index 8d3e332c21f..00000000000 --- a/apps/user_ldap/l10n/ast.json +++ /dev/null @@ -1,150 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Fallu al llimpiar los mapeos.", - "Failed to delete the server configuration" : "Fallu al desaniciar la configuración del sirvidor", - "Valid configuration, connection established!" : "¡Configuración válida, afitóse la conexón!", - "Invalid configuration. Please have a look at the logs for further details." : "Configuración non válida. Écha-yos un güeyu a los rexistros pa más detalles, por favor.", - "No action specified" : "Nun s'especificó l'aición", - "No configuration specified" : "Nun s'especificó la configuración", - "No data specified" : "Nun s'especificaron los datos", - " Could not set configuration %s" : "Nun pudo afitase la configuración %s", - "Action does not exist" : "L'acción nun esiste", - "Renewing …" : "Renovando...", - "Very weak password" : "Contraseña perfeble", - "Weak password" : "Contraseña feble", - "So-so password" : "Contraseña normalina", - "Good password" : "Contraseña bona", - "Strong password" : "Contraseña fuerte", - "The Base DN appears to be wrong" : "La base DN paez tar mal", - "Testing configuration…" : "Probando configuración...", - "Configuration incorrect" : "Configuración incorreuta", - "Configuration incomplete" : "Configuración incompleta", - "Configuration OK" : "Configuración correuta", - "Select groups" : "Esbillar grupos", - "Select object classes" : "Esbillar les clases d'oxetu", - "Please check the credentials, they seem to be wrong." : "Por favor, compruebe les credenciales, que paecen tar mal.", - "Please specify the port, it could not be auto-detected." : "Por favor especifica'l puertu, nun puede ser detectáu automáticamente .", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nun puede ser detectada automáticamente, por favor revisa les credenciales, host yá'l puertu.", - "Could not detect Base DN, please enter it manually." : "Nun se detectó base DN, por favor introduzla manualmente .", - "{nthServer}. Server" : "{nthServer}. Sirvidor", - "No object found in the given Base DN. Please revise." : "Nun s'atopó nengún oxetu na Base DN dada. Por favor, revísalo.", - "More than 1,000 directory entries available." : "Más de 1.000 entraes de directoriu disponibles.", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Asocedió un erru. Por favor, compruebe la Base DN , amás de la configuración de conexón y les credenciales.", - "Do you really want to delete the current Server Configuration?" : "¿Daveres que quies desaniciar la configuración actual del sirvidor?", - "Confirm Deletion" : "Confirmar desaniciu", - "Mappings cleared successfully!" : "¡Asignaciones borraes correutamente!", - "Error while clearing the mappings." : "Fallu mientres desaniciaben les asignaciones.", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Nun s'almite l'enllaz anónimu. Por favor apurre un usuariu DN y contraseña.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Erru d'operaciones LDAP . Enllaz anónimu nun s'almite.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Nun pudo guardase. Por favor asegúrate que la base de datos ta en funcionamientu. Actualiza enantes de siguir.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar el mou va habilitar les consultes LDAP automátiques . Dependiendo del to tamañu de LDAP puede llevar un tiempu. ¿Inda deseya camudar el mou?", - "Select attributes" : "Esbillar atributos", - "User found and settings verified." : "Usuariu atopáu y la configuración verificada.", - "An unspecified error occurred. Please check log and settings." : "Asocedió un fallu non especificáu. Comprueba'l rexistru y los axustes, por favor.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtru de busca nun ye válidu , probablemente por cuenta de problemes de sintaxis como'l númberu impar de soportes abiertos y zarraos. Por favor revisalo.", - "Please provide a login name to test against" : "Por favor, proporcione un nombre de inicio de sesión para comprobar en contra", - "Your password will expire today." : "Güei caduca la to contraseña.", - "Could not find the desired feature" : "Nun pudo alcontrase la carauterística deseyada", - "Invalid Host" : "Agospiu non válidu", - "Test Configuration" : "Configuración de prueba", - "Help" : "Ayuda", - "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:", - "Only these object classes:" : "Namái d'estes clases d'oxetu:", - "Only from these groups:" : "Namái d'estos grupos:", - "Search groups" : "Esbillar grupos", - "Available groups" : "Grupos disponibles", - "Selected groups" : "Grupos seleicionaos", - "Edit LDAP Query" : "Editar consulta LDAP", - "LDAP Filter:" : "Filtru LDAP:", - "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.", - "Verify settings and count the groups" : "Verificar axustes y contar los grupos", - "When logging in, %s will find the user based on the following attributes:" : "Al empecipiar sesión, %s atópase l'usuariu en función de los siguientes atributos :", - "Other Attributes:" : "Otros atributos:", - "Test Loginname" : "Preba de Nome d'Aniciu de Sesión", - "Verify settings" : "Comprobar los axustes", - "%s. Server:" : "%s. Sirvidor:", - "Copy current configuration into new directory binding" : "Copiar configuración actual nel nuevu directoriu obligatoriu", - "Delete the current configuration" : "Desaniciar la configuración actual", - "Host" : "Equipu", - "Port" : "Puertu", - "Detect Port" : "Detectar Puertu", - "User DN" : "DN usuariu", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuariu veceru col que va facese l'asociación, p.ex. uid=axente,dc=exemplu,dc=com. P'accesu anónimu, dexa DN y contraseña baleros.", - "Password" : "Contraseña", - "For anonymous access, leave DN and Password empty." : "Pa un accesu anónimu, dexar el DN y la contraseña baleros.", - "One Base DN per line" : "Un DN Base por llinia", - "You can specify Base DN for users and groups in the Advanced tab" : "Pues especificar el DN base pa usuarios y grupos na llingüeta Avanzáu", - "Detect Base DN" : "Detectar Base DN", - "Test Base DN" : "Probar Base DN", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automátiques de LDAP. Meyor pa grandes configuraciones, pero rique mayor conocimientu de LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Inxerta manualmente los filtros de LDAP (recomendáu pa direutorios llargos)", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les clases d'oxetos más comunes pa los usuarios d'Internet son organizationalPerson, persona, usuariu y inetOrgPerson . Si nun ta seguro de qué clase d'oxetu escoyer, por favor consulte al so alministrador de directorios.", - "The filter specifies which LDAP users shall have access to the %s instance." : "El filtru especifica qué usuarios LDAP puen tener accesu a %s.", - "Verify settings and count users" : "Comprobar la configuración y usuarios de recuentu", - "Saving" : "Guardando", - "Back" : "Atrás", - "Continue" : "Continuar", - "Please renew your password." : "Renueva la to contraseña, por favor.", - "An internal error occurred." : "Asocedió un fallu internu.", - "Please try again or contact your administrator." : "Volvi tentalo o contauta col to alministrador, por favor.", - "Current password" : "Contraseña actual", - "New password" : "Contraseña nueva", - "Renew password" : "Renovar contraseña", - "Wrong password." : "Contraseña incorreuta.", - "Cancel" : "Encaboxar", - "Server" : "Sirvidor", - "Users" : "Usuarios", - "Login Attributes" : "Los atributos d'aniciu de sesión", - "Groups" : "Grupos", - "Expert" : "Espertu", - "Advanced" : "Avanzáu", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avisu:</b> El módulu LDAP de PHP nun ta instaláu, el sistema nun va funcionar. Por favor consulta al alministrador del sistema pa instalalu.", - "Connection Settings" : "Axustes de conexón", - "Configuration Active" : "Configuración activa", - "When unchecked, this configuration will be skipped." : "Cuando nun tea conseñáu, saltaráse esta configuración.", - "Backup (Replica) Host" : "Sirvidor de copia de seguranza (Réplica)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Dar un sirvidor de copia de seguranza opcional. Tien de ser una réplica del sirvidor principal LDAP / AD.", - "Backup (Replica) Port" : "Puertu pa copies de seguranza (Réplica)", - "Disable Main Server" : "Deshabilitar sirvidor principal", - "Only connect to the replica server." : "Coneutar namái col sirvidor de réplica.", - "Turn off SSL certificate validation." : "Apagar la validación del certificáu SSL.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nun se recomienda, ¡úsalu namái pa pruebes! Si la conexón namái funciona con esta opción, importa'l certificáu SSL del sirvidor LDAP nel to sirvidor %s.", - "Cache Time-To-Live" : "Cache Time-To-Live", - "in seconds. A change empties the cache." : "en segundos. Un cambéu vacia la caché.", - "Directory Settings" : "Axustes del direutoriu", - "User Display Name Field" : "Campu de nome d'usuariu a amosar", - "The LDAP attribute to use to generate the user's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del usuariu.", - "2nd User Display Name Field" : "2ª usuariu amuesa Nome del campu", - "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributu LDAP que s'amesta al nome de visualización ente paréntesis. Los resultaos en, por exemplu, »John Doe (john.doe@example.org)«.", - "Base User Tree" : "Árbol base d'usuariu", - "One User Base DN per line" : "Un DN Base d'Usuariu por llinia", - "User Search Attributes" : "Atributos de la gueta d'usuariu", - "Optional; one attribute per line" : "Opcional; un atributu por llinia", - "Group Display Name Field" : "Campu de nome de grupu a amosar", - "The LDAP attribute to use to generate the groups's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del grupu.", - "Base Group Tree" : "Árbol base de grupu", - "One Group Base DN per line" : "Un DN Base de Grupu por llinia", - "Group Search Attributes" : "Atributos de gueta de grupu", - "Group-Member association" : "Asociación Grupu-Miembru", - "Dynamic Group Member URL" : "URL Dinámica de Grupu d'Usuarios", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "L'atributu LDAP que nos oxetos de grupu contien una gueta de URLs de LDAP que determina qué oxetos pertenecen al grupu. (Un axuste vacíu desanicia la funcionalidá dinámica de pertenencia al grupu.)", - "Nested Groups" : "Grupos añeraos", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando s'active, van permitise grupos que contengan otros grupos (namái funciona si l'atributu de miembru de grupu contién DNs).", - "Paging chunksize" : "Tamañu de los fragmentos de paxinación", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamañu de los fragmentos usáu pa busques LDAP paxinaes que puen devolver resultaos voluminosos, como enubmeración d'usuarios o de grupos. (Si s'afita en 0, van deshabilitase les busques LDAP paxinaes neses situaciones.)", - "(New password is sent as plain text to LDAP)" : "(La contraseña únviase como testu planu a LDAP)", - "Special Attributes" : "Atributos especiales", - "Quota Field" : "Cuota", - "Quota Default" : "Cuota por defeutu", - "Email Field" : "E-mail", - "User Home Folder Naming Rule" : "Regla pa la carpeta Home d'usuariu", - "Internal Username" : "Nome d'usuariu internu", - "Internal Username Attribute:" : "Atributu Nome d'usuariu Internu:", - "Override UUID detection" : "Sobrescribir la deteición UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defeutu, l'atributu UUID autodetéutase. Esti atributu úsase pa identificar induldablemente usuarios y grupos LDAP. Arriendes, el nome d'usuariu internu va crease en bas al UUID, si nun s'especificó otru comportamientu arriba. Pues sobrescribir la configuración y pasar un atributu de la to eleición. Tienes d'asegurate de que l'atributu de la to eleición seya accesible polos usuarios y grupos y ser únicu. Déxalu en blanco pa usar el comportamientu por defeutu. Los cambeos van tener efeutu namái nos usuarios y grupos de LDAP mapeaos (amestaos) recién.", - "UUID Attribute for Users:" : "Atributu UUID pa usuarios:", - "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:", - "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP", - "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP", - "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/az.js b/apps/user_ldap/l10n/az.js deleted file mode 100644 index b431ba72723..00000000000 --- a/apps/user_ldap/l10n/az.js +++ /dev/null @@ -1,37 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Xəritələnməni silmək mümkün olmadı", - "Failed to delete the server configuration" : "Server configini silmək mümkün olmadı", - "The configuration is valid and the connection could be established!" : "Configurasiya doğrudur və qoşulmaq mümkündür!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Configurasiya doğrudur yalnız, birləşmədə səhv oldu. Xahiş olunur server quraşdırmalarını və daxil etdiyiniz verilənlərin düzgünlüyünü yoxlayasınız.", - "The configuration is invalid. Please have a look at the logs for further details." : "Configurasiya dügün deyil. Əlavə detallar üçün xahiş edirik jurnal faylına baxasınız.", - "No action specified" : "Heç bir iş təyin edilməyib", - "No configuration specified" : "Təyin edilmiş konfiqurasiya yoxdur", - "No data specified" : "Təyin edilmiş data yoxdur", - " Could not set configuration %s" : "%s configi təyin etmək mümkün olmadı", - "Configuration incorrect" : "Konfiqurasiya düzgün deyil", - "Configuration incomplete" : "Konfiqruasiya bitmiş deyil", - "Configuration OK" : "Konfiqurasiya OK-dir", - "Select groups" : "Qrupları seç", - "Select object classes" : "object class-larını seç", - "{nthServer}. Server" : "{nthServer}. Server", - "Do you really want to delete the current Server Configuration?" : "Siz hal-hazırki server konfiqini silmək istədiyinizdən həqiqətən əminsinizmi?", - "Confirm Deletion" : "Silinmənin təsdiqi", - "Select attributes" : "Atributları seç", - "_%s group found_::_%s groups found_" : ["%s qruplar tapıldı","%s qruplar tapıldı"], - "_%s user found_::_%s users found_" : ["%s istifadəçilər tapıldı","%s istifadəçilər tapıldı"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "İstifadəçinin ekran atributu adını təyin etmək mümkün deyil. Xahiş olunur sizin özünüz onu əllə ldap konfiqində təyin edəsiniz.", - "Could not find the desired feature" : "Arzulanılan imkanı tapmaq mümkün deyil", - "Invalid Host" : "Yalnış Host", - "Server" : "Server", - "Users" : "İstifadəçilər", - "Groups" : "Qruplar", - "Test Configuration" : "Konfiqurasiya testi", - "Help" : "Kömək", - "Host" : "Şəbəkədə ünvan", - "Port" : "Port", - "Password" : "Şifrə", - "Advanced" : "İrəliləmiş" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/az.json b/apps/user_ldap/l10n/az.json deleted file mode 100644 index aa5e52cb346..00000000000 --- a/apps/user_ldap/l10n/az.json +++ /dev/null @@ -1,35 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Xəritələnməni silmək mümkün olmadı", - "Failed to delete the server configuration" : "Server configini silmək mümkün olmadı", - "The configuration is valid and the connection could be established!" : "Configurasiya doğrudur və qoşulmaq mümkündür!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Configurasiya doğrudur yalnız, birləşmədə səhv oldu. Xahiş olunur server quraşdırmalarını və daxil etdiyiniz verilənlərin düzgünlüyünü yoxlayasınız.", - "The configuration is invalid. Please have a look at the logs for further details." : "Configurasiya dügün deyil. Əlavə detallar üçün xahiş edirik jurnal faylına baxasınız.", - "No action specified" : "Heç bir iş təyin edilməyib", - "No configuration specified" : "Təyin edilmiş konfiqurasiya yoxdur", - "No data specified" : "Təyin edilmiş data yoxdur", - " Could not set configuration %s" : "%s configi təyin etmək mümkün olmadı", - "Configuration incorrect" : "Konfiqurasiya düzgün deyil", - "Configuration incomplete" : "Konfiqruasiya bitmiş deyil", - "Configuration OK" : "Konfiqurasiya OK-dir", - "Select groups" : "Qrupları seç", - "Select object classes" : "object class-larını seç", - "{nthServer}. Server" : "{nthServer}. Server", - "Do you really want to delete the current Server Configuration?" : "Siz hal-hazırki server konfiqini silmək istədiyinizdən həqiqətən əminsinizmi?", - "Confirm Deletion" : "Silinmənin təsdiqi", - "Select attributes" : "Atributları seç", - "_%s group found_::_%s groups found_" : ["%s qruplar tapıldı","%s qruplar tapıldı"], - "_%s user found_::_%s users found_" : ["%s istifadəçilər tapıldı","%s istifadəçilər tapıldı"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "İstifadəçinin ekran atributu adını təyin etmək mümkün deyil. Xahiş olunur sizin özünüz onu əllə ldap konfiqində təyin edəsiniz.", - "Could not find the desired feature" : "Arzulanılan imkanı tapmaq mümkün deyil", - "Invalid Host" : "Yalnış Host", - "Server" : "Server", - "Users" : "İstifadəçilər", - "Groups" : "Qruplar", - "Test Configuration" : "Konfiqurasiya testi", - "Help" : "Kömək", - "Host" : "Şəbəkədə ünvan", - "Port" : "Port", - "Password" : "Şifrə", - "Advanced" : "İrəliləmiş" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/be.js b/apps/user_ldap/l10n/be.js deleted file mode 100644 index 99117026327..00000000000 --- a/apps/user_ldap/l10n/be.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Advanced" : "Дасведчаны" -}, -"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/user_ldap/l10n/be.json b/apps/user_ldap/l10n/be.json deleted file mode 100644 index 987589ccd81..00000000000 --- a/apps/user_ldap/l10n/be.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Advanced" : "Дасведчаны" -},"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/user_ldap/l10n/bg.js b/apps/user_ldap/l10n/bg.js index 6daa97a170b..4cef2c94481 100644 --- a/apps/user_ldap/l10n/bg.js +++ b/apps/user_ldap/l10n/bg.js @@ -199,6 +199,9 @@ OC.L10N.register( "User profile Headline will be set from the specified attribute" : "Заглавието на потребителския профил ще бъде зададено от определения атрибут", "Biography Field" : "Поле за Биография", "User profile Biography will be set from the specified attribute" : "Биографията на потребителския профил ще бъде зададена от определения атрибут", + "User profile Date of birth will be set from the specified attribute" : "Датата на раждане в потребителския профил ще се зададе от този атрибут", + "Pronouns Field" : "Поле за обръщение", + "User profile Pronouns will be set from the specified attribute" : "Опциите за обръщение в профила на потребителите ще се зададат от този атрибут", "Internal Username" : "Вътрешно потребителско име", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. ", "Internal Username Attribute:" : "Атрибут на вътрешното потребителско име:", diff --git a/apps/user_ldap/l10n/bg.json b/apps/user_ldap/l10n/bg.json index df01a29b205..edb583c67e1 100644 --- a/apps/user_ldap/l10n/bg.json +++ b/apps/user_ldap/l10n/bg.json @@ -197,6 +197,9 @@ "User profile Headline will be set from the specified attribute" : "Заглавието на потребителския профил ще бъде зададено от определения атрибут", "Biography Field" : "Поле за Биография", "User profile Biography will be set from the specified attribute" : "Биографията на потребителския профил ще бъде зададена от определения атрибут", + "User profile Date of birth will be set from the specified attribute" : "Датата на раждане в потребителския профил ще се зададе от този атрибут", + "Pronouns Field" : "Поле за обръщение", + "User profile Pronouns will be set from the specified attribute" : "Опциите за обръщение в профила на потребителите ще се зададат от този атрибут", "Internal Username" : "Вътрешно потребителско име", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. ", "Internal Username Attribute:" : "Атрибут на вътрешното потребителско име:", diff --git a/apps/user_ldap/l10n/bn_BD.js b/apps/user_ldap/l10n/bn_BD.js deleted file mode 100644 index c74a22160e6..00000000000 --- a/apps/user_ldap/l10n/bn_BD.js +++ /dev/null @@ -1,80 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "মানচিত্রায়ন মুছতে ব্যার্থ হলো।", - "Failed to delete the server configuration" : "সার্ভার কনফিগারেশন মোছা ব্যার্থ হলো", - "The configuration is valid and the connection could be established!" : "কনফিগারেশনটি বৈধ এবং যোগাযোগ প্রতিষ্ঠা করা যায়!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "কনফিগারেশনটি বৈধ তবে Bind ব্যার্থ। দয়া করে সার্ভার নিয়ামকসমূহ এবং ব্যবহারকারী পরীক্ষা করুন।", - "The configuration is invalid. Please have a look at the logs for further details." : "কনফিহারেশনটি অবৈধ। বিস্তারিত জানতে দয়া করে লগ দেখুন।", - "No action specified" : "কোন কার্যাদেশ সুনির্দিষ্ট নয়", - "No configuration specified" : " কোন কনফিগারেসন সুনির্দিষ্ট নয়", - "No data specified" : "কোন ডাটা সুনির্দিষ্ট নয়", - " Could not set configuration %s" : "%s কনফিগারেসন ঠিক করা গেল না", - "Configuration incorrect" : "ভুল কনফিগারেসন", - "Configuration incomplete" : "অসম্পূর্ণ কনফিগারেসন", - "Configuration OK" : "কনফিগারেসন ঠিক আছে", - "Select groups" : "গ্রুপ নির্ধারণ", - "Select object classes" : "অবজেক্ট ক্লাস নির্ধারণ", - "{nthServer}. Server" : "{nthServer}. সার্ভার", - "Do you really want to delete the current Server Configuration?" : "আপনি কি সত্যিই চলতি সার্ভার কনফিগারেসন মুছতে চান?", - "Confirm Deletion" : "মোছার আদেশ নিশ্চিত করুন", - "Select attributes" : "বৈশিষ্ট্য নির্ধারণ", - "_%s group found_::_%s groups found_" : ["%s গ্রুপ পাওয়া গেছে","%s গ্রুপ পাওয়া গেছে"], - "_%s user found_::_%s users found_" : ["%s ব্যাবহারকারী পাওয়া গেছে","%s ব্যাবহারকারী পাওয়া গেছে"], - "Could not find the desired feature" : "চাহিদামাফিক ফিচারটি পাওয়া গেলনা", - "Invalid Host" : "অবৈধ হোস্ট", - "Server" : "সার্ভার", - "Users" : "ব্যবহারকারী", - "Groups" : "গোষ্ঠীসমূহ", - "Test Configuration" : "পরীক্ষামূলক কনফিগারেসন", - "Help" : "সহায়িকা", - "Groups meeting these criteria are available in %s:" : "প্রদত্ত বৈশিষ্ট্য অনুযায়ী %s এ প্রাপ্তব্য গ্রুপসমূহ:", - "The filter specifies which LDAP groups shall have access to the %s instance." : "ফিল্টারটি %s সার্ভারে কোন কোন LDAP গ্রুপ প্রবেশাধিকার পাবে তা নির্ধারণ করে।", - "Other Attributes:" : "অন্যান্য বৈশিষ্ট্য:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "প্রবেশ প্রচেষ্টা নিলে প্রযোজ্য ফিল্টার নির্ধারণ করে। প্রবেশকালে %%uid ব্যাবহারকারীর নামকে প্রতিস্থাপন করে। ঊদাহরণ: \"uid=%%uid\"", - "1. Server" : "1. সার্ভার", - "%s. Server:" : "%s. সার্ভার:", - "Host" : "হোস্ট", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://", - "Port" : "পোর্ট", - "User DN" : "ব্যবহারকারি DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", - "Password" : "কূটশব্দ", - "For anonymous access, leave DN and Password empty." : "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", - "One Base DN per line" : "লাইনপ্রতি একটি Base DN", - "You can specify Base DN for users and groups in the Advanced tab" : "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।", - "The filter specifies which LDAP users shall have access to the %s instance." : "এই ফিল্টারটি কোন কোন LDAP ব্যবহারকারী %s সার্ভারে প্রবেশ করবেন তা বাছাই করে।", - "Back" : "পেছনে যাও", - "Continue" : "চালিয়ে যাও", - "Expert" : "দক্ষ", - "Advanced" : "সুচারু", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth কম্প্যাটিবল নয়। আপনি অবান্ছিত জটিলতার মুখোমুখি হতে পারেন। সিস্টেম প্রশাসককে যেকোন একটি অকার্যকর করে দিতে বলুন।", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Warning:</b> PHP LDAP মডিউল ইনস্টল করা নেই, ব্যাকএন্ড কাজ করবেনা। সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন।", - "Connection Settings" : "সংযোগ নিয়ামকসমূহ", - "Configuration Active" : "কনফিগারেসন সক্রিয়", - "When unchecked, this configuration will be skipped." : "চেকমার্ক তুলে দিলে কনফিগারেসন এড়িয়ে যাবে।", - "Backup (Replica) Host" : "ব্যাকআপ (নকল) হোস্ট", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "একটি ঐচ্ছিক ব্যাকআপ হোস্ট দিন। এটি মূল LDAP/AD সার্ভারের নকল হবে।", - "Backup (Replica) Port" : "ব্যাকআপ (নকল) পোর্ট", - "Disable Main Server" : "মূল সার্ভারকে অকার্যকর কর", - "Only connect to the replica server." : "শুধুমাত্র নকল সার্ভারে সংযোগ দাও।", - "Turn off SSL certificate validation." : "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", - "Cache Time-To-Live" : "ক্যাশে টাইম-টু-লিভ", - "in seconds. A change empties the cache." : "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", - "Directory Settings" : "ডিরেক্টরি নিয়ামকসমূহ", - "User Display Name Field" : "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র", - "The LDAP attribute to use to generate the user's display name." : "ব্যবহারকারীর প্রদর্শনীয় নাম তৈরি করার জন্য ব্যবহৃত LDAP বৈশিষ্ট্য।", - "Base User Tree" : "ভিত্তি ব্যবহারকারি বৃক্ষাকারে", - "Group Display Name Field" : "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র", - "Base Group Tree" : "ভিত্তি গোষ্ঠী বৃক্ষাকারে", - "Group Search Attributes" : "গ্রুপ খোঁজার বৈশিষ্ট্য", - "Group-Member association" : "গোষ্ঠী-সদস্য সংস্থাপন", - "Nested Groups" : "একতাবদ্ধ গোষ্ঠিসমূহ", - "Special Attributes" : "বিশেষ বৈশিষ্ট্যসমূহ", - "Quota Field" : "কোটা", - "Quota Default" : "পূর্বনির্ধারিত কোটা", - "in bytes" : "বাইটে", - "Email Field" : "ইমেইল ক্ষেত্র", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/bn_BD.json b/apps/user_ldap/l10n/bn_BD.json deleted file mode 100644 index 68883909add..00000000000 --- a/apps/user_ldap/l10n/bn_BD.json +++ /dev/null @@ -1,78 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "মানচিত্রায়ন মুছতে ব্যার্থ হলো।", - "Failed to delete the server configuration" : "সার্ভার কনফিগারেশন মোছা ব্যার্থ হলো", - "The configuration is valid and the connection could be established!" : "কনফিগারেশনটি বৈধ এবং যোগাযোগ প্রতিষ্ঠা করা যায়!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "কনফিগারেশনটি বৈধ তবে Bind ব্যার্থ। দয়া করে সার্ভার নিয়ামকসমূহ এবং ব্যবহারকারী পরীক্ষা করুন।", - "The configuration is invalid. Please have a look at the logs for further details." : "কনফিহারেশনটি অবৈধ। বিস্তারিত জানতে দয়া করে লগ দেখুন।", - "No action specified" : "কোন কার্যাদেশ সুনির্দিষ্ট নয়", - "No configuration specified" : " কোন কনফিগারেসন সুনির্দিষ্ট নয়", - "No data specified" : "কোন ডাটা সুনির্দিষ্ট নয়", - " Could not set configuration %s" : "%s কনফিগারেসন ঠিক করা গেল না", - "Configuration incorrect" : "ভুল কনফিগারেসন", - "Configuration incomplete" : "অসম্পূর্ণ কনফিগারেসন", - "Configuration OK" : "কনফিগারেসন ঠিক আছে", - "Select groups" : "গ্রুপ নির্ধারণ", - "Select object classes" : "অবজেক্ট ক্লাস নির্ধারণ", - "{nthServer}. Server" : "{nthServer}. সার্ভার", - "Do you really want to delete the current Server Configuration?" : "আপনি কি সত্যিই চলতি সার্ভার কনফিগারেসন মুছতে চান?", - "Confirm Deletion" : "মোছার আদেশ নিশ্চিত করুন", - "Select attributes" : "বৈশিষ্ট্য নির্ধারণ", - "_%s group found_::_%s groups found_" : ["%s গ্রুপ পাওয়া গেছে","%s গ্রুপ পাওয়া গেছে"], - "_%s user found_::_%s users found_" : ["%s ব্যাবহারকারী পাওয়া গেছে","%s ব্যাবহারকারী পাওয়া গেছে"], - "Could not find the desired feature" : "চাহিদামাফিক ফিচারটি পাওয়া গেলনা", - "Invalid Host" : "অবৈধ হোস্ট", - "Server" : "সার্ভার", - "Users" : "ব্যবহারকারী", - "Groups" : "গোষ্ঠীসমূহ", - "Test Configuration" : "পরীক্ষামূলক কনফিগারেসন", - "Help" : "সহায়িকা", - "Groups meeting these criteria are available in %s:" : "প্রদত্ত বৈশিষ্ট্য অনুযায়ী %s এ প্রাপ্তব্য গ্রুপসমূহ:", - "The filter specifies which LDAP groups shall have access to the %s instance." : "ফিল্টারটি %s সার্ভারে কোন কোন LDAP গ্রুপ প্রবেশাধিকার পাবে তা নির্ধারণ করে।", - "Other Attributes:" : "অন্যান্য বৈশিষ্ট্য:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "প্রবেশ প্রচেষ্টা নিলে প্রযোজ্য ফিল্টার নির্ধারণ করে। প্রবেশকালে %%uid ব্যাবহারকারীর নামকে প্রতিস্থাপন করে। ঊদাহরণ: \"uid=%%uid\"", - "1. Server" : "1. সার্ভার", - "%s. Server:" : "%s. সার্ভার:", - "Host" : "হোস্ট", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://", - "Port" : "পোর্ট", - "User DN" : "ব্যবহারকারি DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", - "Password" : "কূটশব্দ", - "For anonymous access, leave DN and Password empty." : "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", - "One Base DN per line" : "লাইনপ্রতি একটি Base DN", - "You can specify Base DN for users and groups in the Advanced tab" : "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।", - "The filter specifies which LDAP users shall have access to the %s instance." : "এই ফিল্টারটি কোন কোন LDAP ব্যবহারকারী %s সার্ভারে প্রবেশ করবেন তা বাছাই করে।", - "Back" : "পেছনে যাও", - "Continue" : "চালিয়ে যাও", - "Expert" : "দক্ষ", - "Advanced" : "সুচারু", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth কম্প্যাটিবল নয়। আপনি অবান্ছিত জটিলতার মুখোমুখি হতে পারেন। সিস্টেম প্রশাসককে যেকোন একটি অকার্যকর করে দিতে বলুন।", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Warning:</b> PHP LDAP মডিউল ইনস্টল করা নেই, ব্যাকএন্ড কাজ করবেনা। সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন।", - "Connection Settings" : "সংযোগ নিয়ামকসমূহ", - "Configuration Active" : "কনফিগারেসন সক্রিয়", - "When unchecked, this configuration will be skipped." : "চেকমার্ক তুলে দিলে কনফিগারেসন এড়িয়ে যাবে।", - "Backup (Replica) Host" : "ব্যাকআপ (নকল) হোস্ট", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "একটি ঐচ্ছিক ব্যাকআপ হোস্ট দিন। এটি মূল LDAP/AD সার্ভারের নকল হবে।", - "Backup (Replica) Port" : "ব্যাকআপ (নকল) পোর্ট", - "Disable Main Server" : "মূল সার্ভারকে অকার্যকর কর", - "Only connect to the replica server." : "শুধুমাত্র নকল সার্ভারে সংযোগ দাও।", - "Turn off SSL certificate validation." : "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", - "Cache Time-To-Live" : "ক্যাশে টাইম-টু-লিভ", - "in seconds. A change empties the cache." : "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", - "Directory Settings" : "ডিরেক্টরি নিয়ামকসমূহ", - "User Display Name Field" : "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র", - "The LDAP attribute to use to generate the user's display name." : "ব্যবহারকারীর প্রদর্শনীয় নাম তৈরি করার জন্য ব্যবহৃত LDAP বৈশিষ্ট্য।", - "Base User Tree" : "ভিত্তি ব্যবহারকারি বৃক্ষাকারে", - "Group Display Name Field" : "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র", - "Base Group Tree" : "ভিত্তি গোষ্ঠী বৃক্ষাকারে", - "Group Search Attributes" : "গ্রুপ খোঁজার বৈশিষ্ট্য", - "Group-Member association" : "গোষ্ঠী-সদস্য সংস্থাপন", - "Nested Groups" : "একতাবদ্ধ গোষ্ঠিসমূহ", - "Special Attributes" : "বিশেষ বৈশিষ্ট্যসমূহ", - "Quota Field" : "কোটা", - "Quota Default" : "পূর্বনির্ধারিত কোটা", - "in bytes" : "বাইটে", - "Email Field" : "ইমেইল ক্ষেত্র", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/bs.js b/apps/user_ldap/l10n/bs.js deleted file mode 100644 index a30255595fe..00000000000 --- a/apps/user_ldap/l10n/bs.js +++ /dev/null @@ -1,12 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "Korisnici", - "Groups" : "Grupe", - "Help" : "Pomoć", - "Port" : "Priključak", - "Password" : "Lozinka", - "Continue" : "Nastavi", - "Advanced" : "Napredno" -}, -"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/user_ldap/l10n/bs.json b/apps/user_ldap/l10n/bs.json deleted file mode 100644 index 3172f54cf89..00000000000 --- a/apps/user_ldap/l10n/bs.json +++ /dev/null @@ -1,10 +0,0 @@ -{ "translations": { - "Users" : "Korisnici", - "Groups" : "Grupe", - "Help" : "Pomoć", - "Port" : "Priključak", - "Password" : "Lozinka", - "Continue" : "Nastavi", - "Advanced" : "Napredno" -},"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/user_ldap/l10n/cy_GB.js b/apps/user_ldap/l10n/cy_GB.js deleted file mode 100644 index 3d47b3b4e66..00000000000 --- a/apps/user_ldap/l10n/cy_GB.js +++ /dev/null @@ -1,10 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "Defnyddwyr", - "Groups" : "Grwpiau", - "Help" : "Cymorth", - "Password" : "Cyfrinair", - "Advanced" : "Uwch" -}, -"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"); diff --git a/apps/user_ldap/l10n/cy_GB.json b/apps/user_ldap/l10n/cy_GB.json deleted file mode 100644 index 8140e36f49d..00000000000 --- a/apps/user_ldap/l10n/cy_GB.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "translations": { - "Users" : "Defnyddwyr", - "Groups" : "Grwpiau", - "Help" : "Cymorth", - "Password" : "Cyfrinair", - "Advanced" : "Uwch" -},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js index 1982f52351f..0c909bddbf0 100644 --- a/apps/user_ldap/l10n/da.js +++ b/apps/user_ldap/l10n/da.js @@ -20,10 +20,10 @@ OC.L10N.register( "Good password" : "God adgangskode", "Strong password" : "Stærk adgangskode", "The Base DN appears to be wrong" : "Base DN synes at være forkert", - "Testing configuration…" : "Test af konfiguration...", - "Configuration incorrect" : "Indstilling forkert", + "Testing configuration…" : "Tester konfiguration...", + "Configuration incorrect" : "Konfiguration forkert", "Configuration incomplete" : "Konfiguration ufuldstændig", - "Configuration OK" : "Indstilling OK", + "Configuration OK" : "Konfiguration OK", "Select groups" : "Vælg grupper", "Select object classes" : "Vælg objektklasser", "Please check the credentials, they seem to be wrong." : "Tjek venligst legitimationerne.", @@ -35,7 +35,7 @@ OC.L10N.register( "More than 1,000 directory entries available." : "Mere end 1.000 mappeindgange til rådighed.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} indgang tilgængelig i den givne Base DN","{objectsFound} poster tilgængelige inden for den givne Base DN"], "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN samt tilslutningsindstillinger og legitimationsoplysninger.", - "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle serverindstilling?", + "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle server konfiguration?", "Confirm Deletion" : "Bekræft sletning", "Mappings cleared successfully!" : "Mappings ryddet med succes!", "Error while clearing the mappings." : "Fejl under rydning af tilknytninger.", @@ -46,7 +46,7 @@ OC.L10N.register( "Mode switch" : "Tilstandsafbryder", "Select attributes" : "Vælg attributter", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Brugeren ikke fundet. Tjek venligst dine login attributter og brugernavn. Effektiv filter (til copy- and - paste til kommandolinjevalidering): < br / >", - "User found and settings verified." : "Brugerfundet og indstillinger verificeret.", + "User found and settings verified." : "Bruger fundet og indstillinger verificeret.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Overvej at indsnævre din søgning, som det omfattede mange brugere, kun den første af dem vil være i stand til at logge ind.", "An unspecified error occurred. Please check log and settings." : "En uspecificeret fejl opstod. Tjek log og indstillinger.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt, sandsynligvis på grund af syntaksspørgsmål som ulige antal åbne og lukkede parenteser. Vær venlig at revidere.", @@ -101,7 +101,7 @@ OC.L10N.register( "When logging in, %s will find the user based on the following attributes:" : "Når du logger ind, vil %s finde brugeren baseret på følgende egenskaber:", "LDAP/AD Username:" : "LDAP / AD Brugernavn:", "Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Tillader login mod LDAP / AD brugernavn, som er enten \"uid\" eller \"SAMAccountName\" og vil blive opdaget.", - "LDAP/AD Email Address:" : "LDAP / AD Email adresse:", + "LDAP/AD Email Address:" : "LDAP / AD E-mail adresse:", "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Tillader login mod en e- mail- attribut. \"mail\" og \"mailPrimaryAddress\" tilladt.", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer det filter der skal anvendes, når login er forsøgt. \"%% uid\" erstatter brugernavnet i login-handlingen. Eksempel: \"uid =%% uid\"", @@ -131,7 +131,7 @@ OC.L10N.register( "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest almindelige objektklasser for brugere er organisationalPerson, person, bruger og inetOrgPerson. Hvis du ikke er sikker på hvilken objektklasse du skal vælge, bedes du konsultere din mappe- admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver, hvilke LDAP-brugere der skal have adgang til %s instansen.", "Verify settings and count users" : "Verificér indstillinger og tæller brugere", - "Saving" : "Gemning", + "Saving" : "Gemmer", "Back" : "Tilbage", "Continue" : "Fortsæt", "Please renew your password." : "Venligst forny din adgangskode.", diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json index 22050580fcb..99ad292499e 100644 --- a/apps/user_ldap/l10n/da.json +++ b/apps/user_ldap/l10n/da.json @@ -18,10 +18,10 @@ "Good password" : "God adgangskode", "Strong password" : "Stærk adgangskode", "The Base DN appears to be wrong" : "Base DN synes at være forkert", - "Testing configuration…" : "Test af konfiguration...", - "Configuration incorrect" : "Indstilling forkert", + "Testing configuration…" : "Tester konfiguration...", + "Configuration incorrect" : "Konfiguration forkert", "Configuration incomplete" : "Konfiguration ufuldstændig", - "Configuration OK" : "Indstilling OK", + "Configuration OK" : "Konfiguration OK", "Select groups" : "Vælg grupper", "Select object classes" : "Vælg objektklasser", "Please check the credentials, they seem to be wrong." : "Tjek venligst legitimationerne.", @@ -33,7 +33,7 @@ "More than 1,000 directory entries available." : "Mere end 1.000 mappeindgange til rådighed.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} indgang tilgængelig i den givne Base DN","{objectsFound} poster tilgængelige inden for den givne Base DN"], "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN samt tilslutningsindstillinger og legitimationsoplysninger.", - "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle serverindstilling?", + "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle server konfiguration?", "Confirm Deletion" : "Bekræft sletning", "Mappings cleared successfully!" : "Mappings ryddet med succes!", "Error while clearing the mappings." : "Fejl under rydning af tilknytninger.", @@ -44,7 +44,7 @@ "Mode switch" : "Tilstandsafbryder", "Select attributes" : "Vælg attributter", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Brugeren ikke fundet. Tjek venligst dine login attributter og brugernavn. Effektiv filter (til copy- and - paste til kommandolinjevalidering): < br / >", - "User found and settings verified." : "Brugerfundet og indstillinger verificeret.", + "User found and settings verified." : "Bruger fundet og indstillinger verificeret.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Overvej at indsnævre din søgning, som det omfattede mange brugere, kun den første af dem vil være i stand til at logge ind.", "An unspecified error occurred. Please check log and settings." : "En uspecificeret fejl opstod. Tjek log og indstillinger.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt, sandsynligvis på grund af syntaksspørgsmål som ulige antal åbne og lukkede parenteser. Vær venlig at revidere.", @@ -99,7 +99,7 @@ "When logging in, %s will find the user based on the following attributes:" : "Når du logger ind, vil %s finde brugeren baseret på følgende egenskaber:", "LDAP/AD Username:" : "LDAP / AD Brugernavn:", "Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Tillader login mod LDAP / AD brugernavn, som er enten \"uid\" eller \"SAMAccountName\" og vil blive opdaget.", - "LDAP/AD Email Address:" : "LDAP / AD Email adresse:", + "LDAP/AD Email Address:" : "LDAP / AD E-mail adresse:", "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Tillader login mod en e- mail- attribut. \"mail\" og \"mailPrimaryAddress\" tilladt.", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer det filter der skal anvendes, når login er forsøgt. \"%% uid\" erstatter brugernavnet i login-handlingen. Eksempel: \"uid =%% uid\"", @@ -129,7 +129,7 @@ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest almindelige objektklasser for brugere er organisationalPerson, person, bruger og inetOrgPerson. Hvis du ikke er sikker på hvilken objektklasse du skal vælge, bedes du konsultere din mappe- admin.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver, hvilke LDAP-brugere der skal have adgang til %s instansen.", "Verify settings and count users" : "Verificér indstillinger og tæller brugere", - "Saving" : "Gemning", + "Saving" : "Gemmer", "Back" : "Tilbage", "Continue" : "Fortsæt", "Please renew your password." : "Venligst forny din adgangskode.", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index 2744c7b7384..37546227625 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -37,7 +37,7 @@ OC.L10N.register( "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.", "Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index 5cf218b924a..801f94a3907 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -35,7 +35,7 @@ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.", "Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 5cc130582c8..142a82913d8 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -37,7 +37,7 @@ OC.L10N.register( "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", "Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 288e84d4cde..c8bcf0d8640 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -35,7 +35,7 @@ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.", "Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" : "Löschen bestätigen", - "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", + "Mappings cleared successfully!" : "Zuordnungen gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.", "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", diff --git a/apps/user_ldap/l10n/eo.js b/apps/user_ldap/l10n/eo.js deleted file mode 100644 index 25c880dbdc5..00000000000 --- a/apps/user_ldap/l10n/eo.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to delete the server configuration" : "Malsukcesis forigo de la agordo de servilo", - "Action does not exist" : "Ago ne ekzistas", - "Configuration incorrect" : "La agordaro malĝustas", - "Configuration incomplete" : "La agordaro neplenas", - "Configuration OK" : "La agordaro ĝustas", - "Select groups" : "Elekti grupojn", - "Select object classes" : "Elekti objektoklasojn", - "{nthServer}. Server" : "{nthServer}. Servilo", - "Confirm Deletion" : "Konfirmi forigon", - "Select attributes" : "Elekti atribuojn", - "_%s group found_::_%s groups found_" : ["%s grupo troviĝis","%s grupoj troviĝis"], - "_%s user found_::_%s users found_" : ["%s uzanto troviĝis","%s uzanto troviĝis"], - "Invalid Host" : "Nevalida gastigo", - "Server" : "Servilo", - "Users" : "Uzantoj", - "Groups" : "Grupoj", - "Test Configuration" : "Provi agordon", - "Help" : "Helpo", - "Other Attributes:" : "Aliaj atribuoj:", - "1. Server" : "1. Servilo", - "%s. Server:" : "%s. Servilo:", - "Host" : "Gastigo", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://", - "Port" : "Pordo", - "User DN" : "Uzanto-DN", - "Password" : "Pasvorto", - "For anonymous access, leave DN and Password empty." : "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj.", - "Saving" : "Konservante", - "Back" : "Antaŭen", - "Continue" : "Daŭri", - "LDAP" : "LDAP", - "Expert" : "Sperta", - "Advanced" : "Progresinta", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Averto</b>: la PHP-modulo LDAP ne instalatas; la motoro ne funkcios. Bonvolu peti vian sistemadministranton instali ĝin.", - "Connection Settings" : "Agordo de konekto", - "Disable Main Server" : "Malkapabligi la ĉefan servilon", - "Turn off SSL certificate validation." : "Malkapabligi validkontrolon de SSL-atestiloj.", - "Cache Time-To-Live" : "Vivotempo de la kaŝmemoro", - "in seconds. A change empties the cache." : "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.", - "Directory Settings" : "Agordo de dosierujo", - "User Display Name Field" : "Kampo de vidignomo de uzanto", - "Base User Tree" : "Baza uzantarbo", - "User Search Attributes" : "Atributoj de serĉo de uzanto", - "Optional; one attribute per line" : "Malnepra; po unu atribuo por linio", - "Group Display Name Field" : "Kampo de vidignomo de grupo", - "Base Group Tree" : "Baza gruparbo", - "Group Search Attributes" : "Atribuoj de gruposerĉo", - "Group-Member association" : "Asocio de grupo kaj membro", - "Nested Groups" : "Ingitaj grupoj", - "Special Attributes" : "Specialaj atribuoj", - "Quota Field" : "Kampo de kvoto", - "in bytes" : "duumoke", - "Email Field" : "Kampo de retpoŝto", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.", - "Internal Username" : "Ena uzantonomo", - "Internal Username Attribute:" : "Atribuo de ena uzantonomo:", - "UUID Attribute for Users:" : "UUID-atribuo por uzantoj:", - "UUID Attribute for Groups:" : "UUID-atribuo por grupoj:" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/eo.json b/apps/user_ldap/l10n/eo.json deleted file mode 100644 index 37cdc4e2519..00000000000 --- a/apps/user_ldap/l10n/eo.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "Failed to delete the server configuration" : "Malsukcesis forigo de la agordo de servilo", - "Action does not exist" : "Ago ne ekzistas", - "Configuration incorrect" : "La agordaro malĝustas", - "Configuration incomplete" : "La agordaro neplenas", - "Configuration OK" : "La agordaro ĝustas", - "Select groups" : "Elekti grupojn", - "Select object classes" : "Elekti objektoklasojn", - "{nthServer}. Server" : "{nthServer}. Servilo", - "Confirm Deletion" : "Konfirmi forigon", - "Select attributes" : "Elekti atribuojn", - "_%s group found_::_%s groups found_" : ["%s grupo troviĝis","%s grupoj troviĝis"], - "_%s user found_::_%s users found_" : ["%s uzanto troviĝis","%s uzanto troviĝis"], - "Invalid Host" : "Nevalida gastigo", - "Server" : "Servilo", - "Users" : "Uzantoj", - "Groups" : "Grupoj", - "Test Configuration" : "Provi agordon", - "Help" : "Helpo", - "Other Attributes:" : "Aliaj atribuoj:", - "1. Server" : "1. Servilo", - "%s. Server:" : "%s. Servilo:", - "Host" : "Gastigo", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://", - "Port" : "Pordo", - "User DN" : "Uzanto-DN", - "Password" : "Pasvorto", - "For anonymous access, leave DN and Password empty." : "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj.", - "Saving" : "Konservante", - "Back" : "Antaŭen", - "Continue" : "Daŭri", - "LDAP" : "LDAP", - "Expert" : "Sperta", - "Advanced" : "Progresinta", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Averto</b>: la PHP-modulo LDAP ne instalatas; la motoro ne funkcios. Bonvolu peti vian sistemadministranton instali ĝin.", - "Connection Settings" : "Agordo de konekto", - "Disable Main Server" : "Malkapabligi la ĉefan servilon", - "Turn off SSL certificate validation." : "Malkapabligi validkontrolon de SSL-atestiloj.", - "Cache Time-To-Live" : "Vivotempo de la kaŝmemoro", - "in seconds. A change empties the cache." : "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.", - "Directory Settings" : "Agordo de dosierujo", - "User Display Name Field" : "Kampo de vidignomo de uzanto", - "Base User Tree" : "Baza uzantarbo", - "User Search Attributes" : "Atributoj de serĉo de uzanto", - "Optional; one attribute per line" : "Malnepra; po unu atribuo por linio", - "Group Display Name Field" : "Kampo de vidignomo de grupo", - "Base Group Tree" : "Baza gruparbo", - "Group Search Attributes" : "Atribuoj de gruposerĉo", - "Group-Member association" : "Asocio de grupo kaj membro", - "Nested Groups" : "Ingitaj grupoj", - "Special Attributes" : "Specialaj atribuoj", - "Quota Field" : "Kampo de kvoto", - "in bytes" : "duumoke", - "Email Field" : "Kampo de retpoŝto", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.", - "Internal Username" : "Ena uzantonomo", - "Internal Username Attribute:" : "Atribuo de ena uzantonomo:", - "UUID Attribute for Users:" : "UUID-atribuo por uzantoj:", - "UUID Attribute for Groups:" : "UUID-atribuo por grupoj:" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/et_EE.js b/apps/user_ldap/l10n/et_EE.js index 46695f1973a..a024012d43d 100644 --- a/apps/user_ldap/l10n/et_EE.js +++ b/apps/user_ldap/l10n/et_EE.js @@ -5,18 +5,20 @@ OC.L10N.register( "Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus", "Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.", "Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.", "Invalid configuration: %s" : "Vigane seadistus: %s", "No action specified" : "Tegevusi pole määratletud", "No configuration specified" : "Seadistust pole määratletud", "No data specified" : "Andmeid pole määratletud", + "Invalid data specified" : "Kirjeldatud on vigased andmed", "Could not set configuration %1$s to %2$s" : "Ei õnnestunud muuta „%1$s“ seadistuse väärtuseks „%2$s“", "Action does not exist" : "Toimingut pole olemas", "Renewing …" : "Värskendamine ...", - "Very weak password" : "Väga nõrk parool", - "Weak password" : "Nõrk parool", - "So-so password" : "Enam-vähem sobiv parool", - "Good password" : "Hea parool", - "Strong password" : "Väga hea parool", + "Very weak password" : "Väga nõrk salasõna", + "Weak password" : "Nõrk salasõna", + "So-so password" : "Enam-vähem sobiv salasõna", + "Good password" : "Hea salasõna", + "Strong password" : "Väga hea salasõna", "The Base DN appears to be wrong" : "Näib, et Base DN on vale", "Testing configuration…" : "Seadistuse testimine", "Configuration incorrect" : "Seadistus on vigane", @@ -30,11 +32,15 @@ OC.L10N.register( "Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.", - "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.", + "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.", + "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"], + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.", "Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?", "Confirm Deletion" : "Kinnita kustutamine", "Mappings cleared successfully!" : "Vastandused on eemaldatud!", "Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.", "Mode switch" : "Režiimi lüliti", "Select attributes" : "Vali atribuudid", "User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.", @@ -42,10 +48,19 @@ OC.L10N.register( "Password change rejected. Hint: %s" : "Salasõna muutmine polnud võimalik. Selgitus: %s", "Mandatory field \"%s\" left empty" : "Kohustuslik väli „%s“ on jäänud tühjaks", "Login filter does not contain %s placeholder." : "Kasutajanimede filtris puudub kohatäitja „%s“", - "Please login with the new password" : "Palun logi uue parooliga sisse", - "Your password will expire tomorrow." : "Su parool aegub homme.", - "Your password will expire today." : "Su parool aegub täna.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su parool aegub %n päeva jooksul.","Su parool aegub %n päeva jooksul."], + "Please login with the new password" : "Palun logi uue salasõnaga sisse", + "LDAP User backend" : "LPAD-i põhine tausteteenus kasutajate jaoks", + "Your password will expire tomorrow." : "Su salasõna aegub homme.", + "Your password will expire today." : "Su salasõna aegub täna.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su salasõna aegub %n päeva jooksul.","Su salasõna aegub %n päeva jooksul."], + "LDAP/AD integration" : "LDAP/AD lõiming", + "LDAP Connection" : "LDAP ühendus", + "Invalid LDAP UUIDs" : "Vigased LDAP UUID-d", + "None found" : "Mitte midagi ei leidu", + "_%n group found_::_%n groups found_" : ["Leidus %n grupp","Leidus %n gruppi"], + "> 1000 groups found" : "Leidus üle 1000 grupi", + "> 1000 users found" : "Leidus üle 1000 kasutaja", + "_%n user found_::_%n users found_" : ["Leidus %n kasutaja","Leidus %n kasutajat"], "Could not find the desired feature" : "Ei suuda leida soovitud funktsioonaalsust", "Invalid Host" : "Vigane server", "Test Configuration" : "Testi seadistust", @@ -55,7 +70,7 @@ OC.L10N.register( "Only from these groups:" : "Ainult neist gruppidest:", "Search groups" : "Otsi gruppe", "Available groups" : "Saadaolevad grupid", - "Selected groups" : "Validut grupid", + "Selected groups" : "Valitud grupid", "Edit LDAP Query" : "Muuda LDAP päringut", "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.", @@ -68,9 +83,9 @@ OC.L10N.register( "Port" : "Port", "Detect Port" : "Tuvasta port", "User DN" : "Kasutaja DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", - "Password" : "Parool", - "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.", + "Password" : "Salasõna", + "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.", "Save Credentials" : "Salvesta kasutajaandmed", "One Base DN per line" : "Üks baas-DN rea kohta", "You can specify Base DN for users and groups in the Advanced tab" : "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt", @@ -84,13 +99,13 @@ OC.L10N.register( "Saving" : "Salvestamine", "Back" : "Tagasi", "Continue" : "Jätka", - "Please renew your password." : "Palun uuenda oma parool.", + "Please renew your password." : "Palun uuenda oma salasõna.", "An internal error occurred." : "Tekkis sisemine tõrge.", "Please try again or contact your administrator." : "Proovi uuesti või võta ühendust administraatoriga.", - "Current password" : "Praegune parool", - "New password" : "Uus parool", - "Renew password" : "Uuenda parooli", - "Wrong password." : "Vale parool.", + "Current password" : "Praegune salasõna", + "New password" : "Uus salasõna", + "Renew password" : "Uuenda salasõna", + "Wrong password." : "Vale salasõna.", "Cancel" : "Loobu", "Server" : "Server", "Users" : "Kasutajad", diff --git a/apps/user_ldap/l10n/et_EE.json b/apps/user_ldap/l10n/et_EE.json index 8e9306fb653..3d90e2d17ce 100644 --- a/apps/user_ldap/l10n/et_EE.json +++ b/apps/user_ldap/l10n/et_EE.json @@ -3,18 +3,20 @@ "Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus", "Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.", "Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.", "Invalid configuration: %s" : "Vigane seadistus: %s", "No action specified" : "Tegevusi pole määratletud", "No configuration specified" : "Seadistust pole määratletud", "No data specified" : "Andmeid pole määratletud", + "Invalid data specified" : "Kirjeldatud on vigased andmed", "Could not set configuration %1$s to %2$s" : "Ei õnnestunud muuta „%1$s“ seadistuse väärtuseks „%2$s“", "Action does not exist" : "Toimingut pole olemas", "Renewing …" : "Värskendamine ...", - "Very weak password" : "Väga nõrk parool", - "Weak password" : "Nõrk parool", - "So-so password" : "Enam-vähem sobiv parool", - "Good password" : "Hea parool", - "Strong password" : "Väga hea parool", + "Very weak password" : "Väga nõrk salasõna", + "Weak password" : "Nõrk salasõna", + "So-so password" : "Enam-vähem sobiv salasõna", + "Good password" : "Hea salasõna", + "Strong password" : "Väga hea salasõna", "The Base DN appears to be wrong" : "Näib, et Base DN on vale", "Testing configuration…" : "Seadistuse testimine", "Configuration incorrect" : "Seadistus on vigane", @@ -28,11 +30,15 @@ "Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.", - "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.", + "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.", + "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"], + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.", "Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?", "Confirm Deletion" : "Kinnita kustutamine", "Mappings cleared successfully!" : "Vastandused on eemaldatud!", "Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.", "Mode switch" : "Režiimi lüliti", "Select attributes" : "Vali atribuudid", "User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.", @@ -40,10 +46,19 @@ "Password change rejected. Hint: %s" : "Salasõna muutmine polnud võimalik. Selgitus: %s", "Mandatory field \"%s\" left empty" : "Kohustuslik väli „%s“ on jäänud tühjaks", "Login filter does not contain %s placeholder." : "Kasutajanimede filtris puudub kohatäitja „%s“", - "Please login with the new password" : "Palun logi uue parooliga sisse", - "Your password will expire tomorrow." : "Su parool aegub homme.", - "Your password will expire today." : "Su parool aegub täna.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su parool aegub %n päeva jooksul.","Su parool aegub %n päeva jooksul."], + "Please login with the new password" : "Palun logi uue salasõnaga sisse", + "LDAP User backend" : "LPAD-i põhine tausteteenus kasutajate jaoks", + "Your password will expire tomorrow." : "Su salasõna aegub homme.", + "Your password will expire today." : "Su salasõna aegub täna.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su salasõna aegub %n päeva jooksul.","Su salasõna aegub %n päeva jooksul."], + "LDAP/AD integration" : "LDAP/AD lõiming", + "LDAP Connection" : "LDAP ühendus", + "Invalid LDAP UUIDs" : "Vigased LDAP UUID-d", + "None found" : "Mitte midagi ei leidu", + "_%n group found_::_%n groups found_" : ["Leidus %n grupp","Leidus %n gruppi"], + "> 1000 groups found" : "Leidus üle 1000 grupi", + "> 1000 users found" : "Leidus üle 1000 kasutaja", + "_%n user found_::_%n users found_" : ["Leidus %n kasutaja","Leidus %n kasutajat"], "Could not find the desired feature" : "Ei suuda leida soovitud funktsioonaalsust", "Invalid Host" : "Vigane server", "Test Configuration" : "Testi seadistust", @@ -53,7 +68,7 @@ "Only from these groups:" : "Ainult neist gruppidest:", "Search groups" : "Otsi gruppe", "Available groups" : "Saadaolevad grupid", - "Selected groups" : "Validut grupid", + "Selected groups" : "Valitud grupid", "Edit LDAP Query" : "Muuda LDAP päringut", "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.", @@ -66,9 +81,9 @@ "Port" : "Port", "Detect Port" : "Tuvasta port", "User DN" : "Kasutaja DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", - "Password" : "Parool", - "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.", + "Password" : "Salasõna", + "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.", "Save Credentials" : "Salvesta kasutajaandmed", "One Base DN per line" : "Üks baas-DN rea kohta", "You can specify Base DN for users and groups in the Advanced tab" : "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt", @@ -82,13 +97,13 @@ "Saving" : "Salvestamine", "Back" : "Tagasi", "Continue" : "Jätka", - "Please renew your password." : "Palun uuenda oma parool.", + "Please renew your password." : "Palun uuenda oma salasõna.", "An internal error occurred." : "Tekkis sisemine tõrge.", "Please try again or contact your administrator." : "Proovi uuesti või võta ühendust administraatoriga.", - "Current password" : "Praegune parool", - "New password" : "Uus parool", - "Renew password" : "Uuenda parooli", - "Wrong password." : "Vale parool.", + "Current password" : "Praegune salasõna", + "New password" : "Uus salasõna", + "Renew password" : "Uuenda salasõna", + "Wrong password." : "Vale salasõna.", "Cancel" : "Loobu", "Server" : "Server", "Users" : "Kasutajad", diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js index cf6df1a9362..8f5aaf91239 100644 --- a/apps/user_ldap/l10n/fr.js +++ b/apps/user_ldap/l10n/fr.js @@ -6,10 +6,12 @@ OC.L10N.register( "Invalid configuration: Anonymous binding is not allowed." : "Configuration non valable : Le lien anonyme n'est pas autorisé.", "Valid configuration, connection established!" : "Configuration valide, connexion établie !", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuration valide, mais le lien a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", + "Invalid configuration: %s" : "Configuration non valide : %s", "No action specified" : "Aucune action spécifiée", "No configuration specified" : "Aucune configuration spécifiée", "No data specified" : "Aucune donnée spécifiée", "Invalid data specified" : "Données spécifiées invalides", + "Could not set configuration %1$s to %2$s" : "Impossible de changer la configuration %1$s pour %2$s", "Action does not exist" : "L'action n'existe pas", "Renewing …" : "Renouvellement en cours...", "Very weak password" : "Mot de passe très faible", @@ -52,6 +54,14 @@ OC.L10N.register( "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "La chaîne \"%uid\" est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP/AD.", "Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP/AD ne prend pas en charge memberOf.", + "Password change rejected. Hint: %s" : "Changement du mot de passe rejetée. Astuce : %s", + "Mandatory field \"%s\" left empty" : "Le champ obligatoire \"%s\" n'est pas renseigné", + "A password is given, but not an LDAP agent" : "Un mot de passe est indiqué, mais pas un agent LDAP", + "No password is given for the user agent" : "Aucun mot de passe n'est indiqué pour l'agent utilisateur", + "No LDAP base DN was given" : "Aucun DN de base LDAP n'a été indiqué", + "User base DN is not a subnode of global base DN" : "Le DN de base utilisateur n'est pas un sous-noeud du DN de base global", + "Group base DN is not a subnode of global base DN" : "Le DN de base du groupe n'est pas un sous-noeud du DN de base global", + "Login filter does not contain %s placeholder." : "Le filtre de connexion ne doit pas contenir l'élément de substitution %s", "Please login with the new password" : "Veuillez vous connecter avec le nouveau mot de passe", "LDAP User backend" : "Infrastructure utilisateur LDAP", "Your password will expire tomorrow." : "Votre mot de passe expirera demain", diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json index 1b3111a060c..666b4fac5b4 100644 --- a/apps/user_ldap/l10n/fr.json +++ b/apps/user_ldap/l10n/fr.json @@ -4,10 +4,12 @@ "Invalid configuration: Anonymous binding is not allowed." : "Configuration non valable : Le lien anonyme n'est pas autorisé.", "Valid configuration, connection established!" : "Configuration valide, connexion établie !", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuration valide, mais le lien a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", + "Invalid configuration: %s" : "Configuration non valide : %s", "No action specified" : "Aucune action spécifiée", "No configuration specified" : "Aucune configuration spécifiée", "No data specified" : "Aucune donnée spécifiée", "Invalid data specified" : "Données spécifiées invalides", + "Could not set configuration %1$s to %2$s" : "Impossible de changer la configuration %1$s pour %2$s", "Action does not exist" : "L'action n'existe pas", "Renewing …" : "Renouvellement en cours...", "Very weak password" : "Mot de passe très faible", @@ -50,6 +52,14 @@ "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "La chaîne \"%uid\" est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP/AD.", "Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP/AD ne prend pas en charge memberOf.", + "Password change rejected. Hint: %s" : "Changement du mot de passe rejetée. Astuce : %s", + "Mandatory field \"%s\" left empty" : "Le champ obligatoire \"%s\" n'est pas renseigné", + "A password is given, but not an LDAP agent" : "Un mot de passe est indiqué, mais pas un agent LDAP", + "No password is given for the user agent" : "Aucun mot de passe n'est indiqué pour l'agent utilisateur", + "No LDAP base DN was given" : "Aucun DN de base LDAP n'a été indiqué", + "User base DN is not a subnode of global base DN" : "Le DN de base utilisateur n'est pas un sous-noeud du DN de base global", + "Group base DN is not a subnode of global base DN" : "Le DN de base du groupe n'est pas un sous-noeud du DN de base global", + "Login filter does not contain %s placeholder." : "Le filtre de connexion ne doit pas contenir l'élément de substitution %s", "Please login with the new password" : "Veuillez vous connecter avec le nouveau mot de passe", "LDAP User backend" : "Infrastructure utilisateur LDAP", "Your password will expire tomorrow." : "Votre mot de passe expirera demain", diff --git a/apps/user_ldap/l10n/fy_NL.js b/apps/user_ldap/l10n/fy_NL.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/fy_NL.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/fy_NL.json b/apps/user_ldap/l10n/fy_NL.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/fy_NL.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js index d97ec49e13c..a39e92ab1f8 100644 --- a/apps/user_ldap/l10n/gl.js +++ b/apps/user_ldap/l10n/gl.js @@ -61,6 +61,7 @@ OC.L10N.register( "No LDAP base DN was given" : "Non se indicou un DN base de LDAP", "User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global", "Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global", + "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.", "Please login with the new password" : "Acceda co novo contrasinal", "LDAP User backend" : "Infraestrutura do usuario LDAP", "Your password will expire tomorrow." : "O seu contrasinal caduca mañá.", diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json index 952066b7994..58b0658ebf0 100644 --- a/apps/user_ldap/l10n/gl.json +++ b/apps/user_ldap/l10n/gl.json @@ -59,6 +59,7 @@ "No LDAP base DN was given" : "Non se indicou un DN base de LDAP", "User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global", "Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global", + "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.", "Please login with the new password" : "Acceda co novo contrasinal", "LDAP User backend" : "Infraestrutura do usuario LDAP", "Your password will expire tomorrow." : "O seu contrasinal caduca mañá.", diff --git a/apps/user_ldap/l10n/gu.js b/apps/user_ldap/l10n/gu.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/gu.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/gu.json b/apps/user_ldap/l10n/gu.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/gu.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/hy.js b/apps/user_ldap/l10n/hy.js deleted file mode 100644 index 6e3fc1a22c8..00000000000 --- a/apps/user_ldap/l10n/hy.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Groups" : "Խմբեր", - "Help" : "Օգնություն", - "Password" : "Գաղտնաբառ", - "Continue" : "Շարունակել" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/hy.json b/apps/user_ldap/l10n/hy.json deleted file mode 100644 index cff0593a7be..00000000000 --- a/apps/user_ldap/l10n/hy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Groups" : "Խմբեր", - "Help" : "Օգնություն", - "Password" : "Գաղտնաբառ", - "Continue" : "Շարունակել" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ia.js b/apps/user_ldap/l10n/ia.js deleted file mode 100644 index c129620ee87..00000000000 --- a/apps/user_ldap/l10n/ia.js +++ /dev/null @@ -1,12 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "Usatores", - "Groups" : "Gruppos", - "Help" : "Adjuta", - "Password" : "Contrasigno", - "Back" : "Retro", - "Continue" : "Continuar", - "Advanced" : "Avantiate" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ia.json b/apps/user_ldap/l10n/ia.json deleted file mode 100644 index 86b535fd079..00000000000 --- a/apps/user_ldap/l10n/ia.json +++ /dev/null @@ -1,10 +0,0 @@ -{ "translations": { - "Users" : "Usatores", - "Groups" : "Gruppos", - "Help" : "Adjuta", - "Password" : "Contrasigno", - "Back" : "Retro", - "Continue" : "Continuar", - "Advanced" : "Avantiate" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/io.js b/apps/user_ldap/l10n/io.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/io.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/io.json b/apps/user_ldap/l10n/io.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/io.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/is.js b/apps/user_ldap/l10n/is.js deleted file mode 100644 index 72b38e80231..00000000000 --- a/apps/user_ldap/l10n/is.js +++ /dev/null @@ -1,100 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Mistókst að hreinsa varpanir.", - "Failed to delete the server configuration" : "Mistókst að eyða uppsetningu þjónsins", - "Valid configuration, connection established!" : "Gild uppsetning, tengingu komið á!", - "Valid configuration, but binding failed. Please check the server settings and credentials." : "Uppsetningin er gild, en binding mistókst. Skoðaðu stillingar þjónsins og auðkenni.", - "Invalid configuration. Please have a look at the logs for further details." : "Uppsetningin er ógild. Skoðaðu atvikaskrárnar til að sjá nánari upplýsingar.", - "No action specified" : "Engin aðgerð tiltekin", - "No configuration specified" : "Engin uppsetning tiltekin", - "No data specified" : "Engin gögn tiltekin", - " Could not set configuration %s" : "Gat ekki sett uppsetningu %s", - "Action does not exist" : "Aðgerð er ekki til", - "Renewing …" : "Endurnýja …", - "Very weak password" : "Mjög veikt lykilorð", - "Weak password" : "Veikt lykilorð", - "So-so password" : "Miðlungs lykilorð", - "Good password" : "Gott lykilorð", - "Strong password" : "Sterkt lykilorð", - "Testing configuration…" : "Prófa stillingar…", - "Configuration incorrect" : "Röng uppsetning", - "Configuration incomplete" : "Ófullgerð uppsetning", - "Configuration OK" : "Stillingar eru í lagi", - "Select groups" : "Veldu hópa", - "Please check the credentials, they seem to be wrong." : "Athugaðu auðkennin, þau líta út fyrir að vera röng.", - "{nthServer}. Server" : "{nthServer}. Þjónn", - "More than 1,000 directory entries available." : "Meira en 1,000 möppufærslur tiltækar.", - "Do you really want to delete the current Server Configuration?" : "Ertu viss um að þú viljir eyða núgildandi uppsetningu á þjóninum?", - "Confirm Deletion" : "Staðfesta eyðingu", - "Mappings cleared successfully!" : "Það tókst að hreinsa varpanir!", - "Error while clearing the mappings." : "Villa við að hreinsa út varpanir.", - "Mode switch" : "Skipta um ham", - "Select attributes" : "Veldu eigindi", - "User found and settings verified." : "Notandi fannst og stillingar yfirfarnar.", - "Password change rejected. Hint: " : "Breytingu á lykilorði hafnað. Ábending: ", - "Please login with the new password" : "Skráðu þig inn með nýja lykilorðinu", - "Your password will expire tomorrow." : "Lykilorðið þitt rennur út á morgun.", - "Your password will expire today." : "Lykilorðið þitt rennur út í dag.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Lykilorðið þitt rennur út innan %n dags.","Lykilorðið þitt rennur út innan %n daga."], - "_%s group found_::_%s groups found_" : ["%s hópur fannst","%s hópar fundust"], - "_%s user found_::_%s users found_" : ["%s notandi fannst","%s notendur fundust"], - "Could not find the desired feature" : "Gat ekki fundið eiginleika sem óskað var eftir", - "Invalid Host" : "Ógild vél", - "LDAP user and group backend" : "LDAP notandi og bakendi hóps", - "Test Configuration" : "Prófa uppsetningu", - "Help" : "Hjálp", - "Only from these groups:" : "Aðeins úr þessum hópum:", - "Search groups" : "Leita í hópum", - "Available groups" : "Tiltækir hópar", - "Selected groups" : "Valdir hópar", - "Edit LDAP Query" : "Breyta LDAP-fyrirspurn", - "LDAP Filter:" : "LDAP sía:", - "Verify settings and count the groups" : "Sannprófa stillingar og telja hópa", - "Other Attributes:" : "Önnur eigindi:", - "Test Loginname" : "Prófa innskráningarnafn", - "Verify settings" : "Sannprófa stillingar", - "%s. Server:" : "%s. Þjónn:", - "Add a new configuration" : "Bæta við nýrri uppsetningu", - "Delete the current configuration" : "Eyða núgildandi uppsetningu", - "Host" : "Hýsill", - "Port" : "Gátt", - "Detect Port" : "Finna gátt", - "User DN" : "DN notanda", - "Password" : "Lykilorð", - "Save Credentials" : "Vista auðkenni", - "Verify settings and count users" : "Sannprófa stillingar og telja notendur", - "Saving" : "Vistun", - "Back" : "Til baka", - "Continue" : "Halda áfram", - "Please renew your password." : "Endurnýjaðu lykilorðið þitt", - "An internal error occurred." : "Innri villa kom upp.", - "Please try again or contact your administrator." : "Reyndu aftur eða hafðu samband við kerfisstjóra.", - "Current password" : "Núverandi lykilorð", - "New password" : "Nýtt lykilorð", - "Renew password" : "Endurnýja lykilorð", - "Wrong password." : "Rangt lykilorð.", - "Cancel" : "Hætta við", - "Server" : "Þjónn", - "Users" : "Notendur", - "Login Attributes" : "Eigindi innskráningar", - "Groups" : "Hópar", - "Expert" : "Snillingur", - "Advanced" : "Ítarlegt", - "Connection Settings" : "Valkostir tengingar ", - "Configuration Active" : "Uppsetning er virk", - "Disable Main Server" : "Gera aðalþjón óvirkan", - "Turn off SSL certificate validation." : "Slökkva á sannvottun SSL-skilríkja.", - "in seconds. A change empties the cache." : "í sekúndum. Breyting tæmir skyndiminnið.", - "Directory Settings" : "Stillingar möppu", - "Nested Groups" : "Faldaðir hópar", - "(New password is sent as plain text to LDAP)" : "(Nýtt lykilorð er sent sem hreinn texti til LDAP)", - "Default password policy DN" : "Sjálfgefin lykilorðastefna DN", - "Special Attributes" : "Sérstök eigindi", - "Quota Field" : "Gagnasvið fyrir kvóta", - "Quota Default" : "Sjálfgefinn kvóti", - "Email Field" : "Gagnasvið fyrir netfang", - "Internal Username" : "Innra notandanafn", - "UUID Attribute for Groups:" : "UUID-eigindi fyrir hópa:" -}, -"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/user_ldap/l10n/is.json b/apps/user_ldap/l10n/is.json deleted file mode 100644 index f66fd4a3edb..00000000000 --- a/apps/user_ldap/l10n/is.json +++ /dev/null @@ -1,98 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Mistókst að hreinsa varpanir.", - "Failed to delete the server configuration" : "Mistókst að eyða uppsetningu þjónsins", - "Valid configuration, connection established!" : "Gild uppsetning, tengingu komið á!", - "Valid configuration, but binding failed. Please check the server settings and credentials." : "Uppsetningin er gild, en binding mistókst. Skoðaðu stillingar þjónsins og auðkenni.", - "Invalid configuration. Please have a look at the logs for further details." : "Uppsetningin er ógild. Skoðaðu atvikaskrárnar til að sjá nánari upplýsingar.", - "No action specified" : "Engin aðgerð tiltekin", - "No configuration specified" : "Engin uppsetning tiltekin", - "No data specified" : "Engin gögn tiltekin", - " Could not set configuration %s" : "Gat ekki sett uppsetningu %s", - "Action does not exist" : "Aðgerð er ekki til", - "Renewing …" : "Endurnýja …", - "Very weak password" : "Mjög veikt lykilorð", - "Weak password" : "Veikt lykilorð", - "So-so password" : "Miðlungs lykilorð", - "Good password" : "Gott lykilorð", - "Strong password" : "Sterkt lykilorð", - "Testing configuration…" : "Prófa stillingar…", - "Configuration incorrect" : "Röng uppsetning", - "Configuration incomplete" : "Ófullgerð uppsetning", - "Configuration OK" : "Stillingar eru í lagi", - "Select groups" : "Veldu hópa", - "Please check the credentials, they seem to be wrong." : "Athugaðu auðkennin, þau líta út fyrir að vera röng.", - "{nthServer}. Server" : "{nthServer}. Þjónn", - "More than 1,000 directory entries available." : "Meira en 1,000 möppufærslur tiltækar.", - "Do you really want to delete the current Server Configuration?" : "Ertu viss um að þú viljir eyða núgildandi uppsetningu á þjóninum?", - "Confirm Deletion" : "Staðfesta eyðingu", - "Mappings cleared successfully!" : "Það tókst að hreinsa varpanir!", - "Error while clearing the mappings." : "Villa við að hreinsa út varpanir.", - "Mode switch" : "Skipta um ham", - "Select attributes" : "Veldu eigindi", - "User found and settings verified." : "Notandi fannst og stillingar yfirfarnar.", - "Password change rejected. Hint: " : "Breytingu á lykilorði hafnað. Ábending: ", - "Please login with the new password" : "Skráðu þig inn með nýja lykilorðinu", - "Your password will expire tomorrow." : "Lykilorðið þitt rennur út á morgun.", - "Your password will expire today." : "Lykilorðið þitt rennur út í dag.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Lykilorðið þitt rennur út innan %n dags.","Lykilorðið þitt rennur út innan %n daga."], - "_%s group found_::_%s groups found_" : ["%s hópur fannst","%s hópar fundust"], - "_%s user found_::_%s users found_" : ["%s notandi fannst","%s notendur fundust"], - "Could not find the desired feature" : "Gat ekki fundið eiginleika sem óskað var eftir", - "Invalid Host" : "Ógild vél", - "LDAP user and group backend" : "LDAP notandi og bakendi hóps", - "Test Configuration" : "Prófa uppsetningu", - "Help" : "Hjálp", - "Only from these groups:" : "Aðeins úr þessum hópum:", - "Search groups" : "Leita í hópum", - "Available groups" : "Tiltækir hópar", - "Selected groups" : "Valdir hópar", - "Edit LDAP Query" : "Breyta LDAP-fyrirspurn", - "LDAP Filter:" : "LDAP sía:", - "Verify settings and count the groups" : "Sannprófa stillingar og telja hópa", - "Other Attributes:" : "Önnur eigindi:", - "Test Loginname" : "Prófa innskráningarnafn", - "Verify settings" : "Sannprófa stillingar", - "%s. Server:" : "%s. Þjónn:", - "Add a new configuration" : "Bæta við nýrri uppsetningu", - "Delete the current configuration" : "Eyða núgildandi uppsetningu", - "Host" : "Hýsill", - "Port" : "Gátt", - "Detect Port" : "Finna gátt", - "User DN" : "DN notanda", - "Password" : "Lykilorð", - "Save Credentials" : "Vista auðkenni", - "Verify settings and count users" : "Sannprófa stillingar og telja notendur", - "Saving" : "Vistun", - "Back" : "Til baka", - "Continue" : "Halda áfram", - "Please renew your password." : "Endurnýjaðu lykilorðið þitt", - "An internal error occurred." : "Innri villa kom upp.", - "Please try again or contact your administrator." : "Reyndu aftur eða hafðu samband við kerfisstjóra.", - "Current password" : "Núverandi lykilorð", - "New password" : "Nýtt lykilorð", - "Renew password" : "Endurnýja lykilorð", - "Wrong password." : "Rangt lykilorð.", - "Cancel" : "Hætta við", - "Server" : "Þjónn", - "Users" : "Notendur", - "Login Attributes" : "Eigindi innskráningar", - "Groups" : "Hópar", - "Expert" : "Snillingur", - "Advanced" : "Ítarlegt", - "Connection Settings" : "Valkostir tengingar ", - "Configuration Active" : "Uppsetning er virk", - "Disable Main Server" : "Gera aðalþjón óvirkan", - "Turn off SSL certificate validation." : "Slökkva á sannvottun SSL-skilríkja.", - "in seconds. A change empties the cache." : "í sekúndum. Breyting tæmir skyndiminnið.", - "Directory Settings" : "Stillingar möppu", - "Nested Groups" : "Faldaðir hópar", - "(New password is sent as plain text to LDAP)" : "(Nýtt lykilorð er sent sem hreinn texti til LDAP)", - "Default password policy DN" : "Sjálfgefin lykilorðastefna DN", - "Special Attributes" : "Sérstök eigindi", - "Quota Field" : "Gagnasvið fyrir kvóta", - "Quota Default" : "Sjálfgefinn kvóti", - "Email Field" : "Gagnasvið fyrir netfang", - "Internal Username" : "Innra notandanafn", - "UUID Attribute for Groups:" : "UUID-eigindi fyrir hópa:" -},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/km.js b/apps/user_ldap/l10n/km.js deleted file mode 100644 index a42ee7b14f1..00000000000 --- a/apps/user_ldap/l10n/km.js +++ /dev/null @@ -1,17 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to delete the server configuration" : "លុបការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបម្រើ មិនបានសម្រេច", - "Do you really want to delete the current Server Configuration?" : "តើអ្នកពិតជាចង់លុបការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបម្រើបច្ចុប្បន្នមែនទេ?", - "Confirm Deletion" : "បញ្ជាក់ការលុប", - "Users" : "អ្នកប្រើ", - "Groups" : "ក្រុ", - "Help" : "ជំនួយ", - "Host" : "ម៉ាស៊ីនផ្ទុក", - "Port" : "ច្រក", - "Password" : "ពាក្យសម្ងាត់", - "Back" : "ត្រឡប់ក្រោយ", - "Continue" : "បន្ត", - "Advanced" : "កម្រិតខ្ពស់" -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/km.json b/apps/user_ldap/l10n/km.json deleted file mode 100644 index 5c8ec8897ba..00000000000 --- a/apps/user_ldap/l10n/km.json +++ /dev/null @@ -1,15 +0,0 @@ -{ "translations": { - "Failed to delete the server configuration" : "លុបការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបម្រើ មិនបានសម្រេច", - "Do you really want to delete the current Server Configuration?" : "តើអ្នកពិតជាចង់លុបការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបម្រើបច្ចុប្បន្នមែនទេ?", - "Confirm Deletion" : "បញ្ជាក់ការលុប", - "Users" : "អ្នកប្រើ", - "Groups" : "ក្រុ", - "Help" : "ជំនួយ", - "Host" : "ម៉ាស៊ីនផ្ទុក", - "Port" : "ច្រក", - "Password" : "ពាក្យសម្ងាត់", - "Back" : "ត្រឡប់ក្រោយ", - "Continue" : "បន្ត", - "Advanced" : "កម្រិតខ្ពស់" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/kn.js b/apps/user_ldap/l10n/kn.js deleted file mode 100644 index f70fc699983..00000000000 --- a/apps/user_ldap/l10n/kn.js +++ /dev/null @@ -1,12 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "ಬಳಕೆದಾರರು", - "Groups" : "ಗುಂಪುಗಳು", - "Help" : "ಸಹಾಯ", - "Host" : "ಅತಿಥೆಯ-ಗಣಕ", - "Port" : "ರೇವು", - "Password" : "ಗುಪ್ತ ಪದ", - "Continue" : "ಮುಂದುವರಿಸಿ" -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/kn.json b/apps/user_ldap/l10n/kn.json deleted file mode 100644 index 39705ffba6a..00000000000 --- a/apps/user_ldap/l10n/kn.json +++ /dev/null @@ -1,10 +0,0 @@ -{ "translations": { - "Users" : "ಬಳಕೆದಾರರು", - "Groups" : "ಗುಂಪುಗಳು", - "Help" : "ಸಹಾಯ", - "Host" : "ಅತಿಥೆಯ-ಗಣಕ", - "Port" : "ರೇವು", - "Password" : "ಗುಪ್ತ ಪದ", - "Continue" : "ಮುಂದುವರಿಸಿ" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/lb.js b/apps/user_ldap/l10n/lb.js deleted file mode 100644 index f62d2924488..00000000000 --- a/apps/user_ldap/l10n/lb.js +++ /dev/null @@ -1,51 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to delete the server configuration" : "D'Server-Konfiguratioun konnt net geläscht ginn", - "The configuration is invalid: anonymous bind is not allowed." : "Dës Konfiguratioun ass ongëlteg: eng anonym Bindung ass net erlaabt.", - "Action does not exist" : "Dës Aktioun gëtt et net", - "Testing configuration…" : "D'Konfiguratioun gëtt getest...", - "Configuration incorrect" : "D'Konfiguratioun ass net korrekt", - "Configuration incomplete" : "D'Konfiguratioun ass net komplett", - "Configuration OK" : "Konfiguratioun OK", - "Select groups" : "Wiel Gruppen äus", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "D'Späicheren huet net geklappt. W.e.g. géi sécher dass Datebank an der Operatioun ass. Lued nach emol éiers de weider fiers.", - "Select attributes" : "Wiel Attributer aus", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "De Benotzer konnt net fonnt ginn. W.e.g. kuck deng Login Attributer a Benotzernumm no. \n ", - "_%s group found_::_%s groups found_" : ["%s Grupp fonnt","%s Gruppe fonnt"], - "_%s user found_::_%s users found_" : ["%s Benotzer fonnt","%s Benotzere fonnt"], - "Could not find the desired feature" : "Déi gewënschte Funktioun konnt net fonnt ginn", - "Server" : "Server", - "Users" : "Benotzer", - "Groups" : "Gruppen", - "Test Configuration" : "Konfiguratiounstest", - "Help" : "Hëllef", - "Groups meeting these criteria are available in %s:" : "D'Gruppen, déi dës Critèren erfëllen sinn am %s:", - "Only these object classes:" : "Nëmmen des Klass vun Objeten:", - "Only from these groups:" : "Nëmme vun dëse Gruppen:", - "Search groups" : "Sich Gruppen", - "Available groups" : "Disponibel Gruppen", - "Selected groups" : "Ausgewielte Gruppen", - "Test Loginname" : "Test Benotzernumm", - "Verify settings" : "Astellungen iwwerpréiwen", - "1. Server" : "1. Server", - "%s. Server:" : "%s. Server", - "Delete the current configuration" : "Läsch déi aktuell Konfiguratioun", - "Host" : "Host", - "Port" : "Port", - "User DN" : "Benotzer DN", - "Password" : "Passwuert", - "Saving" : "Speicheren...", - "Back" : "Zeréck", - "Continue" : "Weider", - "Advanced" : "Erweidert", - "Connection Settings" : "D'Astellunge vun der Verbindung", - "Configuration Active" : "D'Konfiguratioun ass aktiv", - "When unchecked, this configuration will be skipped." : "Ouni Iwwerpréiwung wäert dës Konfiguratioun iwwergaange ginn.", - "Directory Settings" : "Dossier's Astellungen", - "in bytes" : "A Bytes", - "Email Field" : "Email Feld", - "Internal Username" : "Interne Benotzernumm", - "Internal Username Attribute:" : "Interne Benotzernumm Attribut:" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/lb.json b/apps/user_ldap/l10n/lb.json deleted file mode 100644 index e869a5821b1..00000000000 --- a/apps/user_ldap/l10n/lb.json +++ /dev/null @@ -1,49 +0,0 @@ -{ "translations": { - "Failed to delete the server configuration" : "D'Server-Konfiguratioun konnt net geläscht ginn", - "The configuration is invalid: anonymous bind is not allowed." : "Dës Konfiguratioun ass ongëlteg: eng anonym Bindung ass net erlaabt.", - "Action does not exist" : "Dës Aktioun gëtt et net", - "Testing configuration…" : "D'Konfiguratioun gëtt getest...", - "Configuration incorrect" : "D'Konfiguratioun ass net korrekt", - "Configuration incomplete" : "D'Konfiguratioun ass net komplett", - "Configuration OK" : "Konfiguratioun OK", - "Select groups" : "Wiel Gruppen äus", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "D'Späicheren huet net geklappt. W.e.g. géi sécher dass Datebank an der Operatioun ass. Lued nach emol éiers de weider fiers.", - "Select attributes" : "Wiel Attributer aus", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "De Benotzer konnt net fonnt ginn. W.e.g. kuck deng Login Attributer a Benotzernumm no. \n ", - "_%s group found_::_%s groups found_" : ["%s Grupp fonnt","%s Gruppe fonnt"], - "_%s user found_::_%s users found_" : ["%s Benotzer fonnt","%s Benotzere fonnt"], - "Could not find the desired feature" : "Déi gewënschte Funktioun konnt net fonnt ginn", - "Server" : "Server", - "Users" : "Benotzer", - "Groups" : "Gruppen", - "Test Configuration" : "Konfiguratiounstest", - "Help" : "Hëllef", - "Groups meeting these criteria are available in %s:" : "D'Gruppen, déi dës Critèren erfëllen sinn am %s:", - "Only these object classes:" : "Nëmmen des Klass vun Objeten:", - "Only from these groups:" : "Nëmme vun dëse Gruppen:", - "Search groups" : "Sich Gruppen", - "Available groups" : "Disponibel Gruppen", - "Selected groups" : "Ausgewielte Gruppen", - "Test Loginname" : "Test Benotzernumm", - "Verify settings" : "Astellungen iwwerpréiwen", - "1. Server" : "1. Server", - "%s. Server:" : "%s. Server", - "Delete the current configuration" : "Läsch déi aktuell Konfiguratioun", - "Host" : "Host", - "Port" : "Port", - "User DN" : "Benotzer DN", - "Password" : "Passwuert", - "Saving" : "Speicheren...", - "Back" : "Zeréck", - "Continue" : "Weider", - "Advanced" : "Erweidert", - "Connection Settings" : "D'Astellunge vun der Verbindung", - "Configuration Active" : "D'Konfiguratioun ass aktiv", - "When unchecked, this configuration will be skipped." : "Ouni Iwwerpréiwung wäert dës Konfiguratioun iwwergaange ginn.", - "Directory Settings" : "Dossier's Astellungen", - "in bytes" : "A Bytes", - "Email Field" : "Email Feld", - "Internal Username" : "Interne Benotzernumm", - "Internal Username Attribute:" : "Interne Benotzernumm Attribut:" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/lo.js b/apps/user_ldap/l10n/lo.js deleted file mode 100644 index 5494dcae62e..00000000000 --- a/apps/user_ldap/l10n/lo.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/lo.json b/apps/user_ldap/l10n/lo.json deleted file mode 100644 index 75f0f056cc4..00000000000 --- a/apps/user_ldap/l10n/lo.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/lv.js b/apps/user_ldap/l10n/lv.js deleted file mode 100644 index 2c623018a21..00000000000 --- a/apps/user_ldap/l10n/lv.js +++ /dev/null @@ -1,114 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Neizdevās nodzēstu samērošanu.", - "Failed to delete the server configuration" : "Neizdevās izdzēst servera konfigurāciju", - "No action specified" : "Nav norādīta darbība", - "No configuration specified" : "Nav norādīta konfigurācija", - "No data specified" : "Nav norādīti dati", - " Could not set configuration %s" : "Nevarēja iestatīt konfigurāciju %s", - "Action does not exist" : "Darbība neeksistē", - "Very weak password" : "Ļoti vāja parole", - "Weak password" : "Vāja parole", - "So-so password" : "Normāla parole", - "Good password" : "Laba parole", - "Strong password" : "Lieliska parole", - "The Base DN appears to be wrong" : "DN bāze šķiet nepareiza", - "Testing configuration…" : "Konfigurācijas pārbaude...", - "Configuration incorrect" : "Nepareiza konfigurācija", - "Configuration incomplete" : "Nepilnīga konfigurācija", - "Configuration OK" : "Konfigurācija OK", - "Select groups" : "Izvēlieties grupas", - "Select object classes" : "Atlasiet objektu klases", - "Please check the credentials, they seem to be wrong." : "Lūdzu, pārbaudiet akreditācijas datus, tie šķiet nepareizi.", - "Please specify the port, it could not be auto-detected." : "Lūdzu, norādiet portu, tas nevarēja būt noteikts automātiski.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "DN bāzi nevarēja noteikt, lūdzu, pārskatiet datus, resursdatoru un portu.", - "Could not detect Base DN, please enter it manually." : "Nevarēja noteikt DN bāzi, lūdzu, ievadiet to manuāli.", - "{nthServer}. Server" : "{nthServer}. Serveris", - "No object found in the given Base DN. Please revise." : "Neviens objekts nav atrasts konkrētā DN bāzē. Lūdzu pārskatīt.", - "More than 1,000 directory entries available." : "Vairāk nekā 1,000 kataloga ieraksti ir pieejami.", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Radās kļūda. Lūdzu, pārbaudiet bāzes DN, kā arī savienojuma iestatījumus vai akreditācijas datus.", - "Do you really want to delete the current Server Configuration?" : "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?", - "Confirm Deletion" : "Apstiprināt dzēšanu", - "Mappings cleared successfully!" : "Kartējumi notīrīta veiksmīgi!", - "Error while clearing the mappings." : "Kļūda, dzēšot kartējumus.", - "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operācijas kļūda. Anonīma sasaiste, iespējams, nav atļauta.", - "Select attributes" : "Atlasīt atribūtus", - "Password change rejected. Hint: " : "Paroles maiņas noraidīja. Padoms:", - "Invalid Host" : "Nederīgs resursdators", - "Test Configuration" : "Testa konfigurācija", - "Help" : "Palīdzība", - "Only these object classes:" : "Tikai šo objektu kategorijas:", - "Only from these groups:" : "Tikai no šīm grupām:", - "Search groups" : "Meklēt grupas", - "Available groups" : "Pieejamās grupas", - "Selected groups" : "Izvēlētās grupas", - "Edit LDAP Query" : "Labot LDAP vaicājumu", - "LDAP Filter:" : "LDAP filtrs:", - "Verify settings and count the groups" : "Pārbaudiet iestatījumus un saskaitiet grupas", - "Other Attributes:" : "Citi atribūti:", - "Test Loginname" : "Pārbaudiet lietotājvārdu", - "Verify settings" : "Pārbaudīt iestatījumus", - "%s. Server:" : "%s. Serveris:", - "Host" : "Resursdators", - "Port" : "Ports", - "Detect Port" : "Noteikt portu", - "User DN" : "Lietotāja DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", - "Password" : "Parole", - "For anonymous access, leave DN and Password empty." : "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", - "One Base DN per line" : "Viena bāzes DN rindā", - "You can specify Base DN for users and groups in the Advanced tab" : "Lietotājiem un grupām var norādīt bāzes DN cilnē “Paplašināti”", - "Detect Base DN" : "Noteikt bāzes DN", - "Test Base DN" : "Testēt bāzes DN", - "Verify settings and count users" : "Pārbaudiet iestatījumus un saskaitiet lietotājus", - "Saving" : "Saglabā", - "Back" : "Atpakaļ", - "Continue" : "Turpināt", - "An internal error occurred." : "Radās iekšēja kļūda.", - "Please try again or contact your administrator." : "Lūdzu, mēģiniet vēlreiz vai sazinieties ar administratoru.", - "Current password" : "Pašreizējā parole", - "New password" : "Jauna parole", - "Wrong password." : "Nepareiza parole.", - "Cancel" : "Atcelt", - "Server" : "Serveris", - "Users" : "Lietotāji", - "Login Attributes" : "Pieteikšanās atribūti", - "Groups" : "Grupas", - "Expert" : "Eksperts", - "Advanced" : "Paplašināti", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", - "Connection Settings" : "Savienojuma iestatījumi", - "Configuration Active" : "Konfigurācija ir aktīva", - "When unchecked, this configuration will be skipped." : "Ja nav atzīmēts, šī konfigurācija tiks izlaista.", - "Backup (Replica) Host" : "Rezerves (kopija) serveris", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.", - "Backup (Replica) Port" : "Rezerves (kopijas) ports", - "Disable Main Server" : "Deaktivēt galveno serveri", - "Turn off SSL certificate validation." : "Izslēgt SSL sertifikātu validēšanu.", - "Cache Time-To-Live" : "Kešatmiņas dzīvlaiks", - "in seconds. A change empties the cache." : "sekundēs. Izmaiņas iztukšos kešatmiņu.", - "Directory Settings" : "Direktorijas iestatījumi", - "User Display Name Field" : "Lietotāja redzamā vārda lauks", - "Base User Tree" : "Bāzes lietotāju koks", - "One User Base DN per line" : "Viens lietotājs bāzes DN rindā", - "User Search Attributes" : "Lietotāju meklēšanas atribūts", - "Optional; one attribute per line" : "Neobligāti; viens atribūts rindā", - "Group Display Name Field" : "Grupas redzamā nosaukuma lauks", - "Base Group Tree" : "Bāzes grupu koks", - "One Group Base DN per line" : "Viena grupu bāzes DN rindā", - "Group Search Attributes" : "Grupu meklēšanas atribūts", - "Group-Member association" : "Grupu piederības asociācija", - "Enable LDAP password changes per user" : "Iespējot LDAP paroles maiņu katram lietotājam", - "(New password is sent as plain text to LDAP)" : "(Jaunā parole tiek nosūtīta kā vienkāršs teksts ar LDAP)", - "Special Attributes" : "Īpašie atribūti", - "Quota Field" : "Kvotu lauks", - "Quota Default" : "Kvotas noklusējums", - "Email Field" : "E-pasta lauks", - "User Home Folder Naming Rule" : "Lietotāja mājas mapes nosaukšanas kārtula", - "Internal Username" : "Iekšējais lietotājvārds", - "Override UUID detection" : "Ignorēt UUID noteikšanu", - "UUID Attribute for Users:" : "UUID atribūti lietotājiem:", - "UUID Attribute for Groups:" : "UUID atribūti grupām:" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/user_ldap/l10n/lv.json b/apps/user_ldap/l10n/lv.json deleted file mode 100644 index fdebc4b2287..00000000000 --- a/apps/user_ldap/l10n/lv.json +++ /dev/null @@ -1,112 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Neizdevās nodzēstu samērošanu.", - "Failed to delete the server configuration" : "Neizdevās izdzēst servera konfigurāciju", - "No action specified" : "Nav norādīta darbība", - "No configuration specified" : "Nav norādīta konfigurācija", - "No data specified" : "Nav norādīti dati", - " Could not set configuration %s" : "Nevarēja iestatīt konfigurāciju %s", - "Action does not exist" : "Darbība neeksistē", - "Very weak password" : "Ļoti vāja parole", - "Weak password" : "Vāja parole", - "So-so password" : "Normāla parole", - "Good password" : "Laba parole", - "Strong password" : "Lieliska parole", - "The Base DN appears to be wrong" : "DN bāze šķiet nepareiza", - "Testing configuration…" : "Konfigurācijas pārbaude...", - "Configuration incorrect" : "Nepareiza konfigurācija", - "Configuration incomplete" : "Nepilnīga konfigurācija", - "Configuration OK" : "Konfigurācija OK", - "Select groups" : "Izvēlieties grupas", - "Select object classes" : "Atlasiet objektu klases", - "Please check the credentials, they seem to be wrong." : "Lūdzu, pārbaudiet akreditācijas datus, tie šķiet nepareizi.", - "Please specify the port, it could not be auto-detected." : "Lūdzu, norādiet portu, tas nevarēja būt noteikts automātiski.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "DN bāzi nevarēja noteikt, lūdzu, pārskatiet datus, resursdatoru un portu.", - "Could not detect Base DN, please enter it manually." : "Nevarēja noteikt DN bāzi, lūdzu, ievadiet to manuāli.", - "{nthServer}. Server" : "{nthServer}. Serveris", - "No object found in the given Base DN. Please revise." : "Neviens objekts nav atrasts konkrētā DN bāzē. Lūdzu pārskatīt.", - "More than 1,000 directory entries available." : "Vairāk nekā 1,000 kataloga ieraksti ir pieejami.", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Radās kļūda. Lūdzu, pārbaudiet bāzes DN, kā arī savienojuma iestatījumus vai akreditācijas datus.", - "Do you really want to delete the current Server Configuration?" : "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?", - "Confirm Deletion" : "Apstiprināt dzēšanu", - "Mappings cleared successfully!" : "Kartējumi notīrīta veiksmīgi!", - "Error while clearing the mappings." : "Kļūda, dzēšot kartējumus.", - "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operācijas kļūda. Anonīma sasaiste, iespējams, nav atļauta.", - "Select attributes" : "Atlasīt atribūtus", - "Password change rejected. Hint: " : "Paroles maiņas noraidīja. Padoms:", - "Invalid Host" : "Nederīgs resursdators", - "Test Configuration" : "Testa konfigurācija", - "Help" : "Palīdzība", - "Only these object classes:" : "Tikai šo objektu kategorijas:", - "Only from these groups:" : "Tikai no šīm grupām:", - "Search groups" : "Meklēt grupas", - "Available groups" : "Pieejamās grupas", - "Selected groups" : "Izvēlētās grupas", - "Edit LDAP Query" : "Labot LDAP vaicājumu", - "LDAP Filter:" : "LDAP filtrs:", - "Verify settings and count the groups" : "Pārbaudiet iestatījumus un saskaitiet grupas", - "Other Attributes:" : "Citi atribūti:", - "Test Loginname" : "Pārbaudiet lietotājvārdu", - "Verify settings" : "Pārbaudīt iestatījumus", - "%s. Server:" : "%s. Serveris:", - "Host" : "Resursdators", - "Port" : "Ports", - "Detect Port" : "Noteikt portu", - "User DN" : "Lietotāja DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", - "Password" : "Parole", - "For anonymous access, leave DN and Password empty." : "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", - "One Base DN per line" : "Viena bāzes DN rindā", - "You can specify Base DN for users and groups in the Advanced tab" : "Lietotājiem un grupām var norādīt bāzes DN cilnē “Paplašināti”", - "Detect Base DN" : "Noteikt bāzes DN", - "Test Base DN" : "Testēt bāzes DN", - "Verify settings and count users" : "Pārbaudiet iestatījumus un saskaitiet lietotājus", - "Saving" : "Saglabā", - "Back" : "Atpakaļ", - "Continue" : "Turpināt", - "An internal error occurred." : "Radās iekšēja kļūda.", - "Please try again or contact your administrator." : "Lūdzu, mēģiniet vēlreiz vai sazinieties ar administratoru.", - "Current password" : "Pašreizējā parole", - "New password" : "Jauna parole", - "Wrong password." : "Nepareiza parole.", - "Cancel" : "Atcelt", - "Server" : "Serveris", - "Users" : "Lietotāji", - "Login Attributes" : "Pieteikšanās atribūti", - "Groups" : "Grupas", - "Expert" : "Eksperts", - "Advanced" : "Paplašināti", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", - "Connection Settings" : "Savienojuma iestatījumi", - "Configuration Active" : "Konfigurācija ir aktīva", - "When unchecked, this configuration will be skipped." : "Ja nav atzīmēts, šī konfigurācija tiks izlaista.", - "Backup (Replica) Host" : "Rezerves (kopija) serveris", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.", - "Backup (Replica) Port" : "Rezerves (kopijas) ports", - "Disable Main Server" : "Deaktivēt galveno serveri", - "Turn off SSL certificate validation." : "Izslēgt SSL sertifikātu validēšanu.", - "Cache Time-To-Live" : "Kešatmiņas dzīvlaiks", - "in seconds. A change empties the cache." : "sekundēs. Izmaiņas iztukšos kešatmiņu.", - "Directory Settings" : "Direktorijas iestatījumi", - "User Display Name Field" : "Lietotāja redzamā vārda lauks", - "Base User Tree" : "Bāzes lietotāju koks", - "One User Base DN per line" : "Viens lietotājs bāzes DN rindā", - "User Search Attributes" : "Lietotāju meklēšanas atribūts", - "Optional; one attribute per line" : "Neobligāti; viens atribūts rindā", - "Group Display Name Field" : "Grupas redzamā nosaukuma lauks", - "Base Group Tree" : "Bāzes grupu koks", - "One Group Base DN per line" : "Viena grupu bāzes DN rindā", - "Group Search Attributes" : "Grupu meklēšanas atribūts", - "Group-Member association" : "Grupu piederības asociācija", - "Enable LDAP password changes per user" : "Iespējot LDAP paroles maiņu katram lietotājam", - "(New password is sent as plain text to LDAP)" : "(Jaunā parole tiek nosūtīta kā vienkāršs teksts ar LDAP)", - "Special Attributes" : "Īpašie atribūti", - "Quota Field" : "Kvotu lauks", - "Quota Default" : "Kvotas noklusējums", - "Email Field" : "E-pasta lauks", - "User Home Folder Naming Rule" : "Lietotāja mājas mapes nosaukšanas kārtula", - "Internal Username" : "Iekšējais lietotājvārds", - "Override UUID detection" : "Ignorēt UUID noteikšanu", - "UUID Attribute for Users:" : "UUID atribūti lietotājiem:", - "UUID Attribute for Groups:" : "UUID atribūti grupām:" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/mg.js b/apps/user_ldap/l10n/mg.js deleted file mode 100644 index 95c97db2f9c..00000000000 --- a/apps/user_ldap/l10n/mg.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/mg.json b/apps/user_ldap/l10n/mg.json deleted file mode 100644 index 8e0cd6f6783..00000000000 --- a/apps/user_ldap/l10n/mg.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/mk.js b/apps/user_ldap/l10n/mk.js deleted file mode 100644 index 39fe8f5da90..00000000000 --- a/apps/user_ldap/l10n/mk.js +++ /dev/null @@ -1,18 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Неуспешно бришење на мапирањстс.", - "Select groups" : "Одбери групи", - "Confirm Deletion" : "Потврдете го бришењето", - "Users" : "Корисници", - "Groups" : "Групи", - "Help" : "Помош", - "Host" : "Домаќин", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://", - "Port" : "Порта", - "Password" : "Лозинка", - "Back" : "Назад", - "Continue" : "Продолжи", - "Advanced" : "Напредно" -}, -"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/user_ldap/l10n/mk.json b/apps/user_ldap/l10n/mk.json deleted file mode 100644 index 238bd2a8ebc..00000000000 --- a/apps/user_ldap/l10n/mk.json +++ /dev/null @@ -1,16 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Неуспешно бришење на мапирањстс.", - "Select groups" : "Одбери групи", - "Confirm Deletion" : "Потврдете го бришењето", - "Users" : "Корисници", - "Groups" : "Групи", - "Help" : "Помош", - "Host" : "Домаќин", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://", - "Port" : "Порта", - "Password" : "Лозинка", - "Back" : "Назад", - "Continue" : "Продолжи", - "Advanced" : "Напредно" -},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ml.js b/apps/user_ldap/l10n/ml.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/ml.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ml.json b/apps/user_ldap/l10n/ml.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/ml.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/mn.js b/apps/user_ldap/l10n/mn.js deleted file mode 100644 index 304c0247840..00000000000 --- a/apps/user_ldap/l10n/mn.js +++ /dev/null @@ -1,6 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Password" : "Нууц үг" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/mn.json b/apps/user_ldap/l10n/mn.json deleted file mode 100644 index 13788221f43..00000000000 --- a/apps/user_ldap/l10n/mn.json +++ /dev/null @@ -1,4 +0,0 @@ -{ "translations": { - "Password" : "Нууц үг" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/mr.js b/apps/user_ldap/l10n/mr.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/mr.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/mr.json b/apps/user_ldap/l10n/mr.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/mr.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ms_MY.js b/apps/user_ldap/l10n/ms_MY.js deleted file mode 100644 index 74bdc1b820f..00000000000 --- a/apps/user_ldap/l10n/ms_MY.js +++ /dev/null @@ -1,11 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "Pengguna", - "Groups" : "Kumpulan", - "Help" : "Bantuan", - "Password" : "Kata laluan", - "Back" : "Kembali", - "Advanced" : "Maju" -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/ms_MY.json b/apps/user_ldap/l10n/ms_MY.json deleted file mode 100644 index 1d26cfcaf3d..00000000000 --- a/apps/user_ldap/l10n/ms_MY.json +++ /dev/null @@ -1,9 +0,0 @@ -{ "translations": { - "Users" : "Pengguna", - "Groups" : "Kumpulan", - "Help" : "Bantuan", - "Password" : "Kata laluan", - "Back" : "Kembali", - "Advanced" : "Maju" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/mt_MT.js b/apps/user_ldap/l10n/mt_MT.js deleted file mode 100644 index 8b3fcfae910..00000000000 --- a/apps/user_ldap/l10n/mt_MT.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["","","",""], - "_%s user found_::_%s users found_" : ["","","",""] -}, -"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"); diff --git a/apps/user_ldap/l10n/mt_MT.json b/apps/user_ldap/l10n/mt_MT.json deleted file mode 100644 index cbda8c83cca..00000000000 --- a/apps/user_ldap/l10n/mt_MT.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["","","",""], - "_%s user found_::_%s users found_" : ["","","",""] -},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/nn_NO.js b/apps/user_ldap/l10n/nn_NO.js deleted file mode 100644 index c14fc8b78b9..00000000000 --- a/apps/user_ldap/l10n/nn_NO.js +++ /dev/null @@ -1,14 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Select groups" : "Vel grupper", - "Users" : "Brukarar", - "Groups" : "Grupper", - "Help" : "Hjelp", - "Host" : "Tenar", - "Password" : "Passord", - "Back" : "Tilbake", - "Continue" : "Gå vidare", - "Advanced" : "Avansert" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/nn_NO.json b/apps/user_ldap/l10n/nn_NO.json deleted file mode 100644 index 4cd54c39e08..00000000000 --- a/apps/user_ldap/l10n/nn_NO.json +++ /dev/null @@ -1,12 +0,0 @@ -{ "translations": { - "Select groups" : "Vel grupper", - "Users" : "Brukarar", - "Groups" : "Grupper", - "Help" : "Hjelp", - "Host" : "Tenar", - "Password" : "Passord", - "Back" : "Tilbake", - "Continue" : "Gå vidare", - "Advanced" : "Avansert" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/nqo.js b/apps/user_ldap/l10n/nqo.js deleted file mode 100644 index 5494dcae62e..00000000000 --- a/apps/user_ldap/l10n/nqo.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/nqo.json b/apps/user_ldap/l10n/nqo.json deleted file mode 100644 index 75f0f056cc4..00000000000 --- a/apps/user_ldap/l10n/nqo.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/oc.js b/apps/user_ldap/l10n/oc.js deleted file mode 100644 index 4a06d436198..00000000000 --- a/apps/user_ldap/l10n/oc.js +++ /dev/null @@ -1,157 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Error al moment de la supression de las associacions.", - "Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor", - "The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.", - "The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.", - "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.", - "No action specified" : "Cap d'accion pas especificada", - "No configuration specified" : "Cap de configuration pas especificada", - "No data specified" : "Cap de donada pas especificada", - " Could not set configuration %s" : "Impossible d'especificar la configuracion %s", - "Action does not exist" : "L'accion existís pas", - "The Base DN appears to be wrong" : "Lo DN de basa es erronèu", - "Configuration incorrect" : "Configuracion incorrècta", - "Configuration incomplete" : "Configuracion incompleta", - "Configuration OK" : "Configuracion OK", - "Select groups" : "Seleccionatz los gropes", - "Select object classes" : "Seleccionar las classas d'objècte", - "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion", - "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.", - "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament", - "{nthServer}. Server" : "{nthServer}. Servidor", - "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.", - "More than 1,000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.", - " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.", - "Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?", - "Confirm Deletion" : "Confirmar la supression", - "Mappings cleared successfully!" : "Associacions suprimidas amb succès !", - "Error while clearing the mappings." : "Error al moment de la supression de las associacions.", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?", - "Mode switch" : "Cambiar de mòde", - "Select attributes" : "Seleccionar los atributs", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>", - "User found and settings verified." : "Utilizaire trobat e paramètres verificats.", - "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.", - "An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.", - "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.", - "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.", - "_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"], - "_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de detectar l'atribut que conten lo nom d'afichatge des utilizaires. Indicatz-lo vos-meteis dins los paramètres ldap avançats.", - "Could not find the desired feature" : "Impossible de trobar la foncion desirada", - "Invalid Host" : "Òste invalid", - "Server" : "Servidor", - "Users" : "Utilizaires", - "Login Attributes" : "Atributs de login", - "Groups" : "Gropes", - "Test Configuration" : "Testar la configuracion", - "Help" : "Ajuda", - "Groups meeting these criteria are available in %s:" : "Los gropes que respèctan aquestes critèris son disponibles dins %s :", - "Only these object classes:" : "Solament aquestas classes d'objèctes :", - "Only from these groups:" : "Solament dins aquestes gropes :", - "Search groups" : "Cercar dins los gropes", - "Available groups" : "Gropes disponibles", - "Selected groups" : "Gropes seleccionats", - "Edit LDAP Query" : "Modificar la requèsta LDAP", - "LDAP Filter:" : "Filtre LDAP :", - "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.", - "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes", - "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :", - "LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ", - "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.", - "Other Attributes:" : "Autres atributs :", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"", - "Test Loginname" : "Loginname de tèst", - "Verify settings" : "Testar los paramètres", - "1. Server" : "1. Servidor", - "%s. Server:" : "%s. Servidor :", - "Add a new and blank configuration" : "Apondre una novèla configuracion verge", - "Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla", - "Delete the current configuration" : "Suprimir la configuracion actuala", - "Host" : "Òste", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://", - "Port" : "Pòrt", - "Detect Port" : "Detectar lo pòrt", - "User DN" : "DN Utilizaire", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.", - "Password" : "Senhal", - "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.", - "One Base DN per line" : "Un DN de basa per linha", - "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat", - "Detect Base DN" : "Detectar lo DN de basa", - "Test Base DN" : "Testar lo DN de basa", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.", - "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.", - "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires", - "Saving" : "Enregistrament...", - "Back" : "Retorn", - "Continue" : "Contunhar", - "LDAP" : "LDAP", - "Expert" : "Expèrt", - "Advanced" : "Avançat", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.", - "Connection Settings" : "Paramètres de connexion", - "Configuration Active" : "Configuracion activa", - "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.", - "Backup (Replica) Host" : "Servidor de backup (replica)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.", - "Backup (Replica) Port" : "Pòrt del servidor de backup (replica)", - "Disable Main Server" : "Desactivar lo servidor principal", - "Only connect to the replica server." : "Se connectar unicament a la replica", - "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.", - "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)", - "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.", - "Directory Settings" : "Paramètres del repertòri", - "User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire", - "The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.", - "Base User Tree" : "DN raiç de l'arbre utilizaires", - "One User Base DN per line" : "Un DN de basa utilizaire per linha", - "User Search Attributes" : "Atributs de recèrca utilizaires", - "Optional; one attribute per line" : "Opcional, un atribut per linha", - "Group Display Name Field" : "Camp \"nom d'afichatge\" del grop", - "The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.", - "Base Group Tree" : "DN raiç de l'arbre gropes", - "One Group Base DN per line" : "Un DN de basa grop per linha", - "Group Search Attributes" : "Atributs de recèrca des gropes", - "Group-Member association" : "Associacion grop-membre", - "Nested Groups" : "Gropes imbricats", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).", - "Paging chunksize" : "Paging chunksize", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)", - "Special Attributes" : "Atributs especials", - "Quota Field" : "Camp del quòta", - "Quota Default" : "Quòta per defaut", - "in bytes" : "en octets", - "Email Field" : "Camp Email", - "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.", - "Internal Username" : "Nom d'utilizaire intèrne", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.", - "Internal Username Attribute:" : "Nom d'utilizaire intèrne :", - "Override UUID detection" : "Passar outra la deteccion des UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.", - "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :", - "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :", - "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.", - "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP", - "Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/oc.json b/apps/user_ldap/l10n/oc.json deleted file mode 100644 index ed63543180a..00000000000 --- a/apps/user_ldap/l10n/oc.json +++ /dev/null @@ -1,155 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Error al moment de la supression de las associacions.", - "Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor", - "The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.", - "The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.", - "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.", - "No action specified" : "Cap d'accion pas especificada", - "No configuration specified" : "Cap de configuration pas especificada", - "No data specified" : "Cap de donada pas especificada", - " Could not set configuration %s" : "Impossible d'especificar la configuracion %s", - "Action does not exist" : "L'accion existís pas", - "The Base DN appears to be wrong" : "Lo DN de basa es erronèu", - "Configuration incorrect" : "Configuracion incorrècta", - "Configuration incomplete" : "Configuracion incompleta", - "Configuration OK" : "Configuracion OK", - "Select groups" : "Seleccionatz los gropes", - "Select object classes" : "Seleccionar las classas d'objècte", - "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion", - "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.", - "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament", - "{nthServer}. Server" : "{nthServer}. Servidor", - "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.", - "More than 1,000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.", - " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat", - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.", - "Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?", - "Confirm Deletion" : "Confirmar la supression", - "Mappings cleared successfully!" : "Associacions suprimidas amb succès !", - "Error while clearing the mappings." : "Error al moment de la supression de las associacions.", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?", - "Mode switch" : "Cambiar de mòde", - "Select attributes" : "Seleccionar los atributs", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>", - "User found and settings verified." : "Utilizaire trobat e paramètres verificats.", - "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.", - "An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.", - "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.", - "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.", - "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.", - "_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"], - "_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de detectar l'atribut que conten lo nom d'afichatge des utilizaires. Indicatz-lo vos-meteis dins los paramètres ldap avançats.", - "Could not find the desired feature" : "Impossible de trobar la foncion desirada", - "Invalid Host" : "Òste invalid", - "Server" : "Servidor", - "Users" : "Utilizaires", - "Login Attributes" : "Atributs de login", - "Groups" : "Gropes", - "Test Configuration" : "Testar la configuracion", - "Help" : "Ajuda", - "Groups meeting these criteria are available in %s:" : "Los gropes que respèctan aquestes critèris son disponibles dins %s :", - "Only these object classes:" : "Solament aquestas classes d'objèctes :", - "Only from these groups:" : "Solament dins aquestes gropes :", - "Search groups" : "Cercar dins los gropes", - "Available groups" : "Gropes disponibles", - "Selected groups" : "Gropes seleccionats", - "Edit LDAP Query" : "Modificar la requèsta LDAP", - "LDAP Filter:" : "Filtre LDAP :", - "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.", - "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes", - "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :", - "LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ", - "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.", - "Other Attributes:" : "Autres atributs :", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"", - "Test Loginname" : "Loginname de tèst", - "Verify settings" : "Testar los paramètres", - "1. Server" : "1. Servidor", - "%s. Server:" : "%s. Servidor :", - "Add a new and blank configuration" : "Apondre una novèla configuracion verge", - "Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla", - "Delete the current configuration" : "Suprimir la configuracion actuala", - "Host" : "Òste", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://", - "Port" : "Pòrt", - "Detect Port" : "Detectar lo pòrt", - "User DN" : "DN Utilizaire", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.", - "Password" : "Senhal", - "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.", - "One Base DN per line" : "Un DN de basa per linha", - "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat", - "Detect Base DN" : "Detectar lo DN de basa", - "Test Base DN" : "Testar lo DN de basa", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.", - "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.", - "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires", - "Saving" : "Enregistrament...", - "Back" : "Retorn", - "Continue" : "Contunhar", - "LDAP" : "LDAP", - "Expert" : "Expèrt", - "Advanced" : "Avançat", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.", - "Connection Settings" : "Paramètres de connexion", - "Configuration Active" : "Configuracion activa", - "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.", - "Backup (Replica) Host" : "Servidor de backup (replica)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.", - "Backup (Replica) Port" : "Pòrt del servidor de backup (replica)", - "Disable Main Server" : "Desactivar lo servidor principal", - "Only connect to the replica server." : "Se connectar unicament a la replica", - "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.", - "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)", - "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.", - "Directory Settings" : "Paramètres del repertòri", - "User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire", - "The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.", - "Base User Tree" : "DN raiç de l'arbre utilizaires", - "One User Base DN per line" : "Un DN de basa utilizaire per linha", - "User Search Attributes" : "Atributs de recèrca utilizaires", - "Optional; one attribute per line" : "Opcional, un atribut per linha", - "Group Display Name Field" : "Camp \"nom d'afichatge\" del grop", - "The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.", - "Base Group Tree" : "DN raiç de l'arbre gropes", - "One Group Base DN per line" : "Un DN de basa grop per linha", - "Group Search Attributes" : "Atributs de recèrca des gropes", - "Group-Member association" : "Associacion grop-membre", - "Nested Groups" : "Gropes imbricats", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).", - "Paging chunksize" : "Paging chunksize", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)", - "Special Attributes" : "Atributs especials", - "Quota Field" : "Camp del quòta", - "Quota Default" : "Quòta per defaut", - "in bytes" : "en octets", - "Email Field" : "Camp Email", - "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.", - "Internal Username" : "Nom d'utilizaire intèrne", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.", - "Internal Username Attribute:" : "Nom d'utilizaire intèrne :", - "Override UUID detection" : "Passar outra la deteccion des UUID", - "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.", - "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :", - "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :", - "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.", - "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP", - "Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index d2a45ba97d6..1e8b788f12f 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -6,10 +6,12 @@ OC.L10N.register( "Invalid configuration: Anonymous binding is not allowed." : "Nieprawidłowa konfiguracja: Anonimowe podpinanie jest niedozwolone.", "Valid configuration, connection established!" : "Konfiguracja poprawna, połączenie ustanowione!", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Konfiguracja poprawna, ale powiązanie nie powiodło się. Sprawdź konfigurację serwera i poświadczenia.", + "Invalid configuration: %s" : "Nieprawidłowa konfiguracja: %s", "No action specified" : "Nie określono akcji", "No configuration specified" : "Nie określono konfiguracji", "No data specified" : "Nie określono danych", "Invalid data specified" : "Podano nieprawidłowe dane", + "Could not set configuration %1$s to %2$s" : "Nie można ustawić konfiguracji %1$s na %2$s", "Action does not exist" : "Akcja nie istnieje", "Renewing …" : "Odnawianie…", "Very weak password" : "Bardzo słabe hasło", @@ -52,6 +54,14 @@ OC.L10N.register( "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Brak symbolu zastępczego \"%uid\". Zostanie zastąpiony nazwą logowania podczas odpytywania LDAP/AD.", "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Pole do wpisu dla grupy zostało wyłączone, ponieważ LDAP/AD nie obsługuje memberOf.", + "Password change rejected. Hint: %s" : "Zmiana hasła odrzucona: Wskazówka: %s", + "Mandatory field \"%s\" left empty" : "Obowiązkowe pole \"%s\" pozostawiono puste", + "A password is given, but not an LDAP agent" : "Podano hasło, ale nie wskazano agenta LDAP", + "No password is given for the user agent" : "Nie podano hasła dla agenta użytkownika", + "No LDAP base DN was given" : "Nie podano bazowego DN LDAP", + "User base DN is not a subnode of global base DN" : "Bazowy DN użytkownika nie jest podwęzłem globalnego DN", + "Group base DN is not a subnode of global base DN" : "Bazowy DN grupy nie jest podwęzłem globalnego DN", + "Login filter does not contain %s placeholder." : "Filtr logowania nie zawiera zastępnika %s.", "Please login with the new password" : "Zaloguj się przy użyciu nowego hasła", "LDAP User backend" : "Moduł użytkownika LDAP", "Your password will expire tomorrow." : "Twoje hasło wygasa jutro.", @@ -59,6 +69,10 @@ OC.L10N.register( "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."], "LDAP/AD integration" : "Integracja z LDAP/AD", "LDAP Connection" : "Połączenie LDAP", + "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %s połączenie nie powiodło się","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s"], + "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %2$s wyszukiwanie nie powiodło się ","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s"], + "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Jest jedna nieaktywna konfiguracja LDAP\" %s","Istnieją %1$n nieaktywne konfiguracje LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s"], + "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : ["Łączenie i wyszukiwanie działa dla skonfigurowanego połączenia LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)"], "Invalid LDAP UUIDs" : "Nieprawidłowy LDAP UUID", "None found" : "Nie znaleziono", "Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Znaleziono nieprawidłowe identyfikatory UUID kont lub grup LDAP. Sprawdź ustawienia „Zastąp wykrywanie UUID” w części eksperckiej konfiguracji LDAP i użyj „occ ldap:update-uuid”, aby je zaktualizować.", @@ -192,12 +206,23 @@ OC.L10N.register( "Website Field" : "Pole witryny internetowej", "User profile Website will be set from the specified attribute" : "Witryna internetowa profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Address Field" : "Pole adresu", + "User profile Address will be set from the specified attribute" : "Adres profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Twitter Field" : "Pole Twittera/X", + "User profile Twitter will be set from the specified attribute" : "Twitter profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Fediverse Field" : "Pole Fediversum", + "User profile Fediverse will be set from the specified attribute" : "Fediverse profilu użytkownika zostanie ustawione na podstawie określonego atrybutu", "Organisation Field" : "Pole organizacji", + "User profile Organisation will be set from the specified attribute" : "Organizacja profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Role Field" : "Pole roli", + "User profile Role will be set from the specified attribute" : "Rola w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", + "Headline Field" : "Pole nagłówka", + "User profile Headline will be set from the specified attribute" : "Nagłówek profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Biography Field" : "Pole biografii", + "User profile Biography will be set from the specified attribute" : "Biografia profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Birthdate Field" : "Pole daty urodzenia", + "User profile Date of birth will be set from the specified attribute" : "Data urodzenia w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", + "Pronouns Field" : "Pole zaimków", + "User profile Pronouns will be set from the specified attribute" : "Zaimki w profilu użytkownika zostaną ustawione na podstawie określonego atrybutu", "Internal Username" : "Wewnętrzna nazwa użytkownika", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.", "Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:", diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 8925a27a537..57c25f9609b 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -4,10 +4,12 @@ "Invalid configuration: Anonymous binding is not allowed." : "Nieprawidłowa konfiguracja: Anonimowe podpinanie jest niedozwolone.", "Valid configuration, connection established!" : "Konfiguracja poprawna, połączenie ustanowione!", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Konfiguracja poprawna, ale powiązanie nie powiodło się. Sprawdź konfigurację serwera i poświadczenia.", + "Invalid configuration: %s" : "Nieprawidłowa konfiguracja: %s", "No action specified" : "Nie określono akcji", "No configuration specified" : "Nie określono konfiguracji", "No data specified" : "Nie określono danych", "Invalid data specified" : "Podano nieprawidłowe dane", + "Could not set configuration %1$s to %2$s" : "Nie można ustawić konfiguracji %1$s na %2$s", "Action does not exist" : "Akcja nie istnieje", "Renewing …" : "Odnawianie…", "Very weak password" : "Bardzo słabe hasło", @@ -50,6 +52,14 @@ "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Brak symbolu zastępczego \"%uid\". Zostanie zastąpiony nazwą logowania podczas odpytywania LDAP/AD.", "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Pole do wpisu dla grupy zostało wyłączone, ponieważ LDAP/AD nie obsługuje memberOf.", + "Password change rejected. Hint: %s" : "Zmiana hasła odrzucona: Wskazówka: %s", + "Mandatory field \"%s\" left empty" : "Obowiązkowe pole \"%s\" pozostawiono puste", + "A password is given, but not an LDAP agent" : "Podano hasło, ale nie wskazano agenta LDAP", + "No password is given for the user agent" : "Nie podano hasła dla agenta użytkownika", + "No LDAP base DN was given" : "Nie podano bazowego DN LDAP", + "User base DN is not a subnode of global base DN" : "Bazowy DN użytkownika nie jest podwęzłem globalnego DN", + "Group base DN is not a subnode of global base DN" : "Bazowy DN grupy nie jest podwęzłem globalnego DN", + "Login filter does not contain %s placeholder." : "Filtr logowania nie zawiera zastępnika %s.", "Please login with the new password" : "Zaloguj się przy użyciu nowego hasła", "LDAP User backend" : "Moduł użytkownika LDAP", "Your password will expire tomorrow." : "Twoje hasło wygasa jutro.", @@ -57,6 +67,10 @@ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."], "LDAP/AD integration" : "Integracja z LDAP/AD", "LDAP Connection" : "Połączenie LDAP", + "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %s połączenie nie powiodło się","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s","Połączenie nie powiodło się dla %n konfiguracji LDAP: %s"], + "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Dla tej konfiguracji LDAP: %2$s wyszukiwanie nie powiodło się ","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s","Wyszukiwanie nie powiodło się dla %1$n konfiguracji LDAP: %2$s"], + "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Jest jedna nieaktywna konfiguracja LDAP\" %s","Istnieją %1$n nieaktywne konfiguracje LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s","Istnieje %1$n nieaktywnych konfiguracji LDAP: %2$s"], + "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : ["Łączenie i wyszukiwanie działa dla skonfigurowanego połączenia LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)","Łączenie i wyszukiwanie działa dla wszystkich %1$n skonfigurowanych połączeń LDAP (%2$s)"], "Invalid LDAP UUIDs" : "Nieprawidłowy LDAP UUID", "None found" : "Nie znaleziono", "Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Znaleziono nieprawidłowe identyfikatory UUID kont lub grup LDAP. Sprawdź ustawienia „Zastąp wykrywanie UUID” w części eksperckiej konfiguracji LDAP i użyj „occ ldap:update-uuid”, aby je zaktualizować.", @@ -190,12 +204,23 @@ "Website Field" : "Pole witryny internetowej", "User profile Website will be set from the specified attribute" : "Witryna internetowa profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Address Field" : "Pole adresu", + "User profile Address will be set from the specified attribute" : "Adres profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Twitter Field" : "Pole Twittera/X", + "User profile Twitter will be set from the specified attribute" : "Twitter profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Fediverse Field" : "Pole Fediversum", + "User profile Fediverse will be set from the specified attribute" : "Fediverse profilu użytkownika zostanie ustawione na podstawie określonego atrybutu", "Organisation Field" : "Pole organizacji", + "User profile Organisation will be set from the specified attribute" : "Organizacja profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Role Field" : "Pole roli", + "User profile Role will be set from the specified attribute" : "Rola w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", + "Headline Field" : "Pole nagłówka", + "User profile Headline will be set from the specified attribute" : "Nagłówek profilu użytkownika zostanie ustawiony na podstawie określonego atrybutu", "Biography Field" : "Pole biografii", + "User profile Biography will be set from the specified attribute" : "Biografia profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", "Birthdate Field" : "Pole daty urodzenia", + "User profile Date of birth will be set from the specified attribute" : "Data urodzenia w profilu użytkownika zostanie ustawiona na podstawie określonego atrybutu", + "Pronouns Field" : "Pole zaimków", + "User profile Pronouns will be set from the specified attribute" : "Zaimki w profilu użytkownika zostaną ustawione na podstawie określonego atrybutu", "Internal Username" : "Wewnętrzna nazwa użytkownika", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.", "Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:", diff --git a/apps/user_ldap/l10n/ro.js b/apps/user_ldap/l10n/ro.js deleted file mode 100644 index 47788d4b17b..00000000000 --- a/apps/user_ldap/l10n/ro.js +++ /dev/null @@ -1,101 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.", - "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.", - "Valid configuration, connection established!" : "Configurație validată, conexiune stabilită!", - "No action specified" : "Nu este specificată nicio acțiune ", - "No configuration specified" : "Nu este specificată nicio configurație", - "No data specified" : "Nu au fost specificate date", - " Could not set configuration %s" : "Nu a putut fi setată configurația %s", - "Action does not exist" : "Acțiunea nu există", - "Renewing …" : "Reînnoiesc ...", - "Very weak password" : "Parolă foarte slabă", - "Weak password" : "Parolă slabă", - "So-so password" : "Parolă medie", - "Good password" : "Parolă bună", - "Strong password" : "Parolă puternică", - "The Base DN appears to be wrong" : "DN-ul de bază pare a fi greșit", - "Testing configuration…" : "Se testează configurația...", - "Configuration incorrect" : "Configurație incorectă", - "Configuration incomplete" : "Configurație incompletă", - "Configuration OK" : "Configurație validă", - "Select groups" : "Selectează grupuri ", - "Select object classes" : "Selectează clase de obiecte", - "Please check the credentials, they seem to be wrong." : "Verifică datele de autentificare, ele par a fi greșite.", - "Please specify the port, it could not be auto-detected." : "Specifică portul, nu a putut fi detectat automat.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "DN-ul de bază nu a putut fi detectat automat, te rugăm revizuiește datele de autentificare, gazda și portul.", - "Could not detect Base DN, please enter it manually." : "DN-ul de bază nu a putut fi detectat, introdu-l manual.", - "{nthServer}. Server" : "{nthServer}. Server", - "More than 1,000 directory entries available." : "Mai mult de 1000 de directoare disponibile.", - "Do you really want to delete the current Server Configuration?" : "Sigur vrei să ștergi configurația curentă a serverului?", - "Confirm Deletion" : "Confirmă ștergerea", - "Mappings cleared successfully!" : "Asocierile au fost șterse!", - "Error while clearing the mappings." : "Eroare la ștergerea asocierilor.", - "Select attributes" : "Selectaţi caracteristici", - "Your password will expire tomorrow." : "Parola ta va expira mâine.", - "Your password will expire today." : "Parola ta va expira astăzi.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Parola ta va expira în %n zi.","Parola ta va expira în %n zile.","Parola ta va expira în %n zile."], - "Could not find the desired feature" : "Nu s-a putut găsi funcționalitatea dorită.", - "Invalid Host" : "Host invalid", - "Test Configuration" : "Configurare test", - "Help" : "Ajutor", - "Search groups" : "Caută grupuri", - "Available groups" : "Grupuri disponibile", - "Selected groups" : "Grupurile selectate", - "LDAP Filter:" : "Filtru LDAP:", - "Other Attributes:" : "Alte caracteristici :", - "Verify settings" : "Verifică setările", - "%s. Server:" : "%s. Server:", - "Delete the current configuration" : "Șterge configurația curentă", - "Host" : "Gazdă", - "Port" : "Portul", - "Detect Port" : "Detectează portul", - "User DN" : "DN-ul utilizatorului", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN-ul utilizatorului cu care se va efectua asocierea, de exemplu uid=agent,dc=example,dc=com. Pentru acces anonim, lasă DN-ul și parola libere.", - "Password" : "Parolă", - "For anonymous access, leave DN and Password empty." : "Pentru acces anonim, lasă DN-ul și parola libere.", - "Save Credentials" : "Salvează datele de autentificare", - "One Base DN per line" : "Un DN de bază pe linie", - "You can specify Base DN for users and groups in the Advanced tab" : "Poți specifica DN-ul de bază pentru utilizatori și grupuri în fila Avansat", - "Detect Base DN" : "Detectează DN-ul de bază", - "Test Base DN" : "Testează DN-ul de bază", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evită solicitările LDAP automate. De preferat pentru instalările mai complexe, dar necesită câteva cunoștințe LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Introdu filtrele LDAP manual (recomandat pentru medii LDAP largi)", - "Verify settings and count users" : "Verifică setările și numără utilizatorii", - "Saving" : "Se salvează", - "Back" : "Înapoi", - "Continue" : "Continuă", - "Please renew your password." : "Te rog reînnoiește parola.", - "An internal error occurred." : "A apărut o eroare internă.", - "Please try again or contact your administrator." : "Încearcă din nou sau contactează-ți administratorul.", - "Current password" : "Parola curentă", - "New password" : "Noua parolă", - "Renew password" : "Reînnoiește parola", - "Wrong password." : "Parolă greșită.", - "Cancel" : "Anulează", - "Server" : "Server", - "Users" : "Utilizatori", - "Login Attributes" : "Atribute de autentificare", - "Groups" : "Grupuri", - "Expert" : "Expert", - "Advanced" : "Avansat", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.", - "Connection Settings" : "Setările de conexiune", - "Configuration Active" : "Configurație activă", - "When unchecked, this configuration will be skipped." : "Dacă este debifat, se va sări peste această configurație.", - "Disable Main Server" : "Dezactivaţi serverul principal", - "Turn off SSL certificate validation." : "Oprește validarea certificatelor SSL ", - "in seconds. A change empties the cache." : "în secunde. O schimbare curăță memoria tampon.", - "Directory Settings" : "Setările directorului", - "User Display Name Field" : "Câmpul cu numele vizibil al utilizatorului", - "Base User Tree" : "Arborele de bază al utilizatorilor", - "One User Base DN per line" : "Un DN utilizator de bază pe linie", - "Group Display Name Field" : "Câmpul cu numele grupului", - "Base Group Tree" : "Arborele de bază al Grupurilor", - "One Group Base DN per line" : "Un Group Base DN pe linie", - "Group-Member association" : "Asocierea Grup-Membru", - "Special Attributes" : "Caracteristici speciale ", - "Internal Username" : "Nume utilizator intern" -}, -"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/user_ldap/l10n/ro.json b/apps/user_ldap/l10n/ro.json deleted file mode 100644 index f5fca02f43d..00000000000 --- a/apps/user_ldap/l10n/ro.json +++ /dev/null @@ -1,99 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.", - "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.", - "Valid configuration, connection established!" : "Configurație validată, conexiune stabilită!", - "No action specified" : "Nu este specificată nicio acțiune ", - "No configuration specified" : "Nu este specificată nicio configurație", - "No data specified" : "Nu au fost specificate date", - " Could not set configuration %s" : "Nu a putut fi setată configurația %s", - "Action does not exist" : "Acțiunea nu există", - "Renewing …" : "Reînnoiesc ...", - "Very weak password" : "Parolă foarte slabă", - "Weak password" : "Parolă slabă", - "So-so password" : "Parolă medie", - "Good password" : "Parolă bună", - "Strong password" : "Parolă puternică", - "The Base DN appears to be wrong" : "DN-ul de bază pare a fi greșit", - "Testing configuration…" : "Se testează configurația...", - "Configuration incorrect" : "Configurație incorectă", - "Configuration incomplete" : "Configurație incompletă", - "Configuration OK" : "Configurație validă", - "Select groups" : "Selectează grupuri ", - "Select object classes" : "Selectează clase de obiecte", - "Please check the credentials, they seem to be wrong." : "Verifică datele de autentificare, ele par a fi greșite.", - "Please specify the port, it could not be auto-detected." : "Specifică portul, nu a putut fi detectat automat.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "DN-ul de bază nu a putut fi detectat automat, te rugăm revizuiește datele de autentificare, gazda și portul.", - "Could not detect Base DN, please enter it manually." : "DN-ul de bază nu a putut fi detectat, introdu-l manual.", - "{nthServer}. Server" : "{nthServer}. Server", - "More than 1,000 directory entries available." : "Mai mult de 1000 de directoare disponibile.", - "Do you really want to delete the current Server Configuration?" : "Sigur vrei să ștergi configurația curentă a serverului?", - "Confirm Deletion" : "Confirmă ștergerea", - "Mappings cleared successfully!" : "Asocierile au fost șterse!", - "Error while clearing the mappings." : "Eroare la ștergerea asocierilor.", - "Select attributes" : "Selectaţi caracteristici", - "Your password will expire tomorrow." : "Parola ta va expira mâine.", - "Your password will expire today." : "Parola ta va expira astăzi.", - "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Parola ta va expira în %n zi.","Parola ta va expira în %n zile.","Parola ta va expira în %n zile."], - "Could not find the desired feature" : "Nu s-a putut găsi funcționalitatea dorită.", - "Invalid Host" : "Host invalid", - "Test Configuration" : "Configurare test", - "Help" : "Ajutor", - "Search groups" : "Caută grupuri", - "Available groups" : "Grupuri disponibile", - "Selected groups" : "Grupurile selectate", - "LDAP Filter:" : "Filtru LDAP:", - "Other Attributes:" : "Alte caracteristici :", - "Verify settings" : "Verifică setările", - "%s. Server:" : "%s. Server:", - "Delete the current configuration" : "Șterge configurația curentă", - "Host" : "Gazdă", - "Port" : "Portul", - "Detect Port" : "Detectează portul", - "User DN" : "DN-ul utilizatorului", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN-ul utilizatorului cu care se va efectua asocierea, de exemplu uid=agent,dc=example,dc=com. Pentru acces anonim, lasă DN-ul și parola libere.", - "Password" : "Parolă", - "For anonymous access, leave DN and Password empty." : "Pentru acces anonim, lasă DN-ul și parola libere.", - "Save Credentials" : "Salvează datele de autentificare", - "One Base DN per line" : "Un DN de bază pe linie", - "You can specify Base DN for users and groups in the Advanced tab" : "Poți specifica DN-ul de bază pentru utilizatori și grupuri în fila Avansat", - "Detect Base DN" : "Detectează DN-ul de bază", - "Test Base DN" : "Testează DN-ul de bază", - "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evită solicitările LDAP automate. De preferat pentru instalările mai complexe, dar necesită câteva cunoștințe LDAP.", - "Manually enter LDAP filters (recommended for large directories)" : "Introdu filtrele LDAP manual (recomandat pentru medii LDAP largi)", - "Verify settings and count users" : "Verifică setările și numără utilizatorii", - "Saving" : "Se salvează", - "Back" : "Înapoi", - "Continue" : "Continuă", - "Please renew your password." : "Te rog reînnoiește parola.", - "An internal error occurred." : "A apărut o eroare internă.", - "Please try again or contact your administrator." : "Încearcă din nou sau contactează-ți administratorul.", - "Current password" : "Parola curentă", - "New password" : "Noua parolă", - "Renew password" : "Reînnoiește parola", - "Wrong password." : "Parolă greșită.", - "Cancel" : "Anulează", - "Server" : "Server", - "Users" : "Utilizatori", - "Login Attributes" : "Atribute de autentificare", - "Groups" : "Grupuri", - "Expert" : "Expert", - "Advanced" : "Avansat", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.", - "Connection Settings" : "Setările de conexiune", - "Configuration Active" : "Configurație activă", - "When unchecked, this configuration will be skipped." : "Dacă este debifat, se va sări peste această configurație.", - "Disable Main Server" : "Dezactivaţi serverul principal", - "Turn off SSL certificate validation." : "Oprește validarea certificatelor SSL ", - "in seconds. A change empties the cache." : "în secunde. O schimbare curăță memoria tampon.", - "Directory Settings" : "Setările directorului", - "User Display Name Field" : "Câmpul cu numele vizibil al utilizatorului", - "Base User Tree" : "Arborele de bază al utilizatorilor", - "One User Base DN per line" : "Un DN utilizator de bază pe linie", - "Group Display Name Field" : "Câmpul cu numele grupului", - "Base Group Tree" : "Arborele de bază al Grupurilor", - "One Group Base DN per line" : "Un Group Base DN pe linie", - "Group-Member association" : "Asocierea Grup-Membru", - "Special Attributes" : "Caracteristici speciale ", - "Internal Username" : "Nume utilizator intern" -},"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/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js index b434ed93e98..30ab9ad0e15 100644 --- a/apps/user_ldap/l10n/ru.js +++ b/apps/user_ldap/l10n/ru.js @@ -6,10 +6,12 @@ OC.L10N.register( "Invalid configuration: Anonymous binding is not allowed." : "Неверная конфигурация: анонимное связывание не разрешается.", "Valid configuration, connection established!" : "Конфигурация настроена верно, связь установлена!", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Конфигурация настроена верно, но связывание не удалось. Проверьте настройки сервера и реквизиты доступа.", + "Invalid configuration: %s" : "Недопустимая конфигурация: %s", "No action specified" : "Действие не указано", "No configuration specified" : "Конфигурация не указана", "No data specified" : "Нет данных", "Invalid data specified" : "Указаны некорректные данные", + "Could not set configuration %1$s to %2$s" : "Не удалось задать конфигурацию %1$s для %2$s", "Action does not exist" : "Действие не существует", "Renewing …" : "Обновление…", "Very weak password" : "Очень слабый пароль", @@ -24,12 +26,12 @@ OC.L10N.register( "Configuration OK" : "Конфигурация в порядке", "Select groups" : "Выберите группы", "Select object classes" : "Выберите объектные классы", - "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.", + "Please check the credentials, they seem to be wrong." : "Пожалуйста, проверьте учётные данные — возможно, они указаны неверно.", "Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.", "Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.", "Could not detect Base DN, please enter it manually." : "Невозможно обнаружить Base DN, пожалуйста, задайте вручную.", "{nthServer}. Server" : "Сервер {nthServer}.", - "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.", + "No object found in the given Base DN. Please revise." : "В указанной базовой DN не найден ни один объект. Пожалуйста, перепроверьте.", "More than 1,000 directory entries available." : "В каталоге доступно более 1,000 записей.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} элемент доступен в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN"], "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.", @@ -52,6 +54,14 @@ OC.L10N.register( "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Заполнитель \"%uid\" отсутствует. Он будет заменён именем пользователя при запросе LDAP/AD.", "Please provide a login name to test against" : "Пожалуйста, укажите логин для проверки", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Блок группы был отключен, поскольку сервер LDAP/AD не поддерживает memberOf.", + "Password change rejected. Hint: %s" : "Изменение пароля отклонено. Подсказка: %s", + "Mandatory field \"%s\" left empty" : "Обязательное поле «%s» оставлено пустым", + "A password is given, but not an LDAP agent" : "Пароль задан, но не указан LDAP-агент", + "No password is given for the user agent" : "Пароль для LDAP-агента не задан", + "No LDAP base DN was given" : "Не указана базовая DN LDAP", + "User base DN is not a subnode of global base DN" : "Базовая DN пользователей не является подузлом глобальной базовой DN", + "Group base DN is not a subnode of global base DN" : " Базовая DN групп не является подузлом глобальной базовой DN", + "Login filter does not contain %s placeholder." : "Фильтр входа не содержит плейсхолдер %s.", "Please login with the new password" : "Войдите в систему со своим новым паролем", "LDAP User backend" : "Механизм учета пользователей LDAP", "Your password will expire tomorrow." : "Завтра истекает срок действия пароля.", @@ -59,6 +69,10 @@ OC.L10N.register( "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP/AD integration" : "LDAP/AD интеграция", "LDAP Connection" : "Подключение по протоколу LDAP", + "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Не удалось выполнить привязку для этой конфигурации LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s"], + "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Ошибка поиска в этой конфигурации LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s"], + "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Найдена неактивная конфигурация LDAP: %s","Найдено %n неактивных конфигурации LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s"], + "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : [" Привязка и поиск работают в настроенном LDAP-соединении (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"], "Invalid LDAP UUIDs" : "Недопустимые UUID LDAP", "None found" : "Ничего не найдено", "Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены недопустимые идентификаторы UUID учетных записей или групп LDAP. Пожалуйста, ознакомьтесь с вашими настройками \"Переопределение обнаружения UUID\" в экспертной части конфигурации LDAP и используйте \"occ ldap:update-uuid\", чтобы обновить их.", @@ -207,6 +221,8 @@ OC.L10N.register( "User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута", "Birthdate Field" : "Поле Даты рождения", "User profile Date of birth will be set from the specified attribute" : "Дата рождения профиля пользователя будет установлена на основе указанного атрибута", + "Pronouns Field" : " Поле местоимений", + "User profile Pronouns will be set from the specified attribute" : "Местоимения в профиле пользователя будут заданы из указанного атрибута", "Internal Username" : "Внутреннее имя пользователя", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано на основе атрибута UUID. Это гарантирует, что имя пользователя будет уникальным и символы не нужно будет преобразовывать. Внутреннее имя пользователя имеет ограничение – разрешены только эти символы: [a-zA-Z0-9_.@-]. Другие символы заменяются их ASCII-кодами или просто опускаются. При совпадениях число будет добавлено/увеличено. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Оно также является именем по умолчанию для домашней папки пользователя. Оно также является частью удалённых URL-адресов, например, для всех служб DAV. С помощью этого параметра можно переопределить поведение по умолчанию. Изменения будут иметь силу только для новых сопоставленных (добавленных) пользователей LDAP. Оставьте этот параметр пустым для поведения по умолчанию.", "Internal Username Attribute:" : "Атрибут для внутреннего имени:", diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json index c02b19e87ee..eea51dcf3a7 100644 --- a/apps/user_ldap/l10n/ru.json +++ b/apps/user_ldap/l10n/ru.json @@ -4,10 +4,12 @@ "Invalid configuration: Anonymous binding is not allowed." : "Неверная конфигурация: анонимное связывание не разрешается.", "Valid configuration, connection established!" : "Конфигурация настроена верно, связь установлена!", "Valid configuration, but binding failed. Please check the server settings and credentials." : "Конфигурация настроена верно, но связывание не удалось. Проверьте настройки сервера и реквизиты доступа.", + "Invalid configuration: %s" : "Недопустимая конфигурация: %s", "No action specified" : "Действие не указано", "No configuration specified" : "Конфигурация не указана", "No data specified" : "Нет данных", "Invalid data specified" : "Указаны некорректные данные", + "Could not set configuration %1$s to %2$s" : "Не удалось задать конфигурацию %1$s для %2$s", "Action does not exist" : "Действие не существует", "Renewing …" : "Обновление…", "Very weak password" : "Очень слабый пароль", @@ -22,12 +24,12 @@ "Configuration OK" : "Конфигурация в порядке", "Select groups" : "Выберите группы", "Select object classes" : "Выберите объектные классы", - "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.", + "Please check the credentials, they seem to be wrong." : "Пожалуйста, проверьте учётные данные — возможно, они указаны неверно.", "Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.", "Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.", "Could not detect Base DN, please enter it manually." : "Невозможно обнаружить Base DN, пожалуйста, задайте вручную.", "{nthServer}. Server" : "Сервер {nthServer}.", - "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.", + "No object found in the given Base DN. Please revise." : "В указанной базовой DN не найден ни один объект. Пожалуйста, перепроверьте.", "More than 1,000 directory entries available." : "В каталоге доступно более 1,000 записей.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} элемент доступен в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN"], "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.", @@ -50,6 +52,14 @@ "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Заполнитель \"%uid\" отсутствует. Он будет заменён именем пользователя при запросе LDAP/AD.", "Please provide a login name to test against" : "Пожалуйста, укажите логин для проверки", "The group box was disabled, because the LDAP/AD server does not support memberOf." : "Блок группы был отключен, поскольку сервер LDAP/AD не поддерживает memberOf.", + "Password change rejected. Hint: %s" : "Изменение пароля отклонено. Подсказка: %s", + "Mandatory field \"%s\" left empty" : "Обязательное поле «%s» оставлено пустым", + "A password is given, but not an LDAP agent" : "Пароль задан, но не указан LDAP-агент", + "No password is given for the user agent" : "Пароль для LDAP-агента не задан", + "No LDAP base DN was given" : "Не указана базовая DN LDAP", + "User base DN is not a subnode of global base DN" : "Базовая DN пользователей не является подузлом глобальной базовой DN", + "Group base DN is not a subnode of global base DN" : " Базовая DN групп не является подузлом глобальной базовой DN", + "Login filter does not contain %s placeholder." : "Фильтр входа не содержит плейсхолдер %s.", "Please login with the new password" : "Войдите в систему со своим новым паролем", "LDAP User backend" : "Механизм учета пользователей LDAP", "Your password will expire tomorrow." : "Завтра истекает срок действия пароля.", @@ -57,6 +67,10 @@ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP/AD integration" : "LDAP/AD интеграция", "LDAP Connection" : "Подключение по протоколу LDAP", + "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Не удалось выполнить привязку для этой конфигурации LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s"], + "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Ошибка поиска в этой конфигурации LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s"], + "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Найдена неактивная конфигурация LDAP: %s","Найдено %n неактивных конфигурации LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s"], + "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : [" Привязка и поиск работают в настроенном LDAP-соединении (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"], "Invalid LDAP UUIDs" : "Недопустимые UUID LDAP", "None found" : "Ничего не найдено", "Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены недопустимые идентификаторы UUID учетных записей или групп LDAP. Пожалуйста, ознакомьтесь с вашими настройками \"Переопределение обнаружения UUID\" в экспертной части конфигурации LDAP и используйте \"occ ldap:update-uuid\", чтобы обновить их.", @@ -205,6 +219,8 @@ "User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута", "Birthdate Field" : "Поле Даты рождения", "User profile Date of birth will be set from the specified attribute" : "Дата рождения профиля пользователя будет установлена на основе указанного атрибута", + "Pronouns Field" : " Поле местоимений", + "User profile Pronouns will be set from the specified attribute" : "Местоимения в профиле пользователя будут заданы из указанного атрибута", "Internal Username" : "Внутреннее имя пользователя", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано на основе атрибута UUID. Это гарантирует, что имя пользователя будет уникальным и символы не нужно будет преобразовывать. Внутреннее имя пользователя имеет ограничение – разрешены только эти символы: [a-zA-Z0-9_.@-]. Другие символы заменяются их ASCII-кодами или просто опускаются. При совпадениях число будет добавлено/увеличено. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Оно также является именем по умолчанию для домашней папки пользователя. Оно также является частью удалённых URL-адресов, например, для всех служб DAV. С помощью этого параметра можно переопределить поведение по умолчанию. Изменения будут иметь силу только для новых сопоставленных (добавленных) пользователей LDAP. Оставьте этот параметр пустым для поведения по умолчанию.", "Internal Username Attribute:" : "Атрибут для внутреннего имени:", diff --git a/apps/user_ldap/l10n/sr@latin.js b/apps/user_ldap/l10n/sr@latin.js deleted file mode 100644 index 7769a4b6bda..00000000000 --- a/apps/user_ldap/l10n/sr@latin.js +++ /dev/null @@ -1,14 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Server" : "Server", - "Users" : "Korisnici", - "Groups" : "Grupe", - "Help" : "Pomoć", - "Host" : "Računar", - "Port" : "Port", - "Password" : "Lozinka", - "Continue" : "Nastavi", - "Advanced" : "Napredno" -}, -"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/user_ldap/l10n/sr@latin.json b/apps/user_ldap/l10n/sr@latin.json deleted file mode 100644 index ad4492827f7..00000000000 --- a/apps/user_ldap/l10n/sr@latin.json +++ /dev/null @@ -1,12 +0,0 @@ -{ "translations": { - "Server" : "Server", - "Users" : "Korisnici", - "Groups" : "Grupe", - "Help" : "Pomoć", - "Host" : "Računar", - "Port" : "Port", - "Password" : "Lozinka", - "Continue" : "Nastavi", - "Advanced" : "Napredno" -},"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/user_ldap/l10n/su.js b/apps/user_ldap/l10n/su.js deleted file mode 100644 index 5494dcae62e..00000000000 --- a/apps/user_ldap/l10n/su.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/su.json b/apps/user_ldap/l10n/su.json deleted file mode 100644 index 75f0f056cc4..00000000000 --- a/apps/user_ldap/l10n/su.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : [""], - "_%s user found_::_%s users found_" : [""] -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/sw_KE.js b/apps/user_ldap/l10n/sw_KE.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/sw_KE.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/sw_KE.json b/apps/user_ldap/l10n/sw_KE.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/sw_KE.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/tg_TJ.js b/apps/user_ldap/l10n/tg_TJ.js deleted file mode 100644 index 37042a4f412..00000000000 --- a/apps/user_ldap/l10n/tg_TJ.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/tg_TJ.json b/apps/user_ldap/l10n/tg_TJ.json deleted file mode 100644 index 521de7ba1a8..00000000000 --- a/apps/user_ldap/l10n/tg_TJ.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/tl_PH.js b/apps/user_ldap/l10n/tl_PH.js deleted file mode 100644 index 95c97db2f9c..00000000000 --- a/apps/user_ldap/l10n/tl_PH.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/tl_PH.json b/apps/user_ldap/l10n/tl_PH.json deleted file mode 100644 index 8e0cd6f6783..00000000000 --- a/apps/user_ldap/l10n/tl_PH.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n > 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js index 52a58012d90..d0f0f55c247 100644 --- a/apps/user_ldap/l10n/tr.js +++ b/apps/user_ldap/l10n/tr.js @@ -42,7 +42,7 @@ OC.L10N.register( "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını açar. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", "Mode switch" : "Kip değişimi", "Select attributes" : "Öznitelikleri seçin", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>", @@ -148,7 +148,7 @@ OC.L10N.register( "Groups" : "Gruplar", "Expert" : "Uzman", "Advanced" : "Gelişmiş", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka uç çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka yüz çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.", "Connection Settings" : "Bağlantı Ayarları", "Configuration Active" : "Yapılandırma etkin", "When unchecked, this configuration will be skipped." : "Bu seçenek işaretli değilse, bu yapılandırma atlanır.", @@ -158,7 +158,7 @@ OC.L10N.register( "Disable Main Server" : "Ana sunucuyu kullanımdan kaldır", "Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.", "Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnızca bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", "Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri", "in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.", "Directory Settings" : "Dizin Ayarları", @@ -171,7 +171,7 @@ OC.L10N.register( "User Search Attributes" : "Kullanıcı arama öznitelikleri", "Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik", "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın", - "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", + "When switched on, users imported from LDAP which are then missing will be disabled" : "Açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", "Group Display Name Field" : "Görüntülenecek Grup Adı Alanı", "The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.", "Base Group Tree" : "Temel Grup Ağacı", @@ -179,16 +179,16 @@ OC.L10N.register( "Group Search Attributes" : "Grup Arama Öznitelikleri", "Group-Member association" : "Grup-Üye İlişkisi", "Dynamic Group Member URL" : "Devingen Grup Üye Adresi", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kapatılır).", "Nested Groups" : "İç İçe Gruplar", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliğinde DN bulunuyorsa çalışır).", "Paging chunksize" : "Sayfalandırma yığın boyutu", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kapatılır).", "Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucusuna uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucusuna düz metin biçiminde aktarıldığından, LDAP sunucusu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", "(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)", "Default password policy DN" : "Varsayılan parola ilkesi DN", - "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kapatmak için boş bırakın.", "Special Attributes" : "Özel Öznitelikler", "Quota Field" : "Kota Alanı", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.", diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json index a9e01755a8e..f5c2c7306dd 100644 --- a/apps/user_ldap/l10n/tr.json +++ b/apps/user_ldap/l10n/tr.json @@ -40,7 +40,7 @@ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını açar. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?", "Mode switch" : "Kip değişimi", "Select attributes" : "Öznitelikleri seçin", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>", @@ -146,7 +146,7 @@ "Groups" : "Gruplar", "Expert" : "Uzman", "Advanced" : "Gelişmiş", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka uç çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka yüz çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.", "Connection Settings" : "Bağlantı Ayarları", "Configuration Active" : "Yapılandırma etkin", "When unchecked, this configuration will be skipped." : "Bu seçenek işaretli değilse, bu yapılandırma atlanır.", @@ -156,7 +156,7 @@ "Disable Main Server" : "Ana sunucuyu kullanımdan kaldır", "Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.", "Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.", - "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnızca bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.", "Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri", "in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.", "Directory Settings" : "Dizin Ayarları", @@ -169,7 +169,7 @@ "User Search Attributes" : "Kullanıcı arama öznitelikleri", "Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik", "Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın", - "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", + "When switched on, users imported from LDAP which are then missing will be disabled" : "Açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır", "Group Display Name Field" : "Görüntülenecek Grup Adı Alanı", "The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.", "Base Group Tree" : "Temel Grup Ağacı", @@ -177,16 +177,16 @@ "Group Search Attributes" : "Grup Arama Öznitelikleri", "Group-Member association" : "Grup-Üye İlişkisi", "Dynamic Group Member URL" : "Devingen Grup Üye Adresi", - "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kapatılır).", "Nested Groups" : "İç İçe Gruplar", - "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliğinde DN bulunuyorsa çalışır).", "Paging chunksize" : "Sayfalandırma yığın boyutu", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kapatılır).", "Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucusuna uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucusuna düz metin biçiminde aktarıldığından, LDAP sunucusu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.", "(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)", "Default password policy DN" : "Varsayılan parola ilkesi DN", - "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kapatmak için boş bırakın.", "Special Attributes" : "Özel Öznitelikler", "Quota Field" : "Kota Alanı", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.", diff --git a/apps/user_ldap/l10n/tzm.js b/apps/user_ldap/l10n/tzm.js deleted file mode 100644 index 1d621c04a77..00000000000 --- a/apps/user_ldap/l10n/tzm.js +++ /dev/null @@ -1,7 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -}, -"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"); diff --git a/apps/user_ldap/l10n/tzm.json b/apps/user_ldap/l10n/tzm.json deleted file mode 100644 index 2c3a3581b99..00000000000 --- a/apps/user_ldap/l10n/tzm.json +++ /dev/null @@ -1,5 +0,0 @@ -{ "translations": { - "_%s group found_::_%s groups found_" : ["",""], - "_%s user found_::_%s users found_" : ["",""] -},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ur_PK.js b/apps/user_ldap/l10n/ur_PK.js deleted file mode 100644 index 693a42b0543..00000000000 --- a/apps/user_ldap/l10n/ur_PK.js +++ /dev/null @@ -1,9 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Users" : "صارفین", - "Help" : "مدد", - "Password" : "پاسورڈ", - "Advanced" : "ایڈوانسڈ" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ur_PK.json b/apps/user_ldap/l10n/ur_PK.json deleted file mode 100644 index 26ff4cf5671..00000000000 --- a/apps/user_ldap/l10n/ur_PK.json +++ /dev/null @@ -1,7 +0,0 @@ -{ "translations": { - "Users" : "صارفین", - "Help" : "مدد", - "Password" : "پاسورڈ", - "Advanced" : "ایڈوانسڈ" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/vi.js b/apps/user_ldap/l10n/vi.js deleted file mode 100644 index e20feb8abba..00000000000 --- a/apps/user_ldap/l10n/vi.js +++ /dev/null @@ -1,45 +0,0 @@ -OC.L10N.register( - "user_ldap", - { - "Failed to clear the mappings." : "Lỗi khi xóa ánh xạ.", - "Failed to delete the server configuration" : "Lỗi khi xóa cấu hình máy chủ", - "Select groups" : "Chọn nhóm", - "Invalid Host" : "Host không hợp lệ", - "Server" : "Máy chủ", - "Users" : "Người dùng", - "Groups" : "Nhóm", - "Test Configuration" : "Kiểm tra cấu hình", - "Help" : "Giúp đỡ", - "Other Attributes:" : "Thuộc tính khác", - "1. Server" : "1. Máy chủ", - "%s. Server:" : "%s. Máy chủ:", - "Host" : "Máy chủ", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://", - "Port" : "Cổng", - "User DN" : "Người dùng DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống.", - "Password" : "Mật khẩu", - "For anonymous access, leave DN and Password empty." : "Cho phép truy cập nặc danh , DN và mật khẩu trống.", - "You can specify Base DN for users and groups in the Advanced tab" : "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced", - "Back" : "Trở lại", - "Continue" : "Tiếp tục", - "Advanced" : "Nâng cao", - "Connection Settings" : "Connection Settings", - "Backup (Replica) Port" : "Cổng sao lưu (Replica)", - "Disable Main Server" : "Tắt máy chủ chính", - "Turn off SSL certificate validation." : "Tắt xác thực chứng nhận SSL", - "in seconds. A change empties the cache." : "trong vài giây. Một sự thay đổi bộ nhớ cache.", - "Directory Settings" : "Directory Settings", - "User Display Name Field" : "Hiển thị tên người sử dụng", - "Base User Tree" : "Cây người dùng cơ bản", - "User Search Attributes" : "User Search Attributes", - "Optional; one attribute per line" : "Optional; one attribute per line", - "Group Display Name Field" : "Hiển thị tên nhóm", - "Base Group Tree" : "Cây nhóm cơ bản", - "Group Search Attributes" : "Group Search Attributes", - "Group-Member association" : "Nhóm thành viên Cộng đồng", - "Special Attributes" : "Special Attributes", - "in bytes" : "Theo Byte", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD" -}, -"nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/vi.json b/apps/user_ldap/l10n/vi.json deleted file mode 100644 index ffbeff90189..00000000000 --- a/apps/user_ldap/l10n/vi.json +++ /dev/null @@ -1,43 +0,0 @@ -{ "translations": { - "Failed to clear the mappings." : "Lỗi khi xóa ánh xạ.", - "Failed to delete the server configuration" : "Lỗi khi xóa cấu hình máy chủ", - "Select groups" : "Chọn nhóm", - "Invalid Host" : "Host không hợp lệ", - "Server" : "Máy chủ", - "Users" : "Người dùng", - "Groups" : "Nhóm", - "Test Configuration" : "Kiểm tra cấu hình", - "Help" : "Giúp đỡ", - "Other Attributes:" : "Thuộc tính khác", - "1. Server" : "1. Máy chủ", - "%s. Server:" : "%s. Máy chủ:", - "Host" : "Máy chủ", - "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://", - "Port" : "Cổng", - "User DN" : "Người dùng DN", - "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống.", - "Password" : "Mật khẩu", - "For anonymous access, leave DN and Password empty." : "Cho phép truy cập nặc danh , DN và mật khẩu trống.", - "You can specify Base DN for users and groups in the Advanced tab" : "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced", - "Back" : "Trở lại", - "Continue" : "Tiếp tục", - "Advanced" : "Nâng cao", - "Connection Settings" : "Connection Settings", - "Backup (Replica) Port" : "Cổng sao lưu (Replica)", - "Disable Main Server" : "Tắt máy chủ chính", - "Turn off SSL certificate validation." : "Tắt xác thực chứng nhận SSL", - "in seconds. A change empties the cache." : "trong vài giây. Một sự thay đổi bộ nhớ cache.", - "Directory Settings" : "Directory Settings", - "User Display Name Field" : "Hiển thị tên người sử dụng", - "Base User Tree" : "Cây người dùng cơ bản", - "User Search Attributes" : "User Search Attributes", - "Optional; one attribute per line" : "Optional; one attribute per line", - "Group Display Name Field" : "Hiển thị tên nhóm", - "Base Group Tree" : "Cây nhóm cơ bản", - "Group Search Attributes" : "Group Search Attributes", - "Group-Member association" : "Nhóm thành viên Cộng đồng", - "Special Attributes" : "Special Attributes", - "in bytes" : "Theo Byte", - "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index ff9ed6d7747..9fe0aa64268 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -341,8 +341,8 @@ class Access extends LDAPUtility { $cr = $this->connection->getConnectionResource(); try { // try PASSWD extended operation first - return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password) || - @$this->invokeLDAPMethod('modReplace', $userDN, $password); + return @$this->invokeLDAPMethod('exopPasswd', $userDN, '', $password) + || @$this->invokeLDAPMethod('modReplace', $userDN, $password); } catch (ConstraintViolationException $e) { throw new HintException('Password change rejected.', Util::getL10N('user_ldap')->t('Password change rejected. Hint: %s', $e->getMessage()), (int)$e->getCode()); } @@ -1811,8 +1811,8 @@ class Access extends LDAPUtility { * user. Instead we write a log message. */ $this->logger->info( - 'Passed string does not resemble a valid GUID. Known UUID ' . - '({uuid}) probably does not match UUID configuration.', + 'Passed string does not resemble a valid GUID. Known UUID ' + . '({uuid}) probably does not match UUID configuration.', ['app' => 'user_ldap', 'uuid' => $guid] ); return $guid; diff --git a/apps/user_ldap/lib/AccessFactory.php b/apps/user_ldap/lib/AccessFactory.php index c5c8ca17e41..da114c467a7 100644 --- a/apps/user_ldap/lib/AccessFactory.php +++ b/apps/user_ldap/lib/AccessFactory.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/AppInfo/Application.php b/apps/user_ldap/lib/AppInfo/Application.php index 01ffbc5b853..70b7920f7ab 100644 --- a/apps/user_ldap/lib/AppInfo/Application.php +++ b/apps/user_ldap/lib/AppInfo/Application.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Command/ResetGroup.php b/apps/user_ldap/lib/Command/ResetGroup.php index 89d3f31f69d..5833ca980f2 100644 --- a/apps/user_ldap/lib/Command/ResetGroup.php +++ b/apps/user_ldap/lib/Command/ResetGroup.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Command/ResetUser.php b/apps/user_ldap/lib/Command/ResetUser.php index 58dfbf68519..1409806e4ac 100644 --- a/apps/user_ldap/lib/Command/ResetUser.php +++ b/apps/user_ldap/lib/Command/ResetUser.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php index ad13c94c84a..85906b20e9a 100644 --- a/apps/user_ldap/lib/Command/Search.php +++ b/apps/user_ldap/lib/Command/Search.php @@ -12,7 +12,6 @@ use OCA\User_LDAP\Helper; use OCA\User_LDAP\LDAP; use OCA\User_LDAP\User_Proxy; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use Symfony\Component\Console\Command\Command; @@ -83,7 +82,7 @@ class Search extends Command { } protected function execute(InputInterface $input, OutputInterface $output): int { - $helper = new Helper($this->ocConfig, Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $configPrefixes = $helper->getServerConfigurationPrefixes(true); $ldapWrapper = new LDAP(); diff --git a/apps/user_ldap/lib/Command/SetConfig.php b/apps/user_ldap/lib/Command/SetConfig.php index 5a0b65a2c3e..7e9efcf34d0 100644 --- a/apps/user_ldap/lib/Command/SetConfig.php +++ b/apps/user_ldap/lib/Command/SetConfig.php @@ -11,8 +11,6 @@ use OCA\User_LDAP\Configuration; use OCA\User_LDAP\ConnectionFactory; use OCA\User_LDAP\Helper; use OCA\User_LDAP\LDAP; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\Server; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; @@ -43,7 +41,7 @@ class SetConfig extends Command { } protected function execute(InputInterface $input, OutputInterface $output): int { - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $availableConfigs = $helper->getServerConfigurationPrefixes(); $configID = $input->getArgument('configID'); if (!in_array($configID, $availableConfigs)) { diff --git a/apps/user_ldap/lib/Command/TestUserSettings.php b/apps/user_ldap/lib/Command/TestUserSettings.php index 51cf7c06473..12690158f98 100644 --- a/apps/user_ldap/lib/Command/TestUserSettings.php +++ b/apps/user_ldap/lib/Command/TestUserSettings.php @@ -91,9 +91,9 @@ class TestUserSettings extends Command { if (!$access->isDNPartOfBase($knownDn, $access->getConnection()->ldapBaseUsers)) { $output->writeln( - "User <info>$knownDn</info> is not in one of the configured user bases: <info>" . - implode(',', $access->getConnection()->ldapBaseUsers) . - '</info>.' + "User <info>$knownDn</info> is not in one of the configured user bases: <info>" + . implode(',', $access->getConnection()->ldapBaseUsers) + . '</info>.' ); } diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php index 78a5f93d29e..336179ac341 100644 --- a/apps/user_ldap/lib/Connection.php +++ b/apps/user_ldap/lib/Connection.php @@ -11,8 +11,6 @@ use OC\ServerNotAvailableException; use OCA\User_LDAP\Exceptions\ConfigurationIssueException; use OCP\ICache; use OCP\ICacheFactory; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\IL10N; use OCP\Server; use OCP\Util; @@ -156,7 +154,7 @@ class Connection extends LDAPUtility { if ($memcache->isAvailable()) { $this->cache = $memcache->createDistributed(); } - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $this->doNotValidate = !in_array($this->configPrefix, $helper->getServerConfigurationPrefixes()); $this->logger = Server::get(LoggerInterface::class); @@ -663,8 +661,8 @@ class Connection extends LDAPUtility { $this->doConnect($this->configuration->ldapBackupHost ?? '', $this->configuration->ldapBackupPort ?? ''); $this->bindResult = []; $bindStatus = $this->bind(); - $error = $this->ldap->isResource($this->ldapConnectionRes) ? - $this->ldap->errno($this->ldapConnectionRes) : -1; + $error = $this->ldap->isResource($this->ldapConnectionRes) + ? $this->ldap->errno($this->ldapConnectionRes) : -1; if ($bindStatus && $error === 0 && !$forceBackupHost) { //when bind to backup server succeeded and failed to main server, //skip contacting it for 15min diff --git a/apps/user_ldap/lib/ConnectionFactory.php b/apps/user_ldap/lib/ConnectionFactory.php index fbc30f6b73f..dd0ad31920a 100644 --- a/apps/user_ldap/lib/ConnectionFactory.php +++ b/apps/user_ldap/lib/ConnectionFactory.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php index 0a019312e35..d98e6d41b52 100644 --- a/apps/user_ldap/lib/Controller/ConfigAPIController.php +++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Controller/RenewPasswordController.php b/apps/user_ldap/lib/Controller/RenewPasswordController.php index 275e2671bf7..8389a362b8f 100644 --- a/apps/user_ldap/lib/Controller/RenewPasswordController.php +++ b/apps/user_ldap/lib/Controller/RenewPasswordController.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Exceptions/AttributeNotSet.php b/apps/user_ldap/lib/Exceptions/AttributeNotSet.php index 35df63518b4..4d6053eda66 100644 --- a/apps/user_ldap/lib/Exceptions/AttributeNotSet.php +++ b/apps/user_ldap/lib/Exceptions/AttributeNotSet.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php index f468abd2282..d0d384c31de 100644 --- a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php +++ b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Exceptions/NotOnLDAP.php b/apps/user_ldap/lib/Exceptions/NotOnLDAP.php index 8f3d8fc3499..cd74e918829 100644 --- a/apps/user_ldap/lib/Exceptions/NotOnLDAP.php +++ b/apps/user_ldap/lib/Exceptions/NotOnLDAP.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/user_ldap/lib/GroupPluginManager.php b/apps/user_ldap/lib/GroupPluginManager.php index 6bdb5559a02..9e8ae6805a4 100644 --- a/apps/user_ldap/lib/GroupPluginManager.php +++ b/apps/user_ldap/lib/GroupPluginManager.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index 85c71fc5fd8..271cc96afbd 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -1019,9 +1019,9 @@ class Group_LDAP extends ABackend implements GroupInterface, IGroupLDAP, IGetDis return $groupUsers; } $search = $this->access->escapeFilterPart($search, true); - $isMemberUid = - ($this->ldapGroupMemberAssocAttr === 'memberuid' || - $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress'); + $isMemberUid + = ($this->ldapGroupMemberAssocAttr === 'memberuid' + || $this->ldapGroupMemberAssocAttr === 'zimbramailforwardingaddress'); //we need to apply the search filter //alternatives that need to be checked: @@ -1199,10 +1199,10 @@ class Group_LDAP extends ABackend implements GroupInterface, IGroupLDAP, IGetDis * compared with GroupInterface::CREATE_GROUP etc. */ public function implementsActions($actions): bool { - return (bool)((GroupInterface::COUNT_USERS | - GroupInterface::DELETE_GROUP | - GroupInterface::IS_ADMIN | - $this->groupPluginManager->getImplementedActions()) & $actions); + return (bool)((GroupInterface::COUNT_USERS + | GroupInterface::DELETE_GROUP + | GroupInterface::IS_ADMIN + | $this->groupPluginManager->getImplementedActions()) & $actions); } /** diff --git a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php index d4a8f332362..8b63d54aa66 100644 --- a/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php +++ b/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index 27c19e6c4f5..d3abf04fd1e 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -9,7 +9,7 @@ namespace OCA\User_LDAP; use OCP\Cache\CappedMemoryCache; use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\IDBConnection; use OCP\Server; @@ -18,7 +18,7 @@ class Helper { protected CappedMemoryCache $sanitizeDnCache; public function __construct( - private IConfig $config, + private IAppConfig $appConfig, private IDBConnection $connection, ) { $this->sanitizeDnCache = new CappedMemoryCache(10000); @@ -45,21 +45,37 @@ class Helper { * except the default (first) server shall be connected to. * */ - public function getServerConfigurationPrefixes($activeConfigurations = false): array { + public function getServerConfigurationPrefixes(bool $activeConfigurations = false): array { + $all = $this->getAllServerConfigurationPrefixes(); + if (!$activeConfigurations) { + return $all; + } + return array_values(array_filter( + $all, + fn (string $prefix): bool => ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') === '1') + )); + } + + protected function getAllServerConfigurationPrefixes(): array { + $unfilled = ['UNFILLED']; + $prefixes = $this->appConfig->getValueArray('user_ldap', 'configuration_prefixes', $unfilled); + if ($prefixes !== $unfilled) { + return $prefixes; + } + + /* Fallback to browsing key for migration from Nextcloud<32 */ $referenceConfigkey = 'ldap_configuration_active'; $keys = $this->getServersConfig($referenceConfigkey); $prefixes = []; foreach ($keys as $key) { - if ($activeConfigurations && $this->config->getAppValue('user_ldap', $key, '0') !== '1') { - continue; - } - $len = strlen($key) - strlen($referenceConfigkey); $prefixes[] = substr($key, 0, $len); } - asort($prefixes); + sort($prefixes); + + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes); return $prefixes; } @@ -68,46 +84,45 @@ class Helper { * * determines the host for every configured connection * - * @return array an array with configprefix as keys + * @return array<string,string> an array with configprefix as keys * */ - public function getServerConfigurationHosts() { - $referenceConfigkey = 'ldap_host'; - - $keys = $this->getServersConfig($referenceConfigkey); + public function getServerConfigurationHosts(): array { + $prefixes = $this->getServerConfigurationPrefixes(); + $referenceConfigkey = 'ldap_host'; $result = []; - foreach ($keys as $key) { - $len = strlen($key) - strlen($referenceConfigkey); - $prefix = substr($key, 0, $len); - $result[$prefix] = $this->config->getAppValue('user_ldap', $key); + foreach ($prefixes as $prefix) { + $result[$prefix] = $this->appConfig->getValueString('user_ldap', $prefix . $referenceConfigkey); } return $result; } /** - * return the next available configuration prefix - * - * @return string + * return the next available configuration prefix and register it as used */ - public function getNextServerConfigurationPrefix() { - $serverConnections = $this->getServerConfigurationPrefixes(); - - if (count($serverConnections) === 0) { - return 's01'; + public function getNextServerConfigurationPrefix(): string { + $prefixes = $this->getServerConfigurationPrefixes(); + + if (count($prefixes) === 0) { + $prefix = 's01'; + } else { + sort($prefixes); + $lastKey = array_pop($prefixes); + $lastNumber = (int)str_replace('s', '', $lastKey); + $prefix = 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT); } - sort($serverConnections); - $lastKey = array_pop($serverConnections); - $lastNumber = (int)str_replace('s', '', $lastKey); - return 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT); + $prefixes[] = $prefix; + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes); + return $prefix; } private function getServersConfig(string $value): array { $regex = '/' . $value . '$/S'; - $keys = $this->config->getAppKeys('user_ldap'); + $keys = $this->appConfig->getKeys('user_ldap'); $result = []; foreach ($keys as $key) { if (preg_match($regex, $key) === 1) { @@ -125,7 +140,9 @@ class Helper { * @return bool true on success, false otherwise */ public function deleteServerConfiguration($prefix) { - if (!in_array($prefix, self::getServerConfigurationPrefixes())) { + $prefixes = $this->getServerConfigurationPrefixes(); + $index = array_search($prefix, $prefixes); + if ($index === false) { return false; } @@ -144,7 +161,11 @@ class Helper { $query->andWhere($query->expr()->notLike('configkey', $query->createNamedParameter('s%'))); } - $deletedRows = $query->execute(); + $deletedRows = $query->executeStatement(); + + unset($prefixes[$index]); + $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', array_values($prefixes)); + return $deletedRows !== 0; } @@ -152,10 +173,13 @@ class Helper { * checks whether there is one or more disabled LDAP configurations */ public function haveDisabledConfigurations(): bool { - $all = $this->getServerConfigurationPrefixes(false); - $active = $this->getServerConfigurationPrefixes(true); - - return count($all) !== count($active) || count($all) === 0; + $all = $this->getServerConfigurationPrefixes(); + foreach ($all as $prefix) { + if ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') !== '1') { + return true; + } + } + return false; } /** diff --git a/apps/user_ldap/lib/IGroupLDAP.php b/apps/user_ldap/lib/IGroupLDAP.php index 764e0c88e64..667eb421004 100644 --- a/apps/user_ldap/lib/IGroupLDAP.php +++ b/apps/user_ldap/lib/IGroupLDAP.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/ILDAPGroupPlugin.php b/apps/user_ldap/lib/ILDAPGroupPlugin.php index d601e3a6548..261b9383dc1 100644 --- a/apps/user_ldap/lib/ILDAPGroupPlugin.php +++ b/apps/user_ldap/lib/ILDAPGroupPlugin.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/ILDAPUserPlugin.php b/apps/user_ldap/lib/ILDAPUserPlugin.php index 3dbda1f6a99..80437bef452 100644 --- a/apps/user_ldap/lib/ILDAPUserPlugin.php +++ b/apps/user_ldap/lib/ILDAPUserPlugin.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/IUserLDAP.php b/apps/user_ldap/lib/IUserLDAP.php index 6fcd68c0c01..5e8e29c3adf 100644 --- a/apps/user_ldap/lib/IUserLDAP.php +++ b/apps/user_ldap/lib/IUserLDAP.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -8,14 +9,14 @@ namespace OCA\User_LDAP; interface IUserLDAP { //Functions used by LDAPProvider - + /** * Return access for LDAP interaction. * @param string $uid * @return Access instance of Access for LDAP interaction */ public function getLDAPAccess($uid); - + /** * Return a new LDAP connection for the specified user. * @param string $uid diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php index 7cfc473c950..76277b43c0b 100644 --- a/apps/user_ldap/lib/Jobs/CleanUp.php +++ b/apps/user_ldap/lib/Jobs/CleanUp.php @@ -67,7 +67,7 @@ class CleanUp extends TimedJob { if (isset($arguments['helper'])) { $this->ldapHelper = $arguments['helper']; } else { - $this->ldapHelper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $this->ldapHelper = Server::get(Helper::class); } if (isset($arguments['ocConfig'])) { @@ -179,8 +179,8 @@ class CleanUp extends TimedJob { * @param bool $reset whether the offset should be set to 0 */ public function setOffset(bool $reset = false): void { - $newOffset = $reset ? 0 : - $this->getOffset() + $this->getChunkSize(); + $newOffset = $reset ? 0 + : $this->getOffset() + $this->getChunkSize(); $this->ocConfig->setAppValue('user_ldap', 'cleanUpJobOffset', (string)$newOffset); } diff --git a/apps/user_ldap/lib/LDAP.php b/apps/user_ldap/lib/LDAP.php index 50af2556c72..1cf20c4b939 100644 --- a/apps/user_ldap/lib/LDAP.php +++ b/apps/user_ldap/lib/LDAP.php @@ -11,6 +11,7 @@ use OC\ServerNotAvailableException; use OCA\User_LDAP\DataCollector\LdapDataCollector; use OCA\User_LDAP\Exceptions\ConstraintViolationException; use OCP\IConfig; +use OCP\ILogger; use OCP\Profiler\IProfiler; use OCP\Server; use Psr\Log\LoggerInterface; @@ -18,6 +19,7 @@ use Psr\Log\LoggerInterface; class LDAP implements ILDAPWrapper { protected array $curArgs = []; protected LoggerInterface $logger; + protected IConfig $config; private ?LdapDataCollector $dataCollector = null; @@ -32,6 +34,7 @@ class LDAP implements ILDAPWrapper { } $this->logger = Server::get(LoggerInterface::class); + $this->config = Server::get(IConfig::class); } /** @@ -291,6 +294,21 @@ class LDAP implements ILDAPWrapper { return null; } + /** + * Turn resources into string, and removes potentially problematic cookie string to avoid breaking logfiles + */ + private function sanitizeFunctionParameters(array $args): array { + return array_map(function ($item) { + if ($this->isResource($item)) { + return '(resource)'; + } + if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') { + $item[0]['value']['cookie'] = '*opaque cookie*'; + } + return $item; + }, $args); + } + private function preFunctionCall(string $functionName, array $args): void { $this->curArgs = $args; if (strcasecmp($functionName, 'ldap_bind') === 0 || strcasecmp($functionName, 'ldap_exop_passwd') === 0) { @@ -301,32 +319,24 @@ class LDAP implements ILDAPWrapper { $args[2] = IConfig::SENSITIVE_VALUE; } - $this->logger->debug('Calling LDAP function {func} with parameters {args}', [ - 'app' => 'user_ldap', - 'func' => $functionName, - 'args' => json_encode($args), - ]); + if ($this->config->getSystemValue('loglevel') === ILogger::DEBUG) { + /* Only running this if debug loglevel is on, to avoid processing parameters on production */ + $this->logger->debug('Calling LDAP function {func} with parameters {args}', [ + 'app' => 'user_ldap', + 'func' => $functionName, + 'args' => $this->sanitizeFunctionParameters($args), + ]); + } if ($this->dataCollector !== null) { - $args = array_map(function ($item) { - if ($this->isResource($item)) { - return '(resource)'; - } - if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') { - $item[0]['value']['cookie'] = '*opaque cookie*'; - } - return $item; - }, $this->curArgs); - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - $this->dataCollector->startLdapRequest($functionName, $args, $backtrace); + $this->dataCollector->startLdapRequest($functionName, $this->sanitizeFunctionParameters($args), $backtrace); } if ($this->logFile !== '' && is_writable(dirname($this->logFile)) && (!file_exists($this->logFile) || is_writable($this->logFile))) { - $args = array_map(fn ($item) => (!$this->isResource($item) ? $item : '(resource)'), $this->curArgs); file_put_contents( $this->logFile, - $functionName . '::' . json_encode($args) . "\n", + $functionName . '::' . json_encode($this->sanitizeFunctionParameters($args)) . "\n", FILE_APPEND ); } diff --git a/apps/user_ldap/lib/Migration/UUIDFix.php b/apps/user_ldap/lib/Migration/UUIDFix.php index 309910cdf0c..e853f3bba66 100644 --- a/apps/user_ldap/lib/Migration/UUIDFix.php +++ b/apps/user_ldap/lib/Migration/UUIDFix.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Migration/UUIDFixGroup.php b/apps/user_ldap/lib/Migration/UUIDFixGroup.php index 4d039a72ebc..3924c91e7ba 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixGroup.php +++ b/apps/user_ldap/lib/Migration/UUIDFixGroup.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Migration/UUIDFixInsert.php b/apps/user_ldap/lib/Migration/UUIDFixInsert.php index de777f6f010..bb92314d93a 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixInsert.php +++ b/apps/user_ldap/lib/Migration/UUIDFixInsert.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Migration/UUIDFixUser.php b/apps/user_ldap/lib/Migration/UUIDFixUser.php index 0c292a2c2ae..71c3f638095 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixUser.php +++ b/apps/user_ldap/lib/Migration/UUIDFixUser.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Notification/Notifier.php b/apps/user_ldap/lib/Notification/Notifier.php index 8d8bc8be5a3..0195cb9e65b 100644 --- a/apps/user_ldap/lib/Notification/Notifier.php +++ b/apps/user_ldap/lib/Notification/Notifier.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php index 014210ca8f0..89fb063265b 100644 --- a/apps/user_ldap/lib/Settings/Admin.php +++ b/apps/user_ldap/lib/Settings/Admin.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -8,8 +9,6 @@ namespace OCA\User_LDAP\Settings; use OCA\User_LDAP\Configuration; use OCA\User_LDAP\Helper; use OCP\AppFramework\Http\TemplateResponse; -use OCP\IConfig; -use OCP\IDBConnection; use OCP\IL10N; use OCP\Server; use OCP\Settings\IDelegatedSettings; @@ -26,7 +25,7 @@ class Admin implements IDelegatedSettings { * @return TemplateResponse */ public function getForm() { - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $prefixes = $helper->getServerConfigurationPrefixes(); if (count($prefixes) === 0) { $newPrefix = $helper->getNextServerConfigurationPrefix(); diff --git a/apps/user_ldap/lib/Settings/Section.php b/apps/user_ldap/lib/Settings/Section.php index 6e342279f46..3b95e25513d 100644 --- a/apps/user_ldap/lib/Settings/Section.php +++ b/apps/user_ldap/lib/Settings/Section.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/user_ldap/lib/User/DeletedUsersIndex.php b/apps/user_ldap/lib/User/DeletedUsersIndex.php index 9ce78f15d8b..f57f71a9d47 100644 --- a/apps/user_ldap/lib/User/DeletedUsersIndex.php +++ b/apps/user_ldap/lib/User/DeletedUsersIndex.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 ownCloud, Inc. * SPDX-License-Identifier: AGPL-3.0-only diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php index f97867e98d4..590cd6708b6 100644 --- a/apps/user_ldap/lib/User/User.php +++ b/apps/user_ldap/lib/User/User.php @@ -175,9 +175,9 @@ class User { $cacheKey = 'getUserProfile-' . $username; $profileCached = $this->connection->getFromCache($cacheKey); // honoring profile disabled in config.php and check if user profile was refreshed - if ($this->config->getSystemValueBool('profile.enabled', true) && - ($profileCached === null) && // no cache or TTL not expired - !$this->wasRefreshed('profile')) { + if ($this->config->getSystemValueBool('profile.enabled', true) + && ($profileCached === null) // no cache or TTL not expired + && !$this->wasRefreshed('profile')) { // check current data $profileValues = []; //User Profile Field - Phone number @@ -515,7 +515,7 @@ class User { * fetch all the user's attributes in one call and use the fetched values in this function. * The expected value for that parameter is a string describing the quota for the user. Valid * values are 'none' (unlimited), 'default' (the Nextcloud's default quota), '1234' (quota in - * bytes), '1234 MB' (quota in MB - check the \OC_Helper::computerFileSize method for more info) + * bytes), '1234 MB' (quota in MB - check the \OCP\Util::computerFileSize method for more info) * * fetches the quota from LDAP and stores it as Nextcloud user value * @param ?string $valueFromLDAP the quota attribute's value can be passed, @@ -563,7 +563,7 @@ class User { } private function verifyQuotaValue(string $quotaValue): bool { - return $quotaValue === 'none' || $quotaValue === 'default' || \OC_Helper::computerFileSize($quotaValue) !== false; + return $quotaValue === 'none' || $quotaValue === 'default' || Util::computerFileSize($quotaValue) !== false; } /** diff --git a/apps/user_ldap/lib/UserPluginManager.php b/apps/user_ldap/lib/UserPluginManager.php index bbcf4157016..ed87fea6fde 100644 --- a/apps/user_ldap/lib/UserPluginManager.php +++ b/apps/user_ldap/lib/UserPluginManager.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index 6a648b2624c..c3f56f5ff9b 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -119,8 +119,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I $attrs = $this->access->userManager->getAttributes(); $users = $this->access->fetchUsersByLoginName($loginName, $attrs); if (count($users) < 1) { - throw new NotOnLDAP('No user available for the given login name on ' . - $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort); + throw new NotOnLDAP('No user available for the given login name on ' + . $this->access->connection->ldapHost . ':' . $this->access->connection->ldapPort); } return $users[0]; } @@ -142,8 +142,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I if (!$user instanceof User) { $this->logger->warning( - 'LDAP Login: Could not get user object for DN ' . $dn . - '. Maybe the LDAP entry has no set display name attribute?', + 'LDAP Login: Could not get user object for DN ' . $dn + . '. Maybe the LDAP entry has no set display name attribute?', ['app' => 'user_ldap'] ); return false; @@ -177,8 +177,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I $user = $this->access->userManager->get($uid); if (!$user instanceof User) { - throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid . - '. Maybe the LDAP entry has no set display name attribute?'); + throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid + . '. Maybe the LDAP entry has no set display name attribute?'); } if ($user->getUsername() !== false && $this->access->setPassword($user->getDN(), $password)) { $ldapDefaultPPolicyDN = $this->access->connection->ldapDefaultPPolicyDN; diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php index 2739cdeba67..0d41f495ce9 100644 --- a/apps/user_ldap/lib/User_Proxy.php +++ b/apps/user_ldap/lib/User_Proxy.php @@ -415,11 +415,11 @@ class User_Proxy extends Proxy implements IUserBackend, UserInterface, IUserLDAP if ($search !== '') { $disabledUsers = array_filter( $disabledUsers, - fn (OfflineUser $user): bool => - mb_stripos($user->getOCName(), $search) !== false || - mb_stripos($user->getUID(), $search) !== false || - mb_stripos($user->getDisplayName(), $search) !== false || - mb_stripos($user->getEmail(), $search) !== false, + fn (OfflineUser $user): bool + => mb_stripos($user->getOCName(), $search) !== false + || mb_stripos($user->getUID(), $search) !== false + || mb_stripos($user->getDisplayName(), $search) !== false + || mb_stripos($user->getEmail(), $search) !== false, ); } return array_map( diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php index 6fe6c0c2906..15a9f9cb212 100644 --- a/apps/user_ldap/lib/Wizard.php +++ b/apps/user_ldap/lib/Wizard.php @@ -260,8 +260,8 @@ class Wizard extends LDAPUtility { $this->applyFind('ldap_email_attr', $winner); if ($writeLog) { $this->logger->info( - 'The mail attribute has automatically been reset, ' . - 'because the original value did not return any results.', + 'The mail attribute has automatically been reset, ' + . 'because the original value did not return any results.', ['app' => 'user_ldap'] ); } @@ -1209,8 +1209,8 @@ class Wizard extends LDAPUtility { //When looking for objectclasses, testing few entries is sufficient, $dig = 3; - $availableFeatures = - $this->cumulativeSearchOnAttribute($objectclasses, $attr, + $availableFeatures + = $this->cumulativeSearchOnAttribute($objectclasses, $attr, $dig, $maxEntryObjC); if (is_array($availableFeatures) && count($availableFeatures) > 0) { diff --git a/apps/user_ldap/lib/WizardResult.php b/apps/user_ldap/lib/WizardResult.php index 09aadd2b781..d6fd67d4204 100644 --- a/apps/user_ldap/lib/WizardResult.php +++ b/apps/user_ldap/lib/WizardResult.php @@ -20,7 +20,7 @@ class WizardResult { $this->changes[$key] = $value; } - + public function markChange() { $this->markedChange = true; } diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index dba6e5480d5..54be29d0f86 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -23,7 +25,6 @@ use OCP\HintException; use OCP\IAppConfig; use OCP\IAvatarManager; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Image; use OCP\IUserManager; use OCP\Notification\IManager as INotificationManager; @@ -41,36 +42,25 @@ use Test\TestCase; * @package OCA\User_LDAP\Tests */ class AccessTest extends TestCase { - /** @var UserMapping|MockObject */ - protected $userMapper; - /** @var IManager|MockObject */ - protected $shareManager; - /** @var GroupMapping|MockObject */ - protected $groupMapper; - /** @var Connection|MockObject */ - private $connection; - /** @var LDAP|MockObject */ - private $ldap; - /** @var Manager|MockObject */ - private $userManager; - /** @var Helper|MockObject */ - private $helper; - /** @var IConfig|MockObject */ - private $config; - /** @var IUserManager|MockObject */ - private $ncUserManager; - + protected UserMapping&MockObject $userMapper; + protected IManager&MockObject $shareManager; + protected GroupMapping&MockObject $groupMapper; + private Connection&MockObject $connection; + private LDAP&MockObject $ldap; + private Manager&MockObject $userManager; + private Helper&MockObject $helper; + private IConfig&MockObject $config; + private IUserManager&MockObject $ncUserManager; private LoggerInterface&MockObject $logger; - private IAppConfig&MockObject $appConfig; - - /** @var IEventDispatcher|MockObject */ - private $dispatcher; + private IEventDispatcher&MockObject $dispatcher; private Access $access; protected function setUp(): void { - $this->connection = $this->createMock(Connection::class); $this->ldap = $this->createMock(LDAP::class); + $this->connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->ldap]) + ->getMock(); $this->userManager = $this->createMock(Manager::class); $this->helper = $this->createMock(Helper::class); $this->config = $this->createMock(IConfig::class); @@ -119,39 +109,39 @@ class AccessTest extends TestCase { $this->createMock(INotificationManager::class), $this->shareManager]) ->getMock(); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); return [$lw, $connector, $um, $helper]; } public function testEscapeFilterPartValidChars(): void { $input = 'okay'; - $this->assertTrue($input === $this->access->escapeFilterPart($input)); + $this->assertSame($input, $this->access->escapeFilterPart($input)); } public function testEscapeFilterPartEscapeWildcard(): void { $input = '*'; $expected = '\\2a'; - $this->assertTrue($expected === $this->access->escapeFilterPart($input)); + $this->assertSame($expected, $this->access->escapeFilterPart($input)); } public function testEscapeFilterPartEscapeWildcard2(): void { $input = 'foo*bar'; $expected = 'foo\\2abar'; - $this->assertTrue($expected === $this->access->escapeFilterPart($input)); + $this->assertSame($expected, $this->access->escapeFilterPart($input)); } /** - * @dataProvider convertSID2StrSuccessData * @param array $sidArray * @param $sidExpected */ + #[\PHPUnit\Framework\Attributes\DataProvider('convertSID2StrSuccessData')] public function testConvertSID2StrSuccess(array $sidArray, $sidExpected): void { $sidBinary = implode('', $sidArray); $this->assertSame($sidExpected, $this->access->convertSID2Str($sidBinary)); } - public function convertSID2StrSuccessData() { + public static function convertSID2StrSuccessData(): array { return [ [ [ @@ -209,55 +199,49 @@ class AccessTest extends TestCase { $this->assertSame($expected, $this->access->getDomainDNFromDN($inputDN)); } - public function dnInputDataProvider() { - return [[ + public static function dnInputDataProvider(): array { + return [ [ - 'input' => 'foo=bar,bar=foo,dc=foobar', - 'interResult' => [ + 'foo=bar,bar=foo,dc=foobar', + [ 'count' => 3, 0 => 'foo=bar', 1 => 'bar=foo', 2 => 'dc=foobar' ], - 'expectedResult' => true + true ], [ - 'input' => 'foobarbarfoodcfoobar', - 'interResult' => false, - 'expectedResult' => false + 'foobarbarfoodcfoobar', + false, + false ] - ]]; + ]; } - /** - * @dataProvider dnInputDataProvider - * @param array $case - */ - public function testStringResemblesDN($case): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dnInputDataProvider')] + public function testStringResemblesDN(string $input, array|bool $interResult, bool $expectedResult): void { [$lw, $con, $um, $helper] = $this->getConnectorAndLdapMock(); - /** @var IConfig|MockObject $config */ + /** @var IConfig&MockObject $config */ $config = $this->createMock(IConfig::class); $access = new Access($lw, $con, $um, $helper, $config, $this->ncUserManager, $this->logger, $this->appConfig, $this->dispatcher); $lw->expects($this->exactly(1)) ->method('explodeDN') - ->willReturnCallback(function ($dn) use ($case) { - if ($dn === $case['input']) { - return $case['interResult']; + ->willReturnCallback(function ($dn) use ($input, $interResult) { + if ($dn === $input) { + return $interResult; } return null; }); - $this->assertSame($case['expectedResult'], $access->stringResemblesDN($case['input'])); + $this->assertSame($expectedResult, $access->stringResemblesDN($input)); } - /** - * @dataProvider dnInputDataProvider - * @param $case - */ - public function testStringResemblesDNLDAPmod($case): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dnInputDataProvider')] + public function testStringResemblesDNLDAPmod(string $input, array|bool $interResult, bool $expectedResult): void { [, $con, $um, $helper] = $this->getConnectorAndLdapMock(); - /** @var IConfig|MockObject $config */ + /** @var IConfig&MockObject $config */ $config = $this->createMock(IConfig::class); $lw = new LDAP(); $access = new Access($lw, $con, $um, $helper, $config, $this->ncUserManager, $this->logger, $this->appConfig, $this->dispatcher); @@ -266,7 +250,7 @@ class AccessTest extends TestCase { $this->markTestSkipped('LDAP Module not available'); } - $this->assertSame($case['expectedResult'], $access->stringResemblesDN($case['input'])); + $this->assertSame($expectedResult, $access->stringResemblesDN($input)); } public function testCacheUserHome(): void { @@ -290,7 +274,7 @@ class AccessTest extends TestCase { ->method('getAttributes') ->willReturn(['displayname' => ['bar', 'count' => 1]]); - /** @var UserMapping|MockObject $mapperMock */ + /** @var UserMapping&MockObject $mapperMock */ $mapperMock = $this->createMock(UserMapping::class); $mapperMock->expects($this->any()) ->method('getNameByDN') @@ -335,7 +319,7 @@ class AccessTest extends TestCase { } public function testBatchApplyUserAttributesSkipped(): void { - /** @var UserMapping|MockObject $mapperMock */ + /** @var UserMapping&MockObject $mapperMock */ $mapperMock = $this->createMock(UserMapping::class); $mapperMock->expects($this->any()) ->method('getNameByDN') @@ -376,7 +360,7 @@ class AccessTest extends TestCase { } public function testBatchApplyUserAttributesDontSkip(): void { - /** @var UserMapping|MockObject $mapperMock */ + /** @var UserMapping&MockObject $mapperMock */ $mapperMock = $this->createMock(UserMapping::class); $mapperMock->expects($this->any()) ->method('getNameByDN') @@ -416,7 +400,7 @@ class AccessTest extends TestCase { $this->access->batchApplyUserAttributes($data); } - public function dNAttributeProvider() { + public static function dNAttributeProvider(): array { // corresponds to Access::resemblesDN() return [ 'dn' => ['dn'], @@ -426,13 +410,10 @@ class AccessTest extends TestCase { ]; } - /** - * @dataProvider dNAttributeProvider - * @param $attribute - */ - public function testSanitizeDN($attribute): void { + #[\PHPUnit\Framework\Attributes\DataProvider('dNAttributeProvider')] + public function testSanitizeDN(string $attribute): void { [$lw, $con, $um, $helper] = $this->getConnectorAndLdapMock(); - /** @var IConfig|MockObject $config */ + /** @var IConfig&MockObject $config */ $config = $this->createMock(IConfig::class); $dnFromServer = 'cn=Mixed Cases,ou=Are Sufficient To,ou=Test,dc=example,dc=org'; @@ -628,7 +609,7 @@ class AccessTest extends TestCase { $this->userMapper->expects($this->exactly($fakeLdapEntries['count'])) ->method('getNameByDN') ->willReturnCallback(function ($fdn) { - $parts = ldap_explode_dn($fdn, false); + $parts = ldap_explode_dn($fdn, 0); return $parts[0]; }); @@ -676,7 +657,7 @@ class AccessTest extends TestCase { $this->assertSame('Another Good Team', $groups[1]['cn'][0]); } - public function intUsernameProvider() { + public static function intUsernameProvider(): array { return [ ['alice', 'alice'], ['b/ob', 'bob'], @@ -694,7 +675,7 @@ class AccessTest extends TestCase { ]; } - public function groupIDCandidateProvider() { + public static function groupIDCandidateProvider(): array { return [ ['alice', 'alice'], ['b/ob', 'b/ob'], @@ -711,13 +692,8 @@ class AccessTest extends TestCase { ]; } - /** - * @dataProvider intUsernameProvider - * - * @param $name - * @param $expected - */ - public function testSanitizeUsername($name, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('intUsernameProvider')] + public function testSanitizeUsername(string $name, ?string $expected): void { if ($expected === null) { $this->expectException(\InvalidArgumentException::class); } @@ -725,9 +701,7 @@ class AccessTest extends TestCase { $this->assertSame($expected, $sanitizedName); } - /** - * @dataProvider groupIDCandidateProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('groupIDCandidateProvider')] public function testSanitizeGroupIDCandidate(string $name, string $expected): void { $sanitizedName = $this->access->sanitizeGroupIDCandidate($name); $this->assertSame($expected, $sanitizedName); @@ -752,7 +726,7 @@ class AccessTest extends TestCase { ->with('detta') ->willReturnOnConsecutiveCalls($offlineUserMock, $regularUserMock); - /** @var UserMapping|MockObject $mapperMock */ + /** @var UserMapping&MockObject $mapperMock */ $mapperMock = $this->createMock(UserMapping::class); $mapperMock->expects($this->any()) ->method('getNameByDN') diff --git a/apps/user_ldap/tests/ConfigurationTest.php b/apps/user_ldap/tests/ConfigurationTest.php index cced8334bf5..db92598fcfd 100644 --- a/apps/user_ldap/tests/ConfigurationTest.php +++ b/apps/user_ldap/tests/ConfigurationTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -10,15 +11,14 @@ namespace OCA\User_LDAP\Tests; use OCA\User_LDAP\Configuration; class ConfigurationTest extends \Test\TestCase { - /** @var Configuration */ - protected $configuration; + protected Configuration $configuration; protected function setUp(): void { parent::setUp(); $this->configuration = new Configuration('t01', false); } - public function configurationDataProvider() { + public static function configurationDataProvider(): array { $inputWithDN = [ 'cn=someUsers,dc=example,dc=org', ' ', @@ -86,15 +86,13 @@ class ConfigurationTest extends \Test\TestCase { ]; } - /** - * @dataProvider configurationDataProvider - */ - public function testSetValue($key, $input, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('configurationDataProvider')] + public function testSetValue(string $key, string|array $input, string|array $expected): void { $this->configuration->setConfiguration([$key => $input]); $this->assertSame($this->configuration->$key, $expected); } - public function avatarRuleValueProvider() { + public static function avatarRuleValueProvider(): array { return [ ['none', []], ['data:selfie', ['selfie']], @@ -105,18 +103,14 @@ class ConfigurationTest extends \Test\TestCase { ]; } - /** - * @dataProvider avatarRuleValueProvider - */ - public function testGetAvatarAttributes($setting, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('avatarRuleValueProvider')] + public function testGetAvatarAttributes(string $setting, array $expected): void { $this->configuration->setConfiguration(['ldapUserAvatarRule' => $setting]); $this->assertSame($expected, $this->configuration->getAvatarAttributes()); } - /** - * @dataProvider avatarRuleValueProvider - */ - public function testResolveRule($setting, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('avatarRuleValueProvider')] + public function testResolveRule(string $setting, array $expected): void { $this->configuration->setConfiguration(['ldapUserAvatarRule' => $setting]); // so far the only thing that can get resolved :) $this->assertSame($expected, $this->configuration->resolveRule('avatar')); diff --git a/apps/user_ldap/tests/ConnectionTest.php b/apps/user_ldap/tests/ConnectionTest.php index 9cb19891b3d..7116e15898f 100644 --- a/apps/user_ldap/tests/ConnectionTest.php +++ b/apps/user_ldap/tests/ConnectionTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -10,6 +11,7 @@ namespace OCA\User_LDAP\Tests; use OC\ServerNotAvailableException; use OCA\User_LDAP\Connection; use OCA\User_LDAP\ILDAPWrapper; +use PHPUnit\Framework\MockObject\MockObject; /** * Class Test_Connection @@ -19,19 +21,16 @@ use OCA\User_LDAP\ILDAPWrapper; * @package OCA\User_LDAP\Tests */ class ConnectionTest extends \Test\TestCase { - /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject */ - protected $ldap; - - /** @var Connection */ - protected $connection; + protected ILDAPWrapper&MockObject $ldap; + protected Connection $connection; protected function setUp(): void { parent::setUp(); $this->ldap = $this->createMock(ILDAPWrapper::class); // we use a mock here to replace the cache mechanism, due to missing DI in LDAP backend. - $this->connection = $this->getMockBuilder('OCA\User_LDAP\Connection') - ->setMethods(['getFromCache', 'writeToCache']) + $this->connection = $this->getMockBuilder(Connection::class) + ->onlyMethods(['getFromCache', 'writeToCache']) ->setConstructorArgs([$this->ldap, '', null]) ->getMock(); @@ -102,8 +101,7 @@ class ConnectionTest extends \Test\TestCase { // Not called often enough? Then, the fallback to the backup server is broken. $this->connection->expects($this->exactly(2)) ->method('getFromCache') - ->with('overrideMainServer') - ->will($this->onConsecutiveCalls(false, false, true, true)); + ->with('overrideMainServer')->willReturnOnConsecutiveCalls(false, false, true, true); $this->connection->expects($this->once()) ->method('writeToCache') diff --git a/apps/user_ldap/tests/GroupLDAPPluginTest.php b/apps/user_ldap/tests/GroupLDAPPluginTest.php index f67de32c2e9..9f4cff64d6b 100644 --- a/apps/user_ldap/tests/GroupLDAPPluginTest.php +++ b/apps/user_ldap/tests/GroupLDAPPluginTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -9,27 +11,23 @@ use OCA\User_LDAP\GroupPluginManager; use OCP\GroupInterface; class GroupLDAPPluginTest extends \Test\TestCase { - - /** - * @return GroupPluginManager - */ - private function getGroupPluginManager() { + private function getGroupPluginManager(): GroupPluginManager { return new GroupPluginManager(); } public function testImplementsActions(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions']) ->getMock(); $plugin->expects($this->any()) ->method('respondToActions') ->willReturn(GroupInterface::CREATE_GROUP); - $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions']) + $plugin2 = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions']) ->getMock(); $plugin2->expects($this->any()) @@ -47,8 +45,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testCreateGroup(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'createGroup']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'createGroup']) ->getMock(); $plugin->expects($this->any()) @@ -77,8 +75,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testDeleteGroup(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'deleteGroup']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'deleteGroup']) ->getMock(); $plugin->expects($this->any()) @@ -107,8 +105,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testAddToGroup(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'addToGroup']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'addToGroup']) ->getMock(); $plugin->expects($this->any()) @@ -138,8 +136,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testRemoveFromGroup(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'removeFromGroup']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'removeFromGroup']) ->getMock(); $plugin->expects($this->any()) @@ -169,8 +167,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testCountUsersInGroup(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'countUsersInGroup']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'countUsersInGroup']) ->getMock(); $plugin->expects($this->any()) @@ -200,8 +198,8 @@ class GroupLDAPPluginTest extends \Test\TestCase { public function testgetGroupDetails(): void { $pluginManager = $this->getGroupPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') - ->setMethods(['respondToActions', 'getGroupDetails']) + $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class) + ->onlyMethods(['respondToActions', 'getGroupDetails']) ->getMock(); $plugin->expects($this->any()) diff --git a/apps/user_ldap/tests/Group_LDAPTest.php b/apps/user_ldap/tests/Group_LDAPTest.php index ad97d5024b1..10182111768 100644 --- a/apps/user_ldap/tests/Group_LDAPTest.php +++ b/apps/user_ldap/tests/Group_LDAPTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -34,10 +35,10 @@ use Test\TestCase; * @package OCA\User_LDAP\Tests */ class Group_LDAPTest extends TestCase { - private MockObject|Access $access; - private MockObject|GroupPluginManager $pluginManager; - private MockObject|IConfig $config; - private MockObject|IUserManager $ncUserManager; + private Access&MockObject $access; + private GroupPluginManager&MockObject $pluginManager; + private IConfig&MockObject $config; + private IUserManager&MockObject $ncUserManager; private GroupLDAP $groupBackend; public function setUp(): void { @@ -96,30 +97,19 @@ class Group_LDAPTest extends TestCase { * @return MockObject|Access */ private function getAccessMock() { - static $conMethods; - static $accMethods; - - if (is_null($conMethods) || is_null($accMethods)) { - $conMethods = get_class_methods(Connection::class); - $accMethods = get_class_methods(Access::class); - } $lw = $this->createMock(ILDAPWrapper::class); - $connector = $this->getMockBuilder(Connection::class) - ->setMethods($conMethods) ->setConstructorArgs([$lw, '', null]) ->getMock(); $this->access = $this->createMock(Access::class); - $this->access->connection = $connector; - $this->access->userManager = $this->createMock(Manager::class); return $this->access; } - private function enableGroups() { + private function enableGroups(): void { $this->access->connection->expects($this->any()) ->method('__get') ->willReturnCallback(function ($name) { @@ -179,7 +169,7 @@ class Group_LDAPTest extends TestCase { public function testCountUsersWithPlugin(): void { /** @var GroupPluginManager|MockObject $pluginManager */ $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'countUsersInGroup']) + ->onlyMethods(['implementsActions', 'countUsersInGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -470,7 +460,7 @@ class Group_LDAPTest extends TestCase { $this->groupBackend->inGroup($uid, $gid); } - public function groupWithMembersProvider() { + public static function groupWithMembersProvider(): array { return [ [ 'someGroup', @@ -485,9 +475,7 @@ class Group_LDAPTest extends TestCase { ]; } - /** - * @dataProvider groupWithMembersProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')] public function testInGroupMember(string $gid, string $groupDn, array $memberDNs): void { $uid = 'someUser'; $userDn = $memberDNs[0]; @@ -526,9 +514,7 @@ class Group_LDAPTest extends TestCase { $this->assertTrue($this->groupBackend->inGroup($uid, $gid)); } - /** - * @dataProvider groupWithMembersProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')] public function testInGroupMemberNot(string $gid, string $groupDn, array $memberDNs): void { $uid = 'unelatedUser'; $userDn = 'uid=unrelatedUser,ou=unrelatedTeam,ou=unrelatedDepartment,dc=someDomain,dc=someTld'; @@ -567,14 +553,12 @@ class Group_LDAPTest extends TestCase { $this->assertFalse($this->groupBackend->inGroup($uid, $gid)); } - /** - * @dataProvider groupWithMembersProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('groupWithMembersProvider')] public function testInGroupMemberUid(string $gid, string $groupDn, array $memberDNs): void { $memberUids = []; $userRecords = []; foreach ($memberDNs as $dn) { - $memberUids[] = ldap_explode_dn($dn, false)[0]; + $memberUids[] = ldap_explode_dn($dn, 0)[0]; $userRecords[] = ['dn' => [$dn]]; } @@ -777,8 +761,7 @@ class Group_LDAPTest extends TestCase { ->method('username2dn') ->willReturn($dn); $this->access->expects($this->exactly(5)) - ->method('readAttribute') - ->will($this->onConsecutiveCalls($expectedGroups, [], [], [], [])); + ->method('readAttribute')->willReturnOnConsecutiveCalls($expectedGroups, [], [], [], []); $this->access->expects($this->any()) ->method('dn2groupname') ->willReturnArgument(0); @@ -876,8 +859,8 @@ class Group_LDAPTest extends TestCase { $this->initBackend(); $returnedGroups = $this->groupBackend->getUserGroups('userX'); $this->assertCount(2, $returnedGroups); - $this->assertTrue(in_array('groupB', $returnedGroups)); - $this->assertTrue(in_array('groupF', $returnedGroups)); + $this->assertContains('groupB', $returnedGroups); + $this->assertContains('groupF', $returnedGroups); } /** @@ -903,8 +886,8 @@ class Group_LDAPTest extends TestCase { $this->initBackend(); $returnedGroups = $this->groupBackend->getUserGroups('userX'); $this->assertCount(2, $returnedGroups); - $this->assertTrue(in_array('groupB', $returnedGroups)); - $this->assertTrue(in_array('groupF', $returnedGroups)); + $this->assertContains('groupB', $returnedGroups); + $this->assertContains('groupF', $returnedGroups); } public function testGetUserGroupsUnrecognizedOfflineUser(): void { @@ -946,20 +929,18 @@ class Group_LDAPTest extends TestCase { $this->initBackend(); $returnedGroups = $this->groupBackend->getUserGroups('userX'); $this->assertCount(2, $returnedGroups); - $this->assertTrue(in_array('groupB', $returnedGroups)); - $this->assertTrue(in_array('groupF', $returnedGroups)); + $this->assertContains('groupB', $returnedGroups); + $this->assertContains('groupF', $returnedGroups); } - public function nestedGroupsProvider(): array { + public static function nestedGroupsProvider(): array { return [ [true], [false], ]; } - /** - * @dataProvider nestedGroupsProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('nestedGroupsProvider')] public function testGetGroupsByMember(bool $nestedGroups): void { $groupFilter = '(&(objectclass=nextcloudGroup)(nextcloudEnabled=TRUE))'; $this->access->connection->expects($this->any()) @@ -1076,7 +1057,7 @@ class Group_LDAPTest extends TestCase { public function testCreateGroupWithPlugin(): void { $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'createGroup']) + ->onlyMethods(['implementsActions', 'createGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1090,7 +1071,7 @@ class Group_LDAPTest extends TestCase { ->willReturn('result'); $this->initBackend(); - $this->assertEquals($this->groupBackend->createGroup('gid'), true); + $this->assertTrue($this->groupBackend->createGroup('gid')); } @@ -1098,7 +1079,7 @@ class Group_LDAPTest extends TestCase { $this->expectException(\Exception::class); $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'createGroup']) + ->onlyMethods(['implementsActions', 'createGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1112,7 +1093,7 @@ class Group_LDAPTest extends TestCase { public function testDeleteGroupWithPlugin(): void { $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'deleteGroup']) + ->onlyMethods(['implementsActions', 'deleteGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1126,7 +1107,7 @@ class Group_LDAPTest extends TestCase { ->willReturn(true); $mapper = $this->getMockBuilder(GroupMapping::class) - ->setMethods(['unmap']) + ->onlyMethods(['unmap']) ->disableOriginalConstructor() ->getMock(); @@ -1143,7 +1124,7 @@ class Group_LDAPTest extends TestCase { $this->expectException(\Exception::class); $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'deleteGroup']) + ->onlyMethods(['implementsActions', 'deleteGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1157,7 +1138,7 @@ class Group_LDAPTest extends TestCase { public function testAddToGroupWithPlugin(): void { $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'addToGroup']) + ->onlyMethods(['implementsActions', 'addToGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1171,7 +1152,7 @@ class Group_LDAPTest extends TestCase { ->willReturn('result'); $this->initBackend(); - $this->assertEquals($this->groupBackend->addToGroup('uid', 'gid'), 'result'); + $this->assertEquals('result', $this->groupBackend->addToGroup('uid', 'gid')); } @@ -1179,7 +1160,7 @@ class Group_LDAPTest extends TestCase { $this->expectException(\Exception::class); $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'addToGroup']) + ->onlyMethods(['implementsActions', 'addToGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1193,7 +1174,7 @@ class Group_LDAPTest extends TestCase { public function testRemoveFromGroupWithPlugin(): void { $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'removeFromGroup']) + ->onlyMethods(['implementsActions', 'removeFromGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1207,7 +1188,7 @@ class Group_LDAPTest extends TestCase { ->willReturn('result'); $this->initBackend(); - $this->assertEquals($this->groupBackend->removeFromGroup('uid', 'gid'), 'result'); + $this->assertEquals('result', $this->groupBackend->removeFromGroup('uid', 'gid')); } @@ -1215,7 +1196,7 @@ class Group_LDAPTest extends TestCase { $this->expectException(\Exception::class); $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'removeFromGroup']) + ->onlyMethods(['implementsActions', 'removeFromGroup']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1230,7 +1211,7 @@ class Group_LDAPTest extends TestCase { public function testGetGroupDetailsWithPlugin(): void { /** @var GroupPluginManager|MockObject $pluginManager */ $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'getGroupDetails']) + ->onlyMethods(['implementsActions', 'getGroupDetails']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1244,14 +1225,14 @@ class Group_LDAPTest extends TestCase { ->willReturn('result'); $this->initBackend(); - $this->assertEquals($this->groupBackend->getGroupDetails('gid'), 'result'); + $this->assertEquals('result', $this->groupBackend->getGroupDetails('gid')); } public function testGetGroupDetailsFailing(): void { $this->expectException(\Exception::class); $this->pluginManager = $this->getMockBuilder(GroupPluginManager::class) - ->setMethods(['implementsActions', 'getGroupDetails']) + ->onlyMethods(['implementsActions', 'getGroupDetails']) ->getMock(); $this->pluginManager->expects($this->once()) @@ -1263,7 +1244,7 @@ class Group_LDAPTest extends TestCase { $this->groupBackend->getGroupDetails('gid'); } - public function groupMemberProvider() { + public static function groupMemberProvider(): array { $base = 'dc=species,dc=earth'; $birdsDn = [ @@ -1331,11 +1312,8 @@ class Group_LDAPTest extends TestCase { ]; } - /** - * @param string[] $expectedMembers - * @dataProvider groupMemberProvider - */ - public function testGroupMembers(array $expectedResult, ?array $groupsInfo = null): void { + #[\PHPUnit\Framework\Attributes\DataProvider('groupMemberProvider')] + public function testGroupMembers(array $expectedResult, array $groupsInfo): void { $this->access->expects($this->any()) ->method('readAttribute') ->willReturnCallback(function ($group) use ($groupsInfo) { @@ -1360,21 +1338,21 @@ class Group_LDAPTest extends TestCase { foreach ($expectedResult as $groupDN => $expectedMembers) { $resultingMembers = $this->invokePrivate($this->groupBackend, '_groupMembers', [$groupDN]); - $this->assertEqualsCanonicalizing($expectedMembers, $resultingMembers); + sort($expectedMembers); + sort($resultingMembers); + $this->assertEquals($expectedMembers, $resultingMembers); } } - public function displayNameProvider() { + public static function displayNameProvider(): array { return [ ['Graphic Novelists', ['Graphic Novelists']], ['', false], ]; } - /** - * @dataProvider displayNameProvider - */ - public function testGetDisplayName(string $expected, $ldapResult): void { + #[\PHPUnit\Framework\Attributes\DataProvider('displayNameProvider')] + public function testGetDisplayName(string $expected, bool|array $ldapResult): void { $gid = 'graphic_novelists'; $this->access->expects($this->atLeastOnce()) diff --git a/apps/user_ldap/tests/HelperTest.php b/apps/user_ldap/tests/HelperTest.php index eee5c162b53..adea600d900 100644 --- a/apps/user_ldap/tests/HelperTest.php +++ b/apps/user_ldap/tests/HelperTest.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 @@ -6,56 +8,62 @@ namespace OCA\User_LDAP\Tests; use OCA\User_LDAP\Helper; -use OCP\IConfig; +use OCP\IAppConfig; use OCP\IDBConnection; use OCP\Server; +use PHPUnit\Framework\MockObject\MockObject; /** * @group DB */ class HelperTest extends \Test\TestCase { + private IAppConfig&MockObject $appConfig; - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - private $config; - - /** @var Helper */ - private $helper; + private Helper $helper; protected function setUp(): void { parent::setUp(); - $this->config = $this->createMock(IConfig::class); - $this->helper = new Helper($this->config, Server::get(IDBConnection::class)); + $this->appConfig = $this->createMock(IAppConfig::class); + $this->helper = new Helper( + $this->appConfig, + Server::get(IDBConnection::class) + ); } public function testGetServerConfigurationPrefixes(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_configuration_active', 's1ldap_configuration_active', ]); + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + $result = $this->helper->getServerConfigurationPrefixes(false); $this->assertEquals(['', 's1'], $result); } public function testGetServerConfigurationPrefixesActive(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_configuration_active', 's1ldap_configuration_active', ]); - $this->config->method('getAppValue') + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + + $this->appConfig->method('getValueString') ->willReturnCallback(function ($app, $key, $default) { - if ($app !== 'user_ldap') { - $this->fail('wrong app'); - } if ($key === 's1ldap_configuration_active') { return '1'; } @@ -67,21 +75,58 @@ class HelperTest extends \Test\TestCase { $this->assertEquals(['s1'], $result); } - public function testGetServerConfigurationHost(): void { - $this->config->method('getAppKeys') - ->with($this->equalTo('user_ldap')) + public function testGetServerConfigurationHostFromAppKeys(): void { + $this->appConfig->method('getKeys') + ->with('user_ldap') ->willReturn([ 'foo', 'ldap_host', 's1ldap_host', 's02ldap_host', + 'ldap_configuration_active', + 's1ldap_configuration_active', + 's02ldap_configuration_active', ]); - $this->config->method('getAppValue') + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturnArgument(2); + + $this->appConfig->method('getValueString') ->willReturnCallback(function ($app, $key, $default) { - if ($app !== 'user_ldap') { - $this->fail('wrong app'); + if ($key === 'ldap_host') { + return 'example.com'; } + if ($key === 's1ldap_host') { + return 'foo.bar.com'; + } + return $default; + }); + + $result = $this->helper->getServerConfigurationHosts(); + + $this->assertEquals([ + '' => 'example.com', + 's1' => 'foo.bar.com', + 's02' => '', + ], $result); + } + + public function testGetServerConfigurationHost(): void { + $this->appConfig + ->expects(self::never()) + ->method('getKeys'); + + $this->appConfig->method('getValueArray') + ->with('user_ldap', 'configuration_prefixes') + -> willReturn([ + '', + 's1', + 's02', + ]); + + $this->appConfig->method('getValueString') + ->willReturnCallback(function ($app, $key, $default) { if ($key === 'ldap_host') { return 'example.com'; } diff --git a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php index be8d7702cd1..00f8be18586 100644 --- a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php +++ b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php @@ -16,7 +16,6 @@ use OCA\User_LDAP\User\Manager; use OCA\User_LDAP\UserPluginManager; use OCP\IAvatarManager; use OCP\IConfig; -use OCP\IDBConnection; use OCP\Image; use OCP\IUserManager; use OCP\Server; @@ -125,7 +124,7 @@ abstract class AbstractIntegrationTest { * initializes the test Helper */ protected function initHelper() { - $this->helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $this->helper = Server::get(Helper::class); } /** diff --git a/apps/user_ldap/tests/Integration/Bootstrap.php b/apps/user_ldap/tests/Integration/Bootstrap.php index 1e270aa6f8a..ef0909d4bea 100644 --- a/apps/user_ldap/tests/Integration/Bootstrap.php +++ b/apps/user_ldap/tests/Integration/Bootstrap.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/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php index e45238fa978..e1529384239 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php @@ -1,9 +1,10 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\user_ldap\tests\Integration\Lib; +namespace OCA\User_LDAP\Tests\Integration\Lib; use OCA\User_LDAP\Group_LDAP; use OCA\User_LDAP\GroupPluginManager; diff --git a/apps/user_ldap/tests/Jobs/CleanUpTest.php b/apps/user_ldap/tests/Jobs/CleanUpTest.php index 582b6fba5d7..5a1e563a1e8 100644 --- a/apps/user_ldap/tests/Jobs/CleanUpTest.php +++ b/apps/user_ldap/tests/Jobs/CleanUpTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -18,13 +19,11 @@ use OCP\IDBConnection; use Test\TestCase; class CleanUpTest extends TestCase { - /** @var CleanUp */ - protected $bgJob; - - /** @var array */ - protected $mocks; + protected CleanUp $bgJob; + protected array $mocks; public function setUp(): void { + parent::setUp(); $this->createMocks(); $this->bgJob = new CleanUp($this->mocks['timeFactory'], $this->mocks['userBackend'], $this->mocks['deletedUsersIndex']); $this->bgJob->setArguments($this->mocks); @@ -62,7 +61,7 @@ class CleanUpTest extends TestCase { public function test_runNotAllowedByBrokenHelper(): void { $this->mocks['helper']->expects($this->once()) ->method('haveDisabledConfigurations') - ->will($this->throwException(new Exception())); + ->willThrowException(new Exception()); $this->mocks['ocConfig']->expects($this->never()) ->method('getSystemValue'); diff --git a/apps/user_ldap/tests/Jobs/SyncTest.php b/apps/user_ldap/tests/Jobs/SyncTest.php index 8277e7d48a9..f6ecf984ab0 100644 --- a/apps/user_ldap/tests/Jobs/SyncTest.php +++ b/apps/user_ldap/tests/Jobs/SyncTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -26,32 +27,23 @@ use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Test\TestCase; +/** + * @group DB + */ class SyncTest extends TestCase { - /** @var array */ - protected $arguments; - /** @var Helper|MockObject */ - protected $helper; - /** @var LDAP|MockObject */ - protected $ldapWrapper; - /** @var Manager|MockObject */ - protected $userManager; - /** @var UserMapping|MockObject */ - protected $mapper; + protected Helper&MockObject $helper; + protected LDAP&MockObject $ldapWrapper; + protected Manager&MockObject $userManager; + protected UserMapping&MockObject $mapper; + protected IConfig&MockObject $config; + protected IAvatarManager&MockObject $avatarManager; + protected IDBConnection&MockObject $dbc; + protected IUserManager&MockObject $ncUserManager; + protected IManager&MockObject $notificationManager; + protected ConnectionFactory&MockObject $connectionFactory; + protected AccessFactory&MockObject $accessFactory; + protected array $arguments = []; protected Sync $sync; - /** @var IConfig|MockObject */ - protected $config; - /** @var IAvatarManager|MockObject */ - protected $avatarManager; - /** @var IDBConnection|MockObject */ - protected $dbc; - /** @var IUserManager|MockObject */ - protected $ncUserManager; - /** @var IManager|MockObject */ - protected $notificationManager; - /** @var ConnectionFactory|MockObject */ - protected $connectionFactory; - /** @var AccessFactory|MockObject */ - protected $accessFactory; protected function setUp(): void { parent::setUp(); @@ -65,7 +57,11 @@ class SyncTest extends TestCase { $this->dbc = $this->createMock(IDBConnection::class); $this->ncUserManager = $this->createMock(IUserManager::class); $this->notificationManager = $this->createMock(IManager::class); - $this->connectionFactory = $this->createMock(ConnectionFactory::class); + $this->connectionFactory = $this->getMockBuilder(ConnectionFactory::class) + ->setConstructorArgs([ + $this->ldapWrapper, + ]) + ->getMock(); $this->accessFactory = $this->createMock(AccessFactory::class); $this->sync = new Sync( @@ -86,7 +82,7 @@ class SyncTest extends TestCase { $this->sync->overwritePropertiesForTest($this->ldapWrapper); } - public function intervalDataProvider(): array { + public static function intervalDataProvider(): array { return [ [ 0, 1000, 750 @@ -106,9 +102,7 @@ class SyncTest extends TestCase { ]; } - /** - * @dataProvider intervalDataProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('intervalDataProvider')] public function testUpdateInterval(int $userCount, int $pagingSize1, int $pagingSize2): void { $this->config->expects($this->once()) ->method('setAppValue') @@ -139,7 +133,7 @@ class SyncTest extends TestCase { $this->sync->updateInterval(); } - public function moreResultsProvider() { + public static function moreResultsProvider(): array { return [ [ 3, 3, true ], [ 3, 5, true ], @@ -149,11 +143,13 @@ class SyncTest extends TestCase { ]; } - /** - * @dataProvider moreResultsProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('moreResultsProvider')] public function testMoreResults($pagingSize, $results, $expected): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([ + $this->ldapWrapper, + ]) + ->getMock(); $this->connectionFactory->expects($this->any()) ->method('get') ->willReturn($connection); @@ -166,7 +162,7 @@ class SyncTest extends TestCase { return null; }); - /** @var Access|MockObject $access */ + /** @var Access&MockObject $access */ $access = $this->createMock(Access::class); $this->accessFactory->expects($this->any()) ->method('get') @@ -191,7 +187,7 @@ class SyncTest extends TestCase { $this->assertSame($expected, $hasMoreResults); } - public function cycleDataProvider() { + public static function cycleDataProvider(): array { $lastCycle = ['prefix' => 's01', 'offset' => 1000]; $lastCycle2 = ['prefix' => '', 'offset' => 1000]; return [ @@ -204,22 +200,24 @@ class SyncTest extends TestCase { ]; } - /** - * @dataProvider cycleDataProvider - */ - public function testDetermineNextCycle($cycleData, $prefixes, $expectedCycle): void { + #[\PHPUnit\Framework\Attributes\DataProvider('cycleDataProvider')] + public function testDetermineNextCycle(?array $cycleData, array $prefixes, ?array $expectedCycle): void { $this->helper->expects($this->any()) ->method('getServerConfigurationPrefixes') ->with(true) ->willReturn($prefixes); if (is_array($expectedCycle)) { + $calls = [ + ['user_ldap', 'background_sync_prefix', $expectedCycle['prefix']], + ['user_ldap', 'background_sync_offset', $expectedCycle['offset']], + ]; $this->config->expects($this->exactly(2)) ->method('setAppValue') - ->withConsecutive( - ['user_ldap', 'background_sync_prefix', $expectedCycle['prefix']], - ['user_ldap', 'background_sync_offset', $expectedCycle['offset']] - ); + ->willReturnCallback(function () use (&$calls): void { + $expected = array_shift($calls); + $this->assertEquals($expected, func_get_args()); + }); } else { $this->config->expects($this->never()) ->method('setAppValue'); @@ -248,7 +246,7 @@ class SyncTest extends TestCase { $this->assertFalse($this->sync->qualifiesToRun($cycleData)); } - public function runDataProvider(): array { + public static function runDataProvider(): array { return [ #0 - one LDAP server, reset [[ @@ -280,10 +278,8 @@ class SyncTest extends TestCase { ]; } - /** - * @dataProvider runDataProvider - */ - public function testRun($runData): void { + #[\PHPUnit\Framework\Attributes\DataProvider('runDataProvider')] + public function testRun(array $runData): void { $this->config->expects($this->any()) ->method('getAppValue') ->willReturnCallback(function ($app, $key, $default) use ($runData) { @@ -310,13 +306,18 @@ class SyncTest extends TestCase { return $default; }); + + $calls = [ + ['user_ldap', 'background_sync_prefix', $runData['expectedNextCycle']['prefix']], + ['user_ldap', 'background_sync_offset', $runData['expectedNextCycle']['offset']], + ['user_ldap', 'background_sync_interval', '43200'], + ]; $this->config->expects($this->exactly(3)) ->method('setAppValue') - ->withConsecutive( - ['user_ldap', 'background_sync_prefix', $runData['expectedNextCycle']['prefix']], - ['user_ldap', 'background_sync_offset', $runData['expectedNextCycle']['offset']], - ['user_ldap', 'background_sync_interval', $this->anything()] - ); + ->willReturnCallback(function () use (&$calls): void { + $expected = array_shift($calls); + $this->assertEquals($expected, func_get_args()); + }); $this->config->expects($this->any()) ->method('getAppKeys') ->with('user_ldap') @@ -327,7 +328,11 @@ class SyncTest extends TestCase { ->with(true) ->willReturn($runData['prefixes']); - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([ + $this->ldapWrapper, + ]) + ->getMock(); $this->connectionFactory->expects($this->any()) ->method('get') ->willReturn($connection); @@ -340,7 +345,7 @@ class SyncTest extends TestCase { return null; }); - /** @var Access|MockObject $access */ + /** @var Access&MockObject $access */ $access = $this->createMock(Access::class); $this->accessFactory->expects($this->any()) ->method('get') diff --git a/apps/user_ldap/tests/LDAPGroupPluginDummy.php b/apps/user_ldap/tests/LDAPGroupPluginDummy.php index 0d47fbbd290..5ea1a491f14 100644 --- a/apps/user_ldap/tests/LDAPGroupPluginDummy.php +++ b/apps/user_ldap/tests/LDAPGroupPluginDummy.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/apps/user_ldap/tests/LDAPProviderTest.php b/apps/user_ldap/tests/LDAPProviderTest.php index 9b0830ae513..57323e374aa 100644 --- a/apps/user_ldap/tests/LDAPProviderTest.php +++ b/apps/user_ldap/tests/LDAPProviderTest.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 @@ -12,13 +14,13 @@ use OCA\User_LDAP\Connection; use OCA\User_LDAP\Group_LDAP; use OCA\User_LDAP\Helper; use OCA\User_LDAP\IGroupLDAP; +use OCA\User_LDAP\ILDAPWrapper; use OCA\User_LDAP\IUserLDAP; use OCA\User_LDAP\LDAPProviderFactory; use OCA\User_LDAP\User_LDAP; use OCP\EventDispatcher\IEventDispatcher; use OCP\ICacheFactory; use OCP\IConfig; -use OCP\IDBConnection; use OCP\IServerContainer; use OCP\Server; use Psr\Log\LoggerInterface; @@ -31,13 +33,9 @@ use Psr\Log\LoggerInterface; * @package OCA\User_LDAP\Tests */ class LDAPProviderTest extends \Test\TestCase { - protected function setUp(): void { - parent::setUp(); - } - private function getServerMock(IUserLDAP $userBackend, IGroupLDAP $groupBackend) { $server = $this->getMockBuilder('OC\Server') - ->setMethods(['getUserManager', 'getBackends', 'getGroupManager']) + ->onlyMethods(['getUserManager', 'getGroupManager']) ->setConstructorArgs(['', new Config(\OC::$configDir)]) ->getMock(); $server->expects($this->any()) @@ -46,16 +44,13 @@ class LDAPProviderTest extends \Test\TestCase { $server->expects($this->any()) ->method('getGroupManager') ->willReturn($this->getGroupManagerMock($groupBackend)); - $server->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); return $server; } private function getUserManagerMock(IUserLDAP $userBackend) { $userManager = $this->getMockBuilder(Manager::class) - ->setMethods(['getBackends']) + ->onlyMethods(['getBackends']) ->setConstructorArgs([ $this->createMock(IConfig::class), $this->createMock(ICacheFactory::class), @@ -71,7 +66,7 @@ class LDAPProviderTest extends \Test\TestCase { private function getGroupManagerMock(IGroupLDAP $groupBackend) { $groupManager = $this->getMockBuilder('OC\Group\Manager') - ->setMethods(['getBackends']) + ->onlyMethods(['getBackends']) ->disableOriginalConstructor() ->getMock(); $groupManager->expects($this->any()) @@ -98,8 +93,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -110,20 +105,25 @@ class LDAPProviderTest extends \Test\TestCase { $ldapProvider->getUserDN('nonexisting_user'); } + public function testGetUserDN(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'username2dn']) + $userAccess = $this->getMockBuilder(Access::class) + ->onlyMethods(['username2dn']) + ->disableOriginalConstructor() + ->getMock(); + $userAccess->expects($this->once()) + ->method('username2dn') + ->willReturn('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->once()) ->method('userExists') ->willReturn(true); - $userBackend->expects($this->once()) - ->method('username2dn') - ->willReturn('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); $userBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($userAccess); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); @@ -137,12 +137,9 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('Group id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() - ->getMock(); - - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists']) + $userBackend = $this->createMock(User_LDAP::class); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists']) ->disableOriginalConstructor() ->getMock(); @@ -155,25 +152,23 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetGroupDN(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'username2dn']) - ->disableOriginalConstructor() - ->getMock(); + $userBackend = $this->createMock(User_LDAP::class); - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists', 'getLDAPAccess', 'groupname2dn']) + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); + $groupAccess = $this->createMock(Access::class); + $groupAccess->expects($this->once()) + ->method('groupname2dn') + ->willReturn('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); $groupBackend->expects($this->once()) ->method('groupExists') ->willReturn(true); - $groupBackend->expects($this->once()) - ->method('groupname2dn') - ->willReturn('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); $groupBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($groupAccess); $server = $this->getServerMock($userBackend, $groupBackend); @@ -183,8 +178,8 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetUserName(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['dn2UserName']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['dn2UserName']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any()) @@ -199,14 +194,11 @@ class LDAPProviderTest extends \Test\TestCase { } public function testDNasBaseParameter(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods([]) - ->disableOriginalConstructor() - ->getMock(); + $userBackend = $this->createMock(User_LDAP::class); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals( @@ -215,14 +207,11 @@ class LDAPProviderTest extends \Test\TestCase { } public function testSanitizeDN(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods([]) - ->disableOriginalConstructor() - ->getMock(); + $userBackend = $this->createMock(User_LDAP::class); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); - $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class)); + $helper = Server::get(Helper::class); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals( @@ -235,10 +224,7 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) - ->disableOriginalConstructor() - ->getMock(); + $userBackend = $this->createMock(User_LDAP::class); $userBackend->expects($this->any())->method('userExists')->willReturn(false); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); @@ -248,8 +234,8 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetLDAPConnection(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getNewLDAPConnection']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getNewLDAPConnection']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any()) @@ -271,12 +257,9 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('Group id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() - ->getMock(); - - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists']) + $userBackend = $this->createMock(User_LDAP::class); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists']) ->disableOriginalConstructor() ->getMock(); @@ -289,12 +272,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetGroupLDAPConnection(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() - ->getMock(); - - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists','getNewLDAPConnection']) + $userBackend = $this->createMock(User_LDAP::class); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists','getNewLDAPConnection']) ->disableOriginalConstructor() ->getMock(); @@ -318,8 +298,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -337,7 +317,9 @@ class LDAPProviderTest extends \Test\TestCase { ]; $dn = 'uid=malik,' . $bases[1]; - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects($this->any()) ->method('__get') ->willReturnCallback(function ($key) use ($bases) { @@ -359,8 +341,8 @@ class LDAPProviderTest extends \Test\TestCase { ->method('username2dn') ->willReturn($dn); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->atLeastOnce()) @@ -381,8 +363,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -399,7 +381,9 @@ class LDAPProviderTest extends \Test\TestCase { 'ou=groups,ou=barfoo,dc=example,dc=org', ]; - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects($this->any()) ->method('__get') ->willReturnCallback(function ($key) use ($bases) { @@ -415,8 +399,8 @@ class LDAPProviderTest extends \Test\TestCase { ->method('getConnection') ->willReturn($connection); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any()) @@ -437,8 +421,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -450,19 +434,25 @@ class LDAPProviderTest extends \Test\TestCase { } public function testClearCache(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'clearCache']) + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); + $connection->expects($this->once()) + ->method('clearCache') + ->willReturn(true); + $access = $this->createMock(Access::class); + $access->method('getConnection') + ->willReturn($connection); + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->once()) ->method('userExists') ->willReturn(true); - $userBackend->expects($this->once()) - ->method('clearCache') - ->willReturn(true); $userBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($access); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); @@ -476,11 +466,11 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('Group id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder(User_LDAP::class) ->disableOriginalConstructor() ->getMock(); - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists']) + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists']) ->disableOriginalConstructor() ->getMock(); $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); @@ -492,22 +482,26 @@ class LDAPProviderTest extends \Test\TestCase { } public function testClearGroupCache(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() + $userBackend = $this->createMock(User_LDAP::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) ->getMock(); - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'clearCache']) + $connection->expects($this->once()) + ->method('clearCache') + ->willReturn(true); + $access = $this->createMock(Access::class); + $access->method('getConnection') + ->willReturn($connection); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $groupBackend->expects($this->once()) ->method('groupExists') ->willReturn(true); - $groupBackend->expects($this->once()) - ->method('clearCache') - ->willReturn(true); $groupBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($access); $server = $this->getServerMock($userBackend, $groupBackend); @@ -517,8 +511,8 @@ class LDAPProviderTest extends \Test\TestCase { } public function testDnExists(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['dn2UserName']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['dn2UserName']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any()) @@ -532,11 +526,7 @@ class LDAPProviderTest extends \Test\TestCase { } public function testFlagRecord(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods([]) - ->disableOriginalConstructor() - ->getMock(); - + $userBackend = $this->createMock(User_LDAP::class); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); @@ -545,11 +535,7 @@ class LDAPProviderTest extends \Test\TestCase { } public function testUnflagRecord(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods([]) - ->disableOriginalConstructor() - ->getMock(); - + $userBackend = $this->createMock(User_LDAP::class); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); @@ -562,8 +548,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -575,19 +561,25 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetLDAPDisplayNameField(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); + $connection->expects($this->once()) + ->method('getConfiguration') + ->willReturn(['ldap_display_name' => 'displayName']); + $access = $this->createMock(Access::class); + $access->method('getConnection') + ->willReturn($connection); + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->once()) ->method('userExists') ->willReturn(true); - $userBackend->expects($this->once()) - ->method('getConfiguration') - ->willReturn(['ldap_display_name' => 'displayName']); $userBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($access); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); @@ -600,8 +592,8 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('User id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists']) + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->any())->method('userExists')->willReturn(false); @@ -613,19 +605,25 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetLDAPEmailField(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); + $connection->expects($this->once()) + ->method('getConfiguration') + ->willReturn(['ldap_email_attr' => 'mail']); + $access = $this->createMock(Access::class); + $access->method('getConnection') + ->willReturn($connection); + $userBackend = $this->getMockBuilder(User_LDAP::class) + ->onlyMethods(['userExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); $userBackend->expects($this->once()) ->method('userExists') ->willReturn(true); - $userBackend->expects($this->once()) - ->method('getConfiguration') - ->willReturn(['ldap_email_attr' => 'mail']); $userBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($access); $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); @@ -638,16 +636,15 @@ class LDAPProviderTest extends \Test\TestCase { $this->expectException(\Exception::class); $this->expectExceptionMessage('Group id not found in LDAP'); - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() - ->getMock(); - - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists']) + $userBackend = $this->createMock(User_LDAP::class); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists']) ->disableOriginalConstructor() ->getMock(); - $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); + $groupBackend->expects($this->any()) + ->method('groupExists') + ->willReturn(false); $server = $this->getServerMock($userBackend, $groupBackend); @@ -656,12 +653,19 @@ class LDAPProviderTest extends \Test\TestCase { } public function testgetLDAPGroupMemberAssoc(): void { - $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') - ->disableOriginalConstructor() - ->getMock(); + $userBackend = $this->createMock(User_LDAP::class); - $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') - ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); + $connection->expects($this->once()) + ->method('getConfiguration') + ->willReturn(['ldap_group_member_assoc_attribute' => 'assoc_type']); + $access = $this->createMock(Access::class); + $access->method('getConnection') + ->willReturn($connection); + $groupBackend = $this->getMockBuilder(Group_LDAP::class) + ->onlyMethods(['groupExists', 'getLDAPAccess']) ->disableOriginalConstructor() ->getMock(); @@ -669,11 +673,8 @@ class LDAPProviderTest extends \Test\TestCase { ->method('groupExists') ->willReturn(true); $groupBackend->expects($this->any()) - ->method('getConfiguration') - ->willReturn(['ldap_group_member_assoc_attribute' => 'assoc_type']); - $groupBackend->expects($this->any()) - ->method($this->anything()) - ->willReturnSelf(); + ->method('getLDAPAccess') + ->willReturn($access); $server = $this->getServerMock($userBackend, $groupBackend); @@ -698,7 +699,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetMultiValueUserAttributeCacheHit(): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects(self::once()) ->method('getFromCache') ->with('admin-mailAlias') @@ -723,7 +726,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetMultiValueUserAttributeLdapError(): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects(self::once()) ->method('getFromCache') ->with('admin-mailAlias') @@ -760,7 +765,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetMultiValueUserAttribute(): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects(self::once()) ->method('getFromCache') ->with('admin-mailAlias') @@ -797,7 +804,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetUserAttributeLdapError(): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects(self::once()) ->method('getFromCache') ->with('admin-mailAlias') @@ -834,7 +843,9 @@ class LDAPProviderTest extends \Test\TestCase { } public function testGetUserAttribute(): void { - $connection = $this->createMock(Connection::class); + $connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $connection->expects(self::once()) ->method('getFromCache') ->with('admin-mailAlias') diff --git a/apps/user_ldap/tests/LDAPTest.php b/apps/user_ldap/tests/LDAPTest.php index a29751555cb..6da592ad6a1 100644 --- a/apps/user_ldap/tests/LDAPTest.php +++ b/apps/user_ldap/tests/LDAPTest.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 @@ -6,20 +8,20 @@ namespace OCA\User_LDAP\Tests; use OCA\User_LDAP\LDAP; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class LDAPTest extends TestCase { - /** @var LDAP|\PHPUnit\Framework\MockObject\MockObject */ - private $ldap; + private LDAP&MockObject $ldap; protected function setUp(): void { parent::setUp(); $this->ldap = $this->getMockBuilder(LDAP::class) - ->setMethods(['invokeLDAPMethod']) + ->onlyMethods(['invokeLDAPMethod']) ->getMock(); } - public function errorProvider() { + public static function errorProvider(): array { return [ [ 'ldap_search(): Partial search results returned: Sizelimit exceeded at /srv/http/nextcloud/master/apps/user_ldap/lib/LDAP.php#292', @@ -31,11 +33,7 @@ class LDAPTest extends TestCase { ]; } - /** - * @param string $errorMessage - * @param bool $passThrough - * @dataProvider errorProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('errorProvider')] public function testSearchWithErrorHandler(string $errorMessage, bool $passThrough): void { $wasErrorHandlerCalled = false; $errorHandler = function ($number, $message, $file, $line) use (&$wasErrorHandlerCalled): void { diff --git a/apps/user_ldap/tests/LDAPUserPluginDummy.php b/apps/user_ldap/tests/LDAPUserPluginDummy.php index f6edf3df63b..8d4870406ae 100644 --- a/apps/user_ldap/tests/LDAPUserPluginDummy.php +++ b/apps/user_ldap/tests/LDAPUserPluginDummy.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -39,4 +41,12 @@ class LDAPUserPluginDummy implements ILDAPUserPlugin { public function countUsers() { return null; } + + public function canDeleteUser() { + return true; + } + + public function deleteUser($uid) { + return null; + } } diff --git a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php b/apps/user_ldap/tests/Mapping/AbstractMappingTestCase.php index f1e9b1b67bc..8efee4e2085 100644 --- a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php +++ b/apps/user_ldap/tests/Mapping/AbstractMappingTestCase.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -11,7 +12,7 @@ use OCA\User_LDAP\Mapping\AbstractMapping; use OCP\IDBConnection; use OCP\Server; -abstract class AbstractMappingTest extends \Test\TestCase { +abstract class AbstractMappingTestCase extends \Test\TestCase { abstract public function getMapper(IDBConnection $dbMock); /** @@ -29,8 +30,8 @@ abstract class AbstractMappingTest extends \Test\TestCase { * returns an array of test entries with dn, name and uuid as keys * @return array */ - protected function getTestData() { - $data = [ + protected static function getTestData(): array { + return [ [ 'dn' => 'uid=foobar,dc=example,dc=org', 'name' => 'Foobar', @@ -47,8 +48,6 @@ abstract class AbstractMappingTest extends \Test\TestCase { 'uuid' => '3333-CCCC-1234-CDEF', ] ]; - - return $data; } /** @@ -56,7 +55,7 @@ abstract class AbstractMappingTest extends \Test\TestCase { * @param AbstractMapping $mapper * @param array $data */ - protected function mapEntries($mapper, $data) { + protected function mapEntries(AbstractMapping $mapper, array $data): void { foreach ($data as $entry) { $done = $mapper->map($entry['dn'], $entry['name'], $entry['uuid']); $this->assertTrue($done); @@ -70,7 +69,7 @@ abstract class AbstractMappingTest extends \Test\TestCase { * @return array 0 = \OCA\User_LDAP\Mapping\AbstractMapping, 1 = array of * users or groups */ - private function initTest() { + private function initTest(): array { $dbc = Server::get(IDBConnection::class); $mapper = $this->getMapper($dbc); $data = $this->getTestData(); @@ -157,13 +156,13 @@ abstract class AbstractMappingTest extends \Test\TestCase { [$mapper,] = $this->initTest(); $names = $mapper->getNamesBySearch('oo', '%', '%'); - $this->assertTrue(is_array($names)); + $this->assertIsArray($names); $this->assertSame(2, count($names)); - $this->assertTrue(in_array('Foobar', $names)); - $this->assertTrue(in_array('Barfoo', $names)); + $this->assertContains('Foobar', $names); + $this->assertContains('Barfoo', $names); $names = $mapper->getNamesBySearch('nada'); - $this->assertTrue(is_array($names)); - $this->assertSame(0, count($names)); + $this->assertIsArray($names); + $this->assertCount(0, $names); } /** @@ -250,20 +249,20 @@ abstract class AbstractMappingTest extends \Test\TestCase { // get all entries without specifying offset or limit $results = $mapper->getList(); - $this->assertSame(3, count($results)); + $this->assertCount(3, $results); // get all-1 entries by specifying offset, and an high limit // specifying only offset without limit will not work by underlying lib $results = $mapper->getList(1, 999); - $this->assertSame(count($data) - 1, count($results)); + $this->assertCount(count($data) - 1, $results); // get first 2 entries by limit, but not offset $results = $mapper->getList(0, 2); - $this->assertSame(2, count($results)); + $this->assertCount(2, $results); // get 2nd entry by specifying both offset and limit $results = $mapper->getList(1, 1); - $this->assertSame(1, count($results)); + $this->assertCount(1, $results); } public function testGetListOfIdsByDn(): void { @@ -282,6 +281,6 @@ abstract class AbstractMappingTest extends \Test\TestCase { } $result = $mapper->getListOfIdsByDn($listOfDNs); - $this->assertSame(66640 / 20, count($result)); + $this->assertCount(66640 / 20, $result); } } diff --git a/apps/user_ldap/tests/Mapping/GroupMappingTest.php b/apps/user_ldap/tests/Mapping/GroupMappingTest.php index efa42e47863..5729058d10e 100644 --- a/apps/user_ldap/tests/Mapping/GroupMappingTest.php +++ b/apps/user_ldap/tests/Mapping/GroupMappingTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -17,7 +18,7 @@ use OCP\IDBConnection; * * @package OCA\User_LDAP\Tests\Mapping */ -class GroupMappingTest extends AbstractMappingTest { +class GroupMappingTest extends AbstractMappingTestCase { public function getMapper(IDBConnection $dbMock) { return new GroupMapping($dbMock); } diff --git a/apps/user_ldap/tests/Mapping/UserMappingTest.php b/apps/user_ldap/tests/Mapping/UserMappingTest.php index 07980ba470c..4346fe1d23f 100644 --- a/apps/user_ldap/tests/Mapping/UserMappingTest.php +++ b/apps/user_ldap/tests/Mapping/UserMappingTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -18,7 +19,7 @@ use OCP\Support\Subscription\IAssertion; * * @package OCA\User_LDAP\Tests\Mapping */ -class UserMappingTest extends AbstractMappingTest { +class UserMappingTest extends AbstractMappingTestCase { public function getMapper(IDBConnection $dbMock) { return new UserMapping($dbMock, $this->createMock(IAssertion::class)); } diff --git a/apps/user_ldap/tests/Migration/AbstractUUIDFixTest.php b/apps/user_ldap/tests/Migration/AbstractUUIDFixTestCase.php index f8abcaeb482..7a85b885bc1 100644 --- a/apps/user_ldap/tests/Migration/AbstractUUIDFixTest.php +++ b/apps/user_ldap/tests/Migration/AbstractUUIDFixTestCase.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -13,17 +15,18 @@ use OCA\User_LDAP\Migration\UUIDFix; use OCA\User_LDAP\Proxy; use OCP\AppFramework\Utility\ITimeFactory; use OCP\IConfig; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; -abstract class AbstractUUIDFixTest extends TestCase { - protected Helper $helper; - protected IConfig $config; - protected LDAP $ldap; +abstract class AbstractUUIDFixTestCase extends TestCase { + protected Helper&MockObject $helper; + protected IConfig&MockObject $config; + protected LDAP&MockObject $ldap; protected AbstractMapping $mapper; protected UUIDFix $job; protected Proxy $proxy; - protected Access $access; - protected ITimeFactory $time; + protected Access&MockObject $access; + protected ITimeFactory&MockObject $time; protected bool $isUser = true; protected function setUp(): void { @@ -141,19 +144,23 @@ abstract class AbstractUUIDFixTest extends TestCase { $this->access->expects($this->exactly(3)) ->method('getUUID') - ->withConsecutive( - [$args['records'][0]['dn'], $this->isUser], - [$args['records'][1]['dn'], $this->isUser], - [$args['records'][2]['dn'], $this->isUser] - ) - ->willReturnOnConsecutiveCalls($correctUUIDs[0], $correctUUIDs[1], $correctUUIDs[2]); - + ->willReturnMap([ + [$args['records'][0]['dn'], $this->isUser, null, $correctUUIDs[0]], + [$args['records'][1]['dn'], $this->isUser, null, $correctUUIDs[1]], + [$args['records'][2]['dn'], $this->isUser, null, $correctUUIDs[2]], + ]); + + $calls = [ + [$correctUUIDs[0], $args['records'][0]['dn']], + [$correctUUIDs[2], $args['records'][2]['dn']], + ]; $this->mapper->expects($this->exactly(2)) ->method('setUUIDbyDN') - ->withConsecutive( - [$correctUUIDs[0], $args['records'][0]['dn']], - [$correctUUIDs[2], $args['records'][2]['dn']] - ); + ->willReturnCallback(function ($i, $j) use (&$calls) { + $expected = array_shift($calls); + $this->assertEquals($expected, func_get_args()); + return true; + }); $this->job->run($args); } diff --git a/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php b/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php index ab8fe03d6d2..89d880f4acb 100644 --- a/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php +++ b/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php @@ -1,14 +1,15 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\Group_LDAP\Tests\Migration; +namespace OCA\User_LDAP\Tests\Migration; use OCA\User_LDAP\Group_Proxy; use OCA\User_LDAP\Mapping\GroupMapping; use OCA\User_LDAP\Migration\UUIDFixGroup; -use OCA\User_LDAP\Tests\Migration\AbstractUUIDFixTest; /** * Class UUIDFixGroupTest @@ -16,7 +17,7 @@ use OCA\User_LDAP\Tests\Migration\AbstractUUIDFixTest; * @package OCA\Group_LDAP\Tests\Migration * @group DB */ -class UUIDFixGroupTest extends AbstractUUIDFixTest { +class UUIDFixGroupTest extends AbstractUUIDFixTestCase { protected function setUp(): void { $this->isUser = false; parent::setUp(); diff --git a/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php b/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php index f31da43c584..6215ffcb6a1 100644 --- a/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php +++ b/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -11,23 +13,15 @@ use OCA\User_LDAP\Migration\UUIDFixInsert; use OCP\BackgroundJob\IJobList; use OCP\IConfig; use OCP\Migration\IOutput; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class UUIDFixInsertTest extends TestCase { - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - protected $config; - - /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */ - protected $userMapper; - - /** @var GroupMapping|\PHPUnit\Framework\MockObject\MockObject */ - protected $groupMapper; - - /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */ - protected $jobList; - - /** @var UUIDFixInsert */ - protected $job; + protected IConfig&MockObject $config; + protected UserMapping&MockObject $userMapper; + protected GroupMapping&MockObject $groupMapper; + protected IJobList&MockObject $jobList; + protected UUIDFixInsert $job; protected function setUp(): void { parent::setUp(); @@ -48,13 +42,12 @@ class UUIDFixInsertTest extends TestCase { $this->assertSame('Insert UUIDFix background job for user and group in batches', $this->job->getName()); } - public function recordProvider() { + public static function recordProvider(): array { $record = [ 'dn' => 'cn=somerecord,dc=somewhere', 'name' => 'Something', 'uuid' => 'AB12-3456-CDEF7-8GH9' ]; - array_fill(0, 50, $record); $userBatches = [ 0 => array_fill(0, 50, $record), @@ -71,13 +64,12 @@ class UUIDFixInsertTest extends TestCase { ]; } - public function recordProviderTooLongAndNone() { + public static function recordProviderTooLongAndNone(): array { $record = [ 'dn' => 'cn=somerecord,dc=somewhere', 'name' => 'Something', 'uuid' => 'AB12-3456-CDEF7-8GH9' ]; - array_fill(0, 50, $record); $userBatches = [ 0 => array_fill(0, 50, $record), @@ -94,10 +86,8 @@ class UUIDFixInsertTest extends TestCase { ]; } - /** - * @dataProvider recordProvider - */ - public function testRun($userBatches, $groupBatches): void { + #[\PHPUnit\Framework\Attributes\DataProvider('recordProvider')] + public function testRun(array $userBatches, array $groupBatches): void { $this->config->expects($this->once()) ->method('getAppValue') ->with('user_ldap', 'installed_version', '1.2.1') @@ -105,8 +95,11 @@ class UUIDFixInsertTest extends TestCase { $this->userMapper->expects($this->exactly(3)) ->method('getList') - ->withConsecutive([0, 50], [50, 50], [100, 50]) - ->willReturnOnConsecutiveCalls($userBatches[0], $userBatches[1], $userBatches[2]); + ->willReturnMap([ + [0, 50, false, $userBatches[0]], + [50, 50, false, $userBatches[1]], + [100, 50, false, $userBatches[2]], + ]); $this->groupMapper->expects($this->exactly(1)) ->method('getList') @@ -121,10 +114,8 @@ class UUIDFixInsertTest extends TestCase { $this->job->run($out); } - /** - * @dataProvider recordProviderTooLongAndNone - */ - public function testRunWithManyAndNone($userBatches, $groupBatches): void { + #[\PHPUnit\Framework\Attributes\DataProvider('recordProviderTooLongAndNone')] + public function testRunWithManyAndNone(array $userBatches, array $groupBatches): void { $this->config->expects($this->once()) ->method('getAppValue') ->with('user_ldap', 'installed_version', '1.2.1') @@ -132,8 +123,13 @@ class UUIDFixInsertTest extends TestCase { $this->userMapper->expects($this->exactly(5)) ->method('getList') - ->withConsecutive([0, 50], [0, 40], [0, 32], [32, 32], [64, 32]) - ->willReturnOnConsecutiveCalls($userBatches[0], $userBatches[1], $userBatches[2], $userBatches[3], $userBatches[4]); + ->willReturnMap([ + [0, 50, false, $userBatches[0]], + [0, 40, false, $userBatches[1]], + [0, 32, false, $userBatches[2]], + [32, 32, false, $userBatches[3]], + [64, 32, false, $userBatches[4]], + ]); $this->groupMapper->expects($this->once()) ->method('getList') diff --git a/apps/user_ldap/tests/Migration/UUIDFixUserTest.php b/apps/user_ldap/tests/Migration/UUIDFixUserTest.php index dfa1898450f..a582fd677fa 100644 --- a/apps/user_ldap/tests/Migration/UUIDFixUserTest.php +++ b/apps/user_ldap/tests/Migration/UUIDFixUserTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -15,7 +17,7 @@ use OCA\User_LDAP\User_Proxy; * @package OCA\User_LDAP\Tests\Migration * @group DB */ -class UUIDFixUserTest extends AbstractUUIDFixTest { +class UUIDFixUserTest extends AbstractUUIDFixTestCase { protected function setUp(): void { $this->isUser = true; parent::setUp(); diff --git a/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php b/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php index 79450d6913e..061118f10c1 100644 --- a/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php +++ b/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php @@ -1,11 +1,12 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\user_ldap\tests\Service; +namespace OCA\User_LDAP\Tests\Service; use DateTimeImmutable; use OCA\User_LDAP\Service\BirthdateParserService; @@ -20,7 +21,7 @@ class BirthdateParserServiceTest extends TestCase { $this->service = new BirthdateParserService(); } - public function parseBirthdateDataProvider(): array { + public static function parseBirthdateDataProvider(): array { return [ ['2024-01-01', new DateTimeImmutable('2024-01-01'), false], ['20240101', new DateTimeImmutable('2024-01-01'), false], @@ -34,9 +35,7 @@ class BirthdateParserServiceTest extends TestCase { ]; } - /** - * @dataProvider parseBirthdateDataProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('parseBirthdateDataProvider')] public function testParseBirthdate( string $value, ?DateTimeImmutable $expected, diff --git a/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php b/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php index 84aefb484bb..601aee86602 100644 --- a/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php +++ b/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php @@ -6,17 +6,15 @@ declare(strict_types=1); * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\user_ldap\tests\Service; +namespace OCA\User_LDAP\Tests\Service; use OCA\User_LDAP\Db\GroupMembership; use OCA\User_LDAP\Db\GroupMembershipMapper; use OCA\User_LDAP\Group_Proxy; use OCA\User_LDAP\Service\UpdateGroupsService; -use OCP\AppFramework\Utility\ITimeFactory; use OCP\EventDispatcher\IEventDispatcher; use OCP\Group\Events\UserAddedEvent; use OCP\Group\Events\UserRemovedEvent; -use OCP\IConfig; use OCP\IGroup; use OCP\IGroupManager; use OCP\IUser; @@ -26,23 +24,12 @@ use Psr\Log\LoggerInterface; use Test\TestCase; class UpdateGroupsServiceTest extends TestCase { - /** @var Group_Proxy|MockObject */ - protected $groupBackend; - /** @var IEventDispatcher|MockObject */ - protected $dispatcher; - /** @var IGroupManager|MockObject */ - protected $groupManager; - /** @var IUserManager|MockObject */ - protected $userManager; - /** @var LoggerInterface|MockObject */ - protected $logger; - /** @var GroupMembershipMapper|MockObject */ - protected $groupMembershipMapper; - /** @var IConfig|MockObject */ - protected $config; - /** @var ITimeFactory|MockObject */ - protected $timeFactory; - + protected Group_Proxy&MockObject $groupBackend; + protected IEventDispatcher&MockObject $dispatcher; + protected IGroupManager&MockObject $groupManager; + protected IUserManager&MockObject $userManager; + protected LoggerInterface&MockObject $logger; + protected GroupMembershipMapper&MockObject $groupMembershipMapper; protected UpdateGroupsService $updateGroupsService; public function setUp(): void { @@ -52,8 +39,6 @@ class UpdateGroupsServiceTest extends TestCase { $this->userManager = $this->createMock(IUserManager::class); $this->logger = $this->createMock(LoggerInterface::class); $this->groupMembershipMapper = $this->createMock(GroupMembershipMapper::class); - $this->config = $this->createMock(IConfig::class); - $this->timeFactory = $this->createMock(ITimeFactory::class); $this->updateGroupsService = new UpdateGroupsService( $this->groupBackend, @@ -62,8 +47,6 @@ class UpdateGroupsServiceTest extends TestCase { $this->userManager, $this->logger, $this->groupMembershipMapper, - $this->config, - $this->timeFactory ); } diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php index 05b9697e4c8..b17e96c1a68 100644 --- a/apps/user_ldap/tests/Settings/AdminTest.php +++ b/apps/user_ldap/tests/Settings/AdminTest.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 @@ -20,13 +22,12 @@ use Test\TestCase; */ class AdminTest extends TestCase { private IL10N&MockObject $l10n; - private ITemplateManager $templateManager; private Admin $admin; protected function setUp(): void { parent::setUp(); - $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); + $this->l10n = $this->createMock(IL10N::class); $this->templateManager = Server::get(ITemplateManager::class); $this->admin = new Admin( @@ -35,9 +36,6 @@ class AdminTest extends TestCase { ); } - /** - * @UseDB - */ public function testGetForm(): void { $prefixes = ['s01']; $hosts = ['s01' => '']; diff --git a/apps/user_ldap/tests/Settings/SectionTest.php b/apps/user_ldap/tests/Settings/SectionTest.php index 722581713d1..3f9ae1e56d4 100644 --- a/apps/user_ldap/tests/Settings/SectionTest.php +++ b/apps/user_ldap/tests/Settings/SectionTest.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 @@ -8,15 +10,13 @@ namespace OCA\User_LDAP\Tests\Settings; use OCA\User_LDAP\Settings\Section; use OCP\IL10N; use OCP\IURLGenerator; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class SectionTest extends TestCase { - /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */ - private $url; - /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */ - private $l; - /** @var Section */ - private $section; + private IURLGenerator&MockObject $url; + private IL10N&MockObject $l; + private Section $section; protected function setUp(): void { parent::setUp(); diff --git a/apps/user_ldap/tests/User/DeletedUsersIndexTest.php b/apps/user_ldap/tests/User/DeletedUsersIndexTest.php index 64e443a064f..b245e52fe6e 100644 --- a/apps/user_ldap/tests/User/DeletedUsersIndexTest.php +++ b/apps/user_ldap/tests/User/DeletedUsersIndexTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -11,6 +13,7 @@ use OCP\IConfig; use OCP\IDBConnection; use OCP\Server; use OCP\Share\IManager; +use PHPUnit\Framework\MockObject\MockObject; /** * Class DeletedUsersIndexTest @@ -20,19 +23,11 @@ use OCP\Share\IManager; * @package OCA\User_LDAP\Tests\User */ class DeletedUsersIndexTest extends \Test\TestCase { - /** @var DeletedUsersIndex */ - protected $dui; - - /** @var IConfig */ - protected $config; - - /** @var IDBConnection */ - protected $db; - - /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */ - protected $mapping; - /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $shareManager; + protected DeletedUsersIndex $dui; + protected IConfig $config; + protected IDBConnection $db; + protected UserMapping&MockObject $mapping; + protected IManager&MockObject $shareManager; protected function setUp(): void { parent::setUp(); diff --git a/apps/user_ldap/tests/User/ManagerTest.php b/apps/user_ldap/tests/User/ManagerTest.php index 4f504ff5f7a..bf9d1f5746f 100644 --- a/apps/user_ldap/tests/User/ManagerTest.php +++ b/apps/user_ldap/tests/User/ManagerTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -19,6 +20,7 @@ use OCP\Image; use OCP\IUserManager; use OCP\Notification\IManager as INotificationManager; use OCP\Share\IManager; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; /** @@ -29,40 +31,18 @@ use Psr\Log\LoggerInterface; * @package OCA\User_LDAP\Tests\User */ class ManagerTest extends \Test\TestCase { - /** @var Access|\PHPUnit\Framework\MockObject\MockObject */ - protected $access; - - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - protected $config; - - /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ - protected $logger; - - /** @var IAvatarManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $avatarManager; - - /** @var Image|\PHPUnit\Framework\MockObject\MockObject */ - protected $image; - - /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */ - protected $dbc; - - /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $ncUserManager; - - /** @var INotificationManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $notificationManager; - - /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject */ - protected $ldapWrapper; - - /** @var Connection */ - protected $connection; - - /** @var Manager */ - protected $manager; - /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $shareManager; + protected Access&MockObject $access; + protected IConfig&MockObject $config; + protected LoggerInterface&MockObject $logger; + protected IAvatarManager&MockObject $avatarManager; + protected Image&MockObject $image; + protected IDBConnection&MockObject $dbc; + protected IUserManager&MockObject $ncUserManager; + protected INotificationManager&MockObject $notificationManager; + protected ILDAPWrapper&MockObject $ldapWrapper; + protected Connection $connection; + protected IManager&MockObject $shareManager; + protected Manager $manager; protected function setUp(): void { parent::setUp(); @@ -97,7 +77,7 @@ class ManagerTest extends \Test\TestCase { $this->manager->setLdapAccess($this->access); } - public function dnProvider() { + public static function dnProvider(): array { return [ ['cn=foo,dc=foobar,dc=bar'], ['uid=foo,o=foobar,c=bar'], @@ -105,9 +85,7 @@ class ManagerTest extends \Test\TestCase { ]; } - /** - * @dataProvider dnProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('dnProvider')] public function testGetByDNExisting(string $inputDN): void { $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e'; @@ -197,16 +175,14 @@ class ManagerTest extends \Test\TestCase { $this->assertNull($user); } - public function attributeRequestProvider() { + public static function attributeRequestProvider(): array { return [ [false], [true], ]; } - /** - * @dataProvider attributeRequestProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('attributeRequestProvider')] public function testGetAttributes($minimal): void { $this->connection->setConfiguration([ 'ldapEmailAttribute' => 'MAIL', @@ -217,10 +193,10 @@ class ManagerTest extends \Test\TestCase { $attributes = $this->manager->getAttributes($minimal); - $this->assertTrue(in_array('dn', $attributes)); - $this->assertTrue(in_array(strtolower($this->access->getConnection()->ldapEmailAttribute), $attributes)); - $this->assertTrue(!in_array($this->access->getConnection()->ldapEmailAttribute, $attributes)); #cases check - $this->assertFalse(in_array('', $attributes)); + $this->assertContains('dn', $attributes); + $this->assertContains(strtolower($this->access->getConnection()->ldapEmailAttribute), $attributes); + $this->assertNotContains($this->access->getConnection()->ldapEmailAttribute, $attributes); #cases check + $this->assertNotContains('', $attributes); $this->assertSame(!$minimal, in_array('jpegphoto', $attributes)); $this->assertSame(!$minimal, in_array('thumbnailphoto', $attributes)); $valueCounts = array_count_values($attributes); diff --git a/apps/user_ldap/tests/User/OfflineUserTest.php b/apps/user_ldap/tests/User/OfflineUserTest.php index e53bfca7f47..223e63421ad 100644 --- a/apps/user_ldap/tests/User/OfflineUserTest.php +++ b/apps/user_ldap/tests/User/OfflineUserTest.php @@ -13,20 +13,15 @@ use OCA\User_LDAP\User\OfflineUser; use OCP\IConfig; use OCP\Share\IManager; use OCP\Share\IShare; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class OfflineUserTest extends TestCase { - - /** @var OfflineUser */ - protected $offlineUser; - /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */ - protected $mapping; - /** @var string */ - protected $uid; - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - protected $config; - /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $shareManager; + protected UserMapping&MockObject $mapping; + protected string $uid; + protected IConfig&MockObject $config; + protected IManager&MockObject $shareManager; + protected OfflineUser $offlineUser; public function setUp(): void { $this->uid = 'deborah'; @@ -42,7 +37,7 @@ class OfflineUserTest extends TestCase { ); } - public function shareOwnerProvider(): array { + public static function shareOwnerProvider(): array { return [ [[], false], [[IShare::TYPE_USER], true], @@ -52,9 +47,7 @@ class OfflineUserTest extends TestCase { ]; } - /** - * @dataProvider shareOwnerProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('shareOwnerProvider')] public function testHasActiveShares(array $existingShareTypes, bool $expected): void { $shareMock = $this->createMock(IShare::class); diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php index badbca7f476..00edd8b3f9b 100644 --- a/apps/user_ldap/tests/User/UserTest.php +++ b/apps/user_ldap/tests/User/UserTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -9,6 +10,7 @@ namespace OCA\User_LDAP\Tests\User; use OCA\User_LDAP\Access; use OCA\User_LDAP\Connection; +use OCA\User_LDAP\ILDAPWrapper; use OCA\User_LDAP\User\User; use OCP\IAvatar; use OCP\IAvatarManager; @@ -19,6 +21,7 @@ use OCP\IUserManager; use OCP\Notification\IManager as INotificationManager; use OCP\Notification\INotification; use OCP\Util; +use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; /** @@ -29,33 +32,24 @@ use Psr\Log\LoggerInterface; * @package OCA\User_LDAP\Tests\User */ class UserTest extends \Test\TestCase { - /** @var Access|\PHPUnit\Framework\MockObject\MockObject */ - protected $access; - /** @var Connection|\PHPUnit\Framework\MockObject\MockObject */ - protected $connection; - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - protected $config; - /** @var INotificationManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $notificationManager; - /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $userManager; - /** @var Image|\PHPUnit\Framework\MockObject\MockObject */ - protected $image; - /** @var IAvatarManager|\PHPUnit\Framework\MockObject\MockObject */ - protected $avatarManager; - /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ - protected $logger; - /** @var string */ - protected $uid = 'alice'; - /** @var string */ - protected $dn = 'uid=alice,dc=foo,dc=bar'; - /** @var User */ - protected $user; + protected Access&MockObject $access; + protected Connection&MockObject $connection; + protected IConfig&MockObject $config; + protected INotificationManager&MockObject $notificationManager; + protected IUserManager&MockObject $userManager; + protected Image&MockObject $image; + protected IAvatarManager&MockObject $avatarManager; + protected LoggerInterface&MockObject $logger; + protected string $uid = 'alice'; + protected string $dn = 'uid=alice,dc=foo,dc=bar'; + protected User $user; protected function setUp(): void { parent::setUp(); - $this->connection = $this->createMock(Connection::class); + $this->connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $this->access = $this->createMock(Access::class); $this->access->connection = $this->connection; @@ -100,9 +94,7 @@ class UserTest extends \Test\TestCase { $this->equalTo('email')) ->willReturn(['alice@foo.bar']); - $coreUser = $this->getMockBuilder(IUser::class) - ->disableOriginalConstructor() - ->getMock(); + $coreUser = $this->createMock(IUser::class); $coreUser->expects($this->once()) ->method('setSystemEMailAddress') ->with('alice@foo.bar'); @@ -506,7 +498,7 @@ class UserTest extends \Test\TestCase { $avatar = $this->createMock(IAvatar::class); $avatar->expects($this->once()) ->method('set') - ->with($this->isInstanceOf($this->image)); + ->with($this->image); $this->avatarManager->expects($this->once()) ->method('getAvatar') @@ -617,7 +609,7 @@ class UserTest extends \Test\TestCase { $avatar = $this->createMock(IAvatar::class); $avatar->expects($this->once()) ->method('set') - ->with($this->isInstanceOf($this->image)); + ->with($this->image); $this->avatarManager->expects($this->once()) ->method('getAvatar') @@ -723,7 +715,7 @@ class UserTest extends \Test\TestCase { $avatar = $this->createMock(IAvatar::class); $avatar->expects($this->once()) ->method('set') - ->with($this->isInstanceOf($this->image)) + ->with($this->image) ->willThrowException(new \Exception()); $this->avatarManager->expects($this->once()) @@ -780,7 +772,7 @@ class UserTest extends \Test\TestCase { $this->user->updateAvatar(); } - public function extStorageHomeDataProvider() { + public static function extStorageHomeDataProvider(): array { return [ [ 'myFolder', null ], [ '', null, false ], @@ -788,9 +780,7 @@ class UserTest extends \Test\TestCase { ]; } - /** - * @dataProvider extStorageHomeDataProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('extStorageHomeDataProvider')] public function testUpdateExtStorageHome(string $expected, ?string $valueFromLDAP = null, bool $isSet = true): void { if ($valueFromLDAP === null) { $this->connection->expects($this->once()) @@ -865,7 +855,7 @@ class UserTest extends \Test\TestCase { $this->assertFalse($this->user->getAvatarImage()); } - public function imageDataProvider() { + public static function imageDataProvider(): array { return [ [ false, false ], [ 'corruptData', false ], @@ -884,7 +874,7 @@ class UserTest extends \Test\TestCase { 'updateExtStorageHome', ]; - /** @var User|\PHPUnit\Framework\MockObject\MockObject $userMock */ + /** @var User&MockObject $userMock */ $userMock = $this->getMockBuilder(User::class) ->setConstructorArgs([ $this->uid, @@ -897,7 +887,7 @@ class UserTest extends \Test\TestCase { $this->userManager, $this->notificationManager ]) - ->setMethods($requiredMethods) + ->onlyMethods($requiredMethods) ->getMock(); $this->connection->setConfiguration([ @@ -937,17 +927,15 @@ class UserTest extends \Test\TestCase { \OC_Hook::emit('OC_User', 'post_login', ['uid' => $this->uid]); } - public function emptyHomeFolderAttributeValueProvider() { + public static function emptyHomeFolderAttributeValueProvider(): array { return [ 'empty' => [''], 'prefixOnly' => ['attr:'], ]; } - /** - * @dataProvider emptyHomeFolderAttributeValueProvider - */ - public function testGetHomePathNotConfigured($attributeValue): void { + #[\PHPUnit\Framework\Attributes\DataProvider('emptyHomeFolderAttributeValueProvider')] + public function testGetHomePathNotConfigured(string $attributeValue): void { $this->connection->expects($this->any()) ->method('__get') ->with($this->equalTo('homeFolderNamingRule')) @@ -1011,7 +999,7 @@ class UserTest extends \Test\TestCase { $this->user->getHomePath(); } - public function displayNameProvider() { + public static function displayNameProvider(): array { return [ ['Roland Deschain', '', 'Roland Deschain', false], ['Roland Deschain', '', 'Roland Deschain', true], @@ -1020,10 +1008,8 @@ class UserTest extends \Test\TestCase { ]; } - /** - * @dataProvider displayNameProvider - */ - public function testComposeAndStoreDisplayName($part1, $part2, $expected, $expectTriggerChange): void { + #[\PHPUnit\Framework\Attributes\DataProvider('displayNameProvider')] + public function testComposeAndStoreDisplayName(string $part1, string $part2, string $expected, bool $expectTriggerChange): void { $this->config->expects($this->once()) ->method('setUserValue'); $oldName = $expectTriggerChange ? 'xxGunslingerxx' : null; diff --git a/apps/user_ldap/tests/UserLDAPPluginTest.php b/apps/user_ldap/tests/UserLDAPPluginTest.php index 5f11f817771..8a065374e61 100644 --- a/apps/user_ldap/tests/UserLDAPPluginTest.php +++ b/apps/user_ldap/tests/UserLDAPPluginTest.php @@ -1,4 +1,6 @@ <?php + +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later @@ -9,27 +11,23 @@ use OC\User\Backend; use OCA\User_LDAP\UserPluginManager; class UserLDAPPluginTest extends \Test\TestCase { - - /** - * @return UserPluginManager - */ - private function getUserPluginManager() { + private function getUserPluginManager(): UserPluginManager { return new UserPluginManager(); } public function testImplementsActions(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions']) ->getMock(); $plugin->expects($this->any()) ->method('respondToActions') ->willReturn(Backend::CREATE_USER); - $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions']) + $plugin2 = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions']) ->getMock(); $plugin2->expects($this->any()) @@ -47,8 +45,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testCreateUser(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'createUser']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'createUser']) ->getMock(); $plugin->expects($this->any()) @@ -66,7 +64,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->createUser('user', 'password'); } - + public function testCreateUserNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements createUser in this LDAP Backend.'); @@ -78,8 +76,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testSetPassword(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'setPassword']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'setPassword']) ->getMock(); $plugin->expects($this->any()) @@ -97,7 +95,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->setPassword('user', 'password'); } - + public function testSetPasswordNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements setPassword in this LDAP Backend.'); @@ -109,8 +107,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testGetHome(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'getHome']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'getHome']) ->getMock(); $plugin->expects($this->any()) @@ -127,7 +125,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->getHome('uid'); } - + public function testGetHomeNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements getHome in this LDAP Backend.'); @@ -139,8 +137,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testGetDisplayName(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'getDisplayName']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'getDisplayName']) ->getMock(); $plugin->expects($this->any()) @@ -157,7 +155,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->getDisplayName('uid'); } - + public function testGetDisplayNameNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements getDisplayName in this LDAP Backend.'); @@ -169,8 +167,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testSetDisplayName(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'setDisplayName']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'setDisplayName']) ->getMock(); $plugin->expects($this->any()) @@ -188,7 +186,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->setDisplayName('user', 'password'); } - + public function testSetDisplayNameNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements setDisplayName in this LDAP Backend.'); @@ -200,8 +198,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testCanChangeAvatar(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'canChangeAvatar']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'canChangeAvatar']) ->getMock(); $plugin->expects($this->any()) @@ -218,7 +216,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->canChangeAvatar('uid'); } - + public function testCanChangeAvatarNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements canChangeAvatar in this LDAP Backend.'); @@ -230,8 +228,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testCountUsers(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'countUsers']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'countUsers']) ->getMock(); $plugin->expects($this->any()) @@ -245,7 +243,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->countUsers(); } - + public function testCountUsersNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements countUsers in this LDAP Backend.'); @@ -257,8 +255,8 @@ class UserLDAPPluginTest extends \Test\TestCase { public function testDeleteUser(): void { $pluginManager = $this->getUserPluginManager(); - $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') - ->setMethods(['respondToActions', 'canDeleteUser','deleteUser']) + $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class) + ->onlyMethods(['respondToActions', 'canDeleteUser','deleteUser']) ->getMock(); $plugin->expects($this->any()) @@ -281,7 +279,7 @@ class UserLDAPPluginTest extends \Test\TestCase { $pluginManager->deleteUser('uid'); } - + public function testDeleteUserNotRegistered(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('No plugin implements deleteUser in this LDAP Backend.'); diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php index ede7123bd36..f8900c3cca4 100644 --- a/apps/user_ldap/tests/User_LDAPTest.php +++ b/apps/user_ldap/tests/User_LDAPTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -10,6 +11,7 @@ namespace OCA\User_LDAP\Tests; use OC\User\Backend; use OCA\User_LDAP\Access; use OCA\User_LDAP\Connection; +use OCA\User_LDAP\ILDAPWrapper; use OCA\User_LDAP\Mapping\AbstractMapping; use OCA\User_LDAP\Mapping\UserMapping; use OCA\User_LDAP\User\DeletedUsersIndex; @@ -38,24 +40,15 @@ use Test\TestCase; * @package OCA\User_LDAP\Tests */ class User_LDAPTest extends TestCase { - /** @var User_LDAP */ - protected $backend; - /** @var Access|MockObject */ - protected $access; - /** @var OfflineUser|MockObject */ - protected $offlineUser; - /** @var INotificationManager|MockObject */ - protected $notificationManager; - /** @var UserPluginManager|MockObject */ - protected $pluginManager; - /** @var Connection|MockObject */ - protected $connection; - /** @var Manager|MockObject */ - protected $userManager; - /** @var LoggerInterface|MockObject */ - protected $logger; - /** @var DeletedUsersIndex|MockObject */ - protected $deletedUsersIndex; + protected Access&MockObject $access; + protected OfflineUser&MockObject $offlineUser; + protected INotificationManager&MockObject $notificationManager; + protected UserPluginManager&MockObject $pluginManager; + protected Connection&MockObject $connection; + protected Manager&MockObject $userManager; + protected LoggerInterface&MockObject $logger; + protected DeletedUsersIndex&MockObject $deletedUsersIndex; + protected User_LDAP $backend; protected function setUp(): void { parent::setUp(); @@ -63,7 +56,9 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->clearBackends(); Server::get(IGroupManager::class)->clearBackends(); - $this->connection = $this->createMock(Connection::class); + $this->connection = $this->getMockBuilder(Connection::class) + ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)]) + ->getMock(); $this->userManager = $this->createMock(Manager::class); $this->access = $this->createMock(Access::class); @@ -86,7 +81,7 @@ class User_LDAPTest extends TestCase { ); } - private function prepareMockForUserExists() { + private function prepareMockForUserExists(): void { $this->access->expects($this->any()) ->method('username2dn') ->willReturnCallback(function ($uid) { @@ -114,10 +109,8 @@ class User_LDAPTest extends TestCase { /** * Prepares the Access mock for checkPassword tests - * @param bool $noDisplayName - * @return void */ - private function prepareAccessForCheckPassword($noDisplayName = false) { + private function prepareAccessForCheckPassword(bool $noDisplayName = false): void { $this->connection->expects($this->any()) ->method('__get') ->willReturnCallback(function ($name) { @@ -347,7 +340,7 @@ class User_LDAPTest extends TestCase { ->method('invalidate') ->with('uid'); - $this->assertEquals(true, $this->backend->deleteUser('uid')); + $this->assertTrue($this->backend->deleteUser('uid')); } /** @@ -404,7 +397,7 @@ class User_LDAPTest extends TestCase { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $result = $backend->getUsers(); - $this->assertEquals(3, count($result)); + $this->assertCount(3, $result); } public function testGetUsersLimitOffset(): void { @@ -412,7 +405,7 @@ class User_LDAPTest extends TestCase { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $result = $backend->getUsers('', 1, 2); - $this->assertEquals(1, count($result)); + $this->assertCount(1, $result); } public function testGetUsersLimitOffset2(): void { @@ -420,7 +413,7 @@ class User_LDAPTest extends TestCase { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $result = $backend->getUsers('', 2, 1); - $this->assertEquals(2, count($result)); + $this->assertCount(2, $result); } public function testGetUsersSearchWithResult(): void { @@ -428,7 +421,7 @@ class User_LDAPTest extends TestCase { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $result = $backend->getUsers('yo'); - $this->assertEquals(2, count($result)); + $this->assertCount(2, $result); } public function testGetUsersSearchEmptyResult(): void { @@ -436,7 +429,7 @@ class User_LDAPTest extends TestCase { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $result = $backend->getUsers('nix'); - $this->assertEquals(0, count($result)); + $this->assertCount(0, $result); } private function getUsers($search = '', $limit = null, $offset = null) { @@ -453,7 +446,7 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->registerBackend($backend); $result = $this->getUsers(); - $this->assertEquals(3, count($result)); + $this->assertCount(3, $result); } public function testGetUsersViaAPILimitOffset(): void { @@ -462,7 +455,7 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->registerBackend($backend); $result = $this->getUsers('', 1, 2); - $this->assertEquals(1, count($result)); + $this->assertCount(1, $result); } public function testGetUsersViaAPILimitOffset2(): void { @@ -471,7 +464,7 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->registerBackend($backend); $result = $this->getUsers('', 2, 1); - $this->assertEquals(2, count($result)); + $this->assertCount(2, $result); } public function testGetUsersViaAPISearchWithResult(): void { @@ -480,7 +473,7 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->registerBackend($backend); $result = $this->getUsers('yo'); - $this->assertEquals(2, count($result)); + $this->assertCount(2, $result); } public function testGetUsersViaAPISearchEmptyResult(): void { @@ -489,15 +482,13 @@ class User_LDAPTest extends TestCase { Server::get(IUserManager::class)->registerBackend($backend); $result = $this->getUsers('nix'); - $this->assertEquals(0, count($result)); + $this->assertCount(0, $result); } public function testUserExists(): void { $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $this->prepareMockForUserExists(); - $user = $this->createMock(User::class); - $this->userManager->expects($this->never()) ->method('get'); $this->userManager->expects($this->once()) @@ -1182,8 +1173,6 @@ class User_LDAPTest extends TestCase { /** * Prepares the Access mock for setPassword tests - * - * @param bool $enablePasswordChange */ private function prepareAccessForSetPassword($enablePasswordChange = true) { $this->connection->expects($this->any()) @@ -1328,7 +1317,7 @@ class User_LDAPTest extends TestCase { $this->assertEquals($this->backend->setPassword('uid', 'password'), 'result'); } - public function avatarDataProvider() { + public static function avatarDataProvider(): array { return [ [ 'validImageData', false ], [ 'corruptImageData', true ], @@ -1336,8 +1325,8 @@ class User_LDAPTest extends TestCase { ]; } - /** @dataProvider avatarDataProvider */ - public function testCanChangeAvatar($imageData, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('avatarDataProvider')] + public function testCanChangeAvatar(string|bool $imageData, bool $expected): void { $isValidImage = str_starts_with((string)$imageData, 'valid'); $user = $this->createMock(User::class); @@ -1451,9 +1440,9 @@ class User_LDAPTest extends TestCase { $this->assertFalse($this->backend->createUser('uid', 'password')); } - public function actionProvider() { + public static function actionProvider(): array { return [ - [ 'ldapUserAvatarRule', 'default', Backend::PROVIDE_AVATAR, true] , + [ 'ldapUserAvatarRule', 'default', Backend::PROVIDE_AVATAR, true], [ 'ldapUserAvatarRule', 'data:selfiePhoto', Backend::PROVIDE_AVATAR, true], [ 'ldapUserAvatarRule', 'none', Backend::PROVIDE_AVATAR, false], [ 'turnOnPasswordChange', 0, Backend::SET_PASSWORD, false], @@ -1461,10 +1450,8 @@ class User_LDAPTest extends TestCase { ]; } - /** - * @dataProvider actionProvider - */ - public function testImplementsAction($configurable, $value, $actionCode, $expected): void { + #[\PHPUnit\Framework\Attributes\DataProvider('actionProvider')] + public function testImplementsAction(string $configurable, string|int $value, int $actionCode, bool $expected): void { $this->pluginManager->expects($this->once()) ->method('getImplementedActions') ->willReturn(0); diff --git a/apps/user_ldap/tests/User_ProxyTest.php b/apps/user_ldap/tests/User_ProxyTest.php index 4544276a714..38f94af33a7 100644 --- a/apps/user_ldap/tests/User_ProxyTest.php +++ b/apps/user_ldap/tests/User_ProxyTest.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 @@ -17,22 +19,14 @@ use Psr\Log\LoggerInterface; use Test\TestCase; class User_ProxyTest extends TestCase { - /** @var Helper|MockObject */ - protected $helper; - /** @var ILDAPWrapper|MockObject */ - private $ldapWrapper; - /** @var AccessFactory|MockObject */ - private $accessFactory; - /** @var INotificationManager|MockObject */ - private $notificationManager; - /** @var User_Proxy|MockObject */ - private $proxy; - /** @var UserPluginManager|MockObject */ - private $userPluginManager; - /** @var LoggerInterface|MockObject */ - protected $logger; - /** @var DeletedUsersIndex|MockObject */ - protected $deletedUsersIndex; + protected Helper&MockObject $helper; + private ILDAPWrapper&MockObject $ldapWrapper; + private AccessFactory&MockObject $accessFactory; + private INotificationManager&MockObject $notificationManager; + private User_Proxy&MockObject $proxy; + private UserPluginManager&MockObject $userPluginManager; + protected LoggerInterface&MockObject $logger; + protected DeletedUsersIndex&MockObject $deletedUsersIndex; protected function setUp(): void { parent::setUp(); @@ -54,7 +48,7 @@ class User_ProxyTest extends TestCase { $this->logger, $this->deletedUsersIndex, ]) - ->setMethods(['handleRequest']) + ->onlyMethods(['handleRequest']) ->getMock(); } diff --git a/apps/user_ldap/tests/WizardTest.php b/apps/user_ldap/tests/WizardTest.php index 31fd28e2fa1..3ae9a409e88 100644 --- a/apps/user_ldap/tests/WizardTest.php +++ b/apps/user_ldap/tests/WizardTest.php @@ -1,5 +1,6 @@ <?php +declare(strict_types=1); /** * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -35,32 +36,28 @@ class WizardTest extends TestCase { } } - private function getWizardAndMocks() { + private function getWizardAndMocks(): array { static $confMethods; - static $connMethods; - static $accMethods; if (is_null($confMethods)) { $confMethods = get_class_methods('\OCA\User_LDAP\Configuration'); - $connMethods = get_class_methods('\OCA\User_LDAP\Connection'); - $accMethods = get_class_methods('\OCA\User_LDAP\Access'); } - /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject $lw */ + /** @var ILDAPWrapper&MockObject $lw */ $lw = $this->createMock(ILDAPWrapper::class); - /** @var Configuration|\PHPUnit\Framework\MockObject\MockObject $conf */ + /** @var Configuration&MockObject $conf */ $conf = $this->getMockBuilder(Configuration::class) - ->setMethods($confMethods) + ->onlyMethods($confMethods) ->setConstructorArgs(['', true]) ->getMock(); - /** @var Access|\PHPUnit\Framework\MockObject\MockObject $access */ + /** @var Access&MockObject $access */ $access = $this->createMock(Access::class); return [new Wizard($conf, $lw, $access), $conf, $lw, $access]; } - private function prepareLdapWrapperForConnections(MockObject &$ldap) { + private function prepareLdapWrapperForConnections(MockObject $ldap) { $ldap->expects($this->once()) ->method('connect') //dummy value @@ -346,7 +343,7 @@ class WizardTest extends TestCase { }); $result = $wizard->detectEmailAttribute(); - $this->assertSame(false, $result->hasChanges()); + $this->assertFalse($result->hasChanges()); } public function testCumulativeSearchOnAttributeSkipReadDN(): void { @@ -423,7 +420,7 @@ class WizardTest extends TestCase { // The following expectations are the real test $filters = ['f1', 'f2', '*']; $resultArray = $wizard->cumulativeSearchOnAttribute($filters, 'cn', 0); - $this->assertSame(6, count($resultArray)); + $this->assertCount(6, $resultArray); unset($mark); } } |