# 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-08 12:21+0100\n" "PO-Revision-Date: 2024-12-08 19:06+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 3fb33c37ddc0459280f3c58be943008e msgid "Release notes" msgstr "Notes de version" #: ../development/changelog.rst:4 67e645fac3b646bba12959afa71710cc 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 6c5d0b8435cf4001afa1fe74104daf7a 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 c415689d242946298da972c97d5bb0c4 msgid "[0.0.57] - Unreleased" msgstr "[0.0.57] - Inédit" #: ../../CHANGES.rst:5 ../../CHANGES.rst:27 ../../CHANGES.rst:55 #: ../../CHANGES.rst:74 ../../CHANGES.rst:81 ../../CHANGES.rst:100 #: ../../CHANGES.rst:160 ../../CHANGES.rst:186 ../../CHANGES.rst:201 #: ../../CHANGES.rst:250 ../../CHANGES.rst:276 ../../CHANGES.rst:295 #: ../../CHANGES.rst:303 ../../CHANGES.rst:312 ../../CHANGES.rst:338 #: ../../CHANGES.rst:373 ../../CHANGES.rst:399 ../../CHANGES.rst:448 #: ../../CHANGES.rst:476 ../../CHANGES.rst:506 ../../CHANGES.rst:562 #: ../../CHANGES.rst:595 ../../CHANGES.rst:616 ../../CHANGES.rst:626 #: ../../CHANGES.rst:649 ../../CHANGES.rst:716 ../../CHANGES.rst:754 #: ../../CHANGES.rst:771 ../../CHANGES.rst:807 91a8054efa234209906812cdd41bd586 #: 2e9453d4722144fd9ad7f53b28a7cb37 f290d44be0ec48a6b509a60a763954d6 msgid "Added" msgstr "Ajouté" #: ../../CHANGES.rst:6 05060126fea740ef82fba8246132aa6e msgid "Password compromission check :issue:`179`" msgstr "Vérification de la compromission des mots de passe :issue:`179`" #: ../../CHANGES.rst:7 a90b270f7e144a4b81babbac96f5ff22 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:11 2cfcbdba2e9541dbab610bc724a2683a msgid "Implement OIDC client_credentials flow. :issue:`207`" msgstr "Implémentation du flux OIDC `client_credentials`. :issue:`207`" #: ../../CHANGES.rst:12 1e36a8464f6045708cf07b39bcdfea1c 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:15 ../../CHANGES.rst:35 ../../CHANGES.rst:48 #: ../../CHANGES.rst:60 ../../CHANGES.rst:85 ../../CHANGES.rst:93 #: ../../CHANGES.rst:141 ../../CHANGES.rst:167 ../../CHANGES.rst:219 #: ../../CHANGES.rst:256 ../../CHANGES.rst:325 ../../CHANGES.rst:343 #: ../../CHANGES.rst:381 ../../CHANGES.rst:420 ../../CHANGES.rst:455 #: ../../CHANGES.rst:498 ../../CHANGES.rst:602 ../../CHANGES.rst:656 #: ../../CHANGES.rst:688 ../../CHANGES.rst:702 254357b217fe4a309d66a400497a104a msgid "Changed" msgstr "Modifié" #: ../../CHANGES.rst:16 bb196cd8528b48628628ab53c5288b49 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:17 c36865875c264bb4a34d614ea2be23cf 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:20 045b041136be49de8d54674ad57fea87 msgid "[0.0.56] - 2024-11-07" msgstr "[0.0.56] - 2024-11-07" #: ../../CHANGES.rst:23 ../../CHANGES.rst:65 ../../CHANGES.rst:104 #: ../../CHANGES.rst:112 ../../CHANGES.rst:120 ../../CHANGES.rst:127 #: ../../CHANGES.rst:134 ../../CHANGES.rst:148 ../../CHANGES.rst:178 #: ../../CHANGES.rst:191 ../../CHANGES.rst:209 ../../CHANGES.rst:228 #: ../../CHANGES.rst:236 ../../CHANGES.rst:262 ../../CHANGES.rst:270 #: ../../CHANGES.rst:290 ../../CHANGES.rst:320 ../../CHANGES.rst:352 #: ../../CHANGES.rst:360 ../../CHANGES.rst:386 ../../CHANGES.rst:406 #: ../../CHANGES.rst:430 ../../CHANGES.rst:440 ../../CHANGES.rst:461 #: ../../CHANGES.rst:469 ../../CHANGES.rst:492 ../../CHANGES.rst:515 #: ../../CHANGES.rst:527 ../../CHANGES.rst:536 ../../CHANGES.rst:545 #: ../../CHANGES.rst:554 ../../CHANGES.rst:574 ../../CHANGES.rst:581 #: ../../CHANGES.rst:631 ../../CHANGES.rst:639 ../../CHANGES.rst:664 #: ../../CHANGES.rst:672 ../../CHANGES.rst:680 ../../CHANGES.rst:693 #: ../../CHANGES.rst:707 ../../CHANGES.rst:739 ../../CHANGES.rst:762 #: ../../CHANGES.rst:793 13ee0de3f7db4046b8399917e8d52e0b #: f251ffbac69548f6b747cd4b8ea6f8ec c582172293c74e6e9df5bb65756c4c6c #: 839f52c15ed94f0ba4a9356f392f728b msgid "Fixed" msgstr "Corrigé" #: ../../CHANGES.rst:24 10c707b06b884b168b2dd26bffd7bf76 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:28 efa1fc20329f42918fe6a530617cf102 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:30 cdab69b7537c452caa3eadb572993a40 msgid "Password strength visual indicator. :issue:`174`" msgstr "Indicateur visuel de la force des mots de passe :issue:`174`" #: ../../CHANGES.rst:31 2ae6bad543d64621886630d3db7832e6 msgid "Security events logs. :issue:`177`" msgstr "Journalisation des évènements de sécurité. :issue:`177`" #: ../../CHANGES.rst:32 40ab5f1ed3bc406fb662d0025e5b3212 msgid "Support for Python 3.13. :pr:`186`" msgstr "Support de Python 3.13. :pr:`186`" #: ../../CHANGES.rst:36 c7940e351aac4939b964ccb80cebd616 msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "Mise à jour vers HTMX 2.0.3. :pr:`184`" #: ../../CHANGES.rst:37 dfc1569ae0ec412d86503a0695522fa5 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:38 40c97bec2553487fa62efc486d3ee444 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:41 ../../CHANGES.rst:391 ../../CHANGES.rst:799 #: bc1a20b5783a4fe38fa201438a8075e5 msgid "Removed" msgstr "Supprimé" #: ../../CHANGES.rst:42 3f97d00692d047dbbecb5c18a2d45b07 msgid "End support for Python 3.9. :pr:`179`" msgstr "Fin de support pour Python 3.9. :pr:`179`" #: ../../CHANGES.rst:45 4a57056601f148969254d2f049e0f460 msgid "[0.0.55] - 2024-08-30" msgstr "[0.0.55] - 2024-08-30" #: ../../CHANGES.rst:49 a037ad5da20049ad82e9f9b0d766cfbb msgid "Use poetry-core build backend. :pr:`178`" msgstr "" "Utilisation de `poetry-core` comme outil de construction de paquets. :pr:" "`178`" #: ../../CHANGES.rst:52 d6bf96b8e5cc4a6f8e099b48c1951a6a msgid "[0.0.54] - 2024-07-25" msgstr "[0.0.54] - 2024-07-25" #: ../../CHANGES.rst:56 062bcc176aac499384187fcb06e2a00b 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:57 8680469549c74d37a52b1c6252c74d57 msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "Commande de gestion des modèles. :issue:`117` :issue:`54`" #: ../../CHANGES.rst:61 c19428c67d8f4d198d0ab97defe14fb3 msgid "Model `identifier_attributes` are fixed." msgstr "L’attribut `identifier_attributes` des models est fixe." #: ../../CHANGES.rst:62 571f38b1484b43e2beed6f33eb675700 msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "Mise-à-jour vers `HTMX` 1.9.12. :pr:`172`" #: ../../CHANGES.rst:67 9e54da898699471194477836791f08a6 msgid "Dark theme colors for better readability." msgstr "Couleurs des champs dans le thème sombre." #: ../../CHANGES.rst:68 4e0f2a8e03a447e59cb0a2b0e6d208f1 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:71 a9273241db7e4137bac5973b20e3ec5d msgid "[0.0.53] - 2024-04-22" msgstr "[0.0.53] - 2024-04-22" #: ../../CHANGES.rst:75 17fbf739a68a4e59b5cc6da8befa1c6f 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:78 7bdc8f732053463b95353cdf5c994838 msgid "[0.0.52] - 2024-04-22" msgstr "[0.0.52] - 2024-04-22" #: ../../CHANGES.rst:82 bc7d1037cdfd40a69044f465467f6834 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:86 9685a5e5a13147f093ac57e2039fe11b msgid "Locked users cannot be impersonated anymore." msgstr "Les comptes verrouillés ne peuvent plus être incarnés." #: ../../CHANGES.rst:87 1b83a24a97384c2faab67e915701e6b2 msgid "Minimum Python requirement is 3.9." msgstr "La version minimum requise de Python est 3.9." #: ../../CHANGES.rst:90 e88f01e3f89f45f2a63b456f8e304d3d msgid "[0.0.51] - 2024-04-09" msgstr "[0.0.51] - 2024-04-09" #: ../../CHANGES.rst:94 aae3d126989840578ec2b08058aad688 msgid "Display the menu bar on error pages." msgstr "Affichage de la barre de menu sur les pages d’erreur." #: ../../CHANGES.rst:97 22b11dc18595450fa5e7fe5f35824ebe msgid "[0.0.50] - 2024-04-09" msgstr "[0.0.50] - 2024-04-09" #: ../../CHANGES.rst:101 fc1bc503759c4beb943e9dcbf0c4a9cf msgid "Sign in/out events are logged in. :issue:`177`" msgstr "" "Journalisation des évènements de connexion et déconnexion. :issue:`177`" #: ../../CHANGES.rst:105 cfe0182123c94bcc9ee847739bd2e114 msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "Paramètres de configuration `HTMX` et `JAVASCRIPT`." #: ../../CHANGES.rst:106 3bc7c83763d34549bac91df86a22b3a0 msgid "Compatibility with old sessions IDs." msgstr "Compatibilité avec les anciens identifiants de session." #: ../../CHANGES.rst:109 cdee0bee34024d21bace2d77ff637ed9 msgid "[0.0.49] - 2024-04-08" msgstr "[0.0.49] - 2024-04-08" #: ../../CHANGES.rst:113 f9c9585c305d47628adffcae287229d2 msgid "LDAP user group removal." msgstr "Suppression des groupes d’utilisateurs avec LDAP." #: ../../CHANGES.rst:114 c25c5c6a9cca4061be6502cae5e86ba2 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:117 5e0c66b55801444497954839297b97eb msgid "[0.0.48] - 2024-04-08" msgstr "[0.0.48] - 2024-04-08" #: ../../CHANGES.rst:121 bd9920a130844ee897863a6b649484e2 msgid "LDAP ``objectClass`` guessing exception." msgstr "Exception lors de la détection des classes d’objet LDAP." #: ../../CHANGES.rst:124 93cf829932204311ba399ae713aff29f msgid "[0.0.47] - 2024-04-08" msgstr "[0.0.47] - 2024-04-08" #: ../../CHANGES.rst:128 b7a5d3351a334b0592b12373e1c7afa6 msgid "Lazy permission loading exception." msgstr "Exception lors du chargement paresseux des permissions." #: ../../CHANGES.rst:131 c6000ae4f0fc4d488ab180c3aa9eb144 msgid "[0.0.46] - 2024-04-08" msgstr "[0.0.46] - 2024-04-08" #: ../../CHANGES.rst:135 db4476f22ad049f49833696323eb1b33 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:138 d7117b0322b549ff87b73b8e4c839915 msgid "[0.0.45] - 2024-04-04" msgstr "[0.0.45] - 2024-04-04" #: ../../CHANGES.rst:142 9690ab893eef4290a52b1137f24b9be8 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:145 be79650410904879b53da2c62ac092d5 msgid "[0.0.44] - 2024-03-29" msgstr "[0.0.44] - 2024-03-29" #: ../../CHANGES.rst:149 1c2533bc36b548c59361d7b3e304cce6 msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "Correction de la valeur par défaut de ``USER_FILTER`` pour LDAP." #: ../../CHANGES.rst:150 c429e79bd5aa46edb7b4cd1bd87c3ad8 msgid "Fix the OIDC feature detection." msgstr "Correction de la détection de la fonctionnalité OIDC." #: ../../CHANGES.rst:153 51a43a574cc943b5912effdaa67f8690 msgid "[0.0.43] - 2024-03-29" msgstr "[0.0.43] - 2024-03-29" #: ../../CHANGES.rst:157 ../../CHANGES.rst:416 02e8eccba3b74e889a68c78dc51e0a24 msgid "Configuration files must be updated." msgstr "Les fichiers de configuration doivent être mis à jour." #: ../../CHANGES.rst:162 a39fba5f25754fdc9f0f339142ff0320 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:163 b1e37ddf62994798a70a23cff76ed4d6 msgid "Sitemap to the documentation. :pr:`169`" msgstr "Cartographie de la documentation. :pr:`169" #: ../../CHANGES.rst:164 54cf20bc59af4634af6b3f2d0e10c5e9 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:169 689b4f88ba4b43db8c8b1a7bff0aebe6 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:170 7d18c66450654e25a65749ea273b859d msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "Mise à jour vers ``HTMX`` 1.9.11. :pr:`166`" #: ../../CHANGES.rst:171 9d053f12577548bc8cff1add00376bae 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:172 fd8c1c0314b2465c9cacb4ba593eae77 msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "Utilisation du thème de documentation `shibuya`. :pr:`168`" #: ../../CHANGES.rst:175 abc0b3ba739e4f99866d02027d8128d2 msgid "[0.0.42] - 2023-12-29" msgstr "[0.0.42] - 2023-12-29" #: ../../CHANGES.rst:180 74e8932123b744b2809d370b36980326 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" "Correction d’une erreur d’import lorsque ``cryptography`` était manquant." #: ../../CHANGES.rst:183 41f209b7a9054599b7b71d4fab3afe8f msgid "[0.0.41] - 2023-12-25" msgstr "[0.0.41] - 2023-12-25" #: ../../CHANGES.rst:188 77ff8fdeadf94e2f8696b2f5b9bd9349 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:193 8940d9836a9f46a09613c3646e1d55f8 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:194 bb9a9230771445b6a7c93f042fb289ee 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:195 b5d0341447ef443b969d2a48457442f2 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:198 7bcad6150cbc4883817538eb23bed3bd msgid "[0.0.40] - 2023-12-22" msgstr "[0.0.40] - 2023-12-22" #: ../../CHANGES.rst:203 aae4204166c443f99e04d84842dd6dd9 msgid "The ``THEME`` setting can be a relative path." msgstr "Le paramètre de configuration ``THEME`` peut être un chemin relatif." #: ../../CHANGES.rst:206 26224cfa5ee647a2b15239a78065f5f7 msgid "[0.0.39] - 2023-12-15" msgstr "[0.0.39] - 2023-12-15" #: ../../CHANGES.rst:211 14b2b67c379045d681ee712797f44328 msgid "Crash when no ACL were defined." msgstr "Erreur lorsqu’aucun ACL n’était défini." #: ../../CHANGES.rst:212 38649598ac954d29843b54b15343dd15 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:213 ed1da2958a1646fd82c70171a5c04317 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:216 8f2bc47f69554f539aa2836958029d59 msgid "[0.0.38] - 2023-12-15" msgstr "[0.0.38] - 2023-12-15" #: ../../CHANGES.rst:221 24f252671c9a4a3590e94e5e563e4d19 msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "Conversion de toutes les images `PNG` en `Webp`. :pr:`162`" #: ../../CHANGES.rst:222 8a1d423f79f749868c06a775e9c21bd2 msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "Mise à jour vers Flask 3. :issue:`161` :pr:`163`" #: ../../CHANGES.rst:225 9d53638e5933499baafec12390f02e23 msgid "[0.0.37] - 2023-12-01" msgstr "[0.0.37] - 2023-12-01" #: ../../CHANGES.rst:230 5ed255dd094a4a3aae1b75edf54001ad 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:233 26d16685ada341a29bf6ee6e98997128 msgid "[0.0.36] - 2023-12-01" msgstr "[0.0.36] - 2023-12-01" #: ../../CHANGES.rst:238 2cfddfd6843e4cbfb1b645c84bc70322 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:239 f5714a32e81841e29f2619f6ee5464e8 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:241 4e121ada1cc24b7b8051d085b0ce464b 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:243 c5fc8c86d3df4732b3a06f70dd89af18 msgid "Password comparison was too permissive on login." msgstr "La comparaison des mots de passe était trop permissive à la connexion." #: ../../CHANGES.rst:244 36f936a6dd8c41c5bc833d928f347321 msgid "Encrypt passwords in the SQL backend." msgstr "Chiffrement des mots de passe dans la base de données SQL." #: ../../CHANGES.rst:247 76befacfb135435fbee6ee0fe07f40e5 msgid "[0.0.35] - 2023-11-25" msgstr "[0.0.35] - 2023-11-25" #: ../../CHANGES.rst:252 14d361d80e4c429f929b943d3321e895 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:253 c52cda2685214bcab533db539acee007 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:258 57670f55b7644a0888ab65cd2da2fd8c 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:259 f4ef25b7b38b42a48fb2a32c5cd8888f msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "Mise à jour vers `HTMX` 1.9.9. :pr:`159`" #: ../../CHANGES.rst:264 49b0b7da40204fdeaf40c5281235c2a6 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:267 db372dee122e4b4fb18c2c99dd056ce2 msgid "[0.0.34] - 2023-10-02" msgstr "[0.0.34] - 2023-10-02" #: ../../CHANGES.rst:272 a4b5211e96894c5d9d51b2630d6aea17 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:278 4f4ca04b08a04dcb8f6a2eb6605f0e13 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:281 298ffe26093441918be8b38d13f0cc58 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:282 ccb502180d634f11ad173619af1b68d8 msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "Mise à jour vers `fomantic-ui` 2.9.3. :pr:`152`" #: ../../CHANGES.rst:283 7413676f512d4473972484920ff5f060 msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "Mise à jour vers `HTMX` 1.9.6. :pr:`154`" #: ../../CHANGES.rst:284 7905327465c44c09b2a10854abe79960 msgid "Support for Python 3.12. :pr:`155`" msgstr "Support de Python 3.12 :pr:`155`" #: ../../CHANGES.rst:287 808e57e560f74a25b60029fbd6531d2e msgid "[0.0.33] - 2023-08-26" msgstr "[0.0.33] - 2023-08-26" #: ../../CHANGES.rst:292 1179dc27648248188fdecf5696fd5045 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:297 b8b2caca239b4b609143ffd267522a16 msgid "Documentation details on the Canaille models." msgstr "Documentation des modèles de Canaille." #: ../../CHANGES.rst:300 dd35ed0e27664b6b954e9b39881f14bc msgid "[0.0.32] - 2023-08-17" msgstr "[0.0.32] - 2023-08-17" #: ../../CHANGES.rst:305 bdcae061315a4e92a6bc1a48475cb351 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:306 c39cbed721254ce5ad9c250de1e7ea41 msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "Définition de dépendances `extra`. :issue:`167` :pr:`150`" #: ../../CHANGES.rst:309 5311648e4c714ed29e89e9644167f963 msgid "[0.0.31] - 2023-08-15" msgstr "[0.0.31] - 2023-08-15" #: ../../CHANGES.rst:314 a6a4b510a0ac4b4ebeb9160510f72d77 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:315 37eb24ef005e44da8ae0f4c48bda766c 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:316 2be2120a0500430a8d854d1b8f19a0bf msgid "Email verification. :issue:`41` :pr:`147`" msgstr "Vérification des adresses email. :issue:`41`:pr:`147`" #: ../../CHANGES.rst:317 d3be95492ef348efa77976515d4ffca9 msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "Enregistrement de comptes utilisateur. :issue:`55` :pr:`133` :pr:`148`" #: ../../CHANGES.rst:322 1a3da0153c2b451d99665d2b61c512f2 msgid "The `check` command uses the default configuration values." msgstr "La commande `check` utilise les valeurs de configuration par défaut." #: ../../CHANGES.rst:327 15f35fa96af04e508b1a6448d866cb5f 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:330 add3188842de44b691dfbe3152546f7b msgid "[0.0.30] - 2023-07-06" msgstr "[0.0.30] - 2023-07-06" #: ../../CHANGES.rst:334 b96e981450334eee84128d7dffb40d8f 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:340 ab83051dda0b48d185846e49011f2429 msgid "Configuration option to disable Javascript. :pr:`141`" msgstr "Option de configuration pour désactiver Javascript. :pr:`141" #: ../../CHANGES.rst:345 85fb804c891f444c9de116e6e4771526 msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja." msgstr "Le paramètre de configuration ``USER_FILTER`` est analysé avec Jinja." #: ../../CHANGES.rst:346 42d91f7cf5a3438a8bcb0bd5c193f1ea 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:349 30736e0e4b854b46940e80c38023946a msgid "[0.0.29] - 2023-06-30" msgstr "[0.0.29] - 2023-06-30" #: ../../CHANGES.rst:354 89d319fb81e148cb8f82f4b1a5a5390c 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:357 68d32ee84fa642dfbf358ef907193eb8 msgid "[0.0.28] - 2023-06-30" msgstr "[0.0.28] - 2023-06-30" #: ../../CHANGES.rst:362 5490daf53fd144c0b6b360e90bf5667b msgid "A template variable was misnamed." msgstr "Une variable de template était mal nommée." #: ../../CHANGES.rst:365 c65a251ed68a49beaff42740c12ce76a msgid "[0.0.27] - 2023-06-29" msgstr "[0.0.27] - 2023-06-29" #: ../../CHANGES.rst:369 ccf84fb0d4cd47058c3849498bd92259 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:375 0856562aad23492aa6efc7f6e4bf8f90 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:377 24fa209262e04bcbb46c2ab7c881fbaa msgid "Field list support. :issue:`115` :pr:`136`" msgstr "Support pour les listes de champ. :issue:`115` :pr:`136`" #: ../../CHANGES.rst:378 eaff808f9ce745c59a1b373ab0ef90ab 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:383 8afcdb0ddd8f4e6c9941315ff1b06538 msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "Mise à jour vers jquery 3.7.0. :pr:`138`" #: ../../CHANGES.rst:388 a6e1f4b8a72f4500ab437a86f6e98d06 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:393 cfcf7ee77bb84df1bcd780df223e9044 msgid "Stop support for Python 3.7. :pr:`131`" msgstr "Arrêt du support pour Python 3.7. :pr:`131`" #: ../../CHANGES.rst:396 42eab7328c604747ad6bde0067cb6603 msgid "[0.0.26] - 2023-06-03" msgstr "[0.0.26] - 2023-06-03" #: ../../CHANGES.rst:401 b621a029c6ec420d8708f0ddd4b49c85 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:403 05f5b0808e74429b92bf61fa570014cf msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "Paramètre de configuration des fuseaux horaire. :issue:`137` :pr:`130`" #: ../../CHANGES.rst:408 d7e71d1ce6704911b7e5094538cc1084 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:409 e16dcca3b764486d874401ba65e22f78 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:412 dcbd97e0bc4f44babcdc9ad9a503c162 msgid "[0.0.25] - 2023-05-05" msgstr "[0.0.25] - 2023-05-05" #: ../../CHANGES.rst:417 4109765130284304994ae405858bdd3c 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:422 c4645c08f789400bba029897871bb828 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:423 3c58d21fdc81418e8ee43179c2d6384f msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "Déplacement des paramètres de configuration OIDC dans ``OIDC``." #: ../../CHANGES.rst:424 5b002906414e41448a3fadea87d71e45 msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" "Déplacement des paramètres de configuration ``LDAP`` dans ``BACKENDS.LDAP``." #: ../../CHANGES.rst:425 d58c113094474cf3b82e8a3303202bb6 msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "Mise à jour vers HTMX 1.9.0. :pr:`184`" #: ../../CHANGES.rst:426 3bbdffb495f74fccbdb9eeb78a8eaf81 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:427 0d3ea4f8df2542e0a7da5029159f31e0 msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "Mise-à-jour vers `HTMX` 1.9.2. :pr:`127`" #: ../../CHANGES.rst:432 71139e5ab6e34c2a87d51d3d04c0dbc0 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:433 e34b111a3a8b4e2da966a36107a682b5 msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "Correction des attributs vides lors de l’enregistrement. :pr:`125`" #: ../../CHANGES.rst:434 566d49eca850419cbb39c3a78a4160aa 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:437 f461dc48e9c846628f7ddb99b18252c6 msgid "[0.0.24] - 2023-04-07" msgstr "[0.0.24] - 2023-04-07" #: ../../CHANGES.rst:442 007393d26d6e4375a0e05cbbf6c41d65 msgid "Fixed avatar update. :pr:`122`" msgstr "Correction de la mise à jour des avatars. :pr:`122`" #: ../../CHANGES.rst:445 0ddfaf5df815484f9eb469a884e5f667 msgid "[0.0.23] - 2023-04-05" msgstr "[0.0.23] - 2023-04-05" #: ../../CHANGES.rst:450 2e7346baddf44a7f9f5b9a05ae826913 msgid "Organization field. :pr:`116`" msgstr "Champ `organization` :pr:`116`" #: ../../CHANGES.rst:451 1c68c43ae90f4e2e944dab12514f06d1 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:452 bcaf8fe7d8e940f191ed6ea5178566c1 msgid "Dynamic form validation. :pr:`120`" msgstr "Validation dynamique des formulaires. :pr:`120`" #: ../../CHANGES.rst:457 2b077ff5215a4b20b8438e82f4366ada msgid "UX rework. Submenu addition. :pr:`114`" msgstr "Travaux sur l’interface utilisateur. Ajout de sous-menus. :pr:`114`" #: ../../CHANGES.rst:458 166152fdbf6248e8a4af29f4f3bf5b6e msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "Gestion correcte des fuseaux horaire des dates dans LDAP. :pr:`117`" #: ../../CHANGES.rst:463 343c4102b6d648018544f151f97540e1 msgid "CSRF protection on every forms. :pr:`119`" msgstr "Protection CSRF sur tous les formulaires. :pr:`119`" #: ../../CHANGES.rst:466 7140973831594dacad0bd205ca9b60e5 msgid "[0.0.22] - 2023-03-13" msgstr "[0.0.22] - 2023-03-13" #: ../../CHANGES.rst:470 67dc897fec2946598dbb4fe82db8a94f 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:473 58e3c0af1ce74125bf42a5ea16b88fbf msgid "[0.0.21] - 2023-03-12" msgstr "[0.0.21] - 2023-03-12" #: ../../CHANGES.rst:478 a25f75d9086a4499aa1088e537f21bc3 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:479 e848a4f5372b44249423579a7e2cdc3d msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" "Suppression des jetons via l’interface administrateur. :pr:`100` :pr:`101`" #: ../../CHANGES.rst:480 61b841de5b89407d9912c8c73309111a msgid "Revoked consents can be restored. :pr:`103`" msgstr "Les consentements révoqués peuvent être restaurés. :pr:`103`" #: ../../CHANGES.rst:481 656acd80913242a4820a20bc76d797e8 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:483 e08c1586240745fa9537dd7501475c0d 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:485 dc653adfdbc441589c385b956ae9739e msgid "SMTP SSL support. :pr:`108`" msgstr "Support des connexions SMTP avec SSL. :pr:`108`" #: ../../CHANGES.rst:486 c69d8b01e4194d5b9268b84ab81849d6 msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "Pagination côté serveur. :issue:`114`:pr:`111`" #: ../../CHANGES.rst:487 5b4f3aa107a74df3ba845920503dfdc5 msgid "Department number support. :issue:`129`" msgstr "Support du champs de numéro de département. :issue:`129`" #: ../../CHANGES.rst:488 d219e1ac8fa148d5b6e4babc678fbeb2 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:489 52d2ceda28ab430a984dee19f8766b2a msgid "Title edition support. :pr:`113`" msgstr "Support de l’édition du paramètre `title`. :pr:`113`" #: ../../CHANGES.rst:494 c4aca25daa3b491f9208d71f7715800f 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:500 a1c057df21a9436a9b149fb91fdb28d0 msgid "Removed the `DataTables` Javascript library." msgstr "Suppression de la bibliothèque Javascript `Datatables`." #: ../../CHANGES.rst:503 74a0312b6fff499fa609d0adbe73dfac msgid "[0.0.20] - 2023-01-28" msgstr "[0.0.20] - 2023-01-28" #: ../../CHANGES.rst:508 c443970df56e4203b8ee3fd9e4fa2395 msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "Traduction espagnole. :pr:`85` :pr:`88`" #: ../../CHANGES.rst:509 9e42a95e59a74c5584d1144c249a57c1 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "Test de connectivité. :pr:`89`" #: ../../CHANGES.rst:510 e06855259b6f463897acd0f8a23cd05e msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "Mise à jour vers jquery 3.6.3. :pr:`90`" #: ../../CHANGES.rst:511 96cb7430946248108d8c97973a4799d5 msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "Mise à jour vers Fomantic-UI 2.9.1. :pr:`90`" #: ../../CHANGES.rst:512 5b5784d9aedb4949bac1591395fc7eb9 msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "Mise à jour vers DataTAbles 1.13.1. :pr:`90`" #: ../../CHANGES.rst:517 e88b90b5e0eb418f99ea2839c1e79943 msgid "Fix typos and grammar errors. :pr:`84`" msgstr "Correction de fautes de frappe et d’erreurs de grammaire. :pr:`84`" #: ../../CHANGES.rst:518 d333115d646f4ccf9a5bb2dc4d23eba0 msgid "Fix wording and punctuations. :pr:`86`" msgstr "Correction de formulations et de ponctuations. :pr:`86`" #: ../../CHANGES.rst:519 cfc153afa2ec4bee9c2dd589a234716c msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "Correction de la balise HTML de langue. :issue:`122` :pr:`87`" #: ../../CHANGES.rst:520 a2dc7b3677d040c7a43bde721f766029 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:521 9a91064adb7f414fab73518fbc77b01d 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:524 d7a2cda6d8e24cc484f13ee4df40c1ea msgid "[0.0.19] - 2023-01-14" msgstr "[0.0.19] - 2023-01-14" #: ../../CHANGES.rst:529 f7c94b5e7545458e8375ef8a8e3dc21c 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:533 9291df232e4b4a7eb97fb87504f9b8d4 msgid "[0.0.18] - 2022-12-28" msgstr "[0.0.18] - 2022-12-28" #: ../../CHANGES.rst:538 c896b9996ab24cfeb217e9ebfdbed090 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:542 2fa2e9a70b8d4ab4bed4d7f0d8d68f37 msgid "[0.0.17] - 2022-12-26" msgstr "[0.0.17] - 2022-12-26" #: ../../CHANGES.rst:547 cff81f4ef5254cfdb1e6ba76c2c3b9f6 msgid "Fixed group deletion button. :pr:`80`" msgstr "Correction du bouton de suppression de groupe. :pr:`80`" #: ../../CHANGES.rst:548 552d92ac7c364f198201b60a3abebae2 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:551 f7c78b950b184117855277070cb4e548 msgid "[0.0.16] - 2022-12-15" msgstr "[0.0.16] - 2022-12-15" #: ../../CHANGES.rst:556 3e522208e81740fba479a43b017311fd msgid "Fixed LDAP operational attributes handling." msgstr "Correction sur le comportement des attributs LDAP opérationnels." #: ../../CHANGES.rst:559 53e83abb15b24cc0a3d589011cf7c2a3 msgid "[0.0.15] - 2022-12-15" msgstr "[0.0.15] - 2022-12-15" #: ../../CHANGES.rst:564 7194a505926740e3b52b81708d2818de msgid "User can chose their display name. :pr:`77`" msgstr "Les utilisateurs peuvent choisir leur nom d’affichage. :pr:`77`" #: ../../CHANGES.rst:565 5c5a59a03bd5497aa7474ae59e88f6bf msgid "Bumped to Authlib 1.2. :pr:`78`" msgstr "Mise à jour vers Authlib 1.2. :pr:`78`" #: ../../CHANGES.rst:566 0a3d037fae66464b8c2dfeea28dd3eaf 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:568 0670727ea1074acf968c49e71dc4062b 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:571 eb86b7335b7b4971812f25c9a2d37d1e msgid "[0.0.14] - 2022-11-29" msgstr "[0.0.14] - 2022-11-29" #: ../../CHANGES.rst:575 9903a64c05994256813debf83e9a6b21 msgid "Fixed translation catalogs packaging." msgstr "Correction de l'empaquetage des catalogues de traduction." #: ../../CHANGES.rst:578 eb1e508e7d2c46bdb471cffecbe4d897 msgid "[0.0.13] - 2022-11-21" msgstr "[0.0.13] - 2022-11-21" #: ../../CHANGES.rst:583 6e71d21752234824bc42897b8a434bb3 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:585 374bd3f105af42bc8ea5c0de35e7437f 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:587 6244294cde9d429dbab852b0f7721160 msgid "Gitlab CI fix. :pr:`64`" msgstr "Correction de l’intégration continue de Gitlab. :pr:`64`" #: ../../CHANGES.rst:588 8dc7de6abbd447f4a78272f33cbcb6cf 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:589 be276c6c0aed433987b562fa51a9af06 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:590 45c4b643c08f4e98b8eb1994cca78051 msgid "Fixed schema path on installation. :pr:`68`" msgstr "Correction des chemins d’installation des schémas. :pr:`68`" #: ../../CHANGES.rst:591 490ff7e15c244e1c80522169f52be22c msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "Correction du paramètre ``software_statement` de la RFC7591. :pr:`70`" #: ../../CHANGES.rst:592 13d139a4ca6b420eb0780952acd8582c msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" "Correction de la désactivation du pré-consentement des clients. :pr:`72`" #: ../../CHANGES.rst:597 f863beea190c4605afc13c35d7828c7e msgid "Python 3.11 support. :pr:`61`" msgstr "Support de Python 3.11. :pr:`61`" #: ../../CHANGES.rst:598 dfa820f752f64485950bd9f2f4f2f798 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:599 33f4b497e723467fb7cca94de105b331 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "Support de l’attribut utilisateur ``preferredLanguage``. :pr:`75`" #: ../../CHANGES.rst:604 80931cb05ba54eb0bdd13af0e69ae5c4 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:606 74c0ecca84cb4195b047360a2a12b281 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:609 b56f59b2dd124c91a6268830cf4ddecc 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:610 d701256eb4764f81827acd7b0a0dbda3 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:613 45607852e443428199051f1ecba9ba24 msgid "[0.0.12] - 2022-10-24" msgstr "[0.0.12] - 2022-10-24" #: ../../CHANGES.rst:618 9997d515babd44b4841ef0218885f1f1 msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "Support basique du point de terminaison WebFinger. :pr:`59`" #: ../../CHANGES.rst:619 509a601f77664756bc01064f20359cf6 msgid "Bumped to FomanticUI 2.9.0." msgstr "Mise à jour vers FomanticUI 2.9.0." #: ../../CHANGES.rst:620 2cfcbdba2e9541dbab610bc724a2683a msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" "Implémentation de l’enregistrement dynamique des clients OIDC. :pr:`60`" #: ../../CHANGES.rst:623 4acb242ffb5440d1a468e2d3c3856fe8 msgid "[0.0.11] - 2022-08-11" msgstr "[0.0.11] - 2022-08-11" #: ../../CHANGES.rst:628 0c4bd2691ba9453b88a686a22ede18ef msgid "Default theme has a dark variant. :pr:`57`" msgstr "Le thème par défaut a une variante sombre. :pr:`57`" #: ../../CHANGES.rst:633 d3cabac68def4f77a693a6159bf2f5c0 msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "Correction du binaire manquant ``canaille``. :pr:`58`" #: ../../CHANGES.rst:636 735459f4aeea42c6b0f7be4a2b06802f msgid "[0.0.10] - 2022-07-07" msgstr "[0.0.10] - 2022-07-07" #: ../../CHANGES.rst:641 f9dfd87d0fa145579e2297b27b61a11b msgid "Online demo. :pr:`55`" msgstr "Démo en ligne. :pr:`55`" #: ../../CHANGES.rst:642 5e5eef7b53ce470ab0a0137617552a9c 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:643 f7b8675a05b64bafb3efbbad603537ce 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:646 a14c8084a27d463f82c1573d946a6676 msgid "[0.0.9] - 2022-06-05" msgstr "[0.0.9] - 2022-06-05" #: ../../CHANGES.rst:651 d04e2396209641cc84fa39d8bb397eaa 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:652 01acc147a456445eb3858de7b0586dca 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:653 dafb92303cb147909db73fdc619f1267 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "Implémentation de la norme OIDC `RP-initiated logout` :pr:`54`" #: ../../CHANGES.rst:658 f672b1443aa9498994204b20952103e4 msgid "Bumped to Authlib 1. :pr:`48`" msgstr "Mise à jour vers Authlib 1. :pr:`48`" #: ../../CHANGES.rst:659 18c1456a82f748cd9ee0d6abcb40801f msgid "Various documentation improvements. :pr:`50`" msgstr "Diverses améliorations de la documentation. :pr:`50`" #: ../../CHANGES.rst:660 77c7a3b3242647718a3a94a1fc4d05a1 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:661 3b65181a80b64d0d8a474a5e643d3f80 msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`" msgstr "Tests additionnels concernant le paramètre OIDC ``nonce``. :pr:`52`" #: ../../CHANGES.rst:665 35eef6ab06b940e8ad49bf31b7620404 msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "Comportement et valeur par défaut de ``HIDE_INVALID_LOGIN``." #: ../../CHANGES.rst:666 2792732f7d154df2b11a35b13114939b 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:669 8766634316d146ab8929259434391f34 msgid "[0.0.8] - 2022-03-15" msgstr "[0.0.8] - 2022-03-15" #: ../../CHANGES.rst:674 f053b2fe7153473a81cb24bfc2b90c7d msgid "Fixed dependencies." msgstr "Correction des dépendances." #: ../../CHANGES.rst:677 6fe1289ea759485b9c3c7658461a409d msgid "[0.0.7] - 2022-03-15" msgstr "[0.0.7] - 2022-03-15" #: ../../CHANGES.rst:682 f40f5e320ea4412fadc8f1bc1d99198c 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:685 ac9b3059b303486a9b31536f1726d873 msgid "[0.0.6] - 2022-03-08" msgstr "[0.0.6] - 2022-03-08" #: ../../CHANGES.rst:690 357a41c66f054b9b830d9ae20551690d msgid "Access token are JWT. :pr:`38`" msgstr "Les jetons d’accès sont des JWT. :pr:`38`" #: ../../CHANGES.rst:695 20b619f456934ab09712d95d37ef12cd msgid "Default groups on invitations. :pr:`41`" msgstr "Groupes par défaut lors des invitations. :pr:`41`" #: ../../CHANGES.rst:696 74f8d8568cd1405bbef739de7b92f380 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:699 936cdbdb780241beb677c1a3c5d21735 msgid "[0.0.5] - 2022-02-17" msgstr "[0.0.5] - 2022-02-17" #: ../../CHANGES.rst:704 b49925c79428413ca8c31eff4f42a588 msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "Les objects LDAP ont de nouveaux identifiants. :pr:`37`" #: ../../CHANGES.rst:709 21e3bd1145ce480ea8a82394722cef34 msgid "Admin menu dropdown display. :pr:`39`" msgstr "Le menu d’administration est déroulant. :pr:`39`" #: ../../CHANGES.rst:710 b50bd877e6fa4055a450f65d4e0e6951 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:713 93523c049fd2438b9f8dbb942b657b7c msgid "[0.0.4] - 2022-02-16" msgstr "[0.0.4] - 2022-02-16" #: ../../CHANGES.rst:718 9cc5e4c0be3e43f98a84d076d254a7a8 msgid "Client pre-authorization. :pr:`11`" msgstr "Pré-autorisation des clients OIDC. :pr:`11`" #: ../../CHANGES.rst:719 b1444e5514e3495f8f05b00bfb31e54b 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:720 81badbb21dfe4dd0bd990037947c24cf 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:722 5f6092f6103d401e9fe4554e04ad12cb msgid "Theme customization. :pr:`15`" msgstr "Personnalisation du thème. :pr:`15`" #: ../../CHANGES.rst:723 7e99d3a9c9134144a8e18989e6d0d633 msgid "Logging configuration. :pr:`16`" msgstr "Configuration de la journalisation. :pr:`16`" #: ../../CHANGES.rst:724 abd6618054b443efbb5101e9c32f0c90 msgid "Installation command. :pr:`17`" msgstr "Commande d’installation. :pr:`17`" #: ../../CHANGES.rst:725 18c69372e28c42c4b0ac0cae51fcd8aa msgid "Invitation links. :pr:`18`" msgstr "Liens d’invitation. :pr:`18`" #: ../../CHANGES.rst:726 2e35dc7cf246485c97650451d1f41d93 msgid "Advanced permissions. :pr:`20`" msgstr "Permissions avancées. :pr:`20`" #: ../../CHANGES.rst:727 ef3b8ab7e89448089a9d09363832c7cc msgid "An option to not use OIDC. :pr:`23`" msgstr "Une option pour désactiver OIDC. :pr:`23`" #: ../../CHANGES.rst:728 4d5d5581283a4eaabab00c6df18077a0 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:729 a54b117ff68e47eabb66aa0a741790b1 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:730 8593aca44439457296e5591823f56739 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:731 548d5d09a1da4104aed49324dd3d96b6 msgid "Avatar support. :pr:`27`" msgstr "Support des avatars. :pr:`27`" #: ../../CHANGES.rst:732 e6275bae918547beab8caabaf64f57db msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "Paramètres des jetons d’accès dynamiques et configurables. :pr:`28`" #: ../../CHANGES.rst:733 82bbcaaa7973438696de021fbff14354 msgid "UI improvements. :pr:`29`" msgstr "Améliorations de l’interface utilisateur. :pr:`29`" #: ../../CHANGES.rst:734 70cd1dd3d81d4288b1c6bca674492944 msgid "Invitation links expiration. :pr:`30`" msgstr "Expiration des liens d’invitation. :pr:`30`" #: ../../CHANGES.rst:735 af865fef102c44bc801e8aec157c2835 msgid "Invitees can choose their IDs. :pr:`31`" msgstr "Les invités peuvent choisir leur identifiant. :pr:`31`" #: ../../CHANGES.rst:736 d194b87cfbd94dd398f1c58bec6e4c37 msgid "LDAP backend refactoring. :pr:`35`" msgstr "Ré-usinage concernant la base de données LDAP. :pr:`35`" #: ../../CHANGES.rst:741 2409763cd25243c9a80678c470fa336d msgid "Fixed ghost members in a group. :pr:`14`" msgstr "Correction des membres fantômes dans les groupes. :pr:`14`" #: ../../CHANGES.rst:742 ae04a8fa1896467792d8aaaf161fed29 msgid "Fixed email sender names. :pr:`19`" msgstr "Correction de l’adresse email des émetteurs. :pr:`19`" #: ../../CHANGES.rst:743 596c5956ebc6442984251ca5c558834e msgid "Fixed filter being not escaped. :pr:`21`" msgstr "Les filtres n’étaient pas échappés. :pr:`21`" #: ../../CHANGES.rst:744 bbf97ea202404efd8708cfbed4bbfe74 msgid "Demo script good practices. :pr:`32`" msgstr "Bonnes pratiques du script de démo. :pr:`32`" #: ../../CHANGES.rst:745 8d176b7d4da5419d8768430eeb01036c msgid "Binary path for Debian. :pr:`33`" msgstr "Chemins des binaires pour Debian. :pr:`33`" #: ../../CHANGES.rst:746 004ecd0e934049ef823bbf0d63f75c14 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:748 c6de3dbeeb5f40ff85c60e062271bfdb msgid "Spelling typos. :pr:`36`" msgstr "Corrections de fautes d’orthographe. :pr:`36`" #: ../../CHANGES.rst:751 d49aed2f00e346cc8adaa26aa54f470a msgid "[0.0.3] - 2021-10-13" msgstr "[0.0.3] - 2021-10-13" #: ../../CHANGES.rst:756 0b32a6319c044bba95b3a00f245c6956 msgid "Two-steps sign-in. :issue:`49`" msgstr "Connexion en deux étapes. :issue:`49`" #: ../../CHANGES.rst:757 4cf53569893c4b0ba8eab17b44a4a15b msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "Les jetons peuvent avoir plusieurs audiences. :issue:`62` :pr:`9`" #: ../../CHANGES.rst:758 2956507b8bba47839fef6f9a63d5321a msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "Commande de vérification de la configuration. :issue:`66` :pr:`8`" #: ../../CHANGES.rst:759 0415c157cb414913b3d7748afba41cda msgid "Groups management. :issue:`12` :pr:`6`" msgstr "Gestion des groupes. :issue:`12` :pr:`6`" #: ../../CHANGES.rst:764 e08a9eafc49f45cbb361ed3bd89d4649 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:765 48e63a4a411d4aab8259f74b1d257a37 msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" "Support du paramètre ``sub``dans l’introspection OIDC. :issue:`64` :pr:`7`" #: ../../CHANGES.rst:768 2a9047b937be481f811eb403d6bf7fd9 msgid "[0.0.2] - 2021-01-06" msgstr "[0.0.2] - 2021-01-06" #: ../../CHANGES.rst:773 9f74458dacff435998774594822a1506 msgid "Login page is responsive. :issue:`1`" msgstr "La page de connexion est réactive. :issue:`1`" #: ../../CHANGES.rst:774 8a87683d8d524cd482264473256b3777 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:775 c777083179094cd994619adcfc8499d9 msgid "Password recovery interface. :issue:`3`" msgstr "Interface de réinitialisation des mots de passe. :issue:`3`" #: ../../CHANGES.rst:776 c7393dc1bb6a4290bfdb2d59a3fef0c9 msgid "User profile interface. :issue:`4`" msgstr "Interface de gestion des profiles utilisateur. :issue:`4`" #: ../../CHANGES.rst:777 e874e0e97cae4310ba62553c3d31cd16 msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "Renommage du projet en *Canaille*. :issue:`5`" #: ../../CHANGES.rst:778 27a300eabaaf4644989d134ccca22dd8 msgid "Command to remove old tokens. :issue:`17`" msgstr "Commande pour supprimer les jetons expirés. :issue:`17`" #: ../../CHANGES.rst:779 8e168b1583984a71848678112365d1c7 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:780 901de9a21dd94541b3c23946ada4cd88 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:781 62c1e3da0a87437aaa529dcc936c7dbc msgid "Improved consents page. :issue:`27`" msgstr "Améliorations sur la page de consentement. :issue:`27`" #: ../../CHANGES.rst:782 f816ffeb73244ae0b1171b8c156d1e12 msgid "Admin user page. :issue:`8`" msgstr "Page d’administration des utilisateurs. :issue:`8`" #: ../../CHANGES.rst:783 2241f2b45f1e426f99f68ccc516c6b60 msgid "Project logo. :pr:`29`" msgstr "Logo pour le projet. :pr:`29`" #: ../../CHANGES.rst:784 dd802cef3e384fdc928fc43178ab119a 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:785 75d6d908a827424284ea63478783cbf9 msgid "Admins can impersonate users. :issue:`39`" msgstr "" "Les administrateurs peuvent prendre l’identité des utilisateurs. :issue:`39`" #: ../../CHANGES.rst:786 b4eee6e748f94ba9b6e62e2e7fd4d86b 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:787 44489482b8d54ae78c70959758d6f825 msgid "Admins can remove clients. :pr:`45`" msgstr "Les administrateurs peuvent supprimer des clients. :pr:`45`" #: ../../CHANGES.rst:788 be6e5371ee2a48efa0d9d276e9caa9a0 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:790 b1df16b2411a440d8d2a0745c972f368 msgid "Password initialization mail. :pr:`51`" msgstr "Courriels d’initialisation des mots de passe. :pr:`51`" #: ../../CHANGES.rst:795 ba317999584d46d7b5bfda36157bc111 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "Traductions des formulaires. :issue:`19` :issue:`23`" #: ../../CHANGES.rst:796 e0d773fd3f814a438321528df1c4d67d msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "Utilisations d’autres polices que celles de Google Fonts. :issue:`21`" #: ../../CHANGES.rst:801 d7c5d0509cfe422ab95beb9c1929e413 msgid "'My tokens' page. :issue:`22`" msgstr "Page « Mes jetons ». :issue:`22`" #: ../../CHANGES.rst:804 35ab727ebe564ff2a2aa3e28f9392f5b msgid "[0.0.1] - 2020-10-21" msgstr "[0.0.1] - 2020-10-21" #: ../../CHANGES.rst:809 487e834d3b154f69991d042f97ce3734 msgid "Initial release." msgstr "Publication initiale." #: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3 msgid "Contributions" msgstr "Contributions" #: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc msgid "Contributions are welcome!" msgstr "Les contributions sont bienvenues !" #: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d 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 880fd4b263fa4f5aa77f826cf6d7a13e msgid "Discuss" msgstr "Discuter" #: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c 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 032421a7ce0548e38943bb37b9e46f90 msgid "Development environment" msgstr "Environnement de développement" #: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264 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 b918844970c545a3826d0b39a79cb08c 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 56f217cf35444c72b1bc1a1cb3ee9e53 msgid "Initialize your development environment with:" msgstr "Initialisez votre environnement de développement avec :" #: ../../CONTRIBUTING.rst:26 9cf0a292c2bb408fa660e14ab61f0e43 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 8d29fc6ad3bd43c5b232963f5137c91a 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 928d535d56314259b20055eea3a4ceb4 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 56b8780399064aec89d3099841d1b017 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 1a514a3605f243979b2d04e1a329368a 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 bbde54dc79ba4241bd97323b5152b50b msgid "A canaille server at `localhost:5000 `_" msgstr "" "Un serveur Canaille à l’adresse `localhost:5000 `_" #: ../../CONTRIBUTING.rst:35 d028b9cbae714b2d945ba4d70a75fb99 msgid "A dummy client at `localhost:5001 `_" msgstr "" "Un client factice à l’adresse `localhost:5001 `_" #: ../../CONTRIBUTING.rst:36 dbd0340fc974432798237b9b3efe01ea msgid "Another dummy client at `localhost:5002 `_" msgstr "" "Un autre client factice à l’adresse `localhost:5002 `_" #: ../../CONTRIBUTING.rst:38 9ff28ddd679b42f4a5bf288242e8c827 msgid "The canaille server has some default users:" msgstr "Le serveur Canaille embarque quelques utilisateurs par défaut :" #: ../../CONTRIBUTING.rst:40 324e9f4f1d744fa49a0c3e7fe60cf46b 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 30a3f2679a4b456791471ac6d4c15e2b 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 d5e4f771a0854678af55e11ae4c8fc3d 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 325a060f0844402d80a7267a46291010 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:62 ../../CONTRIBUTING.rst:48 #: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da msgid "Backends" msgstr "Bases de données" #: ../../CONTRIBUTING.rst:50 12c4afcb316c448797ed9784ef9fbaa1 msgid "Canaille comes with several backends:" msgstr "Canaille peut se connecter à plusieurs types de bases de données :" #: ../../CONTRIBUTING.rst:52 853d2b906b80415db33c707e29640f4c 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 b280dce615cb48ec8456abf65fec4a9e msgid "a `sql` backend, based on sqlalchemy" msgstr "une base de données `SQL`, utilsant SQLAlchemy" #: ../../CONTRIBUTING.rst:54 ad6d07459c274a9e8282e290875d5bfb msgid "a production-ready `LDAP` backend" msgstr "une base de données `LDAP` prête à l’emploi" #: ../../CONTRIBUTING.rst:57 7db1494e281b4b89949e18e1ece1cb6c msgid "Docker environment" msgstr "Environnement Docker" #: ../../CONTRIBUTING.rst:59 c8e61bddd24e4af0ab8ee2bd2709652d 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 0e3e6469d25f43998fce20bcb1291b86 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 c0dce613d6384dd18a1d6abce742bf55 msgid "To launch containers, use:" msgstr "Pour lancer les conteneurs, utilisez :" #: ../development/specifications.rst:64 ../tutorial/databases.rst:16 #: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:106 #: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012 #: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9 msgid "SQL" msgstr "SQL" #: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:107 #: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95 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 #: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d 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 e5f82f8945b747ac81b31a20cc241e5d #: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8 msgid "Memory" msgstr "En-mémoire" #: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:116 #: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc 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 #: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38 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:64 ../tutorial/databases.rst:32 #: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:124 #: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e #: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65 msgid "LDAP" msgstr "LDAP" #: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:125 #: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569 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 #: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb msgid "Run the demo instance with the LDAP backend" msgstr "Lancer l’instance de démo avec le support de LDAP" #: ../../CONTRIBUTING.rst:103 9e2c9acef9184e34b00d62c97980467d msgid "Local environment" msgstr "Environnement local" #: ../../CONTRIBUTING.rst:133 5fffaf4bff884b5a839078ad5a889fc9 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 aa9aab912ff04dd68c3b59bf1e36575a 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 3d21757ba34c4721af043c150330c2e4 msgid "Populate the database" msgstr "Remplissage de la base de données" #: ../../CONTRIBUTING.rst:150 a412d39e98cf44f6b911566e1ebcdbde 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 cdf90f875bcc44d5b41197a7cdbb275c 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 2db32f774df8429fa4c9e83d00616a96 msgid "Unit tests" msgstr "Tests unitaires" #: ../../CONTRIBUTING.rst:166 5d6a9b57b35d49c48e2b615f8128ebcc 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 e1e6e475ff78404f930bb453f1f26e3b 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 2cb85029b4274de388878da3d3285369 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 4408d499056c480f86f450a781d2ca0d msgid "Code style" msgstr "Style de code" #: ../../CONTRIBUTING.rst:178 93e483f2a66a4d8f82feb8ca9a739818 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 0dca6207e6734ab487cb3fe72c3e90e8 msgid "Front" msgstr "Interface utilisateur" #: ../../CONTRIBUTING.rst:186 930e01d770324dc68f73095cd5456a8e 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 fc0da8a2736e461dab5a7d242c1cfa9a 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 a13b055a65244362a025440451de998d 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 e3ff6afa466e4e61aa4f677cd58d3ed2 #: a08d8d5331494e7d93508eaf25f41a07 msgid "Documentation" msgstr "Documentation" #: ../../CONTRIBUTING.rst:198 2e1fdcae75de46a6b50db7e4155758af 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 94405109592b47c09c8726c305fa5edc 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 fe4610d142474897ae4f97d321448fac 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 bf09dd8ed31742bca2fa80175ae85bb3 msgid "Code translation" msgstr "Traduction du code" #: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f msgid "" "Translations are done with `Weblate `__." msgstr "" "Les traductions s’effectuent sur `Weblate `_." #: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd 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 #: ea5bd05b09984bcaa643efa7a1a7618c 33490a8ff4a3465fb8648393ff65eb75 msgid "Message extraction" msgstr "Extraction des messages" #: readme.rst:8 ../../canaille/translations/README.rst:10 #: 210e9ff98db74777830a5a1f4746df44 16b22e2bc3cf495bbef529f5732887e3 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 #: 54ecd51acf494402964ae281c6cd639b 02fa7225075346f89ad702cba8aabdeb msgid "Language addition" msgstr "Ajout de langues" #: readme.rst:17 ../../canaille/translations/README.rst:19 #: 5429b47768e2472ea597ed48140a5621 015d6a437f7e4d099c8cad60986c0b68 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 bdfbb4ef60c54b26abf457ba930b7fcf msgid "Catalog update" msgstr "Mise à jour des catalogues" #: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25 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 f232cbfdd201463ab74fe71353c8e23b msgid "Catalog compilation" msgstr "Compilation des catalogues" #: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6 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 4ff341d941384c029ed9c0b49d1062f9 msgid "Documentation translation" msgstr "Traduction de la documentation" #: readme.rst:1 35fff9d115334ec6aa6a99ec5da8a27f #: 7abe83f2eeb54b3f9f3d1a8542696765 msgid "" "Translations are done with `Weblate `__." msgstr "" "Les traductions s’effectuent sur `Weblate `__." #: readme.rst:3 de92a131ecf44614963dd89770f593ae #: 0ca00925251d48668c7673ddece41d66 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 3d142fe9f633400ea029e949f1e869ee #: 74cc2740b1584972aa3c0e672dff5f3e msgid "Build the documentation in another language" msgstr "Construire la documentation dans une autre langue" #: ../../CONTRIBUTING.rst:224 4b1dc3dae99f4c6fbbeec3e54be3e922 msgid "Publish a new release" msgstr "Publier une nouvelle version" #: ../../CONTRIBUTING.rst:226 975b37a07edc4a42bbef14c2ca80a34f 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 e9bd8386c6c64ef99aac12ee831f39d1 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 3e7d5493a8e44c1a9067010115678723 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 fe7867ea9416424e81c518f77853958a 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 7d89adc1c3e6478ab9e8faa02f97bf03 msgid "Increase the version number in ``pyproject.toml``;" msgstr "Incrémentez le numéro de version dans ``pyproject.toml`` ;" #: ../../CONTRIBUTING.rst:231 a376131776cd4e469611fa3ad6749be9 msgid "Commit with ``git commit``;" msgstr "Commitez avec ``git commit`` ;" #: ../../CONTRIBUTING.rst:232 655fd489e5324dc5b6172d438a6b8e3e msgid "Build with ``uv build``;" msgstr "Construisez le paquet avec ``uv build`` ;" #: ../../CONTRIBUTING.rst:233 79fc61b7c13647a285a918a0c126ea53 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 93540129ce0c440eba4da63ed3ddb769 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 8a73b31d1fe14fdda15e6c2dea0cafc9 msgid "Publish on production PyPI ``uv publish``;" msgstr "Publiez sur l’instance de production de PyPI avec ``uv publish`` ;" #: ../../CONTRIBUTING.rst:236 93131bb37ccc4207825449d393f92201 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "Étiquetez le commit avec ``git tag XX.YY.ZZ`` ;" #: ../../CONTRIBUTING.rst:237 a98a5168d5f949ec9e96f16d8ff8b6f5 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 c0f14bad2988468fa0700bbd47fe1de0 msgid "Development" msgstr "Développement" #: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911 msgid "Specifications" msgstr "Normes" #: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6 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 bfa87dc7f42445fb96172a2ce7643950 msgid "State of the specs in Canaille" msgstr "L’état des spécifications dans Canaille" #: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c msgid "OAuth2" msgstr "OAuth2" #: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e msgid "" "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" "✅ `RFC6749: OAuth 2.0 Framework `_" #: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3 msgid "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" #: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278 msgid "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" msgstr "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" #: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc 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 0213796d176a4938a10c902cfb737a18 msgid "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" msgstr "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" #: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a msgid "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" msgstr "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" #: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d 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 bc914d1d327d4ce6a638c5245c4cfcc3 msgid "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" msgstr "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" #: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d msgid "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" msgstr "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" #: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8 msgid "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" msgstr "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" #: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab msgid "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" #: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d 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 772cbe80f8cd44faa3230ee4e690e5f3 msgid "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" msgstr "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" #: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e 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 088615a4afdc48a5b6449df856cb1eb3 msgid "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" msgstr "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" #: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a msgid "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" msgstr "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" #: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85 msgid "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" msgstr "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" #: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96 msgid "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" msgstr "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" #: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8 msgid "" "❌ `OAuth2 Multiple Response Types `_" msgstr "" "❌ `OAuth2 Multiple Response Types `_" #: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac msgid "" "❌ `OAuth2 Form Post Response Mode `_" msgstr "" "❌ `OAuth2 Form Post Response Mode `_" #: ../development/specifications.rst:34 ../features.rst:212 #: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42 msgid "OpenID Connect" msgstr "OpenID Connect" #: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c msgid "" "✅ `OpenID Connect Core `_" msgstr "" "✅ `OpenID Connect Core `_" #: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0 msgid "" "✅ `OpenID Connect Discovery `_" msgstr "" "✅ `OpenID Connect Discovery `_" #: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a msgid "" "✅ `OpenID Connect Dynamic Client Registration `_" msgstr "" "✅ `OpenID Connect Dynamic Client Registration `_" #: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d msgid "" "✅ `OpenID Connect RP Initiated Logout `_" msgstr "" "✅ `OpenID Connect RP Initiated Logout `_" #: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a msgid "" "❌ `OpenID Connect Session Management `_" msgstr "" "❌ `OpenID Connect Session Management `_" #: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844 msgid "" "❌ `OpenID Connect Front Channel Logout `_" msgstr "" "❌ `OpenID Connect Front Channel Logout `_" #: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9 msgid "" "❌ `OpenID Connect Back Channel Logout `_" msgstr "" "❌ `OpenID Connect Back Channel Logout `_" #: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b msgid "" "❌ `OpenID Connect Back Channel Authentication Flow `_" msgstr "" "❌ `OpenID Connect Back Channel Authentication Flow `_" #: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243 msgid "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" msgstr "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" #: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d msgid "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" msgstr "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" #: ../development/specifications.rst:48 ../development/specifications.rst:64 #: d9278a9cbe784818b57f9fd9d76dda68 7ad1170acbe7400785a02a07e408ce3b msgid "SCIM" msgstr "SCIM" #: ../development/specifications.rst:50 c91f11a0512e4782981c5bb98a8038d7 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:51 2f4ea31b4c80425a8e3075b8597ae8e5 msgid "" "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" msgstr "" "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" #: ../development/specifications.rst:52 6ffdb285557144afb301b05c33fecddf msgid "" "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" msgstr "" "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" #: ../development/specifications.rst:55 ac600b38603f4fb999aebf5ffbe33cc7 msgid "Comparison with other providers" msgstr "Comparaison avec d’autres serveurs d’identité" #: ../development/specifications.rst:57 2ef9567e17694a669ed5071c882661ad 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:59 d6d241980d3e46e192dd54a5082b0197 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:62 0b9a4fba353c483692ed6fb04227691e msgid "Software" msgstr "Logiciel" #: ../development/specifications.rst:62 62c2fe7c97644cfa8e7d297a337bfe36 msgid "Project" msgstr "Projet" #: ../development/specifications.rst:62 f4700ad912314bfc8d66be8471a4c772 msgid "Protocols implementations" msgstr "Protocoles implémentés" #: ../development/specifications.rst:64 ea237be2a99a4940be67516a1b95d97d msgid "FLOSS" msgstr "Libre" #: ../development/specifications.rst:64 55d5dd9174f94ca9850b999864598259 msgid "Language" msgstr "Langage" #: ../development/specifications.rst:64 27002c409c6440d29ae89e91559a6994 msgid "LOC" msgstr "LOC" #: ../development/specifications.rst:64 3ba35fd6c6d44150b4b049cf603e4a85 msgid "OIDC" msgstr "OIDC" #: ../development/specifications.rst:64 dc762bcd6eca4fc79dae1ca65c411351 msgid "SAML" msgstr "SAML" #: ../development/specifications.rst:64 6ae5803282c4439a9e7b1c1570e4c505 msgid "CAS" msgstr "CAS" #: ../development/specifications.rst:66 f4c4ac6fdea74558a74bc9a3cefbb5c7 msgid "Canaille" msgstr "Canaille" #: ../development/specifications.rst:66 ../development/specifications.rst:68 #: ../development/specifications.rst:70 ../development/specifications.rst:72 #: ../development/specifications.rst:74 ../development/specifications.rst:76 #: ../development/specifications.rst:78 ../development/specifications.rst:80 #: ../development/specifications.rst:82 ../development/specifications.rst:84 #: ../development/specifications.rst:86 ../development/specifications.rst:88 #: c2035a448fa9405a92d51c9c90277394 1fff4f30a7714816a18b3fcc116290ea #: c40b5154d16f4769a90f544f921ff160 b4f8f14c2ccd48d7a2df4514e072872c #: 070425d5941a41a5b151cd30b60c8759 ae10fc61ac05465c88b82d0432b9f6f3 #: 487a8e03d0e34a79b0382407ce0105e6 aa47e755d8094a54a72e5a984eca8212 #: 1e641255c61242d782202c8eafa965b0 66fcd17bb81c48538f3b165edb4842e4 #: 28011cbaa1f84bc2b0c07e50fe8ee4c1 33e7166b401144bcadff959d61e03c4c #: 3e414716fb234b5a98cbd381348c05b8 4233cb97a80043599c2ab7b25dfc7e09 #: 01a61d6ece794b39adc441233aef3a3d 7bba6b8427854a41b99c15b883290007 #: 87f7b258b9084896962266eef600ead0 35d2af03a40c44f3be85f38d56883d26 #: d90d1af7efe04fa397f58ec889a042d2 721544149a7244feb2fd14bc071b9ba4 #: 588ab8a50fca4528b9a471dbddfb7d4a 814ccdbc41184e08ac5d1dfc65486f1c #: 5b92e201931a462c90a3d3883c2bd94a ba65de35554741a48a7eb4a72fc66433 #: c5d5335a195a44cd882f443ae316348f 9a77ea56aecb4e859046a32bcd052251 #: b845153d9ebc4c2e83791da5c5d0bf5a 4dd20636352243038f0bdad8d15e8449 #: 5b23071246ab41f1abd1bfa5596a4b46 e9195a6880cc4824bb5fbfce4b1d26dc #: f0943b3b5cd34615a55cb2f9b1608b4a d95ce6d1875045fc8442060795ebfe22 #: eaa0089f734b48eea7a06ed3c5a0dad5 c1aa2d442f2047f9a1194e38c2b1ddd1 #: f86c1eae20714e9dba1f0f48395c4dc9 0657decbae9645678985ea6020d354d2 #: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31 #: f5e5911bcb704af19c073370f437c1b4 2a75e780caa141b798c8b207bcc8fcbe #: 47c3b428281d41fcb8e7bc0cdc16581f 44dd040e077248b48b1ed0af53404b9c #: e063ffcc58474df4a66b2814eb4c0f61 24cd7d2b70af4d138d065f2b568969bc #: 1b724ec2c443410fa224420a2dc57059 9909afe63bb34adcafa5eca97a23cd03 #: cb0aa79288f1454880b063396f3803e5 b96e91bf613c4f4cb6ac463fad5a68fe #: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4 #: a5b3f91649094efebe4e858d745ccb2e 4b09487097334807804aaba873d4dc7b #: a981b83da6074c448bcbcfaf442ff4f8 93c98f61c81b4628a9acfd096e11e7a4 #: c9b45500d9d145a8862c978d95329330 c34b7940cbbd4218af2cb94e8eb24fc7 #: 007275e0e3314ae5a27bc93732d22221 8a394726b7b941dfbbd8af3e546782c1 #: eda36ba62e4947528d14d5bb46f98767 78eb76570364482583c3cb19d0303903 #: 911d55a0575e40f68acac8945e382a6f 888a30003d764dd28c8744ea11295da4 #: f5320617a03e47dea905ac5a70208c70 msgid "✅" msgstr "✅" #: ../development/specifications.rst:66 ../development/specifications.rst:72 #: 86f975b8aaab4af9bfc62ef2df91ba28 9dd4f11a08ae4fb0b0fde477b7209bc3 msgid "Python" msgstr "Python" #: ../development/specifications.rst:66 3a757539fafc4e3aa92dbdec5227a2df msgid "10k" msgstr "10k" #: ../development/specifications.rst:66 ../development/specifications.rst:68 #: ../development/specifications.rst:70 ../development/specifications.rst:72 #: ../development/specifications.rst:74 ../development/specifications.rst:76 #: ../development/specifications.rst:78 ../development/specifications.rst:82 #: ../development/specifications.rst:86 ../development/specifications.rst:88 #: d1129a1abbbe451393139f636f972160 0baee04e46584b46ab2b5bd83dea4c0d #: cab3dd361d004e25bc0250cb2e0ffe9a d3bccdee48f340dcac2b45c0892ceceb #: 71b748e4a2b34c0bb767e54e9a6035e5 a2b3f6f336424dbbaf5dc3d387d841e6 #: 465d3f3e0fd74093b25163100de425b3 7d6b64f2f3bd472bac864db31a8369db #: 56488a2c86774489986852389d9bdc8b 31a1e7b5acc84a55bcb704865acece12 #: 64856df8e2b846fc9b5af8a2091645a0 bfba022e99874f03afc35e4de5bd4708 #: a879dcda766c4da185322f35d22e6f46 fd884c4495c144699d4ed019e0264719 #: aa15002c037b42d49c62426116a999c9 94a1a61f502a42569788cfe93ad6bcf7 #: 2f498851758b4c13943c69ec1ce9a3db 205c9937da9946108d0a0e2b4f8458aa #: 7aa2bbcd681b45e3b3027de382926640 msgid "❌" msgstr "❌" #: ../development/specifications.rst:68 41d7747dc9384c6b908b8394168b5b5a msgid "`Auth0`_" msgstr "`Auth0`_" #: ../development/specifications.rst:68 ../development/specifications.rst:78 #: ../development/specifications.rst:80 ../development/specifications.rst:88 #: b391b0e5e2724d7f9d457a4e64303697 8f85eeab9d6945af894c55e2a4aa0b9b #: 042200dd8e5446a9bf353b47b219b1bb cf98ae825b30479499de8a4c5ffa1941 #: 9d4e74c78b2b439785310a334d06a1c7 29630d08824746cb989fd0b402a48ba1 #: 40c78abb3bce4fc8a59fabdef15f0f33 d6fbf12d6eb6429d84551ea23bf8eecc #: f682275b9cb14280a7f2654d727c75d1 msgid "❔" msgstr "❔" #: ../development/specifications.rst:70 47ff7b1213464f85b246c4282f3af933 msgid "`Authelia`_" msgstr "`Authelia`_" #: ../development/specifications.rst:70 ../development/specifications.rst:74 #: ../development/specifications.rst:82 5db56fd3e64948f5a108d2f74f7070b4 #: 336fd480628c4851957b790dee759f7c f263685446a54133804e5f8517d59f1d msgid "Go" msgstr "Go" #: ../development/specifications.rst:70 ../development/specifications.rst:82 #: 741e97755b8c4478b7e19ba006898401 ffc79e1d4373446e88d2065ff0109fc8 msgid "50k" msgstr "50k" #: ../development/specifications.rst:72 7fb71b70103e40eeb178e1281ea81de3 msgid "`Authentic2`_" msgstr "`Authentic2`_" #: ../development/specifications.rst:72 cb26c38797d9416fafe5d1a1b5c5b03b msgid "65k" msgstr "65k" #: ../development/specifications.rst:74 6f7fc7bbb2694f09a12393a74ffc8013 msgid "`Authentik`_" msgstr "`Authentik`_" #: ../development/specifications.rst:74 bb964534c0704925b6d856bd54af7c7f msgid "55k" msgstr "55k" #: ../development/specifications.rst:76 4604cb0778044b63807b2be23ced893c msgid "`CAS`_" msgstr "`CAS`_" #: ../development/specifications.rst:76 ../development/specifications.rst:80 #: ../development/specifications.rst:84 aa3618e441ac413e83acdfe56631d15a #: 1dc363d8cf99410890cbd44e0f60699c 4104aef4b998447299aa6b10e861098c msgid "Java" msgstr "Java" #: ../development/specifications.rst:76 c316893b4f00454a8c5745071e0888b1 msgid "360k" msgstr "360k" #: ../development/specifications.rst:78 c8a158afb8d841209c20b9ef42e563cb msgid "`Connect2id`_" msgstr "`Connect2id`_" #: ../development/specifications.rst:80 a264cd68201c442faf08474397c550aa msgid "`Gluu`_" msgstr "`Gluu`_" #: ../development/specifications.rst:82 e54b53bfeafd4764b01095c1cd0077b7 msgid "`Hydra`_" msgstr "`Hydra`_" #: ../development/specifications.rst:84 87594578370246d494ef5e63196a3a92 msgid "`Keycloak`_" msgstr "`Keycloak`_" #: ../development/specifications.rst:84 d6304d1f41714ad5af15edb6febbfbc5 msgid "600k" msgstr "600k" #: ../development/specifications.rst:86 2efe7957b848447dacfecb082a95c438 msgid "`LemonLDAP`_" msgstr "`LemonLDAP`_" #: ../development/specifications.rst:86 cdd25b565e5d4de4b4202f82f4407843 msgid "Perl" msgstr "Perl" #: ../development/specifications.rst:86 51b2d4fcc1fc43d2a692826a2b2c62d1 msgid "130k" msgstr "130k" #: ../development/specifications.rst:88 4c2a5d27487345f7bc3c1bbd0c897c47 msgid "`Okta`_" msgstr "`Okta`_" #: ../features.rst:9 61a68141a485477a9fb49921e7b8aa3a msgid "Features" msgstr "Fonctionnalités" #: ../features.rst:11 5dd070084abb440ebf87c36df501f197 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 83eef1f1157b4d37b4627438618f31ab 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 73c7e363c37147fc825deea06ee26975 msgid "User and group management" msgstr "Gestion d’utilisateurs et de groupes" #: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c 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 759b0714ba194bc5a5d043350cb4cd14 #: dd79223676e0465293d1499d8929fa26 msgid "Profile management" msgstr "Gestion de profil" #: ../features.rst:-1 53e5483c51ae4df28138ae990c16de07 #: 0a36f2261b84450b98131ff740f7ceb9 msgid "Profile" msgstr "Profil" #: ../features.rst:33 864adfa77693422cad803b08d9187a5e msgid "Canaille provides an interface to manage user profiles." msgstr "Canaille fournit une interface pour gérer les profils utilisateur." #: ../features.rst:35 505ce537381249ec82445d38a4e093df 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 625c7cea8a034a7ba263a71ce0587a26 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 530dac22b587444cbd5de9ba2d7a3a90 msgid "Email confirmation" msgstr "Confirmation de l'e-mail" #: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71 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 8d597149b59e45f896eff2baa716fc20 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 4a6be5a6b71a4a5ea35d7c4a41630e35 msgid "Group management" msgstr "Gestion de groupes" #: ../features.rst:-1 4824338c1fbf4fdd8c2e01534219ee98 #: 3d8b9fc086e945d890bf9b3e01c82984 msgid "Group edition" msgstr "Édition de groupes" #: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729 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 b83c6d0af7fe45228496bb2c594cf88c 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 6fdf0a969ccb49e1bf9bfc28f4df9169 #: 4065a0b70a1444058df3bb16f0abc445 bc0be7a805e04b5f91b89db28d7dffae #: 7ab21494d11e4287acffeb771f8f5244 msgid "Todo" msgstr "À faire" #: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7 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 6440e19e527d4d5f8abc44d99c8a3dba 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 2382414ec97641a4925e741a26ae3148 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 b136f97d836d4c8dbb63cd671ceebe4e #: 76d8725ced9e421f98de5fb1e1ee01a2 msgid "User authentication" msgstr "Authentification utilisateur" #: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6 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 1a8cb7dc227a452b81768be3758a8fb4 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 778349cb3c344689bd8cc06184005e10 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 aa467ae3118543ed94401a8ca23776f1 msgid "User registration" msgstr "Enregistrement d'un utilisateur" #: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b 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 c1f2442a948d414e9b9983d79aa91ae4 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 3d200c871e19420db3ce1885f7414a3c #: 7bf61d1ad01240f7b1ed2db4ab0fdf77 msgid "User invitation" msgstr "Invitation d'utilisateur" #: ../features.rst:104 134f042cb892434e922c01d62222ed54 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 e054dbb49f644364a6aaadcb2f5a0024 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 536cbb5eff1444dda4ac45998d356fe6 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 c24731829c1949aeb3f54f0167ed8b37 msgid "Account locking" msgstr "Verrouillage des comptes" #: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed 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 31e7e6b90652414ab1b450f98ddb7d53 msgid "At the moment a user account is locked:" msgstr "Au moment où un compte utilisateur est verrouillé :" #: ../features.rst:120 6be8caf7464643e99cb2614ce0138045 msgid "their open sessions will be closed;" msgstr "leurs sessions ouvertes seront fermées ;" #: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a msgid "they won't be able to sign in again;" msgstr "ils ne pourront plus se connecter à nouveau ;" #: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42 msgid "no new OIDC token will be issued;" msgstr "aucun nouveau token OIDC ne sera émis ;" #: ../features.rst:124 c784a99a157b46028eb5c3543da73e38 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 da2f0b388508475cbb3fd080de1ff44c msgid "Account deletion" msgstr "Suppression des comptes" #: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2 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 85f4ea778e8f45f7841ddf39f1bc8b41 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 86a66e197de94dcbb90d559730b89318 msgid "Password recovery" msgstr "Récupération de mot de passe" #: ../features.rst:145 6693db5e96354da69ed660a259c109ce 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 2f356fab771549f9bdca5fa4f3ca2e5e 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 a603b57c4fc54e67ba04056b0037ae8e 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 1bdb193d14a444a2a823f0dcef03e8ad msgid "Password reset" msgstr "Réinitialisation des mots de passe" #: ../features.rst:158 077ee41f3059484dad80b08733aae520 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 c4e7b07761674e608a0e2bfdd50a659a msgid "Password initialization" msgstr "Initialisation des mots de passe" #: ../features.rst:166 5043df71775449a78e19ce0296f8d9ee 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 412b386c0c794b5d8c71ea7b51278da8 msgid "Password compromission check" msgstr "Vérification de la compromission du mot de passe" #: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe 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:178 cbba3fccd9f84230b6eb0774cfd7e109 msgid "Web interface" msgstr "Interface web" #: ../features.rst:183 fab0081b9bd4460098de6df7d8c317b5 msgid "Internationalization" msgstr "Internationalisation" #: ../features.rst:-1 46cf7a3a3e9047439aa7fa6654b07921 msgid "Translation state" msgstr "État de la traduction" #: ../features.rst:190 0a5afedc31de47a28d0bf7842a8558cd 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:196 2caebf718cab47029a83bb91253e36e5 msgid "Lightweight" msgstr "Léger" #: ../features.rst:198 e3cbad3b2af0422287a92a4094559d8b 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:202 a7db848b637a46b1874f04fb542009e2 msgid "Customizable" msgstr "Personnalisable" #: ../features.rst:204 0c829a128889493fbc97247a60390954 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:207 3a69d40c024744af967a1408c054aca0 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:214 003c4e8eee334a9d89486e2c0ae5d106 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:218 51e9a6e1ddb04b99a6a73135fc8728e7 msgid "Consent management" msgstr "Gestion des autorisations" #: ../features.rst:226 a613e3d10f1243f3bc5d4e796b278c89 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:230 115bec7ea8944f6ab98641d9bd2540ec msgid "Application management" msgstr "Gestion des applications" #: ../features.rst:232 526d36374a8747d6ad6280379bcf664c 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:234 79f0217902dc4b2ca73128ff6c16e7b5 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:237 d1f7f85df6404afe91d29e4dee44be1d msgid "Discovery" msgstr "Découverte" #: ../features.rst:239 8b306f1c76664574a0f3d85805a46d87 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:242 d5a2f0c4fa2f4363b5e87c4243376aaa msgid "Dynamic Client Registration" msgstr "Enregistrement de client dynamique" #: ../features.rst:244 800aec57df82487f80fc7da359dc5c34 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:247 9cae9e0af58f499dac34354e9c12785d msgid "System administration" msgstr "Administration système" #: ../features.rst:252 ../references/commands.rst:2 #: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f msgid "Command Line Interface" msgstr "Interface en ligne de commande" #: ../features.rst:254 98ef5f39d74944668dfff8b63d9d6199 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:256 9a30112ff2eb47c69263e73aa3c4ee15 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:259 02d13c90aa8f41f5b1007cd67fcea510 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:264 ../tutorial/databases.rst:2 #: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9 msgid "Databases" msgstr "Bases de données" #: ../features.rst:266 1a7af5dc07fa4f6c9231664737ee46a7 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:272 a6a6a7334af54051aebed82d83027ea8 msgid "Logging" msgstr "Connexion" #: ../features.rst:274 9bc7705bd378459abf2f813381aa58a6 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:276 2aeb5161276a4f048c40a7256c3d7f0e msgid "" "The following security events are logged with the tag [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:278 ed4be0b57afe4ce9976c45f03c249444 msgid "Authentication attempt" msgstr "Tentative d'authentification" #: ../features.rst:279 452456f9907e4bbd89439903c2fc9ebc msgid "Password update" msgstr "Mise à jour du mot de passe" #: ../features.rst:280 9ccb4ef2a139403c85223576eb87a182 msgid "Email update" msgstr "Mise à jour de l'e-mail" #: ../features.rst:281 bd0936deb7994f8fb59f2f0a47115edc msgid "Forgotten password mail sent to user" msgstr "Mail d'oubli de mot de passe envoyé à l'utilisateur" #: ../features.rst:282 02079fe76d2041aaba48a6b2079630f1 msgid "Token emission" msgstr "Emission de jeton" #: ../features.rst:283 814519684d8c47a5b0b5ae6eaa9aa66e msgid "Token refresh" msgstr "Rafraichissement de jeton" #: ../features.rst:284 4489f99b64dd40248f28453fb8b4b0df msgid "Token revokation" msgstr "Révocation des jetons" #: ../features.rst:285 99abcc04f85649c1b184e22e67b36f18 msgid "New consent given for client application" msgstr "Nouvelle autorisation donnée pour l'application client" #: ../features.rst:286 c64802d623a74d678c4aca29f82c39d7 msgid "Consent revokation" msgstr "Révocation de l'autorisation" #: ../features.rst:291 f9d92f5f76a745ee97ea36afc853c516 msgid "Development and testing tool" msgstr "Outil de développement et de test" #: ../features.rst:296 9c0500515a5847c2bec5b1bb743f42fc msgid "Unit-testing tool" msgstr "Outil de test unitaire" #: ../features.rst:298 b1dc62a0c2024ff1bd6682408301766a 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:301 ff4f45059bc2485eb5fa0145f5f01f9a msgid "Development server" msgstr "Serveur de développement" #: ../features.rst:303 a430530dc1ac42b680a9024e920dad7d 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:308 3594d882079a4c89b28f0d9b25b5a647 msgid "Continuous Integration tools" msgstr "Outils d'intégration continue" #: ../features.rst:310 f7bb141a215c46df915ce63b47f13cdb 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:313 beb39ccb89e040118104ba0c0f41eb71 msgid "Roadmap" msgstr "Prévisionnel" #: ../features.rst:316 4fee3c311fe844bbb345bd5b562844ad msgid "Bêta version" msgstr "Version bêta" #: ../features.rst:318 f699343ae7fe4f12a9d12f4692c22827 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:320 c8aec1fe7d574a789319e75cc64bd2e7 msgid ":issue:`Configuration validation using pydantic <138>`" msgstr "" ":issue:`Validation de la configuration en utilisant using pydantic <138>`" #: ../features.rst:323 706d590389f54c40ba1b219877946bb5 msgid "Stable version" msgstr "Version stable" #: ../features.rst:325 54c0d4cc60054a5ebe7456575b1b70c3 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:328 7807e2d92e264bc78fd5b6a3c63beb3a msgid "Security" msgstr "Sécurité" #: ../features.rst:330 577ab46503ee45e89daa8c42938635e5 msgid ":issue:`Password hashing configuration <175>`" msgstr ":issue:`Configuration du hashage du mot de passe <175>`" #: ../features.rst:331 a337cb0aac704dbca90dd70f1d68456d msgid ":issue:`Authentication logging policy <177>`" msgstr ":issue:`Politique de journalisation des authentifications <177>`" #: ../features.rst:332 39adf64b80444b27bb6f9f11747a6960 msgid ":issue:`Intruder lockout <173>`" msgstr ":issue:`Blocage des connexions après échecs <173>`" #: ../features.rst:333 3eeac7b1dec04fe9b990864b8810db50 msgid ":issue:`Password expiry policy <176>`" msgstr ":issue:`Politique d’expiration des mots de passe <176>`" #: ../features.rst:334 4ad4707b7d02481ab507ded2d410eb70 msgid ":issue:`Multi-factor authentication: Email <47>`" msgstr ":issue:`Authentification multi-facteurs : Email <47>`" #: ../features.rst:335 478b4f7b443f4f728085a2ea686b0248 msgid ":issue:`Multi-factor authentication: SMS <47>`" msgstr ":issue:`Authentification multi-facteurs : SMS <47>`" #: ../features.rst:336 fd624a7e3d404428830928ee05ec5348 msgid ":issue:`Multi-factor authentication: OTP <47>`" msgstr ":issue:`Authentification multi-facteurs : OTP <47>`" #: ../features.rst:339 a6acbc89a16a4fad8658fb33764830ad msgid "Packaging" msgstr "Paquets" #: ../features.rst:341 575b556539994d1190e50cbfd0133bd4 msgid ":issue:`Nix package <190>`" msgstr ":issue:`Paquet Nix <190>`" #: ../features.rst:342 f8facef108bf4d668509e57200f732bb msgid ":issue:`Docker / OCI package <59>`" msgstr ":issue:`Paquet Docker / OCI <59>`" #: ../features.rst:345 92825d26f07c4b718121c2784a9b6b81 msgid "And beyond" msgstr "Et au-delà" #: ../features.rst:347 ac17ddb06c4d400ebc190454535608c2 msgid ":issue:`OpenID Connect certification <182>`" msgstr ":issue:`Certification OpenID Connect <182>`" #: ../features.rst:348 1b80703b0f434fe6ade3288840b9cf3c msgid ":issue:`SCIM support <116>`" msgstr ":issue:`Support SCIM <116>`" #: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5 msgid "Lightweight Identity and Authorization Management" msgstr "Serveur d’identité et d'autorisations ultra-léger" #: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66 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 8b56e6fd5b374afbadf70d3371ad8538 msgid "User profile and groups management, Basic permissions" msgstr "Gestion de profils utilisateur et de groupes, permissions simples" #: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1 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 c4659885674a4b848e904b352c94b89c msgid "SSO" msgstr "Authentification unique (SSO)" #: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa msgid "OpenID Connect identity provider" msgstr "Fournisseur d'identité OpenID Connect" #: ../index.rst:46 f7caa27d43354246a89db295901976cb msgid "Multi-database support" msgstr "Gestion de multiples bases de données" #: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0 msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "PostgreSQL, Mariadb et OpenLDAP sont des citoyens de première classe" #: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d msgid "Customization" msgstr "Personnalisation" #: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e 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 b168d0612c04400e8b259edb581dc6c7 msgid "Developers friendliness" msgstr "Facilité de développement" #: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032 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 a4dbd4558bda425cab549061b5952854 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 574cb073f7584f8599a4cc129a337c4a 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 aa7436e81d0347aca49e76837769f92b 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 d3880ac07b8641fbb96a657384193437 msgid "Test the configuration file." msgstr "Test du fichier de configuration." #: ../../canaille check:1 8edd9caa824f4c3aa3298a3e0b28a418 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 15fc7dadf416460fb034401cb2298ddc msgid "Remove expired tokens and authorization codes." msgstr "Suppression des jetons expirés et des codes d'autorisation." #: ../../canaille install:1 f58f2f270c9642208409eab2a078aa10 msgid "Installs canaille elements from the configuration." msgstr "Installe les éléments de Canaille issus de la configuration." #: ../../canaille install:1 ee828128d3684eaea85f63a4d8efb295 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 df2355b792904bae8c2adfdc44e3abc1 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 25c273b3659241e5a58c4ccfc4d1aa62 #: 23e595a7ef3e40738c72964260d647d4 b9df5380bb904ef3b2c158886514b1f4 #: 810cab23bf5f4e0bbe5e403092b4739f 2b944a79e15441a28501202fb405ceec #: 337385bfcd154b46942fd5cc685e3c53 3c51398f5ef14fafac576c18c1938015 #: f7857604a6af425d92b5f49a3a571724 50ab489bedfa413b941eaca1514e779e #: 817fa12a167549c2b2dcda5cf8aca990 e144249ab1e4497a8e2b59433d28dd94 #: 8e13e364d31643ebbcbea2ec3c48cebb 93521a77f0084af9b274926a73bb1866 #: 979aef4626814c74bd3208394714d692 145d1e9e3fe74947b6695497c7f75b40 #: 7e7e2edd89534686997d302f673e5005 2d123fd2ca8b46dbb63d2f8cd67b8a9b #: 658ca5556e9b484884784c60355dcaba ecc2c5a1d0ee4d75a8dabc1519c9b46f #: e9427573b4fd4fea8baa73d3dfd6c901 msgid "Options" msgstr "Options" #: ../../canaille populate:1 757aacf7045343ac87f0d6123fe1e181 msgid "Number of items to create" msgstr "Nombre d'éléments à créer" #: ../../canaille populate groups:1 0e4a01018e724dc6a6ca0b638d66852a 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 b8f050417d3e4d5cb1abef74d5b23fef 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 27cbff2cac6c4d0ba3a881e593e6d298 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 a991a3b616044f2c932b1b5781575930 msgid "Read information about models." msgstr "Lit les informations concernant les modèles." #: ../../canaille get:1 ff29fb8d5ce14bc291589af023d25348 msgid "Options can be used to filter models::" msgstr "Les options peuvent être utilisées pour filtrer les modèles :" #: ../../canaille get:1 ebb9a30bb4ad418b937898f33eb3154d 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 3b7cec01bf904fbd95a74ecc629450d4 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 04713bc174844fbc90ffcd66309a32d7 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 3d85785b1e954ca48fb3600e102060dc 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 a7f5ed4db7ca4b6e990d3008e3df40dd 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 f28ab88c832f4310ba8fce02409a0471 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 243977ad7e504fedbd9646f89f934592 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 f1db85f49bf44d11a4bb25bef94995c7 msgid "Update models." msgstr "Mise-à-jour des modèles." #: ../../canaille set:1 81f6f6bde2db46419feea67dae446a01 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 2605d2f99fff4a3685e4acb6c7d08749 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 0e3e63095aaa4d10827812a9df412418 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 #: 272d0df08f904f519632f9fd2fe65385 2f9f07b54e574b76b44a885d2edcee5f 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 68201cc09cab43ae872191c5e1e0de51 #: 797f38593b54447e9abe286cd709857c 5f7b7a34cec54b7bb8813914c7b1da9e #: e2da0bdb8e364ad4ac3fa9a24108e9c9 7a653436ae5244b3915e22f7b337b441 #: 83d05fec78e043fcbf55d763d9664075 314878b93dce45baac9f4ab7248087c2 #: 59d47562162a44fcb07558824e722d39 811906b3e60e4f96bb46272adf7a2702 #: 9f85ada6864146db941a9b74f9dccdcc e15f98264ca3466aa879164b237471d4 #: 23cb9085c4df46c5919811da9786751a msgid "Arguments" msgstr "Paramètres" #: ../../canaille delete authorizationcode:1 client:1 consent:1 group:1 token:1 #: user:1 set cafe88a3ce2e428eac214691a4cceb5a 7b2ff0501238407193726c30d9eca3c9 #: 0ba51222ad4a4533b4b41b1757a35c64 ea0c5446d43d40c49f2b92c5b3541ce9 #: 9ac86d8bfd664383a081e3c1ede9c96e cd7e04caa435456ca0cf597a4cf2b866 #: 8d3a56d3d2d8434a96e06ee1db5c7f74 ee33e52044104463b44bf754ebc2bfd3 #: ec1ed557213c433f960f06a20c6305f0 79fcf662ca834cb9bad46e70395f5c0d #: a2446c9d8a43489f95b98774f9e95af2 c84e4574c2934d05b8911fbf5ff07255 msgid "Required argument" msgstr "Paramètre obligatoire" #: ../../canaille set client:1 8fd29a2556aa4939a91f5dff64f750f9 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 1fe7624c6c204327b3dea4672369b25c #: a507a2cde7be4e01b653d88b1143bcc1 msgid "IDENTIFIER should be a client id or client_id" msgstr "IDENTIFIER devrait être un identifiant client ou client_id" #: ../../canaille set consent:1 bc9887077625496493e99ffd14864f21 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 c40a621613bb4a57ae61d0bf635d4be1 #: 36c566d3a8d64d98b3139d1d408e6e33 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 24bf72192e064a11ba8f4408dc6cd2f2 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 f9bb7a0e3cb74e87bd9647b1d854d4c5 #: 2b44dcf76741473980e37c9fb1f972c9 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 ed64c8271e11430f829f537ac1c9fb03 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 5872d15912fa4904bc7429f1e6c4e4e5 #: 2e473a0a6bc4446eb92d334a50bad9e0 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 6db0783b2700470888b19c5bc6144406 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 e98462e8df9b4465af9a63c0bbf21546 #: d7cebb3763ed4824afd5b69c0a82f605 msgid "IDENTIFIER should be a user id or user_name" msgstr "IDENTIFIER devrait être un identifiant utilisateur ou user_name" #: ../../canaille create:1 3f6211fedcff4c49a1a05bb0d923b452 msgid "Create models." msgstr "Crée des modèles." #: ../../canaille create:1 dabf2e993c7e4f4e958ecf36a3a64cfa 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 88fc347eb7814471b13dc9a6b562dd75 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 428bc4494e3f4f6d875f2a701295e030 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 4f234a94637b44698b95c220d5c3d59e 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 741d27c2f5fb448da39ad4955e77518e 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 973102f969a0499692c7a2416dd0f469 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 4f44ca45c9f8454b950534b228e8ef12 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 35ce000da38042699e6154f107a3e814 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 fd758e22b29a4fd4b7f1c92876768518 msgid "Delete models." msgstr "Supprime des modèles." #: ../../canaille delete:1 42450f0ac5674556be84bcf4cc34c98f 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 4607eae8cf4c40a3a37bef887f2254a1 msgid "Delete a authorizationcode." msgstr "Supprime un code d'autorisation." #: ../../canaille delete client:1 01b65f6e61a848c490034606d1d00095 msgid "Delete a client." msgstr "Supprime un client." #: ../../canaille delete consent:1 b1dfdb33eba94dc2a71f9172cff74acb msgid "Delete a consent." msgstr "Supprime un consentement." #: ../../canaille delete group:1 6c79a439e1f54f4f81194cc8d6fc5944 msgid "Delete a group." msgstr "Supprime un groupe." #: ../../canaille delete token:1 1fb9fa8740c442ff82297d480fbba5ca msgid "Delete a token." msgstr "Supprime un jeton." #: ../../canaille delete user:1 b0298caa666647268cd204cbd1cccd4d msgid "Delete a user." msgstr "Supprime un utilisateur." #: ../references/configuration.rst:2 6c3d1ad364a84afb9586b1b62e42dedb msgid "Configuration" msgstr "Configuration" #: ../references/configuration.rst:5 fca2326d4bf84702b7d8d0f5d3a65f20 msgid "Load the configuration" msgstr "Charge la configuration" #: ../references/configuration.rst:7 51e2253170d4489ab9598217182b6f1d 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 1560e71d7b2d42aa8ec0accc06131b3d msgid "Configuration file" msgstr "Fichier de configuration" #: ../references/configuration.rst:12 0fc2b0bc764345caba3f9402376e279a 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:94 #: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37 #: 3626de52eeca4eecbda8f1d47354a80c f59eab2f20b542f1af3ae7e6e4856266 #: c1e56e5ab5ba40228c68cd9eb470348d 8acf4c15626e4f6897aa81c2e5e8ef42 msgid "config.toml" msgstr "config.toml" #: ../references/configuration.rst:26 4b63b3891e1c45788780ea1af554d1db 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 8cbac0cd9e3e4bc3ad5fc60d82180568 msgid "Environment variables" msgstr "Variables d'environnement" #: ../references/configuration.rst:31 b909831b5aed44a4b439b37701feabb7 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 fd22a354c18f4733b8b1962cfcbe2139 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 f12f0cbb606e4627be2fa3b2a895f162 msgid "Environment file" msgstr "Fichier d'environnement" #: ../references/configuration.rst:42 434c11ee0d6a4a118f9b8802d407d447 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 83d91b20c3204d09b61a4a6de8c84769 msgid ".env" msgstr ".env" #: ../references/configuration.rst:63 8fc48610072c4e248c494befe2a4c8f6 msgid "Configuration methods priority" msgstr "Priorité des méthodes de configuration" #: ../references/configuration.rst:65 d3fdde7c8d9841e49e92bcba763e33d8 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 b79bfecad485446b85a8866657222448 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 63800f5a14d44e1fa3ed0266e19f5482 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 e8e7a0f78d68479a9586036adf25e183 msgid "Parameters" msgstr "Paramètres" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3 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 fffc30ea67ab47d99472750172be2a29 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 ae9ceb139bfc47f8b383dec852b507c2 msgid ":doc:`Flask `" msgstr ":doc:`Flask `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277 msgid ":doc:`Flask-WTF `" msgstr ":doc:`Flask-WTF `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd msgid ":doc:`Flask-Babel `" msgstr ":doc:`Flask-Babel `" #: ../../canaille/app/configuration.py:docstring of #: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa msgid ":doc:`Authlib `" msgstr ":doc:`Authlib `" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 #: 4309008dba2c4aa79584299f19987ac4 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 #: f8cb9ba68ed14b818c2fb2bcfbffb16a msgid "This enables debug options." msgstr "Cela active les options de débogage." #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 #: 553b378e895a4b74aa242c08cd29450f 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 #: cb2cc7437e4a4d3c90895c4148186b25 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 #: 530f78ce6f4842c983c10b38fe4c4b93 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 #: 42e179fea274407eb26dd67e4a6d14a5 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 #: b16e239dce5c4f199a2fba1707c82d1a msgid "You MUST change this." msgstr "Vous DEVEZ le changer." #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 #: 0f0f60195f334cf597f67857740b2ace 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 #: 39edb89e79af4a10a154a5c42d51e86e 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 d831c1b108eb4e96bb11a6ddc92ed45e 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 a51801e81d914eb3bfe1fa4e649133c1 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 #: 89de24471b434051a4a84e39bc47aded 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 #: 1f85af06bed64d9da4417c6e6f7e244e 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 #: 56ce67b55d3b4d8eba9a07b4feed2587 d9b0f4816c2644679233ec3b797c2fc4 #: ea4face810944c2e934e593ccfe99a84 msgid "..code-block:: toml" msgstr "..code-block:: toml" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7 #: dc73b62baf4f465598787ebb33191c7b 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 #: 56d15bcfdbcc4556a3848702228b970f 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 #: e07c109febe5434e95b532da3dadf454 msgid "Administration email contact." msgstr "Contact e-mail de l'administration." #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 #: 7a5e93e36d434fcb96b85beea8f1adc6 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 #: 478effaaf0da47a1a31b996b06b8c650 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 #: b82dc4dc6818409eb5fa256462c4ac19 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.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 #: cb4478169a09415a9f17e3df16239ecd 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 #: b70cf94037df4bd1ae8a74acc370b3a5 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 #: 6ee78ec59c21456e8761778153d4f700 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 #: 979b9444b9c04354add2e781bd324752 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 #: 8931d55b0c264be0982765f04f83ae38 msgid "You favicon." msgstr "Votre favicon." #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 #: 7991e0eec12c457dad401f49b34ad835 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 #: 8e19d8a485fe456191ab16773f84483e 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 #: dffe6e218f4f48e981ac5a9fa9a21e37 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 #: b200882d189b46f3a83f217ff8b59551 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 #: 2dc15bd9ea8a4386b7202dbdbab5de36 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 #: c6aaae8719c34838aec54b8fea2d5101 msgid "Defaults to 2 days." msgstr "Deux jours par défaut." #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 #: 70d5c7fa2dfa4e6695c84f2b4ab547c9 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 #: 1e1cda3ec4c04a4aaeb2069ccc8f376f 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 #: 6818acfcf652444db48e1c61878b6bb6 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 #: 63800f5a14d44e1fa3ed0266e19f5482 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 #: 62d20006362a45ca8ff0f0a8fbb82bf4 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 #: 44c6ded187ab4e44aac024c2cdb85303 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 #: 6e269ac8b9144e9699a5856c375d7a37 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 #: ba8b9d6794e2459492abfa778736328a 4d1ff118c1a44a50a962e527d1a8e2a2 msgid "For example:" msgstr "Par exemple :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14 #: 2eedaa2fba4545698dfd11007a2e0c9c 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 #: 4b44c1c288c3433fb0edba70dd9c1343 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 #: 851b93aeb7b54426872a6b4a2ed973b9 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 #: 88cd67b65c954dc7a261df77d1823cda msgid "User password maximum length." msgstr "Longueur minimum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 #: 435e72d3f33642da9016c521a88f15e6 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 #: b15846ed6b2a4ad49bbb19cde177023a msgid "User password minimum length." msgstr "Longueur maximum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 #: 820670101aa7436eb014aa61e1c1a7eb 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 #: a41944f564f5438fb8572449b5d13995 msgid "Your organization name." msgstr "Le nom de votre organisation." #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 #: d61df1326c344b45b6d1c7b24e12b207 msgid "Used for display purpose." msgstr "Utilisé à fins d'affichage." #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 #: 4501d236ecc142e2ad045599ee19ac19 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 #: 0b234cbe21824f31b27a3b3c893fd37b 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 #: 2eab9799f4c0478aa5479f62e826b170 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.SMTP:1 #: 79d66e38b7d94974a21563fac9a58149 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 #: 41d396512e7d40b28223841b21f8ed09 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 #: e327a089ace6495285f29ade69226d1b 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 #: 641146b41ecc461d9fa7280687a462d9 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 #: 421c3427b77b4cc4af9619406463c1c2 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 #: d8d80524578e4697a5bb9f7e83c7d113 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 2f0178f9dbe747c695273f89e42da8c2 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 598e1ca109154455ad98b50d8853891d 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 #: 8ab9425f8a6b42dc9097b69e3eaa334a msgid "The sender for Canaille mails." msgstr "L’émetteur des emails de Canaille." #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 #: f8f5f1377e5147d4baf9782ff95b4aa3 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 #: 9059b29ae44849efb180f3b2da128c19 msgid "The SMTP host." msgstr "Le serveur SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 #: 0bf8168dc84545cb810a8f25bbb4abf7 msgid "The SMTP login." msgstr "L’identifiant SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 #: ec1b4f81894e45f5abcae80dfaee87a9 msgid "The SMTP password." msgstr "Le mot de passe SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 #: 514104bb8bcc4331b1e7fff12e550ba3 msgid "The SMTP port." msgstr "Le port SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 #: f4e65d7811cb43d5b7d86ec07af2576d 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 #: bd8dac0e38f14b6583d024fca1768b7d 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.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0 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 733df203b313404eb417f40ed8708a2e 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 "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 #: a14933a4c7244138bb59a43c9d288955 msgid ":attr:`FILTER` can be:" msgstr ":attr:`FILTER`peut être :" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 #: d0f71dfab2ec47fca2184767e58eec59 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 #: e33849bb0c954228951cb18c56a9e70d 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 "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 #: 2ed07fdd7da94cfd90167b2d1f4cb4eb 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 "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 #: 657a11f5921947b88bfc47cf8affbe00 msgid "Here are some examples::" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 #: df95253032c647229909e34386b1e5cc msgid "" "A list of :class:`Permission` users in the access control will be able to " "manage." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:8 #: 700fa74aeea44e9aa6dd204df7870e90 msgid "" "PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", " "\"delete_account\", \"impersonate_users\"]" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 #: ab801708874c4b1bb937f62969614340 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to read." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1 #: 384d296240314638a1f1b6b7719c6bb6 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to edit." msgstr "" #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.Permission:1 f9eec27878c64e608b2783b5e89172ed msgid "The permissions that can be assigned to users." msgstr "" #: ../../canaille/core/configuration.py:docstring of #: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131 msgid "" "The permissions are intended to be used in :attr:`ACLSettings `." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 #: 370dec6e2b8049d0b7353b085340b102 msgid "Allows users to delete their account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 #: f7be239942c94727a948d27c6c93408e msgid "" "If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, " "users can delete any account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1 #: 1f716bb0d0ec481ab5dff0a02f5c9e37 msgid "Allows users to edit their own profile." msgstr "" #: ../../docstring of #: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 #: c9018bb9aceb40bc9536cc03320c5bad msgid "Allows users to take the identity of another user." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 #: 1072c369689f4922997715eb5337795a msgid "Allows group edition and creation." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 #: 014b4028381e4f4d8dcc8dc8a5e3a26f msgid "Allows OpenID Connect client managements." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 #: ff39df8edc7143c7b23d22bb773b5198 msgid "Allows other users management." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 #: c7e27c4618a9460e8373c17f558f8d1e msgid "Allows OpenID Connect authentication." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef msgid "OpenID Connect settings." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 #: 092f0d4259994eb8b834b256a8f72453 msgid "" "Whether a token is needed for the RFC7591 dynamical client registration." msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 #: 506f1fcd0f424df4bdafd9a69307f645 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 "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 #: 30861c9a3a294daf8105dd5ac9007282 msgid "A list of tokens that can be used for dynamic client registration." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 #: 04e054bb3d094e4ea8f23ab6fdec9bf6 msgid "JSON Web Token settings." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 #: 95b1ee4fd0da4ec2b30beb3e25944cd9 msgid "Force the nonce exchange during the authentication flows." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 #: de680082bc4546a6883ff4826df0067b msgid "This adds security but may not be supported by all clients." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTSettings:1 750fbe7d77954d87855e68d3199c81e7 msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTSettings:3 03945dc4192c4f7abefbcd2b5c7c2bd9 msgid "You can generate a RSA keypair with::" msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 #: d65a4aaf4cb64130ac59c97cddcffb0b msgid "The key algorithm." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 #: c0c460480db94b1a9ebceea06528d426 msgid "The time the JWT will be valid, in seconds." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 #: 6501426215db4b27b7b5d217954ca6be msgid "The URI of the identity provider." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 #: 3e338458e42e405fb025bfcfc53688f4 msgid "The key type." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 #: 27a15f235d63447884175edd85e55cf4 msgid "The private key." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 #: 29d2c1b105e74d46b80db01b78954711 msgid "" "If :py:data:`None` and debug mode is enabled, then an in-memory key will be " "used." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 #: e88605c89e4b47989186fd27e5aff172 msgid "The public key." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:1 #: 235687b99f2c408aaf1c063061975f77 msgid "Mapping between the user model and the JWT fields." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:3 #: ebe87d5efdaa458b97451b5ab4fdeb3d msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:1 #: b7ccdac0ebd14f47be2d77ea52bd75d7 msgid "Settings related to the SQL backend." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:3 #: 07e03b184cb54e0a92ca3a33033da5cd msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 #: 4d1ff118c1a44a50a962e527d1a8e2a2 #, fuzzy #| msgid "The ACL name can be freely chosen. For example::" msgid "The SQL server URI. For example:" msgstr "Le nom des ACL peut être choisi librement. Par exemple :" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6 #: 4bb9ca2e412a461caacf1a146582247f msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\"" msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:1 #: e656ae1d120e45109618f653d29d845e msgid "Settings related to the LDAP backend." msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:3 #: 9877879932a3406b87f9893f4a6bf8f3 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 #: 96d852cc067c459cabfcc201a7271cf0 msgid "The LDAP bind DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 #: 084f3814a8604375aed794d649845045 msgid "The LDAP bind password." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 #: 8f56c7d2bfb348afbcc36de24398dfac msgid "The LDAP node under which groups will be looked for and saved." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 #: 58cf9c9e87464b709e4e8508577fbd63 msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 #: 3b6a2121763e4302aa1780cb6d51d9d6 msgid "The object class to use for creating new groups." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 #: 10d8bb8232bf4b30b6c631847ea70b2b msgid "The attribute to use to identify a group." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 #: 688132cb0d4e4f27973a02406d50edaa msgid "The attribute to identify an object in the Group DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 #: 4428b1de4b664a55b077caa3969d6769 msgid "The LDAP root DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 #: 5a175d6a66e445458ee6bc473d614a45 msgid "The LDAP connection timeout." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 #: 3172b80b5b86434699f226a3b713c52f msgid "The LDAP server URI." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 #: 0e03c3262f504b79b84847041ee442e5 msgid "The LDAP node under which users will be looked for and saved." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 #: e1d16301542b40929d9e65c9a949b303 msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 #: 92a1f8f8665848c9aaf4d5f9f1f3b6b7 msgid "The object class to use for creating new users." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 #: 228fcd64b4704fa0b4ea52ab85f48f08 msgid "Filter to match users on sign in." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 #: f61c66f7c0e94e67ae5a4ce5de0dc548 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 "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 #: d49e7765b3d6440d9fdcb0ecb18c06c1 msgid "The attribute to identify an object in the User DN." msgstr "" #: ../references/configuration.rst:90 c4674c5a1b434e81944983c7ec2fb0f1 msgid "Example file" msgstr "" #: ../references/configuration.rst:92 87c3dcb2ef5a4f649ec0fa9005449a79 msgid "Here is a configuration file example:" msgstr "" #: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e msgid "References" msgstr "" #: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c msgid "Data models" msgstr "" #: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217 msgid "" "This reference details the data models used by Canaille. This is mostly " "useful for developers." msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 #: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 msgid "Bases: :py:class:`object`" msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9 msgid "The backend model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2 msgid "" "It details all the methods and attributes that are expected to be " "implemented for every model and for every backend." msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model:1 9f46b7e1801e4a57a346c598161cbdac msgid "The model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b msgid "It details all the common attributes shared by every models." msgstr "" #: ../../docstring of canaille.backends.models.Model.created:1 #: 8685782e932b476a8b6f80256ebca659 msgid "" "The :class:`~datetime.datetime` that the resource was added to the service " "provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:1 #: 112d9fd0a032418682875fe5f5685fc8 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 "" #: ../../docstring of canaille.backends.models.Model.id:5 #: fe3e4be3b44b43ebbbd11fe81fdc2613 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 "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de msgid "" "Returns a unique value that will be used to identify the model instance." msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.Model.identifier:4 570af0c54d8a4b9ca5e1180a154578c6 msgid "" "This value will be used in URLs in canaille, so it should be unique and " "short." msgstr "" #: ../../docstring of canaille.backends.models.Model.last_modified:1 #: a64d636f5ae843698bae18cbc27adae5 msgid "" "The most recent :class:`~datetime.datetime` that the details of this " "resource were updated at the service provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.last_modified:4 #: 1478742051c64d3c8e8cb44b101c2337 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 "" #: ../../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 31058fb082044629ab68e330524f37d4 #: 963c873782434df6bc7a6314e406858e ec3b5ed7c8e94f728377c74990bc94e6 #: fac7abe230f5419eadc03a768bc0872c 1269097fb76b42c29248af6773628ec4 #: 25aa111736e44c4ea89c97864274d146 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 #: d8d4759602c44e048e0d4f053dc5c895 msgid "" "User model, based on the `SCIM Group schema `_." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:1 #: f557ae62a380458ca1e212165ff7ebd2 msgid "A human-readable name for the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:3 #: canaille.oidc.basemodels.Client.client_id:1 3a782effac4c44f2b4084280c168f909 #: 038998149ec146249f6cd7993b6ea7c2 msgid "REQUIRED." msgstr "" #: ../../docstring of canaille.core.models.Group.members:1 #: 83c94299de834bb7899fc5d919567ddf msgid "A list of members of the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.members:3 #: f8395458983d4efd966c1f2bd3e771dc 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 "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 #: 3de74c338e4e45d4ada0909e1d6a2c1d 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 "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 #: dd44c29c7f88458e923a6bdc89ff4bd8 msgid "" "Whether or not the user has the :class:`~canaille.core.configuration." "Permission` according to the :class:`configuration `." msgstr "" #: ../../docstring of canaille.core.models.User.department:1 #: d09b761f1c3d4bcda3c7c5841cb86768 msgid "Identifies the name of a department." msgstr "" #: ../../docstring of canaille.core.models.User.display_name:1 #: 7a92e34396f14701a901c6342ba43372 msgid "The name of the user, suitable for display to end-users." msgstr "" #: ../../docstring of canaille.core.models.User.display_name:3 #: e89fec83b2eb42deaac70264489240e3 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 "" #: ../../docstring of canaille.core.models.User.emails:1 #: 5383ce6b712040c4a0bba18c1bbef93d msgid "Email addresses for the User." msgstr "" #: ../../docstring of canaille.core.models.User.emails:3 #: dcbfe09f878141a4bd5a20b9e2d9b6da 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 "" #: ../../docstring of canaille.core.models.User.employee_number:1 #: 6cc0c003bd234628a0bc0a0c27cccaee msgid "" "A string identifier, typically numeric or alphanumeric, assigned to a " "person, typically based on order of hire or association with an organization." msgstr "" #: ../../docstring of canaille.core.models.User.family_name:1 #: db1cbc1b88a44555ac36431d951ed1bc 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 "" #: ../../docstring of canaille.core.models.User.formatted_address:1 #: 19bb2c52eb2747a8bae2df988b0f3226 msgid "" "The full mailing address, formatted for display or use with a mailing label." msgstr "" #: ../../docstring of canaille.core.models.User.formatted_address:4 #: aaf2f2de713c468a8388bd976795c621 msgid "This attribute MAY contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.formatted_name:1 #: 6e02928b97a944b5929f0002f9c7b70c msgid "" "The full name, including all middle names, titles, and suffixes as " "appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")." msgstr "" #: ../../docstring of canaille.core.models.User.given_name:1 #: 0adf168d41024021aca8fcbf22e2b575 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 "" #: ../../docstring of canaille.core.models.User.groups:1 #: ef755a48c32047c187a2405190a88b07 msgid "" "A list of groups to which the user belongs, either through direct " "membership, through nested groups, or dynamically calculated." msgstr "" #: ../../docstring of canaille.core.models.User.groups:4 #: 0d7136476f7649ddad322de96971e938 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 "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.has_password:1 034f9fa73a5d455382726ac4b448c136 msgid "Check whether a password has been set for the user." msgstr "" #: ../../docstring of canaille.core.models.User.locality:1 #: 3d50110e459f4ba3b06af609c8f2bef8 msgid "The city or locality component." msgstr "" #: ../../docstring of canaille.core.models.User.lock_date:1 #: bc9386fb2f7c41cc82308c45d919feb9 msgid "A DateTime indicating when the resource was locked." msgstr "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.locked:1 8f227ede6e584fda946d50e86049afcb msgid "Whether the user account has been locked or has expired." msgstr "" #: ../../docstring of canaille.core.models.User.organization:1 #: 39b14adbf8ad42b39c2cdd9fb0fcf96c msgid "Identifies the name of an organization." msgstr "" #: ../../docstring of canaille.core.models.User.password:1 #: a4ec9a6f72834b47b82db401e1ebed2f 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 "" #: ../../docstring of canaille.core.models.User.password:9 #: 4a4c0608f0ac4739bbb358ebfffbc94c msgid "" "Prepare the cleartext value for international language comparison. See " "Section 7.8 of [RFC7644]." msgstr "" #: ../../docstring of canaille.core.models.User.password:12 #: 770cfb12f1c943188e281ef2e527ccb2 msgid "" "Validate the value against server password policy. Note: The definition and " "enforcement of password policy are beyond the scope of this document." msgstr "" #: ../../docstring of canaille.core.models.User.password:16 #: 736bf805f27d4dfb8c1292b5afaca0be 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 "" #: ../../docstring of canaille.core.models.User.password:20 #: 605f5a91894e42ee9d14686ae2f346cd 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 "" #: ../../docstring of canaille.core.models.User.password:28 #: 198ed93545fe467ea461cef9a184362c 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 "" #: ../../docstring of canaille.core.models.User.password:32 #: becd82e6d299471d94ab4906ce105218 msgid "" "Prepares the filter value for international language comparison. See " "Section 7.8 of [RFC7644]." msgstr "" #: ../../docstring of canaille.core.models.User.password:35 #: ca91b3fdd3ae434dbb47d55b73ccbcb2 msgid "" "Generates the salted hash of the filter value and tests for a match with the " "locally held value." msgstr "" #: ../../docstring of canaille.core.models.User.password:38 #: 0c4d62a31f2d442981432c2f841abdac 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 "" #: ../../docstring of canaille.core.models.User.phone_numbers:1 #: 636757499c76498ca8a1cbad6ea4fbb7 msgid "Phone numbers for the user." msgstr "" #: ../../docstring of canaille.core.models.User.phone_numbers:3 #: dabf654512714fda965fded70f74aeac 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 "" #: ../../docstring of canaille.core.models.User.photo:1 #: 27d8a36d06ce46858ed9974cfb3a9a9b 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 "" #: ../../docstring of canaille.core.models.User.photo:5 #: 8d0e8ca2555c48b0aad26fa7fdb102cf 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 "" #: ../../docstring of canaille.core.models.User.postal_code:1 #: ca9c10bc74eb4a2b90365bbd3473b1be msgid "The zip code or postal code component." msgstr "" #: ../../docstring of canaille.core.models.User.preferred_language:1 #: 5c7d29d6e6334161b21068010f566af2 msgid "" "Indicates the user's preferred written or spoken languages and is generally " "used for selecting a localized user interface." msgstr "" #: ../../docstring of canaille.core.models.User.preferred_language:4 #: c45f7e1feb59446daa9dbea7cce24305 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 "" #: ../../docstring of canaille.core.models.User.profile_url:1 #: 267adc8c4ecf4750a9db3464eb2b8573 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 "" #: ../../docstring of canaille.core.models.User.profile_url:5 #: 7f227419ab034b3da8303fe94affeb6c msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." msgstr "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.readable_fields:1 e064888816ad4e228797af005daa0c1b msgid "" "The fields the user can read according to the :class:`configuration " "` configuration." msgstr "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.readable_fields:4 d51b5c9a3058444187f7f52aafcc57ce msgid "" "This does not include the :attr:`writable ` fields." msgstr "" #: ../../docstring of canaille.core.models.User.region:1 #: 7781da46bb4f45c19d4061a73efd1860 msgid "The state or region component." msgstr "" #: ../../docstring of canaille.core.models.User.street:1 #: e15de46ed1a745e580399d0bf40e96b8 msgid "" "The full street address component, which may include house number, street " "name, P.O." msgstr "" #: ../../docstring of canaille.core.models.User.street:4 #: 663a1b080f3646f5bbc30492beccda49 msgid "" "box, and multi-line extended street address information. This attribute MAY " "contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.title:1 #: 96571ab69f47443087e9de7cdf2af3ef msgid "The user's title, such as \"Vice President\"." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:1 #: 5a41c74aee6040d78b20e68feedbe91d msgid "" "A service provider's unique identifier for the user, typically used by the " "user to directly authenticate to the service provider." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:4 #: 305c46ac8a734b4fb513c2da9c0bd78d 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 "" #: ../../canaille/core/models.py:docstring of #: canaille.core.models.User.writable_fields:1 f99945951b7f476484908fef5eb9bee4 msgid "" "The fields the user can write according to the :class:`configuration " "`." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.AuthorizationCode:1 #: 470216f2acc344a9bc4fe9408cf38b4c msgid "OpenID Connect temporary authorization code definition." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b msgid "" "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " "Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 #: 9630f3464163481993a425c28c308969 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 "" #: ../../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 #: 05d209d5010c49c99c2e88fd070c5595 b2cf2367cc664e0dbd0d237edd72509a #: 9da6221c08544d5b9c043002d77e9a04 msgid "OPTIONAL." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 #: fb189c4d73054f559edc1f71e252013c 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 "" #: ../../docstring of canaille.oidc.basemodels.Client.client_name:1 #: 90b1171c71784152b30c868ce6a69e92 msgid "" "Human-readable string name of the client to be presented to the end-user " "during authorization." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_name:4 #: 2f438f6285d3455f81459326d3ed2a3d 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 "" #: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3 #: b659e17a18ae49d6b460ce4bfd3ef720 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 "" #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:1 #: fe3efeb714e642038fddaee69b85a240 msgid "REQUIRED if \"client_secret\" is issued." msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:3 #: 8224ead887464588a9b93fc320780f69 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 "" #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1 #: c7ec8c5c04bd41fa87825f3d6f4e71b3 msgid "URL string of a web page providing information about the client." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 #: 8be313c7ec5848419e7a0062beefd60c 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 #: 133418eefb1d484ba26f492838063c04 msgid "" "Array of strings representing ways to contact people responsible for this " "client, typically email addresses." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.contacts:4 #: 4c4d89f737af445da4e7eb5882887e00 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 #: 5105e93451e946fea6c3fd0b09c19683 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 #: 471bb398e08d45d588f320d2c25cb025 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 #: c1785e60703f46e5a3a6e7131ba26894 msgid "" "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 #: 99ec3801466340bd83367ab92a351ac3 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 #: a62c7b8185ee4863aec423c5fe445ae5 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 #: 2fd298fce6974e4da2f670da31280955 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 #: 2fb0f1de8f46429eb46970d53c954d91 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 #: dd4f8e0551e048d599a3f95740ea3cf1 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 #: 241768369988480b8f79cae93fa06ff4 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 #: 779d5b8c355f4e469d0880100f197dbd 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 #: 786a840808f042fdb3a97eb1bd7f7a98 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 #: 29bbb97b4b0545df84cf23ec1e6b14cf 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 #: 4021b5fbeabb464d938a3903ef7e718b 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 #: 723f17b9b9df481394bcff341b2730b1 msgid "URL string that references a logo for the client." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 #: 6b1a034be4f248e98f185c7a0ef2c3b5 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 "" #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1 #: 92446c1f45fc4da9bf18fed32b046f26 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 "" #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5 #: canaille.oidc.basemodels.Client.tos_uri:5 470f3a6ebe5a470d97207d2d724d7a50 #: d5127be355104a9b8e44b59d71a4e3ce 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 #: 80775602163f4c4eae2aa73101fb4a59 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 #: 9864218626a9495d837ca07ecabe2e83 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 #: a1f4e7a342764daf9b91f5c582e0d704 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 #: 2b675d8a76b64442baaf96288a99145f 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 #: 3f19f3d3bf244c669c336230f4e548e5 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 #: 8be17e9ef4c642a0a227974a40450da2 msgid "" "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 #: 3be1d7f3ab82407ebcf77c9ad6294934 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 #: 99bf5a0735f3490eb63943c7926eb165 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 #: d9c4d3be73ae454fbc08c0452c4cafba 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 #: ee3bd26091c94945b33584e781c19370 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 #: 8fd0e02b12354b72b7175ade2536eac3 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 #: 2d69ee9b36d244ec98fb0ca3135ac74f msgid "" "A version identifier string for the client software identified by " "\"software_id\"." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 #: 0da082aab3354aad8196b87ea111796f 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 #: e666c285e9d0483a8b06ed07b9596fd1 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 #: 75019e0ffa134fe0a48fc885130c97ee 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 #: 6d1fcab0de3a41e18101687e93c45444 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 #: 75493a43244c4357842d2fdfa745f330 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 #: 070320a7585e4d9ba744cbaed1593208 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 #: 95cc7b66c6da48e5a189a32abaa9c24e 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 bf6c359aadbc4404ba1967b1b8d26255 msgid "Long-term user consent to an application." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.Token:1 a20eaa516c854599a62222141346d76b msgid "OpenID Connect token definition." msgstr "" #: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b 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 4d8d9b1634cf47eca9c118b3af6173df 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 5383f833c2634382a279cf9c2e9efff5 msgid "" "This backend is only for test purpose and should not be used in production " "environments." msgstr "" #: ../tutorial/databases.rst:18 5c04f9416e954990a51ad770b994755d msgid "" "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." msgstr "" #: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca msgid "" "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " "instance:" msgstr "" #: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96 msgid "" "You can find more details on the SQL configuration in the :class:`dedicated " "section `." msgstr "" #: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91 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 fcbc8501c455465daa5142894408bb38 msgid "" "You can find more details on the LDAP configuration in the :class:`dedicated " "section `." msgstr "" #: ../tutorial/databases.rst:55 2c710def18bc46539b2962ee1bde2bf6 msgid "" "Currently, only the ``inetOrgPerson`` 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:60 b7014bf888504dcc865871e8275190f6 msgid "OpenLDAP overlays integration" msgstr "" #: ../tutorial/databases.rst:62 a67abbc0745e4c7e9353697969a4fbab msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "" #: ../tutorial/databases.rst:65 b1eebe57d90648b3b24cb48cb49c5436 msgid "memberof / refint" msgstr "" #: ../tutorial/databases.rst:67 6bb596696373483ab0a52f0e8169ab9e msgid "" "`memberof `_ and `refint `_ overlays " "are needed for the Canaille group membership to work correctly." msgstr "" #: ../tutorial/databases.rst:71 ../tutorial/databases.rst:94 #: bff8a12ffd4b4d179d6938a046810186 1e58076e5c2148f8a2c71c79bb51c74a msgid "Here is a configuration example compatible with canaille:" msgstr "" #: ../tutorial/databases.rst:73 d8858049d6d44b7cae4cbd659f9f8ba2 msgid "memberof-config.ldif" msgstr "" #: ../tutorial/databases.rst:77 830059290ddc4cf1b2249c45fc303b98 msgid "refint-config.ldif" msgstr "" #: ../tutorial/databases.rst:81 ../tutorial/databases.rst:104 #: 4070700e524f481ba82662576453c6b3 41e7874f5db94dda8cd74ebed2fddc7c msgid "You can adapt and load those configuration files with:" msgstr "" #: ../tutorial/databases.rst:90 e37e96d3eac048e191b4da59788b6096 msgid "ppolicy" msgstr "" #: ../tutorial/databases.rst:92 88ed660b0098483fa77e880febad6b52 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:96 0194f8cb96554ed9a209784cd1a5a10e msgid "ppolicy-config.ldif" msgstr "" #: ../tutorial/databases.rst:100 09776d76a5c54f6eb7d79e15a0dbed82 msgid "ppolicy.ldif" msgstr "" #: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb msgid "Deployment" msgstr "" #: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110 msgid "Application service" msgstr "" #: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5 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 cf41e4599bea477a8b6742ed38c09555 msgid "gunicorn" msgstr "" #: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff msgid "Write a gunicorn configuration sample file." msgstr "" #: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b msgid "uwsgi" msgstr "" #: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4 msgid "Webserver" msgstr "" #: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4 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 40d9837c5cdd4c9faf94797e578e409d msgid "Nginx" msgstr "" #: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e msgid "Apache" msgstr "" #: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e msgid "Recurrent jobs" msgstr "" #: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334 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 3a91c9769ca04ed289ef4e08d71c84e0 msgid "Webfinger" msgstr "" #: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad 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 d4f07f118d4443bcbd44e55144cf4d1f 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 b305def4f6e74643b1c47e5491e46126 msgid "Here are configuration examples for Nginx or Apache:" msgstr "" #: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce msgid "Nginx webfinger configuration for a top level domain" msgstr "" #: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637 msgid "Apache webfinger configuration for a top level domain" msgstr "" #: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a msgid "Create the first user" msgstr "" #: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f 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 40de96b13f0b46ba88769f9f0c91bece msgid "Tutorial" msgstr "" #: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544 msgid "Installation" msgstr "" #: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613 msgid "" "Canaille is under heavy development and may not fit a production environment " "yet." msgstr "" #: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499 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 de05573555224e75869a68ac41471c97 msgid "Get the code" msgstr "" #: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5 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 5e8dbf51cc8e401d8e7f2738c4c1e500 msgid "Extras" msgstr "" #: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6 msgid "Canaille provides different package options:" msgstr "" #: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb msgid "`front` provides all the things needed to produce the user interface;" msgstr "" #: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" #: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131 msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "" #: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "" #: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f msgid "" "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" #: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122 msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "" #: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2 msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" #: ../tutorial/install.rst:35 dfd39313c050407193deac1f01f23e54 msgid "`all` provides all the extras above." msgstr "" #: ../tutorial/install.rst:37 3d0f7f47cc1a469e9762578aed91f002 msgid "They can be installed with:" msgstr "" #: ../tutorial/install.rst:44 b7732a260ca84ba3a4130bd6cb0d1619 msgid "Configure" msgstr "" #: ../tutorial/install.rst:46 86df5b7acf954ddfbb2982dbe0a51da1 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:54 042753d9c5704f21b0da35d38a17a620 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:57 a87138181fe64cd9891206619cad6d2d msgid "Install" msgstr "" #: ../tutorial/install.rst:59 2a7cde9a8ef54f6fb6b527734b5e471d 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:68 faefbbda355349e19671492f478d3153 msgid "Check" msgstr "" #: ../tutorial/install.rst:70 ab77edb446f44686bf26ef04fbf3dc7d msgid "" "After a manual installation, you can check your configuration file using " "the :ref:`check command `:" msgstr "" #: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 msgid "Troubleshooting" msgstr "" #: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934 msgid "The web interface throws useless error messages" msgstr "" #: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de 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 358b28e47d4a4b48ba2bde7ddd4bc5f3 msgid "How to manually install LDAP schemas?" msgstr "" #: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c msgid "" "Schema installation can be automatically done using the :ref:`install " "command `." msgstr "" #: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154 msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "" #: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6 msgid "" "The `deprecated `_ " "one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" msgstr "" #: ../tutorial/troubleshooting.rst:21 2681e5ed98de4633ab3e958980570c61 msgid "" "The new one, based on a configuration directory (generally ``/etc/ldap/slapd." "d``)." msgstr "" #: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09 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 7fa64ce5f9834bfc8a84a6b147776135 msgid "Old fashion: Copy the schemas in your filesystem" msgstr "" #: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f msgid "New fashion: Use slapadd to add the schemas" msgstr "" #: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" #: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772 msgid "How to manually generate the OIDC keypair?" msgstr "" #: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88 msgid "" "The keypair generation can be automatically done using the :ref:`install " "command `." msgstr "" #: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984 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 dde73820d8ff46128f0ae5a245d4f212 msgid "Use cases" msgstr "" #: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9 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 0c06bc8fc0754db6bdfbae05fe718b2e msgid "OpenID Connect provider on top of a LDAP directory" msgstr "" #: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6 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 35bb9bbb50064dc7a5383c9d5371adfd msgid "Profile edition of LDAP users" msgstr "" #: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3 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 22ec6d0c58ed413b80cd6aca23f637b6 msgid "Password recovery with a LDAP directory" msgstr "" #: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd 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 f44f325b29594fc7b31521d259e27d5f msgid "A lightweight IAM for unit testing" msgstr "" #: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b 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 5b9b8e07b9154150a105088cc630ce6a msgid "A lightweight IAM for developing" msgstr "" #: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51 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 e594e15fba204d65a3f483c36e7c0aab msgid "A lightweight IAM for CIs" msgstr "" #: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24 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 8a37de08f6594334a3ba6ed2f9a3b71e msgid "A CLI to quickly edit LDAP directory users" msgstr "" #: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2 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."