# SOME DESCRIPTIVE TITLE. # Copyright (C) 2024, Yaal Coop # This file is distributed under the same license as the canaille package. # FIRST AUTHOR , 2024. # msgid "" msgstr "" "Project-Id-Version: canaille 0.0.56\n" "Report-Msgid-Bugs-To: contact@yaal.coop\n" "POT-Creation-Date: 2024-12-11 17:35+0100\n" "PO-Revision-Date: 2024-12-12 08:58+0000\n" "Last-Translator: Éloi Rivard \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.9-dev\n" "Generated-By: Babel 2.16.0\n" #: ../development/changelog.rst:2 939119e221dc48ccadef61738f593f75 msgid "Release notes" msgstr "Notes de version" #: ../development/changelog.rst:4 5c86e0ddf13b4a11afae719b4a8c4213 msgid "All notable changes to this project will be documented in there." msgstr "Tous les changements notables du projet seront documentés ici." #: ../development/changelog.rst:6 61e5050f997c46568da55c6829f11531 msgid "" "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." msgstr "" "Le format est basé sur `Keep a Changelog `_, et ce projet adhère à la politique de `versionnage sémantique " "`_." #: ../../CHANGES.rst:2 206f6798b58b44e9ade1689d820c7552 msgid "[0.0.57] - Unreleased" msgstr "[0.0.57] - Inédit" #: ../../CHANGES.rst:5 ../../CHANGES.rst:33 ../../CHANGES.rst:61 #: ../../CHANGES.rst:80 ../../CHANGES.rst:87 ../../CHANGES.rst:106 #: ../../CHANGES.rst:166 ../../CHANGES.rst:192 ../../CHANGES.rst:207 #: ../../CHANGES.rst:256 ../../CHANGES.rst:282 ../../CHANGES.rst:301 #: ../../CHANGES.rst:309 ../../CHANGES.rst:318 ../../CHANGES.rst:344 #: ../../CHANGES.rst:379 ../../CHANGES.rst:405 ../../CHANGES.rst:454 #: ../../CHANGES.rst:482 ../../CHANGES.rst:512 ../../CHANGES.rst:568 #: ../../CHANGES.rst:601 ../../CHANGES.rst:622 ../../CHANGES.rst:632 #: ../../CHANGES.rst:655 ../../CHANGES.rst:722 ../../CHANGES.rst:760 #: ../../CHANGES.rst:777 ../../CHANGES.rst:813 5b2ae28202d249e39370b51c82a35bda #: a10a871fc6ea42e8a52a1aa323001a53 msgid "Added" msgstr "Ajouté" #: ../../CHANGES.rst:6 0952593cb9c24691baaf0bbbeafbefd0 msgid "Multi-factor authentication :issue:`47`" msgstr "Authentification multi-facteurs :issue:`47`" #: ../../CHANGES.rst:7 4eaf987f0daa4715826a62f691583866 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD` and :attr:" "`~canaille.core.configuration.CoreSettings.EMAIL_OTP` and :attr:`~canaille." "core.configuration.CoreSettings.SMS_OTP` and :attr:`~canaille.core." "configuration.CoreSettings.SMPP` :issue:`47`" msgstr "" ":attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD` et " ":attr:`~canaille.core.configuration.CoreSettings.MAIL_OTP` et " ":attr:`~canaille.core.configuration.CoreSettings.SMPP` :issue:`47`" #: ../../CHANGES.rst:12 ba76f44c46d54198af2dcd0692442ce2 msgid "Password compromission check :issue:`179`" msgstr "Vérification de la compromission des mots de passe :issue:`179`" #: ../../CHANGES.rst:13 4eaf987f0daa4715826a62f691583866 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:" "`~canaille.core.configuration.CoreSettings." "ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration." "CoreSettings.API_URL_HIBP` :issue:`179`" msgstr "" ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` et :attr:" "`~canaille.core.configuration.CoreSettings." "ENABLE_PASSWORD_COMPROMISSION_CHECK` et :attr:`~canaille.core.configuration." "CoreSettings.API_URL_HIBP` :issue:`179`" #: ../../CHANGES.rst:17 c3938df1d7fc47aa9e9e686b32366a0a msgid "Implement OIDC client_credentials flow. :issue:`207`" msgstr "Implémentation du flux OIDC `client_credentials`. :issue:`207`" #: ../../CHANGES.rst:18 7412b825ef54497db43d6f157d46fb6b msgid "Button in the client admin page to create client tokens." msgstr "Bouton de création de jetons sur la page d’administration des clients." #: ../../CHANGES.rst:21 ../../CHANGES.rst:41 ../../CHANGES.rst:54 #: ../../CHANGES.rst:66 ../../CHANGES.rst:91 ../../CHANGES.rst:99 #: ../../CHANGES.rst:147 ../../CHANGES.rst:173 ../../CHANGES.rst:225 #: ../../CHANGES.rst:262 ../../CHANGES.rst:331 ../../CHANGES.rst:349 #: ../../CHANGES.rst:387 ../../CHANGES.rst:426 ../../CHANGES.rst:461 #: ../../CHANGES.rst:504 ../../CHANGES.rst:608 ../../CHANGES.rst:662 #: ../../CHANGES.rst:694 ../../CHANGES.rst:708 51ebea9760e04f049db58a8d1e2fdd09 #: f16b19d1f00741a9a6ac39eca0c46f63 msgid "Changed" msgstr "Modifié" #: ../../CHANGES.rst:22 5085714dd09e40dcbf2540a73162985c msgid "" "PostgreSQL and MySQL extras does not rely on libraries that need to be " "compiled." msgstr "" "Les extras PostgreSQL et MySQL ne dépendent plus de bibliothèques qui " "doivent être compilées." #: ../../CHANGES.rst:23 9108b999fecf4abf910d338c13fd0fc0 msgid "" "``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be " "passed so ``.env`` files are loaded." msgstr "" "Les fichiers ``.env`` ne sont pas chargés par défaut. La variable " "d'environnement ``ENV_FILE`` doit être passé pour que les fichiers ``.env`` " "soient chargées." #: ../../CHANGES.rst:26 56edbd9989cf41c4b9b58dfd5e108991 msgid "[0.0.56] - 2024-11-07" msgstr "[0.0.56] - 2024-11-07" #: ../../CHANGES.rst:29 ../../CHANGES.rst:71 ../../CHANGES.rst:110 #: ../../CHANGES.rst:118 ../../CHANGES.rst:126 ../../CHANGES.rst:133 #: ../../CHANGES.rst:140 ../../CHANGES.rst:154 ../../CHANGES.rst:184 #: ../../CHANGES.rst:197 ../../CHANGES.rst:215 ../../CHANGES.rst:234 #: ../../CHANGES.rst:242 ../../CHANGES.rst:268 ../../CHANGES.rst:276 #: ../../CHANGES.rst:296 ../../CHANGES.rst:326 ../../CHANGES.rst:358 #: ../../CHANGES.rst:366 ../../CHANGES.rst:392 ../../CHANGES.rst:412 #: ../../CHANGES.rst:436 ../../CHANGES.rst:446 ../../CHANGES.rst:467 #: ../../CHANGES.rst:475 ../../CHANGES.rst:498 ../../CHANGES.rst:521 #: ../../CHANGES.rst:533 ../../CHANGES.rst:542 ../../CHANGES.rst:551 #: ../../CHANGES.rst:560 ../../CHANGES.rst:580 ../../CHANGES.rst:587 #: ../../CHANGES.rst:637 ../../CHANGES.rst:645 ../../CHANGES.rst:670 #: ../../CHANGES.rst:678 ../../CHANGES.rst:686 ../../CHANGES.rst:699 #: ../../CHANGES.rst:713 ../../CHANGES.rst:745 ../../CHANGES.rst:768 #: ../../CHANGES.rst:799 ada79906de064c77a4cff6eda5238016 msgid "Fixed" msgstr "Corrigé" #: ../../CHANGES.rst:30 3d50d62c605c4973956375e2229be4f1 msgid "" "With LDAP backend, updating another user groups could result in a permission " "lost for the editor. :issue:`202`" msgstr "" "Avec la base de données LDAP, la mise à jour des groupes d’utilisateurs " "pouvait engendrer une perte de permissions de l’éditeur. :issue:`202`" #: ../../CHANGES.rst:34 ce5db69d7e134a938f544bc4c14c2dbc msgid "" ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :" "attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` " "configuration options :issue:`174`" msgstr "" "Options de configuration :attr:`~canaille.core.configuration.CoreSettings." "MAX_PASSWORD_LENGHT` et :attr:`~canaille.core.configuration.CoreSettings." "MIN_PASSWORD_LENGHT` :issue:`174`" #: ../../CHANGES.rst:36 0952593cb9c24691baaf0bbbeafbefd0 msgid "Password strength visual indicator. :issue:`174`" msgstr "Indicateur visuel de la force des mots de passe :issue:`174`" #: ../../CHANGES.rst:37 34660cc568ac402485a0ae2a226c3ed9 msgid "Security events logs. :issue:`177`" msgstr "Journalisation des évènements de sécurité. :issue:`177`" #: ../../CHANGES.rst:38 74390b590e9e4714bff818c8d9d95630 msgid "Support for Python 3.13. :pr:`186`" msgstr "Support de Python 3.13. :pr:`186`" #: ../../CHANGES.rst:42 962e298f8c7c44a8b3b0f450eb596537 msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "Mise à jour vers HTMX 2.0.3. :pr:`184`" #: ../../CHANGES.rst:43 ab78bee0981041d3ade7f68673ab3f12 msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`" msgstr "" "Migration de poetry à uv comme outil de gestion de projet Python. :pr:`187`" #: ../../CHANGES.rst:44 7cb284d8934d4df7b96b3d995f0ae69a msgid "" "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` " "and ``mysql``." msgstr "" "L’extra de paquet ``sql`` a été divisé en ``sqlite``, ``postgresql`` et " "``mysql``." #: ../../CHANGES.rst:47 ../../CHANGES.rst:397 ../../CHANGES.rst:805 #: 06fd8459f24443f5bc2dd961a2174774 msgid "Removed" msgstr "Supprimé" #: ../../CHANGES.rst:48 7dbb1818231144988378efbcc14e0335 msgid "End support for Python 3.9. :pr:`179`" msgstr "Fin de support pour Python 3.9. :pr:`179`" #: ../../CHANGES.rst:51 bb731fcd74024f44b0b679df8fd1de3b msgid "[0.0.55] - 2024-08-30" msgstr "[0.0.55] - 2024-08-30" #: ../../CHANGES.rst:55 e3f7e5b1ec3d471bbaad41ad6afbd38e msgid "Use poetry-core build backend. :pr:`178`" msgstr "" "Utilisation de `poetry-core` comme outil de construction de paquets. :pr:" "`178`" #: ../../CHANGES.rst:58 97d86f7b7b6d4df3a78b00068c114b55 msgid "[0.0.54] - 2024-07-25" msgstr "[0.0.54] - 2024-07-25" #: ../../CHANGES.rst:62 0f6a7830c88b4121b1141a68853d36fd msgid "" "Group member removal can be achieved from the group edition page. :issue:" "`192`" msgstr "" "La suppression des membres de groupes peut être effectuée depuis la page " "d’édition des groupes. :issue:`192`" #: ../../CHANGES.rst:63 761788b232b74eb089dd20c1a57bcf2a msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "Commande de gestion des modèles. :issue:`117` :issue:`54`" #: ../../CHANGES.rst:67 1e28ba0fab8947bfbb7b10fc9dfca645 msgid "Model `identifier_attributes` are fixed." msgstr "L’attribut `identifier_attributes` des models est fixe." #: ../../CHANGES.rst:68 72287f1ba34c4cc8b2cf0b4af47bbd53 msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "Mise-à-jour vers `HTMX` 1.9.12. :pr:`172`" #: ../../CHANGES.rst:73 72071aa06de847d29dcd9500881409d0 msgid "Dark theme colors for better readability." msgstr "Couleurs des champs dans le thème sombre." #: ../../CHANGES.rst:74 600f70e2aecd4eba9ddee16500df48db msgid "" "Crash for passwordless users at login when no SMTP server was configured." msgstr "" "Erreur lorsque les utilisateurs sans mots de passe lorsqu’aucun serveur SMTP " "n’a été configuré." #: ../../CHANGES.rst:77 09953502ecec43198af93b4c10d5dc3e msgid "[0.0.53] - 2024-04-22" msgstr "[0.0.53] - 2024-04-22" #: ../../CHANGES.rst:81 4627291987094c60b1acc76d520719b4 msgid "" "`env_prefix` :meth:`~canaille.create_app` variable can select the " "environment var prefix." msgstr "" "La variable `env_prefix`de la méthode :meth:`~canaille.create_app` permet de " "choisir le préfixe des variables d’environnement." #: ../../CHANGES.rst:84 f21535ae9e6643708c8459143e861870 msgid "[0.0.52] - 2024-04-22" msgstr "[0.0.52] - 2024-04-22" #: ../../CHANGES.rst:88 c9c3eb7bdd894b96b0adf60e33691fd4 msgid "`env_file` create_app variable can customize/disable the .env file." msgstr "" "La variable `env_file` de la méthode `create_app` permet de désactiver ou " "personnaliser le fichier `.env`." #: ../../CHANGES.rst:92 7cda9bf8a22540d0b3233546e130847f msgid "Locked users cannot be impersonated anymore." msgstr "Les comptes verrouillés ne peuvent plus être incarnés." #: ../../CHANGES.rst:93 965223cd352948c8a77f1b4ce2b50ce4 msgid "Minimum Python requirement is 3.9." msgstr "La version minimum requise de Python est 3.9." #: ../../CHANGES.rst:96 de227140ea8e4d629ffd4189dbd43460 msgid "[0.0.51] - 2024-04-09" msgstr "[0.0.51] - 2024-04-09" #: ../../CHANGES.rst:100 79f55debd9964020a684739fd256ef14 msgid "Display the menu bar on error pages." msgstr "Affichage de la barre de menu sur les pages d’erreur." #: ../../CHANGES.rst:103 27a5f8ea8faa41deaf71ae8564fd43a5 msgid "[0.0.50] - 2024-04-09" msgstr "[0.0.50] - 2024-04-09" #: ../../CHANGES.rst:107 8d78dcd06ac84e7d9075dbb55d08b68c msgid "Sign in/out events are logged in. :issue:`177`" msgstr "" "Journalisation des évènements de connexion et déconnexion. :issue:`177`" #: ../../CHANGES.rst:111 f54c1f04263c4f19bf7c01a9e9fb1533 msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "Paramètres de configuration `HTMX` et `JAVASCRIPT`." #: ../../CHANGES.rst:112 aac9f0d6bc274a6998bed8663e581445 msgid "Compatibility with old sessions IDs." msgstr "Compatibilité avec les anciens identifiants de session." #: ../../CHANGES.rst:115 6c309d659a9d4b00897c0c86136117f2 msgid "[0.0.49] - 2024-04-08" msgstr "[0.0.49] - 2024-04-08" #: ../../CHANGES.rst:119 e40c5385bf174d4dbdeb1e6c8f2bbca9 msgid "LDAP user group removal." msgstr "Suppression des groupes d’utilisateurs avec LDAP." #: ../../CHANGES.rst:120 db426dd917e9449ea1571f6d90fb59cb msgid "" "Display an error message when trying to remove the last user from a group." msgstr "" "Affichage d’un message d’erreur lors de tentatives de suppression du dernier " "utilisateur d’un groupe." #: ../../CHANGES.rst:123 aa9c1e96a9d84eb388b2ad22b0b9fa86 msgid "[0.0.48] - 2024-04-08" msgstr "[0.0.48] - 2024-04-08" #: ../../CHANGES.rst:127 3bbde6f2fc244902955a6b16a1d9bdc6 msgid "LDAP ``objectClass`` guessing exception." msgstr "Exception lors de la détection des classes d’objet LDAP." #: ../../CHANGES.rst:130 f55a477d72624ef691e7a783940c3208 msgid "[0.0.47] - 2024-04-08" msgstr "[0.0.47] - 2024-04-08" #: ../../CHANGES.rst:134 aa6227db351548d1a883af36de508805 msgid "Lazy permission loading exception." msgstr "Exception lors du chargement paresseux des permissions." #: ../../CHANGES.rst:137 665fb2129c5f4c498a9eca30a7625d69 msgid "[0.0.46] - 2024-04-08" msgstr "[0.0.46] - 2024-04-08" #: ../../CHANGES.rst:141 a736243f81d845d5a13e66303db4632d msgid "" "Saving an object with the LDAP backend keeps the ``objectClass`` un-managed " "by Canaille. :pr:`171`" msgstr "" "La sauvegarde des objets avec LDAP garde les valeurs de ``objectClass`` non " "gérés par Canaille. :pr:`171`" #: ../../CHANGES.rst:144 23d50243f242497eafeb43190b191910 msgid "[0.0.45] - 2024-04-04" msgstr "[0.0.45] - 2024-04-04" #: ../../CHANGES.rst:148 8ca38c12afde4e1d881f0f631dee2180 msgid "" "Internal indexation mechanism of :class:`~canaille.backends.memory.model." "MemoryModel`." msgstr "" "Mécanisme d’indexation interne de :class:`~canaille.backends.memory.model." "MemoryModel`." #: ../../CHANGES.rst:151 0ec8aaff2a864d52beaead02de313d2f msgid "[0.0.44] - 2024-03-29" msgstr "[0.0.44] - 2024-03-29" #: ../../CHANGES.rst:155 23af820d08664c0dbf3229567505e6a9 msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "Correction de la valeur par défaut de ``USER_FILTER`` pour LDAP." #: ../../CHANGES.rst:156 695d4f4fe29a4f07960244b87ee1db21 msgid "Fix the OIDC feature detection." msgstr "Correction de la détection de la fonctionnalité OIDC." #: ../../CHANGES.rst:159 e7f1b082e81e4486b09fc76512e49dc5 msgid "[0.0.43] - 2024-03-29" msgstr "[0.0.43] - 2024-03-29" #: ../../CHANGES.rst:163 ../../CHANGES.rst:422 5cd7f27a291e46298c9a3aa6ee0e5cf0 msgid "Configuration files must be updated." msgstr "Les fichiers de configuration doivent être mis à jour." #: ../../CHANGES.rst:168 d7d284cc9b424ec69d5240b428964d52 msgid "Add ``created`` and ``last_modified`` datetime for all models." msgstr "" "Ajout des dates ``created`` et ``last_modified`` pour tous les modèles." #: ../../CHANGES.rst:169 19050fc882664743866b11a49ca7e398 msgid "Sitemap to the documentation. :pr:`169`" msgstr "Cartographie de la documentation. :pr:`169" #: ../../CHANGES.rst:170 bd7c56451cfa479fb3b8d19275045b6e msgid "" "Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`" msgstr "" "Gestion des paramètres de configuration avec `pydantic-settings`. :issue:" "`138` :pr:`170`" #: ../../CHANGES.rst:175 d3e65f7666664d4f8ca54f02bf597c71 msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`" msgstr "" "Utilisation de la configuration de journalisation par défaut de Python. :" "issue:`188` :pr:`165`" #: ../../CHANGES.rst:176 ae5e4441862443b9aac1e26cf19a8908 msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "Mise à jour vers ``HTMX`` 1.9.11. :pr:`166`" #: ../../CHANGES.rst:177 e487c2a78a354c6e85ec43fda9f59c4d msgid "" "Use the standard tomllib Python module instead of `toml` starting from " "Python 3.11. :pr:`167`" msgstr "" "Utilisation du module Python standard `tomllib` à la place de `toml` à " "partir de Python 3.11. :pr:`167`" #: ../../CHANGES.rst:178 e80e66bd46e14c0fae82950444ba043b msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "Utilisation du thème de documentation `shibuya`. :pr:`168`" #: ../../CHANGES.rst:181 0eb0c4eec73848d283d54626e8538c61 msgid "[0.0.42] - 2023-12-29" msgstr "[0.0.42] - 2023-12-29" #: ../../CHANGES.rst:186 8e57897d767b4603a54db28c97416ee8 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" "Correction d’une erreur d’import lorsque ``cryptography`` était manquant." #: ../../CHANGES.rst:189 f4ff69324e6e4a24b2f5aabf9ee71655 msgid "[0.0.41] - 2023-12-25" msgstr "[0.0.41] - 2023-12-25" #: ../../CHANGES.rst:194 39dd9ec6c6c2415fa90973a715a08d9f msgid "" "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:" "`185` :pr:`164`" msgstr "" "Support pour la valeur ``create`` du paramètre ``prompt`` d’OIDC. :issue:" "`185` :pr:`164`" #: ../../CHANGES.rst:199 7d59a023c9bc4a9b94f4339112602d32 msgid "" "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during " "OIDC dynamic registration." msgstr "" "Configuration correcte de l’:attr:`~canaille.oidc.basemodels.Client." "audience` durant l’enregistrement dynamique OIDC." #: ../../CHANGES.rst:200 1e194b3a94034c65936a18174d1078c5 msgid "" "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." msgstr "" "``post_logout_redirect_uris`` était ignoré durant l’enregistrement dynamique " "OIDC." #: ../../CHANGES.rst:201 d9f10cf1c5b3401d95f461f57dbfbece msgid "Group field error prevented the registration form validation." msgstr "" "Une erreur sur le champ `groupe` empêchait la validation du formulaire " "d’enregistrement." #: ../../CHANGES.rst:204 6653ebc2588a4ad8989581ca1060f1d9 msgid "[0.0.40] - 2023-12-22" msgstr "[0.0.40] - 2023-12-22" #: ../../CHANGES.rst:209 1eb728d8f35e4e57bd9b4284c7dd677b msgid "The ``THEME`` setting can be a relative path." msgstr "Le paramètre de configuration ``THEME`` peut être un chemin relatif." #: ../../CHANGES.rst:212 37f2ef92582741e2985bab37fb6495df msgid "[0.0.39] - 2023-12-15" msgstr "[0.0.39] - 2023-12-15" #: ../../CHANGES.rst:217 b46f180dbba54aafb438013586a4100f msgid "Crash when no ACL were defined." msgstr "Erreur lorsqu’aucun ACL n’était défini." #: ../../CHANGES.rst:218 958f8c3ecc57438e835053b3a7d87721 msgid "OIDC Userinfo endpoint is also available in POST." msgstr "" "Le point de terminaison OIDC `Userinfo` est aussi disponible avec la méthode " "POST." #: ../../CHANGES.rst:219 c37693d772f44c64b03f3baee793c0a1 msgid "Fix redirection after password reset. :issue:`159`" msgstr "" "Correction de la redirection après réinitialisation du mot de passe. :issue:" "`159`" #: ../../CHANGES.rst:222 9f0b57bb752141079ef51cc0833d3597 msgid "[0.0.38] - 2023-12-15" msgstr "[0.0.38] - 2023-12-15" #: ../../CHANGES.rst:227 b208dfe943e64175906f965703dc33dd msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "Conversion de toutes les images `PNG` en `Webp`. :pr:`162`" #: ../../CHANGES.rst:228 3827e636cee240479b1fcedbc86bdfde msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "Mise à jour vers Flask 3. :issue:`161` :pr:`163`" #: ../../CHANGES.rst:231 acb7a5113f214b84b7f8fd21b48e22de msgid "[0.0.37] - 2023-12-01" msgstr "[0.0.37] - 2023-12-01" #: ../../CHANGES.rst:236 a22ebfb72b3d4c8c8285d99f4a18ed88 msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`" msgstr "" "Gestion des codes d’erreur 4xx et 5xx avec `HTMX`. :issue:`171` :pr:`161`" #: ../../CHANGES.rst:239 5033ceb76b61492896a738cbabdf0e1a msgid "[0.0.36] - 2023-12-01" msgstr "[0.0.36] - 2023-12-01" #: ../../CHANGES.rst:244 df785fb08515480b8205eb8d521d699b msgid "Avoid crashing when LDAP groups references unexisting users." msgstr "" "Correction d’une erreur avec LDAP lorsque des groupes référencent des " "utilisateurs inexistants." #: ../../CHANGES.rst:245 e24d3cf2b5344f3196d44717249eeac9 msgid "" "Password reset and initialization mails were only sent to the preferred user " "email address." msgstr "" "Les courriels d’initialisation et de réinitialisation de mots de passe " "n’étaient envoyés qu’à l’adresse préférée des utilisateurs." #: ../../CHANGES.rst:247 279eb5763cb9437e98472ba23ef09cb9 msgid "" "Password reset and initialization mails were not sent at all the user " "addresses if one email address could not be reached." msgstr "" "Les courriels d’initialisation et de réinitialisation de mots de passe " "n’étaient pas tous envoyés si l’un des envois échouait." #: ../../CHANGES.rst:249 8dbbbb93c0d9468db5756b74091a0346 msgid "Password comparison was too permissive on login." msgstr "La comparaison des mots de passe était trop permissive à la connexion." #: ../../CHANGES.rst:250 2d5c6dab823a45df94ab7061b78fa140 msgid "Encrypt passwords in the SQL backend." msgstr "Chiffrement des mots de passe dans la base de données SQL." #: ../../CHANGES.rst:253 09acf9167bb14934ac3e4b763914df5c msgid "[0.0.35] - 2023-11-25" msgstr "[0.0.35] - 2023-11-25" #: ../../CHANGES.rst:258 b616ae34c6084446b826cbb4bea285ce msgid "" "Refresh token grant supports other client authentication methods. :pr:`157`" msgstr "" "Support de méthodes d’authentifications additionnels pour les jetons de " "rafraîchissement. :pr:`157`" #: ../../CHANGES.rst:259 5e0cc8d4b2f9482cb0dd7d15578824ca msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" msgstr "" "Support des bases de données SQL avec SQLAlchemy. :issue:`30` :pr:`158`" #: ../../CHANGES.rst:264 1379d1aee7ee46fca1a78b6015f8d450 msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" msgstr "" "La cardinalité des attributs des modèles est un peu plus ressemblante à " "celle des attributs de modèles SCIM. :pr:`155`" #: ../../CHANGES.rst:265 08f54a2189ba47dbb2e65e442181d6fd msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "Mise à jour vers `HTMX` 1.9.9. :pr:`159`" #: ../../CHANGES.rst:270 001465c19ae140678ce9a78eb0ae7ff5 msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`" msgstr "" "Désactivation de `HTMX` pendant la phase d’identification OIDC. :pr:`160`" #: ../../CHANGES.rst:273 e063fae1c9984dc0af421058e9bfb500 msgid "[0.0.34] - 2023-10-02" msgstr "[0.0.34] - 2023-10-02" #: ../../CHANGES.rst:278 3aadd82912d6401f8fddc3655ad594b9 msgid "" "Canaille installations without account lockabilty could not delete users. :" "pr:`153`" msgstr "" "Les installations de Canaille n’ayant pas la fonctionnalité de verrouillage " "des comptes ne pouvaient pas supprimer des utilisateurs. :pr:`153`" #: ../../CHANGES.rst:284 52c2946196324ed2bfacac3fb518a6a1 msgid "" "If users register or authenticate during a OAuth Authorization phase, they " "get redirected back to that page afterwards. :issue:`168` :pr:`151`" msgstr "" "Si les utilisateurs s’enregistrent durant la phase d’authentification OAuth, " "ils sont ensuite redirigés vers la page dont ils viennent. :issue:`168` :pr:" "`151`" #: ../../CHANGES.rst:287 e0bb3561373b4651b98fcc1df2e5db94 msgid "" "The `flask-babel` and `pytz` libraries are now part of the `front` packaging " "extras." msgstr "" "Les bibliothèques `flask-babel` et `pytz` font désormais partie de l’extra " "d'empaquetage `front`." #: ../../CHANGES.rst:288 9cc1748f2a624399ae9983904d6765fc msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "Mise à jour vers `fomantic-ui` 2.9.3. :pr:`152`" #: ../../CHANGES.rst:289 ec7e3985dc034f43bc0e2411086928e7 msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "Mise à jour vers `HTMX` 1.9.6. :pr:`154`" #: ../../CHANGES.rst:290 768b97eabcb04396a1c3f7e3691c3ed2 msgid "Support for Python 3.12. :pr:`155`" msgstr "Support de Python 3.12 :pr:`155`" #: ../../CHANGES.rst:293 4664970b84d545e18a553f8191bc6e8b msgid "[0.0.33] - 2023-08-26" msgstr "[0.0.33] - 2023-08-26" #: ../../CHANGES.rst:298 3456a02cbd894fccb45ffc1108226c5a msgid "OIDC jwks endpoint do not return empty `kid` claim." msgstr "" "Le point de terminaison OIDC jwks ne retourne plus le paramètre `kid` " "lorsqu’il est vide." #: ../../CHANGES.rst:303 fd6c83b8455f4402b82ffe670e6c83c1 msgid "Documentation details on the Canaille models." msgstr "Documentation des modèles de Canaille." #: ../../CHANGES.rst:306 1f3135eb404e412787af9b4f971ea523 msgid "[0.0.32] - 2023-08-17" msgstr "[0.0.32] - 2023-08-17" #: ../../CHANGES.rst:311 fe7a0cb646094a3d9b2428f7b7d2f3d4 msgid "Additional inmemory backend. :issue:`30` :pr:`149`" msgstr "" "Implémentation d’un connecteur de base de données en mémoire. :issue:`30` :" "pr:`149`" #: ../../CHANGES.rst:312 82523d1da67a46089ffd899f134486dd msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "Définition de dépendances `extra`. :issue:`167` :pr:`150`" #: ../../CHANGES.rst:315 9b5b3399c9fd4f3bbc8e152ee37e7910 msgid "[0.0.31] - 2023-08-15" msgstr "[0.0.31] - 2023-08-15" #: ../../CHANGES.rst:320 b2ebe664d67047a5882a33ac5c75875b msgid "" "Configuration option to disable the forced usage of OIDC `nonce` parameter. :" "pr:`143`" msgstr "" "Option de configuration pour désactiver l’utilisation du paramètre OIDC " "`nonce`. :pr:`143`" #: ../../CHANGES.rst:321 463b404944d9465fa6a17d3d3c0ea106 msgid "Validate phone numbers with a regex. :pr:`146`" msgstr "" "Validation des numéros de téléphone avec des expressions régulières. :pr:" "`146`" #: ../../CHANGES.rst:322 0effe02b658f49698ab59c14e9103fbe msgid "Email verification. :issue:`41` :pr:`147`" msgstr "Vérification des adresses email. :issue:`41`:pr:`147`" #: ../../CHANGES.rst:323 ca5e445840644c90980662464ea67abc msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "Enregistrement de comptes utilisateur. :issue:`55` :pr:`133` :pr:`148`" #: ../../CHANGES.rst:328 3792c9999c5a44c892129bce1c222552 msgid "The `check` command uses the default configuration values." msgstr "La commande `check` utilise les valeurs de configuration par défaut." #: ../../CHANGES.rst:333 6e0b77065c024ebb96f30998294a3b8d msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`" msgstr "" "Les fenêtres modales ne nécessitent plus l’utilisation de Javascript. :issue:" "`158` :pr:`144`" #: ../../CHANGES.rst:336 e513ff9194cb493fb3273e811b5b96d0 msgid "[0.0.30] - 2023-07-06" msgstr "[0.0.30] - 2023-07-06" #: ../../CHANGES.rst:340 7bd32f1cc1c24ce9a6a7a4f3d7fd6024 msgid "" "Configuration files must be updated. Check the new format with ``git diff " "0.0.29 0.0.30 canaille/conf/config.sample.toml``" msgstr "" "Les fichiers de configuration doivent être mis à jour. Vérifiez le nouveau " "format avec ``git diff 0.0.29 0.0.30 canaille/conf/config.sample.toml``" #: ../../CHANGES.rst:346 a3f5487d18624886a2adee2c28346eae msgid "Configuration option to disable Javascript. :pr:`141`" msgstr "Option de configuration pour désactiver Javascript. :pr:`141" #: ../../CHANGES.rst:351 e6ab42f3565b415f85d7778e5ac18966 msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja." msgstr "Le paramètre de configuration ``USER_FILTER`` est analysé avec Jinja." #: ../../CHANGES.rst:352 de4e44a5b6324f389effc64a28a69c5d msgid "" "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " "``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``." msgstr "" "La configuration utilise ``PRIVATE_KEY_FILE`` à la place de ``PRIVATE_KEY`` " "et ``PUBLIC_KEY_FILE`` à la place de ``PUBLIC_KEY``." #: ../../CHANGES.rst:355 812f9e5828dd4912bc832214d5ae721d msgid "[0.0.29] - 2023-06-30" msgstr "[0.0.29] - 2023-06-30" #: ../../CHANGES.rst:360 81bf1e1132f44c5399805dc865372873 msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors." msgstr "" "Désactivation d’`HTMX` sur les formulaires OIDC pour éviter des erreurs lors " "des redirections." #: ../../CHANGES.rst:363 0b442eaa0f7f44919f3793aac59d4b4d msgid "[0.0.28] - 2023-06-30" msgstr "[0.0.28] - 2023-06-30" #: ../../CHANGES.rst:368 3b645ba8d22642f7ae36a9401a170414 msgid "A template variable was misnamed." msgstr "Une variable de template était mal nommée." #: ../../CHANGES.rst:371 1c8d7269601c4cbf8c6952063000a5f1 msgid "[0.0.27] - 2023-06-29" msgstr "[0.0.27] - 2023-06-29" #: ../../CHANGES.rst:375 3082667648f14f86a48ba1f4c71c6bf1 msgid "" "Configuration files must be updated. Check the new format with ``git diff " "0.0.26 0.0.27 canaille/conf/config.sample.toml``" msgstr "" "Les fichiers de configuration doivent être mis à jour. Vérifiez le nouveau " "format avec ``git diff 0.0.26 0.0.27 canaille/conf/config.sample.toml``" #: ../../CHANGES.rst:381 d37a0bf60d6a407094dca1df32907bc3 msgid "" "Configuration entries can be loaded from files if the entry key has a " "*_FILE* suffix and the entry value is the path to the file. :issue:`134` :pr:" "`134`" msgstr "" "Les paramètres de configuration peuvent être lus à partir de fichiers si le " "paramètre a un suffixe *_FILE* et que sa valeur correspond à un chemin de " "fichier. :issue:`134` :pr:`134`" #: ../../CHANGES.rst:383 b198cedfd2dc4b1ca5caffb7281b2b77 msgid "Field list support. :issue:`115` :pr:`136`" msgstr "Support pour les listes de champ. :issue:`115` :pr:`136`" #: ../../CHANGES.rst:384 bda5916225d046aa92eee4df020d31d7 msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`" msgstr "" "Les pages sont boostées avec `HTMX`. :issue:`144` :issue:`145` :pr:`137`" #: ../../CHANGES.rst:389 f0103671112e414da54f464537b92886 msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "Mise à jour vers jquery 3.7.0. :pr:`138`" #: ../../CHANGES.rst:394 a3de7cd9d0b74333bbe2252c30b27d24 msgid "" "Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`" msgstr "" "L’édition des profils utilisateurs lorsque le RDN n’était pas ``uid`. :issue:" "`148` :pr:`139`" #: ../../CHANGES.rst:399 a8ee95c286e44ee190211fc2e7792b41 msgid "Stop support for Python 3.7. :pr:`131`" msgstr "Arrêt du support pour Python 3.7. :pr:`131`" #: ../../CHANGES.rst:402 031ef0bde1a142fda5313115f399b305 msgid "[0.0.26] - 2023-06-03" msgstr "[0.0.26] - 2023-06-03" #: ../../CHANGES.rst:407 8cd815265cd245d8ae32992c885e4c63 msgid "" "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " "OpenLDAP 2.5+. :issue:`13` :pr:`118`" msgstr "" "Implémentation de l’expiration des comptes en se basant sur l’overlay " "OpenLDAP `ppolicy``. Nécessite au minimun OpenLDAP 2.5. :issue:`13` :pr:`118`" #: ../../CHANGES.rst:409 f7ab79e41d1c400fa0f5be534df749eb msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "Paramètre de configuration des fuseaux horaire. :issue:`137` :pr:`130`" #: ../../CHANGES.rst:414 01a6b5ffbd164e11a7d13c2a720b6230 msgid "Avoid setting ``None`` in JWT claims when they have no value." msgstr "" "Les paramètres du jeton d'accès ne sont pas ``None`` lorsqu'ils n’ont pas de " "valeur définie." #: ../../CHANGES.rst:415 1b9beda783b14033b13b34bb69dcf94e msgid "Display password recovery button on OIDC login page. :pr:`129`" msgstr "" "Affichage du bouton de réinitialisation de mots de passe sur la page de " "connexion OIDC. :pr:`129`" #: ../../CHANGES.rst:418 98f294fe9c78448e92a9340f14812660 msgid "[0.0.25] - 2023-05-05" msgstr "[0.0.25] - 2023-05-05" #: ../../CHANGES.rst:423 b9e80a38348a4fabb577d17c476ef787 msgid "" "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config." "sample.toml``" msgstr "" "Vérifiez le nouveau format avec ``git diff 0.0.25 0.0.24 canaille/conf/" "config.sample.toml``" #: ../../CHANGES.rst:428 d72e485b1606403e895166193d518a26 msgid "" "Renamed user model attributes to match SCIM naming convention. :pr:`123`" msgstr "" "Renommage des modèles d’attributs d’'utilisateurs en suivant la convention " "SCIM. :pr:`123`" #: ../../CHANGES.rst:429 f53dae9936ca4478b6575167779eb297 msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "Déplacement des paramètres de configuration OIDC dans ``OIDC``." #: ../../CHANGES.rst:430 c097b3593a1f42d882167cef3925368a msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" "Déplacement des paramètres de configuration ``LDAP`` dans ``BACKENDS.LDAP``." #: ../../CHANGES.rst:431 88b8faa16b314ab3bc05c8a24dc7432e msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "Mise à jour vers HTMX 1.9.0. :pr:`184`" #: ../../CHANGES.rst:432 391a6692f5de4897ac370fc253b7caf4 msgid "" "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" msgstr "" "Les filtres de permissions ne sont plus des filtres LDAP mais des " "associations de paramètres utilisateur. :pr:`125`" #: ../../CHANGES.rst:433 286baa01210c47ee8a9c71a8c51e72fb msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "Mise-à-jour vers `HTMX` 1.9.2. :pr:`127`" #: ../../CHANGES.rst:438 2f5e152512fe493c9e5f291f3dc47ca3 msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." msgstr "" "Le paramètre de configuration ``OIDC.JWT.MAPPING`` est réellement facultatif." #: ../../CHANGES.rst:439 646ffd29b1694f58a41036fec066e023 msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "Correction des attributs vides lors de l’enregistrement. :pr:`125`" #: ../../CHANGES.rst:440 8ef81a1e8e584cab90c6401a07c88b81 msgid "Password initialization mails were not correctly sent. :pr:`128`" msgstr "" "Les courriels d’initialisation de mot de passe n’étaient pas correctement " "envoyés. :pr:`128`" #: ../../CHANGES.rst:443 e9729b8de309453a862cb61a500d83a6 msgid "[0.0.24] - 2023-04-07" msgstr "[0.0.24] - 2023-04-07" #: ../../CHANGES.rst:448 e25900ea2cb9451f9def4f1230cf311b msgid "Fixed avatar update. :pr:`122`" msgstr "Correction de la mise à jour des avatars. :pr:`122`" #: ../../CHANGES.rst:451 6b0ff68eb4d048f9a87c723077b6a917 msgid "[0.0.23] - 2023-04-05" msgstr "[0.0.23] - 2023-04-05" #: ../../CHANGES.rst:456 45d12b8c7b044a6aa129a826cb589403 msgid "Organization field. :pr:`116`" msgstr "Champ `organization` :pr:`116`" #: ../../CHANGES.rst:457 7554a21c2da44a10ae7044507e7e8ef1 msgid "ETag and Last-Modified headers on user photos. :pr:`116`" msgstr "En-têtes `ETag` et `Last-Modified` sur les avatars. :pr:`116`" #: ../../CHANGES.rst:458 56e3c78c43bc4ebfb789357d53401f12 msgid "Dynamic form validation. :pr:`120`" msgstr "Validation dynamique des formulaires. :pr:`120`" #: ../../CHANGES.rst:463 eef201e52d6e487fb83b276678dcf6ad msgid "UX rework. Submenu addition. :pr:`114`" msgstr "Travaux sur l’interface utilisateur. Ajout de sous-menus. :pr:`114`" #: ../../CHANGES.rst:464 f6dfc94a3486418cb94ebe88c6078543 msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "Gestion correcte des fuseaux horaire des dates dans LDAP. :pr:`117`" #: ../../CHANGES.rst:469 c81b6adf5d6e40e8b0aeb2898e40c692 msgid "CSRF protection on every forms. :pr:`119`" msgstr "Protection CSRF sur tous les formulaires. :pr:`119`" #: ../../CHANGES.rst:472 41e5cc643b4e4c35b9d04ed3c6eba537 msgid "[0.0.22] - 2023-03-13" msgstr "[0.0.22] - 2023-03-13" #: ../../CHANGES.rst:476 e510bec507814d5387a49ba6117ef0a7 msgid "" "The `Faker` library is not imported anymore when the `clean` command is " "called." msgstr "" "La bibliothèque `Faker` n’est plus importée lorsque la commande `clean` est " "appelée." #: ../../CHANGES.rst:479 9af418bca29f4c169f5720ea8e14e9ac msgid "[0.0.21] - 2023-03-12" msgstr "[0.0.21] - 2023-03-12" #: ../../CHANGES.rst:484 6c81ccf5040343cebb06fe34cc66221e msgid "Display TOS and policy URI on the consent list page. :pr:`102`" msgstr "" "Affichage des liens vers les conditions d’utilisation sur la page de liste " "des consentements. :pr:`102`" #: ../../CHANGES.rst:485 4d19d14961744e028504787840181114 msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" "Suppression des jetons via l’interface administrateur. :pr:`100` :pr:`101`" #: ../../CHANGES.rst:486 cf00a4a47f2a4463a3cc06dd126d589d msgid "Revoked consents can be restored. :pr:`103`" msgstr "Les consentements révoqués peuvent être restaurés. :pr:`103`" #: ../../CHANGES.rst:487 06108983455940049911e3b8892f8735 msgid "" "Pre-consented clients are displayed in the user consent list, and their " "consents can be revoked. :issue:`69` :pr:`103`" msgstr "" "Les clients pré-autorisés apparaissent dans la liste de consentement des " "utilisateurs, et leur consentement peut être révoqué. :issue:`69` :pr:`103`" #: ../../CHANGES.rst:489 2f26c80f733b42f99df3af94c8774ad5 msgid "" "A ``populate`` command can be used to fill the database with random users " "generated with faker. :pr:`105`" msgstr "" "Implémentation d’une commande ``populate`` qui remplit la base de données " "avec des valeurs aléatoires générées avec la bibliothèque `Faker`. :pr:`105`" #: ../../CHANGES.rst:491 64049d3aa81141f3b29778b9f2f3d188 msgid "SMTP SSL support. :pr:`108`" msgstr "Support des connexions SMTP avec SSL. :pr:`108`" #: ../../CHANGES.rst:492 6f16cdf0ce864a20b13344f84e6dfefb msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "Pagination côté serveur. :issue:`114`:pr:`111`" #: ../../CHANGES.rst:493 7aeacbe0b4fa48c79db52ed0cf7229fd msgid "Department number support. :issue:`129`" msgstr "Support du champs de numéro de département. :issue:`129`" #: ../../CHANGES.rst:494 e5bb989cd1fe472cb845dfe3de958f55 msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`" msgstr "" "Support de l’édition de l’adresse (sans que cela apparaisse dans les " "paramètres du jeton OIDC). :pr:`112`" #: ../../CHANGES.rst:495 1140843546bf41dd826bf71bea29ff23 msgid "Title edition support. :pr:`113`" msgstr "Support de l’édition du paramètre `title`. :pr:`113`" #: ../../CHANGES.rst:500 d9bd3caa1f4f47ebb304efd457802ca1 msgid "" "Client deletion also deletes related :class:`~canaille.oidc.basemodels." "Consent`, :class:`~canaille.oidc.basemodels.Token` and :class:`~canaille." "oidc.basemodels.AuthorizationCode` objects. :issue:`126` :pr:`98`" msgstr "" "La suppression d’un client supprime aussi les objets des classes liées :" "class:`~canaille.oidc.basemodels.Consent`, :class:`~canaille.oidc.basemodels." "Token` et :class:`~canaille.oidc.basemodels.AuthorizationCode`. :issue:" "`126` :pr:`98`" #: ../../CHANGES.rst:506 ac1feaf507284b65bab96bc30457d263 msgid "Removed the `DataTables` Javascript library." msgstr "Suppression de la bibliothèque Javascript `Datatables`." #: ../../CHANGES.rst:509 d0d7087c87844d069df327a34667ef31 msgid "[0.0.20] - 2023-01-28" msgstr "[0.0.20] - 2023-01-28" #: ../../CHANGES.rst:514 6254c6b37dea417d908d7679fa0c2df5 msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "Traduction espagnole. :pr:`85` :pr:`88`" #: ../../CHANGES.rst:515 3a8a7c3e462e4388a29c87ea44bbca31 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "Test de connectivité. :pr:`89`" #: ../../CHANGES.rst:516 6c73a2cff39a4b8caacfca57f27ba60b msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "Mise à jour vers jquery 3.6.3. :pr:`90`" #: ../../CHANGES.rst:517 2a31509ad04a41d4a9ceab66e4447c61 msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "Mise à jour vers Fomantic-UI 2.9.1. :pr:`90`" #: ../../CHANGES.rst:518 1b8798a48e73416383644caadcb8c9d0 msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "Mise à jour vers DataTAbles 1.13.1. :pr:`90`" #: ../../CHANGES.rst:523 43bb3fea7c22470bb734e723ae6ec2dc msgid "Fix typos and grammar errors. :pr:`84`" msgstr "Correction de fautes de frappe et d’erreurs de grammaire. :pr:`84`" #: ../../CHANGES.rst:524 28f37a5212944339bb10de4c91b1555d msgid "Fix wording and punctuations. :pr:`86`" msgstr "Correction de formulations et de ponctuations. :pr:`86`" #: ../../CHANGES.rst:525 3511a582ca4d4dd5b57f04e945ff2615 msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "Correction de la balise HTML de langue. :issue:`122` :pr:`87`" #: ../../CHANGES.rst:526 227f6ecacee547eab969399f3543c1a9 msgid "Automatically trims the HTML translated strings. :pr:`91`" msgstr "" "Suppression automatique des espaces autour des chaîne de caractères à " "traduire. :pr:`91`" #: ../../CHANGES.rst:527 ce4262a979b34e588c4d99db8ec9fae6 msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" msgstr "" "Correction de la gestion du domaine de l’enregistrement dynamique. :issues:" "`123` :pr:`93`" #: ../../CHANGES.rst:530 3326dbb8be62452d8140320a39612093 msgid "[0.0.19] - 2023-01-14" msgstr "[0.0.19] - 2023-01-14" #: ../../CHANGES.rst:535 c15def45121b4d30ab4c57c640f5da6a msgid "" "Ensures the token `expires_in` claim and the `access_token` `exp` claim have " "the same value. :pr:`83`" msgstr "" "Le paramètre ``expires_in`` du flux d’autorisation et le paramètre ``exp``du " "jeton d’accès ont la même valeur. :pr:`83" #: ../../CHANGES.rst:539 2e2f24525dba4a819e97e6589907d0a5 msgid "[0.0.18] - 2022-12-28" msgstr "[0.0.18] - 2022-12-28" #: ../../CHANGES.rst:544 82745fec4b984965b3d0b81bed5a3941 msgid "" "OIDC end_session was not returning the ``state`` parameter in the " "``post_logout_redirect_uri``. :pr:`82`" msgstr "" "Le paramètre ``state`` n’était pas transmis à l’URL de redirection post " "déconnexion. :pr:`82`" #: ../../CHANGES.rst:548 3bd062d77c0048d3816421ed0de978e6 msgid "[0.0.17] - 2022-12-26" msgstr "[0.0.17] - 2022-12-26" #: ../../CHANGES.rst:553 4f0e0feb2cca4a8eb54473f5764cfcc7 msgid "Fixed group deletion button. :pr:`80`" msgstr "Correction du bouton de suppression de groupe. :pr:`80`" #: ../../CHANGES.rst:554 b6fc018fb2dc41ecaf43a313cf5330b9 msgid "Fixed post requests in oidc clients views. :pr:`81`" msgstr "" "Correction des requêtes POST sur la vue de gestion des clients OIDC. :pr:`81`" #: ../../CHANGES.rst:557 0e9699c0d5a74e689fdb73d2ac431d28 msgid "[0.0.16] - 2022-12-15" msgstr "[0.0.16] - 2022-12-15" #: ../../CHANGES.rst:562 a43af598d338438ea64a3352a866610c msgid "Fixed LDAP operational attributes handling." msgstr "Correction sur le comportement des attributs LDAP opérationnels." #: ../../CHANGES.rst:565 11d5f04851c847e6b3939176add7c1e2 msgid "[0.0.15] - 2022-12-15" msgstr "[0.0.15] - 2022-12-15" #: ../../CHANGES.rst:570 ce751d2ad6e44f438e092afbdcfe72ce msgid "User can chose their display name. :pr:`77`" msgstr "Les utilisateurs peuvent choisir leur nom d’affichage. :pr:`77`" #: ../../CHANGES.rst:571 008bcd50172d46429d218c6afbd7bc0f msgid "Bumped to Authlib 1.2. :pr:`78`" msgstr "Mise à jour vers Authlib 1.2. :pr:`78`" #: ../../CHANGES.rst:572 3edcc407205b44918ab63920f9734a50 msgid "" "Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration " "Management Protocol. :pr:`79`" msgstr "" "Implémentation de la :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client " "Registration Management Protocol. :pr:`79`" #: ../../CHANGES.rst:574 e327d602ecac448f8f73a848047f6319 msgid "" "Add the ``nonce`` parameter to the ``claims_supported`` server metadata list." msgstr "" "Ajout du paramètre ``nonce`` à la métadonnée du serveur OIDC " "``claims_supported``." #: ../../CHANGES.rst:577 74ad576932584357834751ca5edd823a msgid "[0.0.14] - 2022-11-29" msgstr "[0.0.14] - 2022-11-29" #: ../../CHANGES.rst:581 1205e961f8944bbb8dbc519bbfdf4993 msgid "Fixed translation catalogs packaging." msgstr "Correction de l'empaquetage des catalogues de traduction." #: ../../CHANGES.rst:584 fc089f22a3a14548b469d6c4668bb3dc msgid "[0.0.13] - 2022-11-21" msgstr "[0.0.13] - 2022-11-21" #: ../../CHANGES.rst:589 ea1f503e84f04965b18a569cf25d2941 msgid "" "Fixed a bug on the contacts field in the admin client form following the " "LDAP schema update of 0.0.12." msgstr "" "Correction d’une erreur sur le champs `contacts` du formulaire " "d’administration des clients OIDC, du à la mise à jour des schémas LDAP de " "la version 0.0.12." #: ../../CHANGES.rst:591 95a73e92dd77499c9109135edf0040cf msgid "" "Fixed a bug happening during RP initiated logout on clients without " "`post_logout_redirect_uri` defined." msgstr "" "Correction d’une erreur survenant dans la phase de déconnexion initiée par " "les clients sans paramètre `post_logout_redirect_uri` défini." #: ../../CHANGES.rst:593 5648d45162744cf4956d8d9c7d9bbf3d msgid "Gitlab CI fix. :pr:`64`" msgstr "Correction de l’intégration continue de Gitlab. :pr:`64`" #: ../../CHANGES.rst:594 1b490834cff04cb99ff4b83f9e5dd758 msgid "" "Fixed `client_secret` display on the client administration page. :pr:`65`" msgstr "" "Correction de l’affichage de l’attribut `client_secret` sur la page " "d’administration des clients. :pr:`65`" #: ../../CHANGES.rst:595 5d7cd051df4c45eb9b8e2beea6ec9659 msgid "Fixed non-square logo CSS. :pr:`67`" msgstr "Correction de la feuille de style pour les logos non carrés. :pr:`67`" #: ../../CHANGES.rst:596 16e68eaca761436eb1add2beea510963 msgid "Fixed schema path on installation. :pr:`68`" msgstr "Correction des chemins d’installation des schémas. :pr:`68`" #: ../../CHANGES.rst:597 5d87e6344c9d474c821419beb33a1d56 msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "Correction du paramètre ``software_statement` de la RFC7591. :pr:`70`" #: ../../CHANGES.rst:598 b65b8f602a7d4440936987b7c0143cf7 msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" "Correction de la désactivation du pré-consentement des clients. :pr:`72`" #: ../../CHANGES.rst:603 05f32b1852b34334be85dc02f3bc2689 msgid "Python 3.11 support. :pr:`61`" msgstr "Support de Python 3.11. :pr:`61`" #: ../../CHANGES.rst:604 33289ea27c844082832e8eea78498d86 msgid "" "``apparmor`` slapd configuration instructions in the documentation page for " "contributions. :pr:`66`" msgstr "" "Instructions concernant la configuration ``apparmor`` pour OpenLDAP dans la " "page de documentation sur les contributions. :pr:`66`" #: ../../CHANGES.rst:605 d12ad2a4e17244f8b2719ba9d0749597 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "Support de l’attribut utilisateur ``preferredLanguage``. :pr:`75`" #: ../../CHANGES.rst:610 dac1b885aa8243af874405b4ccce52f2 msgid "" "Replaced the use of the deprecated `FLASK_ENV` environment variable by " "`FLASK_DEBUG`." msgstr "" "Remplacement de la variable d’environnement dépréciée `FLASK_ENV` par " "`FLASK_DEBUG`." #: ../../CHANGES.rst:612 b6ca7ce41fa346b8bb3fa325f1e1ac0d msgid "" "Dynamically generate the server metadata. Users won't have to copy and " "manually edit ``oauth-authorizationserver.json`` and ``openid-configuration." "json``. :pr:`71`" msgstr "" "Génération dynamique des métadonnées du serveur. Les utilisateurs n’auront " "plus à copier manuellement et éditer les fichiers ``oauth-" "authorizationserver.json`` et ``openid-configuration.json``. :pr:`71`" #: ../../CHANGES.rst:615 ae1b6570238e43f1ac83a511fece3cf5 msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" msgstr "" "L’option de configuration ``FROM_ADDR``n’est plus obligatoire. :pr:`73`" #: ../../CHANGES.rst:616 cba8b0fae91a4dfe9f0e05ddb541f667 msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" msgstr "L’option de configuration ``JWT.ISS``n’est plus obligatoire. :pr:`74`" #: ../../CHANGES.rst:619 36caf034f254408aa020410594ab0cce msgid "[0.0.12] - 2022-10-24" msgstr "[0.0.12] - 2022-10-24" #: ../../CHANGES.rst:624 319c8b51be714d25ab11b9a83241970d msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "Support basique du point de terminaison WebFinger. :pr:`59`" #: ../../CHANGES.rst:625 97c9f28850884353be68c0ada430c443 msgid "Bumped to FomanticUI 2.9.0." msgstr "Mise à jour vers FomanticUI 2.9.0." #: ../../CHANGES.rst:626 c3938df1d7fc47aa9e9e686b32366a0a msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" "Implémentation de l’enregistrement dynamique des clients OIDC. :pr:`60`" #: ../../CHANGES.rst:629 5fbfc5c654b0443bac204c4743931636 msgid "[0.0.11] - 2022-08-11" msgstr "[0.0.11] - 2022-08-11" #: ../../CHANGES.rst:634 d3758c7b32f54dc38b34ab4f54a526ba msgid "Default theme has a dark variant. :pr:`57`" msgstr "Le thème par défaut a une variante sombre. :pr:`57`" #: ../../CHANGES.rst:639 eac5e673605c44bebeab671117d02935 msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "Correction du binaire manquant ``canaille``. :pr:`58`" #: ../../CHANGES.rst:642 be7d08fe65be48d09396c1c7af7f0e49 msgid "[0.0.10] - 2022-07-07" msgstr "[0.0.10] - 2022-07-07" #: ../../CHANGES.rst:647 f2759b5afad84126b4041f583edb72eb msgid "Online demo. :pr:`55`" msgstr "Démo en ligne. :pr:`55`" #: ../../CHANGES.rst:648 e3d980415ffb4cccb2272b1cf96719cc msgid "" "The consent page was displaying scopes not supported by clients. :pr:`56`" msgstr "" "La page de consentement affichait des domaines non supportés par les " "clients. :pr:`56`" #: ../../CHANGES.rst:649 d936dc556a9f4503b0802988273649d3 msgid "Fixed end session when user are already disconnected." msgstr "" "Correction de la fin de session lorsque les utilisateurs sont déjà " "déconnectés." #: ../../CHANGES.rst:652 1732d28f09b24b89854f21bfe7942840 msgid "[0.0.9] - 2022-06-05" msgstr "[0.0.9] - 2022-06-05" #: ../../CHANGES.rst:657 a298893156394c80b5f843c7193b0ca8 msgid "" "``DISABLE_PASSWORD_RESET`` configuration option to disable password " "recovery. :pr:`46`" msgstr "" "Mise en place de l’option de configuration ``DISABLE_PASSWORD_RESET`` pour " "désactiver la fonctionnalité de réinitialisation des mots de passe. :pr:`46`" #: ../../CHANGES.rst:658 c831a4847472435881495bdc121788f9 msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" msgstr "" "Ajout de la permission ``edit_self`` pour contrôler l'auto-édition des " "données personnelles par les utilisateurs. :pr:`47`" #: ../../CHANGES.rst:659 312e6a546170436ea1fa95b58e7d91e1 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "Implémentation de la norme OIDC `RP-initiated logout` :pr:`54`" #: ../../CHANGES.rst:664 797b8359f6a449e5ba16bcc78088768f msgid "Bumped to Authlib 1. :pr:`48`" msgstr "Mise à jour vers Authlib 1. :pr:`48`" #: ../../CHANGES.rst:665 4d9126ad1c3742759d3d204f1cf76dac msgid "Various documentation improvements. :pr:`50`" msgstr "Diverses améliorations de la documentation. :pr:`50`" #: ../../CHANGES.rst:666 36dc25439ee04162b5a0a808de0e823e msgid "Use poetry instead of setuptools as project management tool. :pr:`51`" msgstr "" "Utilisation de poetry à la place de setuptools comme outil de gestion de " "projet. :pr:`51`" #: ../../CHANGES.rst:667 f1fc01004b2f41349cbe787739c40b03 msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`" msgstr "Tests additionnels concernant le paramètre OIDC ``nonce``. :pr:`52`" #: ../../CHANGES.rst:671 0183302671b24cb0b537b104dc58a9ea msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "Comportement et valeur par défaut de ``HIDE_INVALID_LOGIN``." #: ../../CHANGES.rst:672 781578064d2347228773e4f950d612b2 msgid "" "Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`" msgstr "" "Les catalogues de traduction compilés ne sont plus versionnés. :pr:`49` :pr:" "`53`" #: ../../CHANGES.rst:675 d816db34635d4549985bb9d94d9a7862 msgid "[0.0.8] - 2022-03-15" msgstr "[0.0.8] - 2022-03-15" #: ../../CHANGES.rst:680 5c82cce323c6462687804d2c7f006f8d msgid "Fixed dependencies." msgstr "Correction des dépendances." #: ../../CHANGES.rst:683 e6ab77996ddc43dab6022173bbd8eae0 msgid "[0.0.7] - 2022-03-15" msgstr "[0.0.7] - 2022-03-15" #: ../../CHANGES.rst:688 db3701add4984f8c8dd764706a9639fd msgid "" "Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`" msgstr "" "Correction des espaces et échappement des caractères spéciaux dans les " "attributs LDAP ``cn`` et ``dn``. :pr:`43`" #: ../../CHANGES.rst:691 099a78c093eb4078914a63b9f15403b7 msgid "[0.0.6] - 2022-03-08" msgstr "[0.0.6] - 2022-03-08" #: ../../CHANGES.rst:696 4598be258efa4e99ab34d7bd5648a824 msgid "Access token are JWT. :pr:`38`" msgstr "Les jetons d’accès sont des JWT. :pr:`38`" #: ../../CHANGES.rst:701 19eb39b5f802426f9c1380f0d3c0dfbb msgid "Default groups on invitations. :pr:`41`" msgstr "Groupes par défaut lors des invitations. :pr:`41`" #: ../../CHANGES.rst:702 81b3f2d331284cd1bd5d5a148b5d3b77 msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`" msgstr "Les schémas LDAP sont fournis avec le paquet Canaille. :pr:`42`" #: ../../CHANGES.rst:705 bc34ed5400c7449886a6d25b679c7ae2 msgid "[0.0.5] - 2022-02-17" msgstr "[0.0.5] - 2022-02-17" #: ../../CHANGES.rst:710 45fc46e1672846778b27bc8766c1aeae msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "Les objects LDAP ont de nouveaux identifiants. :pr:`37`" #: ../../CHANGES.rst:715 8973b4acdebf481783a30266f9502cc2 msgid "Admin menu dropdown display. :pr:`39`" msgstr "Le menu d’administration est déroulant. :pr:`39`" #: ../../CHANGES.rst:716 b5deb21feb4d45e58f0b010788916ecd msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`" msgstr "" "Correction d’une faute de frappe pour le paramètre de configuration " "``GROUP_ID_ATTRIBUTE`` :pr:`40`" #: ../../CHANGES.rst:719 3dad472d941b4b5392930e039a934df2 msgid "[0.0.4] - 2022-02-16" msgstr "[0.0.4] - 2022-02-16" #: ../../CHANGES.rst:724 3086c540c13844a3b626a211f86a856b msgid "Client pre-authorization. :pr:`11`" msgstr "Pré-autorisation des clients OIDC. :pr:`11`" #: ../../CHANGES.rst:725 b621896643ca409cac8c3007137ed084 msgid "LDAP permissions check with the check command. :pr:`12`" msgstr "" "Vérification des permissions LDAP grâce à la commande `check`. :pr:`12`" #: ../../CHANGES.rst:726 ac5232266c154c829a210031f4d8a1bc msgid "" "Update consents when a scope required is larger than the scope of an already " "given consent. :pr:`13`" msgstr "" "Mise à jour des consentements lorsque le domaine requis est plus large que " "le domaine déjà autorisé. :pr:`13`" #: ../../CHANGES.rst:728 7af42dde14864ada93162b9ea16e7cd4 msgid "Theme customization. :pr:`15`" msgstr "Personnalisation du thème. :pr:`15`" #: ../../CHANGES.rst:729 b8096ecde48d430b91666fa493e4fffe msgid "Logging configuration. :pr:`16`" msgstr "Configuration de la journalisation. :pr:`16`" #: ../../CHANGES.rst:730 0db8075af2664c10be1433c0426592e5 msgid "Installation command. :pr:`17`" msgstr "Commande d’installation. :pr:`17`" #: ../../CHANGES.rst:731 5a0d7f3aca6b446fba5f0d36512be8c1 msgid "Invitation links. :pr:`18`" msgstr "Liens d’invitation. :pr:`18`" #: ../../CHANGES.rst:732 900b1cb1421848c78ccd8559ce8aa513 msgid "Advanced permissions. :pr:`20`" msgstr "Permissions avancées. :pr:`20`" #: ../../CHANGES.rst:733 be2815e3ce9b44f6aeb64d24d7cd75ee msgid "An option to not use OIDC. :pr:`23`" msgstr "Une option pour désactiver OIDC. :pr:`23`" #: ../../CHANGES.rst:734 6fe21ccaf0474887a8c6c04e69154ada msgid "Disable some features when no SMTP server is configured. :pr:`24`" msgstr "" "Désactivation de quelques fonctionnalités lorsqu’aucun serveur SMTP n’a été " "configuré. :pr:`24`" #: ../../CHANGES.rst:735 7fcdcf093e8849e59445af91ec4cfab6 msgid "" "Login placeholder dynamically generated according to the configuration. :pr:" "`25`" msgstr "" "Le texte d’exemple du champ de connexion est généré dynamiquement en " "fonction de la configuration. :pr:`25`" #: ../../CHANGES.rst:736 9bebc076e1b64cb3be67690a3e46e808 msgid "Added an option to tune object IDs. :pr:`26`" msgstr "" "Ajout d’une option pour paramétrer les identifiants des objets. :pr:`26`" #: ../../CHANGES.rst:737 983fa51b51db46409b73d0ba279c76d5 msgid "Avatar support. :pr:`27`" msgstr "Support des avatars. :pr:`27`" #: ../../CHANGES.rst:738 94758b3cf72342d2948e727f6deb10a7 msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "Paramètres des jetons d’accès dynamiques et configurables. :pr:`28`" #: ../../CHANGES.rst:739 33402d7e6d47455cbfc52aeb276a12f2 msgid "UI improvements. :pr:`29`" msgstr "Améliorations de l’interface utilisateur. :pr:`29`" #: ../../CHANGES.rst:740 181fed73a01445ea9865aadc802e9642 msgid "Invitation links expiration. :pr:`30`" msgstr "Expiration des liens d’invitation. :pr:`30`" #: ../../CHANGES.rst:741 eeaa39f7f6c842d39c1d8d40c6e4fbf8 msgid "Invitees can choose their IDs. :pr:`31`" msgstr "Les invités peuvent choisir leur identifiant. :pr:`31`" #: ../../CHANGES.rst:742 8123032bb5d341ec82aa2b0ac8caf886 msgid "LDAP backend refactoring. :pr:`35`" msgstr "Ré-usinage concernant la base de données LDAP. :pr:`35`" #: ../../CHANGES.rst:747 c9a12647745f472890eff2ceb165a8b8 msgid "Fixed ghost members in a group. :pr:`14`" msgstr "Correction des membres fantômes dans les groupes. :pr:`14`" #: ../../CHANGES.rst:748 834311277daf401e9c654cfe0751d4f2 msgid "Fixed email sender names. :pr:`19`" msgstr "Correction de l’adresse email des émetteurs. :pr:`19`" #: ../../CHANGES.rst:749 5fa1016aa05747ca84948a30c452d5a4 msgid "Fixed filter being not escaped. :pr:`21`" msgstr "Les filtres n’étaient pas échappés. :pr:`21`" #: ../../CHANGES.rst:750 a221c0e18ffd40e3986f7d20f6eac01a msgid "Demo script good practices. :pr:`32`" msgstr "Bonnes pratiques du script de démo. :pr:`32`" #: ../../CHANGES.rst:751 7e90135fab824314847bb5f4e9ab0664 msgid "Binary path for Debian. :pr:`33`" msgstr "Chemins des binaires pour Debian. :pr:`33`" #: ../../CHANGES.rst:752 39205a39be2c4d4bbc2359ba32796266 msgid "" "Last name was not mandatory in the forms while this was mandatory in the " "LDAP server. :pr:`34`" msgstr "" "Le nom de famille était facultatif dans les formulaires alors que c’est un " "paramètre obligatoire pour LDAP. :pr:`34`" #: ../../CHANGES.rst:754 bef3030603fa42ccaeffb936e450cfeb msgid "Spelling typos. :pr:`36`" msgstr "Corrections de fautes d’orthographe. :pr:`36`" #: ../../CHANGES.rst:757 2dc8f2d4014f4eb9805a19921e4e336a msgid "[0.0.3] - 2021-10-13" msgstr "[0.0.3] - 2021-10-13" #: ../../CHANGES.rst:762 f0b73ca5d1da4a728d770d11887f9754 msgid "Two-steps sign-in. :issue:`49`" msgstr "Connexion en deux étapes. :issue:`49`" #: ../../CHANGES.rst:763 d8353e939a4341fdb9d8b51ac4e03c75 msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "Les jetons peuvent avoir plusieurs audiences. :issue:`62` :pr:`9`" #: ../../CHANGES.rst:764 a8bf6576f8214a6299aadf379a50f282 msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "Commande de vérification de la configuration. :issue:`66` :pr:`8`" #: ../../CHANGES.rst:765 05a103a6101241a9afbfeffb28b04ee2 msgid "Groups management. :issue:`12` :pr:`6`" msgstr "Gestion des groupes. :issue:`12` :pr:`6`" #: ../../CHANGES.rst:770 f9681903b632489e99eb53fdf5301bb7 msgid "Introspection access bugfix. :issue:`63` :pr:`10`" msgstr "" "Correction de l’accès au point de terminaison d’introspection OIDC. :issue:" "`63`:pr:`10`" #: ../../CHANGES.rst:771 08202024eda84dd2b15e255de912389d msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" "Support du paramètre ``sub``dans l’introspection OIDC. :issue:`64` :pr:`7`" #: ../../CHANGES.rst:774 c8cf3465674b4ecb94bf3a4548fc5601 msgid "[0.0.2] - 2021-01-06" msgstr "[0.0.2] - 2021-01-06" #: ../../CHANGES.rst:779 a52712c92f57496f9cbaf32727c9a2df msgid "Login page is responsive. :issue:`1`" msgstr "La page de connexion est réactive. :issue:`1`" #: ../../CHANGES.rst:780 3e40e18b9ffa4afd9036177b6d1a0393 msgid "Adapt mobile keyboards to login page fields. :issue:`2`" msgstr "" "Adaptation des claviers mobiles sur les champs de la page de connexion. :" "issue:`2`" #: ../../CHANGES.rst:781 cf124fc4d201473f9a1d604b092c8c0a msgid "Password recovery interface. :issue:`3`" msgstr "Interface de réinitialisation des mots de passe. :issue:`3`" #: ../../CHANGES.rst:782 6a024dfd785b44f09e231f0f3b6a1bdd msgid "User profile interface. :issue:`4`" msgstr "Interface de gestion des profiles utilisateur. :issue:`4`" #: ../../CHANGES.rst:783 295718a0674c41749936c9ee63d895b2 msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "Renommage du projet en *Canaille*. :issue:`5`" #: ../../CHANGES.rst:784 5572ba58f8934db484ed5914858c1f61 msgid "Command to remove old tokens. :issue:`17`" msgstr "Commande pour supprimer les jetons expirés. :issue:`17`" #: ../../CHANGES.rst:785 da0ebb8c52d34d209bbbc13ec7a1902a msgid "Improved password recovery email. :issue:`14` :issue:`26`" msgstr "" "Améliorations sur le courriel de réinitialisation de mot de passe. :issue:" "`14` :issue:`26`" #: ../../CHANGES.rst:786 2eca9a011ae64f8788ff5b22428f2b63 msgid "" "Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" msgstr "" "Utilisation du paramètre de configuration Flask ``SERVER_NAME`` à la place " "d’``URL``. :issue:`24`" #: ../../CHANGES.rst:787 42eb9a40233047e4a8d632b8b60a4220 msgid "Improved consents page. :issue:`27`" msgstr "Améliorations sur la page de consentement. :issue:`27`" #: ../../CHANGES.rst:788 4511807efd4b4f6ea558d2632d914cae msgid "Admin user page. :issue:`8`" msgstr "Page d’administration des utilisateurs. :issue:`8`" #: ../../CHANGES.rst:789 9928a9d6301649a2bb80e54f26506c4e msgid "Project logo. :pr:`29`" msgstr "Logo pour le projet. :pr:`29`" #: ../../CHANGES.rst:790 4403f90b28a249c2b38248bf0c9f77f7 msgid "" "User account self-deletion can be enabled in the configuration with " "`SELF_DELETION`. :issue:`35`" msgstr "" "L’auto-suppression des comptes est configurable avec le paramètre de " "configuration ``SELF_DELETION``. :issue:`35`" #: ../../CHANGES.rst:791 21fd51a849844a03b830dc97bc05ab0c msgid "Admins can impersonate users. :issue:`39`" msgstr "" "Les administrateurs peuvent prendre l’identité des utilisateurs. :issue:`39`" #: ../../CHANGES.rst:792 31d73c9489164e0e92e62ac84bc8c22a msgid "Forgotten page UX improvement. :pr:`43`" msgstr "" "Améliorations sur l’interface utilisateur de la page des mots de passe " "oubliés. :pr:`43`" #: ../../CHANGES.rst:793 2b400ada80514bc68dd82d954fff040d msgid "Admins can remove clients. :pr:`45`" msgstr "Les administrateurs peuvent supprimer des clients. :pr:`45`" #: ../../CHANGES.rst:794 2355c3ec7d674d50ace6ac3ad2065627 msgid "" "Option `HIDE_INVALID_LOGIN` that can be unactivated to let the user know if " "the login he attempt to sign in with exists or not. :pr:`48`" msgstr "" "Le paramètre de configuration ``HIDE_INVALID_LOGIN`` peut-être utilisé pour " "laisser ou non les utilisateurs savoir si le compte avec lequel ils tentent " "de se connecter existe ou pas. :pr:`48`" #: ../../CHANGES.rst:796 ad8e32ede8504576b73db0b8b7bf303a msgid "Password initialization mail. :pr:`51`" msgstr "Courriels d’initialisation des mots de passe. :pr:`51`" #: ../../CHANGES.rst:801 0f2d8650e76545438f92a8ca420e65e9 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "Traductions des formulaires. :issue:`19` :issue:`23`" #: ../../CHANGES.rst:802 6f367157d7464c9492c0f8a528dbd11f msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "Utilisations d’autres polices que celles de Google Fonts. :issue:`21`" #: ../../CHANGES.rst:807 ae2646eead6a4983998e7b76396f3862 msgid "'My tokens' page. :issue:`22`" msgstr "Page « Mes jetons ». :issue:`22`" #: ../../CHANGES.rst:810 b2a9ee20e0214e2eb650a3c0c80c6a8f msgid "[0.0.1] - 2020-10-21" msgstr "[0.0.1] - 2020-10-21" #: ../../CHANGES.rst:815 974217beadfa4205ad58a4fff852a8d4 msgid "Initial release." msgstr "Publication initiale." #: ../../CONTRIBUTING.rst:2 a96f68b7ad98474ba59c1cc935c2fab4 msgid "Contributions" msgstr "Contributions" #: ../../CONTRIBUTING.rst:4 f190f6b5c4a1498eadcb7fae2bcdf493 msgid "Contributions are welcome!" msgstr "Les contributions sont bienvenues !" #: ../../CONTRIBUTING.rst:6 26f13dddd093492789f21e4db847d7a9 msgid "" "The repository is hosted at `gitlab.com/yaal/canaille `_." msgstr "" "Le dépôt de code est hébergé sur `gitlab.com/yaal/canaille `_." #: ../../CONTRIBUTING.rst:9 25361fdaed76435db19183cb37a4ee83 msgid "Discuss" msgstr "Discuter" #: ../../CONTRIBUTING.rst:11 b8e752ea3b8f4591a9c8616ed7f0d9af msgid "" "If you want to implement a feature or a bugfix, please start by discussing " "it with us on the `bugtracker `_ " "or the `matrix room `_." msgstr "" "Si vous souhaitez développer une fonctionnalité ou corriger un " "dysfonctionnement, veuillez commencer par en discuter sur `l’outil de " "gestion de ticket `_ ou bien sur " "le `salon Matrix `_." #: ../../CONTRIBUTING.rst:16 5e0c1113f29742f89b251b5903f73e36 msgid "Development environment" msgstr "Environnement de développement" #: ../../CONTRIBUTING.rst:18 710016d6c25b4193925b83445146a358 msgid "You can either run the demo locally or with Docker." msgstr "" "Vous pouvez exécuter l’instance de démonstration localement ou bien à l’aide " "de Docker." #: ../../CONTRIBUTING.rst:20 62ee7de4d731446fa1b2df4e3805803b msgid "" "The only tool required for local development is `uv`. Make sure to have uv " "`installed on your computer `_ to be able to hack Canaille." msgstr "" "Le seul outil requis pour développer localement est `uv`. Assurez-vous " "d’avoir uv `installé sur votre système `_ afin de pouvoir développer Canaille." #: ../../CONTRIBUTING.rst:24 b95dab6a28fb472bba445e43148ff6bc msgid "Initialize your development environment with:" msgstr "Initialisez votre environnement de développement avec :" #: ../../CONTRIBUTING.rst:26 8724e2b7dec24128988b2a3ffb199a4d msgid "" "``uv sync --extra front --extra oidc`` to have a minimal working development " "environment. This will allow you to run the tests with ``uv pytest --backend " "memory``." msgstr "" "``uv sync --extra front --extra oidc`` pour obtenir un environnement de " "développement minimal. Cela vous permettra d’exécuter les tests avec ``uv " "pytest --backend memory``." #: ../../CONTRIBUTING.rst:27 ef925e13845f4ec1abf9cae0f0e64140 msgid "" "``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal " "working development environment with SQLite backend support. This will allow " "you to run the tests with ``uv pytest --backend sql``." msgstr "" "``uv sync --extra front --extra oidc --extra sqlite`` pour obtenir un " "environnement de développement minimal avec le support des bases de données " "SQLite. Cela vous permettra d’exécuter les tests avec ``uv pytest --backend " "sql``." #: ../../CONTRIBUTING.rst:28 2a07d0fc832b4178be5633d02a0f1d07 msgid "" "``uv sync --extra front --extra oidc --extra ldap`` to have a minimal " "working development environment with LDAP backend support. This will allow " "you to run the tests with ``uv pytest --backend ldap``." msgstr "" "``uv sync --extra front --extra oidc --extra ldap`` pour obtenir un " "environnement de développement minimal avec le support pour les bases de " "données LDAP. Cela vous permettra d’exécuter les tests avec ``uv pytest --" "backend ldap``." #: ../../CONTRIBUTING.rst:29 77b8e98fabe140a28382d44b936baa18 msgid "" "``uv sync --all-extras`` if you want to have everything at your fingertips. " "Note that it may compile some Python dependencies that would expect things " "to be installed on your system; Some dependencies of Canaille might need to " "be compiled, so you probably want to check that `GCC` and `cargo` are " "available on your computer." msgstr "" "``uv sync --all-extras`` si vous souhaitez avoir tout à portée de main. " "Notez que cela requerra peut-être de compiler certaines dépendances Python, " "qui nécessiterons l’installation de certaines bibliothèques sur votre " "système ; Certaines dépendances de Canaille auront peut-être besoin d’être " "compilées, vous voudrez probablement vérifier que `GCC` et `cargo` sont " "installés sur votre système." #: ../../CONTRIBUTING.rst:32 a69af4c344d546e4abf52e4a3aa35cf8 msgid "After having launched the demo you have access to several services:" msgstr "" "Après avoir lancé l’instance de démonstration, vous avec accès à plusieurs " "services :" #: ../../CONTRIBUTING.rst:34 dda88353032541b9a70440211ee1a89b msgid "A canaille server at `localhost:5000 `_" msgstr "" "Un serveur Canaille à l’adresse `localhost:5000 `_" #: ../../CONTRIBUTING.rst:35 5d2493dbe0924c578cbce67b64f80d14 msgid "A dummy client at `localhost:5001 `_" msgstr "" "Un client factice à l’adresse `localhost:5001 `_" #: ../../CONTRIBUTING.rst:36 595602fe39c040259d1e0346e45efdb7 msgid "Another dummy client at `localhost:5002 `_" msgstr "" "Un autre client factice à l’adresse `localhost:5002 `_" #: ../../CONTRIBUTING.rst:38 6de7e48182d648f89fe8b2c0b30634fd msgid "The canaille server has some default users:" msgstr "Le serveur Canaille embarque quelques utilisateurs par défaut :" #: ../../CONTRIBUTING.rst:40 05cc64bd64b3425f8c727e448bac1904 msgid "A regular user which login and password are **user**;" msgstr "" "Un utilisateur de base dont l’identifiant et le mot de passe sont **user** ;" #: ../../CONTRIBUTING.rst:41 526ece6f767c4728a86ccc832ed77f3e msgid "A moderator user which login and password are **moderator**;" msgstr "" "Un modérateur dont l’identifiant et le mot de passe sont **moderator** ;" #: ../../CONTRIBUTING.rst:42 bb69c0dfc3e64ceeba0152302e50d5d2 msgid "An admin user which admin and password are **admin**;" msgstr "" "Un administrateur dont l’identifiant et le mot de passe sont **admin** ;" #: ../../CONTRIBUTING.rst:43 c188d453c64c47869a6c1bba24c32639 msgid "" "A new user which login is **james**. This user has no password yet, and his " "first attempt to log-in would result in sending a password initialization " "email (if a smtp server is configured)." msgstr "" "Un nouvel utilisateur dont l’identifiant est **james**. Cet utilisateur n’a " "pas de mot de passe défini, et sa première tentative de connexion résultera " "en l'envoi d’un email d’initialisation de mot de pass (si un serveur SMTP " "est configuré)." #: ../development/specifications.rst:106 ../../CONTRIBUTING.rst:48 #: f9d8d16e7fd1478ea154c65fddc0c109 30174a5d8c1f479eaf739cfb67550caa msgid "Backends" msgstr "Bases de données" #: ../../CONTRIBUTING.rst:50 0ec216a61a0f4d0c81ef8859f4b8e775 msgid "Canaille comes with several backends:" msgstr "Canaille peut se connecter à plusieurs types de bases de données :" #: ../../CONTRIBUTING.rst:52 d49ccb7bb5d349b3b97dcb367e9f50db msgid "a lightweight test purpose `memory` backend" msgstr "une base de données très légère `memory` à fins de tests" #: ../../CONTRIBUTING.rst:53 2b5961e3d4d34b41a03f5f4e1b305f14 msgid "a `sql` backend, based on sqlalchemy" msgstr "une base de données `SQL`, utilsant SQLAlchemy" #: ../../CONTRIBUTING.rst:54 3db6bec104534cbbb972fef81e090786 msgid "a production-ready `LDAP` backend" msgstr "une base de données `LDAP` prête à l’emploi" #: ../../CONTRIBUTING.rst:57 b800e3599701462b8ad5f4449e0a62b4 msgid "Docker environment" msgstr "Environnement Docker" #: ../../CONTRIBUTING.rst:59 39ea2b50603a473cb167b4e1a6a135ca msgid "" "If you want to develop with docker, your browser needs to be able to reach " "the `canaille` container. The docker-compose file exposes the right ports, " "but front requests are from outside the docker network: the `canaille` url " "that makes sense for docker, points nowhere from your browser. As exposed " "ports are on `localhost`, you need to tell your computer that `canaille` url " "means `localhost`." msgstr "" "Si vous souhaitez développer avec Docker, votre navigateur doit être en " "mesure de joindre le conteneur `canaille`. Le fichier docker-compose expose " "les bons ports, mais les requêtes viendront de l’extérieur du réseau " "Docker : l'URL `canaille` a un sens à l’intérieur du réseau Docker, mais ne " "désigne rien pour votre navigateur. Comme les ports sont exposés sur " "`localhost`, vous devez configurer votre ordinateur pour que `canaille` " "pointe vers `localhost`." #: ../../CONTRIBUTING.rst:64 dd86e0f0a4204a77ba9927f1768aa33e msgid "To do that, you can add the following line to your `/etc/hosts`:" msgstr "" "Pour effectuer ceci, vous pouvez ajouter la ligne suivante à `/etc/hosts` :" #: ../../CONTRIBUTING.rst:70 5572861cc5114b9b9e7f520fee49b975 msgid "To launch containers, use:" msgstr "Pour lancer les conteneurs, utilisez :" #: ../development/specifications.rst:108 ../tutorial/databases.rst:16 #: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:106 #: 7a0d8968fcbe4d8693ac6cf593f51106 fafde474a9ed41dab483dfb87f46dda3 #: f210968f704646b2a4b35d9f6a5baa90 e8a3d979968c4e05ab1fb5630eb8fc6b msgid "SQL" msgstr "SQL" #: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:107 #: a1183f0e179942889b697fccf6fde014 f12297286ea648a7a4f8723cd900dd74 msgid "" "With the SQL backend, the demo instance will load and save data in a local " "sqlite database." msgstr "" "Avec la base de données SQL, l’instance de démonstration chargera et " "enregistrera les données dans un fichier sqlite local." #: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:109 #: 2f256843b3974bfe82ebbd54b22758a0 03535ba511ef42feb8d6fb77934fb88b msgid "Run the demo instance with the SQL backend" msgstr "Lancer l’instance de démonstration avec la base de données SQL" #: ../tutorial/databases.rst:8 ../../CONTRIBUTING.rst:83 #: ../../CONTRIBUTING.rst:115 3216b8433f1847809573eaaa434fe9a7 #: 6323f7ec77464e2ba7d399f7ccc6f590 d63a7ad080eb47be9529226d4685cf76 msgid "Memory" msgstr "En-mémoire" #: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:116 #: 96e1856006aa4151b406b7f7922e84ff 74b6ac7aa3c144f9be537b2c60010548 msgid "With the memory backend, all data is lost when Canaille stops." msgstr "" "Avec la base de données en mémoire, toutes les données sont perdues lorsque " "Canaille s'arrête." #: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:118 #: 6751970e321642cb9cfabd3395bdf82b b4933b104b004ed39073970b595e9b5f msgid "Run the demo instance with the memory backend" msgstr "Lancer l’instance de démonstration avec la base de données en mémoire" #: ../development/specifications.rst:108 ../tutorial/databases.rst:32 #: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:124 #: fdfa320e4c4445e5a0c5443e647c0835 44d5d5bd5737458d81975f70b3477b17 #: bbe1b4e1618b44fb9651929f4e459099 2794653a6dd64b5f8a13bc552aa7acc9 msgid "LDAP" msgstr "LDAP" #: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:125 #: c8a1e8a894ef4fa9a4ea60027c3b73a1 8733bd5bbf5b4744ab8896570d709291 msgid "With the LDAP backend, all data is lost when Canaille stops." msgstr "Avec LDAP, toutes les données sont perdues lorsque Canaille s’arrête." #: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:127 #: ac813d37940b4d189a3957eeba2ffb08 73ef2cc1d55f45acbe1568f8da59c158 msgid "Run the demo instance with the LDAP backend" msgstr "Lancer l’instance de démo avec le support de LDAP" #: ../../CONTRIBUTING.rst:103 80000162aaf447eda038a20ae12973c7 msgid "Local environment" msgstr "Environnement local" #: ../../CONTRIBUTING.rst:133 8b346e3f0ae84b289a7e819279283718 msgid "" "If you want to run the demo locally with the LDAP backend, you need to have " "`OpenLDAP `_ installed on your system. It is " "generally shipped under the ``slapd`` or ``openldap`` package name." msgstr "" "Si vous souhaitez exécuter l’instance de démonstration localement avec le " "support pour LDAP, vous devez avoir `OpenLDAP `_ " "installé sur votre système. OpenLDAP est généralement fourni via les paquets " "nommés ``slapd`` ou ``openldap``." #: ../../CONTRIBUTING.rst:138 ad84a2866902456b8f29498783fd665b msgid "" "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be " "restricted by apparmor, and thus makes the tests and the demo fail. This can " "be mitigated by removing apparmor restrictions on `slapd`." msgstr "" "Si vous souhaitez apporter une correction ou développer une fonctionnalité, " "veuillez commencer par en discuter sur l’`outil de gestion de tickets " "`_ ou le `salon Matrix `_." #: ../../CONTRIBUTING.rst:148 cdab025ce1dc48fa97161a955423b957 msgid "Populate the database" msgstr "Remplissage de la base de données" #: ../../CONTRIBUTING.rst:150 319a37a58be44aac8e617f300e3c3afb msgid "" "The demo database comes populated with some random users and groups. If you " "need more, you can generate users and groups with the ``populate`` command:" msgstr "" "La base de donnée de démonstration est remplie avec des utilisateurs et des " "groupes générés aléatoirement. Si vous avez besoin de plus, vous pouvez " "générer des utilisateurs et des groupes avec la commande ``populate`` :" #: ../../CONTRIBUTING.rst:161 4bf45406e18a4505999dca7b84c4e8f0 msgid "" "Adapt to use either the `ldap` or the `sql` configuration file. Note that " "this will not work with the memory backend." msgstr "" "Adaptez pour utiliser le fichier de configuration `ldap` ou `sql`. Notez que " "cela ne fonctionnera pas avec la base de données en mémoire." #: ../../CONTRIBUTING.rst:164 62c234c473324a82a1038d3f4610a338 msgid "Unit tests" msgstr "Tests unitaires" #: ../../CONTRIBUTING.rst:166 314f0cc4c01c47f4bca6c87e7460b03b msgid "" "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to " "test all the supported python environments. Everything must be green before " "patches get merged." msgstr "" "Pour exécuter les tests, vous pouvez simplement lancer la commande `uv run " "pytest`et/ou `uv run tox`pour tester tous les environnements Python " "supportés. Tout doit être au vert avant que les contributions soient " "fusionnées." #: ../../CONTRIBUTING.rst:169 b9dc93b982bf4fc98eddf47c5730b09c msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." msgstr "" "Pour tester une base de données en particulier, vous pouvez passer les " "argumentes ``--backend memory``, ``--backend sql`` ou ``--backend ldap`` à " "pytest et tox." #: ../../CONTRIBUTING.rst:171 13c7913d62db412bb4e66637a79cd789 msgid "" "The test coverage is 100%, patches won't be accepted if not entirely " "covered. You can check the test coverage with ``uv run pytest --cov --cov-" "report=html`` or ``uv run tox -e coverage -- --cov-report=html``. You can " "check the HTML coverage report in the newly created `htmlcov` directory." msgstr "" "La couverture de code est de 100%, les contributions ne seront acceptées que " "si leur code est entièrement couvert. Vous pouvez vérifier la couverture " "avec ``uv run pytest --cov --cov-report=html``ou ``uv run tox -e coverage -- " "--cov-report=html`. Vous pouvez ensuite consulter le rapport de couverture " "HTML dans le dossier `htmlcov` nouvellement créé." #: ../../CONTRIBUTING.rst:176 6a901706012a4004b1dbb87ef68c803a msgid "Code style" msgstr "Style de code" #: ../../CONTRIBUTING.rst:178 9fa3a042eca848fe9b9af832c325142c msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " "submitting them. In order to perform a style check and correction at each " "commit you can use our `pre-commit `_ configuration " "with ``uv run pre-commit install``." msgstr "" "Canaille utilise `ruff `_ ainsi que d’autres " "outils pour formater le code. Veuillez exécuter ``uv run tox -e style`` " "avant de soumettre une contribution. Afin d’effectuer les vérifications de " "style à chaque commit, vous pouvez utiliser la configuration `pre-commit " "`_ avec ``uv run pre-commit install``." #: ../../CONTRIBUTING.rst:184 831a60fcf8ee4e37828421e71b2931c0 msgid "Front" msgstr "Interface utilisateur" #: ../../CONTRIBUTING.rst:186 f9ab478278ef4d39bee37c056fb937f2 msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_." msgstr "" "L’interface utilisateur est construite avec `Fomantic UI `_. Les parties dynamiques utilisent `HTMX `_." #: ../../CONTRIBUTING.rst:189 115550e00eb74a80828b6acae2948606 msgid "" "Using Javascript in the interface is tolerated, but the whole website MUST " "be accessible for browsers without Javascript support, and without any " "feature loss." msgstr "" "L’utilisation de Javascript dans l’interface est tolérée, mais l’ensemble de " "l’application DOIT pouvoir être utilisé par des navigateurs sans support " "Javascript, et sans perte de fonctionnalité." #: ../../CONTRIBUTING.rst:191 4d3ab5a48a9d49a6aaef6c5c583e938d msgid "" "Because of Fomantic UI we have a dependency to jQuery, however new " "contributions should not depend on jQuery at all. See the `related issue " "`_." msgstr "" "À cause de Fomantic UI, Canaille a une dépendance vers jQuery, cependant les " "nouvelles contributions ne devraient pas utiliser jQuery. Lisez le `ticket à " "ce sujet`_." #: ../index.rst:71 ../../CONTRIBUTING.rst:196 03d0d76bba134693bed77e50d1911dd9 #: 84410d2758484c01b8b48461c40d0a7c msgid "Documentation" msgstr "Documentation" #: ../../CONTRIBUTING.rst:198 5eb4ba179d0444fd9647504055935495 msgid "The documentation is generated when the tests run:" msgstr "La documentation est générée lors de l’exécution des tests :" #: ../../CONTRIBUTING.rst:204 7f28cb743dcb44d9b66a31febcc8a6d0 msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" msgstr "" "Vous pouvez aussi exécuter `sphinx` à la main, cela devrait être plus rapide " "puisque cela évite l’initialisation des environnements tox :" #: ../../CONTRIBUTING.rst:210 4e73e6c26d164591bd5edf84fc921cc4 msgid "The generated documentation is located at ``build/sphinx/html/en``." msgstr "La documentation générée se situe à ``build/sphinx/html/en``." #: ../../CONTRIBUTING.rst:213 3fd3b7e2ec184cf8b2a81f87177f48fb msgid "Code translation" msgstr "Traduction du code" #: ../../canaille/translations/README.rst:1 3f134d116261469d8e6e9a05b5c47b47 msgid "" "Translations are done with `Weblate `__." msgstr "" "Les traductions s’effectuent sur `Weblate `_." #: ../../canaille/translations/README.rst:3 f5045b02a67f426188352a5d6ff207e1 msgid "" "The following commands are there as documentation, only the message " "extraction is needed for contributors. All the other steps are automatically " "done with Weblate." msgstr "" "Les commandes suivantes sont présentées à titre de documentation, seule " "l’extraction des messages est utile aux contributeurs. Toutes les autres " "étapes sont effectuées automatiquement par Weblate." #: readme.rst:6 ../../canaille/translations/README.rst:8 #: 24b270040aba498184edc6fd3b60c94e 2056f7130ccd40b7b3b34c0c572a6578 #: 41a918a2d4a74a5b9b2817c613ca08f4 msgid "Message extraction" msgstr "Extraction des messages" #: readme.rst:8 ../../canaille/translations/README.rst:10 #: 3d0d46dbb4b849429d1b20c8d4655b71 ca03937bab89437aaca273df6d905a44 #: 5743021622e04712918dcadbabc6c7f7 msgid "" "After you have edited translatable strings, you should extract the messages " "with:" msgstr "" "Après avoir édité des chaînes de caractères traductibles, vous pouvez " "extraire les messages avec :" #: readme.rst:15 ../../canaille/translations/README.rst:17 #: 33a52dea69f84cdd8031217438609b01 1bdb41af37fb4b29970caa32ceb9f68e #: fcdbb11edc8c403dba19ddcc30f0c74a msgid "Language addition" msgstr "Ajout de langues" #: readme.rst:17 ../../canaille/translations/README.rst:19 #: 85155247ccbe4cdda3c379b515fd2413 04039c23ea56483b9ccf96d20f26f2bd #: ba0855443a6f465d9274426f59f251de msgid "" "You can add a new language manually with the following command, however this " "should not be needed as Weblate takes car of this:" msgstr "" "Vous pouvez ajouter une nouvelle langue manuellement avec la commande " "suivante, cependant cela ne devrait pas être nécessaire puisque Weblate s'en " "occupe automatiquement :" #: ../../canaille/translations/README.rst:26 d186ca49fae24bbd9d3c28120601a60e msgid "Catalog update" msgstr "Mise à jour des catalogues" #: ../../canaille/translations/README.rst:28 0ed1087f30a74059b6c7e0e06de6573d msgid "" "You can update the catalogs with the following command, however this should " "not be needed as Weblate automatically update language catalogs when it " "detects new strings or when someone translate some existing strings. Weblate " "pushes happen every 24h." msgstr "" "Vous pouvez mettre à jour les catalogues avec la commande suivante, " "cependant cela ne devrait pas être nécessaire puisque Weblate met à jour " "automatiquement les catalogues lorsqu’il détecte de nouvelles chaînes de " "caractères ou lorsque quelqu’un traduit des chaînes de caractères " "existantes. Weblate pousse ses modifications toutes les 24 heures." #: ../../canaille/translations/README.rst:36 ddf0e21cf51b4dc79d6250343d97b0d1 msgid "Catalog compilation" msgstr "Compilation des catalogues" #: ../../canaille/translations/README.rst:38 6ef8340ccc2c46ea99f8d0de91ee483a msgid "" "You can compile the catalogs with the following command, however this should " "not be needed as catalogs are automatically compiled before running the unit " "tests, before launching the demo and before compiling the Canaille python " "package:" msgstr "" "Vous pouvez compiler les catalogues avec la commande suivante, cependant " "cela ne devrait pas être nécessaire puisque les catalogues sont " "automatiquement compilés avant le lancement des tests unitaires, avant le " "lancement de l’instance de démonstration et avant la compilation du paquet " "Python de Canaille :" #: ../../CONTRIBUTING.rst:219 1de2a285415949c49cad5e827186884c msgid "Documentation translation" msgstr "Traduction de la documentation" #: readme.rst:1 3f134d116261469d8e6e9a05b5c47b47 #: 82307c31bbd04c86b438e8a4e005cbfd msgid "" "Translations are done with `Weblate `__." msgstr "" "Les traductions s’effectuent sur `Weblate `__." #: readme.rst:3 e68bab4e55074d099971067e8585e7bc #: 36d72bb59c6442f0ac0078ec35cff7db msgid "" "The following commands are there as documentation, only the message " "extraction and the language addition is needed for contributors." msgstr "" "Les commandes suivantes sont montrées à titre de documentation, seules " "l’extraction de message et l’ajout de langues de traduction sont utiles aux " "contributeurs." #: readme.rst:24 2249c8bd3ebb4123b1b85e55d501a414 #: 592956cc63d849ad8f23d530a03daa2a msgid "Build the documentation in another language" msgstr "Construire la documentation dans une autre langue" #: ../../CONTRIBUTING.rst:224 ccb55b67aa5c4d8baf4a4a56eb19fe8c msgid "Publish a new release" msgstr "Publier une nouvelle version" #: ../../CONTRIBUTING.rst:226 a2df8944754246d4a92c6e7f76b8273a msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" msgstr "" "Vérifiez que les dépendances sont à jour avec ``uv sync --all-extras --" "upgrade`` et mettez à jour chaque dépendance dans un commit séparé ;" #: ../../CONTRIBUTING.rst:227 4d2be841e11345a7a9f62a7f7e0d46b3 msgid "" "Check that tests are still green for every supported python version, and " "that coverage is still at 100%, by running ``uv run tox``;" msgstr "" "Vérifiez que les tests sont toujours verts pour chaque version supportée de " "Python, et que la couverture de code est toujours de 100%, en lançant ``uv " "run tox`` ;" #: ../../CONTRIBUTING.rst:228 69338c8be69e45659eada1ffe5c0f67c msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" msgstr "" "Vérifiez que les instances de démonstration sont toujours fonctionnelles, à " "la fois en local et avec Docker ;" #: ../../CONTRIBUTING.rst:229 8bba3fab5e164ade8916c47fb38a9c19 msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" msgstr "" "Vérifiez que les :ref:`development/changelog:notes de versioin` sont " "correctement renseignées ;" #: ../../CONTRIBUTING.rst:230 7be3604476174714a93fb5c8673febf7 msgid "Increase the version number in ``pyproject.toml``;" msgstr "Incrémentez le numéro de version dans ``pyproject.toml`` ;" #: ../../CONTRIBUTING.rst:231 e8b5c52d84d94d809eb6fd08e9a61939 msgid "Commit with ``git commit``;" msgstr "Commitez avec ``git commit`` ;" #: ../../CONTRIBUTING.rst:232 70de3f18c0d144c8b5e6ad264629491e msgid "Build with ``uv build``;" msgstr "Construisez le paquet avec ``uv build`` ;" #: ../../CONTRIBUTING.rst:233 54bbdc2762b14df98894d94d760597b9 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" msgstr "" "Publiez le paquet sur l’instance de test de PyPI avec ``uv publish --publish-" "url https://test.pypi.org/legacy/`` ;" #: ../../CONTRIBUTING.rst:234 327a4abb66b14f95821cf861312ff6be msgid "" "Install the test package somewhere with ``pip install --extra-index-url " "https://test.pypi.org/simple --upgrade canaille``. Check that everything " "looks fine;" msgstr "" "Installez le paquet dans un projet quelconque avec ``pip install --extra-" "index-url https://test.pypi.org/simple --upgrade canaille``. Vérifiez que " "l’installation s’est bien passée ;" #: ../../CONTRIBUTING.rst:235 270ce1780553422780cddbbca1791bbd msgid "Publish on production PyPI ``uv publish``;" msgstr "Publiez sur l’instance de production de PyPI avec ``uv publish`` ;" #: ../../CONTRIBUTING.rst:236 35cf31b173f34bb2b6ffc0d5cb0931a9 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "Étiquetez le commit avec ``git tag XX.YY.ZZ`` ;" #: ../../CONTRIBUTING.rst:237 673bf114db3945dbbe806b281a6bc1d6 msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." msgstr "" "Poussez le commit de publication avec la nouvelle étiquette avec ``git push " "--tags``." #: ../development/index.rst:2 82f9846032eb48449059b9b21039acf3 msgid "Development" msgstr "Développement" #: ../development/specifications.rst:2 68b9e4a665f74983994ec7f7820a6555 msgid "Specifications" msgstr "Normes" #: ../development/specifications.rst:4 a91f12df80654d7a9159894525f0a1fa msgid "" "This page details which specifications are implemented in Canaille, and " "compares Canaille with other well-known identity providers." msgstr "" "Cette page détaille les spécifications implémentées dans Canaille, et " "compare Canaille avec d’autres serveurs d’identité renommés." #: ../development/specifications.rst:7 798ff9024fa049a5889c4e9f725985f4 msgid "State of the specs in Canaille" msgstr "L’état des spécifications dans Canaille" #: ../development/specifications.rst:10 faec5be28e9d4a0380914450cb563d74 msgid "OAuth2" msgstr "OAuth2" #: ../development/specifications.rst:12 bc158a2abfdf4e669db0bf71ac12e539 msgid "" "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" "✅ `RFC6749: OAuth 2.0 Framework `_" #: ../development/specifications.rst:13 41aacf25a278469488576916b0dc1100 msgid "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" #: ../development/specifications.rst:14 c84b09e12da74d1e9bb498f4abd41cef msgid "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" msgstr "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" #: ../development/specifications.rst:15 319878f12ee94c71bcd20839b8e9cdf2 msgid "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" msgstr "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" #: ../development/specifications.rst:16 7c8c430d14b04548a82b1f6c5b41edef msgid "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" msgstr "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" #: ../development/specifications.rst:17 a0eeca49247d4d0a858fbd68b8feae7a msgid "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" msgstr "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" #: ../development/specifications.rst:18 6ba8732c85c743c3ac3f63b40fbf3aa2 msgid "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" msgstr "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" #: ../development/specifications.rst:19 338bb06b2df547edbe50a150b4d8c146 msgid "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" msgstr "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" #: ../development/specifications.rst:20 1663509c8aa249af8ec326ae877e7044 msgid "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" msgstr "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" #: ../development/specifications.rst:21 37a881c253ff4c87b340587a85546041 msgid "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" msgstr "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" #: ../development/specifications.rst:22 5398a841990f4e6ea8b40b97e9a32097 msgid "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" #: ../development/specifications.rst:23 2045b4c2c1bf4d808e03894e4b365fb8 msgid "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" msgstr "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" #: ../development/specifications.rst:24 107a0959842641af8fa7f1382928f2e1 msgid "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" msgstr "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" #: ../development/specifications.rst:25 b6b8eaed434f47bfb07f5d077c670b22 msgid "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" msgstr "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" #: ../development/specifications.rst:26 48f411a150274d74b09dd3111d70d4ef msgid "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" msgstr "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" #: ../development/specifications.rst:27 68ff3ad36aa1400e85a6f6703f5d75ae msgid "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" msgstr "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" #: ../development/specifications.rst:28 312945002b5f49a5ac6e6d797e9322d0 msgid "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" msgstr "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" #: ../development/specifications.rst:29 6f0f83d947a3442c84f44b67f11184b3 msgid "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" msgstr "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" #: ../development/specifications.rst:30 f11bf858bc1342a781c9139f05938eae msgid "" "❌ `OAuth2 Multiple Response Types `_" msgstr "" "❌ `OAuth2 Multiple Response Types `_" #: ../development/specifications.rst:31 d2e5d74b4dd94d85a5d431f60f875dbc msgid "" "❌ `OAuth2 Form Post Response Mode `_" msgstr "" "❌ `OAuth2 Form Post Response Mode `_" #: ../development/specifications.rst:34 ../features.rst:223 #: 8f72523ff51c4575b94efb2d3ce15f6b f36365f798bf4a29a1c762d3d984b773 msgid "OpenID Connect" msgstr "OpenID Connect" #: ../development/specifications.rst:36 cf8887ca156c4c1c9888a84fc8065530 msgid "" "✅ `OpenID Connect Core `_" msgstr "" "✅ `OpenID Connect Core `_" #: ../development/specifications.rst:37 5c4310f0f040430fbc2a843183e96fd8 msgid "" "✅ `OpenID Connect Discovery `_" msgstr "" "✅ `OpenID Connect Discovery `_" #: ../development/specifications.rst:38 5d5801df6b9c4bf4a6a02e97b8ced460 msgid "" "✅ `OpenID Connect Dynamic Client Registration `_" msgstr "" "✅ `OpenID Connect Dynamic Client Registration `_" #: ../development/specifications.rst:39 7d48e73edb044c8e85e6210edc4c327b msgid "" "✅ `OpenID Connect RP Initiated Logout `_" msgstr "" "✅ `OpenID Connect RP Initiated Logout `_" #: ../development/specifications.rst:40 cdef4546f7dc4de8865f7a1302d4ba5d msgid "" "❌ `OpenID Connect Session Management `_" msgstr "" "❌ `OpenID Connect Session Management `_" #: ../development/specifications.rst:41 21aa2648b1f64ffeabe2a6123a75c27d msgid "" "❌ `OpenID Connect Front Channel Logout `_" msgstr "" "❌ `OpenID Connect Front Channel Logout `_" #: ../development/specifications.rst:42 dac849b7b0ae48afb3e07330a4155e85 msgid "" "❌ `OpenID Connect Back Channel Logout `_" msgstr "" "❌ `OpenID Connect Back Channel Logout `_" #: ../development/specifications.rst:43 9465d51e2c23461486052de55942bbea msgid "" "❌ `OpenID Connect Back Channel Authentication Flow `_" msgstr "" "❌ `OpenID Connect Back Channel Authentication Flow `_" #: ../development/specifications.rst:44 b4f2991cded34e7190e7e7185828536c msgid "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" msgstr "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" #: ../development/specifications.rst:45 1cb0fe5d644c49b2a1c6c7af780c407a msgid "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" msgstr "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" #: ../development/specifications.rst:46 7c15c3d629b44469bb0feba2b79e0522 msgid "" "❌ `OpenID Connect Profile for SCIM Services `_" msgstr "" "❌ `OpenID Connect Profile for SCIM Services `_" #: ../development/specifications.rst:49 ../development/specifications.rst:108 #: 81a42181f7ed4f43b5fc6af1bae15e65 msgid "SCIM" msgstr "SCIM" #: ../development/specifications.rst:51 c3e061fe92e4451ea24e50dacd112c46 msgid "Canaille provides a basic SCIM server implementation." msgstr "Canaille fournit une implémentation basique du protocole SCIM." #: ../development/specifications.rst:53 aefb1b937f7a4e35a4eae6d8648c6303 msgid "" "🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, " "Overview, Concepts, and Requirements `_" msgstr "" "🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, " "Overview, Concepts, and Requirements `_" #: ../development/specifications.rst:54 6193cd6fb48643e99f0e2018dbdaba83 msgid "" "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" msgstr "" "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" #: ../development/specifications.rst:55 9b124b409b3041f5bdefedf9b0593d06 msgid "" "🟠 `RFC7644: System for Cross-domain Identity Management: Protocol `_" msgstr "" "🟠 `RFC7644: System for Cross-domain Identity Management: Protocol " "`_" #: ../development/specifications.rst:57 e6062c405e8948d38ec280a762370179 msgid "" "Client-side implementation (i.e. broadcasting changes on users and groups " "among clients) and advanced features will be implemented in the future." msgstr "" "L'implémentation côté client (c'est à dire la diffusion à tous les clients " "des modifications sur les utilisateurs et groupes) ainsi que les " "fonctionnalités avancées seront implémentées dans le futur." #: ../development/specifications.rst:60 da7a2a26dbfb494abca9e21b3178087e msgid "What's implemented" msgstr "Ce qui est implémenté" #: ../development/specifications.rst:62 ../development/specifications.rst:83 #: f00bbd829f164b10bea0b4a04ac7123d e66e2017457c4526a39df9630674c5ac msgid "Endpoints:" msgstr "Les points terminaux :" #: ../development/specifications.rst:64 0eb744fd5a6c4e60a41e71982f000800 msgid "/Users (GET, POST)" msgstr "/Users (GET, POST)" #: ../development/specifications.rst:65 f537052ae8b94a3a83c0e84c52855dc7 msgid "/Users/ (GET, PUT, DELETE)" msgstr "/Users/ (GET, PUT, DELETE)" #: ../development/specifications.rst:66 3b4e9d3e1079430b97611c8dadee4395 msgid "/Groups (GET, POST)" msgstr "/Groups (GET, POST)" #: ../development/specifications.rst:67 3e673b4744e945b89c77ced8145f54fc msgid "/Groups/ (GET, PUT, DELETE)" msgstr "/Groups/ (GET, PUT, DELETE)" #: ../development/specifications.rst:68 c279b1a6193b4de49c1ac392b9c9f1f8 msgid "/ServiceProviderConfig (GET)" msgstr "/ServiceProviderConfig (GET)" #: ../development/specifications.rst:69 833aa61f227c44bebf4cab293e712391 msgid "/Schemas (GET)" msgstr "/Schemas (GET)" #: ../development/specifications.rst:70 437a13d677eb4961a96df34b5f5081dc msgid "/Schemas/ (GET)" msgstr "/Schemas/ (GET)" #: ../development/specifications.rst:71 31b2a6d444504b8c88257b25f6fd6467 msgid "/ResourceTypes (GET)" msgstr "/ResourceTypes (GET)" #: ../development/specifications.rst:72 e9a55c28a7944c5fbaa20d14508ac6ed msgid "/ResourceTypes/ (GET)" msgstr "/ResourceTypes/ (GET)" #: ../development/specifications.rst:74 7bd6fb34cea64198b21ae7f53d85a6a5 msgid "Features:" msgstr "Fonctionnalités :" #: ../development/specifications.rst:76 bb39dc2c17084a99bfe91991bff98c65 msgid ":rfc:`pagination <7644#section-3.4.2.4>`" msgstr "la :rfc:`pagination <7644#section-3.4.2.4>`" #: ../development/specifications.rst:81 da7a2a26dbfb494abca9e21b3178087e msgid "What is not implemented yet" msgstr "Ce qui n'est pas encore implémenté" #: ../development/specifications.rst:85 3f5bbff2d4e645e2bac778dfde9ed8dc msgid "/Users (PATCH)" msgstr "/Users (PATCH)" #: ../development/specifications.rst:86 b04a230b285c4f929df30d29d39f4adc msgid "/Groups (PATCH)" msgstr "/Groups (PATCH)" #: ../development/specifications.rst:87 a9624bebc96e4cde8a86dca7891fc608 msgid ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" msgstr ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" #: ../development/specifications.rst:88 0d99d94d47e2444bb6f01c2ec9473a56 msgid ":rfc:`/Bulk <7644#section-3.11>` (POST)" msgstr ":rfc:`/Bulk <7644#section-3.11>` (POST)" #: ../development/specifications.rst:89 506274526a7647ceb7d2e5261bbf9651 msgid ":rfc:`/.search <7644#section-3.4.3>` (POST)" msgstr ":rfc:`/.search <7644#section-3.4.3>` (POST)" #: ../development/specifications.rst:91 ../features.rst:9 #: 5939a5db19484022bdfaec1794dc1516 f057b88a8b504465b8ed8e332fd5a830 msgid "Features" msgstr "Fonctionnalités" #: ../development/specifications.rst:93 6296feda85f44091a6fc410094a96b28 msgid ":rfc:`filtering <7644#section-3.4.2.2>`" msgstr "les :rfc:`filtres <7644#section-3.4.2.2>`" #: ../development/specifications.rst:94 85a81b4268b44d729dfb8c5e7de75331 msgid ":rfc:`sorting <7644#section-3.4.2.3>`" msgstr "le :rfc:`tri <7644#section-3.4.2.3>`" #: ../development/specifications.rst:95 48122d4760344fb9ae3744592a4391d1 msgid ":rfc:`attributes selection <7644#section-3.4.2.5>`" msgstr "la :rfc:`sélection d'attributs <7644#section-3.4.2.5>`" #: ../development/specifications.rst:96 2b86a717dda044408341557e54acab93 msgid ":rfc:`ETags <7644#section-3.14>`" msgstr "les :rfc:`ETags <7644#section-3.14>`" #: ../development/specifications.rst:99 efa9edcb4c094b339af9010d82b9f505 msgid "Comparison with other providers" msgstr "Comparaison avec d’autres serveurs d’identité" #: ../development/specifications.rst:101 cb82439c48684c8d919147a88247f36f msgid "Here is a feature comparison with other OpenID Connect server software." msgstr "" "Voici une comparaison de fonctionnalités avec d’autres serveurs d’identité." #: ../development/specifications.rst:103 47f5af9436b14ce8afaae2e08adceb8d msgid "" "Canaille voluntarily only implements the OpenID Connect protocol to keep its " "codebase simple." msgstr "" "Afin de garder la base de code réduite, Canaille n’implémente que le " "protocole OpenID Connect." #: ../development/specifications.rst:106 230957da07d14930aac58e75241f769b msgid "Software" msgstr "Logiciel" #: ../development/specifications.rst:106 1e53a394ee3f4824ac843953a1c6f6a4 msgid "Project" msgstr "Projet" #: ../development/specifications.rst:106 da7a2a26dbfb494abca9e21b3178087e msgid "Protocols implementations" msgstr "Protocoles implémentés" #: ../development/specifications.rst:108 54e482c6722046fc9cad9abdf6501ebf msgid "FLOSS" msgstr "Libre" #: ../development/specifications.rst:108 27466fe335f14fc58651275455bc3b85 msgid "Language" msgstr "Langage" #: ../development/specifications.rst:108 a62b0ccd1e3642f1922043446575891c msgid "LOC" msgstr "LOC" #: ../development/specifications.rst:108 8a0ae563aeb34a48afdd436dfb90bdfb msgid "OIDC" msgstr "OIDC" #: ../development/specifications.rst:108 988a35af2eef476299eb83b8ae5a3849 msgid "SAML" msgstr "SAML" #: ../development/specifications.rst:108 32c77efb6cff4149868aa5ae1ea6e9d4 msgid "CAS" msgstr "CAS" #: ../development/specifications.rst:110 f48994303e73429c9073af002d2cbe8b msgid "Canaille" msgstr "Canaille" #: ../development/specifications.rst:110 ../development/specifications.rst:112 #: ../development/specifications.rst:114 ../development/specifications.rst:116 #: ../development/specifications.rst:118 ../development/specifications.rst:120 #: ../development/specifications.rst:122 ../development/specifications.rst:124 #: ../development/specifications.rst:126 ../development/specifications.rst:128 #: ../development/specifications.rst:130 ../development/specifications.rst:132 #: 4384675732a44a5699eadf3db840ea68 cecfeb6d9fb7420ca837b206d1d6764c #: a2b336de60474811a85371ac9b8fc936 f1e4ba474c2545f788b426e174b25269 #: 45623bf338bb42e8b4a3f1276d08dbf8 5c1d5b1b5b9947169a6512526bf1354c #: bca0227caf0541afac9dde2ef357f96a 99c49b778a0248848dc909e7e9de6327 #: 646e26dbbb6d4c158ff400b6c7ac4752 047de5aa45d14d57a0f7c65c16a25060 #: 374cb94f40a9471e95364d0dca1f9a0c 726b27f2dcf347c0b5421f3e41bf3dba #: 9fc1f509353c4f6cab3f7c3b21883cf6 eea6bc914188401e8e132b973e250a62 #: 92e87b99f7a1479aaa8dbca7200356e4 6f79ec5e229a4675b9b9a8c0d2700567 #: cdd868b8d08c488f9f47c95e0acf3f1b b36371c9f8004f0788446980ea23685a #: fc2c732457544aeab7c028832e170afd 47f38426ae2d4daf866ba55ca0fb065c #: 764feb42eb4f4c218bc5764f8d1076f3 a80e2f550fd842f3bdf85a6b83f985cd #: d2a83a7da92c4f599843afcaacff9727 msgid "✅" msgstr "✅" #: ../development/specifications.rst:110 ../development/specifications.rst:116 #: c38bff66a17c471fabb1344102a537ea msgid "Python" msgstr "Python" #: ../development/specifications.rst:110 2898d3796e7c4b88b8b7a9f519d2fc45 msgid "10k" msgstr "10k" #: ../development/specifications.rst:110 ../development/specifications.rst:112 #: ../development/specifications.rst:114 ../development/specifications.rst:116 #: ../development/specifications.rst:118 ../development/specifications.rst:120 #: ../development/specifications.rst:122 ../development/specifications.rst:126 #: ../development/specifications.rst:130 ../development/specifications.rst:132 #: 3a76f65f9cc740a5ac8954efd498ae76 fff8dea44f12432098ca99ba6d1b5c2e msgid "❌" msgstr "❌" #: ../development/specifications.rst:110 5cfccc6b8c584d5cbdd54736cddb3502 msgid "🟠" msgstr "🟠" #: ../development/specifications.rst:112 d9d78032f92a41c7bf30d755415a3cbb msgid "`Auth0`_" msgstr "`Auth0`_" #: ../development/specifications.rst:112 ../development/specifications.rst:122 #: ../development/specifications.rst:124 ../development/specifications.rst:132 #: 517701d2d9ae411db882f60fd1747fd0 msgid "❔" msgstr "❔" #: ../development/specifications.rst:114 1682bb5887184cd9bff0b61796d76876 msgid "`Authelia`_" msgstr "`Authelia`_" #: ../development/specifications.rst:114 ../development/specifications.rst:118 #: ../development/specifications.rst:126 d82982be3ee7475a983ce04e39624c7b msgid "Go" msgstr "Go" #: ../development/specifications.rst:114 ../development/specifications.rst:126 #: 44c24ba16cb6419abd4d3af84403a709 msgid "50k" msgstr "50k" #: ../development/specifications.rst:116 9110311d7f6e48b38ba0b32706d706e8 msgid "`Authentic2`_" msgstr "`Authentic2`_" #: ../development/specifications.rst:116 d5b5b77fa7e544278f1e017ebe7b9b73 msgid "65k" msgstr "65k" #: ../development/specifications.rst:118 0f7c8328ceb74a3286d140ea99595441 msgid "`Authentik`_" msgstr "`Authentik`_" #: ../development/specifications.rst:118 9b22f0bb6f364ffba33f4906e6bca29d msgid "55k" msgstr "55k" #: ../development/specifications.rst:120 935dcdae37fe48a68e5dfb04ab8f64f8 msgid "`CAS`_" msgstr "`CAS`_" #: ../development/specifications.rst:120 ../development/specifications.rst:124 #: ../development/specifications.rst:128 a9de8918cec743a1a9d325a74233ece4 msgid "Java" msgstr "Java" #: ../development/specifications.rst:120 fd1f63cd853f44e885dd67b3a6094f9a msgid "360k" msgstr "360k" #: ../development/specifications.rst:122 f10eb07a326744518a2f6b631cb88d15 msgid "`Connect2id`_" msgstr "`Connect2id`_" #: ../development/specifications.rst:124 4c26496dd0e544ef97d8d345c3d9169f msgid "`Gluu`_" msgstr "`Gluu`_" #: ../development/specifications.rst:126 b505e8661bf24fe287f1fc77d1326ab2 msgid "`Hydra`_" msgstr "`Hydra`_" #: ../development/specifications.rst:128 53abb4819cbf4fb7ad273fa25556814e msgid "`Keycloak`_" msgstr "`Keycloak`_" #: ../development/specifications.rst:128 5d8e6ef889ba4715986a7a237b753297 msgid "600k" msgstr "600k" #: ../development/specifications.rst:130 30fe26bf61584e29ac73c07d679ba6a5 msgid "`LemonLDAP`_" msgstr "`LemonLDAP`_" #: ../development/specifications.rst:130 12a5b8832f2b4831a41af30522055343 msgid "Perl" msgstr "Perl" #: ../development/specifications.rst:130 42f8e0deef9246a5a4f9a3cb69a5966f msgid "130k" msgstr "130k" #: ../development/specifications.rst:132 8bcf4b8cde474ff49b0e8bbc96e52986 msgid "`Okta`_" msgstr "`Okta`_" #: ../features.rst:11 ede71f0291474638a54b3c73dbf2e4bf msgid "" "Here are the different features that Canaille provides. You can enable any " "of those features with the :doc:`configuration ` " "to fit any :doc:`use cases ` you may meet. Check our :ref:" "`roadmap ` to see what is coming next." msgstr "" "Voici les différentes fonctionnalités que Canaille propose. Vous pouvez " "activer n’importe laquelle de ces fonctionnalités avec la :doc:" "`configuration ` pour que Canaille s’adapte au :" "doc:`cas d’usage ` que vous rencontrez. Jetez un œil à notre :ref:" "`feuille de route ` pour savoir ce qui arrive dans le " "futur." #: ../features.rst:15 cf814f15959a43cfaa0392cd83755fce msgid "" "Users can interact with Canaille through its :ref:`web interface ` and administrators can also use its :ref:`command line " "interface `. Canaille can handle data stored in different :ref:" "`database backends `." msgstr "" "Les utilisateurs peuvent interagir avec Canaille grâce à son :ref:`web " "interface ` et les administrateurs peuvent aussi " "utiliser son :ref:`interface en ligne de commande `. Canaille " "peut enregistrer les données dans différentes :ref:`bases de données " "`." #: ../features.rst:19 02e100abc6e44fe49224f9e4046dc49e msgid "User and group management" msgstr "Gestion d’utilisateurs et de groupes" #: ../features.rst:21 09d69566150048b4a17d192bfc4d5112 msgid "" "Canaille web interface can be used either in :doc:`production environments " "` or locally for development purposes." msgstr "" "L'interface web de Canaille web interface peut être utilisé dans des :doc:" "`environnements de production ` ou localement pour " "permettre les développements." #: ../features.rst:26 ../index.rst:27 4a8e8cfdbaaf4d86a28840ef0939d7d9 #: 947ce49c0ff9406fb81b5e3cc5329c24 msgid "Profile management" msgstr "Gestion de profil" #: ../features.rst:-1 d4de0b07d24e47b9aba16e48ed9cbe27 #: 542fdff284144a8c805b4824d03d6b76 msgid "Profile" msgstr "Profil" #: ../features.rst:33 c59d37a518514008bc2c6f2c18dd6326 msgid "Canaille provides an interface to manage user profiles." msgstr "Canaille fournit une interface pour gérer les profils utilisateur." #: ../features.rst:35 8b67e3a00af440328b615d2921dc27a6 msgid "" "The exact list of displayed fields, and whether they are :attr:`writable " "` or :attr:`read-only " "` depends on the user :class:" "`Access Control List settings (ACL) `." msgstr "" "La liste exacte des champs affichés ainsi que s'ils sont accessible en :attr:" "`écriture ` ou en :attr:" "`lecture seule ` dépend du " "paramètre utilisateur :class:`liste de contrôle d'accès (ACL) `." #: ../features.rst:37 eb4ca5b563c44281aefc8d4ad4c549e8 msgid "" "Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit " "any user profile, or do nothing at all." msgstr "" "Selon les :class:`droits ` de leur " "liste de contrôle d'accès (ACL) , les utilisateurs peuvent soit modifier " "leur profil, modifier le profil de n'importe quel utilisateur ou ne rien " "faire du tout." #: ../features.rst:42 e4d34befed5941bab9161eb3c0330fad msgid "Email confirmation" msgstr "Confirmation de l'e-mail" #: ../features.rst:44 28a9397d838e4ffaaf5c8f8558416355 msgid "" "If the :attr:`email confirmation feature ` is enabled, any modification or addition " "of a profile email will send a confirmation mail to the new address. The " "mail will contain a link that users will need to click on to confirm their " "email address." msgstr "" "Si la :attr:`fonctionnalité de confirmation d'e-mail ` est activée, toute " "modification ou ajout de profil enverra un e-mail de confirmation à la " "nouvelle adresse. L'e-mail contiendra un lien sur lequel l'utilisateur devra " "cliquer pour confirmer son adresse." #: ../features.rst:46 d3563178a13d42268ae8a3f0cb15b90f msgid "" "Users with :attr:`user management permission ` can set user emails without confirmation though." msgstr "" "Les utilisateurs avec le :attr:`droit de gérer les utilisateurs ` peut paramétrer les e-mails des " "utilisateurs sans confirmation." #: ../features.rst:51 280cf35bfcbe4a25b39bb567780bafdb msgid "Group management" msgstr "Gestion de groupes" #: ../features.rst:-1 1d74522e450c43f5adec93c195b5a356 #: ca799065d4684b54940c65062bed411b msgid "Group edition" msgstr "Édition de groupes" #: ../features.rst:58 1471f707ae604de8b2b0222ca43eb2c2 msgid "" "In a similar fashion than :ref:`profile management " "` Canaille provides an interface to manage user " "groups." msgstr "" "De manière similaire à la :ref:`gestion de profil " "`, Canaille fournit une interface pour gérer les " "groupes d'utilisateur." #: ../features.rst:60 08eb7bac987947149589e0b40c938b0c msgid "" "The group management is quite simple at the moment and consists in a group " "name and description, and the list of its members. Group membership can be " "use as :attr:`ACL Filter ` " "to define user permissions." msgstr "" "La gestion de groupe est assez simple actuellement et consiste en un nom de " "groupe, une description et la liste de ses membres. Appartenir au groupe " "peut être utilisé comme :attr:`filtre ACL ` pour définir les droits utilisateur." #: ../features.rst:63 ../features.rst:83 ../features.rst:149 #: ../tutorial/deployment.rst:13 ../tutorial/provisioning.rst:13 #: 4ca7b990ff9c429aa56f1ec0ab57aef9 2cf4c2bbf0ab431f857b4fe0f7b840a0 #: 1382b05cef654b76b8fb57324f33b950 757f761fb4724713bdc1308505431bfb #: 12614607f99a412c9cf9f161db77c3ac msgid "Todo" msgstr "À faire" #: ../features.rst:64 89199041503f41d3b7cad73267f4cf96 msgid "" "At the moment adding an user to a group can only be achieved by the user " "settings page, but we are :issue:`working to improve this <192>`." msgstr "" "Actuellement, l'ajout d'utilisateur dans un groupe ne peut être fait que " "depuis la page de paramètre de l'utilisateur, mais nous :issue:`travaillons " "à améliorer cela <192>`." #: ../features.rst:66 fcdf9f9d5f1e4723b46a2ca1fc89539e msgid "" "Group management can be enable with a :attr:`dedicated user permission " "`." msgstr "" "La gestion de groupe peut être activée avec un :attr:`droit utilisateur " "dédié `." #: ../features.rst:69 95eff978c7994138a3200e090c84471d msgid "" "Due to limitations in the :ref:`LDAP backend `, " "groups must have at least one member. Thus it is not possible to remove the " "last user of a group without removing the group." msgstr "" "À cause d'une contrainte dans :ref:`LDAP `, les " "groupes doivent avoir au moins un membre. Il n'est donc pas possible de " "supprimer le dernier utilisateur d'un groupe sans supprimer le groupe." #: ../features.rst:75 ../index.rst:34 177c53d2c6094d43875d87ca2a55ed98 #: 937baa96f2514cdaad76f4d28816abe7 msgid "User authentication" msgstr "Authentification utilisateur" #: ../features.rst:77 d461efae4b9d41e4b7dba32a75588df0 msgid "" "Unless their account is :ref:`locked `, users can " "authenticate with a login and a password." msgstr "" "Sauf si leur compte est :ref:`verrouillé `, les " "utilisateurs peuvent s'authentifier avec un identifiant et un mot de passe." #: ../features.rst:81 3c53cd1507ce48c780297457fc4efd97 msgid "" "For security reasons, it won't be told to users if they try to sign in with " "an unexisting logging, unless explicitly :attr:`set in the configuration " "`." msgstr "" "Pour des raisons de sécurité, si un utilisateur essaie de se connecter avec " "un identifiant inexistant, cela ne sera pas précisé, sauf :attr:`paramétrage " "explicite dans la configuration `." #: ../features.rst:83 80eee19145c64fbc9ea0c26464fab965 msgid "" ":ref:`LDAP backend ` users can define which :class:" "`user field ` should be used as the login (such " "as :attr:`~canaille.core.models.User.user_name` or :attr:`~canaille.core." "models.User.emails`) using a :attr:`configuration parameter `, but other backends " "can only login using :attr:`~canaille.core.models.User.user_name`. We are :" "issue:`working to improve this <196>`." msgstr "" "Les utilisateurs :ref:`basé sur LDAP ` peuvent " "définir quel :class:`champ utilisateur ` doit " "être utilisé comme identifiant (tel que :attr:`~canaille.core.models.User." "user_name` ou :attr:`~canaille.core.models.User.emails`) en utilisant un :" "attr:`paramètre de configuration `, mais les autres backends peuvent seulement se " "connecter avec :attr:`~canaille.core.models.User.user_name`. Nous :issue:" "`travaillons à améliorer cette situation <196>`." #: ../features.rst:88 560be09061014d5485f75f3c90d3790c msgid "User registration" msgstr "Enregistrement d'un utilisateur" #: ../features.rst:90 4780fab4d36744c6991df9ae3919e4a0 msgid "" "Users can create accounts on Canaille if the :attr:`registration feature " "` is enabled. " "They will be able to fill a registration form with the fields detailed in " "the default :class:`ACL settings `." msgstr "" "Les utilisateurs peuvent créer des comptes sur Canaille si la " "fonctionnalité :attr:`d'enregistrement ` est activée. Ils pourront remplir un " "formulaire d'enregistrement contenant les champs détaillés dans les :class:" "`paramètres ACL ` par défaut." #: ../features.rst:92 f1e0991feda34f918887bf7653c16801 msgid "" "If :attr:`email confirmation ` is also enabled, users will be sent a confirmation link " "to their email address, on which they will need to click in order to " "finalize their registration." msgstr "" "Si la :attr:` confirmation par e-mail ` est aussi activée, les utilisateurs " "recevront un lien de confirmation sur leur adresse e-mail. Ils devront " "cliquer dessus pour valider la création du compte." #: ../features.rst:-1 ../features.rst:97 6edf18a1ecff4430baaed61db6717c23 #: a2293ea9f6564b6b8bc9c02c5a8f0f40 msgid "User invitation" msgstr "Invitation d'utilisateur" #: ../features.rst:104 7f4e56bdbb9842beba1644e2fabad41f msgid "" "If a :class:`mail server ` is " "configured, users with :attr:`user management permission ` can create an invitation link for " "one user." msgstr "" "Si un :class:`serveur e-mail ` est " "configuré, les utilisateurs avec le :attr:`droit de gérer les utilisateurs " "` peuvent créer un lien " "d'invitation pour un autre utilisateur." #: ../features.rst:106 05145189cce34c4d80a56aa785cee5f5 msgid "" "The link goes to a registration form, even if regular :ref:`user " "registration ` is disabled." msgstr "" "Le lien pointe vers le formulaire d'neregistrement, même si :ref:" "`l'enregistrement d'utilisateur ` est désactivée." #: ../features.rst:108 24a4d13134934174aaedf461e03f2363 msgid "It can be automatically sent by email to the new user." msgstr "Il peut être envoyé automatiquement par e-mail au nouvel utilisateur." #: ../features.rst:113 a05444b5846248f9aebaa28b316be1b8 msgid "Account locking" msgstr "Verrouillage des comptes" #: ../features.rst:115 1c40bbaf596c4a28993904e4aab8b076 msgid "" "If Canaille is plugged to a :ref:`backend ` that supports " "it, user accounts can be locked by users with :attr:`user management " "permission `. The lock " "date can be set instantly or at a given date in the future." msgstr "" "Si Canaille est branché à un :ref:`backend ` supportant " "cette fonctionnalité, les comptes utilisateurs peuvent être verrouillés avec " "la :attr:`permission de gestion des utilisateurs `. La date de verrouillage du compte " "peut être immédiate, ou bien effective à une date future définie." #: ../features.rst:118 e6053c7a0e4c4feabd77b2aa14c50018 msgid "At the moment a user account is locked:" msgstr "Au moment où un compte utilisateur est verrouillé :" #: ../features.rst:120 1614c2a9020a4da58427064a8b480050 msgid "their open sessions will be closed;" msgstr "leurs sessions ouvertes seront fermées ;" #: ../features.rst:121 bd083a39c3e94f20b0ca06eb45a6ee68 msgid "they won't be able to sign in again;" msgstr "ils ne pourront plus se connecter à nouveau ;" #: ../features.rst:122 3f671916358b469d91fb687a638b5c39 msgid "no new OIDC token will be issued;" msgstr "aucun nouveau token OIDC ne sera émis ;" #: ../features.rst:124 2cc679d736b341e4bde79d159d806618 msgid "" "User accounts must be manually unlocked by an administrator for the users to " "regain access to those actions." msgstr "" "Les comptes utilisateur doivent être déverrouillés manuellement par un " "administrateur pour que les utilisateurs concernés récupèrent l'accès à ces " "actions." #: ../features.rst:129 fb080216984840ba99f095aece85255d msgid "Account deletion" msgstr "Suppression des comptes" #: ../features.rst:131 1339699fc6974a4e8e1ab03633a79a69 msgid "" "Users with the :attr:`account deletion permission ` are allowed to delete their own " "account." msgstr "" "Les utilisateurs avec la :attr:`permission de suppression de compte " "` peuvent supprimer " "leur propre compte." #: ../features.rst:133 65b2e1806f3a437aa8b5238f022e0352 msgid "" "Users that also have the :attr:`user management permission ` are also allowed to delete other " "users accounts." msgstr "" "Les utilisateurs qui ont additionnellement la :attr:`permission de gestion " "des utilisateurs ` " "peuvent également supprimer les comptes d'autres utilisateurs." #: ../features.rst:138 278ed12bce6b4b318f677aa6d22138f5 msgid "Password recovery" msgstr "Récupération de mot de passe" #: ../features.rst:145 c2409768ec7a46d584ed1ed235e7a4d0 msgid "" "If a :class:`mail server ` is " "configured and the :attr:`password recovery feature ` is enabled, then users " "can ask for a password reset email if they cannot remember their password." msgstr "" "Si un :class:`serveur e-mail ` est " "configuré, et la :attr:`fonctionnalité de récupération de mot de passe " "` est " "activée, les utilisateurs peuvent demander l'envoi d'un e-mail de " "réinitialisation de mot de passe s'ils ont oublié leur mot de passe." #: ../features.rst:147 7dbfa07474cd40c7a7c17748fbb21a07 msgid "" "The email will be sent to the email addresses filled in their profile, and " "will contain a link that will allow them to choose a new password. ." msgstr "" "L'e-mail sera envoyé à l'adresse e-mail saisie dans leur profil, et " "contiendra un lien leur permettant de choisir un nouveau mot de passe." #: ../features.rst:151 410c54a611eb4b1c8a372b80f744f941 msgid "Check that password recovery is disabled on locked accounts." msgstr "" "Vérifie que la récupération de mot de passe est désactivée pour les comptes " "verrouillés." #: ../features.rst:156 2c4f6c64da0c42eab5520711fca1dc46 msgid "Password reset" msgstr "Réinitialisation des mots de passe" #: ../features.rst:158 383eb7a045cd41f0909ad9aad2601065 msgid "" "If a :class:`mail server ` is " "configured, :attr:`user management permission ` can send password reset mails to users. The mails " "contains a link that allow users to choose a new password without having to " "retrieve the old one." msgstr "" "Si un :class:`serveur e-mail ` est " "configuré, la :attr:`permission de gestion des utilisateurs ` permet d'envoyer des e-mails de " "réinitialisation de mot de passe aux utilisateurs. Les e-mails contiennent " "un lien qui permet aux utilisateurs de choisir un nouveau mot de passe sans " "avoir besoin de retrouver l'ancien." #: ../features.rst:164 7be9af4a393e4203b3da626d93d71d69 msgid "Password initialization" msgstr "Initialisation des mots de passe" #: ../features.rst:166 02bd8f9a76fd4b66a8f803288246c0ef msgid "" "User :attr:`passwords ` are optional. If " "a :class:`mail server ` is " "configured, when users with no password attempt to sign in, they are invited " "to click a button that will send them a password initialization mail. The " "mail contains a link that leads to a form that allows users to choose a " "password." msgstr "" "Les :attr:`mots de passe ` utilisateur " "sont optionnels. Si un :class:`serveur e-mail ` est configuré, quand un utilisateur sans mot de passe tente " "de se connecter, il est invité à cliquer sur un bouton déclenchant l'envoi " "d'un e-mail de réinitialisation de mot de passe. Cet e-mail contient un lien " "dirigeant vers un formulaire permettant à l'utilisateur de choisir un mot de " "passe." #: ../features.rst:173 4f60c7a56e5544afa1bbaee9df0805e0 msgid "Password compromission check" msgstr "Vérification de la compromission du mot de passe" #: ../features.rst:175 3dc13b94cd014d6f976426da9840a3d6 msgid "" "If :attr:`password compromission check feature ` is enabled, Canaille will " "check for password compromise on HIBP (https://haveibeenpwned.com/) every " "time a new password is register. You will need to set an :attr:`admin email " "`." msgstr "" "Si l' :attr:`option de vérification de compromission du mot de passe " "` est activée, Canaille va vérifier la " "compromission du mot de passe sur HIBP (https://haveibeenpwned.com/) à " "chaque fois qu'un nouveau mot de passe est saisi. La configuration d'un :" "attr:`e-mail administrateur ` est nécessaire." #: ../features.rst:180 d0049b96f7c1401a91d968aa93715930 msgid "Multi-factor authentication" msgstr "Authentification multi-facteurs" #: ../features.rst:182 c480b36838b64abbbe3986a7295613d5 msgid "" "If the :attr:`one-time password feature ` is set, then users will need to authenticate " "themselves using a one-time password via an authenticator app. Two options " "are supported : \"TOTP\" for time one-time password, and \"HOTP\" for HMAC-" "based one-time password. In case of lost token, TOTP/HOTP authentication can " "be reset by users with :attr:`user management permission `. If a :class:`mail server ` is configured and the :attr:`email one-" "time password feature ` " "is enabled, then users will need to authenticate themselves via a one-time " "password sent to their primary email address. If a :class:`smpp server " "` is configured and the :attr:`sms " "one-time password feature ` is enabled, then users will need to authenticate themselves via a " "one-time password sent to their primary phone number." msgstr "" "Si la fonctionnalité de :attr:`mots de passe à usage unique ` est activée, alors les utilisateurs " "devront s'authentifier avec un mot de passe temporaire généré par une " "application d'authentification.\n" "Deux méthodes sont supportées : \"TOTP\" pour les mots de passes temporaires " "basés sur temps, et \"HOTP\" pour les mots de passes temporaires basés sur " "HMAC.\n" "En cas de perte de jeton, l'authentification TOTP/HOTP peut être " "réinitialisée par les utilisateurs avec la :attr:`permission de gestion des " "utilisateurs `.\n" "Si un :class:`serveur mail ` est " "configuré et que la fonctionnalité de :attr:`mots de passe temporaires par " "mail ` est activée, " "alors les utilisateurs devront pour s'authentifier entrer un mot de passe " "temporaire envoyé à leur adresse email principale.\n" "Si un :class:`serveur SMPP ` est " "configuré et que la fonctionnalité de :attr:`mots de passe temporaires par " "SMS ` est activée, alors " "les utilisateurs devront pour s'authentifier entrer un mot de passe " "temporaire envoyé à leur numéro de téléphone principal." #: ../features.rst:189 a9118911f6a341a3b529fd8882c4e3e4 msgid "Web interface" msgstr "Interface web" #: ../features.rst:194 277603f8de354f15857ad0068f148115 msgid "Internationalization" msgstr "Internationalisation" #: ../features.rst:-1 6bc7d90be4bf486d8a2e84a48cc76b66 msgid "Translation state" msgstr "État de la traduction" #: ../features.rst:201 a1f40124b57e452a85abf8af401dc2b1 msgid "" "Canaile will display in your :attr:`preferred language ` if available, or your browser language if " "available (and if it is not you can :ref:`help us with the translation " "`). If you prefer, you can also :" "attr:`force a language ` " "for every users." msgstr "" "Canaille va s'afficher dans votre :attr:`langue préférée ` si disponible, ou la langue de votre " "navigateur si disponible (si elle ne l'est pas, vous pouvez :ref:`noud aider " "à la traduire `). Si vous le " "souhaitez, vous pouvez également :attr:`forcer une langue ` pour tous les utilisateurs." #: ../features.rst:207 8bf0ddac3fee4b4f931bd704bbb167dc msgid "Lightweight" msgstr "Léger" #: ../features.rst:209 3774910a87b34b9dba3b6c28a1e6ba68 msgid "" "The web interface is lightweight, so everything should load quickly. There " "is a few Javascript here and there to smooth the experience, but no " "Javascript at all is needed to use Canaille." msgstr "" "L'interface web est légère, donc tout devrait se charger rapidement. Il y a " "un peu de Javascript ici et là pour lisser l'expérience, mais aucun " "Javascript n'est absolument nécessaire à l'utilisation de Canaille." #: ../features.rst:213 0da766448075460d9360204e6975a0f4 msgid "Customizable" msgstr "Personnalisable" #: ../features.rst:215 737f45bc79a542ee903e8349947c3b5f msgid "" "The default theme should be good enough for most usages. It has a dark " "theme, display well on mobile, and let you choose a :attr:`logo ` and a :attr:`favicon `." msgstr "" "Le thème par défaut devrait suffir à la plupart des usages. Il dispose d'un " "thème sombre, s'affiche bien sur mobile, et vous laissez choisir un :attr:" "`logo ` et un :attr:`favicon " "`." #: ../features.rst:218 36b615461b0c49e9aca81c65a60c3308 msgid "" "If you need more you can also use a :attr:`custom theme `." msgstr "" "Si vous avez besoin de plus, vous pouvez utiliser un :attr:`thème " "personnalisé `." #: ../features.rst:225 02908b4590a0462cac7afbc2fd17d7f6 msgid "" "Canaille implements a :ref:`subset` of the OAuth2/OpenID Connect specifications . This " "allows to provide :abbr:`SSO (Single Sign-On)` and :abbr:`SLO (Single Log-" "On)` to applications plugged to Canaille." msgstr "" "Canaille implémente un :ref:`sous-ensemble` de la spécification de OAuth2/OpenID Connect. " "Cela permet d'avoir la :abbr:`SSO (Single Sign-On)` et la :abbr:`SLO (Single " "Log-On)` aux applications branchées à Canaille." #: ../features.rst:229 f8c59847b97049d19a13ccaa6539f863 msgid "Consent management" msgstr "Gestion des autorisations" #: ../features.rst:237 8e7afe2e2e6943feb664ab03ae9da770 msgid "" "Users can give their consent to application requesting access to their " "personal information, and then revoke those consent at their will." msgstr "" "Les utilisateurs peuvent donner leur autorisation aux applications qui " "demandent un accès à leurs informations personnelles, et révoquer ces " "autorisations lorsqu'ils le souhaitent." #: ../features.rst:241 c7a8da519165448ebc4e1c53eb25f207 msgid "Application management" msgstr "Gestion des applications" #: ../features.rst:243 2e65c0c497da4a77bc85c9500a074047 msgid "" "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." msgstr "" "Les utilisateurs ayant la :attr:`permission ` nécessaire peuvent gérer les clients OIDC depuis " "l'interface web." #: ../features.rst:245 bafe35db98f749d99557feec3ceaf4e7 msgid "" "In some cases, it might be useful to avoid the consent page for some trusted " "applications, so clients can be pre-consented." msgstr "" "Dans certains cas, il peut être utile d'éviter la page d'autorisation pour " "certaines applications de confiance, pour que des clients puissent être pré-" "autorisés." #: ../features.rst:248 76b48b09fc1c44038a697dfa816afbcc msgid "Discovery" msgstr "Découverte" #: ../features.rst:250 f251fff6b3374ecd9fde5bdebced6313 msgid "" "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-" "configure themselves." msgstr "" "Canaille implémente les :doc:`spécifications de découverte ` donc la plupart des applications branchées à Canaille " "peuvent se configurer automatiquement par eux-même." #: ../features.rst:253 4fac1fe3bcd346aeb34e8c600df0d542 msgid "Dynamic Client Registration" msgstr "Enregistrement de client dynamique" #: ../features.rst:255 f53321a9a89d40c0b7fdc48be51240a4 msgid "" "Canaille implements the :doc:`Dynamic Client Registration specifications " "`, so when the :attr:`feature is enabled " "`, clients can register themselves on " "Canaille without an administrator intervention." msgstr "" "Canaille implémente les :doc:`spécifications d'enregistrement de client " "dynamique `, donc quand la :attr:`fonctionnalité " "est activée `, les clients peuvent s'enregistrer eux-" "même sur Canaille sans l'intervention d'un administrateur." #: ../features.rst:258 ec8846e6d8404a8185860b509814e54c msgid "System administration" msgstr "Administration système" #: ../features.rst:263 ../references/commands.rst:2 #: 511d3810fbd4411dbf14065b1f014256 a07ec9235c4347858a3f9dd667ade4b6 msgid "Command Line Interface" msgstr "Interface en ligne de commande" #: ../features.rst:265 446a668dea4548ffb184afa168ed6115 msgid "" "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " "administrators in hosting and management." msgstr "" "Canaille est équipé d'un :abbr:`CLI (Command Line Interface)`, ou interface " "en ligne de commande, pour aider les administrateurs à l'hébergement et à la " "gestion." #: ../features.rst:267 1b76ec06f2f841ccb8396a5345014ffd msgid "" "There are tools to :ref:`check your configuration ` or to :ref:" "`install missing parts `. You can use the CLI to :ref:`create " "`, :ref:`read `, :ref:`update ` and :ref:" "`delete ` models such as :class:`users `, :class:`groups ` or :class:`OIDC " "clients `." msgstr "" "L'interface en ligne de commande dispose d'outils pour :ref:`vérifier votre " "configuration ` ou pour :ref:`installer des éléments manquants " "`. Vous pouvez utiliser le CLI pour :ref:`créer `, :" "ref:`lire `, :ref:`mettre à jour ` et :ref:`supprimer " "` des modèles comme les :class:`utilisateurs `, :class:`groupes ` ou les  :class:" "`clients OIDC `." #: ../features.rst:270 9f10d5a6354c4cda8b1a4e652c129231 msgid "" "There are also tools to :ref:`fill your database ` with random " "objects, for tests purpose for instance." msgstr "" "Elle dispose également d'outils pour :ref:`remplir votre base de données " "` avec des objets aléatoires, par exemple à des fins de test." #: ../features.rst:275 ../tutorial/databases.rst:2 #: 3f06ed32b21149799d58c75cad1db5ff fbfabda71be84552b6583acdaa13af3e msgid "Databases" msgstr "Bases de données" #: ../features.rst:277 004f29ea7eb74ee2912627a929e87f1c msgid "" "Canaille can handle data from the most :ref:`common SQL databases ` such as PostgreSQL, MariaDB or SQLite, as well as :ref:" "`OpenLDAP `. It also comes with a no-dependency :" "ref:`in-memory database ` that can be used in " "unit tests suites." msgstr "" "Canaille peut manipuler de la donnée depuis des  :ref:`bases de données SQL " "` les plus communes, telles que PostgreSQL, MariaDB " "ou SQLite, ainsi que depuis :ref:`OpenLDAP `. " "Canaille dispose également d'une :ref:`base de données en mémoire ` sans dépendances qui peut être utilisée dans des tests " "unitaires." #: ../features.rst:283 8add6581a16b4877a66ba7c8827152ca msgid "Logging" msgstr "Connexion" #: ../features.rst:285 1179b565c1de4b11a03ca824cce52977 msgid "" "Canaille writes :attr:`logs ` for every important event happening, to help administrators " "understand what is going on and debug funky situations." msgstr "" "Canaille écrit des :attr:`journaux ` pour tous les événements importants dans le but d'aider les " "administrateurs à comprendre ce qui se passe et déboguer les cas bizarres." #: ../features.rst:287 a6282bdfca0b4e2c8ecfd02478d3623d msgid "" "The following security events are logged with the log level \"security\" for " "easy retrieval :" msgstr "" "Les événements de sécurité suivants sont enregistrés avec l'étiquette « " "security » pour les retrouver facilement :" #: ../features.rst:289 49f7ec7627e7414aa616f1060c33d110 msgid "Authentication attempt" msgstr "Tentative d'authentification" #: ../features.rst:290 a26713f492ff4f14a2e3a881e7ab19f1 msgid "Password update" msgstr "Mise à jour du mot de passe" #: ../features.rst:291 ca7c103705f14293950cc12dedd96378 msgid "Email update" msgstr "Mise à jour de l'e-mail" #: ../features.rst:292 0e01ba62ff054e4e849ae1d4c1f6fdee msgid "Forgotten password mail sent to user" msgstr "Mail d'oubli de mot de passe envoyé à l'utilisateur" #: ../features.rst:293 0e01ba62ff054e4e849ae1d4c1f6fdee msgid "One-time password mail sent to user" msgstr "Le mot de passe à usage unique a correctement été envoyé par mail" #: ../features.rst:294 d0049b96f7c1401a91d968aa93715930 msgid "Multi-factor authentication reset" msgstr "Réinitialisation de l'authentification multi-facteurs" #: ../features.rst:295 8f4e5a1567114749b944d391c43ad2bb msgid "Token emission" msgstr "Emission de jeton" #: ../features.rst:296 04cf77b4e9514ab7805b4f4156209cff msgid "Token refresh" msgstr "Rafraichissement de jeton" #: ../features.rst:297 ec6501d110694e58b6181468d6154bda msgid "Token revokation" msgstr "Révocation des jetons" #: ../features.rst:298 76f7ecd101a541d3a1dbb7b3090db868 msgid "New consent given for client application" msgstr "Nouvelle autorisation donnée pour l'application client" #: ../features.rst:299 100d9e39db3644c78ed000b9d27342a4 msgid "Consent revokation" msgstr "Révocation de l'autorisation" #: ../features.rst:304 267852d80a8f4235af2ca961f8de8f09 msgid "Development and testing tool" msgstr "Outil de développement et de test" #: ../features.rst:309 3dd5b1afcdf74705a07096fb3d7fd788 msgid "Unit-testing tool" msgstr "Outil de test unitaire" #: ../features.rst:311 8c74a6c31d294bcb85e4fd0db0bb40fd msgid "" "Thanks to its lightweight :ref:`in-memory database ` and its curated :ref:`dependency list `, Canaille can be used in the unit test suite of your application, so " "you can check how it behaves against a real world OpenID Connect server. If " "you work with python you might want to check :doc:`pytest-iam:index`." msgstr "" "Grâce à sa :ref:`base de données en mémoire `légère et sa :ref:`liste de dépendances `, Canaille peut être utilisé dans la suite de tests unitaires de votre " "application, pour que vous puissiez vérifier comment l'application se " "comporte face à un vrai serveur OpenID Connect. Si vous travaillez en " "python, vous pourriez être intéressé par :doc:`pytest-iam:index`." #: ../features.rst:314 197c22656e1b44b89c3587f95b3bb5c8 msgid "Development server" msgstr "Serveur de développement" #: ../features.rst:316 5f930c719ffe484d9680e8d7f3169e54 msgid "" "It can also being launched in your development environment, if you find that " "launching a Keycloak in a Docker container is too heavy for your little web " "application." msgstr "" "Canaille peut également être lancé dans votre environnement de " "développement, si vous trouvez que lancer un Keycloak dans un conteneur " "Docker est trop lourd pour votre application web." #: ../features.rst:321 e9cc836cf3d54a32ad7b1d691826bc39 msgid "Continuous Integration tools" msgstr "Outils d'intégration continue" #: ../features.rst:323 a4c714c1c0d44b7ab7a10dff7105a725 msgid "" "It also fits well in continuous integration scenarios. Thanks to its :ref:" "`CLI `, you can prepare data in Canaille, let your application " "interact with it, and then check the side effects." msgstr "" "Canaille s'intègre également bien dans des scénarios d'intégration continue. " "Grâce à son :ref:`CLI `, vous pouvez préparer la donnée dans " "Canaille, laisser votre application interagir avec, puis observer les effets " "secondaires." #: ../features.rst:326 cef90af6922045ccb06933f9c96c6f6e msgid "Roadmap" msgstr "Prévisionnel" #: ../features.rst:329 35efac03aaf843308e6941fa96ff921b msgid "Bêta version" msgstr "Version bêta" #: ../features.rst:331 390267ac81744daf95a62fffcd0af834 msgid "" "To go out of the current Alpha version we want to achieve the following " "tasks:" msgstr "" "Pour sortir de la version Alpha actuelle, nous voulons réaliser les taches " "suivantes :" #: ../features.rst:333 16cbac25ee2f420abda2992cd351559c msgid ":issue:`Configuration validation using pydantic <138>`" msgstr "" ":issue:`Validation de la configuration en utilisant using pydantic <138>`" #: ../features.rst:336 9f7d9a2a96974645bd8fc63a44d1a2c8 msgid "Stable version" msgstr "Version stable" #: ../features.rst:338 2736b944f850403f9592ba3265b6f986 msgid "" "Before we push Canaille in stable version we want to achieve the following " "tasks:" msgstr "" "Avant de déployer Canaille en version stable, nous voulons réaliser les " "taches suivantes :" #: ../features.rst:341 4a9ef596fb13405185ef106cd2dda007 msgid "Security" msgstr "Sécurité" #: ../features.rst:343 a09c2af5ad3e424eba893efd02faf213 msgid ":issue:`Password hashing configuration <175>`" msgstr ":issue:`Configuration du hashage du mot de passe <175>`" #: ../features.rst:344 3001ee87077c4479b3f3c8b3b5aecd33 msgid ":issue:`Authentication logging policy <177>`" msgstr ":issue:`Politique de journalisation des authentifications <177>`" #: ../features.rst:345 e4387f0454dd483eb1c33ce14ef1d9ea msgid ":issue:`Intruder lockout <173>`" msgstr ":issue:`Blocage des connexions après échecs <173>`" #: ../features.rst:346 e38560428a8f48528d9f02a5e00197fb msgid ":issue:`Password expiry policy <176>`" msgstr ":issue:`Politique d’expiration des mots de passe <176>`" #: ../features.rst:347 de013ed91c4443d190d9783c5cff060a msgid ":issue:`Multi-factor authentication: Email <47>`" msgstr ":issue:`Authentification multi-facteurs : Email <47>`" #: ../features.rst:348 d0049b96f7c1401a91d968aa93715930 msgid ":issue:`Multi-factor authentication: SMS <47>`" msgstr ":issue:`Authentification multi-facteurs : SMS <47>`" #: ../features.rst:349 e5e2f43901ae4d00bd1c675076fb846d msgid ":issue:`Multi-factor authentication: OTP <47>`" msgstr ":issue:`Authentification multi-facteurs : OTP <47>`" #: ../features.rst:352 277364ce7ca04a169409ad5acf68d075 msgid "Packaging" msgstr "Paquets" #: ../features.rst:354 dece9c7d75d441cdbdce48eb7a4bebcf msgid ":issue:`Nix package <190>`" msgstr ":issue:`Paquet Nix <190>`" #: ../features.rst:355 a53f52a497344bb6b889fa63de7d9c26 msgid ":issue:`Docker / OCI package <59>`" msgstr ":issue:`Paquet Docker / OCI <59>`" #: ../features.rst:358 6a738414fcb944ac9c4d5b61a53f0d11 msgid "And beyond" msgstr "Et au-delà" #: ../features.rst:360 66a95c24a32940118517f6bb3bf27838 msgid ":issue:`OpenID Connect certification <182>`" msgstr ":issue:`Certification OpenID Connect <182>`" #: ../features.rst:361 73307b368d454e338ff4bbd05657bbcc msgid ":issue:`SCIM support <116>`" msgstr ":issue:`Support SCIM <116>`" #: ../index.rst:15 8d018998cb4b4ff38d92f2a73326716e msgid "Lightweight Identity and Authorization Management" msgstr "Serveur d’identité et d'autorisations ultra-léger" #: ../index.rst:19 55ed7b7eb88e42f78ef42eb5b55a3555 msgid "" "**Canaille** is a French word meaning *rascal*. It is roughly pronounced " "**Can I?**, as in *Can I access your data?* Canaille is a lightweight " "identity and authorization management software. It aims to be very light, " "simple to install and simple to maintain. Its main features are :" msgstr "" "**Canaille** est un mot français dont la prononciation (en anglais) " "ressemble à **Can I?**, comme dans *Can I access your data?* (Puis-je " "accéder à vos données ?). Canaille est un logiciel de gestion d'autorisation " "et d'identité léger. Il est conçu pour être très léger, simple à installer " "et simple à maintenir. Ses fonctionnalités principales sont :" #: ../index.rst:31 d12af997fa5e48da987d2ecfcb4f149f msgid "User profile and groups management, Basic permissions" msgstr "Gestion de profils utilisateur et de groupes, permissions simples" #: ../index.rst:38 ea53cfd918924c97a6726cfd357f5ce5 msgid "" "Authentication, registration, email confirmation, \"I forgot my password\" " "emails" msgstr "" "Authentification, inscription, confirmation par e-mail, e-mails \"J'ai " "oublié mon mot de passe\"" #: ../index.rst:40 127cca0af1054bf08a8ce05d1c55d539 msgid "SSO" msgstr "Authentification unique (SSO)" #: ../index.rst:44 f4b6d7b278ba480da9d7c964849ba988 msgid "OpenID Connect identity provider" msgstr "Fournisseur d'identité OpenID Connect" #: ../index.rst:46 be1ff5f7d2ca468fa300f595696d9c10 msgid "Multi-database support" msgstr "Gestion de multiples bases de données" #: ../index.rst:50 92a7a7f6ee474890bf705bd67945dd9e msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "PostgreSQL, Mariadb et OpenLDAP sont des citoyens de première classe" #: ../index.rst:52 b1569cdc9eef44d68ed3b52496ef75b3 msgid "Customization" msgstr "Personnalisation" #: ../index.rst:56 68415646dbfa4be79d953583749246fe msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" msgstr "" "Mettez Canaille à vos couleurs en choisissant un logo ou en utilisant un " "thème personnalisé !" #: ../index.rst:58 2a6a4e752e494f65b7766a082624d1a4 msgid "Developers friendliness" msgstr "Facilité de développement" #: ../index.rst:62 42693164646349bcbe9f680b08cd904b msgid "" "Canaille can easily fit in your unit tests suite or in your Continuous " "Integration." msgstr "" "Canaille peut s'intégrer facilement dans votre suite de tests unitaires ou " "dans votre Intégration Continue." #: ../index.rst:66 bc563a309b784f2cbc15399c3ad8f51c msgid ":doc:`Full feature list ` :doc:`Common use cases `" msgstr "" ":doc:`Liste complète des fonctionnalités ` :doc:`Cas d'usage " "`" #: ../references/commands.rst:4 aebb427c91ed41da9c0b7ecdfcaf590a msgid "" "Canaille provide several commands to help administrator manage their data." msgstr "" "Canaille dispose de plusieurs commandes pour aider les administrateurs à " "gérer leurs données." #: ../references/commands.rst:6 b907889f6d0d4dabb1a963c60758fedf msgid "" "Generally, some configuration has to be loaded by `Canaille`. This can be " "achieved by :ref:`configuration loading method` available, but most of the time a ``CONFIG`` environment " "variable is used. For the sake of readability, it is omitted in the " "following examples." msgstr "" "Généralement, une configuration doit être chargée par `Canaille`. Cela peut " "être réalisé par :ref:`une méthode de chargement de la " "configuration` disponible, " "mais la plupart du temps une variable d'environnement ``CONFIG`` est " "utilisée. Pour des raisons de lisibilité, elle est omise dans les exemples " "suivants." #: ../../canaille check:1 e48a730fe9c94efcb41a272f5478ed19 msgid "Test the configuration file." msgstr "Test du fichier de configuration." #: ../../canaille check:1 41aae9c8d46743aba9e79f57c079d0c7 msgid "" "Attempt to reach the database and the SMTP server with the provided " "credentials." msgstr "" "Tentative pour accéder à la base de données et le serveur SMTP avec les " "identifiants fournis." #: ../../canaille clean:1 e4dceb9281e14cf0adbd56154fffbc04 msgid "Remove expired tokens and authorization codes." msgstr "Suppression des jetons expirés et des codes d'autorisation." #: ../../canaille install:1 fade86f4801a403dab35e0e1cf5bb2a9 msgid "Installs canaille elements from the configuration." msgstr "Installe les éléments de Canaille issus de la configuration." #: ../../canaille install:1 59f7082a6fc74329965dacbbd4b29d74 msgid "" "For instance, depending on the configuration, this can generate OIDC keys or " "install LDAP schemas." msgstr "" "Par exemple, selon la configuration, cela peut générer les clefs OIDC ou " "installer des schémas LDAP." #: ../../canaille populate:1 10dd1f2f8dfd4382ba79586e84d228b6 msgid "Populate the database with generated random data." msgstr "Remplit la base de données avec des données générées aléatoirement." #: ../references/commands.rst:0 eef93c8f7efa4bcca26a9984edfec552 #: ab621caa7a2c4d8fa849e7797625d3ba f8d114457ca741bf800ee8c4b3f942a1 #: 6fbad5feee934277bdbbbd04f071fe34 b61fa1c2360748b999a9aced4bd164ab #: 7c65f97affff43a2a78f72e6d2a8b2bf 20f752045a96446387d44095a57eca5c #: 14304e9889da477c8a93cf9b9dd6c1e5 bb0e8261f2454b65aa180dd68ad176d8 #: 16a6ff9805e447789f9cee87d357b936 a7c4100a940e41fe9440ad6b0bbd28dd #: 296c95633a584e4e924f2f36676c1c2f e0d5e5ab4bf9456aa3c194dbb343ffd8 #: 230b27138fe641e19ac2bda6f21d1507 682d03c24b1349d1be236737cf9c8478 #: 0201087fa2f8445c9c291d4cc4ba3700 a537cbb030a84e5b96ca899c18aaef63 #: aa0eedc786284ae49d37dab255457175 1715de5f32c34e7cab8f1379549071f9 #: f9c437d0c28c4079995fd7bc83ed2ec9 msgid "Options" msgstr "Options" #: ../../canaille populate:1 94ba9e16305a484ea1415b3237723cf1 msgid "Number of items to create" msgstr "Nombre d'éléments à créer" #: ../../canaille populate groups:1 379afc690fa147acb76c519bccb010a6 msgid "Populate the database with generated random groups." msgstr "Remplit la base de données avec des groupes générés aléatoirement." #: ../../canaille populate groups:1 da4cf29b95b846119a772e8d9f73f96b msgid "The maximum number of users that will randomly be affected in the group" msgstr "" "Le nombre maximum d'utilisateurs qui seront aléatoirement affectés dans le " "groupe" #: ../../canaille populate users:1 b87d2b5df82a46e0a11fccb84a997ab9 msgid "Populate the database with generated random users." msgstr "" "Remplit la base de données avec des utilisateurs générés aléatoirement." #: ../../canaille get:1 ce45ebf26cf149d3b0fd406e1ed2b5a9 msgid "Read information about models." msgstr "Lit les informations concernant les modèles." #: ../../canaille get:1 00dbea345e914dafb4a736214b895b1c msgid "Options can be used to filter models::" msgstr "Les options peuvent être utilisées pour filtrer les modèles :" #: ../../canaille get:1 43207b9c3af4494e9714cbf6ff2c473d msgid "Displays the matching models in JSON format in the standard output." msgstr "" "Affiche les modèles correspondants au format JSON sur la sortie standard." #: ../../canaille get authorizationcode:1 8f0d2152f80d49e8be0e904a850cacdd msgid "Search for authorizationcodes and display the matching models as JSON." msgstr "" "Recherche les codes d'autorisation et affiche les modèles correspondants en " "JSON." #: ../../canaille get client:1 bef20cbd666c49ff993234428725ddd3 msgid "Search for clients and display the matching models as JSON." msgstr "Recherche les clients et affiche les modèles correspondants en JSON." #: ../../canaille get consent:1 173ac74323844b969fdb2ce7bb9632c7 msgid "Search for consents and display the matching models as JSON." msgstr "" "Recherche les consentements et affiche les modèles correspondants en JSON." #: ../../canaille get group:1 8cc4308278af4625bc3d625a22ea5aa3 msgid "Search for groups and display the matching models as JSON." msgstr "Recherche les groupes et affiche les modèles correspondants en JSON." #: ../../canaille get token:1 5307294d0c7a49d6ad21d0d505f11aab msgid "Search for tokens and display the matching models as JSON." msgstr "Recherche les jetons et affiche les modèles correspondants en JSON." #: ../../canaille get user:1 db01fd1777f4431793d3885c834b7680 msgid "Search for users and display the matching models as JSON." msgstr "" "Recherche les utilisateurs et affiche les modèles correspondants en JSON." #: ../../canaille set:1 cec2b45a156b461faacc323380171e6f msgid "Update models." msgstr "Mise-à-jour des modèles." #: ../../canaille set:1 e5fc377719b04495a57faa42a87be86a msgid "The command takes an model ID and edit one or several attributes::" msgstr "" "La commande prend un identifiant de modèle et modifie un ou plusieurs " "attributs::" #: ../../canaille set:1 4e8bb50216e741f0bb44ecc365265370 msgid "Displays the edited model in JSON format in the standard output." msgstr "Affiche le modèle modifié au format JSON sur la sortie standard." #: ../../canaille set authorizationcode:1 03d1eebac72e42b58b3aef5a429dee1b msgid "" "Update a authorizationcode and display the edited model in JSON format in " "the standard output." msgstr "" "Met à jour un code d'autorisation et affiche le modèle modifié au format " "JSON sur la sortie standard." #: ../../canaille delete authorizationcode:1 set #: ddbdb0447cd34e59b5e1c6f9f852c619 4abf794613df4e5c8472ce2a6e7dc989 msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" msgstr "" "IDENTIFIER devrait être un code d'autorisation ou authorization_code_id" #: ../references/commands.rst:0 f2adfafce0754af79d2770a34dae5309 #: 283f0c7412de4a97bb4e7954f008ff3e 46a35e9dcc73463db8ff772da3638b31 #: fae552d2703d4a2186332c0847506798 4fafb5c0151f445c9c573b6472b4d0f5 #: 3115c2cba5f04f9094165896feac1cc9 e3c459094f734f6382847753305e76aa #: 4e8a2cd6e1224733b644484774cf0621 6f97567dcca64c4a92c0b869a6ce337d #: fea5ce77581940eabec5498e9347643b 7b57a6d1d40d40eaa51b6bba807602b5 #: 0c5b1219cf2c4d97bc0cf7717c7b4ef3 msgid "Arguments" msgstr "Paramètres" #: ../../canaille delete authorizationcode:1 client:1 consent:1 group:1 token:1 #: user:1 set c0f3d574bd3640aca180dbe7695f53e9 61c7448c4a41497a8b923a636124b2be #: e523b87636874d088f2ef6e7c2d8c79a 3e12bc882bce4c71928c127525ee8358 #: ef0be6baac8a4a44bd4a317601ea2018 f60f6b4edba24b98a79df93768b3041f #: c1192e9d2ddc429f911056db63d54e6c 4e3ae120210c4d62bfd1cc1d7c199f7a #: 3b9c5a9904f74f9e8308a21d4ee8da42 a6ecc5cf2bb54dfe98d8553f7f49c5d6 #: 6492e2a92bac400c990cc3182c8b1cb0 ca2ec2ca915e40438b1b18eb27c46670 msgid "Required argument" msgstr "Paramètre obligatoire" #: ../../canaille set client:1 f2b0a1421fdf46d684fbe616a1771b62 msgid "" "Update a client and display the edited model in JSON format in the standard " "output." msgstr "" "Mise-à-jour du client et affiche le modèle modifié au format JSON sur la " "sortie standard." #: ../../canaille delete client:1 set 04f98ee9b5254ad58f59cba6824a2ef0 #: db9ef2c5ffc342fe858b000bc05fbcc8 msgid "IDENTIFIER should be a client id or client_id" msgstr "IDENTIFIER devrait être un identifiant client ou client_id" #: ../../canaille set consent:1 d8dbf4d59a0e4afcac26174972d6804c msgid "" "Update a consent and display the edited model in JSON format in the standard " "output." msgstr "" "Met à jour un consentement et affiche un modèle modifié au format JSON sur " "la sortie standard." #: ../../canaille delete consent:1 set ecded87087fb4018854b4d14a277df8f #: bfebd623b59243cb8efe4178994c8209 msgid "IDENTIFIER should be a consent id or consent_id" msgstr "IDENTIFIER devrait être un identifiant de consentement ou consent_id" #: ../../canaille set group:1 1f36d3e6d60343989097aac3e4424ed4 msgid "" "Update a group and display the edited model in JSON format in the standard " "output." msgstr "" "Met à jour un groupe et affiche le modèle modifié au format JSON sur la " "sortie standard." #: ../../canaille delete group:1 set 772ff82f2ff54593b9ef8dc8e0af8d4f #: f5e84ce4a1dc4bcdbf5a660209e2d7d9 msgid "IDENTIFIER should be a group id or display_name" msgstr "IDENTIFIER devrait être un identifiant de groupe ou display_name" #: ../../canaille set token:1 6534c48546d94e76a03c8ea1521c5cd4 msgid "" "Update a token and display the edited model in JSON format in the standard " "output." msgstr "" "Met à jour un jeton et affiche un modèle modifié au format JSON sur la " "sortie standard." #: ../../canaille delete token:1 set edecbc4f0f9946c48834bf53a5fbf0f8 #: 3dacc05a5d1240ea812eb792ed737810 msgid "IDENTIFIER should be a token id or token_id" msgstr "IDENTIFIER devrait être un identifiant de token ou token_id" #: ../../canaille set user:1 da1f8e5fba5f40ad8f20a017e886aa02 msgid "" "Update a user and display the edited model in JSON format in the standard " "output." msgstr "" "Met à jour un utilisateur et affiche un modèle modifié au format JSON sur la " "sortie standard." #: ../../canaille delete user:1 set bf3b446f2eda4b26a9ef702f4c6dd0b9 #: 881aab67b4fb4777a160e9affc77be0c msgid "IDENTIFIER should be a user id or user_name" msgstr "IDENTIFIER devrait être un identifiant utilisateur ou user_name" #: ../../canaille create:1 563f23f330bc43ed951ca8812fa0c2fc msgid "Create models." msgstr "Crée des modèles." #: ../../canaille create:1 9d4c06295f304ac093848a3de8b716bb msgid "The model attributes can be passed as command options::" msgstr "" "Les attributs de modèle peuvent être passés comme options de la commande::" #: ../../canaille create:1 63735ef4eb924ae1ab2a244a018dc3be msgid "Displays the created model in JSON format in the standard output." msgstr "Affiche le modèle créé au format JSON sur la sortie standard." #: ../../canaille create authorizationcode:1 a96e7d0b6bed4a7bb8e0257b08600be1 msgid "" "Create a new authorizationcode and display the created model in JSON format " "in the standard output." msgstr "" "Crée un nouveau code d'autorisation et affiche le modèle créé au format JSON " "sur la sortie standard." #: ../../canaille create client:1 41428e12aeae44479602c0f92a840d2c msgid "" "Create a new client and display the created model in JSON format in the " "standard output." msgstr "" "Crée un nouveau client et affiche le modèle créé au format JSON sur la " "sortie standard." #: ../../canaille create consent:1 994455a2e844478bbffe389520751a33 msgid "" "Create a new consent and display the created model in JSON format in the " "standard output." msgstr "" "Crée un nouveau consentement et affiche le modèle créé au format JSON sur la " "sortie standard." #: ../../canaille create group:1 c3b6e110307b45c4b7e8ce07a66a4cf9 msgid "" "Create a new group and display the created model in JSON format in the " "standard output." msgstr "" "Crée un nouveau groupe et affiche le modèle créé au format JSON sur la " "sortie standard." #: ../../canaille create token:1 3774f3cf8635474fb6ba63ac1b57aa1b msgid "" "Create a new token and display the created model in JSON format in the " "standard output." msgstr "" "Crée un nouveau jeton et affiche le modèle créé au format JSON sur la sortie " "standard." #: ../../canaille create user:1 ae4b9357629c41f2bd3443048f12f734 msgid "" "Create a new user and display the created model in JSON format in the " "standard output." msgstr "" "Crée un nouvel utilisateur et affiche le modèle créé au format JSON sur la " "sortie standard." #: ../../canaille delete:1 416fbf5d468742f6af7aa3afe222389c msgid "Delete models." msgstr "Supprime des modèles." #: ../../canaille delete:1 05ea570bc20b42c9943f9073f58c19f9 msgid "The command takes a model ID and deletes it::" msgstr "La commande prend un identifiant de modèle et le supprime::" #: ../../canaille delete authorizationcode:1 e73a91f3f9d347d082621014cb60fd7f msgid "Delete a authorizationcode." msgstr "Supprime un code d'autorisation." #: ../../canaille delete client:1 d376d0088bff46ca817210c0ae84ccec msgid "Delete a client." msgstr "Supprime un client." #: ../../canaille delete consent:1 2cd2f844ba974bbaa3c2a84cd7fa1a68 msgid "Delete a consent." msgstr "Supprime un consentement." #: ../../canaille delete group:1 bf80244164a54ae887b7caadf7914dc1 msgid "Delete a group." msgstr "Supprime un groupe." #: ../../canaille delete token:1 3bf34916fadf48139dbcf439545c4276 msgid "Delete a token." msgstr "Supprime un jeton." #: ../../canaille delete user:1 22a78b7140094b6ebe34988f5b37fec3 msgid "Delete a user." msgstr "Supprime un utilisateur." #: ../references/configuration.rst:2 e23c84272ce74d1d87f815825cb4a488 msgid "Configuration" msgstr "Configuration" #: ../references/configuration.rst:5 90eeb71ed1294fd7bc6bf7f8c8ed5c8c msgid "Load the configuration" msgstr "Charge la configuration" #: ../references/configuration.rst:7 f2621ade958b4ffb9815fa8322ca64e5 msgid "" "Canaille can be configured either by a environment variables, environment " "file, or by a configuration file." msgstr "" "Canaille peut être configuré soit par des variables d'environnement " "variables, un fichier d'environnement ou par un fichier de configuration." #: ../references/configuration.rst:10 37d9f514da104c6aa15bf83cb6303487 msgid "Configuration file" msgstr "Fichier de configuration" #: ../references/configuration.rst:12 88467c2beaea43a19228f85c1f398494 msgid "" "The configuration can be written in `toml` configuration file which path is " "passed in the :envvar:`CONFIG` environment variable." msgstr "" "La configuration peut être écrite dans un fichier de configuration `toml` " "dont le chemin est passé dans la variable d'environnement :envvar:`CONFIG`." #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:11 #: ../references/configuration.rst:14 ../references/configuration.rst:95 #: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37 #: ../tutorial/databases.rst:138 1b8aaa7b767b49eb9a81d6663fb6c1e8 #: bb4c8f23d29248f5abfd0d96af2d80bf ee90ce99e8a4449fbb7cb28d559147b5 #: 84cfcdaa79ef439cb013e00e3c4cd792 cb517d061c4a4d16ae4a868999611801 #: 3fc7e3d6f94f47579174c1ebcb598f6a msgid "config.toml" msgstr "config.toml" #: ../references/configuration.rst:26 4f4e3b14ad79434b93659ff0d99e92d5 msgid "" "You can have a look at the :ref:`example file ` for inspiration." msgstr "" "Regardez le :ref:`fichier d'exemple ` " "pour vous inspirer." #: ../references/configuration.rst:29 52e72a243eda4c6d8c20601ec11d21ea msgid "Environment variables" msgstr "Variables d'environnement" #: ../references/configuration.rst:31 5a5db358ab214e86b11ce341a71a4abb msgid "" "In addition, parameters that have not been set in the configuration file can " "be read from environment variables. The way environment variables are parsed " "can be read from the `pydantic-settings documentation `_." msgstr "" "De plus, les paramètres qui n'ont pas été définis dans le fichier de " "configuration peuvent être lus depuis les variables d'environnement. La " "façon dont les variables d'environnement sont analysées peut être lu dans la " "`documentation pydantic-settings `_." #: ../references/configuration.rst:36 9c85a8e682a74e9d9d8c3aa79e2d02ba msgid "" "For environment vars, the separator between sections and variables is a " "double underscore: ``__``. For instance, the ``NAME`` var in the " "``CANAILLE`` section shown above is ``CANAILLE__NAME``." msgstr "" "Pour les variables d'environnement, le séparateur entre les sections et les " "variables est un double souligné (underscore) : ``__``. Par exemple, la " "variable ``NAME`` dans la section ``CANAILLE`` affichée au-dessus est " "``CANAILLE__NAME``." #: ../references/configuration.rst:40 26c9129f81c54386966cffd31c323f14 msgid "Environment file" msgstr "Fichier d'environnement" #: ../references/configuration.rst:42 54056c93ac3b40e882bf20789d72fded msgid "" "Any environment variable can also be written in an environment file, which " "path should be passed in the ``ENV_FILE`` environment variable. For " "instance, set ``ENV_FILE=.env`` to load a ``.env`` file." msgstr "" "N'importe quel variable d'environnement peut aussi être écrit dans un " "fichier d'environnement, dont le chemin devrait être passé dans la variable " "d'environnement ``ENV_FILE``. Par exemple, paramétrer ``ENV_FILE=.env`` pour " "charger un fichier ``.env``." #: ../references/configuration.rst:45 ba796d7f6bdb4ef5a32865f844ead63e msgid ".env" msgstr ".env" #: ../references/configuration.rst:63 3c2136aab27c4650acf0d25ced3636e2 msgid "Configuration methods priority" msgstr "Priorité des méthodes de configuration" #: ../references/configuration.rst:65 6e85c7ec407f4fc68adff17adb6652b2 msgid "" "If a same configuration option is defined by different ways, here is how " "Canaille will choose which one to use:" msgstr "" "Si une option de configuration est définie de multiples façons, voici " "comment Canaille sélectionnera celle à utiliser :" #: ../references/configuration.rst:67 8857be48d8f54be7aa8d350d5346887a msgid "" "environment vars have priority over the environment file and the " "configuration file;" msgstr "" "Les variables d'environnement sont prioritaires sur le fichier " "d'environnement et le fichier de configuration ;" #: ../references/configuration.rst:68 d946c715e1c34f55acfe97acc96cab68 msgid "environment file will have priority over the configuration file." msgstr "" "Le fichier d'environnement est prioritaire sur le fichier de configuration." #: ../references/configuration.rst:71 369d25ff21b042fbabf703be7b66e138 msgid "Parameters" msgstr "Paramètres" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:1 2226ecd0f90440d58a4089df736be757 msgid "" "The top-level namespace contains the configuration settings unrelated to " "Canaille." msgstr "" "L'espace de nom de plus haut niveau contient les paramètres de configuration " "sans rapport avec Canaille." #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:4 f53fd6edbc9148c781006d112688f022 msgid "The configuration parameters from the following libraries can be used:" msgstr "" "Les paramètres de configuration provenant des bibliothèques suivantes " "peuvent être utilisées :" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:6 0a1ba7d3d9d24c598640a87301549190 msgid ":doc:`Flask `" msgstr ":doc:`Flask `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:7 6288bee773454f6fb13d7c3c43c0acfe msgid ":doc:`Flask-WTF `" msgstr ":doc:`Flask-WTF `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:8 8dc449c88676405aa689c232c0c17eaa msgid ":doc:`Flask-Babel `" msgstr ":doc:`Flask-Babel `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:9 f0f21a8b4661490ea85203669e05fe2a msgid ":doc:`Authlib `" msgstr ":doc:`Authlib `" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 #: aee2c3dead184d3ab7655e0df3b9f66c msgid "The Flask :external:py:data:`DEBUG` configuration setting." msgstr "Le paramétrage de configuration de Flask :external:py:data:`DEBUG`." #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 #: da1c3a1146284b0597c12fab8ac713a9 msgid "This enables debug options." msgstr "Cela active les options de débogage." #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 #: 22813fdeb3ad46729bf6d91f1a6a799b msgid "" "This is useful for development but should be absolutely avoided in " "production environments." msgstr "" "C'est utile lors du développement mais devrait être absolument évité sur des " "environnements de production." #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 #: 8d9650f0f1c34ab7b888fce27cfcc459 msgid "" "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." msgstr "" "Le paramétrage de la configuration de Flask :external:py:data:" "`PREFERRED_URL_SCHEME`." #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 #: 33538d7dda284e2da14720d9ecf5b81f msgid "This sets the url scheme by which canaille will be served." msgstr "Cela paramètre le schéma d'URL avec lequel Canaille sera servi." #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 #: ca299cb1b21a4aff913e478725dee516 msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." msgstr "" "Le paramétrage de la configuration de Flask :external:py:data:`SECRET_KEY`." #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 #: e0e842ea56e7409da386c9fa3b44f45f msgid "You MUST change this." msgstr "Vous DEVEZ le changer." #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 #: 8aaa9ab83eb245a996e82b25f47a18be msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." msgstr "" "Le paramétrage de la configuration de Flask :external:py:data:`SERVER_NAME`." #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 #: a7a33ff93b6d471e9395fffab55b8497 msgid "This sets domain name on which canaille will be served." msgstr "Cela paramètre le nom de domaine sur lequel Canaille sera servi." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.CoreSettings:1 49b29a899f644466acba509b0b3e9f00 msgid "The settings from the ``CANAILLE`` namespace." msgstr "Les paramètres issus de l'espace de nom ``CANAILLE``." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.CoreSettings:3 63104b7fc45e4ef39f55f96c7a093f33 msgid "" "Those are all the configuration parameters that controls the behavior of " "Canaille." msgstr "" "Ce sont tous les paramètres de configuration contrôlant le comportement de " "Canaille." #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 #: 1c134db317ea498d8b595a7a3b2f610e msgid "" "Mapping of permission groups. See :class:`ACLSettings` for more details." msgstr "" "Correspondance des groupes de droits. Voir :class:`ACLSettings` pour plus de " "détails." #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 #: c2f72f20b39c4706b4e5ba01db79eb2c msgid "The ACL name can be freely chosen. For example:" msgstr "Le nom des ACL peut être choisi librement. Par exemple :" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:4 #: canaille.core.configuration.ACLSettings.PERMISSIONS:6 #: canaille.core.configuration.CoreSettings.ACL:5 #: canaille.core.configuration.CoreSettings.LOGGING:12 #: 7f4c9bc691c14d29b0465e0af9e49012 7e37e8d6e156472e9a7a39fac9d88ff2 #: f9cab605f9cd4a48ace060c109339896 d723924be3cf4f0bbfc5f4f454c9fd17 msgid "..code-block:: toml" msgstr "..code-block:: toml" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7 #: c5d39ea293234d4aa11c0494ddc011b6 msgid "" "[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = " "[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]" msgstr "" "[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = " "[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:12 #: 27f179210a5a4bae899d38bc6d1963c0 msgid "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]" msgstr "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 #: da428b02fcc6465ca83593370a8c52c1 msgid "Administration email contact." msgstr "Contact e-mail de l'administration." #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 #: 80265b26992742b4a55529bb9514ef19 msgid "" "In certain special cases (example : questioning about password corruption), " "it is necessary to provide an administration contact email." msgstr "" "Dans certains cas particuliers (par exemple en cas de questionnement sur la " "corruption de mot de passe), il est nécessaire de fournir un e-mail de " "contact pour l'administration." #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 #: aae582f58bfa47f2a6f5b32a1b5c3ead msgid "" "If :py:data:`True`, users will need to click on a confirmation link sent by " "email when they want to add a new email." msgstr "" "Si :py:data:`True`, les utilisateurs auront besoin de cliquer sur un lien de " "confirmation envoyé par e-mail quand ils voudront en ajouter un nouveau." #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 #: 35bd824b2f8d4040898ed4dbdb7e599d msgid "" "By default, this is true if ``SMTP`` is configured, else this is false. If " "explicitly set to true and ``SMTP`` is disabled, the email field will be " "read-only." msgstr "" "Par défaut, cela est vrai si ``SMTP`` est configuré, sinon c'est faux. S'il " "est explicitement paramétré à `true` et que ``SMTP`` est désactivé, le champ " "e-mail sera en lecture seule." #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_OTP:1 #: 15d696ce895d4517964f6a9fe0269d30 msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary email address." msgstr "" "Si :py:data:`True`, alors les utilisateurs devront saisir un mot de passe " "temporaire envoyé à leur adresse email principale pour s'authentifier." #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 #: 2bb9ee1a4a1f4c3dac7cd54259173873 msgid "" "If :py:data:`True`, Canaille will check if passwords appears in " "compromission databases such as `HIBP `_ when " "users choose a new one." msgstr "" "Si :py:data:`True`, Canaille vérifiera si les mots de passe apparaissent " "dans des bases contenant des mots de passe compromis telles que `HIBP " "`_ quand les utilisateurs en choisiront un " "nouveau." #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 #: 9b83a2bb7e5a45358efb53447ed21cda msgid "" "If :py:data:`False`, then users cannot ask for a password recovery link by " "email." msgstr "" "Si :py:data:`False`, alors les utilisateurs ne peuvent pas demander un lien " "de récupération de mot de passe par e-mail." #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 #: ad8746125fae4336a86e7a5a47949ea4 msgid "" "If :py:data:`True`, then users can freely create an account at this instance." msgstr "" "Si :py:data:`True`, les utilisateurs peuvent librement créer un compte sur " "cette instance." #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 #: 4519e48effe84001a82418bf3a2da190 msgid "" "If email verification is available, users must confirm their email before " "the account is created." msgstr "" "Si la vérification d'e-mail est disponible, les utilisateurs doivent " "confirmer leur e-mail avant que le compte ne soit créé." #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1 #: ad1dce6bc9dd49608f1556cebf0f44fe msgid "You favicon." msgstr "Votre favicon." #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 #: 36086dc79c1b485fa6594ef442028011 msgid "If unset and :attr:`LOGO` is set, then the logo will be used." msgstr "" "Si non paramétré et :attr:`LOGO` renseigné, alors le logo sera utilisé." #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 #: 15d696ce895d4517964f6a9fe0269d30 msgid "" "If :py:data:`True`, when users try to sign in with an invalid login, a " "message is shown indicating that the password is wrong, but does not give a " "clue whether the login exists or not." msgstr "" "Si :py:data:`True`, quand les utilisateurs essaient de se connecter avec un " "identifiant invalide, un message indique que le mot de passe est incorrect " "mais ne fournit pas d'indice si l'identifiant existe ou non." #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 #: 8203d7591b394141b0beec099e5a0c8d msgid "" "If :py:data:`False`, when a user tries to sign in with an invalid login, a " "message is shown indicating that the login does not exist." msgstr "" "Si :py:data:`False`, quand un utilisateur essaie de se connecter avec un " "identifiant invalide, un message indique que l'identifiant n'existe pas." #: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1 #: fca447a64b184732b6664c3c20ade0ce msgid "Accelerates webpages loading with asynchronous requests." msgstr "Accélère le chargement des pages web grâce à des requêtes asynchrones." #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 #: c3295518c8ce46359cb5fc8012267002 msgid "The validity duration of registration invitations, in seconds." msgstr "Durée de validité des invitations, en secondes." #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 #: cca98367f271454987d915c9da1deecc msgid "Defaults to 2 days." msgstr "Deux jours par défaut." #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 #: f10d5dbbd4054185b5caff2aa7b4602c msgid "Enables Javascript to smooth the user experience." msgstr "Active Javascript pour améliorer l'expérience utilisateur." #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 #: caa7570c19d343d8a5350b38ab890a08 msgid "If a language code is set, it will be used for every user." msgstr "" "Si un code de langue est paramétré, il sera utilisé pour tous les " "utilisateurs." #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 #: 2f02910686974fa68a6b3af15a9e1c42 msgid "If unset, the language is guessed according to the users browser." msgstr "" "Si non renseigné, la langue est déterminée selon les préférences navigateur " "des utilisateurs." #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 #: aad50a21706943fda6f1cde1c79762fb msgid "" "Configures the logging output using the python logging configuration format:" msgstr "" "Configure l'enregistrement des journaux en utilisant le format de " "configuration des journaux Python :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 #: 75bb9ce97f514d3eb50ed11a5fcaf986 msgid "" "If :data:`None`, everything is logged in the standard error output. The log " "level is :data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration." "RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:" "`~logging.INFO`." msgstr "" "Si :py:data:`None`, tout est écrit sur la sortie d'erreur standard. Le " "niveau de verbosité est :py:data:`~logging.DEBUG` si le paramètre :attr:" "`~canaille.app.configuration.RootSettings.DEBUG` est :py:data:`True`, sinon " "elle est:py:data:`~logging." #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 #: a8552f90740e4287bd06aab66b4dc85d msgid "" "If this is a :class:`dict`, it is passed to :func:`logging.config." "dictConfig`:" msgstr "" "Si c’est un :class:`dict`, il est passé à :func:`logging.config.dictConfig` :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 #: 1987a5781d6e42af97e3df073b29599b msgid "" "If this is a :class:`str`, it is expected to be a file path that will be " "passed to :func:`logging.config.fileConfig`." msgstr "" "Si c'est une :class:`str`, c'est supposé être un chemin de fichier qui sera " "passé à :func:`logging.config.fileConfig." #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4 #: canaille.core.configuration.CoreSettings.LOGGING:10 #: edd8ec5aad1047688bbbc5613d9896f5 msgid "For example:" msgstr "Par exemple :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14 #: 397db3f41bce4260b537ae55755badaf msgid "" "[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] " "%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", " "handlers = [\"canaille\"]}" msgstr "" "[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] " "%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", " "handlers = [\"canaille\"]}" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:19 #: 623ab6abfdc84ec38448df94e0562f97 msgid "" "[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers." "WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = " "\"default\"" msgstr "" "[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers." "WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = " "\"default\"" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 #: 40c46d3aa7bb4e81a857540a99eb3df9 msgid "" "The logo of your organization, this is useful to make your organization " "recognizable on login screens." msgstr "" "Le logo de votre organisation, cela permet de rendre votre organisation " "reconnaissable sur l'écran de connexion." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 #: 04c3b3e362a74164bd49cbedad027ea8 msgid "User password maximum length." msgstr "Longueur minimum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 #: a40eddffe3bc4c46ac7624a5f7d40c8f msgid "" "There is a technical of 4096 characters with the SQL backend. If the value " "is 0, :data:`None`, or greater than 4096, then 4096 will be retained." msgstr "" "Il y a une limite technique de 4096 caractères pour les bases de données " "SQL. Si la valeur est 0, :data:`None`ou supérieure à 4096, alors 4096 sera " "utilisée." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 #: 129e3bbcdb1c40bbb45933fe156f00b1 msgid "User password minimum length." msgstr "Longueur maximum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 #: 1f84fb34d6234361b2c215fda0d8a6d9 msgid "If 0 or :data:`None`, password won't have a minimum length." msgstr "" "Si 0 ou :data:`None, les mots de passe n'auront pas de longueur minimum." #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 #: befe22deda144065bcee73d9d0404dea msgid "Your organization name." msgstr "Le nom de votre organisation." #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 #: 0a659d2aa1994859a59506e97a715ea7 msgid "Used for display purpose." msgstr "Utilisé à fins d'affichage." #: ../../docstring of canaille.core.configuration.CoreSettings.OTP_METHOD:1 #: c0ade835e0164d5e9dcb405ff53f299e msgid "" "If OTP_METHOD is defined, then users will need to authenticate themselves " "using a one-time password (OTP) via an authenticator app. If set to :py:data:" "`TOTP`, the application will use time one-time passwords, If set to :py:data:" "`HOTP`, the application will use HMAC-based one-time passwords." msgstr "" "Si `OTP_METHOD` est défini, alors pour s'authentifier les utilisateurs " "devront saisir un mot de passe à usage unique (OTP) généré par une " "application d'authentification.\n" "Si la valeur est ``TOTP``l'application utilisera des mots de passes à usage " "unique basés sur le temps.\n" "Si la valeur est ``HOTP``, l'application utilisera des mots de passes à " "usage unique basés sur HMAC." #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 #: 6ab659ea03d349d88fef1b5cdc9da5f8 msgid "Have i been pwned api url for compromission checks." msgstr "" "URL du service HaveIBeenPwned, utilisé pour les vérifications de " "compromission des mots de passe." #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 #: 42626c8f0fa24a3fbfc131099bae6302 msgid "A `Sentry `_ DSN to collect the exceptions." msgstr "" "Un DSN `Sentry `_ pour collecter les erreurs techniques." #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 #: b29a9995f9b04c71a953d7ea902bd1f5 msgid "This is useful for tracking errors in test and production environments." msgstr "" "Utile pour centraliser les erreurs dans les environnements de test et de " "production." #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1 #: 78b26880da2746c583f686747b26f179 msgid "The settings related to SMPP configuration." msgstr "Les paramètres liés à la configuration des serveurs SMPP." #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:3 #: 24787179b702424697f1fe11214d1f9c msgid "" "If unset, sms-related features like sms one-time passwords won't be enabled." msgstr "" "Si non renseigné, les fonctionnalités liées aux SMS, telles que la " "réinitialisation des mots de passe par SMS, ne seront pas activées." #: ../../docstring of canaille.core.configuration.CoreSettings.SMS_OTP:1 #: 15d696ce895d4517964f6a9fe0269d30 msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary phone number." msgstr "" "Si :py:data:`True`, alors pour s'authentifier les utilisateurs devront " "saisir un mot de passe temporaire envoyé par SMS à leur numéro de téléphone " "principal." #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 #: 78b26880da2746c583f686747b26f179 msgid "The settings related to SMTP and mail configuration." msgstr "Les paramètres liés à la configuration des serveur mail et SMTP." #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 #: 24787179b702424697f1fe11214d1f9c msgid "" "If unset, mail-related features like password recovery won't be enabled." msgstr "" "Si non renseigné, les fonctionnalités liées aux mail, telles que la " "réinitialisation des mots de passe, ne seront pas activées." #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 #: 65f9f8cf44c347b9b18a9bd8e3624c6b msgid "The name of a theme in the 'theme' directory, or a path to a theme." msgstr "" "Le nom d'un thème dans le répertoire `theme` ou bien le chemin vers un thème." #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 #: a930cadcbbaf40e59f78c34a6fea099e msgid "" "Defaults to ``default``. Theming is done with `flask-themer `_." msgstr "" "Par défaut, la valeur vaut ``default``. La personnalisation des thèmes est " "faite avec `flask-themer `_." #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 #: 60a19e875a924f2ca2f466cc2a3de293 msgid "" "The timezone in which datetimes will be displayed to the users (e.g. " "``CEST``)." msgstr "" "Le fuseau horaire utilisé pour afficher les dates aux utilisateurs (par " "exemple ``CEST``)." #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 #: 3674c492480c4bc8877913002b54efa1 msgid "If unset, the server timezone will be used." msgstr "Si non renseigné, le fuseau horaire du serveur sera utilisé." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.SMTPSettings:1 0513a51a39d44f719e5bf3b7abfe7224 msgid "" "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, " "mail related features will be disabled, such as mail verification or " "password recovery emails." msgstr "" "La configuration SMTP. Appartient à l'espace de nom ``CANAILLE.SMTP``. SI " "non renseigné, les fonctionnalités liées au mail seront désactivées, telles " "quel la vérification des adresses email ou bien la réinitialisation des mots " "de passe." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.SMTPSettings:5 2b30db6216b44d98973d7401cd778e03 msgid "" "By default, Canaille will try to send mails from localhost without " "authentication." msgstr "" "Par défaut, Canaille tente d’envoyer des mails depuis `localhost` sans " "authentification." #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 #: 60a234eca526445b86c8669fbfda12c5 msgid "The sender for Canaille mails." msgstr "L’émetteur des emails de Canaille." #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 #: 0ed3035ba98243e3814d51329ceac05f msgid "Some mail provider might require a valid sender address." msgstr "" "Certains services de mail pourraient exiger une adresse émettrice valide." #: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 #: 734742323e1a40e482a2433adbed3cf9 msgid "The SMTP host." msgstr "Le serveur SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 #: 6b56c482d9274a7d9b308055ce3d8b07 msgid "The SMTP login." msgstr "L’identifiant SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 #: 8ca424cbdc7647a99400ae460510a183 msgid "The SMTP password." msgstr "Le mot de passe SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 #: f581660baf5a4637974640c3d253692f msgid "The SMTP port." msgstr "Le port SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 #: 129075d9b7284662b50893663f3b3c74 msgid "Whether to use SSL to connect to the SMTP server." msgstr "Utiliser ou non SSL pour se connecter au serveur SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 #: b34e44fef5b24697bab696419b926d6d msgid "Whether to use TLS to connect to the SMTP server." msgstr "Utiliser ou non TLS pour se connecter au serveur SMTP." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.SMPPSettings:1 0513a51a39d44f719e5bf3b7abfe7224 msgid "" "The SMPP configuration. Belong in the ``CANAILLE.SMPP`` namespace. If not " "set, sms related features such as sms one-time passwords will be disabled." msgstr "" "La configuration SMPP. Appartient à l'espace de nom ``CANAILLE.SMPP``. SI " "non renseigné, les fonctionnalités liées au SMS seront désactivées, telles " "que la réinitialisation des mots de passe par SMS." #: ../../docstring of canaille.core.configuration.SMPPSettings.HOST:1 #: 734742323e1a40e482a2433adbed3cf9 msgid "The SMPP host." msgstr "Le serveur SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.LOGIN:1 #: 6b56c482d9274a7d9b308055ce3d8b07 msgid "The SMPP login." msgstr "L’identifiant SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.PASSWORD:1 #: 8ca424cbdc7647a99400ae460510a183 msgid "The SMPP password." msgstr "Le mot de passe SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.PORT:1 #: 0780176282814cd1ad4ceb1567e2f160 msgid "The SMPP port. Use 8775 for SMPP over TLS (recommended)." msgstr "Le port SMPP. Utilisez `8775` pour SMPP avec TLS (recommandé)." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.ACLSettings:1 ddbf39ff35684a7c8be7dd8442348d9b msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." msgstr "" "Paramètres des listes de contrôle d'accès. Appartient à l'espace de nom " "``CANAILLE.ACL``." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.ACLSettings:3 fb2bf8e9b559475fa0da8a5a9a716d1b msgid "" "You can define access controls that define what users can do on canaille. An " "access control consists in a :attr:`FILTER` to match users, a list of :attr:" "`PERMISSIONS` matched users will be able to perform, and fields users will " "be able to :attr:`READ` and :attr:`WRITE`. Users matching several filters " "will cumulate permissions." msgstr "" "Vous pouvez définir des contrôles d'accès pour paramétrer ce que les " "utilisateurs sont autorisés à faire sur Canaille. Un contrôle d'accès " "consiste en un :attr:`FILTTER`de sélection des utilisateurs, une liste de :" "attr:`PERMISSIONS` qui décrit ce que les utilisateurs sélectionnés pourront " "effectuer, et les champs de leurs profil que les utilisateurs pourront lire " "et écrire avec :attr:`READ`et :attr:`WRITE`. Les utilisateurs correspondant " "à plusieurs filtres cumuleront les permissions." #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 #: 44a6412c07e74f10991a803bec3ffd5b msgid ":attr:`FILTER` can be:" msgstr ":attr:`FILTER`peut être :" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 #: a46c99d48a184f8f9cbbd60fd0113bd9 msgid "" ":py:data:`None`, in which case all the users will match this access control" msgstr "" ":py:data:`None`, auquel cas tous les utilisateurs correspondront au contrôle " "d’accès" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 #: 3b80807a79704eb9b5c53f31319a334f msgid "" "a mapping where keys are user attributes name and the values those user " "attribute values. All the values must be matched for the user to be part of " "the access control." msgstr "" "une correspondance où les clefs sont des noms d'attributs utilisateur et les " "valeurs sont les valeurs d'attribut utilisateur. Toutes les valeurs doivent " "correspondre à l'utilisateur pour faire partie du contrôle d'accès." #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 #: 53ad291e288c490abd5b1e854132a0ef msgid "" "a list of those mappings. If a user values match at least one mapping, then " "the user will be part of the access control" msgstr "" "une liste de ces correspondances. Si les valeurs d'un utilisateur " "correspondent au moins à une de ces correspondances, alors l'utilisateur " "fera partie du contrôle d'accès" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 #: eb01b4eb724941cab7f44d69c0627b1e msgid "Here are some examples::" msgstr "Voici quelques exemples :" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 #: 75a4d0c394fa4aebbb48d077e63aa0f0 msgid "" "A list of :class:`Permission` users in the access control will be able to " "manage." msgstr "" "Une liste de def :class:`Permission` utilisateur dans le controle d'accès " "seront capables de gérer." #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:8 #: 721eb691ae3e4151a5eaf811c2a1b01c msgid "" "PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", " "\"delete_account\", \"impersonate_users\"]" msgstr "" "PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", " "\"delete_account\", \"impersonate_users\"]" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 #: d3e143b82c304e238a797124231f644f msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to read." msgstr "" "Une liste d'attributs de :class:`~canaille.core.models.User` que les " "utilisateurs dans les ACL seront capables de lire." #: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1 #: cd5c4a6863b3455795388ea58d2f8ff1 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to edit." msgstr "" "Une liste d'attributs de :class:`~canaille.core.models.User` que les " "utilisateurs dans les ACL seront capables de modifier." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.Permission:1 d0fc68105eb54d359eb01628902767b5 msgid "The permissions that can be assigned to users." msgstr "Les droits qui peuvent être assignés aux utilisateurs." #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.Permission:3 8f3355f64e2c490ab0e8b4765dca8781 msgid "" "The permissions are intended to be used in :attr:`ACLSettings `." msgstr "" "Les droits sont prévus pour être utilisé dans :attr:`ACLSettings `." #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 #: 500cfd5a09554ac0b3efb8801a314e38 msgid "Allows users to delete their account." msgstr "Permettre aux utilisateurs de supprimer leur compte." #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 #: cca431c321484569862b3a05616c7907 msgid "" "If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, " "users can delete any account." msgstr "" "Si utilisé avec :attr:`~canaille.core.configuration.Permission." "MANAGE_USERS`, les utilisateurs peuvent supprimer n'importe quel compte." #: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1 #: 6dc188b41f5440319e87c333aea28060 msgid "Allows users to edit their own profile." msgstr "Permet aux utilisateurs de modifier leur propre profil." #: ../../docstring of #: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 #: 113e6c4d2b714be79d746c84a0bde30a msgid "Allows users to take the identity of another user." msgstr "Permet aux utilisateurs de prendre l'identité d'un autre utilisateur." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 #: 9531fd7773fe46f78f3da23f5d7e6f02 msgid "Allows group edition and creation." msgstr "Permet la création et la modification de groupe." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 #: 6a14ecfbecc7402b90c1f984af552750 msgid "Allows OpenID Connect client managements." msgstr "Permet les gestion de client OpenID Connect." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 #: 7d115497bd7e4284b71cee12f6012e06 msgid "Allows other users management." msgstr "Permet la gestion des autres utilisateurs." #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 #: 5e48261fd5c9437eb453e703f93703b5 msgid "Allows OpenID Connect authentication." msgstr "Permet l'authentification OpenID Connect." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.OIDCSettings:1 63057e3d73a14c63bbe40bc95a0e4c84 msgid "OpenID Connect settings." msgstr "Paramètres OpenID Connect." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.OIDCSettings:3 035105e6e931419a8302feadec577ed6 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_OIDC``." #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 #: fba0c11bf0f648909450d12e1ceffdb9 msgid "" "Whether a token is needed for the RFC7591 dynamical client registration." msgstr "" "Si un jeton est nécessaire pour l’enregistrement dynamique du client selon " "la RFC7591." #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 #: f5ba930ce26f4588b539da7703aafd4d msgid "" "If :py:data:`True`, no token is needed to register a client. If :py:data:" "`False`, dynamical client registration needs a token defined in :attr:" "`DYNAMIC_CLIENT_REGISTRATION_TOKENS`." msgstr "" "Si :py:data:`True`, aucun jeton n'est nécessaire pour enregistrer un client. " "Si :py:data:`False`, l'enregistrement de client dynamique a besoin d'un " "jeton défini dans :attr:`DYNAMIC_CLIENT_REGISTRATION_TOKENS`." #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 #: 092b15419a354a5888a9f80ab6194696 msgid "A list of tokens that can be used for dynamic client registration." msgstr "" "Une liste de jeton utilisables pour l'enregistrement de client dynamique." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 #: 9cd2e236fdb14317b0ffed9a3d2608bb msgid "JSON Web Token settings." msgstr "Paramètres de jeton web JSON." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 #: fa7308da6bb547ae821995b6d7995ad1 msgid "Force the nonce exchange during the authentication flows." msgstr "Force l'échange de nonce durant le processus d'authentification." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 #: 0c8ebdd95ff84eca839a0b3e755815e8 msgid "This adds security but may not be supported by all clients." msgstr "" "Cela améliore la sécurité mais pourrait ne pas être géré par tous les " "clients." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTSettings:1 37bc9fb542044bd794610b97da9255f3 msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." msgstr "" "Paramètres de jeton Web JSON. Appartient à l'espace de nom ``CANAILLE_OIDC." "JWT``." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTSettings:3 13ef6c0a21924214b46130443a178a3b msgid "You can generate a RSA keypair with::" msgstr "Vous pouvez générer un poire de clefs RSA avec :" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 #: d2bc59d1182f47bea20962eb0acc5690 msgid "The key algorithm." msgstr "L'algorithme de clef." #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 #: f282a838950942ea9e15a209546aece5 msgid "The time the JWT will be valid, in seconds." msgstr "La durée pendant laquelle le JWT sera valide, en secondes." #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 #: 8ad74727c039426d84a5df7154d85088 msgid "The URI of the identity provider." msgstr "L'URI du fournisseur d'identité." #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 #: cc46bfa52a58479ebeeabc645f0efbee msgid "The key type." msgstr "Le type de clef." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 #: 521a0d91f9c54a45b362036aeabf476b msgid "The private key." msgstr "La clef privée." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 #: 8f11d684881944cd8a2e7a7bcbb48c48 msgid "" "If :py:data:`None` and debug mode is enabled, then an in-memory key will be " "used." msgstr "" "Si :py:data:`None` et que le mode débogage est activé, une clef en mémoire " "sera utilisée." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 #: f0f19ad86cb94cc7b63447e2a6d6ef56 msgid "The public key." msgstr "La clef publique." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:1 #: 1380be8739ba4fbab5425af1c0253066 msgid "Mapping between the user model and the JWT fields." msgstr "Correspondance entre le modèle utilisateur et les champs JWT." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:3 #: 6f4c5c2cbd07499c972d2f1ab29ffa1e msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" "Les champs sont évalués avec jinja. Une variable ``user`` est disponible." #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:1 #: 8a43c250075c4918b0ce4204fa803047 msgid "Settings related to the SQL backend." msgstr "Paramètres concernant le serveur SQL." #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:3 #: 038af6ccc90c4711bf2630c27656a810 msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_SQL``." #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 #: 1aacc345a8b74b12af594ae00bb018d6 msgid "The SQL server URI. For example:" msgstr "URI du serveur SQL. Par exemple :" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6 #: 677e3555144149ed9ca260747ac80af7 msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\"" msgstr "" "DATABASE_URI = \"postgresql://utilisateur:motdepasse@localhost/" "nom_de_la_BdD\"" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:1 #: 3f3caf7b34464a66a3616e93568df5d0 msgid "Settings related to the LDAP backend." msgstr "Paramètres concernant le serveur LDAP." #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:3 #: dfa0746894e344faa806b939a64e1bc4 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_LDAP``." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 #: 6bfbb516f18341ccb29ba837eee1182e msgid "The LDAP bind DN." msgstr "Le DN de connexion LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 #: 2f6f3c3c7b4946898c03f95709e8ada4 msgid "The LDAP bind password." msgstr "Le mot de passe de connexion LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 #: 6d51a73361254d7b83fce929ae2b6b37 msgid "The LDAP node under which groups will be looked for and saved." msgstr "Le noeud LDAP dans lequel les groupes seront cherchés et enregistrés." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 #: 59bb594131944870a7bdbffcec6cb47b msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "Par exemple `\"ou=groups,dc=mondomaine,dc=tld\"`." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 #: 6ef1fa2af1cb49d48dc49e16da349186 msgid "The object class to use for creating new groups." msgstr "La classe objet à utiliser pour créer de nouveaux groupes." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 #: 6b02bb2acfa949848ac24822ba9e65a2 msgid "The attribute to use to identify a group." msgstr "L'attribut à utiliser pour identifier un groupe." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 #: d4b05df5c7c44d4aa00e29be5efbe08b msgid "The attribute to identify an object in the Group DN." msgstr "L'attribut pour identifier un objet dans le Groupe DN." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 #: 1dfee889fb7348d39a4fd73315b92f0f msgid "The LDAP root DN." msgstr "Le DN racine LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 #: bf016c8880b2441ebc1f7eb63c472e1f msgid "The LDAP connection timeout." msgstr "Le délai d'expiration de connexion LDAP." #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 #: f2d63d56281a4ac9bf59a566fca49efb msgid "The LDAP server URI." msgstr "L'URI du serveur LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 #: 2b9e8a84a0a741dba1b0eb8183d14a91 msgid "The LDAP node under which users will be looked for and saved." msgstr "" "Le noeud LDAP dans lequel les utilisateurs seront recherchés et enregistrés." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 #: 7e3ac032d5bd418482f13ab7c81d1515 msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "Par exemple `ou=users,dc=mondomainedc=tld`." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 #: 5791e76405f94f38b07650cf43719cf8 msgid "The object class to use for creating new users." msgstr "La classe d'objet pour créer de nouveaux utilisateurs." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 #: d5ccfe3b5d7e438389f98cad6718a9d0 msgid "Filter to match users on sign in." msgstr "Filtre de correspondance des utilisateurs lors de la connexion." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 #: 737d190e512f480a9227e6fe72f96c26 msgid "" "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is " "supported and a ``login`` variable is available, containing the value passed " "in the login field." msgstr "" "Par exemple ``(|(uid={{ login }})(mail={{ login }}))``. La syntaxe Jinja est " "acceptée et une variable ``login`` est disponible, contenant la valeur " "passée dans le champ login." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 #: b7d504ef3c74424abeccc8ad35072d0f msgid "The attribute to identify an object in the User DN." msgstr "L'attribut pour identifier un objet dans le DN Utilisateur." #: ../references/configuration.rst:91 d0a193b9740940ceac9bbb0b609c7b38 msgid "Example file" msgstr "Fichier d'exemple" #: ../references/configuration.rst:93 380ab48a596a497789c004a25fd645c8 msgid "Here is a configuration file example:" msgstr "Voici un exemple de fichier de configuration :" #: ../references/index.rst:2 7aedfd273422477bb60f319eb4c1eb09 msgid "References" msgstr "Références" #: ../references/models.rst:2 40ab2b878a534ca38780473aa8c0dd24 msgid "Data models" msgstr "Modèles de donnée" #: ../references/models.rst:4 fc86419b230d4b3ea107617213675e38 msgid "" "This reference details the data models used by Canaille. This is mostly " "useful for developers." msgstr "" "Cette référence détaille les modèles de donnée utilisés par Canaille. Cela " "est surtout utile pour les développeurs." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 #: af7b8f2e8eae457f8451e659c3213675 0d1f4ecf6c974902b15375ec2f545d11 msgid "Bases: :py:class:`object`" msgstr "Bases : :py:class:`object`" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:1 5c4d9070fe3a46a695c06ef143b7b3e0 msgid "The backend model abstract class." msgstr "La classe abstraite du modèle backend." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:3 51d88470412841bdb28daefe752259c8 msgid "" "It details all the methods and attributes that are expected to be " "implemented for every model and for every backend." msgstr "" "Il détaille tous les méthodes et attributs qui doivent être implémentées " "pour chaque modèle et chaque backend." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model:1 91a5b49dc4f54e4ba3acea5e80114ad6 msgid "The model abstract class." msgstr "La classe abstraite de modèle." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model:3 05f702c2e3324742a9840c46621f02e7 msgid "It details all the common attributes shared by every models." msgstr "Il détaille tous les attributs en commun entre tous les modèles." #: ../../docstring of canaille.backends.models.Model.created:1 #: 55c80d78a6514379b68db68d53d08628 msgid "" "The :class:`~datetime.datetime` that the resource was added to the service " "provider." msgstr "" "La date ( :class:`~datetime.datetime`) à laquelle la ressource a été ajoutée " "par le fournisseur de service." #: ../../docstring of canaille.backends.models.Model.id:1 #: 6c1d3282e98e4d7b96213c626e92665a msgid "" "A unique identifier for a SCIM resource as defined by the service provider. " "Id will be :py:data:`None` until the :meth:`~canaille.backends.models." "BackendModel.save` method is called." msgstr "" "Un identifiant unique pour une ressource SCIM tel que définie par le " "fournisseur du service. Id sera :py:data:`None` jusqu'à ce que la méthode :" "meth:`~canaille.backends.models.BackendModel.save` soit appelée." #: ../../docstring of canaille.backends.models.Model.id:5 #: 64c1848034b34d2086fa0d50e1b94a98 msgid "" "Each representation of the resource MUST include a non-empty \"id\" value. " "This identifier MUST be unique across the SCIM service provider's entire set " "of resources. It MUST be a stable, non- reassignable identifier that does " "not change when the same resource is returned in subsequent requests. The " "value of the \"id\" attribute is always issued by the service provider and " "MUST NOT be specified by the client. The string \"bulkId\" is a reserved " "keyword and MUST NOT be used within any unique identifier value. The " "attribute characteristics are \"caseExact\" as \"true\", a mutability of " "\"readOnly\", and a \"returned\" characteristic of \"always\". See Section " "9 for additional considerations regarding privacy." msgstr "" "Chaque représentation de la ressource DOIT inclure une valeur non vide " "\"id\". Cet identifiant DOIT être unique dans l'ensemble des ressources du " "fournisseur de service SCIM. L'identifiant DOIT être stable et non " "réassignable et ne pas change quand la même ressource est retournée dans les " "requêtes suivantes. La valeur de l'attribut \"id\" est toujours produite par " "le fournisseur de service est NE DOIT PAS être fournie par le client. La " "chaîne \"bulkId\" est un mot-clef réservé et NE DOIT PAS être utilisée comme " "une valeur d'identifiant unique. Les caractéristiques d'attribut sont " "\"caseExact\" à \"true\", la modification de \"readOnly\" et une " "caractéristique\"returned\" à \"always\". Voir la Section 9 pour les " "considérations supplémentaires concernant la vie privée." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model.identifier:1 bd6bdb35102f4e4d803a072d6c012255 msgid "" "Returns a unique value that will be used to identify the model instance." msgstr "" "Retourne une valeur unique qui sera utilisée pour identifier l'instance du " "modèle." #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model.identifier:4 3ee0208a12e4453abe733d48f8046054 msgid "" "This value will be used in URLs in canaille, so it should be unique and " "short." msgstr "" "Cette valeur sera utilisée dans les URL de Canaille, il devrait donc être " "unique et court." #: ../../docstring of canaille.backends.models.Model.last_modified:1 #: 339106d4e64c4cce82c7b4eb3e783713 msgid "" "The most recent :class:`~datetime.datetime` that the details of this " "resource were updated at the service provider." msgstr "" "La date la plus récente (:class:`~datetime.datetime`) à laquelle les détails " "de cette ressource a été mise-à-jour par le fournisseur de service." #: ../../docstring of canaille.backends.models.Model.last_modified:4 #: c7d7e9d90b744b41ac4899977c14174f msgid "" "If this resource has never been modified since its initial creation, the " "value MUST be the same as the value of :attr:`~canaille.backends.models." "Model.created`." msgstr "" "Si cette ressource n'a jamais été modifié depuis sa création initiale, la " "valeur DOIT être la même que :attr:`~canaille.backends.models.Model.created`." #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 #: canaille.core.models.User:1 ../../canaille/oidc/basemodels.py:docstring #: canaille.oidc.basemodels.AuthorizationCode:1 #: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1 #: canaille.oidc.basemodels.Token:1 d3ae97f457864dbf953ac9a3cfc043e2 #: c8d3896a864d4331a8d5532b312376db c1c3e9ca21a04c1d851e4a75082b1c90 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "Bases : :py:class:`~canaille.backends.models.Model`" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 #: fcf6434c92de4c0e9ae1790f19a43d8c msgid "" "User model, based on the `SCIM Group schema `_." msgstr "" "Modèle utilisateur, basé sur le `schéma de Groupe SCIM `_." #: ../../docstring of canaille.core.models.Group.display_name:1 #: 6ae4c021384e45b3b90ca7840c9caa48 msgid "A human-readable name for the Group." msgstr "Un nom lisible par un humain pour le Groupe." #: ../../docstring of canaille.core.models.Group.display_name:3 #: canaille.oidc.basemodels.Client.client_id:1 94bf457053a8408a80e8157f385e6127 #: 8ef14562e7c1440e89a45a65c05b07c4 msgid "REQUIRED." msgstr "OBLIGATOIRE." #: ../../docstring of canaille.core.models.Group.members:1 #: 0b61dbdad02b48bbb9a9ace3f9ce130a msgid "A list of members of the Group." msgstr "Une liste des membres du Groupe." #: ../../docstring of canaille.core.models.Group.members:3 #: 4f5d6c5417ce40c39617fed66f507f2d msgid "" "While values MAY be added or removed, sub-attributes of members are " "\"immutable\". The \"value\" sub-attribute contains the value of an \"id\" " "attribute of a SCIM resource, and the \"$ref\" sub-attribute must be the URI " "of a SCIM resource such as a \"User\", or a \"Group\". The intention of the " "\"Group\" type is to allow the service provider to support nested groups. " "Service providers MAY require clients to provide a non-empty value by " "setting the \"required\" attribute characteristic of a sub-attribute of the " "\"members\" attribute in the \"Group\" resource schema." msgstr "" "Tandis que certaines valeurs PEUVENT être ajoutées ou supprimées, les sous-" "attributs de `members` sont « immutables ».. Le sous-attribut `value` " "contient la valeur de l'attribut « id » d'une ressource SCIM, and le sous-" "attribut « $ref » doit être l'URI d'une ressource SCIM telle que « User » ou " "« Group ». L'intention du type « Group » est d'autoriser les fournisseurs " "de service à supporter les groupes imbriqués. Les fournisseurs de service " "PEUVENT exiger des clients qu'ils fournissent une valeur non nulle en " "paramétrant la caractéristique d'attribut « required » d'un sous-attribut de " "l'attribut « members » dans le schéma de la ressource « Group »." #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 #: ea9a3214f2fe40079b36d4acc3993d0b msgid "" "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password " "Management Extension `_ draft. Attribute description is based on SCIM and " "put there for information purpose. The description may not fit the current " "implementation in Canaille." msgstr "" "Modèle utilisateurs, basé sur les spécifications`SCIM User schema `_, `Entreprise User " "Schema Extension `_ et le brouillon `SCIM Password Management Extension " "`_." #: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 #: 50465e6a043e4772901bbc25136c15c7 msgid "" "Whether or not the user has the :class:`~canaille.core.configuration." "Permission` according to the :class:`configuration `." msgstr "" "L’utilisateur a ou non la :class:`~canaille.core.configuration.Permission` " "en fonction de la :class:`configuration `." #: ../../docstring of canaille.core.models.User.department:1 #: 300ebcf15c3d4ee8b50478aa38113f2f msgid "Identifies the name of a department." msgstr "Identifie le nom d’un service." #: ../../docstring of canaille.core.models.User.display_name:1 #: 44d18f2b6f5147d7bb381e18daf093e3 msgid "The name of the user, suitable for display to end-users." msgstr "" "Le nom de l’utilisateur, destiné à être affiché auprès d’autres utilisateurs." #: ../../docstring of canaille.core.models.User.display_name:3 #: c04b6da17ce14862afd1911eb9fda1fd msgid "" "Each user returned MAY include a non-empty displayName value. The name " "SHOULD be the full name of the User being described, if known (e.g., \"Babs " "Jensen\" or \"Ms. Barbara J Jensen, III\") but MAY be a username or handle, " "if that is all that is available (e.g., \"bjensen\"). The value provided " "SHOULD be the primary textual label by which this User is normally displayed " "by the service provider when presenting it to end-users." msgstr "" "Chaque utilisateur retourné PEUT inclure une valeur « displayName » non " "nulle. Le nom DOIT être le nom complet de l’utilisateur décrit, is connu " "(par exemple « Babs Jensen » ou « Mme. Barbara J Jensen, III ») mais PEUT " "être un nom d’utilisateur, si c'est la seule information disponible (par " "exemple « bjensen ») La valeur fournie DOIT être le nom d'affichage avec " "lequel l’utilisateur est normalement affiché par le fournisseur de service " "quand affiché auprès d'autres utilisateurs." #: ../../docstring of canaille.core.models.User.emails:1 #: c7a7d69b175742f692f41bfdff6d3957 msgid "Email addresses for the User." msgstr "L'adresse email de l'utilisateur." #: ../../docstring of canaille.core.models.User.emails:3 #: 63f46cb0c21a4fa4b8b0a720c8d14248 msgid "" "The value SHOULD be specified according to [RFC5321]. Service providers " "SHOULD canonicalize the value according to [RFC5321], e.g., " "\"bjensen@example.com\" instead of \"bjensen@EXAMPLE.COM\". The \"display\" " "sub-attribute MAY be used to return the canonicalized representation of the " "email value. The \"type\" sub-attribute is used to provide a classification " "meaningful to the (human) user. The user interface should encourage the use " "of basic values of \"work\", \"home\", and \"other\" and MAY allow " "additional type values to be used at the discretion of SCIM clients." msgstr "" "La valeur DOIT être en accord avec [RFC5321]. Les fournisseurs de service " "DOIT normaliser la valeur en fonction de [RFC5321], par exemple « " "bjensen@example.com » à la place de « bjensen@EXAMPLE.COM ». Le sous-" "attribut « display » PEUT être utilisé pour retourner la représentation " "normalisée de l'adresse email. Le sous-attribut « type » est utilisé pour " "fournir une classification significative pour l'utilisateur (humain). " "L'interface utilisateur devrait encourager l'utilisateur des valeurs " "basiques « work », « home » et « other » et PEUT autoriser des types " "additionnels pouvant être utilisés à la discrétion des clients SCIM." #: ../../docstring of canaille.core.models.User.employee_number:1 #: 3c9e8a305a2e45188d1991241730c384 msgid "" "A string identifier, typically numeric or alphanumeric, assigned to a " "person, typically based on order of hire or association with an organization." msgstr "" "Un identifiant en chaîne de caractères, généralement numérique ou " "alphanumérique, assigné à une personne, généralement basée sur l'ordre " "d'embauche ou d'association avec une organisation." #: ../../docstring of canaille.core.models.User.family_name:1 #: dd49515b6ca4486487bbb848d32ec95d msgid "" "The family name of the User, or last name in most Western languages (e.g., " "\"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\")." msgstr "" "Le nom de famille de l'utilisateur, ou le patronyme (e.g., \"Jensen\" given " "the full name \"Ms. Barbara Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.formatted_address:1 #: f80305cee214421eb76ae29dd6697765 msgid "" "The full mailing address, formatted for display or use with a mailing label." msgstr "" "L'adresse e-mail complète, formatée pour l'affichage ou l'utilisation avec " "un label de mailing." #: ../../docstring of canaille.core.models.User.formatted_address:4 #: 85a0ba3e7b064d75b6bb0f9135fb23c1 msgid "This attribute MAY contain newlines." msgstr "Cet attribut PEUT contenir des retours à la ligne." #: ../../docstring of canaille.core.models.User.formatted_name:1 #: 4e458944ffe74d00bfc78e91f7f4b925 msgid "" "The full name, including all middle names, titles, and suffixes as " "appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")." msgstr "" "Le nom complet, incluant tous les prénoms, titres et suffixes appropriés, " "formatés pour l'affichage (e.g., \"Mme. Barbara Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.given_name:1 #: f44fded253494128a007b56f7303dc14 msgid "" "The given name of the User, or first name in most Western languages (e.g., " "\"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\")." msgstr "" "Le nom courant de l'utilisateur, ou prénom dans la plupart des langues " "occidentales (par exemple., \"Barbara\" dans le nom complet \"Ms. Barbara " "Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.groups:1 #: e31e09adf6404439bf17d6aab21fff32 msgid "" "A list of groups to which the user belongs, either through direct " "membership, through nested groups, or dynamically calculated." msgstr "" "Une liste de groupes auxquels l'utilisateur appartient, soit par " "appartenance directe, soit par groupes imbriqués ou calculés dynamiquement." #: ../../docstring of canaille.core.models.User.groups:4 #: c05221c0bcca4718bfa6fdb9519fe95e msgid "" "The values are meant to enable expression of common group-based or role-" "based access control models, although no explicit authorization model is " "defined. It is intended that the semantics of group membership and any " "behavior or authorization granted as a result of membership are defined by " "the service provider. The canonical types \"direct\" and \"indirect\" are " "defined to describe how the group membership was derived. Direct group " "membership indicates that the user is directly associated with the group and " "SHOULD indicate that clients may modify membership through the \"Group\" " "resource. Indirect membership indicates that user membership is transitive " "or dynamic and implies that clients cannot modify indirect group membership " "through the \"Group\" resource but MAY modify direct group membership " "through the \"Group\" resource, which may influence indirect memberships. " "If the SCIM service provider exposes a \"Group\" resource, the \"value\" sub-" "attribute MUST be the \"id\", and the \"$ref\" sub-attribute must be the URI " "of the corresponding \"Group\" resources to which the user belongs. Since " "this attribute has a mutability of \"readOnly\", group membership changes " "MUST be applied via the \"Group\" Resource (Section 4.2). This attribute " "has a mutability of \"readOnly\"." msgstr "" "Les valeurs sont faites pour activer l'expression de modèles au contrôle " "d'accès basé sur les rôles ou basé sur des groupes communs, bien qu'aucun " "modèle d'autorisation explicite n'est défini. Il est prévu que les " "sémantiques des membres de groupe et n'importe quel comportement ou " "autorisation donnée comme résultat de l'appartenance sont définies par le " "fournisseur de service. Les type canoniques « direct » et « indirect » sont " "définis pour décrire comment l'appartenance au groupe était dérivé. " "L'appartenance directe au groupe indique que l'utilisateur est directement " "associé avec le groupe et DEVRAIT indiquer que les clients peuvent modifier " "l'appartenance au travers de la ressource Groupe. L'appartenance indirecte " "au groupe indique que l'appartenance de l'utilisateur est transitive ou " "dynamique et implique que les clients ne peuvent pas modifier une " "appartenance indirecte au groupe au travers de la ressource Groupe mais " "PEUVENT modifier l'appartenance directe au groupe au travers de la ressource " "Groupe, ce qui peut influencer l'appartenance indirecte. Si le fournisseur " "de service SCIM expose une ressource Groupe, le sous-attribut « value » DOIT " "être l'« id » et le sous-attribut « $ref »doit être l'URI des ressources " "Groupe correspondantes auxquelles l'utilisateur appartient. Puisque cet " "attribut a une mutabilité en lecture seule, l'appartenance du groupe DOIT " "être appliquée via la Ressource Groupe (section 4.2). Cet attribut a la " "mutabilité en lecture seule («  readOnly»)." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.has_password:1 995c5dd87f84486b866861819560cddf msgid "Check whether a password has been set for the user." msgstr "Vérifie si un mot de passe a été définie pour l'utilisateur." #: ../../docstring of canaille.core.models.User.hotp_counter:1 #: b20ebcdbcb5844738f1587b2713c1ee3 msgid "" "HMAC-based One Time Password counter, used for two-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.last_otp_login:1 #: aeffd6550ea64663ab67d8acca53691b msgid "" "A DateTime indicating when the user last logged in with a one-time password. " "This attribute is currently used to check whether the user has activated one-" "time password authentication or not." msgstr "" #: ../../docstring of canaille.core.models.User.locality:1 #: 6392444bc3f54ec2b7a2e6d76dcebfd9 msgid "The city or locality component." msgstr "Le composant de ville ou de localité." #: ../../docstring of canaille.core.models.User.lock_date:1 #: 52b1f476fb584fa89da42a63597ba27d msgid "A DateTime indicating when the resource was locked." msgstr "Une date (DateTime) indiquant quand la ressource a été verrouillée." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.locked:1 11adeee0c9264a899a29f6650947d5f9 msgid "Whether the user account has been locked or has expired." msgstr "Si le compte utilisateur a été verrouillé ou a expiré." #: ../../docstring of canaille.core.models.User.one_time_password:1 #: 6e8fc6e79f3d45ac804673abaed8ae41 msgid "One time password used for email or sms two-factor authentication." msgstr "" #: ../../docstring of #: canaille.core.models.User.one_time_password_emission_date:1 #: 51fa37f2cd494b699222475514856ecf #, fuzzy #| msgid "A DateTime indicating when the resource was locked." msgid "" "A DateTime indicating when the user last emitted an email or sms one-time " "password." msgstr "Une date (DateTime) indiquant quand la ressource a été verrouillée." #: ../../docstring of canaille.core.models.User.organization:1 #: 7f2c3e4f3c354bedbccde4710263b02f msgid "Identifies the name of an organization." msgstr "Identifie le nom de l'organisation." #: ../../docstring of canaille.core.models.User.password:1 #: 072e6b6f57ea480eb08da8b2014e78fc msgid "" "This attribute is intended to be used as a means to set, replace, or compare " "(i.e., filter for equality) a password. The cleartext value or the hashed " "value of a password SHALL NOT be returnable by a service provider. If a " "service provider holds the value locally, the value SHOULD be hashed. When " "a password is set or changed by the client, the cleartext password SHOULD be " "processed by the service provider as follows:" msgstr "" "Cette attribut a pour but d'être utilisé pour définir, remplacer ou comparer " "(c'est-à-dire fitrer par égalité) un mot de passe. La valeur en clair ou " "hashée du mot de passe NE DEVRAIT PAS être retournable par le fournisseur de " "service. Si un fournisseur de service détient la valeur localement, la " "valeur DEVRAIT être hashée. Quand un mot de passe est défini ou changé par " "le client, le mot de passe en clair DEVRAIT être traité par le fournisseur " "de service comme suit :" #: ../../docstring of canaille.core.models.User.password:9 #: ad7fb50b57bf4a0eaf4e0e96899afad2 msgid "" "Prepare the cleartext value for international language comparison. See " "Section 7.8 of [RFC7644]." msgstr "" "Prépare la valeur en clair pour une comparaison de langue internationale. " "Voir la section 7.8 de [RFC7644]." #: ../../docstring of canaille.core.models.User.password:12 #: 46d03fb43b2e40cc9f2ad6ea3dd511ff msgid "" "Validate the value against server password policy. Note: The definition and " "enforcement of password policy are beyond the scope of this document." msgstr "" "Valide la valeur contre la politique du mot de passe serveur. Note : La " "définition et les contraintes de la politique de mot de passe sont hors du " "périmètre de ce document." #: ../../docstring of canaille.core.models.User.password:16 #: 72ece62774ba4f9c9ef5ddf163d12af4 msgid "" "Ensure that the value is encrypted (e.g., hashed). See Section 9.2 for " "acceptable hashing and encryption handling when storing or persisting for " "provisioning workflow reasons." msgstr "" "Force que le valeur soit cryptée (par exemple, hashée). Voir la section 9.2 " "pour un hash acceptable et la gestion de chiffrement quand l'enregistrement " "et la persistance pour des raisons de suivi de fourniture." #: ../../docstring of canaille.core.models.User.password:20 #: 094d9a68c6b743f3af8832f6fe75e71e msgid "" "A service provider that immediately passes the cleartext value on to another " "system or programming interface MUST pass the value directly over a secured " "connection (e.g., Transport Layer Security (TLS)). If the value needs to be " "temporarily persisted for a period of time (e.g., because of a workflow) " "before provisioning, then the value MUST be protected by some method, such " "as encryption." msgstr "" "Un fournisseur de service qui passe immédiatement la valeur en clair à un " "autre système ou interface de programmation DOIT passer la valeur " "directement sur une connexion sécurisé (e.g., Transport Layer Security " "(TLS)). Si la valeur a besoin d'être temporairement persistée pour une " "période de temps (e.g., à cause du processus utilisé) avant son transfert, " "alors la valeur DOIT être protégée par diverses méthode, tel que le " "chiffrement." #: ../../docstring of canaille.core.models.User.password:28 #: a4f2fcdde65c4774a2cb672677275686 msgid "" "Testing for an equality match MAY be supported if there is an existing " "stored hashed value. When testing for equality, the service provider:" msgstr "" "Tester l'égalité PEUT être gérée si une valeur hashée enregistrée existe. " "Quand un test d'égalité est fait, le fournisseur du service :" #: ../../docstring of canaille.core.models.User.password:32 #: 7595e72df7db44f9b6c42796e830f12b msgid "" "Prepares the filter value for international language comparison. See " "Section 7.8 of [RFC7644]." msgstr "" "Prépare la valeur du filtre pour une comparaison de langue internationale. " "Voir la section7.8 de [RFC7644]." #: ../../docstring of canaille.core.models.User.password:35 #: 61b66fa2e8814634889657f8d0edfab0 msgid "" "Generates the salted hash of the filter value and tests for a match with the " "locally held value." msgstr "" "Génère le hash salé de la valeur du filtre et teste la correspondance avec " "la valeur locale." #: ../../docstring of canaille.core.models.User.password:38 #: a7cfcbc3765b4f78a7155e4dd9415a1e msgid "" "The mutability of the password attribute is \"writeOnly\", indicating that " "the value MUST NOT be returned by a service provider in any form (the " "attribute characteristic \"returned\" is \"never\")." msgstr "" "La mutabilité de l'attribut password est \"writeOnly\" (écriture seule), " "indiquant que la valeur NE DOIT PAS être renvoyée par un fournisseur de " "service sous quelque forme que ce soit (la caractéristique \"returned\" de " "l'attribut est \"never\")." #: ../../docstring of canaille.core.models.User.phone_numbers:1 #: 9c94598375724785b44ef15df37f51e4 msgid "Phone numbers for the user." msgstr "Numéros de téléphone pour l'utilisateur." #: ../../docstring of canaille.core.models.User.phone_numbers:3 #: 5dd8841664b34a61b816f4809063e0c2 msgid "" "The value SHOULD be specified according to the format defined in [RFC3966], " "e.g., 'tel:+1-201-555-0123'. Service providers SHOULD canonicalize the " "value according to [RFC3966] format, when appropriate. The \"display\" sub-" "attribute MAY be used to return the canonicalized representation of the " "phone number value. The sub- attribute \"type\" often has typical values of " "\"work\", \"home\", \"mobile\", \"fax\", \"pager\", and \"other\" and MAY " "allow more types to be defined by the SCIM clients." msgstr "" "La valeur DOIT être spécifiée en accord avec le format défini dans " "[RFC3966], par exemple, 'tel:+33123456789'. Les fournisseurs de service " "DOIVENT normaliser la valeur selon le format [RFC3966], quand cela est " "approprié. Le sous-attribut \"display\" PEUT être utilisé pour renvoyer la " "représentation normalisée de la valeur du numéro de téléphone. Le sous-" "attribut \"type\" prend souvent les valeurs habituelles de \"work\", " "\"home\", \"mobile\", \"fax\", \"pager\", et \"other\" et PEUT autoriser " "d'autres types définis par les clients SCIM." #: ../../docstring of canaille.core.models.User.photo:1 #: 291043b969b54c499248e5cd4137ba46 msgid "" "A URI that is a uniform resource locator (as defined in Section 1.1.3 of " "[RFC3986]) that points to a resource location representing the user's image." msgstr "" "Une URI qui est une URL (telle que définie dans la section 1.1.3 de " "[RFC3986]) pointant vers la localisation de la ressource représentant " "l'image de l'utilisateur." #: ../../docstring of canaille.core.models.User.photo:5 #: d20c5f4d9f154642a7e5197897542d16 msgid "" "The resource MUST be a file (e.g., a GIF, JPEG, or PNG image file) rather " "than a web page containing an image. Service providers MAY return the same " "image in different sizes, although it is recognized that no standard for " "describing images of various sizes currently exists. Note that this " "attribute SHOULD NOT be used to send down arbitrary photos taken by this " "user; instead, profile photos of the user that are suitable for display when " "describing the user should be sent. Instead of the standard canonical values " "for type, this attribute defines the following canonical values to represent " "popular photo sizes: \"photo\" and \"thumbnail\"." msgstr "" "La ressource DOIT être un fichier (par exemple une image au format GIF, " "JPEG, ou PNG) plutôt qu'une page web contenant une image. Les fournisseurs " "de service PEUVENT retourner la même image dans différentes tailles, bien " "qu'il n'existe pas actuellement de standard pour décrire les images de " "différentes tailles. Notez que cet attribut NE DEVRAIT PAS être utilisé pour " "envoyer n'importe quelle photo prise par cet utilisateur mais plutôt les " "photos de profil de l'utilisateur affichable quand une description " "l'utilisateur devrait être envoyé. À la place des valeurs canoniques " "standard pour le type, cet attribut définit les valeurs canoniques suivantes " "pour représenter les tailles de photo populaire: « photo » et « vignette »." #: ../../docstring of canaille.core.models.User.postal_code:1 #: 43d41ad405ca4db99f51e8c857e137e3 msgid "The zip code or postal code component." msgstr "Le composant code zip ou postal." #: ../../docstring of canaille.core.models.User.preferred_language:1 #: c8f7b6dd86d646f191246ff0070da604 msgid "" "Indicates the user's preferred written or spoken languages and is generally " "used for selecting a localized user interface." msgstr "" "Indique la langue préférée de l'utilisateur, parlée ou écrite, et est " "généralement utilisée pour sélectionner la langue de l'interface utilisateur." #: ../../docstring of canaille.core.models.User.preferred_language:4 #: 7bf574c66b664d229948814478d62a8a msgid "" "The value indicates the set of natural languages that are preferred. The " "format of the value is the same as the HTTP Accept-Language header field " "(not including \"Accept-Language:\") and is specified in Section 5.3.5 of " "[RFC7231]. The intent of this value is to enable cloud applications to " "perform matching of language tags [RFC4647] to the user's language " "preferences, regardless of what may be indicated by a user agent (which " "might be shared), or in an interaction that does not involve a user (such as " "in a delegated OAuth 2.0 [RFC6749] style interaction) where normal HTTP " "Accept-Language header negotiation cannot take place." msgstr "" "La valeur indique l'ensemble des langues naturelles qui sont préférées. Le " "format de la valeur est la même que le champ d'en-tête HTTP Accept-Language " "(sans inclure « Accept-Language: » et est défini dans la section 5.3.5 de " "[RFC7231]. Le but de cette valeur est d'activer les applications cloud à " "exécuter une correspondance des étiquettes de langue [RFC4647] avec les " "préférences de langues de l'utilisateur, sans prendre en compte ce que le " "user-agent (qui pourrait être partagé) pourrait indiquer, ou dans un " "interaction qui n'implique pas un utilisateur (tel que dans une interaction " "du type d'OAuth 2.0 déléguée [RFC6749]) où il n'y a pas de negociation avec " "l'en-tête HTTP Accept-Language." #: ../../docstring of canaille.core.models.User.profile_url:1 #: 1cb9deea306246f8a148e8cd469da0d8 msgid "" "A URI that is a uniform resource locator (as defined in Section 1.1.3 of " "[RFC3986]) and that points to a location representing the user's online " "profile (e.g., a web page)." msgstr "" "Une URI qui est une URL (tel que définie dans une section 1.1.3 de " "[RFC3986]) et pointant à une localisation représentant le profil en ligne de " "l'utilisateur (par exemple une page web)." #: ../../docstring of canaille.core.models.User.profile_url:5 #: 84b648830c3148ecb4e74a368b850c23 msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." msgstr "Les URI sont au format canonique selon la section 6.2 de [RFC3986]." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.readable_fields:1 58a2e21fdb434721a2f63d42d309bdf5 msgid "" "The fields the user can read according to the :class:`configuration " "` configuration." msgstr "" "Les champs que l'utilisateur peut lire dans la configuration de :class:" "`configuration ." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.readable_fields:4 13d48165549548f4b93daef3011da021 msgid "" "This does not include the :attr:`writable ` fields." msgstr "" "Cela n'inclut pas les champs :attr:`writable `." #: ../../docstring of canaille.core.models.User.region:1 #: 6f59b77e31f04e928a5ba62b1e24e768 msgid "The state or region component." msgstr "Le composant État ou région." #: ../../docstring of canaille.core.models.User.secret_token:1 #: 976966fe6b494fa7881ec2bb7c992d48 msgid "" "Unique token generated for each user, used for two-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.street:1 #: 499ca20e98174187b6a7e067dc8bb99d msgid "" "The full street address component, which may include house number, street " "name, P.O." msgstr "" "Le composant d'adresse rue complète, qui peut inclure le numéro de la " "maison, le nom de la rue, code" #: ../../docstring of canaille.core.models.User.street:4 #: 9da29eeb9a7749388ec24a3d730cdcca msgid "" "box, and multi-line extended street address information. This attribute MAY " "contain newlines." msgstr "" "postal et les informations de rue étendues sur plusieurs lignes. Cet " "attribut PEUT contenir des retours à la ligne." #: ../../docstring of canaille.core.models.User.title:1 #: d210c0de6da84b4f8336209ae9719f87 msgid "The user's title, such as \"Vice President\"." msgstr "Le titre de l'utilisateur, par exemple \"Vice Président\"." #: ../../docstring of canaille.core.models.User.user_name:1 #: 3fdb69a67da040b1bfb2682e3c8b99d4 msgid "" "A service provider's unique identifier for the user, typically used by the " "user to directly authenticate to the service provider." msgstr "" "L'identifiant unique de l'utilisateur pour un fournisseur de service, " "généralement utilisé par l'utilisateur pour s'authentifier directement " "auprès de ce fournisseur de service." #: ../../docstring of canaille.core.models.User.user_name:4 #: 1028aa46fd5b4dc2b9315aabf36ab31c msgid "" "Often displayed to the user as their unique identifier within the system (as " "opposed to \"id\" or \"externalId\", which are generally opaque and not user-" "friendly identifiers). Each User MUST include a non-empty userName value. " "This identifier MUST be unique across the service provider's entire set of " "Users. This attribute is REQUIRED and is case insensitive." msgstr "" "Souvent affiché à l'utilisateur comme leur identifiant unique dans le " "système (au contraire de \"id\" ou \"externalId\", qui sont généralement des " "identifiants opaques et non conviviaux). Chaque utilisateur DOIT inclure une " "valeur de userName non vide. Cet identifiant DOIT être unique parmi tous les " "Users (utilisateurs) du fournisseur de service. Cet attribut est OBLIGATOIRE " "et n'est pas sensible à la casse." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.writable_fields:1 6f4310b43c8c41af8069664ccee7283a msgid "" "The fields the user can write according to the :class:`configuration " "`." msgstr "" "Les champs que l'utilisateur peut modifier selon la :class:`configuration " "`." #: ../../canaille/core/models.py:docstring of #: canaille.core.models.string_code:1 fc53171fc0944808ba403af52c2ba136 msgid "Add leading 0 if the code length does not match the defined length." msgstr "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.string_code:3 ae60e7010ca94353a14a569775471e8e msgid "" "For instance, parameter ``digit=6``, but ``code=123``, this method would " "return ``000123``::" msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.AuthorizationCode:1 #: a121e077c37d4a8cab594a0629893230 msgid "OpenID Connect temporary authorization code definition." msgstr "Définition du code temporaire d'autorisation OpenID Connect." #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.Client:1 176b8928ffc54ed0b7a4b727cdf50387 msgid "" "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " "Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." msgstr "" "Définition du client OpenID Connect, basée sur les protocoles `OAuth 2.0 " "Dynamic Client Registration `_ et les spécifications `OpenID Connect RP-Initiated Logout `_." #: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 #: 501569fe51a94e8b9cfee76865f5720a msgid "" "OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for " "any other registered client, though an authorization server MAY issue the " "same client identifier to multiple instances of a registered client at its " "discretion." msgstr "" "Chaîne de caractères contenant l'identifiant du client OAuth 2.0. " "L'identifiant NE DOIT PAS être actuellement valide pour un autre client " "inscrit, bien qu'un serveur d'autorisation PUISSE donner le même identifiant " "client à plusieurs instances d'un client inscrit à sa discrétion." #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:1 #: canaille.oidc.basemodels.Client.client_secret:1 #: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 #: 155223b8bff641ed9a0375b3d458c5c9 msgid "OPTIONAL." msgstr "OPTIONNEL." #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 #: 8f9ab854501246b68994edefd2c22365 msgid "" "Time at which the client identifier was issued. The time is represented as " "the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the " "date/time of issuance." msgstr "" "La date à laquelle l'identifiant client a été émis. La date est représentée " "comme le nombre de secondes écoulées depuis 1970-01-01T00:00:00Z mesuré en " "UTC jusqu'à la date d'émission." #: ../../docstring of canaille.oidc.basemodels.Client.client_name:1 #: 8610eab8370a4184937f0d1169b54c51 msgid "" "Human-readable string name of the client to be presented to the end-user " "during authorization." msgstr "" "Le nom du client à présenter à l'utilisateur final durant l'autorisation, " "sous la forme d'une chaîne de caractères lisible par un être humain." #: ../../docstring of canaille.oidc.basemodels.Client.client_name:4 #: ce9a8c14a98f4a31b17100c0ca14c199 msgid "" "If omitted, the authorization server MAY display the raw \"client_id\" value " "to the end-user instead. It is RECOMMENDED that clients always send this " "field. The value of this field MAY be internationalized, as described in " "Section 2.2." msgstr "" "Si omis, le serveur d'autorisation PEUT afficher la valeur brute " "\"client_id\" à l'utilisateur final à la place. Il est RECOMMANDÉ que les " "clients envoient toujours ce champ. La valeur de ce champ PEUT être " "internationalisée, comme décrit dans la Section 2.2." #: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3 #: f737139e11a14b14be8545e1a2c5c0f6 msgid "" "OAuth 2.0 client secret string. If issued, this MUST be unique for each " "\"client_id\" and SHOULD be unique for multiple instances of a client using " "the same \"client_id\". This value is used by confidential clients to " "authenticate to the token endpoint, as described in OAuth 2.0 [RFC6749], " "Section 2.3.1." msgstr "" "Chaîne secrète du client OAuth 2.0. Si généré, il DOIT être unique pour " "chaque « client_id » et DEVRAIT être unique pour de multiple instances du " "client utilisant le même « client_id ». Cette valeur est utilisée par des " "clients confidentiels pour authentifier le terminal du jeton, tel que décrit " "dans OAuth 2.0 [RFC6749], Section 2.3.1." #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:1 #: 01979509cf224c5b8ba2127719435fc8 msgid "REQUIRED if \"client_secret\" is issued." msgstr "REQUIS si \"client_secret\" est émis." #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:3 #: 48959dbf918e45ba9c37a50f77a0adf9 msgid "" "Time at which the client secret will expire or 0 if it will not expire. The " "time is represented as the number of seconds from 1970-01-01T00:00:00Z as " "measured in UTC until the date/time of expiration." msgstr "" "La date à laquelle le secret du client va expirer ou 0 s'il n'expire pas. La " "date est représentée comme le nombre de secondes écoulées depuis " "1970-01-01T00:00:00Z mesuré en UTC jusqu'à la date d'expiration." #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1 #: 20f5972c57c540f6ab8392896c84be8c msgid "URL string of a web page providing information about the client." msgstr "" "URL en chaîne de caractères d'une page d'information à propos du client." #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 #: 30041d9b4c124152a5c0443ff9b2191c msgid "" "If present, the server SHOULD display this URL to the end-user in a " "clickable fashion. It is RECOMMENDED that clients always send this field. " "The value of this field MUST point to a valid web page. The value of this " "field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.contacts:1 #: 5cce7321f5e5400589f9393258dc3a4a msgid "" "Array of strings representing ways to contact people responsible for this " "client, typically email addresses." msgstr "" "Un tableau de chaînes de caractères représentant différentes façon de " "contacter les personnes responsables de ce client, généralement des adresses " "e-mail." #: ../../docstring of canaille.oidc.basemodels.Client.contacts:4 #: af06fcccdc594f869be314af985cf14c msgid "" "The authorization server MAY make these contact addresses available to end-" "users for support requests for the client. See Section 6 for information on " "Privacy Considerations." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:1 #: b4a5975375c641eaa946ccd90ce211a6 msgid "" "Array of OAuth 2.0 grant type strings that the client can use at the token " "endpoint. These grant types are defined as follows:" msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:4 #: bbc3935e899e47f3bafe281f1d888251 msgid "" "\"authorization_code\": The authorization code grant type defined in OAuth " "2.0, Section 4.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:7 #: 64449ef0ca7f424c9fab46a991d69d96 msgid "" "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 #: f236e27b48c94daf906f45e1448426c6 msgid "" "\"password\": The resource owner password credentials grant type defined in " "OAuth 2.0, Section 4.3." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:13 #: 9e81137e52f94762be9551134791deaf msgid "" "\"client_credentials\": The client credentials grant type defined in OAuth " "2.0, Section 4.4." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:16 #: e7293d36a66346228115f0e7a1db1628 msgid "" "\"refresh_token\": The refresh token grant type defined in OAuth 2.0, " "Section 6." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:19 #: 8fcedc410abe4cb4ba32399205c1fdb4 msgid "" "\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token Grant " "Type defined in OAuth JWT Bearer Token Profiles [RFC7523]." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:23 #: 45a990b4f0c3428ca6b0f466163b444d msgid "" "\"urn:ietf:params:oauth:grant-type:saml2-bearer\": The SAML 2.0 Bearer " "Assertion Grant defined in OAuth SAML 2 Bearer Token Profiles [RFC7522]." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:27 #: da938e538dfb4cbcb06eb0257bae0c5d msgid "" "If the token endpoint is used in the grant type, the value of this parameter " "MUST be the same as the value of the \"grant_type\" parameter passed to the " "token endpoint defined in the grant type definition. Authorization servers " "MAY allow for other values as defined in the grant type extension process " "described in OAuth 2.0, Section 4.5. If omitted, the default behavior is " "that the client will use only the \"authorization_code\" Grant Type." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwk:1 #: 61a94c54874e45c7b6d6a0080b303c06 msgid "" "Client's JSON Web Key Set [RFC7517] document value, which contains the " "client's public keys." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwk:4 #: 878eeb4b93db4411b3227ebfce480fb2 msgid "" "The value of this field MUST be a JSON object containing a valid JWK Set. " "These keys can be used by higher-level protocols that use signing or " "encryption. This parameter is intended to be used by clients that cannot " "use the \"jwks_uri\" parameter, such as native clients that cannot host " "public URLs. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be " "present in the same request or response." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:1 #: bdc8f6ae5aa54e2e8cd3968ba2b834e5 msgid "" "URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] " "document, which contains the client's public keys." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:4 #: f0514e0625524e80b9d71112f8f845fd msgid "" "The value of this field MUST point to a valid JWK Set document. These keys " "can be used by higher-level protocols that use signing or encryption. For " "instance, these keys might be used by some applications for validating " "signed requests made to the token endpoint when using JWTs for client " "authentication [RFC7523]. Use of this parameter is preferred over the " "\"jwks\" parameter, as it allows for easier key rotation. The \"jwks_uri\" " "and \"jwks\" parameters MUST NOT both be present in the same request or " "response." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:1 #: a8573dc1a7474be593d58ac595763de8 msgid "URL string that references a logo for the client." msgstr "URL en chaîne de caractères pointant vers un logo pour le client." #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 #: a2ca19d94ea94ee8b9938118fc25f1fa msgid "" "If present, the server SHOULD display this image to the end-user during " "approval. The value of this field MUST point to a valid image file. The " "value of this field MAY be internationalized, as described in Section 2.2." msgstr "" "Si présente, le serveur DOIT afficher cette image à l'utilisateur final " "pendant l'approbation. La valeur de ce chant DOIT pointer vers un fichier " "d'image valide. La valeur de ce champ PEUT être dans plusieurs langues, " "comme décrit dans la Section 2.2." #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1 #: 14d06cf8a7e34fedad15b82247d69d39 msgid "" "URL string that points to a human-readable privacy policy document that " "describes how the deployment organization collects, uses, retains, and " "discloses personal data." msgstr "" "URL en chaîne de caractères pointant vers un document de politique de " "confidentialité compréhensible, décrivant la façon dont l'organisation " "déployant l'application collecte, utilise, conserve et partage les données " "personnelles." #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5 #: canaille.oidc.basemodels.Client.tos_uri:5 1ea0d5026129456fbbc197bfce61c98e msgid "" "The authorization server SHOULD display this URL to the end-user if it is " "provided. The value of this field MUST point to a valid web page. The " "value of this field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.post_logout_redirect_uris:3 #: 50f7bef11f5244e4b91bdd115c92c874 msgid "" "Array of URLs supplied by the RP to which it MAY request that the End-User's " "User Agent be redirected using the post_logout_redirect_uri parameter after " "a logout has been performed. These URLs SHOULD use the https scheme and MAY " "contain port, path, and query parameter components; however, they MAY use " "the http scheme, provided that the Client Type is confidential, as defined " "in Section 2.1 of OAuth 2.0 [RFC6749], and provided the OP allows the use of " "http RP URIs." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:1 #: e6a72fe3893b4db4adc05a9684a6dc4a msgid "" "Array of redirection URI strings for use in redirect-based flows such as the " "authorization code and implicit flows." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:4 #: d8400c42df344766b3fa56e4d0973700 msgid "" "As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with " "redirection MUST register their redirection URI values. Authorization " "servers that support dynamic registration for redirect-based flows MUST " "implement support for this metadata value." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:1 #: 8be6e16541944c6f9cad4f83c72a13b5 msgid "" "Array of the OAuth 2.0 response type strings that the client can use at the " "authorization endpoint. These response types are defined as follows:" msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:5 #: 460f3e0ea3674308963d0510ac0d6444 msgid "" "\"code\": The authorization code response type defined in OAuth 2.0, Section " "4.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:8 #: a6be11c01465486aa6fc6d52b002b3c6 msgid "" "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 #: 0629b093e32248559987eb03c2802856 msgid "" "If the authorization endpoint is used by the grant type, the value of this " "parameter MUST be the same as the value of the \"response_type\" parameter " "passed to the authorization endpoint defined in the grant type definition. " "Authorization servers MAY allow for other values as defined in the grant " "type extension process is described in OAuth 2.0, Section 4.5. If omitted, " "the default is that the client will use only the \"code\" response type." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.scope:1 #: c8200e01d757418294c72a8c1f4dd013 msgid "" "String containing a space-separated list of scope values (as described in " "Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting " "access tokens." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.scope:5 #: 6b5bfcb30b5443cea8e88e0e0074c1ff msgid "" "The semantics of values in this list are service specific. If omitted, an " "authorization server MAY register a client with a default set of scopes." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_id:1 #: c16d3f6118f24f639ffa8f395fb26d51 msgid "" "A unique identifier string (e.g., a Universally Unique Identifier (UUID)) " "assigned by the client developer or software publisher used by registration " "endpoints to identify the client software to be dynamically registered." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_id:6 #: dae7107648bc4e498d3924fdff934e29 msgid "" "Unlike \"client_id\", which is issued by the authorization server and SHOULD " "vary between instances, the \"software_id\" SHOULD remain the same for all " "instances of the client software. The \"software_id\" SHOULD remain the " "same across multiple updates or versions of the same piece of software. The " "value of this field is not intended to be human readable and is usually " "opaque to the client and authorization server." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_version:1 #: c620c60307f64b08a6322573b5dd0561 msgid "" "A version identifier string for the client software identified by " "\"software_id\"." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 #: e0c0f27106824081827201c50fb85ae7 msgid "" "The value of the \"software_version\" SHOULD change on any update to the " "client software identified by the same \"software_id\". The value of this " "field is intended to be compared using string equality matching and no other " "comparison semantics are defined by this specification. The value of this " "field is outside the scope of this specification, but it is not intended to " "be human readable and is usually opaque to the client and authorization " "server. The definition of what constitutes an update to client software " "that would trigger a change to this value is specific to the software itself " "and is outside the scope of this specification." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 #: c226846c2d1c4874bf900ddd10cf4144 msgid "" "String indicator of the requested authentication method for the token " "endpoint. Values defined by this specification are:" msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 #: aca79c0bc52744e0aedf325049fa2b15 msgid "" "\"none\": The client is a public client as defined in OAuth 2.0, Section " "2.1, and does not have a client secret." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 #: e63eaadeb384412199ed4f6ed7053e47 msgid "" "\"client_secret_post\": The client uses the HTTP POST parameters as defined " "in OAuth 2.0, Section 2.3.1." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 #: 271a83d28e854ac0ba72171a974b346b msgid "" "\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth 2.0, " "Section 2.3.1." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 #: 20907504b16b4d2785df51328c1ef639 msgid "" "Additional values can be defined via the IANA \"OAuth Token Endpoint " "Authentication Methods\" registry established in Section 4.2. Absolute URIs " "can also be used as values for this parameter without being registered. If " "unspecified or omitted, the default is \"client_secret_basic\", denoting the " "HTTP Basic authentication scheme as specified in Section 2.3.1 of OAuth 2.0." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:1 #: 00b5b754a5c5419f92fab486003e081a msgid "" "URL string that points to a human-readable terms of service document for the " "client that describes a contractual relationship between the end-user and " "the client that the end-user accepts when authorizing the client." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.Consent:1 a05f59c629e3458fbbf64e91e88819bf msgid "Long-term user consent to an application." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.Token:1 7b57192679024787a3be94302cb00b86 msgid "OpenID Connect token definition." msgstr "" #: ../tutorial/databases.rst:4 5748f2a24c36444993b0ac2c8ce280bb msgid "" "Canaille can read and save data in different databases. This page presents " "the different database backends and their specificities:" msgstr "" #: ../tutorial/databases.rst:10 5d24828b6f5649039d526b7fb689db99 msgid "" "Canaille comes with a lightweight inmemory backend by default. It is used " "when no other backend has been configured." msgstr "" #: ../tutorial/databases.rst:13 afdd59c782fc4a28851af9f8a3c24428 msgid "" "This backend is only for test purpose and should not be used in production " "environments." msgstr "" #: ../tutorial/databases.rst:18 883a0e443e914abb8edfe20bf57f1296 msgid "" "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." msgstr "" #: ../tutorial/databases.rst:21 70e3f1710abf4134b85427a21dedeaa4 msgid "" "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " "instance:" msgstr "" #: ../tutorial/databases.rst:29 30971ee8de5542819657f07c3e215be2 msgid "" "You can find more details on the SQL configuration in the :class:`dedicated " "section `." msgstr "" #: ../tutorial/databases.rst:34 da789ef60396408eb64b22001aaaf8fe msgid "" "Canaille can use OpenLDAP as its main database. It is used when the " "``CANAILLE_LDAP`` configuration parameter is defined. For instance:" msgstr "" #: ../tutorial/databases.rst:52 c64cf1c4f3664390a27dbef6f154878e msgid "" "If you want to use TOTP/HOTP authentication, you will need to add the " "``oathHOTPToken`` class to the user :" msgstr "" #: ../tutorial/databases.rst:58 aa4b16bc9b7946d7904708e1f424f53f msgid "" "You can find more details on the LDAP configuration in the :class:`dedicated " "section `." msgstr "" #: ../tutorial/databases.rst:61 faa136c2f11c4d79b3bbe652a901e785 msgid "" "Currently, only the ``inetOrgPerson``, ``oathHOTPToken`` and " "``groupOfNames`` schemas have been tested. If you want to use different " "schemas or LDAP servers, adaptations may be needed. Patches are welcome." msgstr "" #: ../tutorial/databases.rst:66 21591edbced444b499d300486e257a91 msgid "OpenLDAP overlays integration" msgstr "" #: ../tutorial/databases.rst:68 33eaffdc103c4d709fb434da45ecca39 msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "" #: ../tutorial/databases.rst:71 b542d311f0444aef936af14660f9ddd3 msgid "memberof / refint" msgstr "" #: ../tutorial/databases.rst:73 e3756a8fbe1d4c469d6df3b4504b73d9 msgid "" "`memberof `_ and `refint `_ overlays " "are needed for the Canaille group membership to work correctly." msgstr "" #: ../tutorial/databases.rst:77 ../tutorial/databases.rst:100 #: ../tutorial/databases.rst:123 9b7b5412ee544d7bbb97fc1e30152585 msgid "Here is a configuration example compatible with canaille:" msgstr "" #: ../tutorial/databases.rst:79 1b8c284120b44c859cc9bd56b4c8e123 msgid "memberof-config.ldif" msgstr "" #: ../tutorial/databases.rst:83 3fc7e3d6f94f47579174c1ebcb598f6a msgid "refint-config.ldif" msgstr "" #: ../tutorial/databases.rst:87 ../tutorial/databases.rst:110 #: 39d5ac83d9724a36af9b2185453d86f3 msgid "You can adapt and load those configuration files with:" msgstr "" #: ../tutorial/databases.rst:96 359072b68f5d4338830ee414e509d7c2 msgid "ppolicy" msgstr "" #: ../tutorial/databases.rst:98 a589837a0cf14ad3b8f8116f78356f76 msgid "" "If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is " "available (since OpenLDAP 2.6), then account locking support will be enabled " "in canaille. To allow users to manage account expiration, they need to have " "a *write* permission on the :attr:`~canaille.core.models.User.lock_date` " "attribute." msgstr "" #: ../tutorial/databases.rst:102 fe864493f65b47008ba79f9154931883 msgid "ppolicy-config.ldif" msgstr "" #: ../tutorial/databases.rst:106 da19de8897bd448aaa8a8f6450974789 msgid "ppolicy.ldif" msgstr "" #: ../tutorial/databases.rst:119 ccb4fa4c948c461580569a7ec7a55885 msgid "otp" msgstr "" #: ../tutorial/databases.rst:121 9b6afdb7651743a78e1955ef59319e29 msgid "" "If the `otp `_ " "overlay is configured, you will be able to add one-time password " "authentication in canaille." msgstr "" #: ../tutorial/databases.rst:125 fe864493f65b47008ba79f9154931883 #, fuzzy #| msgid "config.toml" msgid "otp-config.ldif" msgstr "config.toml" #: ../tutorial/databases.rst:129 39d5ac83d9724a36af9b2185453d86f3 msgid "You can adapt and load this configuration file with:" msgstr "" #: ../tutorial/databases.rst:136 b0815f933dae41f8a18ffc5c389a8796 msgid "You will also need to add the ``oathHOTPToken`` class to the user:" msgstr "" #: ../tutorial/deployment.rst:2 968d6daab5054d1bbbaac721a53f21e6 msgid "Deployment" msgstr "" #: ../tutorial/deployment.rst:5 341af181b96a4e449f124bb22e58723a msgid "Application service" msgstr "" #: ../tutorial/deployment.rst:7 856f5e097bd34696b59aa74f451a1a33 msgid "" "After having finished Canaille installation you have to run it in a WSGI " "application server. Here are some WSGI server configuration examples you can " "pick. Do not forget to update the paths." msgstr "" #: ../tutorial/deployment.rst:11 c2fc01d884054c2c9e9f3cf5b1e7fe01 msgid "gunicorn" msgstr "" #: ../tutorial/deployment.rst:15 0734bfeb3d07400d85abe6f2412c506c msgid "Write a gunicorn configuration sample file." msgstr "" #: ../tutorial/deployment.rst:18 12db5d68d59f42958e64d74cf0a8a852 msgid "uwsgi" msgstr "" #: ../tutorial/deployment.rst:42 7f42a8052b034e1e949f7308c1e80068 msgid "Webserver" msgstr "" #: ../tutorial/deployment.rst:44 261287d315864e4e958aab6892250086 msgid "" "Now you have to plug your WSGI application server to your webserver so it is " "accessible on the internet. Here are some webserver configuration examples " "you can pick:" msgstr "" #: ../tutorial/deployment.rst:48 05ce956efe26448abaa00732f791ac5d msgid "Nginx" msgstr "" #: ../tutorial/deployment.rst:114 71a5e5d57a9547909ea4a78f80883422 msgid "Apache" msgstr "" #: ../tutorial/deployment.rst:153 c0216d38c6e74ed08fd2478d61524206 msgid "Recurrent jobs" msgstr "" #: ../tutorial/deployment.rst:155 24d5e0ff3df449e49ec973125318f628 msgid "" "You might want to clean up your database to avoid it growing too much. You " "can regularly delete expired tokens and authorization codes with:" msgstr "" #: ../tutorial/deployment.rst:164 615cedede7b348a39bef43b8a0296fb0 msgid "Webfinger" msgstr "" #: ../tutorial/deployment.rst:166 59c6373efd6040f2bc60ce6617810901 msgid "" "You may want to configure a `WebFinger`_ endpoint on your main website to " "allow the automatic discovery of your Canaille installation based on the " "account name of one of your users. For instance, suppose your domain is " "``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` " "and there is a user ``john.doe``. A third-party application could require to " "authenticate the user and ask them for a user account. The user would give " "their account ``john.doe@mydomain.example``, then the application would " "perform a WebFinger request at ``https://mydomain.example/.well-known/" "webfinger`` and the response would contain the address of the authentication " "server ``https://auth.mydomain.example``. With this information the third " "party application can redirect the user to the Canaille authentication page." msgstr "" #: ../tutorial/deployment.rst:168 ee64a42bf4104da2a68499149292566d msgid "" "The difficulty here is that the WebFinger endpoint must be hosted at the top-" "level domain (i.e. ``mydomain.example``) while the authentication server " "might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille " "provides a WebFinger endpoint, but if it is not hosted at the top-level " "domain, a web redirection is required on the ``/.well-known/webfinger`` path." msgstr "" #: ../tutorial/deployment.rst:170 a1aa4ace653f416eb673a5ac6f536199 msgid "Here are configuration examples for Nginx or Apache:" msgstr "" #: ../tutorial/deployment.rst:172 54696b09f9de48daa0d752cab9cbbe60 msgid "Nginx webfinger configuration for a top level domain" msgstr "" #: ../tutorial/deployment.rst:181 7277d41cdb83400ab68d06861f1bba9b msgid "Apache webfinger configuration for a top level domain" msgstr "" #: ../tutorial/deployment.rst:191 6c673a0168dc4f159d40898328555d97 msgid "Create the first user" msgstr "" #: ../tutorial/deployment.rst:193 665633a1bc5a4185b3ac592a8e0d023d msgid "" "Once canaille is installed, soon enough you will need to add users. To " "create your first user you can use the :ref:`canaille create ` " "CLI." msgstr "" #: ../tutorial/index.rst:2 df05343770804349af328d9b3651f059 msgid "Tutorial" msgstr "" #: ../tutorial/install.rst:2 a0eef22998554712a838c86b94681306 msgid "Installation" msgstr "" #: ../tutorial/install.rst:6 366d1de010774522b5947172c22d1d64 msgid "" "Canaille is under heavy development and may not fit a production environment " "yet." msgstr "" #: ../tutorial/install.rst:8 7ec1652a0617445681d3b44ab4ef6607 msgid "" "The installation of canaille consist in several steps, some of which you can " "do manually or with command line tool:" msgstr "" #: ../tutorial/install.rst:11 39b5cccca7ae4928abc5ecac4466a670 msgid "Get the code" msgstr "" #: ../tutorial/install.rst:13 dd49fb118bd94e00810d55ca2e8e3c23 msgid "" "As the moment there is no distribution package for canaille. However, it can " "be installed with the ``pip`` package manager. Let us choose a place for the " "canaille environment, like ``/opt/canaille/env``." msgstr "" #: ../tutorial/install.rst:24 8f98f8e76182487aba2f150e7af39150 msgid "Extras" msgstr "" #: ../tutorial/install.rst:26 364aff7067fe4ab0aea19ad6024893b1 msgid "Canaille provides different package options:" msgstr "" #: ../tutorial/install.rst:28 0b64d33198cf4965bf5ccec22054fc9b msgid "`front` provides all the things needed to produce the user interface;" msgstr "" #: ../tutorial/install.rst:29 4f47aa89080f491e8f179aadf57a32e4 msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" #: ../tutorial/install.rst:30 07d747ece341493cbfdbaacd17b9640d msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "" #: ../tutorial/install.rst:31 bebbbd7c0b5b4694b70dd571d6087a25 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "" #: ../tutorial/install.rst:32 1052d038f4154a29a0e27fd5c83f9abf msgid "" "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" #: ../tutorial/install.rst:33 0696511547b64f22b36c1b3c5ade382a msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "" #: ../tutorial/install.rst:34 7ec9ca47bc1a487caeb4d706f0cabeec msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" #: ../tutorial/install.rst:35 4e77c88c68b1404cbf1502574bc495af msgid "" "`otp` provides the dependencies to enable one-time password authentication;" msgstr "" #: ../tutorial/install.rst:36 e81b3959980b47898233e6a778b6cfa4 msgid "`sms` provides the dependencies to enable sms sending;" msgstr "" #: ../tutorial/install.rst:37 4355ba8d8f744ad6b49f6859e36d5276 msgid "`all` provides all the extras above." msgstr "" #: ../tutorial/install.rst:39 2ad6fc294ad44e87a5c1b4389a8c280c msgid "They can be installed with:" msgstr "" #: ../tutorial/install.rst:46 59d5ecfe460d412ba993a785c0c20744 msgid "Configure" msgstr "" #: ../tutorial/install.rst:48 2bebd03f31724f66a8fc72e10fd4c00f msgid "" "Choose a path where to store your configuration file. You can pass any " "configuration path with the ``CONFIG`` environment variable." msgstr "" #: ../tutorial/install.rst:56 6f15d23d18c245dc9d341399328f752e msgid "" "You should then edit your configuration file to adapt the values to your " "needs. Look at the configuration details in the :doc:`configuration <../" "references/configuration>` page." msgstr "" #: ../tutorial/install.rst:59 ede066e9fd9345ac86aa519c3bc66495 msgid "Install" msgstr "" #: ../tutorial/install.rst:61 a888acd5f78142a88927d4585568a24a msgid "" "The :ref:`install command ` will apply most of the things " "needed to get Canaille working. Depending on the configured :doc:`database " "` it will create the SQL tables, or install the LDAP schemas for " "instance." msgstr "" #: ../tutorial/install.rst:70 1d9b520266704354910e893daaa1ac22 msgid "Check" msgstr "" #: ../tutorial/install.rst:72 da69d39139ef46eabe3e65ee743ad414 msgid "" "After a manual installation, you can check your configuration file using " "the :ref:`check command `:" msgstr "" #: ../tutorial/provisioning.rst:2 fad9f07edb234ac5b4edf0f1a2850469 msgid "Provisioning" msgstr "" #: ../tutorial/provisioning.rst:4 b34dc5e4480d4812abe1d615b40724ce msgid "" "Canaille partially implemnet the :rfc:`SCIM <7642>` provisioning protocol at " "the ``/scim/v2`` endpoint." msgstr "" #: ../tutorial/provisioning.rst:6 b435649989a5462fb58feedb7deff9e7 msgid "" "At the moment, only the server part is implemented. It allows client " "applications to manage user profiles directly in Canaille." msgstr "" #: ../tutorial/provisioning.rst:9 cca65894cd064a69b7c8a4dc2b4bc5b2 msgid "" "To allow clients to access the SCIM API, the client must have the " "``client_credentials`` grant type configured. This allows clients to ask an " "authentication token on their own behalf and use this token to perform " "queries. Currently, user tokens are not supported." msgstr "" #: ../tutorial/provisioning.rst:15 5540926bcd3a4ff59b5c440933d22e93 msgid "" "Some SCIM :ref:`features and endpoints ` are not " "implemented. In addition to these, Canaille will implement in the future:" msgstr "" #: ../tutorial/provisioning.rst:18 df30885f79fd424fb426110529797eeb msgid "" "Access control for clients on the SCIM API endpoint, to finely manage " "permissions depending on clients." msgstr "" #: ../tutorial/provisioning.rst:19 e37b47a3e64940adbfecfffc6245bb5f msgid "" "Client-side implementation, to broadcast user and groups modifications among " "all the clients." msgstr "" #: ../tutorial/troubleshooting.rst:2 a2179a1e932c44c59ec327cabf7a8b0e msgid "Troubleshooting" msgstr "" #: ../tutorial/troubleshooting.rst:5 46107d829fdc4718adf7b92192756f96 msgid "The web interface throws useless error messages" msgstr "" #: ../tutorial/troubleshooting.rst:7 86ab63d58f8848b2a40435a2f048c12f msgid "" "Unless the current user has admin :class:`permissions `, or the installation is in :attr:`~canaille.app." "configuration.RootSettings.DEBUG` mode, error messages won't be too " "technical. For instance, you can see *The request you made is invalid*. To " "enable detailed error messages, you can **temporarily** enable the :attr:" "`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter." msgstr "" #: ../tutorial/troubleshooting.rst:12 988d674332bb4633b860095fe99420df msgid "How to manually install LDAP schemas?" msgstr "" #: ../tutorial/troubleshooting.rst:16 7be9fb2994f6417889820aac3fce6560 msgid "" "Schema installation can be automatically done using the :ref:`install " "command `." msgstr "" #: ../tutorial/troubleshooting.rst:18 c8c1648f65d348d0a7d601357a849604 msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "" #: ../tutorial/troubleshooting.rst:20 f37f56f196174ae895e792a933dfbea6 msgid "" "The `deprecated `_ " "one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" msgstr "" #: ../tutorial/troubleshooting.rst:21 ae332fd671574a54b9f1ff1cce9ae3e0 msgid "" "The new one, based on a configuration directory (generally ``/etc/ldap/slapd." "d``)." msgstr "" #: ../tutorial/troubleshooting.rst:23 b9fe35e9d0654a4b831845bf9f027a33 msgid "" "Depending on the configuration method you use with your OpenLDAP " "installation, you need to chose how to add the canaille schemas:" msgstr "" #: ../tutorial/troubleshooting.rst:26 45557c5a90314b65aca27329fe4f334b msgid "Old fashion: Copy the schemas in your filesystem" msgstr "" #: ../tutorial/troubleshooting.rst:35 4aa6e1b3b0154c4ca91a982f719c08b5 msgid "New fashion: Use slapadd to add the schemas" msgstr "" #: ../tutorial/troubleshooting.rst:37 6ba05a570b0043078256af9a016309c4 msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" #: ../tutorial/troubleshooting.rst:46 87adc4ca4b22405e948a90409bde21b0 msgid "How to manually generate the OIDC keypair?" msgstr "" #: ../tutorial/troubleshooting.rst:50 6770309338724a4aac6439943e58b66a msgid "" "The keypair generation can be automatically done using the :ref:`install " "command `." msgstr "" #: ../tutorial/troubleshooting.rst:52 2fad5ba8eca14ba293b910f7c82f5b34 msgid "" "Canaille needs a key pair to sign OIDC tokens. You can customize those " "commands, as long as they match the ``JWT`` section of your configuration " "file." msgstr "" #: ../usecases.rst:4 0012c5a2aeb84b40b7ccb861a1f8ea07 msgid "Use cases" msgstr "" #: ../usecases.rst:6 8fce8afa30574f348ea6a4b5169592b6 msgid "" "Canaille is a lightweight IAM for simple needs. Here are a few use cases you " "might recognize in, where Canaille would fit your needs." msgstr "" #: ../usecases.rst:10 e00eb880854f4c38a94285e1986b96d2 msgid "OpenID Connect provider on top of a LDAP directory" msgstr "" #: ../usecases.rst:12 354d32ad706d463ab06aa17efae022cc msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to add a :ref:`OpenID Connect ` :abbr:`SSO " "(Single Sign-On)` layer on top of it, so users can use all your application " "while signin-in only once, without any data migration." msgstr "" #: ../usecases.rst:15 c80ba39e4d3d49aeb126a3a4b0cbf6ee msgid "Profile edition of LDAP users" msgstr "" #: ../usecases.rst:17 f7042aa80b384749a2a1c93cdf9fb3b6 msgid "" "Your organization has a :ref:`LDAP directory ` and you " "want to provide a way to your users to :ref:`edit their personal information " "` by themselves, without requiring any " "administrator intervention." msgstr "" #: ../usecases.rst:20 2175f903fd7049408fb6f8bca3817ec0 msgid "Password recovery with a LDAP directory" msgstr "" #: ../usecases.rst:22 ee7ae8f8496c4ddd95b00953f0da7fc9 msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to provide a way to your users to :ref:`recover their password " "` when they cannot remember it, without any " "administrator intervention." msgstr "" #: ../usecases.rst:25 b270514f0fac465d9792c85a85c84525 msgid "A lightweight IAM for unit testing" msgstr "" #: ../usecases.rst:27 88822c2e151f43a0b5dabed7616604b7 msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You don't want to mock " "the calls to the identity provider in your unit tests, but you want to :ref:" "`perform real OAuth2/OIDC requests `, and test your " "application against different identity provider tunings." msgstr "" #: ../usecases.rst:30 fe21632ea9034d16b4f5da19efa0b5ac msgid "A lightweight IAM for developing" msgstr "" #: ../usecases.rst:32 5f85f539d8cf4500889c40f6774d6e55 msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM " "server to develop ` locally, but your old computer " "cannot bear launching a full Keycloak in a Docker container." msgstr "" #: ../usecases.rst:35 f94e9269e0d84b20998a5dc33d17bca7 msgid "A lightweight IAM for CIs" msgstr "" #: ../usecases.rst:37 c59dd6c6c59a45b6b8cc4497275c35c1 msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a IAM server " "that could can populate with custom data, and integrate in your :ref:" "`continuous integration environment `." msgstr "" #: ../usecases.rst:40 30c0a6e8cd2f4ec1837b2147176bed17 msgid "A CLI to quickly edit LDAP directory users" msgstr "" #: ../usecases.rst:42 884abc047ac34822b7b8fcd98ddb3f88 msgid "" "Your organization has an historic :ref:`LDAP directory `. " "You are tired to deal with *ldif* syntax to manage your users and group and " "would prefer a simple human-readable CLI." msgstr "" #~ msgid "Maximum length for user password." #~ msgstr "Longueur maximum des mots de passe utilisateur." #~ msgid "Minimum length for user password." #~ msgstr "Longueur minimum pour le mot de passe utilisateur." #~ msgid "It is possible not to set a minimum, by entering None or 0." #~ msgstr "" #~ "Il est possible de ne pas choisir de minimum en saisisant None ou 0." #~ msgid "" #~ "Documentation translation Translations are done with `Weblate `_." #~ msgstr "" #~ "La traduction de la documentation est faite avec `Weblate `_." #~ msgid "" #~ "Some dependencies of Canaille might need to be compiled, so you probably " #~ "want to check that `GCC` and `cargo` are available on your computer." #~ msgstr "" #~ "Certaines dépendances de Canaille peuvent nécessiter une compilation, " #~ "donc devriez sans doute vérifier que `GCC` et `cargo` sont installés sur " #~ "votre système."