diff --git a/doc/locales/fr/LC_MESSAGES/doc.po b/doc/locales/fr/LC_MESSAGES/doc.po index ac9067e6..5f925231 100644 --- a/doc/locales/fr/LC_MESSAGES/doc.po +++ b/doc/locales/fr/LC_MESSAGES/doc.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: contact@yaal.coop\n" -"POT-Creation-Date: 2025-01-08 17:04+0100\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-10 12:34+0100\n" "PO-Revision-Date: 2025-01-10 09:00+0000\n" "Last-Translator: Éloi Rivard \n" "Language-Team: French `_, and this project adheres to `Semantic Versioning `_, et ce projet adhère à la politique de `versionnage sémantique " "`_." -#: ../../CHANGES.rst:2 c415689d242946298da972c97d5bb0c4 +#: ../../CHANGES.rst:2 8e30b80f3f94498da6f59c6f63a94ec5 msgid "[0.0.58] - Unreleased" msgstr "[0.0.58] - Inédit" -#: ../../CHANGES.rst:5 ../../CHANGES.rst:22 ../../CHANGES.rst:56 -#: ../../CHANGES.rst:84 ../../CHANGES.rst:103 ../../CHANGES.rst:110 -#: ../../CHANGES.rst:129 ../../CHANGES.rst:189 ../../CHANGES.rst:215 -#: ../../CHANGES.rst:230 ../../CHANGES.rst:279 ../../CHANGES.rst:305 -#: ../../CHANGES.rst:324 ../../CHANGES.rst:332 ../../CHANGES.rst:341 -#: ../../CHANGES.rst:367 ../../CHANGES.rst:402 ../../CHANGES.rst:428 -#: ../../CHANGES.rst:477 ../../CHANGES.rst:505 ../../CHANGES.rst:535 -#: ../../CHANGES.rst:591 ../../CHANGES.rst:624 ../../CHANGES.rst:645 -#: ../../CHANGES.rst:655 ../../CHANGES.rst:678 ../../CHANGES.rst:745 -#: ../../CHANGES.rst:783 ../../CHANGES.rst:800 ../../CHANGES.rst:836 -#: 91a8054efa234209906812cdd41bd586 2e9453d4722144fd9ad7f53b28a7cb37 +#: ../../CHANGES.rst:5 ../../CHANGES.rst:23 ../../CHANGES.rst:57 +#: ../../CHANGES.rst:85 ../../CHANGES.rst:104 ../../CHANGES.rst:111 +#: ../../CHANGES.rst:130 ../../CHANGES.rst:190 ../../CHANGES.rst:216 +#: ../../CHANGES.rst:231 ../../CHANGES.rst:280 ../../CHANGES.rst:306 +#: ../../CHANGES.rst:325 ../../CHANGES.rst:333 ../../CHANGES.rst:342 +#: ../../CHANGES.rst:368 ../../CHANGES.rst:403 ../../CHANGES.rst:429 +#: ../../CHANGES.rst:478 ../../CHANGES.rst:506 ../../CHANGES.rst:536 +#: ../../CHANGES.rst:592 ../../CHANGES.rst:625 ../../CHANGES.rst:646 +#: ../../CHANGES.rst:656 ../../CHANGES.rst:679 ../../CHANGES.rst:746 +#: ../../CHANGES.rst:784 ../../CHANGES.rst:801 ../../CHANGES.rst:837 +#: 74bd8e6a205c4a06b55ec9b1b8d86f48 4b956af725cc45d0ab80a2fdd02a4b9a +#: b8d535f039134b0a9afd68f7f8713d0c 879c4a3feec54624b5c16345690f94dd +#: 1985623df8644a759ff789f1fef96076 383ea6426a8f484f9ffb40a520830935 +#: ac97d42167a54f52a4f4387433d4f2a6 51abb94c86684f0e98aa85821b3b55de +#: b7a9f2fff1f842a7b3df26649bc8bc63 cbc8dd1774c44a428cb21e8f4c9d8f2e +#: 240d272f380e4681987edd02c169246e 15e513215a474d70b40edf12381e72f7 +#: 0418257ecc0c44959535ccb1f84887ed 105bf789bacd488b9547c456c678ce9a +#: 941f4be6c4fc4387a16a415291dcea10 39fb9e60582f4e7b849c6b352d4b8900 +#: ba1f31ddd6a54152b9ec60ff8dc828e3 29032d8c22424133893779341d9a3cc4 +#: 5becffbb07f9439f8f8e5128f6ae4b4c 5dca26ae33b5403883d0624bbebb09d3 +#: 82f1ceff9a0449798fd2cda980481ef5 6f19ab064ce74b30a553a9c7f40734cc +#: 5bb5974e718c4fd898c6951c84e83fd8 e73ec88847a5405c83925f07aa1c9fa4 +#: d0ecd5272cb842a39060ae5357ffdea1 668f2ebaabe94e7cae8d43c6ae82b8c0 +#: fce964069b044cf3a9ef4c7b514572bc d889698da80b4ae486084b2081c9aaea +#: 18a1a9aca2364d989bed0ef2e1c05083 efcfdd51c4fe4adb81edbcb955eaec75 msgid "Added" msgstr "Ajouté" -#: ../../CHANGES.rst:6 8593aca44439457296e5591823f56739 +#: ../../CHANGES.rst:6 2deee404aef64ad3803993329510bc5a msgid "``--version`` option to the CLI. :pr:`209`" msgstr "Option ``--version`` pour l'interface en ligne de commandes :pr:`209`" -#: ../../CHANGES.rst:7 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:7 68dd17fef135479c891a55e7657b2af9 msgid "" ":attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` :" "issue:`175`" msgstr "" -":attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` " -":issue:`175`" +":attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` :" +"issue:`175`" -#: ../../CHANGES.rst:8 0f7d8f6a51e545499fcff7acd93586e3 -msgid "`canaille get --all` command option to perform full database dumps" +#: ../../CHANGES.rst:8 63808a8f2ece4e8299c1d6a3d48678fb +#, fuzzy +#| msgid "`canaille get --all` command option to perform full database dumps" +msgid "`canaille dump` command option to perform full database dumps" msgstr "" "Option ``canaille get--all`` pour effectuer des sauvegardes complètes de la " "base de données" -#: ../../CHANGES.rst:11 ../../CHANGES.rst:15 ../../CHANGES.rst:44 -#: ../../CHANGES.rst:64 ../../CHANGES.rst:77 ../../CHANGES.rst:89 -#: ../../CHANGES.rst:114 ../../CHANGES.rst:122 ../../CHANGES.rst:170 -#: ../../CHANGES.rst:196 ../../CHANGES.rst:248 ../../CHANGES.rst:285 -#: ../../CHANGES.rst:354 ../../CHANGES.rst:372 ../../CHANGES.rst:410 -#: ../../CHANGES.rst:449 ../../CHANGES.rst:484 ../../CHANGES.rst:527 -#: ../../CHANGES.rst:631 ../../CHANGES.rst:685 ../../CHANGES.rst:717 -#: ../../CHANGES.rst:731 254357b217fe4a309d66a400497a104a +#: ../../CHANGES.rst:11 ../../CHANGES.rst:16 ../../CHANGES.rst:45 +#: ../../CHANGES.rst:65 ../../CHANGES.rst:78 ../../CHANGES.rst:90 +#: ../../CHANGES.rst:115 ../../CHANGES.rst:123 ../../CHANGES.rst:171 +#: ../../CHANGES.rst:197 ../../CHANGES.rst:249 ../../CHANGES.rst:286 +#: ../../CHANGES.rst:355 ../../CHANGES.rst:373 ../../CHANGES.rst:411 +#: ../../CHANGES.rst:450 ../../CHANGES.rst:485 ../../CHANGES.rst:528 +#: ../../CHANGES.rst:632 ../../CHANGES.rst:686 ../../CHANGES.rst:718 +#: ../../CHANGES.rst:732 9d6779c7467447bf9348630f9df9f7a6 +#: c9d0c3771a1545029cbf181cdaaf010e b71b6cc4093d47b0a025a6084ee10b82 +#: 3a1c46806f3a4fcd9bbcf94b8f2ecd6f 4ecdd331965d4307bcae6b8e23cc2758 +#: 3007fe60da8b497489115528ff73a22a d97da6e417504c30905b3bbbcff0a3e5 +#: 8379ca38044741609b60ac5563f117e8 a65d6cf0ec7440a89b6e4e26bcee20a9 +#: 603c0752d0754d31ba81c98b44689841 803aba2541184a568053711d70a98172 +#: a0d9788d439b4e76a40fecbedda27dd7 61a3b7ac77f1470db2511ddd0f4fb557 +#: 893961704a1d436cbd4ca48dfb664ace 104393fcd7b0433cb2600fa15b60db74 +#: 2900ac4761c1410c94519e4d29763ec5 e32378837b094cbbbf4e2446f6454991 +#: 3cc46ac4032447bcb723f9c694279c51 47d34ef97528461eb4b152543826122d +#: 12cf7bbc8c624173a724dd66eea7edf2 b974765388144565a52c260b58adca84 +#: 303ba7514eba49cda1e049ff223d146c msgid "Changed" msgstr "Modifié" -#: ../../CHANGES.rst:12 ../../CHANGES.rst:16 d1eb743e584f441d9b1dbf0669995b45 -#: c15803fd37484051a8f92213756c4d22 +#: ../../CHANGES.rst:12 ../../CHANGES.rst:17 6f26098796454b3cad6eb8ecdb44eddf +#: 2bd1e492a77e48be91838061fed5e7b8 msgid "fixed a bug on updating user's settings :issue:`206`" msgstr "" -"Correction d'un bug sur la mise à jours des paramètres utilisateurs " -":issue:`206`" +"Correction d'un bug sur la mise à jours des paramètres utilisateurs :issue:" +"`206`" -#: ../../CHANGES.rst:19 9d53638e5933499baafec12390f02e23 +#: ../../CHANGES.rst:13 fe7429ca2df94118964bd4c3ea5cb945 +msgid "CLI commands dump hashed passwords :issue:`214`" +msgstr "" + +#: ../../CHANGES.rst:20 a9391eece84240bb82abe2cbcd0d2367 msgid "[0.0.57] - 2024-12-31" msgstr "[0.0.57] - 2024-12-31" -#: ../../CHANGES.rst:23 5b4f3aa107a74df3ba845920503dfdc5 +#: ../../CHANGES.rst:24 fb0fd10598b4464dae61d7edea3f3246 msgid "Intruder lockout :issue:`173`" msgstr "Blocage des connexions après échecs :issue:`173`" -#: ../../CHANGES.rst:24 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:25 ac217f88cae6455a91e3240120afecd1 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT` :" "issue:`173`" @@ -108,11 +139,11 @@ msgstr "" ":attr:`~canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT` :" "issue:`173`" -#: ../../CHANGES.rst:26 cdab69b7537c452caa3eadb572993a40 +#: ../../CHANGES.rst:27 61171b21dcc64e56b9a6d1b8fe1aa10e msgid "Multi-factor authentication :issue:`47`" msgstr "Authentification multi-facteurs :issue:`47`" -#: ../../CHANGES.rst:27 a90b270f7e144a4b81babbac96f5ff22 +#: ../../CHANGES.rst:28 00fe2c01e8e741fbafa9004b6cbde2ae msgid "" ":attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD` and :attr:" "`~canaille.core.configuration.CoreSettings.EMAIL_OTP` and :attr:`~canaille." @@ -124,11 +155,11 @@ msgstr "" "configuration.CoreSettings.SMS_OTP` et :attr:`~canaille.core.configuration." "CoreSettings.SMPP` :issue:`47`" -#: ../../CHANGES.rst:32 05060126fea740ef82fba8246132aa6e +#: ../../CHANGES.rst:33 81230933555848b4b7db27a802f7445f msgid "Password compromission check :issue:`179`" msgstr "Vérification de la compromission des mots de passe :issue:`179`" -#: ../../CHANGES.rst:33 a90b270f7e144a4b81babbac96f5ff22 +#: ../../CHANGES.rst:34 283ab183148249a2b3eab298fc7746c6 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:" "`~canaille.core.configuration.CoreSettings." @@ -140,27 +171,27 @@ msgstr "" "ENABLE_PASSWORD_COMPROMISSION_CHECK` et :attr:`~canaille.core.configuration." "CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL` :issue:`179`" -#: ../../CHANGES.rst:37 2cfcbdba2e9541dbab610bc724a2683a +#: ../../CHANGES.rst:38 935d8279dbc64e649d6d647c5747456a msgid "Implement OIDC client_credentials flow. :issue:`207`" msgstr "Implémentation du flux OIDC `client_credentials`. :issue:`207`" -#: ../../CHANGES.rst:38 1e36a8464f6045708cf07b39bcdfea1c +#: ../../CHANGES.rst:39 cde005956a384cc2a9c6e19cb14e6c99 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:39 c69d8b01e4194d5b9268b84ab81849d6 +#: ../../CHANGES.rst:40 2f64a0f5e56f40c093e7c8bb34e57b21 msgid "Basic SCIM implementation. :issue:`116` :pr:`197`" msgstr "Implémentation basique du protocole SCIM. :issue:`116` :pr:`197`" -#: ../../CHANGES.rst:40 c777083179094cd994619adcfc8499d9 +#: ../../CHANGES.rst:41 e1497232147641ed858b53ca6d1a0c4d msgid "Password expiry policy :issue:`176`" msgstr "Politique d’expiration des mots de passe :issue:`176`" -#: ../../CHANGES.rst:41 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:42 452b760e978e47dc91176f653dc53d5b msgid ":attr:`~canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME`" msgstr ":attr:`~canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME`" -#: ../../CHANGES.rst:45 bb196cd8528b48628628ab53c5288b49 +#: ../../CHANGES.rst:46 7f89d7aba58f465eab40eb10192962c4 msgid "" "PostgreSQL and MySQL extras does not rely on libraries that need to be " "compiled." @@ -168,7 +199,7 @@ msgstr "" "Les extras PostgreSQL et MySQL ne dépendent plus de bibliothèques qui " "doivent être compilées." -#: ../../CHANGES.rst:46 c36865875c264bb4a34d614ea2be23cf +#: ../../CHANGES.rst:47 da03a9cd311a416bbb18aed6783e2855 msgid "" "``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be " "passed so ``.env`` files are loaded." @@ -177,29 +208,50 @@ msgstr "" "d'environnement ``ENV_FILE`` doit être passé pour que les fichiers ``.env`` " "soient chargées." -#: ../../CHANGES.rst:49 045b041136be49de8d54674ad57fea87 +#: ../../CHANGES.rst:50 50fe28668fa04a39b0004b6cd8cb9e68 msgid "[0.0.56] - 2024-11-07" msgstr "[0.0.56] - 2024-11-07" -#: ../../CHANGES.rst:52 ../../CHANGES.rst:94 ../../CHANGES.rst:133 -#: ../../CHANGES.rst:141 ../../CHANGES.rst:149 ../../CHANGES.rst:156 -#: ../../CHANGES.rst:163 ../../CHANGES.rst:177 ../../CHANGES.rst:207 -#: ../../CHANGES.rst:220 ../../CHANGES.rst:238 ../../CHANGES.rst:257 -#: ../../CHANGES.rst:265 ../../CHANGES.rst:291 ../../CHANGES.rst:299 -#: ../../CHANGES.rst:319 ../../CHANGES.rst:349 ../../CHANGES.rst:381 -#: ../../CHANGES.rst:389 ../../CHANGES.rst:415 ../../CHANGES.rst:435 -#: ../../CHANGES.rst:459 ../../CHANGES.rst:469 ../../CHANGES.rst:490 -#: ../../CHANGES.rst:498 ../../CHANGES.rst:521 ../../CHANGES.rst:544 -#: ../../CHANGES.rst:556 ../../CHANGES.rst:565 ../../CHANGES.rst:574 -#: ../../CHANGES.rst:583 ../../CHANGES.rst:603 ../../CHANGES.rst:610 -#: ../../CHANGES.rst:660 ../../CHANGES.rst:668 ../../CHANGES.rst:693 -#: ../../CHANGES.rst:701 ../../CHANGES.rst:709 ../../CHANGES.rst:722 -#: ../../CHANGES.rst:736 ../../CHANGES.rst:768 ../../CHANGES.rst:791 -#: ../../CHANGES.rst:822 13ee0de3f7db4046b8399917e8d52e0b +#: ../../CHANGES.rst:53 ../../CHANGES.rst:95 ../../CHANGES.rst:134 +#: ../../CHANGES.rst:142 ../../CHANGES.rst:150 ../../CHANGES.rst:157 +#: ../../CHANGES.rst:164 ../../CHANGES.rst:178 ../../CHANGES.rst:208 +#: ../../CHANGES.rst:221 ../../CHANGES.rst:239 ../../CHANGES.rst:258 +#: ../../CHANGES.rst:266 ../../CHANGES.rst:292 ../../CHANGES.rst:300 +#: ../../CHANGES.rst:320 ../../CHANGES.rst:350 ../../CHANGES.rst:382 +#: ../../CHANGES.rst:390 ../../CHANGES.rst:416 ../../CHANGES.rst:436 +#: ../../CHANGES.rst:460 ../../CHANGES.rst:470 ../../CHANGES.rst:491 +#: ../../CHANGES.rst:499 ../../CHANGES.rst:522 ../../CHANGES.rst:545 +#: ../../CHANGES.rst:557 ../../CHANGES.rst:566 ../../CHANGES.rst:575 +#: ../../CHANGES.rst:584 ../../CHANGES.rst:604 ../../CHANGES.rst:611 +#: ../../CHANGES.rst:661 ../../CHANGES.rst:669 ../../CHANGES.rst:694 +#: ../../CHANGES.rst:702 ../../CHANGES.rst:710 ../../CHANGES.rst:723 +#: ../../CHANGES.rst:737 ../../CHANGES.rst:769 ../../CHANGES.rst:792 +#: ../../CHANGES.rst:823 53c5a65f508e4ce4a2cdb301851dd948 +#: b274bbd1b95e42bcb8153fc3514259ce 2533d3c823f74185b35b06fa4e1b80e3 +#: ed1e8ab37be64a8f8ca5ffecb229e0ad df88f1d57bf34873bffea45537b3af4c +#: 6172e8c8655f4dcc9adc6bea34c0fc95 f69752d371734b35af74db0812516dd9 +#: e84d4fc2503b4cb9bc30b43d71515f3d de5ce855802f402a8b90fd3f7401d7d9 +#: b0d8d589bafb44e7a50e1df6b5a2c0ee df7c8e6f591146ae9d0214b5cf2ef20c +#: 01c7173e0c4f4edd9b9435c71cf0b42f f852bdbb77364a7e9cc6b146e56ed402 +#: 0fde0faefcc74c63814c308767cfece9 646698a0b8834d5a82e6251501ac750e +#: 72754d5c2e904a22a329f4254a514e9c 7e1ac803c25144c0b2b9c902530a21a2 +#: 526a14aecd6f4e87b95a6edb635fc92c 194cefb8995b489fb1cedfa349a864c0 +#: 50050907eee8458fb96d8c32a755b0d4 acbb3ec553594f6680d223653479eff4 +#: 089020254ca745848ba3bc24c50f593b 2dccac9b689a4eefab864be77ee5a433 +#: 7ac15c877d0e44deadcfbb9c99e14ca6 0606f5a65c6d412a96cb74b9eaf59706 +#: 08260e612848485cb1928449b08ddfa2 0a5801741e6e4f68b248e8eefc11e32e +#: d6643e325d37484d9c9b14c4dc3e26ff ff19c7e139e64f40be24d0d3766e12d1 +#: 70025a466d2940dd82bb4d943cae9cbc bc7c7a9dc156475c8a65bfe5b94c66df +#: 10d045405e844791b053eee9e1f845e2 66784d9272f44414a23d2b25cc73b179 +#: 02d5e48f9ea0441688e6d8e75da2bc20 daca4e664b6d4a949f8825c48941a1f2 +#: 42fe0d93e6da4649b6315591d95fabfd e344dc15cfcd4ebaa54ed440b8745fd8 +#: 52a9e522d4784784aa9db400ec187e1f 0d260c98b74242b0bde5f2cca4aca9b0 +#: 7f343e5272b14cdabcd8606c3af8de59 6c2e38da89e548bcb490b4ef93d4cdd1 +#: 27d0795441ff491e8d5599a42d03f41b e74496b8550542b7a5061fffdd77cddc msgid "Fixed" msgstr "Corrigé" -#: ../../CHANGES.rst:53 10c707b06b884b168b2dd26bffd7bf76 +#: ../../CHANGES.rst:54 d1079f04609745a5b2b84388ffbafe12 msgid "" "With LDAP backend, updating another user groups could result in a permission " "lost for the editor. :issue:`202`" @@ -207,7 +259,7 @@ 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:57 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:58 5064e81a1a254f5cae3b89c8d59a263d msgid "" ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH` and :" "attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH` " @@ -217,28 +269,28 @@ msgstr "" "MAX_PASSWORD_LENGTH` et :attr:`~canaille.core.configuration.CoreSettings." "MIN_PASSWORD_LENGTH` :issue:`174`" -#: ../../CHANGES.rst:59 cdab69b7537c452caa3eadb572993a40 +#: ../../CHANGES.rst:60 26e4f63a1064497b93ca4f9849d60b6e msgid "Password strength visual indicator. :issue:`174`" msgstr "Indicateur visuel de la force des mots de passe :issue:`174`" -#: ../../CHANGES.rst:60 2ae6bad543d64621886630d3db7832e6 +#: ../../CHANGES.rst:61 a2fdef5b105b41d5ad708fe077dd6ea5 msgid "Security events logs. :issue:`177`" msgstr "Journalisation des évènements de sécurité. :issue:`177`" -#: ../../CHANGES.rst:61 40ab5f1ed3bc406fb662d0025e5b3212 +#: ../../CHANGES.rst:62 c01dd0db19874fb1a2bce1ab058ff012 msgid "Support for Python 3.13. :pr:`186`" msgstr "Support de Python 3.13. :pr:`186`" -#: ../../CHANGES.rst:65 c7940e351aac4939b964ccb80cebd616 +#: ../../CHANGES.rst:66 123ca7470aaa4f0ea643e898579c3cdb msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "Mise à jour vers HTMX 2.0.3. :pr:`184`" -#: ../../CHANGES.rst:66 dfc1569ae0ec412d86503a0695522fa5 +#: ../../CHANGES.rst:67 289367c535344e859b7a42df83c7cf4f 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:67 40c97bec2553487fa62efc486d3ee444 +#: ../../CHANGES.rst:68 b553f5d728d74f9ea62e87cbf8472ef2 msgid "" "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` " "and ``mysql``." @@ -246,30 +298,31 @@ msgstr "" "L’extra de paquet ``sql`` a été divisé en ``sqlite``, ``postgresql`` et " "``mysql``." -#: ../../CHANGES.rst:70 ../../CHANGES.rst:420 ../../CHANGES.rst:828 -#: bc1a20b5783a4fe38fa201438a8075e5 +#: ../../CHANGES.rst:71 ../../CHANGES.rst:421 ../../CHANGES.rst:829 +#: ac38305d876e48789c182a1fbf0483ac 022fcf9dd0534233866aa0d9974e2987 +#: 29bdcf38f9d748fe90268b40a612f081 msgid "Removed" msgstr "Supprimé" -#: ../../CHANGES.rst:71 3f97d00692d047dbbecb5c18a2d45b07 +#: ../../CHANGES.rst:72 943bfc081ef14407995de675069f94d1 msgid "End support for Python 3.9. :pr:`179`" msgstr "Fin de support pour Python 3.9. :pr:`179`" -#: ../../CHANGES.rst:74 4a57056601f148969254d2f049e0f460 +#: ../../CHANGES.rst:75 1329245bc09c41e790e01b07835c59a9 msgid "[0.0.55] - 2024-08-30" msgstr "[0.0.55] - 2024-08-30" -#: ../../CHANGES.rst:78 a037ad5da20049ad82e9f9b0d766cfbb +#: ../../CHANGES.rst:79 79310b4f35ed49b980404e77433ad344 msgid "Use poetry-core build backend. :pr:`178`" msgstr "" "Utilisation de `poetry-core` comme outil de construction de paquets. :pr:" "`178`" -#: ../../CHANGES.rst:81 d6bf96b8e5cc4a6f8e099b48c1951a6a +#: ../../CHANGES.rst:82 b1c2cc3b8f1644cba3e1e82dfd2eda3b msgid "[0.0.54] - 2024-07-25" msgstr "[0.0.54] - 2024-07-25" -#: ../../CHANGES.rst:85 062bcc176aac499384187fcb06e2a00b +#: ../../CHANGES.rst:86 ebb97b0ad729407381eafd00a0345db4 msgid "" "Group member removal can be achieved from the group edition page. :issue:" "`192`" @@ -277,119 +330,119 @@ msgstr "" "La suppression des membres de groupes peut être effectuée depuis la page " "d’édition des groupes. :issue:`192`" -#: ../../CHANGES.rst:86 8680469549c74d37a52b1c6252c74d57 +#: ../../CHANGES.rst:87 b938d978231f485d96dd65c284b50c75 msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "Commande de gestion des modèles. :issue:`117` :issue:`54`" -#: ../../CHANGES.rst:90 c19428c67d8f4d198d0ab97defe14fb3 +#: ../../CHANGES.rst:91 194419a0a61744cabd33b572a65b9ebb msgid "Model `identifier_attributes` are fixed." msgstr "L’attribut `identifier_attributes` des models est fixe." -#: ../../CHANGES.rst:91 571f38b1484b43e2beed6f33eb675700 +#: ../../CHANGES.rst:92 38cf7ccdf64844b3b46da32df1b7e6c3 msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "Mise-à-jour vers `HTMX` 1.9.12. :pr:`172`" -#: ../../CHANGES.rst:96 9e54da898699471194477836791f08a6 +#: ../../CHANGES.rst:97 03e01fffdd994e5688cff3e313bd4402 msgid "Dark theme colors for better readability." msgstr "Couleurs des champs dans le thème sombre." -#: ../../CHANGES.rst:97 4e0f2a8e03a447e59cb0a2b0e6d208f1 +#: ../../CHANGES.rst:98 d0f2bd58fbd24866855da92cff441bbf 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:100 a9273241db7e4137bac5973b20e3ec5d +#: ../../CHANGES.rst:101 a93bd621e6d442e09311f9a527e82cb5 msgid "[0.0.53] - 2024-04-22" msgstr "[0.0.53] - 2024-04-22" -#: ../../CHANGES.rst:104 17fbf739a68a4e59b5cc6da8befa1c6f +#: ../../CHANGES.rst:105 e57b8cfe44ef43fdb1cb5c6796f6f07e msgid "" "`env_prefix` `create_app`` variable can select the environment var prefix." msgstr "" "La variable `env_prefix`de la méthode ``create_app`` permet de choisir le " "préfixe des variables d’environnement." -#: ../../CHANGES.rst:107 7bdc8f732053463b95353cdf5c994838 +#: ../../CHANGES.rst:108 5f3aedb0fb95429c948c48a44ce99bc9 msgid "[0.0.52] - 2024-04-22" msgstr "[0.0.52] - 2024-04-22" -#: ../../CHANGES.rst:111 bc7d1037cdfd40a69044f465467f6834 +#: ../../CHANGES.rst:112 fc80c3f894ac496da58299137473570f 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:115 9685a5e5a13147f093ac57e2039fe11b +#: ../../CHANGES.rst:116 dfee8d84d47a46d4a02626043ad3c378 msgid "Locked users cannot be impersonated anymore." msgstr "Les comptes verrouillés ne peuvent plus être incarnés." -#: ../../CHANGES.rst:116 1b83a24a97384c2faab67e915701e6b2 +#: ../../CHANGES.rst:117 50b623665b86438d8d94f754ddfec814 msgid "Minimum Python requirement is 3.9." msgstr "La version minimum requise de Python est 3.9." -#: ../../CHANGES.rst:119 e88f01e3f89f45f2a63b456f8e304d3d +#: ../../CHANGES.rst:120 2aef1c38709f40de94070e2591894618 msgid "[0.0.51] - 2024-04-09" msgstr "[0.0.51] - 2024-04-09" -#: ../../CHANGES.rst:123 aae3d126989840578ec2b08058aad688 +#: ../../CHANGES.rst:124 b7591b424f2e45788b23199143298a26 msgid "Display the menu bar on error pages." msgstr "Affichage de la barre de menu sur les pages d’erreur." -#: ../../CHANGES.rst:126 22b11dc18595450fa5e7fe5f35824ebe +#: ../../CHANGES.rst:127 0482caf34246470a9cad38fb5494ec06 msgid "[0.0.50] - 2024-04-09" msgstr "[0.0.50] - 2024-04-09" -#: ../../CHANGES.rst:130 fc1bc503759c4beb943e9dcbf0c4a9cf +#: ../../CHANGES.rst:131 1ac6b68041ac41b588d06ee7289d7b54 msgid "Sign in/out events are logged in. :issue:`177`" msgstr "" "Journalisation des évènements de connexion et déconnexion. :issue:`177`" -#: ../../CHANGES.rst:134 cfe0182123c94bcc9ee847739bd2e114 +#: ../../CHANGES.rst:135 c3deb238bd1448c384f74146a0cb34c1 msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "Paramètres de configuration `HTMX` et `JAVASCRIPT`." -#: ../../CHANGES.rst:135 3bc7c83763d34549bac91df86a22b3a0 +#: ../../CHANGES.rst:136 7e5dc3a8203f4975938a56512527ce61 msgid "Compatibility with old sessions IDs." msgstr "Compatibilité avec les anciens identifiants de session." -#: ../../CHANGES.rst:138 cdee0bee34024d21bace2d77ff637ed9 +#: ../../CHANGES.rst:139 e7a941e0a4d841fba7e67ca25ddf14a7 msgid "[0.0.49] - 2024-04-08" msgstr "[0.0.49] - 2024-04-08" -#: ../../CHANGES.rst:142 f9c9585c305d47628adffcae287229d2 +#: ../../CHANGES.rst:143 d2faee827c5b40b68570ab1c02b3d467 msgid "LDAP user group removal." msgstr "Suppression des groupes d’utilisateurs avec LDAP." -#: ../../CHANGES.rst:143 c25c5c6a9cca4061be6502cae5e86ba2 +#: ../../CHANGES.rst:144 3530ff4f5a494c97be1248713efad111 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:146 5e0c66b55801444497954839297b97eb +#: ../../CHANGES.rst:147 37b850b8747f4885bb59c4b600f07e39 msgid "[0.0.48] - 2024-04-08" msgstr "[0.0.48] - 2024-04-08" -#: ../../CHANGES.rst:150 bd9920a130844ee897863a6b649484e2 +#: ../../CHANGES.rst:151 43fcc4664e2c493e8d6fe0db840fe372 msgid "LDAP ``objectClass`` guessing exception." msgstr "Exception lors de la détection des classes d’objet LDAP." -#: ../../CHANGES.rst:153 93cf829932204311ba399ae713aff29f +#: ../../CHANGES.rst:154 ae0eb5c761394db2b1d091e6fa1cb7b6 msgid "[0.0.47] - 2024-04-08" msgstr "[0.0.47] - 2024-04-08" -#: ../../CHANGES.rst:157 b7a5d3351a334b0592b12373e1c7afa6 +#: ../../CHANGES.rst:158 cf62cb736d744b53b5968b84e6b3b424 msgid "Lazy permission loading exception." msgstr "Exception lors du chargement paresseux des permissions." -#: ../../CHANGES.rst:160 c6000ae4f0fc4d488ab180c3aa9eb144 +#: ../../CHANGES.rst:161 c5ba2703aa9742a8957fcb6a15a22298 msgid "[0.0.46] - 2024-04-08" msgstr "[0.0.46] - 2024-04-08" -#: ../../CHANGES.rst:164 db4476f22ad049f49833696323eb1b33 +#: ../../CHANGES.rst:165 d9150b7d06724be49a3d165891332d9e msgid "" "Saving an object with the LDAP backend keeps the ``objectClass`` un-managed " "by Canaille. :pr:`171`" @@ -397,61 +450,62 @@ msgstr "" "La sauvegarde des objets avec LDAP garde les valeurs de ``objectClass`` non " "gérés par Canaille. :pr:`171`" -#: ../../CHANGES.rst:167 d7117b0322b549ff87b73b8e4c839915 +#: ../../CHANGES.rst:168 aa1459361e01481a9f2f9e3e29927db4 msgid "[0.0.45] - 2024-04-04" msgstr "[0.0.45] - 2024-04-04" -#: ../../CHANGES.rst:171 9690ab893eef4290a52b1137f24b9be8 +#: ../../CHANGES.rst:172 5f111a4408054a86a564f89965320a0e msgid "Internal indexation mechanism of ``MemoryModel``." msgstr "Mécanisme d’indexation interne de ``MemoryModel``." -#: ../../CHANGES.rst:174 be79650410904879b53da2c62ac092d5 +#: ../../CHANGES.rst:175 4ec01913c134471ba2c9bc6c7d6594a0 msgid "[0.0.44] - 2024-03-29" msgstr "[0.0.44] - 2024-03-29" -#: ../../CHANGES.rst:178 1c2533bc36b548c59361d7b3e304cce6 +#: ../../CHANGES.rst:179 96427ccf2ab844e09af39f35d99e62f4 msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "Correction de la valeur par défaut de ``USER_FILTER`` pour LDAP." -#: ../../CHANGES.rst:179 c429e79bd5aa46edb7b4cd1bd87c3ad8 +#: ../../CHANGES.rst:180 bdc76b00698649b0a1662a4f4574295e msgid "Fix the OIDC feature detection." msgstr "Correction de la détection de la fonctionnalité OIDC." -#: ../../CHANGES.rst:182 51a43a574cc943b5912effdaa67f8690 +#: ../../CHANGES.rst:183 aac8fcfe3c274caf955d0c0ec4d56a95 msgid "[0.0.43] - 2024-03-29" msgstr "[0.0.43] - 2024-03-29" -#: ../../CHANGES.rst:186 ../../CHANGES.rst:445 02e8eccba3b74e889a68c78dc51e0a24 +#: ../../CHANGES.rst:187 ../../CHANGES.rst:446 580f0fc146ec498a9bab5ebbcc1a075d +#: 50bb86bd7d0e43d6807b49af9344f81f msgid "Configuration files must be updated." msgstr "Les fichiers de configuration doivent être mis à jour." -#: ../../CHANGES.rst:191 a39fba5f25754fdc9f0f339142ff0320 +#: ../../CHANGES.rst:192 5e07cdf3619e479d8481e119065404ec 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:192 b1e37ddf62994798a70a23cff76ed4d6 +#: ../../CHANGES.rst:193 3102a152b0dd403b86e27d64a971ce87 msgid "Sitemap to the documentation. :pr:`169`" msgstr "Cartographie de la documentation. :pr:`169" -#: ../../CHANGES.rst:193 54cf20bc59af4634af6b3f2d0e10c5e9 +#: ../../CHANGES.rst:194 0219c78a44ed414fa3c72cf01961951b 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:198 689b4f88ba4b43db8c8b1a7bff0aebe6 +#: ../../CHANGES.rst:199 b3186678446f4f74aad4f014d22d39be 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:199 7d18c66450654e25a65749ea273b859d +#: ../../CHANGES.rst:200 fd5c70ba10bc4ea199529498765da9c8 msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "Mise à jour vers ``HTMX`` 1.9.11. :pr:`166`" -#: ../../CHANGES.rst:200 9d053f12577548bc8cff1add00376bae +#: ../../CHANGES.rst:201 97733b3cecda49b59eda7684cbcf0bdc msgid "" "Use the standard tomllib Python module instead of `toml` starting from " "Python 3.11. :pr:`167`" @@ -459,24 +513,24 @@ msgstr "" "Utilisation du module Python standard `tomllib` à la place de `toml` à " "partir de Python 3.11. :pr:`167`" -#: ../../CHANGES.rst:201 fd8c1c0314b2465c9cacb4ba593eae77 +#: ../../CHANGES.rst:202 417ca230093143fd898eacb9326a5bce msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "Utilisation du thème de documentation `shibuya`. :pr:`168`" -#: ../../CHANGES.rst:204 abc0b3ba739e4f99866d02027d8128d2 +#: ../../CHANGES.rst:205 265939621caf4ae4be01d355c819a1a4 msgid "[0.0.42] - 2023-12-29" msgstr "[0.0.42] - 2023-12-29" -#: ../../CHANGES.rst:209 74e8932123b744b2809d370b36980326 +#: ../../CHANGES.rst:210 8ff42abcf9f14d8cb6acb1252cb72185 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" "Correction d’une erreur d’import lorsque ``cryptography`` était manquant." -#: ../../CHANGES.rst:212 41f209b7a9054599b7b71d4fab3afe8f +#: ../../CHANGES.rst:213 a3b54c69b61f4cab9c33ccffaa2ccb1d msgid "[0.0.41] - 2023-12-25" msgstr "[0.0.41] - 2023-12-25" -#: ../../CHANGES.rst:217 77ff8fdeadf94e2f8696b2f5b9bd9349 +#: ../../CHANGES.rst:218 b7be279b17f04cdead0f43eb1263cc8f msgid "" "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:" "`185` :pr:`164`" @@ -484,7 +538,7 @@ msgstr "" "Support pour la valeur ``create`` du paramètre ``prompt`` d’OIDC. :issue:" "`185` :pr:`164`" -#: ../../CHANGES.rst:222 8940d9836a9f46a09613c3646e1d55f8 +#: ../../CHANGES.rst:223 c2131815b4ee4e53854f1c9801b81672 msgid "" "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during " "OIDC dynamic registration." @@ -492,79 +546,79 @@ msgstr "" "Configuration correcte de l’:attr:`~canaille.oidc.basemodels.Client." "audience` durant l’enregistrement dynamique OIDC." -#: ../../CHANGES.rst:223 bb9a9230771445b6a7c93f042fb289ee +#: ../../CHANGES.rst:224 674bd58192194c48872f1bceb85b64b9 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:224 b5d0341447ef443b969d2a48457442f2 +#: ../../CHANGES.rst:225 f00edc3069de458793e37db8f46cf24c 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:227 7bcad6150cbc4883817538eb23bed3bd +#: ../../CHANGES.rst:228 acfe93442a3e445daccb56cb0a977bd5 msgid "[0.0.40] - 2023-12-22" msgstr "[0.0.40] - 2023-12-22" -#: ../../CHANGES.rst:232 aae4204166c443f99e04d84842dd6dd9 +#: ../../CHANGES.rst:233 e963680d5372445bb660af444ebc5fc3 msgid "The ``THEME`` setting can be a relative path." msgstr "Le paramètre de configuration ``THEME`` peut être un chemin relatif." -#: ../../CHANGES.rst:235 26224cfa5ee647a2b15239a78065f5f7 +#: ../../CHANGES.rst:236 13b3c18f8c344461a0f22041afdce696 msgid "[0.0.39] - 2023-12-15" msgstr "[0.0.39] - 2023-12-15" -#: ../../CHANGES.rst:240 14b2b67c379045d681ee712797f44328 +#: ../../CHANGES.rst:241 346414ba0ed545abaa3c92f8e00e4573 msgid "Crash when no ACL were defined." msgstr "Erreur lorsqu’aucun ACL n’était défini." -#: ../../CHANGES.rst:241 38649598ac954d29843b54b15343dd15 +#: ../../CHANGES.rst:242 b1302bfb48c5482e84720a6ad95541b0 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:242 ed1da2958a1646fd82c70171a5c04317 +#: ../../CHANGES.rst:243 7923b8de73af4dce9521620ee749336f 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:245 8f2bc47f69554f539aa2836958029d59 +#: ../../CHANGES.rst:246 52a4d55d277f4b7389318b494216b17b msgid "[0.0.38] - 2023-12-15" msgstr "[0.0.38] - 2023-12-15" -#: ../../CHANGES.rst:250 24f252671c9a4a3590e94e5e563e4d19 +#: ../../CHANGES.rst:251 7ce633eaccb84a0abe491918a8a48b6d msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "Conversion de toutes les images `PNG` en `Webp`. :pr:`162`" -#: ../../CHANGES.rst:251 8a1d423f79f749868c06a775e9c21bd2 +#: ../../CHANGES.rst:252 3fcb891995404ae99d79ce23eb8caa0d msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "Mise à jour vers Flask 3. :issue:`161` :pr:`163`" -#: ../../CHANGES.rst:254 9d53638e5933499baafec12390f02e23 +#: ../../CHANGES.rst:255 cbee12051316441698e3c2c15d6ede8a msgid "[0.0.37] - 2023-12-01" msgstr "[0.0.37] - 2023-12-01" -#: ../../CHANGES.rst:259 5ed255dd094a4a3aae1b75edf54001ad +#: ../../CHANGES.rst:260 01c5325fd82c43d9b530c2dac22b5fe6 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:262 26d16685ada341a29bf6ee6e98997128 +#: ../../CHANGES.rst:263 9a17c644884048a2992dd5428c40d05f msgid "[0.0.36] - 2023-12-01" msgstr "[0.0.36] - 2023-12-01" -#: ../../CHANGES.rst:267 2cfddfd6843e4cbfb1b645c84bc70322 +#: ../../CHANGES.rst:268 96261936841c49d9ace436ca743e1e9f 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:268 f5714a32e81841e29f2619f6ee5464e8 +#: ../../CHANGES.rst:269 7acc84b824d0448c97a734b600f5c421 msgid "" "Password reset and initialization mails were only sent to the preferred user " "email address." @@ -572,7 +626,7 @@ 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:270 4e121ada1cc24b7b8051d085b0ce464b +#: ../../CHANGES.rst:271 4312e1ec50d3417fae1c5274518b4603 msgid "" "Password reset and initialization mails were not sent at all the user " "addresses if one email address could not be reached." @@ -580,50 +634,50 @@ 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:272 c5fc8c86d3df4732b3a06f70dd89af18 +#: ../../CHANGES.rst:273 2252295c032d4e41a5d6a38857a2f5cf msgid "Password comparison was too permissive on login." msgstr "La comparaison des mots de passe était trop permissive à la connexion." -#: ../../CHANGES.rst:273 36f936a6dd8c41c5bc833d928f347321 +#: ../../CHANGES.rst:274 27ed494c0fd942129181c56473fa068e msgid "Encrypt passwords in the SQL backend." msgstr "Chiffrement des mots de passe dans la base de données SQL." -#: ../../CHANGES.rst:276 76befacfb135435fbee6ee0fe07f40e5 +#: ../../CHANGES.rst:277 e5a596d2090c48589c732902e4ea1715 msgid "[0.0.35] - 2023-11-25" msgstr "[0.0.35] - 2023-11-25" -#: ../../CHANGES.rst:281 14d361d80e4c429f929b943d3321e895 +#: ../../CHANGES.rst:282 6f53586e55d14c0a88ce91b1d3dd5a0e 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:282 c52cda2685214bcab533db539acee007 +#: ../../CHANGES.rst:283 b11afbdb2b1c4d37b7364fa8426cd740 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:287 57670f55b7644a0888ab65cd2da2fd8c +#: ../../CHANGES.rst:288 092696abad604e50a28844294cc25b5b 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:288 f4ef25b7b38b42a48fb2a32c5cd8888f +#: ../../CHANGES.rst:289 8e581ce7d30d47d7a98ae99979bf471f msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "Mise à jour vers `HTMX` 1.9.9. :pr:`159`" -#: ../../CHANGES.rst:293 49b0b7da40204fdeaf40c5281235c2a6 +#: ../../CHANGES.rst:294 bc46a9529f664beeb57d37afb6538007 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:296 db372dee122e4b4fb18c2c99dd056ce2 +#: ../../CHANGES.rst:297 4cc90925acde46e6bc670a73abcfd2b1 msgid "[0.0.34] - 2023-10-02" msgstr "[0.0.34] - 2023-10-02" -#: ../../CHANGES.rst:301 a4b5211e96894c5d9d51b2630d6aea17 +#: ../../CHANGES.rst:302 aeca0dbe6dd646a182af06ae52e21bab msgid "" "Canaille installations without account lockabilty could not delete users. :" "pr:`153`" @@ -631,7 +685,7 @@ msgstr "" "Les installations de Canaille n’ayant pas la fonctionnalité de verrouillage " "des comptes ne pouvaient pas supprimer des utilisateurs. :pr:`153`" -#: ../../CHANGES.rst:307 4f4ca04b08a04dcb8f6a2eb6605f0e13 +#: ../../CHANGES.rst:308 e2e75a18ecd34793a12ed5b1b116202b msgid "" "If users register or authenticate during a OAuth Authorization phase, they " "get redirected back to that page afterwards. :issue:`168` :pr:`151`" @@ -640,7 +694,7 @@ msgstr "" "ils sont ensuite redirigés vers la page dont ils viennent. :issue:`168` :pr:" "`151`" -#: ../../CHANGES.rst:310 298ffe26093441918be8b38d13f0cc58 +#: ../../CHANGES.rst:311 f4f96c897ca841af8798712e0f0dcd41 msgid "" "The `flask-babel` and `pytz` libraries are now part of the `front` packaging " "extras." @@ -648,51 +702,51 @@ msgstr "" "Les bibliothèques `flask-babel` et `pytz` font désormais partie de l’extra " "d'empaquetage `front`." -#: ../../CHANGES.rst:311 ccb502180d634f11ad173619af1b68d8 +#: ../../CHANGES.rst:312 d9d9125da5484af3b63440eec6c4b8b0 msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "Mise à jour vers `fomantic-ui` 2.9.3. :pr:`152`" -#: ../../CHANGES.rst:312 7413676f512d4473972484920ff5f060 +#: ../../CHANGES.rst:313 2520552fc51d4064bf0862108b44ef63 msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "Mise à jour vers `HTMX` 1.9.6. :pr:`154`" -#: ../../CHANGES.rst:313 7905327465c44c09b2a10854abe79960 +#: ../../CHANGES.rst:314 e46900d403e047ec90aae41b0988436b msgid "Support for Python 3.12. :pr:`155`" msgstr "Support de Python 3.12 :pr:`155`" -#: ../../CHANGES.rst:316 808e57e560f74a25b60029fbd6531d2e +#: ../../CHANGES.rst:317 45acc759934d44949490e91b88fcf082 msgid "[0.0.33] - 2023-08-26" msgstr "[0.0.33] - 2023-08-26" -#: ../../CHANGES.rst:321 1179dc27648248188fdecf5696fd5045 +#: ../../CHANGES.rst:322 5943247053c7415da4498ba141e70558 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:326 b8b2caca239b4b609143ffd267522a16 +#: ../../CHANGES.rst:327 a971c7037bd74e9fa857a92fb695d9b8 msgid "Documentation details on the Canaille models." msgstr "Documentation des modèles de Canaille." -#: ../../CHANGES.rst:329 dd35ed0e27664b6b954e9b39881f14bc +#: ../../CHANGES.rst:330 667888a9f86e4623a43d6f86b59a5575 msgid "[0.0.32] - 2023-08-17" msgstr "[0.0.32] - 2023-08-17" -#: ../../CHANGES.rst:334 bdcae061315a4e92a6bc1a48475cb351 +#: ../../CHANGES.rst:335 2af3dcdb899a44acbe3de44e71df8135 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:335 c39cbed721254ce5ad9c250de1e7ea41 +#: ../../CHANGES.rst:336 2ba5da0aea28417290b07dd3a1801eb5 msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "Définition de dépendances `extra`. :issue:`167` :pr:`150`" -#: ../../CHANGES.rst:338 5311648e4c714ed29e89e9644167f963 +#: ../../CHANGES.rst:339 b0c7c8a21cd64b8f962fe1ecc850225f msgid "[0.0.31] - 2023-08-15" msgstr "[0.0.31] - 2023-08-15" -#: ../../CHANGES.rst:343 a6a4b510a0ac4b4ebeb9160510f72d77 +#: ../../CHANGES.rst:344 aaf2b92f1c6b445eaf28e272153f622f msgid "" "Configuration option to disable the forced usage of OIDC `nonce` parameter. :" "pr:`143`" @@ -700,35 +754,35 @@ msgstr "" "Option de configuration pour désactiver l’utilisation du paramètre OIDC " "`nonce`. :pr:`143`" -#: ../../CHANGES.rst:344 37eb24ef005e44da8ae0f4c48bda766c +#: ../../CHANGES.rst:345 ed95959d47a540daa19d1f994a3dde58 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:345 2be2120a0500430a8d854d1b8f19a0bf +#: ../../CHANGES.rst:346 f39302c55f0f4ce583fe0329947a4f35 msgid "Email verification. :issue:`41` :pr:`147`" msgstr "Vérification des adresses email. :issue:`41`:pr:`147`" -#: ../../CHANGES.rst:346 d3be95492ef348efa77976515d4ffca9 +#: ../../CHANGES.rst:347 5bd084c1ce134929aa6bce51792b08fb msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "Enregistrement de comptes utilisateur. :issue:`55` :pr:`133` :pr:`148`" -#: ../../CHANGES.rst:351 1a3da0153c2b451d99665d2b61c512f2 +#: ../../CHANGES.rst:352 63c8bd04ebd7478ba461e5fa3d1e43a6 msgid "The `check` command uses the default configuration values." msgstr "La commande `check` utilise les valeurs de configuration par défaut." -#: ../../CHANGES.rst:356 15f35fa96af04e508b1a6448d866cb5f +#: ../../CHANGES.rst:357 f242fb900ae14d2eb49fd473fae1313b 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:359 add3188842de44b691dfbe3152546f7b +#: ../../CHANGES.rst:360 3b4b7eb562c14f48ac1ad43a108da59e msgid "[0.0.30] - 2023-07-06" msgstr "[0.0.30] - 2023-07-06" -#: ../../CHANGES.rst:363 b96e981450334eee84128d7dffb40d8f +#: ../../CHANGES.rst:364 53e1f5ae6b92429181ad69dd80ca4869 msgid "" "Configuration files must be updated. Check the new format with ``git diff " "0.0.29 0.0.30 canaille/conf/config.sample.toml``" @@ -736,15 +790,15 @@ 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:369 ab83051dda0b48d185846e49011f2429 +#: ../../CHANGES.rst:370 002bbcc157fc4d29aed42c1047a61aeb msgid "Configuration option to disable Javascript. :pr:`141`" msgstr "Option de configuration pour désactiver Javascript. :pr:`141" -#: ../../CHANGES.rst:374 85fb804c891f444c9de116e6e4771526 +#: ../../CHANGES.rst:375 e2785b5f1bd041a2827469286db836ff msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja." msgstr "Le paramètre de configuration ``USER_FILTER`` est analysé avec Jinja." -#: ../../CHANGES.rst:375 42d91f7cf5a3438a8bcb0bd5c193f1ea +#: ../../CHANGES.rst:376 2953a560d0414f03a2ca068f41b515ec msgid "" "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " "``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``." @@ -752,29 +806,29 @@ msgstr "" "La configuration utilise ``PRIVATE_KEY_FILE`` à la place de ``PRIVATE_KEY`` " "et ``PUBLIC_KEY_FILE`` à la place de ``PUBLIC_KEY``." -#: ../../CHANGES.rst:378 30736e0e4b854b46940e80c38023946a +#: ../../CHANGES.rst:379 5049ed8674084571afb1ff9198181b5a msgid "[0.0.29] - 2023-06-30" msgstr "[0.0.29] - 2023-06-30" -#: ../../CHANGES.rst:383 89d319fb81e148cb8f82f4b1a5a5390c +#: ../../CHANGES.rst:384 a072c563d2b549b8b4df37f718e0b892 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:386 68d32ee84fa642dfbf358ef907193eb8 +#: ../../CHANGES.rst:387 db156cd566a64fdeaf6d3a0ad118ebd4 msgid "[0.0.28] - 2023-06-30" msgstr "[0.0.28] - 2023-06-30" -#: ../../CHANGES.rst:391 5490daf53fd144c0b6b360e90bf5667b +#: ../../CHANGES.rst:392 afeaf312be7c4482acda1b70e6c78ffb msgid "A template variable was misnamed." msgstr "Une variable de template était mal nommée." -#: ../../CHANGES.rst:394 c65a251ed68a49beaff42740c12ce76a +#: ../../CHANGES.rst:395 404964fb0e2d4aa693b0c760d0e059f7 msgid "[0.0.27] - 2023-06-29" msgstr "[0.0.27] - 2023-06-29" -#: ../../CHANGES.rst:398 ccf84fb0d4cd47058c3849498bd92259 +#: ../../CHANGES.rst:399 c7974ece102f4a8198ebd2b0723293df msgid "" "Configuration files must be updated. Check the new format with ``git diff " "0.0.26 0.0.27 canaille/conf/config.sample.toml``" @@ -782,7 +836,7 @@ 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:404 0856562aad23492aa6efc7f6e4bf8f90 +#: ../../CHANGES.rst:405 96138d7e5aa54a8eb198758f5b8fc15f 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:" @@ -792,35 +846,35 @@ msgstr "" "paramètre a un suffixe *_FILE* et que sa valeur correspond à un chemin de " "fichier. :issue:`134` :pr:`134`" -#: ../../CHANGES.rst:406 24fa209262e04bcbb46c2ab7c881fbaa +#: ../../CHANGES.rst:407 6faee467462e4c119a9376683f3f7469 msgid "Field list support. :issue:`115` :pr:`136`" msgstr "Support pour les listes de champ. :issue:`115` :pr:`136`" -#: ../../CHANGES.rst:407 eaff808f9ce745c59a1b373ab0ef90ab +#: ../../CHANGES.rst:408 fc6362954cf1477898af50459f340745 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:412 8afcdb0ddd8f4e6c9941315ff1b06538 +#: ../../CHANGES.rst:413 98e71a54cd1a45a2ac5dbfb3f524332a msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "Mise à jour vers jquery 3.7.0. :pr:`138`" -#: ../../CHANGES.rst:417 a6e1f4b8a72f4500ab437a86f6e98d06 +#: ../../CHANGES.rst:418 5e461d234d4f48ee8e22788ac686e24a 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:422 cfcf7ee77bb84df1bcd780df223e9044 +#: ../../CHANGES.rst:423 7f5c0656cb6c417dafe6db0ed3554c7c msgid "Stop support for Python 3.7. :pr:`131`" msgstr "Arrêt du support pour Python 3.7. :pr:`131`" -#: ../../CHANGES.rst:425 42eab7328c604747ad6bde0067cb6603 +#: ../../CHANGES.rst:426 64c961d63d5542e586843d44c1b9d256 msgid "[0.0.26] - 2023-06-03" msgstr "[0.0.26] - 2023-06-03" -#: ../../CHANGES.rst:430 b621a029c6ec420d8708f0ddd4b49c85 +#: ../../CHANGES.rst:431 679364c32f5e423692372a1c993f3538 msgid "" "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " "OpenLDAP 2.5+. :issue:`13` :pr:`118`" @@ -828,27 +882,27 @@ 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:432 05f5b0808e74429b92bf61fa570014cf +#: ../../CHANGES.rst:433 1eb00fcc6bc243adb17806d211fa8e05 msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "Paramètre de configuration des fuseaux horaire. :issue:`137` :pr:`130`" -#: ../../CHANGES.rst:437 d7e71d1ce6704911b7e5094538cc1084 +#: ../../CHANGES.rst:438 dbf3a64e5c1d4a209416371f291d493e 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:438 e16dcca3b764486d874401ba65e22f78 +#: ../../CHANGES.rst:439 57d98f2e337e40288f8460b70a3aebfc 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:441 dcbd97e0bc4f44babcdc9ad9a503c162 +#: ../../CHANGES.rst:442 7bd1e12bdc5547ac95950d1629c6be6c msgid "[0.0.25] - 2023-05-05" msgstr "[0.0.25] - 2023-05-05" -#: ../../CHANGES.rst:446 4109765130284304994ae405858bdd3c +#: ../../CHANGES.rst:447 c520e75e7db14c95904bc57074a6a23f msgid "" "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config." "sample.toml``" @@ -856,93 +910,93 @@ msgstr "" "Vérifiez le nouveau format avec ``git diff 0.0.25 0.0.24 canaille/conf/" "config.sample.toml``" -#: ../../CHANGES.rst:451 c4645c08f789400bba029897871bb828 +#: ../../CHANGES.rst:452 ee2ef81304e643f7a203487a2ab8ee4f 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:452 3c58d21fdc81418e8ee43179c2d6384f +#: ../../CHANGES.rst:453 6610a6a82402441f9f5576cf1b0a6bb3 msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "Déplacement des paramètres de configuration OIDC dans ``OIDC``." -#: ../../CHANGES.rst:453 5b002906414e41448a3fadea87d71e45 +#: ../../CHANGES.rst:454 6b567a15909841659979d4c608c4a65f msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" "Déplacement des paramètres de configuration ``LDAP`` dans ``BACKENDS.LDAP``." -#: ../../CHANGES.rst:454 d58c113094474cf3b82e8a3303202bb6 +#: ../../CHANGES.rst:455 17aae437222746ba8b3443adc5f556b5 msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "Mise à jour vers HTMX 1.9.0. :pr:`184`" -#: ../../CHANGES.rst:455 3bbdffb495f74fccbdb9eeb78a8eaf81 +#: ../../CHANGES.rst:456 7373759762424878b0c8a0faaec36c64 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:456 0d3ea4f8df2542e0a7da5029159f31e0 +#: ../../CHANGES.rst:457 22364336688d42ac9c77bc9203cfeafb msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "Mise-à-jour vers `HTMX` 1.9.2. :pr:`127`" -#: ../../CHANGES.rst:461 71139e5ab6e34c2a87d51d3d04c0dbc0 +#: ../../CHANGES.rst:462 51f8a182379f40fcbb97c59ab3a964d3 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:462 e34b111a3a8b4e2da966a36107a682b5 +#: ../../CHANGES.rst:463 efea74181b5b4c40b307993e97ea35ec msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "Correction des attributs vides lors de l’enregistrement. :pr:`125`" -#: ../../CHANGES.rst:463 566d49eca850419cbb39c3a78a4160aa +#: ../../CHANGES.rst:464 51fc989c81574dae8c1242ab5ad24aaf 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:466 f461dc48e9c846628f7ddb99b18252c6 +#: ../../CHANGES.rst:467 334afb8a4e1f45c5b8b2d38c255679c4 msgid "[0.0.24] - 2023-04-07" msgstr "[0.0.24] - 2023-04-07" -#: ../../CHANGES.rst:471 007393d26d6e4375a0e05cbbf6c41d65 +#: ../../CHANGES.rst:472 bf3d671baf10499f99d287bdbc914b97 msgid "Fixed avatar update. :pr:`122`" msgstr "Correction de la mise à jour des avatars. :pr:`122`" -#: ../../CHANGES.rst:474 0ddfaf5df815484f9eb469a884e5f667 +#: ../../CHANGES.rst:475 339df86f0d1344778a5f40d4c20eafef msgid "[0.0.23] - 2023-04-05" msgstr "[0.0.23] - 2023-04-05" -#: ../../CHANGES.rst:479 2e7346baddf44a7f9f5b9a05ae826913 +#: ../../CHANGES.rst:480 48a3d313e64f4114b0831e83123c25ea msgid "Organization field. :pr:`116`" msgstr "Champ `organization` :pr:`116`" -#: ../../CHANGES.rst:480 1c68c43ae90f4e2e944dab12514f06d1 +#: ../../CHANGES.rst:481 54788639e7b14b42900ea5a7613fbbb6 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:481 bcaf8fe7d8e940f191ed6ea5178566c1 +#: ../../CHANGES.rst:482 b1a1c1d88698449eb6195003a25b67d7 msgid "Dynamic form validation. :pr:`120`" msgstr "Validation dynamique des formulaires. :pr:`120`" -#: ../../CHANGES.rst:486 2b077ff5215a4b20b8438e82f4366ada +#: ../../CHANGES.rst:487 999932f58c6b4c809b4436373faa1f13 msgid "UX rework. Submenu addition. :pr:`114`" msgstr "Travaux sur l’interface utilisateur. Ajout de sous-menus. :pr:`114`" -#: ../../CHANGES.rst:487 166152fdbf6248e8a4af29f4f3bf5b6e +#: ../../CHANGES.rst:488 7c8b2566d4db458586c8337e6741cf23 msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "Gestion correcte des fuseaux horaire des dates dans LDAP. :pr:`117`" -#: ../../CHANGES.rst:492 343c4102b6d648018544f151f97540e1 +#: ../../CHANGES.rst:493 7600d248c21e452dbe579fbdb9305e20 msgid "CSRF protection on every forms. :pr:`119`" msgstr "Protection CSRF sur tous les formulaires. :pr:`119`" -#: ../../CHANGES.rst:495 7140973831594dacad0bd205ca9b60e5 +#: ../../CHANGES.rst:496 3f9aac4badee40a484b1f5ff80bcab53 msgid "[0.0.22] - 2023-03-13" msgstr "[0.0.22] - 2023-03-13" -#: ../../CHANGES.rst:499 67dc897fec2946598dbb4fe82db8a94f +#: ../../CHANGES.rst:500 01ce5349718e429699c70113d0dcda5d msgid "" "The `Faker` library is not imported anymore when the `clean` command is " "called." @@ -950,26 +1004,26 @@ msgstr "" "La bibliothèque `Faker` n’est plus importée lorsque la commande `clean` est " "appelée." -#: ../../CHANGES.rst:502 58e3c0af1ce74125bf42a5ea16b88fbf +#: ../../CHANGES.rst:503 66d3c164cb34406f9046aa8edb9a8928 msgid "[0.0.21] - 2023-03-12" msgstr "[0.0.21] - 2023-03-12" -#: ../../CHANGES.rst:507 a25f75d9086a4499aa1088e537f21bc3 +#: ../../CHANGES.rst:508 a397eca3471640e696a9ff70fb36bef9 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:508 e848a4f5372b44249423579a7e2cdc3d +#: ../../CHANGES.rst:509 22a5f8c34f1345b5a54965ec438f8315 msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" "Suppression des jetons via l’interface administrateur. :pr:`100` :pr:`101`" -#: ../../CHANGES.rst:509 61b841de5b89407d9912c8c73309111a +#: ../../CHANGES.rst:510 6f4eca0831854f35bd47d0f0e56dd7ca msgid "Revoked consents can be restored. :pr:`103`" msgstr "Les consentements révoqués peuvent être restaurés. :pr:`103`" -#: ../../CHANGES.rst:510 656acd80913242a4820a20bc76d797e8 +#: ../../CHANGES.rst:511 cd47eb57f7fc4f1d9a0515f89faeef57 msgid "" "Pre-consented clients are displayed in the user consent list, and their " "consents can be revoked. :issue:`69` :pr:`103`" @@ -977,7 +1031,7 @@ 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:512 e08c1586240745fa9537dd7501475c0d +#: ../../CHANGES.rst:513 0f1343c1ee75454092b6de800afa42c7 msgid "" "A ``populate`` command can be used to fill the database with random users " "generated with faker. :pr:`105`" @@ -985,29 +1039,29 @@ 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:514 dc653adfdbc441589c385b956ae9739e +#: ../../CHANGES.rst:515 e44b67a6721f4e3fa68c41837a5ca554 msgid "SMTP SSL support. :pr:`108`" msgstr "Support des connexions SMTP avec SSL. :pr:`108`" -#: ../../CHANGES.rst:515 c69d8b01e4194d5b9268b84ab81849d6 +#: ../../CHANGES.rst:516 8c9317bed0bb4b27bd29987ff121b787 msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "Pagination côté serveur. :issue:`114`:pr:`111`" -#: ../../CHANGES.rst:516 5b4f3aa107a74df3ba845920503dfdc5 +#: ../../CHANGES.rst:517 0f50375487384246ab4eb7938f07db01 msgid "Department number support. :issue:`129`" msgstr "Support du champs de numéro de département. :issue:`129`" -#: ../../CHANGES.rst:517 d219e1ac8fa148d5b6e4babc678fbeb2 +#: ../../CHANGES.rst:518 727bc53d7c984ba99850545096c51202 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:518 52d2ceda28ab430a984dee19f8766b2a +#: ../../CHANGES.rst:519 2bbc467920d24e02875a5fd3199e5bcd msgid "Title edition support. :pr:`113`" msgstr "Support de l’édition du paramètre `title`. :pr:`113`" -#: ../../CHANGES.rst:523 c4aca25daa3b491f9208d71f7715800f +#: ../../CHANGES.rst:524 36b0872d19f344adb8b44ccbfd920cd8 msgid "" "Client deletion also deletes related :class:`~canaille.oidc.basemodels." "Consent`, :class:`~canaille.oidc.basemodels.Token` and :class:`~canaille." @@ -1018,63 +1072,63 @@ msgstr "" "Token` et :class:`~canaille.oidc.basemodels.AuthorizationCode`. :issue:" "`126` :pr:`98`" -#: ../../CHANGES.rst:529 a1c057df21a9436a9b149fb91fdb28d0 +#: ../../CHANGES.rst:530 bcdf981ce5eb414099830d68efe4c1b5 msgid "Removed the `DataTables` Javascript library." msgstr "Suppression de la bibliothèque Javascript `Datatables`." -#: ../../CHANGES.rst:532 74a0312b6fff499fa609d0adbe73dfac +#: ../../CHANGES.rst:533 fb503d354a2d4c92b75a9a6a603bb5f4 msgid "[0.0.20] - 2023-01-28" msgstr "[0.0.20] - 2023-01-28" -#: ../../CHANGES.rst:537 c443970df56e4203b8ee3fd9e4fa2395 +#: ../../CHANGES.rst:538 364e4a2dfd8148c0b93b75d8ff1c4214 msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "Traduction espagnole. :pr:`85` :pr:`88`" -#: ../../CHANGES.rst:538 9e42a95e59a74c5584d1144c249a57c1 +#: ../../CHANGES.rst:539 39a35892e6494270a65a235562211e53 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "Test de connectivité. :pr:`89`" -#: ../../CHANGES.rst:539 e06855259b6f463897acd0f8a23cd05e +#: ../../CHANGES.rst:540 b47b044c9d814ea98df1d057bdef5a19 msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "Mise à jour vers jquery 3.6.3. :pr:`90`" -#: ../../CHANGES.rst:540 96cb7430946248108d8c97973a4799d5 +#: ../../CHANGES.rst:541 a48c5424848f4396a6300f38b5471daf msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "Mise à jour vers Fomantic-UI 2.9.1. :pr:`90`" -#: ../../CHANGES.rst:541 5b5784d9aedb4949bac1591395fc7eb9 +#: ../../CHANGES.rst:542 7746a18d023c460c8b64b83eeb4e1895 msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "Mise à jour vers DataTAbles 1.13.1. :pr:`90`" -#: ../../CHANGES.rst:546 e88b90b5e0eb418f99ea2839c1e79943 +#: ../../CHANGES.rst:547 7e1217800b654fc8adc10eeb952cc2f5 msgid "Fix typos and grammar errors. :pr:`84`" msgstr "Correction de fautes de frappe et d’erreurs de grammaire. :pr:`84`" -#: ../../CHANGES.rst:547 d333115d646f4ccf9a5bb2dc4d23eba0 +#: ../../CHANGES.rst:548 abda017241404950b48f8efac9fdc9c9 msgid "Fix wording and punctuations. :pr:`86`" msgstr "Correction de formulations et de ponctuations. :pr:`86`" -#: ../../CHANGES.rst:548 cfc153afa2ec4bee9c2dd589a234716c +#: ../../CHANGES.rst:549 10e5ef2bbd284e31b4eda7f81f7bc477 msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "Correction de la balise HTML de langue. :issue:`122` :pr:`87`" -#: ../../CHANGES.rst:549 a2dc7b3677d040c7a43bde721f766029 +#: ../../CHANGES.rst:550 4e7702ae17ee456992ea48cd8a37e1fc 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:550 9a91064adb7f414fab73518fbc77b01d +#: ../../CHANGES.rst:551 ce0f54018448492c983b83f9f687ef82 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:553 d7a2cda6d8e24cc484f13ee4df40c1ea +#: ../../CHANGES.rst:554 c237ea1f9aac4ec2b1c843d7ab9ab218 msgid "[0.0.19] - 2023-01-14" msgstr "[0.0.19] - 2023-01-14" -#: ../../CHANGES.rst:558 f7c94b5e7545458e8375ef8a8e3dc21c +#: ../../CHANGES.rst:559 14c643ff842042b5a51f46661b7b8681 msgid "" "Ensures the token `expires_in` claim and the `access_token` `exp` claim have " "the same value. :pr:`83`" @@ -1082,11 +1136,11 @@ 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:562 9291df232e4b4a7eb97fb87504f9b8d4 +#: ../../CHANGES.rst:563 21e042a3e48f41048409e27017a970b9 msgid "[0.0.18] - 2022-12-28" msgstr "[0.0.18] - 2022-12-28" -#: ../../CHANGES.rst:567 c896b9996ab24cfeb217e9ebfdbed090 +#: ../../CHANGES.rst:568 c4b8dee13cf54cc9b3a09610a6b384a3 msgid "" "OIDC end_session was not returning the ``state`` parameter in the " "``post_logout_redirect_uri``. :pr:`82`" @@ -1094,40 +1148,40 @@ msgstr "" "Le paramètre ``state`` n’était pas transmis à l’URL de redirection post " "déconnexion. :pr:`82`" -#: ../../CHANGES.rst:571 2fa2e9a70b8d4ab4bed4d7f0d8d68f37 +#: ../../CHANGES.rst:572 353f49a6db7247d989368befd4c90822 msgid "[0.0.17] - 2022-12-26" msgstr "[0.0.17] - 2022-12-26" -#: ../../CHANGES.rst:576 cff81f4ef5254cfdb1e6ba76c2c3b9f6 +#: ../../CHANGES.rst:577 ab608e9bb5e149e39c0c59c3be3dbf66 msgid "Fixed group deletion button. :pr:`80`" msgstr "Correction du bouton de suppression de groupe. :pr:`80`" -#: ../../CHANGES.rst:577 552d92ac7c364f198201b60a3abebae2 +#: ../../CHANGES.rst:578 25c9cf71a4b84a2d9cd0f78b741c0b6f 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:580 f7c78b950b184117855277070cb4e548 +#: ../../CHANGES.rst:581 4149b3b16d764ab7905fc817ba705009 msgid "[0.0.16] - 2022-12-15" msgstr "[0.0.16] - 2022-12-15" -#: ../../CHANGES.rst:585 3e522208e81740fba479a43b017311fd +#: ../../CHANGES.rst:586 4f7b050ada524ca99110de2af98ef375 msgid "Fixed LDAP operational attributes handling." msgstr "Correction sur le comportement des attributs LDAP opérationnels." -#: ../../CHANGES.rst:588 53e83abb15b24cc0a3d589011cf7c2a3 +#: ../../CHANGES.rst:589 eb6d98c6f1954de58a40b1a7a8bc10eb msgid "[0.0.15] - 2022-12-15" msgstr "[0.0.15] - 2022-12-15" -#: ../../CHANGES.rst:593 7194a505926740e3b52b81708d2818de +#: ../../CHANGES.rst:594 a0e5a6ff923246d68231d5e1f7356f76 msgid "User can chose their display name. :pr:`77`" msgstr "Les utilisateurs peuvent choisir leur nom d’affichage. :pr:`77`" -#: ../../CHANGES.rst:594 5c5a59a03bd5497aa7474ae59e88f6bf +#: ../../CHANGES.rst:595 44c07c21854a42fc885ae1fcd1a6a201 msgid "Bumped to Authlib 1.2. :pr:`78`" msgstr "Mise à jour vers Authlib 1.2. :pr:`78`" -#: ../../CHANGES.rst:595 0a3d037fae66464b8c2dfeea28dd3eaf +#: ../../CHANGES.rst:596 1b360e7ce02f411b9834514fbc1b00c4 msgid "" "Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration " "Management Protocol. :pr:`79`" @@ -1135,26 +1189,26 @@ msgstr "" "Implémentation de la :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client " "Registration Management Protocol. :pr:`79`" -#: ../../CHANGES.rst:597 0670727ea1074acf968c49e71dc4062b +#: ../../CHANGES.rst:598 33d751e32dcd4a13adce2196a729447c 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:600 eb86b7335b7b4971812f25c9a2d37d1e +#: ../../CHANGES.rst:601 dba04a29e3a14c5fb7e9aa2a1a549a34 msgid "[0.0.14] - 2022-11-29" msgstr "[0.0.14] - 2022-11-29" -#: ../../CHANGES.rst:604 9903a64c05994256813debf83e9a6b21 +#: ../../CHANGES.rst:605 8cd0feacd2824b0b87a841aa5d4ee1ba msgid "Fixed translation catalogs packaging." msgstr "Correction de l'empaquetage des catalogues de traduction." -#: ../../CHANGES.rst:607 eb1e508e7d2c46bdb471cffecbe4d897 +#: ../../CHANGES.rst:608 b60ffadb24184fa2a813cf0c67a816a0 msgid "[0.0.13] - 2022-11-21" msgstr "[0.0.13] - 2022-11-21" -#: ../../CHANGES.rst:612 6e71d21752234824bc42897b8a434bb3 +#: ../../CHANGES.rst:613 9f23aca3972f48e9bc8d9cf2c760257b msgid "" "Fixed a bug on the contacts field in the admin client form following the " "LDAP schema update of 0.0.12." @@ -1163,7 +1217,7 @@ msgstr "" "d’administration des clients OIDC, du à la mise à jour des schémas LDAP de " "la version 0.0.12." -#: ../../CHANGES.rst:614 374bd3f105af42bc8ea5c0de35e7437f +#: ../../CHANGES.rst:615 6c68ccda597a42df9148cfef906797ae msgid "" "Fixed a bug happening during RP initiated logout on clients without " "`post_logout_redirect_uri` defined." @@ -1171,39 +1225,39 @@ 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:616 6244294cde9d429dbab852b0f7721160 +#: ../../CHANGES.rst:617 ac6c8083aa374040984d0350fa2fbc36 msgid "Gitlab CI fix. :pr:`64`" msgstr "Correction de l’intégration continue de Gitlab. :pr:`64`" -#: ../../CHANGES.rst:617 8dc7de6abbd447f4a78272f33cbcb6cf +#: ../../CHANGES.rst:618 a747a08976904f3fb6bc3381b8c94e61 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:618 be276c6c0aed433987b562fa51a9af06 +#: ../../CHANGES.rst:619 6a64b2d613c14ae9b7973dad5c7c925d 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:619 45c4b643c08f4e98b8eb1994cca78051 +#: ../../CHANGES.rst:620 29182f0e7f1248e1a1c917b6ae0dfd01 msgid "Fixed schema path on installation. :pr:`68`" msgstr "Correction des chemins d’installation des schémas. :pr:`68`" -#: ../../CHANGES.rst:620 490ff7e15c244e1c80522169f52be22c +#: ../../CHANGES.rst:621 bb240d19b70243efb891b21b8a241bc2 msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "Correction du paramètre ``software_statement` de la RFC7591. :pr:`70`" -#: ../../CHANGES.rst:621 13d139a4ca6b420eb0780952acd8582c +#: ../../CHANGES.rst:622 7f9a0251d66846479a85943aa1fbe036 msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" "Correction de la désactivation du pré-consentement des clients. :pr:`72`" -#: ../../CHANGES.rst:626 f863beea190c4605afc13c35d7828c7e +#: ../../CHANGES.rst:627 03fac1bbdf3342018f4eb1b6efa8b465 msgid "Python 3.11 support. :pr:`61`" msgstr "Support de Python 3.11. :pr:`61`" -#: ../../CHANGES.rst:627 dfa820f752f64485950bd9f2f4f2f798 +#: ../../CHANGES.rst:628 ba0b5e607d0a40e29cdcdc1a6cc98147 msgid "" "``apparmor`` slapd configuration instructions in the documentation page for " "contributions. :pr:`66`" @@ -1211,11 +1265,11 @@ msgstr "" "Instructions concernant la configuration ``apparmor`` pour OpenLDAP dans la " "page de documentation sur les contributions. :pr:`66`" -#: ../../CHANGES.rst:628 33f4b497e723467fb7cca94de105b331 +#: ../../CHANGES.rst:629 235a8b4a7ac74cc089299db6c43f5a94 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "Support de l’attribut utilisateur ``preferredLanguage``. :pr:`75`" -#: ../../CHANGES.rst:633 80931cb05ba54eb0bdd13af0e69ae5c4 +#: ../../CHANGES.rst:634 b8515bd5812547b9b6408e07754188bf msgid "" "Replaced the use of the deprecated `FLASK_ENV` environment variable by " "`FLASK_DEBUG`." @@ -1223,7 +1277,7 @@ msgstr "" "Remplacement de la variable d’environnement dépréciée `FLASK_ENV` par " "`FLASK_DEBUG`." -#: ../../CHANGES.rst:635 74c0ecca84cb4195b047360a2a12b281 +#: ../../CHANGES.rst:636 722ab05a3e8240b3a984e91cbcb85f2c msgid "" "Dynamically generate the server metadata. Users won't have to copy and " "manually edit ``oauth-authorizationserver.json`` and ``openid-configuration." @@ -1233,70 +1287,70 @@ msgstr "" "plus à copier manuellement et éditer les fichiers ``oauth-" "authorizationserver.json`` et ``openid-configuration.json``. :pr:`71`" -#: ../../CHANGES.rst:638 b56f59b2dd124c91a6268830cf4ddecc +#: ../../CHANGES.rst:639 a79d0a5fc950458f9ea40f5fa340ae2d 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:639 d701256eb4764f81827acd7b0a0dbda3 +#: ../../CHANGES.rst:640 f5c1547a0084442eba537cccef2a3181 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:642 45607852e443428199051f1ecba9ba24 +#: ../../CHANGES.rst:643 c9903f9704254bd8856c6fb23a3f7f34 msgid "[0.0.12] - 2022-10-24" msgstr "[0.0.12] - 2022-10-24" -#: ../../CHANGES.rst:647 9997d515babd44b4841ef0218885f1f1 +#: ../../CHANGES.rst:648 713bdc2d9dee45d0b80eead40194b1f7 msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "Support basique du point de terminaison WebFinger. :pr:`59`" -#: ../../CHANGES.rst:648 509a601f77664756bc01064f20359cf6 +#: ../../CHANGES.rst:649 cc2f977715cb4c8ba51d4d34f6a4151f msgid "Bumped to FomanticUI 2.9.0." msgstr "Mise à jour vers FomanticUI 2.9.0." -#: ../../CHANGES.rst:649 2cfcbdba2e9541dbab610bc724a2683a +#: ../../CHANGES.rst:650 a41e569505ed46e8a30eabb1605a9f4e msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" "Implémentation de l’enregistrement dynamique des clients OIDC. :pr:`60`" -#: ../../CHANGES.rst:652 4acb242ffb5440d1a468e2d3c3856fe8 +#: ../../CHANGES.rst:653 40e16cae3052481c9a967a80643e51dc msgid "[0.0.11] - 2022-08-11" msgstr "[0.0.11] - 2022-08-11" -#: ../../CHANGES.rst:657 0c4bd2691ba9453b88a686a22ede18ef +#: ../../CHANGES.rst:658 ac2a36a292ee496ba78a96711e33b778 msgid "Default theme has a dark variant. :pr:`57`" msgstr "Le thème par défaut a une variante sombre. :pr:`57`" -#: ../../CHANGES.rst:662 d3cabac68def4f77a693a6159bf2f5c0 +#: ../../CHANGES.rst:663 c4d05a11686d406bba007ff8d333de4d msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "Correction du binaire manquant ``canaille``. :pr:`58`" -#: ../../CHANGES.rst:665 735459f4aeea42c6b0f7be4a2b06802f +#: ../../CHANGES.rst:666 1d3f0b2e79a94cf787d645b8898bce4a msgid "[0.0.10] - 2022-07-07" msgstr "[0.0.10] - 2022-07-07" -#: ../../CHANGES.rst:670 f9dfd87d0fa145579e2297b27b61a11b +#: ../../CHANGES.rst:671 eaf79a2a1e6f4b1e9c3b3823e5dda85b msgid "Online demo. :pr:`55`" msgstr "Démo en ligne. :pr:`55`" -#: ../../CHANGES.rst:671 5e5eef7b53ce470ab0a0137617552a9c +#: ../../CHANGES.rst:672 0d80f6e630d049c9ad813e945376ab83 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:672 f7b8675a05b64bafb3efbbad603537ce +#: ../../CHANGES.rst:673 559c5036f54d4cacab704fb3cdf57958 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:675 a14c8084a27d463f82c1573d946a6676 +#: ../../CHANGES.rst:676 5395b02e05a04ce19c8d9cf8c0d54845 msgid "[0.0.9] - 2022-06-05" msgstr "[0.0.9] - 2022-06-05" -#: ../../CHANGES.rst:680 d04e2396209641cc84fa39d8bb397eaa +#: ../../CHANGES.rst:681 d6b2f45bfea548cebbe625ae282f95c0 msgid "" "``DISABLE_PASSWORD_RESET`` configuration option to disable password " "recovery. :pr:`46`" @@ -1304,112 +1358,112 @@ 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:681 01acc147a456445eb3858de7b0586dca +#: ../../CHANGES.rst:682 216697ca6fc046a28864aa8152639a7c 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:682 dafb92303cb147909db73fdc619f1267 +#: ../../CHANGES.rst:683 ea4420bc7f1c4c568d8da8657deddb66 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "Implémentation de la norme OIDC `RP-initiated logout` :pr:`54`" -#: ../../CHANGES.rst:687 f672b1443aa9498994204b20952103e4 +#: ../../CHANGES.rst:688 72b36fc3a5e74417b5fdcb5a23be8c12 msgid "Bumped to Authlib 1. :pr:`48`" msgstr "Mise à jour vers Authlib 1. :pr:`48`" -#: ../../CHANGES.rst:688 18c1456a82f748cd9ee0d6abcb40801f +#: ../../CHANGES.rst:689 4fbf3c55b45a4a119e339bd126960d20 msgid "Various documentation improvements. :pr:`50`" msgstr "Diverses améliorations de la documentation. :pr:`50`" -#: ../../CHANGES.rst:689 77c7a3b3242647718a3a94a1fc4d05a1 +#: ../../CHANGES.rst:690 45feed1105504c609b5df975797e4194 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:690 3b65181a80b64d0d8a474a5e643d3f80 +#: ../../CHANGES.rst:691 c4542cdb5f7c4d58b07b4b0a90cb302d msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`" msgstr "Tests additionnels concernant le paramètre OIDC ``nonce``. :pr:`52`" -#: ../../CHANGES.rst:694 35eef6ab06b940e8ad49bf31b7620404 +#: ../../CHANGES.rst:695 b327af2d08cb437e9b4751818cf8a8e2 msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "Comportement et valeur par défaut de ``HIDE_INVALID_LOGIN``." -#: ../../CHANGES.rst:695 2792732f7d154df2b11a35b13114939b +#: ../../CHANGES.rst:696 b000da6a9373445dad688a3b780a6aa0 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:698 8766634316d146ab8929259434391f34 +#: ../../CHANGES.rst:699 b2b2047443544b74a71bc79ff8c5f47b msgid "[0.0.8] - 2022-03-15" msgstr "[0.0.8] - 2022-03-15" -#: ../../CHANGES.rst:703 f053b2fe7153473a81cb24bfc2b90c7d +#: ../../CHANGES.rst:704 375d29aba6424d43b859b8c3edfa80ba msgid "Fixed dependencies." msgstr "Correction des dépendances." -#: ../../CHANGES.rst:706 6fe1289ea759485b9c3c7658461a409d +#: ../../CHANGES.rst:707 aeb08878a74b4f47b6d37baacf675b15 msgid "[0.0.7] - 2022-03-15" msgstr "[0.0.7] - 2022-03-15" -#: ../../CHANGES.rst:711 f40f5e320ea4412fadc8f1bc1d99198c +#: ../../CHANGES.rst:712 34c20276bd7c45bcb792f22355e4927a 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:714 ac9b3059b303486a9b31536f1726d873 +#: ../../CHANGES.rst:715 0976abec0d0b46a3ae20e83d110393ec msgid "[0.0.6] - 2022-03-08" msgstr "[0.0.6] - 2022-03-08" -#: ../../CHANGES.rst:719 357a41c66f054b9b830d9ae20551690d +#: ../../CHANGES.rst:720 d963ca446eb94c6e9aeb75012abb1cfd msgid "Access token are JWT. :pr:`38`" msgstr "Les jetons d’accès sont des JWT. :pr:`38`" -#: ../../CHANGES.rst:724 20b619f456934ab09712d95d37ef12cd +#: ../../CHANGES.rst:725 02ca5edc4d13450db7f18d59d45864bf msgid "Default groups on invitations. :pr:`41`" msgstr "Groupes par défaut lors des invitations. :pr:`41`" -#: ../../CHANGES.rst:725 74f8d8568cd1405bbef739de7b92f380 +#: ../../CHANGES.rst:726 5891d198061a448c9ba57ffdbc6f801d 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:728 936cdbdb780241beb677c1a3c5d21735 +#: ../../CHANGES.rst:729 c3272c14158a40f59a6b0f77af890f33 msgid "[0.0.5] - 2022-02-17" msgstr "[0.0.5] - 2022-02-17" -#: ../../CHANGES.rst:733 b49925c79428413ca8c31eff4f42a588 +#: ../../CHANGES.rst:734 406e2245d9dc4d679bdcbd6b5728861e msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "Les objects LDAP ont de nouveaux identifiants. :pr:`37`" -#: ../../CHANGES.rst:738 21e3bd1145ce480ea8a82394722cef34 +#: ../../CHANGES.rst:739 a9f0c61002d0458eb30d4affda6e47c1 msgid "Admin menu dropdown display. :pr:`39`" msgstr "Le menu d’administration est déroulant. :pr:`39`" -#: ../../CHANGES.rst:739 b50bd877e6fa4055a450f65d4e0e6951 +#: ../../CHANGES.rst:740 fe303a61e23a434a890964802224e16a 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:742 93523c049fd2438b9f8dbb942b657b7c +#: ../../CHANGES.rst:743 5bd8b178d1d5466e844942b7afed166e msgid "[0.0.4] - 2022-02-16" msgstr "[0.0.4] - 2022-02-16" -#: ../../CHANGES.rst:747 9cc5e4c0be3e43f98a84d076d254a7a8 +#: ../../CHANGES.rst:748 649efb86b8b2433589e7bbbdd8b5cd1e msgid "Client pre-authorization. :pr:`11`" msgstr "Pré-autorisation des clients OIDC. :pr:`11`" -#: ../../CHANGES.rst:748 b1444e5514e3495f8f05b00bfb31e54b +#: ../../CHANGES.rst:749 6e7050395d194611ad2c085e64f383a2 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:749 81badbb21dfe4dd0bd990037947c24cf +#: ../../CHANGES.rst:750 5ae674761b1f4b2ea7718a8d8f227016 msgid "" "Update consents when a scope required is larger than the scope of an already " "given consent. :pr:`13`" @@ -1417,37 +1471,37 @@ msgstr "" "Mise à jour des consentements lorsque le domaine requis est plus large que " "le domaine déjà autorisé. :pr:`13`" -#: ../../CHANGES.rst:751 5f6092f6103d401e9fe4554e04ad12cb +#: ../../CHANGES.rst:752 5fb12e8bee6440d5912e9ebd8921a6e3 msgid "Theme customization. :pr:`15`" msgstr "Personnalisation du thème. :pr:`15`" -#: ../../CHANGES.rst:752 7e99d3a9c9134144a8e18989e6d0d633 +#: ../../CHANGES.rst:753 c2ebd08df453407f97b9eebd16b55149 msgid "Logging configuration. :pr:`16`" msgstr "Configuration de la journalisation. :pr:`16`" -#: ../../CHANGES.rst:753 abd6618054b443efbb5101e9c32f0c90 +#: ../../CHANGES.rst:754 06ac3fd9e9474c87a1d5dce79d49f547 msgid "Installation command. :pr:`17`" msgstr "Commande d’installation. :pr:`17`" -#: ../../CHANGES.rst:754 18c69372e28c42c4b0ac0cae51fcd8aa +#: ../../CHANGES.rst:755 5b18c8b637654faa84da8cf06f428780 msgid "Invitation links. :pr:`18`" msgstr "Liens d’invitation. :pr:`18`" -#: ../../CHANGES.rst:755 2e35dc7cf246485c97650451d1f41d93 +#: ../../CHANGES.rst:756 13e0a85eb2b7475181bdd35f25eecee6 msgid "Advanced permissions. :pr:`20`" msgstr "Permissions avancées. :pr:`20`" -#: ../../CHANGES.rst:756 ef3b8ab7e89448089a9d09363832c7cc +#: ../../CHANGES.rst:757 2d166176352d463282ef0c831cba992c msgid "An option to not use OIDC. :pr:`23`" msgstr "Une option pour désactiver OIDC. :pr:`23`" -#: ../../CHANGES.rst:757 4d5d5581283a4eaabab00c6df18077a0 +#: ../../CHANGES.rst:758 3b87847e50664f6196aa406788838dc7 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:758 a54b117ff68e47eabb66aa0a741790b1 +#: ../../CHANGES.rst:759 de8d6a74115549b8adc25882f14e9588 msgid "" "Login placeholder dynamically generated according to the configuration. :pr:" "`25`" @@ -1455,56 +1509,56 @@ msgstr "" "Le texte d’exemple du champ de connexion est généré dynamiquement en " "fonction de la configuration. :pr:`25`" -#: ../../CHANGES.rst:759 8593aca44439457296e5591823f56739 +#: ../../CHANGES.rst:760 c5919e02f35e45469b725fd79aade908 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:760 548d5d09a1da4104aed49324dd3d96b6 +#: ../../CHANGES.rst:761 607e9f8c23b54e8c998700ff4416eaec msgid "Avatar support. :pr:`27`" msgstr "Support des avatars. :pr:`27`" -#: ../../CHANGES.rst:761 e6275bae918547beab8caabaf64f57db +#: ../../CHANGES.rst:762 c279a511c9b141568ede28b7c0afa583 msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "Paramètres des jetons d’accès dynamiques et configurables. :pr:`28`" -#: ../../CHANGES.rst:762 82bbcaaa7973438696de021fbff14354 +#: ../../CHANGES.rst:763 08fa58159ca6437e8f1beca79627fa27 msgid "UI improvements. :pr:`29`" msgstr "Améliorations de l’interface utilisateur. :pr:`29`" -#: ../../CHANGES.rst:763 70cd1dd3d81d4288b1c6bca674492944 +#: ../../CHANGES.rst:764 2a2b659fe7154b799ce44fafb902fd57 msgid "Invitation links expiration. :pr:`30`" msgstr "Expiration des liens d’invitation. :pr:`30`" -#: ../../CHANGES.rst:764 af865fef102c44bc801e8aec157c2835 +#: ../../CHANGES.rst:765 ce7aa46cc889408aa52bbb62f76c92b6 msgid "Invitees can choose their IDs. :pr:`31`" msgstr "Les invités peuvent choisir leur identifiant. :pr:`31`" -#: ../../CHANGES.rst:765 d194b87cfbd94dd398f1c58bec6e4c37 +#: ../../CHANGES.rst:766 6bdec9f52f5044e698c2bf619c587280 msgid "LDAP backend refactoring. :pr:`35`" msgstr "Ré-usinage concernant la base de données LDAP. :pr:`35`" -#: ../../CHANGES.rst:770 2409763cd25243c9a80678c470fa336d +#: ../../CHANGES.rst:771 e819e93e00234beea6d9820e82fde531 msgid "Fixed ghost members in a group. :pr:`14`" msgstr "Correction des membres fantômes dans les groupes. :pr:`14`" -#: ../../CHANGES.rst:771 ae04a8fa1896467792d8aaaf161fed29 +#: ../../CHANGES.rst:772 10dd9d261d284523a84fd5c59050af24 msgid "Fixed email sender names. :pr:`19`" msgstr "Correction de l’adresse email des émetteurs. :pr:`19`" -#: ../../CHANGES.rst:772 596c5956ebc6442984251ca5c558834e +#: ../../CHANGES.rst:773 8b309c5389bf44e8ac69e53c2765b585 msgid "Fixed filter being not escaped. :pr:`21`" msgstr "Les filtres n’étaient pas échappés. :pr:`21`" -#: ../../CHANGES.rst:773 bbf97ea202404efd8708cfbed4bbfe74 +#: ../../CHANGES.rst:774 cd93af35f9cc4576b1659289218ec809 msgid "Demo script good practices. :pr:`32`" msgstr "Bonnes pratiques du script de démo. :pr:`32`" -#: ../../CHANGES.rst:774 8d176b7d4da5419d8768430eeb01036c +#: ../../CHANGES.rst:775 9e92fa5ce3cd43848cc7c809c709180c msgid "Binary path for Debian. :pr:`33`" msgstr "Chemins des binaires pour Debian. :pr:`33`" -#: ../../CHANGES.rst:775 004ecd0e934049ef823bbf0d63f75c14 +#: ../../CHANGES.rst:776 7d0dadcab0a644aba779030c25e2fc88 msgid "" "Last name was not mandatory in the forms while this was mandatory in the " "LDAP server. :pr:`34`" @@ -1512,97 +1566,97 @@ msgstr "" "Le nom de famille était facultatif dans les formulaires alors que c’est un " "paramètre obligatoire pour LDAP. :pr:`34`" -#: ../../CHANGES.rst:777 c6de3dbeeb5f40ff85c60e062271bfdb +#: ../../CHANGES.rst:778 4526606a32614a238d9ba69b3f3c311d msgid "Spelling typos. :pr:`36`" msgstr "Corrections de fautes d’orthographe. :pr:`36`" -#: ../../CHANGES.rst:780 d49aed2f00e346cc8adaa26aa54f470a +#: ../../CHANGES.rst:781 c92de561587746169e06e8a51bd2efcd msgid "[0.0.3] - 2021-10-13" msgstr "[0.0.3] - 2021-10-13" -#: ../../CHANGES.rst:785 0b32a6319c044bba95b3a00f245c6956 +#: ../../CHANGES.rst:786 b4e4578702394d8db53727dca04e2eeb msgid "Two-steps sign-in. :issue:`49`" msgstr "Connexion en deux étapes. :issue:`49`" -#: ../../CHANGES.rst:786 4cf53569893c4b0ba8eab17b44a4a15b +#: ../../CHANGES.rst:787 f1f267f1648f4866b3b003c271acb344 msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "Les jetons peuvent avoir plusieurs audiences. :issue:`62` :pr:`9`" -#: ../../CHANGES.rst:787 2956507b8bba47839fef6f9a63d5321a +#: ../../CHANGES.rst:788 51257e276adb454f9bd203167e591489 msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "Commande de vérification de la configuration. :issue:`66` :pr:`8`" -#: ../../CHANGES.rst:788 0415c157cb414913b3d7748afba41cda +#: ../../CHANGES.rst:789 5684d9f7c259429290886a77f263ce3f msgid "Groups management. :issue:`12` :pr:`6`" msgstr "Gestion des groupes. :issue:`12` :pr:`6`" -#: ../../CHANGES.rst:793 e08a9eafc49f45cbb361ed3bd89d4649 +#: ../../CHANGES.rst:794 c439c2e96fa14377bc990f5fc2cd65bc 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:794 48e63a4a411d4aab8259f74b1d257a37 +#: ../../CHANGES.rst:795 0c8a65056b0c4684984d84f76362f380 msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" "Support du paramètre ``sub``dans l’introspection OIDC. :issue:`64` :pr:`7`" -#: ../../CHANGES.rst:797 2a9047b937be481f811eb403d6bf7fd9 +#: ../../CHANGES.rst:798 664b613f4fd74b97a6caa749d9c5fd58 msgid "[0.0.2] - 2021-01-06" msgstr "[0.0.2] - 2021-01-06" -#: ../../CHANGES.rst:802 9f74458dacff435998774594822a1506 +#: ../../CHANGES.rst:803 2a77b05db06141a9918f93152e999c25 msgid "Login page is responsive. :issue:`1`" msgstr "La page de connexion est réactive. :issue:`1`" -#: ../../CHANGES.rst:803 8a87683d8d524cd482264473256b3777 +#: ../../CHANGES.rst:804 6d5de8101cf648e3b546489ba36f58aa 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:804 c777083179094cd994619adcfc8499d9 +#: ../../CHANGES.rst:805 b945b81cdb88450c92efe96b2baa1329 msgid "Password recovery interface. :issue:`3`" msgstr "Interface de réinitialisation des mots de passe. :issue:`3`" -#: ../../CHANGES.rst:805 c7393dc1bb6a4290bfdb2d59a3fef0c9 +#: ../../CHANGES.rst:806 89545855a2d04788922fe2566668d450 msgid "User profile interface. :issue:`4`" msgstr "Interface de gestion des profiles utilisateur. :issue:`4`" -#: ../../CHANGES.rst:806 e874e0e97cae4310ba62553c3d31cd16 +#: ../../CHANGES.rst:807 909bce16a1e349f6b070d4b2fb7dc069 msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "Renommage du projet en *Canaille*. :issue:`5`" -#: ../../CHANGES.rst:807 27a300eabaaf4644989d134ccca22dd8 +#: ../../CHANGES.rst:808 f1cd27a5a0794001afd13fdacf6fc6c5 msgid "Command to remove old tokens. :issue:`17`" msgstr "Commande pour supprimer les jetons expirés. :issue:`17`" -#: ../../CHANGES.rst:808 8e168b1583984a71848678112365d1c7 +#: ../../CHANGES.rst:809 17fa5866a3994849b85361163b9ea131 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:809 901de9a21dd94541b3c23946ada4cd88 +#: ../../CHANGES.rst:810 9565eb5071fa47ddae91f5f76af6b048 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:810 62c1e3da0a87437aaa529dcc936c7dbc +#: ../../CHANGES.rst:811 8386c50a80aa4b8ca9ce34942d659216 msgid "Improved consents page. :issue:`27`" msgstr "Améliorations sur la page de consentement. :issue:`27`" -#: ../../CHANGES.rst:811 f816ffeb73244ae0b1171b8c156d1e12 +#: ../../CHANGES.rst:812 0aa2212e1af549f8bdce3c9588cd6109 msgid "Admin user page. :issue:`8`" msgstr "Page d’administration des utilisateurs. :issue:`8`" -#: ../../CHANGES.rst:812 2241f2b45f1e426f99f68ccc516c6b60 +#: ../../CHANGES.rst:813 0c8c21373574440392345e305971d258 msgid "Project logo. :pr:`29`" msgstr "Logo pour le projet. :pr:`29`" -#: ../../CHANGES.rst:813 dd802cef3e384fdc928fc43178ab119a +#: ../../CHANGES.rst:814 912385ce9ea24b4b81f77904ad670901 msgid "" "User account self-deletion can be enabled in the configuration with " "`SELF_DELETION`. :issue:`35`" @@ -1610,22 +1664,22 @@ msgstr "" "L’auto-suppression des comptes est configurable avec le paramètre de " "configuration ``SELF_DELETION``. :issue:`35`" -#: ../../CHANGES.rst:814 75d6d908a827424284ea63478783cbf9 +#: ../../CHANGES.rst:815 447289b003f64e72b8b0977842a73f9c msgid "Admins can impersonate users. :issue:`39`" msgstr "" "Les administrateurs peuvent prendre l’identité des utilisateurs. :issue:`39`" -#: ../../CHANGES.rst:815 b4eee6e748f94ba9b6e62e2e7fd4d86b +#: ../../CHANGES.rst:816 ad67189130fd49868fcb0abfad1e7275 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:816 44489482b8d54ae78c70959758d6f825 +#: ../../CHANGES.rst:817 660c1528bbe0431aa50394306e761072 msgid "Admins can remove clients. :pr:`45`" msgstr "Les administrateurs peuvent supprimer des clients. :pr:`45`" -#: ../../CHANGES.rst:817 be6e5371ee2a48efa0d9d276e9caa9a0 +#: ../../CHANGES.rst:818 3aa25de74978491ab76de431e7819552 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`" @@ -1634,39 +1688,39 @@ msgstr "" "laisser ou non les utilisateurs savoir si le compte avec lequel ils tentent " "de se connecter existe ou pas. :pr:`48`" -#: ../../CHANGES.rst:819 b1df16b2411a440d8d2a0745c972f368 +#: ../../CHANGES.rst:820 44549258486845fab0456f113a04f98b msgid "Password initialization mail. :pr:`51`" msgstr "Courriels d’initialisation des mots de passe. :pr:`51`" -#: ../../CHANGES.rst:824 ba317999584d46d7b5bfda36157bc111 +#: ../../CHANGES.rst:825 11f9843c7ed348d89ec776212da1f871 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "Traductions des formulaires. :issue:`19` :issue:`23`" -#: ../../CHANGES.rst:825 e0d773fd3f814a438321528df1c4d67d +#: ../../CHANGES.rst:826 115b5ed2ccf441d59dd25dc521fb148e msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "Utilisations d’autres polices que celles de Google Fonts. :issue:`21`" -#: ../../CHANGES.rst:830 d7c5d0509cfe422ab95beb9c1929e413 +#: ../../CHANGES.rst:831 ce6a992d5aa3472aa464e0aae5e1dd58 msgid "'My tokens' page. :issue:`22`" msgstr "Page « Mes jetons ». :issue:`22`" -#: ../../CHANGES.rst:833 35ab727ebe564ff2a2aa3e28f9392f5b +#: ../../CHANGES.rst:834 5c71c7871c87474a9a6e956d46958569 msgid "[0.0.1] - 2020-10-21" msgstr "[0.0.1] - 2020-10-21" -#: ../../CHANGES.rst:838 487e834d3b154f69991d042f97ce3734 +#: ../../CHANGES.rst:839 174e925430f14fad869e0c91923805af msgid "Initial release." msgstr "Publication initiale." -#: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3 +#: ../../CONTRIBUTING.rst:2 0990185d86db4ce8a07d51360d1322d3 msgid "Contributions" msgstr "Contributions" -#: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc +#: ../../CONTRIBUTING.rst:4 da4d8554175642ba94b4f7e339063077 msgid "Contributions are welcome!" msgstr "Les contributions sont bienvenues !" -#: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d +#: ../../CONTRIBUTING.rst:6 7c2b65c2bab049f7ae36d441f0956ecd msgid "" "The repository is hosted at `gitlab.com/yaal/canaille `_." @@ -1674,11 +1728,11 @@ msgstr "" "Le dépôt de code est hébergé sur `gitlab.com/yaal/canaille `_." -#: ../../CONTRIBUTING.rst:9 880fd4b263fa4f5aa77f826cf6d7a13e +#: ../../CONTRIBUTING.rst:9 a673ec733c0a4064b2cd6cb76e454637 msgid "Discuss" msgstr "Discuter" -#: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c +#: ../../CONTRIBUTING.rst:11 1cb0899f872a4345aa339d9f3a6139a3 msgid "" "If you want to implement a feature or a bugfix, please start by discussing " "it with us on the `bugtracker `_ " @@ -1689,17 +1743,17 @@ msgstr "" "gestion de ticket `_ ou bien sur " "le `salon Matrix `_." -#: ../../CONTRIBUTING.rst:16 032421a7ce0548e38943bb37b9e46f90 +#: ../../CONTRIBUTING.rst:16 393a353bc9ee457e876a227f79bddc75 msgid "Development environment" msgstr "Environnement de développement" -#: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264 +#: ../../CONTRIBUTING.rst:18 7948bd5b6ee144f59136b49cfb7ee55f 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 +#: ../../CONTRIBUTING.rst:20 f119e4446ee4463d80ce3fe3e0588b06 msgid "" "The only tool required for local development is `uv`. Make sure to have uv " "`installed on your computer `_ afin de pouvoir développer Canaille." -#: ../../CONTRIBUTING.rst:24 56f217cf35444c72b1bc1a1cb3ee9e53 +#: ../../CONTRIBUTING.rst:24 632e3a0e19ab4c97aea1bfdfd0b5c165 msgid "Initialize your development environment with:" msgstr "Initialisez votre environnement de développement avec :" -#: ../../CONTRIBUTING.rst:26 9cf0a292c2bb408fa660e14ab61f0e43 +#: ../../CONTRIBUTING.rst:26 507673718d174120a28e7afc5a110ec7 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 " @@ -1723,7 +1777,7 @@ msgstr "" "développement minimal. Cela vous permettra d’exécuter les tests avec ``uv " "pytest --backend memory``." -#: ../../CONTRIBUTING.rst:27 8d29fc6ad3bd43c5b232963f5137c91a +#: ../../CONTRIBUTING.rst:27 942fe3cb54354168a07c3862241e378c msgid "" "``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal " "working development environment with SQLite backend support. This will allow " @@ -1734,7 +1788,7 @@ msgstr "" "SQLite. Cela vous permettra d’exécuter les tests avec ``uv pytest --backend " "sql``." -#: ../../CONTRIBUTING.rst:28 928d535d56314259b20055eea3a4ceb4 +#: ../../CONTRIBUTING.rst:28 18e74ae611944f71b212e9072eb24b3e msgid "" "``uv sync --extra front --extra oidc --extra ldap`` to have a minimal " "working development environment with LDAP backend support. This will allow " @@ -1745,7 +1799,7 @@ msgstr "" "données LDAP. Cela vous permettra d’exécuter les tests avec ``uv pytest --" "backend ldap``." -#: ../../CONTRIBUTING.rst:29 56b8780399064aec89d3099841d1b017 +#: ../../CONTRIBUTING.rst:29 4a5010a9a38349dbb5af58ff13291b28 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 " @@ -1760,47 +1814,47 @@ msgstr "" "compilées, vous voudrez probablement vérifier que `GCC` et `cargo` sont " "installés sur votre système." -#: ../../CONTRIBUTING.rst:32 1a514a3605f243979b2d04e1a329368a +#: ../../CONTRIBUTING.rst:32 75f515626b4f4524b29f13d98acf40ad 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 +#: ../../CONTRIBUTING.rst:34 7eb94a5ef2ee4a4db852ca0988e51945 msgid "A canaille server at `localhost:5000 `_" msgstr "" "Un serveur Canaille à l’adresse `localhost:5000 `_" -#: ../../CONTRIBUTING.rst:35 d028b9cbae714b2d945ba4d70a75fb99 +#: ../../CONTRIBUTING.rst:35 ad12ff8db3d64a02b528e93c352ebdf1 msgid "A dummy client at `localhost:5001 `_" msgstr "" "Un client factice à l’adresse `localhost:5001 `_" -#: ../../CONTRIBUTING.rst:36 dbd0340fc974432798237b9b3efe01ea +#: ../../CONTRIBUTING.rst:36 2cd9a0e0ac94408289a0d31a15112fd0 msgid "Another dummy client at `localhost:5002 `_" msgstr "" "Un autre client factice à l’adresse `localhost:5002 `_" -#: ../../CONTRIBUTING.rst:38 9ff28ddd679b42f4a5bf288242e8c827 +#: ../../CONTRIBUTING.rst:38 e3696d8d026b4c0391112ce8c19e90b1 msgid "The canaille server has some default users:" msgstr "Le serveur Canaille embarque quelques utilisateurs par défaut :" -#: ../../CONTRIBUTING.rst:40 324e9f4f1d744fa49a0c3e7fe60cf46b +#: ../../CONTRIBUTING.rst:40 8f956c9e5db842f6a5e28e81353915f9 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 +#: ../../CONTRIBUTING.rst:41 b2efc68d24d34fa39590ef3064ce84b0 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 +#: ../../CONTRIBUTING.rst:42 d38003f0a5674760918da590be8b7c60 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 +#: ../../CONTRIBUTING.rst:43 9cf3b6e86c78488fbadac5d7f7da7081 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 " @@ -1812,31 +1866,31 @@ msgstr "" "est configuré)." #: ../development/specifications.rst:106 ../../CONTRIBUTING.rst:48 -#: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da +#: 381b89217b0348debccf9ea7d3e494b8 24da1fbbb1214b0aad0e8cfd91ebad9f msgid "Backends" msgstr "Backends" -#: ../../CONTRIBUTING.rst:50 12c4afcb316c448797ed9784ef9fbaa1 +#: ../../CONTRIBUTING.rst:50 a456ad4a727440eea70c2267c7dd5a8a msgid "Canaille comes with several backends:" msgstr "Canaille peut se connecter à plusieurs types de bases de données :" -#: ../../CONTRIBUTING.rst:52 853d2b906b80415db33c707e29640f4c +#: ../../CONTRIBUTING.rst:52 d658db4aa8734153b436094cd3c588b2 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 +#: ../../CONTRIBUTING.rst:53 d8b76bacd56f44168825850444a6b29e msgid "a `sql` backend, based on sqlalchemy" msgstr "une base de données `SQL`, utilsant SQLAlchemy" -#: ../../CONTRIBUTING.rst:54 ad6d07459c274a9e8282e290875d5bfb +#: ../../CONTRIBUTING.rst:54 0b6fbdf76a3748059ed8f25be5597e12 msgid "a production-ready `LDAP` backend" msgstr "une base de données `LDAP` prête à l’emploi" -#: ../../CONTRIBUTING.rst:57 7db1494e281b4b89949e18e1ece1cb6c +#: ../../CONTRIBUTING.rst:57 a131ee5f73f3462281ec7b8ce52c4ff2 msgid "Docker environment" msgstr "Environnement Docker" -#: ../../CONTRIBUTING.rst:59 c8e61bddd24e4af0ab8ee2bd2709652d +#: ../../CONTRIBUTING.rst:59 934a3551784041c2a96d1040950cf880 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, " @@ -1853,24 +1907,24 @@ msgstr "" "`localhost`, vous devez configurer votre ordinateur pour que `canaille` " "pointe vers `localhost`." -#: ../../CONTRIBUTING.rst:64 0e3e6469d25f43998fce20bcb1291b86 +#: ../../CONTRIBUTING.rst:64 669dec4ddb9844a097afd2f606725df1 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 +#: ../../CONTRIBUTING.rst:70 9bdeeebb82004fabb71ccd006be5a152 msgid "To launch containers, use:" msgstr "Pour lancer les conteneurs, utilisez :" #: ../development/specifications.rst:108 ../tutorial/databases.rst:16 #: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:108 -#: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012 -#: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9 +#: e147d723475a42de95ae6b307ec2c1b3 129d25dfcdd144ccb4be37e7474aed23 +#: e6e3a6c57dbd41f4bbb3846087970020 cdf80b9bdb0a4d59b519e6d6ffd71ae3 msgid "SQL" msgstr "SQL" #: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:109 -#: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95 +#: 24ef4199122140dd8f6df3109ee6544e 19b6a09e2468439b82b110ec4c051ae6 msgid "" "With the SQL backend, the demo instance will load and save data in a local " "sqlite database." @@ -1879,50 +1933,50 @@ msgstr "" "enregistrera les données dans un fichier sqlite local." #: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:111 -#: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d +#: 9bc9fa8549854c99ad7f739ec5317a99 573978fa6ecb432fa0d54cc76e8f2861 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:117 e5f82f8945b747ac81b31a20cc241e5d -#: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8 +#: ../../CONTRIBUTING.rst:117 c9ac76f0f24b441aa9632911fb19ff7e +#: d578daebea3f4c2cb6fe0d4866bcb690 b22dc1aeb5f0489c9a2228869072255b msgid "Memory" msgstr "En-mémoire" #: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:118 -#: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc +#: 8d19234a6dd74306bd775fc44ac43c63 9be657a56d1c460b9ce184d59e8b1c5f 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:120 -#: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38 +#: 8f594f36a26342d8a6c1b8f53ab7dcd2 2c26d8e08f034833b27c02831de86710 msgid "Run the demo instance with the memory backend" msgstr "Lancer l’instance de démonstration avec la base de données en mémoire" -#: ../development/specifications.rst:108 ../tutorial/databases.rst:32 +#: ../development/specifications.rst:108 ../tutorial/databases.rst:45 #: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:126 -#: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e -#: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65 +#: c135807ed63542f1ae515a60df0501ba 00ed3f79be9f4e7588e38a777da737ab +#: 5933c483337e4ebb9390a59a166e2a13 2c30cc73fa584d5886d6f04ed75f1b1d msgid "LDAP" msgstr "LDAP" #: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:127 -#: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569 +#: 83b3c6b4940141b885f051fb82b84125 054bfb478e684320a73b57569eec14df 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:129 -#: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb +#: 6e2da183608c4e7bb87e38a2c66aa63b 73a67cd951644177bdccca3a08deb606 msgid "Run the demo instance with the LDAP backend" msgstr "Lancer l’instance de démo avec le support de LDAP" -#: ../../CONTRIBUTING.rst:105 9e2c9acef9184e34b00d62c97980467d +#: ../../CONTRIBUTING.rst:105 2fa57166974946a899931022ba5fad8a msgid "Local environment" msgstr "Environnement local" -#: ../../CONTRIBUTING.rst:135 5fffaf4bff884b5a839078ad5a889fc9 +#: ../../CONTRIBUTING.rst:135 8283fb57ce51423a9b3541571cc4cd0b msgid "" "If you want to run the demo locally with the LDAP backend, you need to have " "`OpenLDAP `_ installed on your system. It is " @@ -1933,7 +1987,7 @@ msgstr "" "installé sur votre système. OpenLDAP est généralement fourni via les paquets " "nommés ``slapd`` ou ``openldap``." -#: ../../CONTRIBUTING.rst:140 aa9aab912ff04dd68c3b59bf1e36575a +#: ../../CONTRIBUTING.rst:140 6e8c5a2f92e348ab9afedd54df75c46a 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 " @@ -1944,11 +1998,11 @@ msgstr "" "`_ ou le `salon Matrix `_." -#: ../../CONTRIBUTING.rst:150 3d21757ba34c4721af043c150330c2e4 +#: ../../CONTRIBUTING.rst:150 c78ca4223f9645a583ac47bd1aa5c146 msgid "Populate the database" msgstr "Remplissage de la base de données" -#: ../../CONTRIBUTING.rst:152 a412d39e98cf44f6b911566e1ebcdbde +#: ../../CONTRIBUTING.rst:152 bb0e31cb292b423fba42e70830997721 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:" @@ -1957,7 +2011,7 @@ msgstr "" "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:163 cdf90f875bcc44d5b41197a7cdbb275c +#: ../../CONTRIBUTING.rst:163 cbb12aab253c455fa1b1754f2eb0729a msgid "" "Adapt to use either the `ldap` or the `sql` configuration file. Note that " "this will not work with the memory backend." @@ -1965,11 +2019,11 @@ 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:166 2db32f774df8429fa4c9e83d00616a96 +#: ../../CONTRIBUTING.rst:166 0e899d83156d4e029681d634b1dec436 msgid "Unit tests" msgstr "Tests unitaires" -#: ../../CONTRIBUTING.rst:168 5d6a9b57b35d49c48e2b615f8128ebcc +#: ../../CONTRIBUTING.rst:168 39be72b7c6d54603abbca8de879267c5 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 " @@ -1980,7 +2034,7 @@ msgstr "" "supportés. Tout doit être au vert avant que les contributions soient " "fusionnées." -#: ../../CONTRIBUTING.rst:171 e1e6e475ff78404f930bb453f1f26e3b +#: ../../CONTRIBUTING.rst:171 45992e8a617143e6a2b805043155118a msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." @@ -1989,7 +2043,7 @@ msgstr "" "argumentes ``--backend memory``, ``--backend sql`` ou ``--backend ldap`` à " "pytest et tox." -#: ../../CONTRIBUTING.rst:173 2cb85029b4274de388878da3d3285369 +#: ../../CONTRIBUTING.rst:173 8162f265527e4a42a0ab95ec14e769a4 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-" @@ -2002,11 +2056,11 @@ msgstr "" "--cov-report=html`. Vous pouvez ensuite consulter le rapport de couverture " "HTML dans le dossier `htmlcov` nouvellement créé." -#: ../../CONTRIBUTING.rst:178 4408d499056c480f86f450a781d2ca0d +#: ../../CONTRIBUTING.rst:178 775bdfa6e27e469383647d7d603659a1 msgid "Code style" msgstr "Style de code" -#: ../../CONTRIBUTING.rst:180 93e483f2a66a4d8f82feb8ca9a739818 +#: ../../CONTRIBUTING.rst:180 b309d56f31904c9da28ceb01fe67d6f9 msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " @@ -2020,11 +2074,11 @@ msgstr "" "style à chaque commit, vous pouvez utiliser la configuration `pre-commit " "`_ avec ``uv run pre-commit install``." -#: ../../CONTRIBUTING.rst:186 0dca6207e6734ab487cb3fe72c3e90e8 +#: ../../CONTRIBUTING.rst:186 dbbdab0936124ac2a12af49411a84128 msgid "Front" msgstr "Interface utilisateur" -#: ../../CONTRIBUTING.rst:188 930e01d770324dc68f73095cd5456a8e +#: ../../CONTRIBUTING.rst:188 799d621279764c62af4239338d80db8a msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_. Les parties dynamiques utilisent `HTMX `_." -#: ../../CONTRIBUTING.rst:191 fc0da8a2736e461dab5a7d242c1cfa9a +#: ../../CONTRIBUTING.rst:191 128898c5e69d49368cdbf572550dacca msgid "" "Using Javascript in the interface is tolerated, but the whole website MUST " "be accessible for browsers without Javascript support, and without any " @@ -2043,7 +2097,7 @@ msgstr "" "l’application DOIT pouvoir être utilisé par des navigateurs sans support " "Javascript, et sans perte de fonctionnalité." -#: ../../CONTRIBUTING.rst:193 a13b055a65244362a025440451de998d +#: ../../CONTRIBUTING.rst:193 dc05fa959ec8437381264442b6a30974 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 " @@ -2053,16 +2107,16 @@ msgstr "" "nouvelles contributions ne devraient pas utiliser jQuery. Lisez le `ticket à " "ce sujet`_." -#: ../index.rst:71 ../../CONTRIBUTING.rst:198 e3ff6afa466e4e61aa4f677cd58d3ed2 -#: a08d8d5331494e7d93508eaf25f41a07 +#: ../index.rst:71 ../../CONTRIBUTING.rst:198 392f1081f6e94b6da5679a367a2e7a4a +#: 0f273ce3769347ce8015316671ac1b15 msgid "Documentation" msgstr "Documentation" -#: ../../CONTRIBUTING.rst:200 2e1fdcae75de46a6b50db7e4155758af +#: ../../CONTRIBUTING.rst:200 b5151aeda933407bb66f3ea0d6ba101e 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:206 94405109592b47c09c8726c305fa5edc +#: ../../CONTRIBUTING.rst:206 39f2fefbdf4343ccb8641e3dcc1549b4 msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" @@ -2070,15 +2124,15 @@ msgstr "" "Vous pouvez aussi exécuter `sphinx` à la main, cela devrait être plus rapide " "puisque cela évite l’initialisation des environnements tox :" -#: ../../CONTRIBUTING.rst:212 fe4610d142474897ae4f97d321448fac +#: ../../CONTRIBUTING.rst:212 89531c0a7d17422684603832f8aeef47 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:215 bf09dd8ed31742bca2fa80175ae85bb3 +#: ../../CONTRIBUTING.rst:215 bb87f6e759f140baa631b9a44d008e97 msgid "Code translation" msgstr "Traduction du code" -#: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f +#: ../../canaille/translations/README.rst:1 c4bd0dcdf5b847958c1713690a062440 msgid "" "Translations are done with `Weblate `__." @@ -2086,7 +2140,7 @@ msgstr "" "Les traductions s’effectuent sur `Weblate `_." -#: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd +#: ../../canaille/translations/README.rst:3 04a9342ea51b4cceb41bf7505907566a msgid "" "The following commands are there as documentation, only the message " "extraction is needed for contributors. All the other steps are automatically " @@ -2097,12 +2151,14 @@ msgstr "" "étapes sont effectuées automatiquement par Weblate." #: readme.rst:6 ../../canaille/translations/README.rst:8 -#: ea5bd05b09984bcaa643efa7a1a7618c 33490a8ff4a3465fb8648393ff65eb75 +#: 84706a46430343e6aa358b28a46feff2 08d06911b6e54459881d14deaf9a7a80 +#: 33cedfb8b8624971bbe4cb2413fbdb15 msgid "Message extraction" msgstr "Extraction des messages" #: readme.rst:8 ../../canaille/translations/README.rst:10 -#: 210e9ff98db74777830a5a1f4746df44 16b22e2bc3cf495bbef529f5732887e3 +#: 4ade1dc0d8cb420cb02eae9fd4fd3653 d8994cc54925437687864ded269ddc34 +#: 384b7d18414843f9adfa40c46f734da5 msgid "" "After you have edited translatable strings, you should extract the messages " "with:" @@ -2111,12 +2167,14 @@ msgstr "" "extraire les messages avec :" #: readme.rst:15 ../../canaille/translations/README.rst:17 -#: 54ecd51acf494402964ae281c6cd639b 02fa7225075346f89ad702cba8aabdeb +#: 1e09dc8b659c479eb2f6f943786e423e 6ddd54ecd3f540b28fea415cea1199df +#: 8492e236ff844116b90640e12b246f67 msgid "Language addition" msgstr "Ajout de langues" #: readme.rst:17 ../../canaille/translations/README.rst:19 -#: 5429b47768e2472ea597ed48140a5621 015d6a437f7e4d099c8cad60986c0b68 +#: 0720284c793641c5a85eecc25ba0d9b3 0aea2aff48bf4743b456f7a56cd41359 +#: 9aaae4da193146b4b4f41aa2bd467336 msgid "" "You can add a new language manually with the following command, however this " "should not be needed as Weblate takes car of this:" @@ -2125,11 +2183,11 @@ msgstr "" "suivante, cependant cela ne devrait pas être nécessaire puisque Weblate s'en " "occupe automatiquement :" -#: ../../canaille/translations/README.rst:26 bdfbb4ef60c54b26abf457ba930b7fcf +#: ../../canaille/translations/README.rst:26 25ee62b065294ad5adf105b9d575587b msgid "Catalog update" msgstr "Mise à jour des catalogues" -#: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25 +#: ../../canaille/translations/README.rst:28 20e76bc5528c40b4bdd89c629723e8c4 msgid "" "You can update the catalogs with the following command, however this should " "not be needed as Weblate automatically update language catalogs when it " @@ -2142,11 +2200,11 @@ msgstr "" "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 +#: ../../canaille/translations/README.rst:36 15327a715c38464fa9dfb969965c2ac1 msgid "Catalog compilation" msgstr "Compilation des catalogues" -#: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6 +#: ../../canaille/translations/README.rst:38 4c95a49edb0740d0ad34d7eee9466334 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 " @@ -2159,12 +2217,12 @@ msgstr "" "lancement de l’instance de démonstration et avant la compilation du paquet " "Python de Canaille :" -#: ../../CONTRIBUTING.rst:221 4ff341d941384c029ed9c0b49d1062f9 +#: ../../CONTRIBUTING.rst:221 da97f28b857241879092e1c0a45cc6d6 msgid "Documentation translation" msgstr "Traduction de la documentation" -#: readme.rst:1 35fff9d115334ec6aa6a99ec5da8a27f -#: 7abe83f2eeb54b3f9f3d1a8542696765 +#: readme.rst:1 9776df929dbd40f59315d9dad326da0a +#: 127143cd0922422c941bd0880cb85699 msgid "" "Translations are done with `Weblate `__." @@ -2172,8 +2230,8 @@ msgstr "" "Les traductions s’effectuent sur `Weblate `__." -#: readme.rst:3 de92a131ecf44614963dd89770f593ae -#: 0ca00925251d48668c7673ddece41d66 +#: readme.rst:3 b1e092b9af914bbaa60034638b5feb44 +#: cb5ccfce511a4bff97a39b300396dfce msgid "" "The following commands are there as documentation, only the message " "extraction and the language addition is needed for contributors." @@ -2182,16 +2240,16 @@ msgstr "" "l’extraction de message et l’ajout de langues de traduction sont utiles aux " "contributeurs." -#: readme.rst:24 3d142fe9f633400ea029e949f1e869ee -#: 74cc2740b1584972aa3c0e672dff5f3e +#: readme.rst:24 9312e9d146484a30b47297cfe934dcb7 +#: f6ae3452c2de41c397aec993afaab244 msgid "Build the documentation in another language" msgstr "Construire la documentation dans une autre langue" -#: ../../CONTRIBUTING.rst:226 4b1dc3dae99f4c6fbbeec3e54be3e922 +#: ../../CONTRIBUTING.rst:226 588494c60125438a9a70645678f05ca3 msgid "Publish a new release" msgstr "Publier une nouvelle version" -#: ../../CONTRIBUTING.rst:228 975b37a07edc4a42bbef14c2ca80a34f +#: ../../CONTRIBUTING.rst:228 420e9e7fcb244f18b3db1d1b9c52d92c msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" @@ -2199,7 +2257,7 @@ 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:229 e9bd8386c6c64ef99aac12ee831f39d1 +#: ../../CONTRIBUTING.rst:229 00227bd468c34010a3883e4e0f90d8e3 msgid "" "Check that tests are still green for every supported python version, and " "that coverage is still at 100%, by running ``uv run tox``;" @@ -2208,7 +2266,7 @@ msgstr "" "Python, et que la couverture de code est toujours de 100%, en lançant ``uv " "run tox`` ;" -#: ../../CONTRIBUTING.rst:230 3e7d5493a8e44c1a9067010115678723 +#: ../../CONTRIBUTING.rst:230 72f3b000f5b1489384c00d6e266c63a8 msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" @@ -2216,7 +2274,7 @@ msgstr "" "Vérifiez que les instances de démonstration sont toujours fonctionnelles, à " "la fois en local et avec Docker ;" -#: ../../CONTRIBUTING.rst:231 fe7867ea9416424e81c518f77853958a +#: ../../CONTRIBUTING.rst:231 5bea104b168a477f9accf8d55549330e msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" @@ -2224,19 +2282,19 @@ msgstr "" "Vérifiez que les :ref:`development/changelog:notes de versioin` sont " "correctement renseignées ;" -#: ../../CONTRIBUTING.rst:232 7d89adc1c3e6478ab9e8faa02f97bf03 +#: ../../CONTRIBUTING.rst:232 90f263cc1eeb4ef5a42f8809672f64ef msgid "Increase the version number in ``pyproject.toml``;" msgstr "Incrémentez le numéro de version dans ``pyproject.toml`` ;" -#: ../../CONTRIBUTING.rst:233 a376131776cd4e469611fa3ad6749be9 +#: ../../CONTRIBUTING.rst:233 58fe93530d98448c82779271abb44629 msgid "Commit with ``git commit``;" msgstr "Commitez avec ``git commit`` ;" -#: ../../CONTRIBUTING.rst:234 655fd489e5324dc5b6172d438a6b8e3e +#: ../../CONTRIBUTING.rst:234 ad1df1a61c3942368ec1313411547c13 msgid "Build with ``uv build``;" msgstr "Construisez le paquet avec ``uv build`` ;" -#: ../../CONTRIBUTING.rst:235 79fc61b7c13647a285a918a0c126ea53 +#: ../../CONTRIBUTING.rst:235 0cfad1da05584638ab4bc386b666f5a3 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" @@ -2244,7 +2302,7 @@ msgstr "" "Publiez le paquet sur l’instance de test de PyPI avec ``uv publish --publish-" "url https://test.pypi.org/legacy/`` ;" -#: ../../CONTRIBUTING.rst:236 93540129ce0c440eba4da63ed3ddb769 +#: ../../CONTRIBUTING.rst:236 f6308d8a0b3f4db4bc7c7907d8a1f266 msgid "" "Install the test package somewhere with ``pip install --extra-index-url " "https://test.pypi.org/simple --upgrade canaille``. Check that everything " @@ -2254,15 +2312,15 @@ msgstr "" "index-url https://test.pypi.org/simple --upgrade canaille``. Vérifiez que " "l’installation s’est bien passée ;" -#: ../../CONTRIBUTING.rst:237 8a73b31d1fe14fdda15e6c2dea0cafc9 +#: ../../CONTRIBUTING.rst:237 0e10ccf92af749d49e9bfea50fd82a50 msgid "Publish on production PyPI ``uv publish``;" msgstr "Publiez sur l’instance de production de PyPI avec ``uv publish`` ;" -#: ../../CONTRIBUTING.rst:238 93131bb37ccc4207825449d393f92201 +#: ../../CONTRIBUTING.rst:238 fa1c23c9661d4fb8b0f5d291a64d49f7 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "Étiquetez le commit avec ``git tag XX.YY.ZZ`` ;" -#: ../../CONTRIBUTING.rst:239 a98a5168d5f949ec9e96f16d8ff8b6f5 +#: ../../CONTRIBUTING.rst:239 7a281f02d2a741c892e150979920d23b msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." @@ -2271,15 +2329,15 @@ msgstr "" "--tags``." #: ../development/index.rst:2 ../tutorial/theming.rst:41 -#: c0f14bad2988468fa0700bbd47fe1de0 294492704f9349cba94a11db140b19ab +#: 52e76c88219e4de19a2b82b2a2c1c4d8 1b6948f6a143409db5b73d81af367214 msgid "Development" msgstr "Développement" -#: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911 +#: ../development/specifications.rst:2 b3876dc3555842a49a1c8e1eb079fbe1 msgid "Specifications" msgstr "Normes" -#: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6 +#: ../development/specifications.rst:4 8ce7c58ef8634acb8f37bf04fde97d9c msgid "" "This page details which specifications are implemented in Canaille, and " "compares Canaille with other well-known identity providers." @@ -2287,27 +2345,27 @@ 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 +#: ../development/specifications.rst:7 4c4e202076854f99b4d398d1e3719296 msgid "State of the specs in Canaille" msgstr "L’état des spécifications dans Canaille" -#: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c +#: ../development/specifications.rst:10 682849a438ce4c9eb771d18c1c3e21b4 msgid "OAuth2" msgstr "OAuth2" -#: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e +#: ../development/specifications.rst:12 829d6454dfd14680b17fad372f8cca40 msgid "" "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" "✅ `RFC6749: OAuth 2.0 Framework `_" -#: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3 +#: ../development/specifications.rst:13 f115a6d1703c4250ab425bb030e48939 msgid "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" -#: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278 +#: ../development/specifications.rst:14 77024b74c51f45b984117084b8f7deb5 msgid "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" @@ -2315,7 +2373,7 @@ msgstr "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" -#: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc +#: ../development/specifications.rst:15 9fdf59e113c6482f8db2451c5b2df549 msgid "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" @@ -2323,7 +2381,7 @@ msgstr "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" -#: ../development/specifications.rst:16 0213796d176a4938a10c902cfb737a18 +#: ../development/specifications.rst:16 bdeb1dc9178d4e00a0377e2c22346350 msgid "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" @@ -2331,7 +2389,7 @@ msgstr "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" -#: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a +#: ../development/specifications.rst:17 fe66b098739b46ceb8bc989246fc9067 msgid "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" @@ -2339,7 +2397,7 @@ msgstr "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" -#: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d +#: ../development/specifications.rst:18 f084226dce6c46c1b6aa79e024bd4543 msgid "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" @@ -2347,7 +2405,7 @@ msgstr "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" -#: ../development/specifications.rst:19 bc914d1d327d4ce6a638c5245c4cfcc3 +#: ../development/specifications.rst:19 ae8757b89e224f2d8348038e1924d795 msgid "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" @@ -2355,7 +2413,7 @@ msgstr "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" -#: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d +#: ../development/specifications.rst:20 531dff6077d14c7aa880e7f823c72eff msgid "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" @@ -2363,7 +2421,7 @@ msgstr "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" -#: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8 +#: ../development/specifications.rst:21 6b2fc87355914a08b0e0c9e4d795443c msgid "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" @@ -2371,13 +2429,13 @@ msgstr "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" -#: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab +#: ../development/specifications.rst:22 535bd458ee31408ebe837c03ea660d17 msgid "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" -#: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d +#: ../development/specifications.rst:23 f0bfbeac37b44b8d816100505c291ba9 msgid "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" @@ -2385,7 +2443,7 @@ msgstr "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" -#: ../development/specifications.rst:24 772cbe80f8cd44faa3230ee4e690e5f3 +#: ../development/specifications.rst:24 ed43d77027d44b88b776baeebed78802 msgid "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" @@ -2393,7 +2451,7 @@ msgstr "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" -#: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e +#: ../development/specifications.rst:25 5630d915f527443e93073192b4bc2e8a msgid "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" @@ -2401,7 +2459,7 @@ msgstr "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" -#: ../development/specifications.rst:26 088615a4afdc48a5b6449df856cb1eb3 +#: ../development/specifications.rst:26 6dfb4c82f5d24fe5ac3edde198aae615 msgid "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" @@ -2409,7 +2467,7 @@ msgstr "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" -#: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a +#: ../development/specifications.rst:27 b14871b2584c40ddb76374986a69d89f msgid "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" @@ -2417,7 +2475,7 @@ msgstr "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" -#: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85 +#: ../development/specifications.rst:28 8d53df978c09455cbbd5f0b3c86fae56 msgid "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" @@ -2425,7 +2483,7 @@ msgstr "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" -#: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96 +#: ../development/specifications.rst:29 fc24914060bc4e2b83be624cf1e72c4b msgid "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" @@ -2433,7 +2491,7 @@ msgstr "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" -#: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8 +#: ../development/specifications.rst:30 415da024ae33470ead9213e36bbb5287 msgid "" "❌ `OAuth2 Multiple Response Types `_" @@ -2441,7 +2499,7 @@ msgstr "" "❌ `OAuth2 Multiple Response Types `_" -#: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac +#: ../development/specifications.rst:31 90dca086523a4b7992b11bd243218023 msgid "" "❌ `OAuth2 Form Post Response Mode `_" @@ -2450,11 +2508,11 @@ msgstr "" "post-response-mode-1_0.html>`_" #: ../development/specifications.rst:34 ../features.rst:230 -#: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42 +#: a191e1d8741042fd82b609c98cb88f49 a39756472b3e413583feb8a2a3c5a456 msgid "OpenID Connect" msgstr "OpenID Connect" -#: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c +#: ../development/specifications.rst:36 f8aa5fbf69f64a6cae6b53d13ab9f14d msgid "" "✅ `OpenID Connect Core `_" @@ -2462,7 +2520,7 @@ msgstr "" "✅ `OpenID Connect Core `_" -#: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0 +#: ../development/specifications.rst:37 0aa3c6a211764851be72af8859e72faf msgid "" "✅ `OpenID Connect Discovery `_" @@ -2470,7 +2528,7 @@ msgstr "" "✅ `OpenID Connect Discovery `_" -#: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a +#: ../development/specifications.rst:38 8731b7e2a1f440d0ab3d19f58363205b msgid "" "✅ `OpenID Connect Dynamic Client Registration `_" @@ -2478,7 +2536,7 @@ msgstr "" "✅ `OpenID Connect Dynamic Client Registration `_" -#: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d +#: ../development/specifications.rst:39 19762de2d0564cd2bab6556f5daa32b9 msgid "" "✅ `OpenID Connect RP Initiated Logout `_" @@ -2486,7 +2544,7 @@ msgstr "" "✅ `OpenID Connect RP Initiated Logout `_" -#: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a +#: ../development/specifications.rst:40 b1f99cddaa19432189ba53247b24d887 msgid "" "❌ `OpenID Connect Session Management `_" @@ -2494,7 +2552,7 @@ msgstr "" "❌ `OpenID Connect Session Management `_" -#: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844 +#: ../development/specifications.rst:41 6bc7d7cf2e6e4fbd8c5b37ee78f38da3 msgid "" "❌ `OpenID Connect Front Channel Logout `_" @@ -2502,7 +2560,7 @@ msgstr "" "❌ `OpenID Connect Front Channel Logout `_" -#: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9 +#: ../development/specifications.rst:42 c86778f4c87d4ea5bf51969fd79efa9a msgid "" "❌ `OpenID Connect Back Channel Logout `_" @@ -2510,7 +2568,7 @@ msgstr "" "❌ `OpenID Connect Back Channel Logout `_" -#: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b +#: ../development/specifications.rst:43 f29d468edc9e4c93b4e132dcb896ec23 msgid "" "❌ `OpenID Connect Back Channel Authentication Flow `_" @@ -2518,7 +2576,7 @@ msgstr "" "❌ `OpenID Connect Back Channel Authentication Flow `_" -#: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243 +#: ../development/specifications.rst:44 aca2626f01c94811ab9cbb4e11c8249a msgid "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" -#: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d +#: ../development/specifications.rst:45 5a70caff3ff34223b1fc4bd8270c2184 msgid "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" @@ -2536,7 +2594,7 @@ msgstr "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" -#: ../development/specifications.rst:46 6cfd3e82e2bb4f80a58d8864be2ef301 +#: ../development/specifications.rst:46 ca8c178eab77479991d9744e62826ca5 msgid "" "❌ `OpenID Connect Profile for SCIM Services `_" @@ -2545,15 +2603,15 @@ msgstr "" "openid-connect-scim-profile-1_0.html>`_" #: ../development/specifications.rst:49 ../development/specifications.rst:108 -#: d9278a9cbe784818b57f9fd9d76dda68 +#: 794c29185c834483b43d4cd7efa94774 4c7bd083d6eb494aa8290e0e28cf88d3 msgid "SCIM" msgstr "SCIM" -#: ../development/specifications.rst:51 6599ee73d8ab49579b0e09836d421750 +#: ../development/specifications.rst:51 9f8697b813204adba4a63ddf11a7fd36 msgid "Canaille provides a basic SCIM server implementation." msgstr "Canaille fournit une implémentation basique du protocole SCIM." -#: ../development/specifications.rst:53 c91f11a0512e4782981c5bb98a8038d7 +#: ../development/specifications.rst:53 3e956d7fa3934bc7a67befcae72393c8 msgid "" "🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, " "Overview, Concepts, and Requirements `_" -#: ../development/specifications.rst:54 2f4ea31b4c80425a8e3075b8597ae8e5 +#: ../development/specifications.rst:54 c51b643157fe4079b535244f4f63c809 msgid "" "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" @@ -2571,7 +2629,7 @@ msgstr "" "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" -#: ../development/specifications.rst:55 6ffdb285557144afb301b05c33fecddf +#: ../development/specifications.rst:55 f31d0b61f1c44de4befe75f6142c1421 msgid "" "🟠 `RFC7644: System for Cross-domain Identity Management: Protocol `_" @@ -2579,7 +2637,7 @@ msgstr "" "🟠 `RFC7644 : System for Cross-domain Identity Management: Protocol `_" -#: ../development/specifications.rst:57 0b5af403924542a99c63f28eaab81ca5 +#: ../development/specifications.rst:57 4b113baa287044a5b3710d8083f306e1 msgid "" "Client-side implementation (i.e. broadcasting changes on users and groups " "among clients) and advanced features will be implemented in the future." @@ -2588,114 +2646,114 @@ msgstr "" "des modifications sur les utilisateurs et groupes) ainsi que les " "fonctionnalités avancées seront implémentées dans le futur." -#: ../development/specifications.rst:60 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:60 68cfc580aef74b74ac47e293bbf7440e msgid "What's implemented" msgstr "Ce qui est implémenté" #: ../development/specifications.rst:62 ../development/specifications.rst:83 -#: a221acec85ca4725b2951cb9b51e20d5 a3820ca28394481b85c5906175c9211b +#: 344f97d9c70a41f2aa7db3e292674b0d 2a7e31290d3b4472a9886379380543d7 msgid "Endpoints:" msgstr "Les points terminaux :" -#: ../development/specifications.rst:64 fda698ab71304acb81f54cb02fbeea05 +#: ../development/specifications.rst:64 51a2a6bac44a4c84b78e77b3e1c03d51 msgid "/Users (GET, POST)" msgstr "/Users (GET, POST)" -#: ../development/specifications.rst:65 888be4da4f194f319087de8e766157f2 +#: ../development/specifications.rst:65 35f011e2bf79415883469e279325ef25 msgid "/Users/ (GET, PUT, DELETE)" msgstr "/Users/ (GET, PUT, DELETE)" -#: ../development/specifications.rst:66 172c39c33a9d4449b9fa08649f7e1db5 +#: ../development/specifications.rst:66 a071464fe752465bbe18f12c5f63562f msgid "/Groups (GET, POST)" msgstr "/Groups (GET, POST)" -#: ../development/specifications.rst:67 351bfa9248414180b3e2e12f3e39a7cc +#: ../development/specifications.rst:67 48d92f0c8d28471f9c4de06a6fee14aa msgid "/Groups/ (GET, PUT, DELETE)" msgstr "/Groups/ (GET, PUT, DELETE)" -#: ../development/specifications.rst:68 0b3147e232df4562abe864dcc3c62600 +#: ../development/specifications.rst:68 8b34a263d2b046cbb9a20a2083938892 msgid "/ServiceProviderConfig (GET)" msgstr "/ServiceProviderConfig (GET)" -#: ../development/specifications.rst:69 d12ef72fdb2a4faf91c5f3a6606e09d3 +#: ../development/specifications.rst:69 75ce8a0bca0543dd9059ea6b0090f9c3 msgid "/Schemas (GET)" msgstr "/Schemas (GET)" -#: ../development/specifications.rst:70 3a2387dace19496d9539e3adb6b3a634 +#: ../development/specifications.rst:70 f9e4b33f55864bc09237b0688d4c1cba msgid "/Schemas/ (GET)" msgstr "/Schemas/ (GET)" -#: ../development/specifications.rst:71 7bd1a03ce13a4a519529ffa633c39dad +#: ../development/specifications.rst:71 7315f0b03e3447bfb18af0bd54b13e99 msgid "/ResourceTypes (GET)" msgstr "/ResourceTypes (GET)" -#: ../development/specifications.rst:72 7bc66e9808184fa28e9af54c0a2ca411 +#: ../development/specifications.rst:72 cb771a93cdef478bbc6d52657d778ba1 msgid "/ResourceTypes/ (GET)" msgstr "/ResourceTypes/ (GET)" -#: ../development/specifications.rst:74 65ccf2057cb044258e738dd9dcfb0582 +#: ../development/specifications.rst:74 f8cb594cde24439c8d642d7eecdeb33d msgid "Features:" msgstr "Fonctionnalités :" -#: ../development/specifications.rst:76 ef940c8ad25f4e97a8d4fa1ee9bfd786 +#: ../development/specifications.rst:76 175a65fc837f4dc48a10d3b167a464a7 msgid ":rfc:`pagination <7644#section-3.4.2.4>`" msgstr "la :rfc:`pagination <7644#section-3.4.2.4>`" -#: ../development/specifications.rst:81 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:81 38c532b3622f4a2b8b789298a0bfed99 msgid "What is not implemented yet" msgstr "Ce qui n'est pas encore implémenté" -#: ../development/specifications.rst:85 76085a65129e4d1387aa1ccb5b5b2bba +#: ../development/specifications.rst:85 d2456827f07847dfa9f42e8bf86da08f msgid "/Users (PATCH)" msgstr "/Users (PATCH)" -#: ../development/specifications.rst:86 da3a2dd71b204dd8941958051a0ca269 +#: ../development/specifications.rst:86 6bad7d4b458c4294be2ad05dcac5abd4 msgid "/Groups (PATCH)" msgstr "/Groups (PATCH)" -#: ../development/specifications.rst:87 1936b0ba8c5743b397c3dcc914f453fc +#: ../development/specifications.rst:87 a26dd83532c44f7abad4572dd932170a msgid ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" msgstr ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" -#: ../development/specifications.rst:88 d6095a95a820448c8e93c6205907d2c0 +#: ../development/specifications.rst:88 836bfaabb5544327a40fb8c893a2f0e5 msgid ":rfc:`/Bulk <7644#section-3.11>` (POST)" msgstr ":rfc:`/Bulk <7644#section-3.11>` (POST)" -#: ../development/specifications.rst:89 8ae6230d4d04470587eabc0e85bfd237 +#: ../development/specifications.rst:89 aa37c0272ba24b308922fc40b66e3a2e msgid ":rfc:`/.search <7644#section-3.4.3>` (POST)" msgstr ":rfc:`/.search <7644#section-3.4.3>` (POST)" #: ../development/specifications.rst:91 ../features.rst:9 -#: 8b8d299ade65429ab2a1739bbeca65b0 61a68141a485477a9fb49921e7b8aa3a +#: d7b01888bb114c7d95660a93cbf52311 d58b104b8d5548c594cfd8be5a3a1adc msgid "Features" msgstr "Fonctionnalités" -#: ../development/specifications.rst:93 f85742cf16c0404a99264064c75cebbd +#: ../development/specifications.rst:93 c62cbc4b8b56467aa7fd7d0ff542fe4a msgid ":rfc:`filtering <7644#section-3.4.2.2>`" msgstr "les :rfc:`filtres <7644#section-3.4.2.2>`" -#: ../development/specifications.rst:94 e20e4adefa5947319005523f6b6a9377 +#: ../development/specifications.rst:94 7ca9fca1e13c4f79a9ba327f7ce384f6 msgid ":rfc:`sorting <7644#section-3.4.2.3>`" msgstr "le :rfc:`tri <7644#section-3.4.2.3>`" -#: ../development/specifications.rst:95 02742549d8f54bc18893ecb9c419809c +#: ../development/specifications.rst:95 5c835bee9e924b52881f7bf441ecb4e9 msgid ":rfc:`attributes selection <7644#section-3.4.2.5>`" msgstr "la :rfc:`sélection d'attributs <7644#section-3.4.2.5>`" -#: ../development/specifications.rst:96 9e10ed15bc1b477ea12326a749bf64b8 +#: ../development/specifications.rst:96 5d3dbd08058047d8a38b559ea46c277e msgid ":rfc:`ETags <7644#section-3.14>`" msgstr "les :rfc:`ETags <7644#section-3.14>`" -#: ../development/specifications.rst:99 ac600b38603f4fb999aebf5ffbe33cc7 +#: ../development/specifications.rst:99 255c6e6f83b44945a5f67191414a1b9b msgid "Comparison with other providers" msgstr "Comparaison avec d’autres serveurs d’identité" -#: ../development/specifications.rst:101 2ef9567e17694a669ed5071c882661ad +#: ../development/specifications.rst:101 4d4ac8c44b4a459792dfd9e7c931c6f4 msgid "Here is a feature comparison with other OpenID Connect server software." msgstr "" "Voici une comparaison de fonctionnalités avec d’autres serveurs d’identité." -#: ../development/specifications.rst:103 d6d241980d3e46e192dd54a5082b0197 +#: ../development/specifications.rst:103 034c310137f74d2cbaf87959b844f123 msgid "" "Canaille voluntarily only implements the OpenID Connect protocol to keep its " "codebase simple." @@ -2703,44 +2761,44 @@ msgstr "" "Afin de garder la base de code réduite, Canaille n’implémente que le " "protocole OpenID Connect." -#: ../development/specifications.rst:106 0b9a4fba353c483692ed6fb04227691e +#: ../development/specifications.rst:106 a0b6d9411ccd46a0a614e61187457f81 msgid "Software" msgstr "Logiciel" -#: ../development/specifications.rst:106 62c2fe7c97644cfa8e7d297a337bfe36 +#: ../development/specifications.rst:106 0972e311a8984d718913ab728c5a613d msgid "Project" msgstr "Projet" -#: ../development/specifications.rst:106 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:106 ec16e393279c4574919b9dc2fde6566e msgid "Protocols implementations" msgstr "Protocoles implémentés" -#: ../development/specifications.rst:108 ea237be2a99a4940be67516a1b95d97d +#: ../development/specifications.rst:108 069a90c864e9485ba71f0626a04bb7ac msgid "FLOSS" msgstr "Libre" -#: ../development/specifications.rst:108 55d5dd9174f94ca9850b999864598259 +#: ../development/specifications.rst:108 793ab8c0e5864c36951cdfe503b6b520 msgid "Language" msgstr "Langage" -#: ../development/specifications.rst:108 27002c409c6440d29ae89e91559a6994 +#: ../development/specifications.rst:108 a17def4fd4ba4cdf836371d70a58dae0 msgid "LOC" msgstr "LOC" #: ../development/specifications.rst:108 ../references/templates.rst:48 -#: 3ba35fd6c6d44150b4b049cf603e4a85 1e5e7225bddd44a4accf8159f4a489c4 +#: 2489de89a6ae4142a72fb3176f96d97c 4d2cf4eb587146ad9de3a2e651a4f59b msgid "OIDC" msgstr "OIDC" -#: ../development/specifications.rst:108 dc762bcd6eca4fc79dae1ca65c411351 +#: ../development/specifications.rst:108 fde25f12c34b4290a5781d59545fd4f5 msgid "SAML" msgstr "SAML" -#: ../development/specifications.rst:108 6ae5803282c4439a9e7b1c1570e4c505 +#: ../development/specifications.rst:108 1bf933220236402a8578cb23e99a23d6 msgid "CAS" msgstr "CAS" -#: ../development/specifications.rst:110 f4c4ac6fdea74558a74bc9a3cefbb5c7 +#: ../development/specifications.rst:110 a06c6e50e788419f8e23165436f5b64a msgid "Canaille" msgstr "Canaille" @@ -2750,25 +2808,47 @@ msgstr "Canaille" #: ../development/specifications.rst:122 ../development/specifications.rst:124 #: ../development/specifications.rst:126 ../development/specifications.rst:128 #: ../development/specifications.rst:130 ../development/specifications.rst:132 -#: 33e7166b401144bcadff959d61e03c4c c2035a448fa9405a92d51c9c90277394 -#: 7bba6b8427854a41b99c15b883290007 588ab8a50fca4528b9a471dbddfb7d4a -#: ba65de35554741a48a7eb4a72fc66433 4dd20636352243038f0bdad8d15e8449 -#: 5b23071246ab41f1abd1bfa5596a4b46 c1aa2d442f2047f9a1194e38c2b1ddd1 -#: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31 -#: f5e5911bcb704af19c073370f437c1b4 e063ffcc58474df4a66b2814eb4c0f61 -#: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4 -#: 4b09487097334807804aaba873d4dc7b c9b45500d9d145a8862c978d95329330 -#: c34b7940cbbd4218af2cb94e8eb24fc7 8a394726b7b941dfbbd8af3e546782c1 -#: f5320617a03e47dea905ac5a70208c70 +#: 8359cdf8361a4f40af83efebc710b26c 92ab0f4a4a88426788a990e1a4e66ac1 +#: 2144f214b51540269c3be06540f96d80 07291bfd83b44fea9b28698e9459714f +#: c1c334386ed74b60a5c918c27074b3b2 4141a1bf492f460f9122f6e4a6a472cc +#: 7da15555b136476c90a6ee8c07ad8931 bb31a9d5919e4ec496f1ded1061047ef +#: 29b780d8270448919bb84882ad99e208 cf66b87d6d6946b2a6a1bba66ec49866 +#: 405ec378a23f45368056001f0e125e86 32573bb2db2c48f294f1c8e99041b7ba +#: fa87dc7094444bf192921dc21d96e163 31885860425144758e2f46e1d15fb0ed +#: 4fab7f1511c941f1a2d49c35650eec5b 958e8e4c17ae448ab5446180b5bd5907 +#: 03c8b263424f44b5b671ddc157dd5cbc b417afdb4bf84c16af18d53b34834dcd +#: 5199937c1c8b4832a2f9576e4dc925d9 888dd2299cac429ca0feff30cb7ee7fd +#: 89cd7338992946d0b687a257acc47a1a 411d48d5271146c7a27f5e61927d5718 +#: 7d8bf7085a2d407b88566b752769d211 b03b87ae7f0a463f81fe51fd42c9d856 +#: d56cbf84355a44ca8b2783ca1296fe33 395c20898c52466d9ea4d48f3b51f8b5 +#: 274d57a4fe6a40bfadaff61802338c2c ee3e34ce765f4a0b9ca32df1e2154604 +#: e4b974ef3e284bb79a6af7f6ba7b6bf8 68486605ae5f433d9276e6cf2fdb6352 +#: f2f6140c99c744eba16734ae914f6068 b2dc6bf2db8d40e0923c648a7f3fbe77 +#: a6709cf0859f42bdb86a3efa686225f9 8beffdfc8f574c68bf648c43d1b9fd53 +#: 8e1c7536e3a449ffb9057ee3d9fd0616 4a99ccc8d37b4ef79c1d5fb9156cb01d +#: 559c72bcf9154c7482c3c9817c013846 d90a2be715354f9fbec07d1ddecf0587 +#: 7de72e60317f48dea89bef5d42834ce9 72dfddba807a4ff3a1b6d21f05357709 +#: c2154721e215407d9519a1364e36cf94 bcfc9457ee264da795001e4691011bf3 +#: 6a6b82c0868442c2b3910c250c9c30ff d5dff4f0dae6496a879e8b23b78f98c5 +#: 61dcd56d6ecc43b59758e02fdddc9b45 67b31d28861444308994cdf883ae317a +#: 270eace283a14d66b9e59db048efc37f 7ea946aabc7e4da186e50262a66e66a8 +#: 428c79ed0ab4413081e3cf9b65023836 8f8e1f80778c4738989497cdf6fd0cad +#: 3586504e4d564d288508699bf1a476f7 cc2d8201751c4180a568013887a8fa37 +#: 4fc53bcdaf484ca48d2d4d8be91eee4b e6544ae648cb4504a26dd8f471900b7c +#: feb5d4d093514ec682e54082d8fe615c ab882015b1b943c4b7890f07712df299 +#: 6b9ef531feaf40e8bdff9ff234df758c b9210995b5634268b16adb581dee4c0a +#: f25e1de836dc405eb0a8c879ae679dd8 0e8ef9488cc94903b2841e13fb9a19cc +#: 9a715a4a98ae4db0b95302ea696f69ff 0726f102de6646dfa28e29178067d786 +#: 6b7ffc0ef20048e0a85521ccae8f188a msgid "✅" msgstr "✅" #: ../development/specifications.rst:110 ../development/specifications.rst:116 -#: 86f975b8aaab4af9bfc62ef2df91ba28 +#: 2ce059e05f9c4da293172ace511122de e2ab2a0e8ea74bb39c1a9551b335cb61 msgid "Python" msgstr "Python" -#: ../development/specifications.rst:110 3a757539fafc4e3aa92dbdec5227a2df +#: ../development/specifications.rst:110 87708af531fc4265a4221079fa936a2c msgid "10k" msgstr "10k" @@ -2777,104 +2857,118 @@ msgstr "10k" #: ../development/specifications.rst:118 ../development/specifications.rst:120 #: ../development/specifications.rst:122 ../development/specifications.rst:126 #: ../development/specifications.rst:130 ../development/specifications.rst:132 -#: 0baee04e46584b46ab2b5bd83dea4c0d 94a1a61f502a42569788cfe93ad6bcf7 +#: a57dfb6ec28747e7b0c22d5350a438f6 7e3f062885a04d51bd3d990d0f12b3c2 +#: 7d4be1af719440a394a3c1db62aa2f57 8063e8846e4b43bd986948c13850e137 +#: 8286477f5979436697efd5449d716d5f f37761c3350c46e3be462ed8d0ca2e1e +#: e19f121e83dc41b28a0d5327d4a41286 7f3f1182bd8042f688e05e50d93fa2c9 +#: dd13ab9d853841f8949c74f2ed9e6480 0070fe7c812341df9dc54a2131baa9a7 +#: aed906e90e9e4e2c97fc4879dbada5db 8081047a12364457b6c2961c72761759 +#: cfb3090585a84c4486cd07855168bfd2 fd1891815a1344c0a6bac195dea94853 +#: b025e52c9ab64fa1a6f08154653574f0 b69c1d1477034615a2a974f68873f5f2 +#: 990657b9343d4f12b279bd27e0ee2078 572f6127a926431cbed73c7fcb29a41a msgid "❌" msgstr "❌" -#: ../development/specifications.rst:110 c3172c68b79b46e1ac155f9af8f8729f +#: ../development/specifications.rst:110 4deaec7283d04195bb4b5ce830423c17 msgid "🟠" msgstr "🟠" -#: ../development/specifications.rst:112 41d7747dc9384c6b908b8394168b5b5a +#: ../development/specifications.rst:112 ef8ef0ca3a3e41d89ca0d204cf9575ef msgid "`Auth0`_" msgstr "`Auth0`_" #: ../development/specifications.rst:112 ../development/specifications.rst:122 #: ../development/specifications.rst:124 ../development/specifications.rst:132 -#: 8f85eeab9d6945af894c55e2a4aa0b9b +#: 1ec8da617dc74ff48cc221502b18cb5f 55ff3b92c3614bc39efd55d219010756 +#: 7c8ef00509294715b264887ecdba0d35 c2bbeca5ac0541109fbfb688ce50219c +#: 621c54fa39e74dec875e6141a490d52d 01e2de36a736422bbb195cafe4d932b5 +#: 69ff3ec3345847089a98e5660b75c27b c764dfbb678342618ca6ba085ce34bff +#: 6196220072c04e4680c81a3da830f32c msgid "❔" msgstr "❔" -#: ../development/specifications.rst:114 47ff7b1213464f85b246c4282f3af933 +#: ../development/specifications.rst:114 a06e90a200c142329aab42c417145475 msgid "`Authelia`_" msgstr "`Authelia`_" #: ../development/specifications.rst:114 ../development/specifications.rst:118 -#: ../development/specifications.rst:126 5db56fd3e64948f5a108d2f74f7070b4 +#: ../development/specifications.rst:126 afc0d499c6624f029bf984a2b660a06f +#: 147dfdd1635f4d37a961194619b1b761 c9febc2d19ec455f9377f9a83cb24686 msgid "Go" msgstr "Go" #: ../development/specifications.rst:114 ../development/specifications.rst:126 -#: 741e97755b8c4478b7e19ba006898401 +#: 38acc1bf34554da2ac15381b4ae4bcbf 8fa0178c68534ff0bcf109e0713cf937 msgid "50k" msgstr "50k" -#: ../development/specifications.rst:116 7fb71b70103e40eeb178e1281ea81de3 +#: ../development/specifications.rst:116 3cc6d108c87045fbbf9a63da618a9e6e msgid "`Authentic2`_" msgstr "`Authentic2`_" -#: ../development/specifications.rst:116 cb26c38797d9416fafe5d1a1b5c5b03b +#: ../development/specifications.rst:116 a0ffc4dc899d49b08f8b32146c8a4a43 msgid "65k" msgstr "65k" -#: ../development/specifications.rst:118 6f7fc7bbb2694f09a12393a74ffc8013 +#: ../development/specifications.rst:118 1105db265e8f46369b7ddb743e1f7e9b msgid "`Authentik`_" msgstr "`Authentik`_" -#: ../development/specifications.rst:118 bb964534c0704925b6d856bd54af7c7f +#: ../development/specifications.rst:118 83b25cffb0da4a24a3b2a402d484524e msgid "55k" msgstr "55k" -#: ../development/specifications.rst:120 4604cb0778044b63807b2be23ced893c +#: ../development/specifications.rst:120 248eb430ee704fc3a24e022cfb5eee14 msgid "`CAS`_" msgstr "`CAS`_" #: ../development/specifications.rst:120 ../development/specifications.rst:124 -#: ../development/specifications.rst:128 aa3618e441ac413e83acdfe56631d15a +#: ../development/specifications.rst:128 a8b79f9ecab5469a9b80cc7e909609f6 +#: 9273ae9f8bb240dcb07cad9ca0bc19d2 7aca0c51a5bd45509421444dc8e21b00 msgid "Java" msgstr "Java" -#: ../development/specifications.rst:120 c316893b4f00454a8c5745071e0888b1 +#: ../development/specifications.rst:120 679056ff38cb4ba4b09d21fbbb583fcb msgid "360k" msgstr "360k" -#: ../development/specifications.rst:122 c8a158afb8d841209c20b9ef42e563cb +#: ../development/specifications.rst:122 5a7602cb44b545679f6f464b0c967659 msgid "`Connect2id`_" msgstr "`Connect2id`_" -#: ../development/specifications.rst:124 a264cd68201c442faf08474397c550aa +#: ../development/specifications.rst:124 07e7c1d67f2245e4b1a36a6ef061721a msgid "`Gluu`_" msgstr "`Gluu`_" -#: ../development/specifications.rst:126 e54b53bfeafd4764b01095c1cd0077b7 +#: ../development/specifications.rst:126 a8a9b571aedd4fc0bdb545fa04a09c35 msgid "`Hydra`_" msgstr "`Hydra`_" -#: ../development/specifications.rst:128 87594578370246d494ef5e63196a3a92 +#: ../development/specifications.rst:128 f354d55bcfa445269d2f873e3cad72be msgid "`Keycloak`_" msgstr "`Keycloak`_" -#: ../development/specifications.rst:128 d6304d1f41714ad5af15edb6febbfbc5 +#: ../development/specifications.rst:128 ae7e82db3a9f458f96b0d07be7f9bc60 msgid "600k" msgstr "600k" -#: ../development/specifications.rst:130 2efe7957b848447dacfecb082a95c438 +#: ../development/specifications.rst:130 0cbcdf7a4748404eb674088a9b3b26e5 msgid "`LemonLDAP`_" msgstr "`LemonLDAP`_" -#: ../development/specifications.rst:130 cdd25b565e5d4de4b4202f82f4407843 +#: ../development/specifications.rst:130 a9e79acd7894437c9b290df6b4b630db msgid "Perl" msgstr "Perl" -#: ../development/specifications.rst:130 51b2d4fcc1fc43d2a692826a2b2c62d1 +#: ../development/specifications.rst:130 a9c50fc2632c4efcbd0a7107c93c6f44 msgid "130k" msgstr "130k" -#: ../development/specifications.rst:132 4c2a5d27487345f7bc3c1bbd0c897c47 +#: ../development/specifications.rst:132 7b0328f64db64f4ab4712b67ea0793fe msgid "`Okta`_" msgstr "`Okta`_" -#: ../features.rst:11 5dd070084abb440ebf87c36df501f197 +#: ../features.rst:11 83992b326f024b0f85077ae68cb0587b msgid "" "Here are the different features that Canaille provides. You can enable any " "of those features with the :doc:`configuration ` " @@ -2888,7 +2982,7 @@ msgstr "" "`feuille de route ` pour savoir ce qui arrive dans le " "futur." -#: ../features.rst:15 83eef1f1157b4d37b4627438618f31ab +#: ../features.rst:15 e84eca88d1f945c0b75f5cb7660e147e msgid "" "Users can interact with Canaille through its :ref:`web interface ` and administrators can also use its :ref:`command line " @@ -2901,11 +2995,11 @@ msgstr "" "peut enregistrer les données dans différentes :ref:`bases de données " "`." -#: ../features.rst:19 73c7e363c37147fc825deea06ee26975 +#: ../features.rst:19 54195631200f46668dd0774d8fb1fe7c msgid "User and group management" msgstr "Gestion d’utilisateurs et de groupes" -#: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c +#: ../features.rst:21 93495d3a171a49898396742c01e8c0f6 msgid "" "Canaille web interface can be used either in :doc:`production environments " "` or locally for development purposes." @@ -2914,21 +3008,21 @@ msgstr "" "`environnements de production ` ou localement pour " "permettre les développements." -#: ../features.rst:26 ../index.rst:27 759b0714ba194bc5a5d043350cb4cd14 -#: dd79223676e0465293d1499d8929fa26 +#: ../features.rst:26 ../index.rst:27 747fc6d9c0ff4afe99f5e8c636fc0630 +#: 281a61a509c14bd785713a9e32ff21d3 msgid "Profile management" msgstr "Gestion de profil" -#: ../features.rst:28 ../features.rst:238 53e5483c51ae4df28138ae990c16de07 -#: 0a36f2261b84450b98131ff740f7ceb9 +#: ../features.rst:28 ../features.rst:238 7cd208e6778b4e3ca435fcaa282b6656 +#: 3845e2e3bc7048fb8e477f3964ea4286 msgid "Profile" msgstr "Profil" -#: ../features.rst:33 864adfa77693422cad803b08d9187a5e +#: ../features.rst:33 bd8bf9442ea64aedaa39bad6408300b6 msgid "Canaille provides an interface to manage user profiles." msgstr "Canaille fournit une interface pour gérer les profils utilisateur." -#: ../features.rst:35 505ce537381249ec82445d38a4e093df +#: ../features.rst:35 735d8c451c114d188fdfda137bb0b3da msgid "" "The exact list of displayed fields, and whether they are :attr:`writable " "` or :attr:`read-only " @@ -2942,7 +3036,7 @@ msgstr "" "paramètre utilisateur :class:`liste de contrôle d'accès (ACL) `." -#: ../features.rst:37 625c7cea8a034a7ba263a71ce0587a26 +#: ../features.rst:37 d85f58ac8b8b4d0c809d18cd01308676 msgid "" "Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit " @@ -2953,11 +3047,11 @@ msgstr "" "leur profil, modifier le profil de n'importe quel utilisateur ou ne rien " "faire du tout." -#: ../features.rst:42 530dac22b587444cbd5de9ba2d7a3a90 +#: ../features.rst:42 b0204857451143228a47d4bd0d207425 msgid "Email confirmation" msgstr "Confirmation de l'e-mail" -#: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71 +#: ../features.rst:44 6357bf8141804e8ca3c7cc4688147c79 msgid "" "If the :attr:`email confirmation feature ` is enabled, any modification or addition " @@ -2971,7 +3065,7 @@ msgstr "" "nouvelle adresse. L'e-mail contiendra un lien sur lequel l'utilisateur devra " "cliquer pour confirmer son adresse." -#: ../features.rst:46 8d597149b59e45f896eff2baa716fc20 +#: ../features.rst:46 2b8cac7a02c241db86c0e1a8977f539f msgid "" "Users with :attr:`user management permission ` can set user emails without confirmation though." @@ -2980,16 +3074,16 @@ msgstr "" "core.configuration.Permission.MANAGE_USERS>` peut paramétrer les e-mails des " "utilisateurs sans confirmation." -#: ../features.rst:51 4a6be5a6b71a4a5ea35d7c4a41630e35 +#: ../features.rst:51 5ca54af9769c4d66b1f073cf5dae0f8c msgid "Group management" msgstr "Gestion de groupes" -#: ../features.rst:53 ../features.rst:140 4824338c1fbf4fdd8c2e01534219ee98 -#: 3d8b9fc086e945d890bf9b3e01c82984 +#: ../features.rst:53 ../features.rst:140 859672dbd62e44f68edf373e3db0f25f +#: 7b785345dfe54831abb635f53566cbb4 msgid "Group edition" msgstr "Modification de groupes" -#: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729 +#: ../features.rst:58 3c406b087545469ba8233b792ccf4117 msgid "" "In a similar fashion than :ref:`profile management " "` Canaille provides an interface to manage user " @@ -2999,7 +3093,7 @@ msgstr "" "`, Canaille fournit une interface pour gérer les " "groupes d'utilisateur." -#: ../features.rst:60 b83c6d0af7fe45228496bb2c594cf88c +#: ../features.rst:60 f3aa5eee77bb4c878ea3117ef50906b1 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 " @@ -3013,13 +3107,13 @@ msgstr "" #: ../features.rst:63 ../features.rst:83 ../features.rst:149 #: ../tutorial/deployment.rst:13 ../tutorial/provisioning.rst:9 -#: 6fdf0a969ccb49e1bf9bfc28f4df9169 4065a0b70a1444058df3bb16f0abc445 -#: bc0be7a805e04b5f91b89db28d7dffae 7ab21494d11e4287acffeb771f8f5244 -#: 9df6890219304d7dbb04c9b7817147f5 +#: be163aa553874c63a119ca1e531e4926 bbcda8b5363746de842d3fd4565df358 +#: 61f8b293eb1840df8775b9a46977e68a 7d063927a16248008786ce8fff0c0f4c +#: ef513869dfee4036992c4c33ae89cb19 msgid "Todo" msgstr "À faire" -#: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7 +#: ../features.rst:64 19616dc65f50458da4280f5f0a763790 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>`." @@ -3028,7 +3122,7 @@ msgstr "" "depuis la page de paramètre de l'utilisateur, mais nous :issue:`travaillons " "à améliorer cela <192>`." -#: ../features.rst:66 6440e19e527d4d5f8abc44d99c8a3dba +#: ../features.rst:66 1f22335eacb94aa8a46554367a8edb65 msgid "" "Group management can be enable with a :attr:`dedicated user permission " "`." @@ -3036,7 +3130,7 @@ msgstr "" "La gestion de groupe peut être activée avec un :attr:`droit utilisateur " "dédié `." -#: ../features.rst:69 2382414ec97641a4925e741a26ae3148 +#: ../features.rst:69 206521f4720945159a79dcd353d89a63 msgid "" "Due to limitations in the :ref:`LDAP backend `, " "groups must have at least one member. Thus it is not possible to remove the " @@ -3046,12 +3140,12 @@ msgstr "" "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 +#: ../features.rst:75 ../index.rst:34 df0f45720dd54482a606b7384b0af773 +#: b96f3e623fbc42cc886ade8fce98b625 msgid "User authentication" msgstr "Authentification utilisateur" -#: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6 +#: ../features.rst:77 009db2e14df8413095b0d9f3150e4b5e msgid "" "Unless their account is :ref:`locked `, users can " "authenticate with a login and a password." @@ -3059,7 +3153,7 @@ 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 +#: ../features.rst:81 ad32a04ddd764be6bc4f07f835189dc1 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 " @@ -3070,7 +3164,7 @@ msgstr "" "explicite dans la configuration `." -#: ../features.rst:83 778349cb3c344689bd8cc06184005e10 +#: ../features.rst:83 160e331c61874a97aa78b514e80863ef msgid "" ":ref:`LDAP backend ` users can define which :class:" "`user field ` should be used as the login (such " @@ -3089,11 +3183,11 @@ msgstr "" "connecter avec :attr:`~canaille.core.models.User.user_name`. Nous :issue:" "`travaillons à améliorer cette situation <196>`." -#: ../features.rst:88 aa467ae3118543ed94401a8ca23776f1 +#: ../features.rst:88 eac565374d1d43499d808cb66e3db17b msgid "User registration" msgstr "Enregistrement d'un utilisateur" -#: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b +#: ../features.rst:90 b2e46804265c43df8ee0242a495608c4 msgid "" "Users can create accounts on Canaille if the :attr:`registration feature " "` is enabled. " @@ -3106,7 +3200,7 @@ msgstr "" "formulaire d'enregistrement contenant les champs détaillés dans les :class:" "`paramètres ACL ` par défaut." -#: ../features.rst:92 c1f2442a948d414e9b9983d79aa91ae4 +#: ../features.rst:92 beef77105d71424a81a7608596a70ddc msgid "" "If :attr:`email confirmation ` is also enabled, users will be sent a confirmation link " @@ -3118,12 +3212,12 @@ msgstr "" "recevront un lien de confirmation sur leur adresse e-mail. Ils devront " "cliquer dessus pour valider la création du compte." -#: ../features.rst:97 ../features.rst:99 3d200c871e19420db3ce1885f7414a3c -#: 7bf61d1ad01240f7b1ed2db4ab0fdf77 +#: ../features.rst:97 ../features.rst:99 16180dbd28a247d0b58017290d410e1c +#: 27d275b7f1524eae9a3d0bb28d27d734 msgid "User invitation" msgstr "Invitation d'utilisateur" -#: ../features.rst:104 134f042cb892434e922c01d62222ed54 +#: ../features.rst:104 9c5e83d641624935a643163f6194f1b3 msgid "" "If a :class:`mail server ` is " "configured, users with :attr:`user management permission ` peuvent créer un lien " "d'invitation pour un autre utilisateur." -#: ../features.rst:106 e054dbb49f644364a6aaadcb2f5a0024 +#: ../features.rst:106 547e556908d6485e91d11299f6d7731c msgid "" "The link goes to a registration form, even if regular :ref:`user " "registration ` is disabled." @@ -3143,15 +3237,15 @@ 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 +#: ../features.rst:108 c5f67c0c35744d06a46ff62581a68be5 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 +#: ../features.rst:113 87dc5cf8a5644adba540c43626b85116 msgid "Account locking" msgstr "Verrouillage de compte" -#: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed +#: ../features.rst:115 e06722f64e4d4b51860928e63423b9f7 msgid "" "If Canaille is plugged to a :ref:`backend ` that supports " "it, user accounts can be locked by users with :attr:`user management " @@ -3164,23 +3258,23 @@ msgstr "" "configuration.Permission.MANAGE_USERS>`. La date de verrouillage du compte " "peut être immédiate, ou bien effective à une date future définie." -#: ../features.rst:118 31e7e6b90652414ab1b450f98ddb7d53 +#: ../features.rst:118 8b1b5e618c3943a989c0d9b7958890ce msgid "At the moment a user account is locked:" msgstr "Au moment où un compte utilisateur est verrouillé :" -#: ../features.rst:120 6be8caf7464643e99cb2614ce0138045 +#: ../features.rst:120 9df53f0bc1e14517b207979063e506db msgid "their open sessions will be closed;" msgstr "leurs sessions ouvertes seront fermées ;" -#: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a +#: ../features.rst:121 76e0e046a3af405a94194bad849adca5 msgid "they won't be able to sign in again;" msgstr "ils ne pourront plus se connecter à nouveau ;" -#: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42 +#: ../features.rst:122 82e4c98b176c4d2bba2f7ce96c2322d9 msgid "no new OIDC token will be issued;" msgstr "aucun nouveau token OIDC ne sera émis ;" -#: ../features.rst:124 c784a99a157b46028eb5c3543da73e38 +#: ../features.rst:124 5f9b8faf05a246bea2a23417d83ec83d msgid "" "User accounts must be manually unlocked by an administrator for the users to " "regain access to those actions." @@ -3189,11 +3283,11 @@ msgstr "" "administrateur pour que les utilisateurs concernés récupèrent l'accès à ces " "actions." -#: ../features.rst:129 da2f0b388508475cbb3fd080de1ff44c +#: ../features.rst:129 19999c792f774669959a562731f2ae45 msgid "Account deletion" msgstr "Suppression de compte" -#: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2 +#: ../features.rst:131 7009976bf70348c5a99681fe82017a2f msgid "" "Users with the :attr:`account deletion permission ` are allowed to delete their own " @@ -3203,7 +3297,7 @@ msgstr "" "` peuvent supprimer " "leur propre compte." -#: ../features.rst:133 85f4ea778e8f45f7841ddf39f1bc8b41 +#: ../features.rst:133 2a140bd932e84750ac0b767017723fb2 msgid "" "Users that also have the :attr:`user management permission ` are also allowed to delete other " @@ -3213,11 +3307,11 @@ msgstr "" "des utilisateurs ` " "peuvent également supprimer les comptes d'autres utilisateurs." -#: ../features.rst:138 86a66e197de94dcbb90d559730b89318 +#: ../features.rst:138 93cd6c928328482a98f4ed4bf3868fb5 msgid "Password recovery" msgstr "Récupération de mot de passe" -#: ../features.rst:145 6693db5e96354da69ed660a259c109ce +#: ../features.rst:145 92d716598ce844bf80049d7c7720d73c msgid "" "If a :class:`mail server ` is " "configured and the :attr:`password recovery feature ` is " "configured, :attr:`user management permission ` are optional. If " "a :class:`mail server ` is " @@ -3284,11 +3378,11 @@ msgstr "" "dirigeant vers un formulaire permettant à l'utilisateur de choisir un mot de " "passe." -#: ../features.rst:173 412b386c0c794b5d8c71ea7b51278da8 +#: ../features.rst:173 5319e975d4fb4701b91648542a2d8828 msgid "Password compromission check" msgstr "Vérification de la compromission du mot de passe" -#: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe +#: ../features.rst:175 6808b4633ea2473480a7de609cc74213 msgid "" "If :attr:`password compromission check feature ` is enabled, Canaille will " @@ -3304,11 +3398,11 @@ msgstr "" "attr:`e-mail administrateur ` est nécessaire." -#: ../features.rst:180 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:180 71fd2622c9734be487e462b06fd8e6bf msgid "Multi-factor authentication" msgstr "Authentification multi-facteurs" -#: ../features.rst:182 2e2c9ae9e2e24bce942de98d12d7fb33 +#: ../features.rst:182 707f699e7d374657ac3b29d3e5c65eba msgid "" "If the :attr:`one-time password feature ` is set, then users will need to authenticate " @@ -3347,11 +3441,11 @@ msgstr "" "les utilisateurs devront pour s'authentifier entrer un mot de passe " "temporaire envoyé à leur numéro de téléphone principal." -#: ../features.rst:191 39adf64b80444b27bb6f9f11747a6960 +#: ../features.rst:191 92cf33b469d640cbaa67400714a54221 msgid "Intruder lockout" msgstr "Blocage des connexions infructueuses" -#: ../features.rst:193 e884c68544f2480db394e53aeb54a811 +#: ../features.rst:193 2122ba68652f47df83d6863d31d4f169 msgid "" "If the :attr:`intruder lockout feature ` is enabled, then users will have to " @@ -3362,19 +3456,19 @@ msgstr "" "utilisateurs devront attendre un temps croissant entre deux connexions " "infructueuses." -#: ../features.rst:196 cbba3fccd9f84230b6eb0774cfd7e109 +#: ../features.rst:196 8278c8d375764d8b81559827f6ec5c96 msgid "Web interface" msgstr "Interface web" -#: ../features.rst:201 fab0081b9bd4460098de6df7d8c317b5 +#: ../features.rst:201 30a7dce9d05d46bba5697e75b939ebd7 msgid "Internationalization" msgstr "Internationalisation" -#: ../features.rst:203 46cf7a3a3e9047439aa7fa6654b07921 +#: ../features.rst:203 b76e44066c3e436c8d850b9bc8552c40 msgid "Translation state" msgstr "État de la traduction" -#: ../features.rst:208 0a5afedc31de47a28d0bf7842a8558cd +#: ../features.rst:208 e2fdac042d5b4d7fb37fdebf1f54393e msgid "" "Canaile will display in your :attr:`preferred language ` if available, or your browser language if " @@ -3390,11 +3484,11 @@ msgstr "" "souhaitez, vous pouvez également :attr:`forcer une langue ` pour tous les utilisateurs." -#: ../features.rst:214 2caebf718cab47029a83bb91253e36e5 +#: ../features.rst:214 a8d7dd0ef8a148079d86252bfdb24e8d msgid "Lightweight" msgstr "Léger" -#: ../features.rst:216 e3cbad3b2af0422287a92a4094559d8b +#: ../features.rst:216 62e134fecda54ecebd2ed99cfad21431 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 " @@ -3404,11 +3498,11 @@ msgstr "" "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:220 a7db848b637a46b1874f04fb542009e2 +#: ../features.rst:220 98e5119178fe49fc865631a7f0f79683 msgid "Customizable" msgstr "Personnalisable" -#: ../features.rst:222 0c829a128889493fbc97247a60390954 +#: ../features.rst:222 0289e553e0c141c5bf0584f63db93a0b 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 ` et un :attr:`favicon " "`." -#: ../features.rst:225 3a69d40c024744af967a1408c054aca0 +#: ../features.rst:225 b12a1b77895c45c39c69711771f45cfc msgid "" "If you need more you can also use a :attr:`custom theme `." @@ -3428,7 +3522,7 @@ msgstr "" "Si vous avez besoin de plus, vous pouvez utiliser un :attr:`thème " "personnalisé `." -#: ../features.rst:232 003c4e8eee334a9d89486e2c0ae5d106 +#: ../features.rst:232 9093d3d195d14410aa63d5fb011294d9 msgid "" "Canaille implements a :ref:`subset` of the OAuth2/OpenID Connect specifications . This " @@ -3440,11 +3534,11 @@ msgstr "" "Cela permet d'avoir la :abbr:`SSO (Single Sign-On)` et la :abbr:`SLO (Single " "Log-On)` aux applications branchées à Canaille." -#: ../features.rst:236 51e9a6e1ddb04b99a6a73135fc8728e7 +#: ../features.rst:236 8d78707d882c4ad7bd911a12f77357bf msgid "Consent management" msgstr "Gestion des autorisations" -#: ../features.rst:244 a613e3d10f1243f3bc5d4e796b278c89 +#: ../features.rst:244 2f4773e2479e40b5a5b8f85b99d07d2b msgid "" "Users can give their consent to application requesting access to their " "personal information, and then revoke those consent at their will." @@ -3453,11 +3547,11 @@ msgstr "" "demandent un accès à leurs informations personnelles, et révoquer ces " "autorisations lorsqu'ils le souhaitent." -#: ../features.rst:248 115bec7ea8944f6ab98641d9bd2540ec +#: ../features.rst:248 cb6b8f0c1c3f4fba9fa0271cfde526f8 msgid "Application management" msgstr "Gestion des applications" -#: ../features.rst:250 526d36374a8747d6ad6280379bcf664c +#: ../features.rst:250 7a6c934205fd409cb24d57d8abb44f3b msgid "" "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." @@ -3466,7 +3560,7 @@ msgstr "" "Permission.MANAGE_OIDC>` nécessaire peuvent gérer les clients OIDC depuis " "l'interface web." -#: ../features.rst:252 79f0217902dc4b2ca73128ff6c16e7b5 +#: ../features.rst:252 58ff42230b714f6887b089d27d4cbb1e msgid "" "In some cases, it might be useful to avoid the consent page for some trusted " "applications, so clients can be pre-consented." @@ -3475,11 +3569,11 @@ msgstr "" "certaines applications de confiance, pour que des clients puissent être pré-" "autorisés." -#: ../features.rst:255 d1f7f85df6404afe91d29e4dee44be1d +#: ../features.rst:255 d3d907c775ac40e7804b9d807393fd24 msgid "Discovery" msgstr "Découverte" -#: ../features.rst:257 8b306f1c76664574a0f3d85805a46d87 +#: ../features.rst:257 3cbdbbb7efdf497390e96311f23ba98c msgid "" "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-" @@ -3489,11 +3583,11 @@ msgstr "" "specifications>` donc la plupart des applications branchées à Canaille " "peuvent se configurer automatiquement par eux-même." -#: ../features.rst:260 d5a2f0c4fa2f4363b5e87c4243376aaa +#: ../features.rst:260 a898023be2a341718e270e67167d0779 msgid "Dynamic Client Registration" msgstr "Enregistrement de client dynamique" -#: ../features.rst:262 800aec57df82487f80fc7da359dc5c34 +#: ../features.rst:262 ad31ff1cd9644ab683677d17732722b8 msgid "" "Canaille implements the :doc:`Dynamic Client Registration specifications " "`, so when the :attr:`feature is enabled " @@ -3507,16 +3601,16 @@ msgstr "" "DYNAMIC_CLIENT_REGISTRATION_OPEN>`, les clients peuvent s'enregistrer eux-" "même sur Canaille sans l'intervention d'un administrateur." -#: ../features.rst:265 9cae9e0af58f499dac34354e9c12785d +#: ../features.rst:265 203b8da2c05346b988887b1fbcd7eb33 msgid "System administration" msgstr "Administration système" #: ../features.rst:270 ../references/commands.rst:2 -#: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f +#: 9977d7c7ec444216ad6aae3ab99637f7 389875cae59843dc8c837dd6aaaae752 msgid "Command Line Interface" msgstr "Interface en ligne de commande" -#: ../features.rst:272 98ef5f39d74944668dfff8b63d9d6199 +#: ../features.rst:272 b8b20bc2fcf64a8d92111dcddbec0d84 msgid "" "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " "administrators in hosting and management." @@ -3525,7 +3619,7 @@ msgstr "" "en ligne de commande, pour aider les administrateurs à l'hébergement et à la " "gestion." -#: ../features.rst:274 9a30112ff2eb47c69263e73aa3c4ee15 +#: ../features.rst:274 d2b7aaf441474ac2ad1d8cc3caf1085f msgid "" "There are tools to :ref:`check your configuration ` or to :ref:" "`install missing parts `. You can use the CLI to :ref:`create " @@ -3542,7 +3636,7 @@ msgstr "" "models.User>`, :class:`groupes ` ou les  :class:" "`clients OIDC `." -#: ../features.rst:277 02d13c90aa8f41f5b1007cd67fcea510 +#: ../features.rst:277 3a7b780ed2aa4a4c809b0919ddb14f6a msgid "" "There are also tools to :ref:`fill your database ` with random " "objects, for tests purpose for instance." @@ -3551,11 +3645,11 @@ msgstr "" "` avec des objets aléatoires, par exemple à des fins de test." #: ../features.rst:282 ../tutorial/databases.rst:2 -#: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9 +#: 3da864e6a4114405bf250d130fde7a25 f0012cb6a1764925a997dd5dc87dd7d2 msgid "Databases" msgstr "Bases de données" -#: ../features.rst:284 1a7af5dc07fa4f6c9231664737ee46a7 +#: ../features.rst:284 9406baff55794744bdd337ba3d2f4a3d msgid "" "Canaille can handle data from the most :ref:`common SQL databases ` such as PostgreSQL, MariaDB or SQLite, as well as :ref:" @@ -3570,11 +3664,11 @@ msgstr "" "databases:Memory>` sans dépendances qui peut être utilisée dans des tests " "unitaires." -#: ../features.rst:290 a6a6a7334af54051aebed82d83027ea8 +#: ../features.rst:290 01c71f0086e048ecbd75c8adad975135 msgid "Logging" msgstr "Connexion" -#: ../features.rst:292 9bc7705bd378459abf2f813381aa58a6 +#: ../features.rst:292 c1c30fa9a81741bfb7da053d314a7767 msgid "" "Canaille writes :attr:`logs ` for every important event happening, to help administrators " @@ -3584,7 +3678,7 @@ msgstr "" "LOGGING>` 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:294 2aeb5161276a4f048c40a7256c3d7f0e +#: ../features.rst:294 04974cc2a4704184a19298b064ab6c2e msgid "" "The following security events are logged with the log level \"security\" for " "easy retrieval :" @@ -3592,59 +3686,59 @@ msgstr "" "Les événements de sécurité suivants sont enregistrés avec l'étiquette « " "security » pour les retrouver facilement :" -#: ../features.rst:296 ed4be0b57afe4ce9976c45f03c249444 +#: ../features.rst:296 769a0d2fbc474a72ae85d332cd09ce09 msgid "Authentication attempt" msgstr "Tentative d'authentification" -#: ../features.rst:297 452456f9907e4bbd89439903c2fc9ebc +#: ../features.rst:297 94e144420f1b4f2992067040bf4a5582 msgid "Password update" msgstr "Mise à jour du mot de passe" -#: ../features.rst:298 9ccb4ef2a139403c85223576eb87a182 +#: ../features.rst:298 38f087163a9541c29f06820437135d5c msgid "Email update" msgstr "Mise à jour de l'e-mail" -#: ../features.rst:299 bd0936deb7994f8fb59f2f0a47115edc +#: ../features.rst:299 4a9bbfa8dd4947f28bab05cf76fbb9f8 msgid "Forgotten password mail sent to user" msgstr "Mail d'oubli de mot de passe envoyé à l'utilisateur" -#: ../features.rst:300 bd0936deb7994f8fb59f2f0a47115edc +#: ../features.rst:300 38d9fce3533c4f1e94cb34743ea4fb68 msgid "One-time password mail sent to user" msgstr "Le mot de passe à usage unique a correctement été envoyé par mail" -#: ../features.rst:301 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:301 461dfd630cb34a6c833d803dbc6fde75 msgid "Multi-factor authentication reset" msgstr "Réinitialisation de l'authentification multi-facteurs" -#: ../features.rst:302 02079fe76d2041aaba48a6b2079630f1 +#: ../features.rst:302 73ad0b101d244196bb1bce7c516078a8 msgid "Token emission" msgstr "Emission de jeton" -#: ../features.rst:303 814519684d8c47a5b0b5ae6eaa9aa66e +#: ../features.rst:303 42d20b5c805c45c289c4e76202ca10ea msgid "Token refresh" msgstr "Rafraichissement de jeton" -#: ../features.rst:304 4489f99b64dd40248f28453fb8b4b0df +#: ../features.rst:304 62b5a24c52434109abbef7d96a6566da msgid "Token revokation" msgstr "Révocation de jeton" -#: ../features.rst:305 99abcc04f85649c1b184e22e67b36f18 +#: ../features.rst:305 9c696c7b26174b6bacf9a65d84f6ba8e msgid "New consent given for client application" msgstr "Nouvelle autorisation donnée pour l'application client" -#: ../features.rst:306 c64802d623a74d678c4aca29f82c39d7 +#: ../features.rst:306 f036ee77fd30459f8b17970f43d3faaa msgid "Consent revokation" msgstr "Révocation de l'autorisation" -#: ../features.rst:311 f9d92f5f76a745ee97ea36afc853c516 +#: ../features.rst:311 50c4cb979d764e9fad538a0c95490708 msgid "Development and testing tool" msgstr "Outil de développement et de test" -#: ../features.rst:316 9c0500515a5847c2bec5b1bb743f42fc +#: ../features.rst:316 28171f4aabbe4c209ba0d928d7fceb51 msgid "Unit-testing tool" msgstr "Outil de test unitaire" -#: ../features.rst:318 b1dc62a0c2024ff1bd6682408301766a +#: ../features.rst:318 b4efc9d6589d47f3816505275ce27bed msgid "" "Thanks to its lightweight :ref:`in-memory database ` and its curated :ref:`dependency list `, you can prepare data in Canaille, let your application " @@ -3688,15 +3782,15 @@ msgstr "" "Canaille, laisser votre application interagir avec, puis observer les effets " "secondaires." -#: ../features.rst:333 beb39ccb89e040118104ba0c0f41eb71 +#: ../features.rst:333 2603a014b9f74261b4e108f98b2d8e05 msgid "Roadmap" msgstr "Prévisionnel" -#: ../features.rst:336 4fee3c311fe844bbb345bd5b562844ad +#: ../features.rst:336 843a62acc9414741ace4ed40372359fe msgid "Bêta version" msgstr "Version bêta" -#: ../features.rst:338 f699343ae7fe4f12a9d12f4692c22827 +#: ../features.rst:338 5af3d35132f44adab7d0a442d742db59 msgid "" "To go out of the current Alpha version we want to achieve the following " "tasks:" @@ -3704,15 +3798,15 @@ msgstr "" "Pour sortir de la version Alpha actuelle, nous voulons réaliser les taches " "suivantes :" -#: ../features.rst:340 c8aec1fe7d574a789319e75cc64bd2e7 +#: ../features.rst:340 7f1b9a153b2a4174b7c70668fdf717b7 msgid ":issue:`Configuration validation using pydantic <138>`" msgstr ":issue:`Validation de la configuration en utilisant pydantic <138>`" -#: ../features.rst:343 706d590389f54c40ba1b219877946bb5 +#: ../features.rst:343 317b18e87a674ce5a39f0aef073a5e1c msgid "Stable version" msgstr "Version stable" -#: ../features.rst:345 54c0d4cc60054a5ebe7456575b1b70c3 +#: ../features.rst:345 074aa5b4bbf94a5282c9493291f8bcf7 msgid "" "Before we push Canaille in stable version we want to achieve the following " "tasks:" @@ -3720,67 +3814,67 @@ msgstr "" "Avant de déployer Canaille en version stable, nous voulons réaliser les " "taches suivantes :" -#: ../features.rst:348 7807e2d92e264bc78fd5b6a3c63beb3a +#: ../features.rst:348 32e169e1f36441549ddbee882110def8 msgid "Security" msgstr "Sécurité" -#: ../features.rst:350 577ab46503ee45e89daa8c42938635e5 +#: ../features.rst:350 542d78c7c5bc4dea80a39a63ce215989 msgid ":issue:`Password hashing configuration <175>`" msgstr ":issue:`Configuration du hachage du mot de passe <175>`" -#: ../features.rst:351 a337cb0aac704dbca90dd70f1d68456d +#: ../features.rst:351 e0ab0dd48216432ea2f3e683b151f7d0 msgid ":issue:`Authentication logging policy <177>`" msgstr ":issue:`Politique de journalisation des authentifications <177>`" -#: ../features.rst:352 39adf64b80444b27bb6f9f11747a6960 +#: ../features.rst:352 1e865664fc1b4c6ea020e5924e36e4f0 msgid ":issue:`Intruder lockout <173>`" msgstr ":issue:`Blocage des connexions après échecs <173>`" -#: ../features.rst:353 3eeac7b1dec04fe9b990864b8810db50 +#: ../features.rst:353 eff48eadd8d546508709110ee4297ccc msgid ":issue:`Password expiry policy <176>`" msgstr ":issue:`Politique d’expiration des mots de passe <176>`" -#: ../features.rst:354 4ad4707b7d02481ab507ded2d410eb70 +#: ../features.rst:354 b57aa03df49f4bed8674f579ed2be7de msgid ":issue:`Multi-factor authentication: Email <47>`" msgstr ":issue:`Authentification multi-facteurs : Email <47>`" -#: ../features.rst:355 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:355 7cd9c56ff1ec4fe4844ba21eac411b41 msgid ":issue:`Multi-factor authentication: SMS <47>`" msgstr ":issue:`Authentification multi-facteurs : SMS <47>`" -#: ../features.rst:356 fd624a7e3d404428830928ee05ec5348 +#: ../features.rst:356 5349695bf05a4f9fa1072fe0bb6c4b58 msgid ":issue:`Multi-factor authentication: OTP <47>`" msgstr ":issue:`Authentification multi-facteurs : OTP <47>`" -#: ../features.rst:359 a6acbc89a16a4fad8658fb33764830ad +#: ../features.rst:359 7d5beadbd8184d7eb1fdd52b06f8a0bc msgid "Packaging" msgstr "Paquets" -#: ../features.rst:361 575b556539994d1190e50cbfd0133bd4 +#: ../features.rst:361 90de3f4dabb043a58c125c85126c5c3a msgid ":issue:`Nix package <190>`" msgstr ":issue:`Paquet Nix <190>`" -#: ../features.rst:362 f8facef108bf4d668509e57200f732bb +#: ../features.rst:362 f86de768f08c4e44bda3b40a54193b1c msgid ":issue:`Docker / OCI package <59>`" msgstr ":issue:`Paquet Docker / OCI <59>`" -#: ../features.rst:365 92825d26f07c4b718121c2784a9b6b81 +#: ../features.rst:365 8f0ff63fc2264a2994584ca350cfacb9 msgid "And beyond" msgstr "Et au-delà" -#: ../features.rst:367 ac17ddb06c4d400ebc190454535608c2 +#: ../features.rst:367 18f71a0ecade47288245c41b1fcd4bad msgid ":issue:`OpenID Connect certification <182>`" msgstr ":issue:`Certification OpenID Connect <182>`" -#: ../features.rst:368 1b80703b0f434fe6ade3288840b9cf3c +#: ../features.rst:368 d2176d37d72c4b7d8cc90a8374661c98 msgid ":issue:`SCIM support <116>`" msgstr ":issue:`Support SCIM <116>`" -#: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5 +#: ../index.rst:15 3cd93747449e4826a82978400fa0021a msgid "Lightweight Identity and Authorization Management" msgstr "Serveur d’identité et d'autorisations ultra-léger" -#: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66 +#: ../index.rst:19 e1f076af69624d368f1c12f86cfc965d 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 " @@ -3793,11 +3887,11 @@ msgstr "" "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 +#: ../index.rst:31 88bafd653fb4418ea8afaa3cde8baa0b msgid "User profile and groups management, Basic permissions" msgstr "Gestion de profils utilisateur et de groupes, permissions simples" -#: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1 +#: ../index.rst:38 8054216c1dd746c2b1210f5c402cb1f1 msgid "" "Authentication, registration, email confirmation, \"I forgot my password\" " "emails" @@ -3805,37 +3899,37 @@ msgstr "" "Authentification, inscription, confirmation par e-mail, e-mails \"J'ai " "oublié mon mot de passe\"" -#: ../index.rst:40 c4659885674a4b848e904b352c94b89c +#: ../index.rst:40 60a03d30d8fe43fbae685b2702612b09 msgid "SSO" msgstr "Authentification unique (SSO)" -#: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa +#: ../index.rst:44 142f93e5c0ad4fb2a486b4aa87f90cef msgid "OpenID Connect identity provider" msgstr "Fournisseur d'identité OpenID Connect" -#: ../index.rst:46 f7caa27d43354246a89db295901976cb +#: ../index.rst:46 24e2262cc93549c2a6997f62f8f7e38e msgid "Multi-database support" msgstr "Gestion de multiples bases de données" -#: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0 +#: ../index.rst:50 ccf5ab1611aa4893aa498f3cad5f6107 msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "PostgreSQL, Mariadb et OpenLDAP sont des citoyens de première classe" -#: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d +#: ../index.rst:52 510ac22471fe41ea981c5b6f8b6503db msgid "Customization" msgstr "Personnalisation" -#: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e +#: ../index.rst:56 bf2a273bba904d2393eb781cc5e84b84 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 +#: ../index.rst:58 1c7791be752c4b288c420a47929998af msgid "Developers friendliness" msgstr "Facilité de développement" -#: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032 +#: ../index.rst:62 9b22b1a84542414d9448bde94c60b8b7 msgid "" "Canaille can easily fit in your unit tests suite or in your Continuous " "Integration." @@ -3843,20 +3937,20 @@ msgstr "" "Canaille peut s'intégrer facilement dans votre suite de tests unitaires ou " "dans votre Intégration Continue." -#: ../index.rst:66 a4dbd4558bda425cab549061b5952854 +#: ../index.rst:66 4d0c2675411c4891a1da5945a8d99894 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 +#: ../references/commands.rst:4 88c4569acf554105957f705b7f6a9d10 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 +#: ../references/commands.rst:6 e29d45adb32440248cfc56c951ada110 msgid "" "Generally, some configuration has to be loaded by `Canaille`. This can be " "achieved by :ref:`configuration loading method` for inspiration." @@ -4167,11 +4293,11 @@ msgstr "" "Regardez le :ref:`fichier d'exemple ` " "pour vous inspirer." -#: ../references/configuration.rst:31 8cbac0cd9e3e4bc3ad5fc60d82180568 +#: ../references/configuration.rst:31 855fd5086aa74bde85c68c3fb4473eca msgid "Environment variables" msgstr "Variables d'environnement" -#: ../references/configuration.rst:33 b909831b5aed44a4b439b37701feabb7 +#: ../references/configuration.rst:33 f5ff88a87e1241d4a07a2c4c3f670b54 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 " @@ -4185,7 +4311,7 @@ msgstr "" "`documentation pydantic-settings `_." -#: ../references/configuration.rst:38 fd22a354c18f4733b8b1962cfcbe2139 +#: ../references/configuration.rst:38 f7fcfa2d43864f288d1c0746fd8ed74e msgid "" "For environment vars, the separator between sections and variables is a " "double underscore: ``__``. For instance, the ``NAME`` var in the " @@ -4196,11 +4322,11 @@ msgstr "" "variable ``NAME`` dans la section ``CANAILLE`` affichée au-dessus est " "``CANAILLE__NAME``." -#: ../references/configuration.rst:42 f12f0cbb606e4627be2fa3b2a895f162 +#: ../references/configuration.rst:42 ba95ac0bec524f2186c0c5a2fd55ddc4 msgid "Environment file" msgstr "Fichier d'environnement" -#: ../references/configuration.rst:44 434c11ee0d6a4a118f9b8802d407d447 +#: ../references/configuration.rst:44 d301925be3cf4943be48ae119f0d518e msgid "" "Any environment variable can also be written in an environment file, which " "path should be passed in the ``ENV_FILE`` environment variable. For " @@ -4212,15 +4338,15 @@ msgstr "" "charger un fichier ``.env``." #: ../references/configuration.rst:47 ../tutorial/theming.rst:45 -#: 83d91b20c3204d09b61a4a6de8c84769 457a1eceffa94e44afeb7c6d55ef5ea8 +#: 399b3ea19a0f47509d8bc251ed19246f 39e63609b8d14eabb7f70dbd257c3f05 msgid ".env" msgstr ".env" -#: ../references/configuration.rst:65 8fc48610072c4e248c494befe2a4c8f6 +#: ../references/configuration.rst:65 8c82c49133f34f779dcc9309e3633625 msgid "Configuration methods priority" msgstr "Priorité des méthodes de configuration" -#: ../references/configuration.rst:67 d3fdde7c8d9841e49e92bcba763e33d8 +#: ../references/configuration.rst:67 29a90274aef046c09f17682553736efc msgid "" "If a same configuration option is defined by different ways, here is how " "Canaille will choose which one to use:" @@ -4228,7 +4354,7 @@ msgstr "" "Si une option de configuration est définie de multiples façons, voici " "comment Canaille sélectionnera celle à utiliser :" -#: ../references/configuration.rst:69 b79bfecad485446b85a8866657222448 +#: ../references/configuration.rst:69 5fe899a247494a3babcecca1746b08cd msgid "" "environment vars have priority over the environment file and the " "configuration file;" @@ -4236,30 +4362,30 @@ msgstr "" "Les variables d'environnement sont prioritaires sur le fichier " "d'environnement et le fichier de configuration ;" -#: ../references/configuration.rst:70 63800f5a14d44e1fa3ed0266e19f5482 +#: ../references/configuration.rst:70 0cd4875aa3a047329f866dba98ea29d8 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:73 ../references/templates.rst:0 -#: e8e7a0f78d68479a9586036adf25e183 e618c439d01140e89d1dc5192b332e88 -#: f4db2269f8ad4c409d39e94fe1dcaa04 68c66fa321bf4fe2a26894cfb9893ef0 -#: d7c47aab465445b8bc425f9441587869 52bdc51455ac48d2bdb9d260bdb350cf -#: 0fb7c750d22647d788376d6343f66caf f92c045d1a5a4d00b038fa12d93eff2e -#: 90d78d2e0fdb420ab3c4d75f9909ebca c86ca15b6d43459db4613bed7711b415 -#: 025f6511bb9848d4a1434b34d8af8ed5 5bd3a111c63e47598c6a88827ea19ffe -#: d2ba0706e4954be5b7ae534c589f6aca 9e2f1558bdac4c4eb1f753e347f81def -#: eb3ec759399744d3a0b8340459257502 7a6f904d5199479faf1f9475e8f28ec8 -#: aa80eea655004e6aa3ed31b683743446 47e7b3bef2d7471b9b71292a43c594f0 -#: d477ef4794834bcd88e238de37086828 af7c4339cf534ca499a21f430a2cfddc -#: c537eb4e5a054b4da0cce51226e90ae8 3e425d243a7e46c4ba306bdc43551133 -#: 65568f4bca8a4d9f9a4fcdc05b5e446c 833bc5945dc84c89947a25733c1029dc -#: fa1f3f1eebc5442cb616ba17c22aa22d 5093360aed9a4fd0a361bd81f3310e2c +#: 2eb621ffce2f420680529f3bf4901f73 a044d8c4524a4d36bb09196ba221c543 +#: c69f134bcb144ad0a92381365ab2f83e 974e15495c234b3a8eb9ce7968e7beda +#: 6b633fbb96d84ec7a52e3a57c7ddb347 515ac97c820c4d6da9aeec7264d9f8b8 +#: 02faf1b58dfd4a0f9319a47d7ec47ae2 32d1ed5dd4b842df9bc42ce6a343892e +#: 0b9656a5f894494db688a75cd7d0c642 6edf1abe2cee40738eece983144306d5 +#: 941e74d08cb443e48a940d76e5d04438 9a57301253854e968388a7c4cee2002f +#: 4fd00dbcf8c143e4bccbed3edcbee864 d187ad28099a4b569019d8dadba7ec13 +#: e35b68481ffb4d068cb15274894b15f9 e99cb8030e8e4cdfbf4c01e06a3e714c +#: 8a29fb06720c4c4397ad4957b490a8c0 a8e69ab44b5540439b59f6f0bf6a38a1 +#: a32ac168931245b68611cd6955faeea5 b2e8743b32164566be10d124c518e437 +#: bbbaacd277154bceaf2283930962ba8c 71db7835a9984c0b9124fcf46045e799 +#: a33a17334e9b4d16a42c11374a9e5095 7529ea6abdac43299a57a0b242497b4c +#: 689c48da2d964dff82be0f72974e6498 63a0c611ea4640a3ad0562e6d8ad7f21 msgid "Parameters" msgstr "Paramètres" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3 +#: canaille.app.configuration.RootSettings:1 84e2009dde284788b29008558f7ee8df msgid "" "The top-level namespace contains the configuration settings unrelated to " "Canaille." @@ -4268,44 +4394,44 @@ msgstr "" "sans rapport avec Canaille." #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:4 fffc30ea67ab47d99472750172be2a29 +#: canaille.app.configuration.RootSettings:4 233b44cb5f924b92b55e0717ec868cc7 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 +#: canaille.app.configuration.RootSettings:6 528ffc1283f1453f8b5a315650653aad msgid ":doc:`Flask `" msgstr ":doc:`Flask `" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277 +#: canaille.app.configuration.RootSettings:7 8434735c37f44b4a9dca422dcfa35fb0 msgid ":doc:`Flask-WTF `" msgstr ":doc:`Flask-WTF `" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd +#: canaille.app.configuration.RootSettings:8 36e7ddf80e5a439482c95b1cdc3138a2 msgid ":doc:`Flask-Babel `" msgstr ":doc:`Flask-Babel `" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa +#: canaille.app.configuration.RootSettings:9 53c48e3c1ee04722bbd19d1a0647ab84 msgid ":doc:`Authlib `" msgstr ":doc:`Authlib `" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: 4309008dba2c4aa79584299f19987ac4 +#: 0266d76fe0494ebe951de15dff0a03de 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 +#: 91084957d9a44fba848f2d3bdc4f173b msgid "This enables debug options." msgstr "Cela active les options de débogage." #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: 553b378e895a4b74aa242c08cd29450f +#: 4411e21377474f2395da5cf994bf9b5f msgid "" "This is useful for development but should be absolutely avoided in " "production environments." @@ -4315,7 +4441,7 @@ msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 -#: cb2cc7437e4a4d3c90895c4148186b25 +#: 2631e6c917144dcda0f45f75dca3e045 msgid "" "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." msgstr "" @@ -4324,39 +4450,39 @@ msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: 530f78ce6f4842c983c10b38fe4c4b93 +#: 17d256877da540b4af0ecb3f816527d1 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 +#: ce0a09e3f4bb40b8a88d5d8a02c78b53 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 +#: 054498e41f0c4cf19ba9b6d9a7bd344b msgid "You MUST change this." msgstr "Vous DEVEZ le changer." #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 0f0f60195f334cf597f67857740b2ace +#: 29d21b789ee2499a81b40546ac5bc867 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 +#: c244712d83da4e2ea46b19c7f7c9677f 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 +#: canaille.core.configuration.CoreSettings:1 8abadcc23b59421eaf1866cf66f16b82 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 +#: canaille.core.configuration.CoreSettings:3 b197626889354c289279eb095892940e msgid "" "Those are all the configuration parameters that controls the behavior of " "Canaille." @@ -4365,7 +4491,7 @@ msgstr "" "Canaille." #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 89de24471b434051a4a84e39bc47aded +#: 83e6e2dfc47a4a0da12b26098911529d msgid "" "Mapping of permission groups. See :class:`ACLSettings` for more details." msgstr "" @@ -4373,7 +4499,7 @@ msgstr "" "détails." #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 1f85af06bed64d9da4417c6e6f7e244e +#: cb73b597fa1e4394b1c5bb2bb2435e99 msgid "The ACL name can be freely chosen. For example:" msgstr "Le nom des ACL peut être choisi librement. Par exemple :" @@ -4382,12 +4508,13 @@ msgstr "Le nom des ACL peut être choisi librement. Par exemple :" #: canaille.core.configuration.ACLSettings.PERMISSIONS:6 #: canaille.core.configuration.CoreSettings.ACL:5 #: canaille.core.configuration.CoreSettings.LOGGING:12 -#: 56ce67b55d3b4d8eba9a07b4feed2587 d9b0f4816c2644679233ec3b797c2fc4 +#: 881bf101872546348dd1fbe1e0876ce2 14afae3efc904e2085f73676b352e16f +#: f269c5d6271a4989a1bcfddeee3ee9c2 a159a694d7e14098907617eed4f35aa0 msgid "..code-block:: toml" msgstr "..code-block:: toml" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7 -#: dc73b62baf4f465598787ebb33191c7b +#: 7df785453bf2449bb5fa56a6eb3f40d2 msgid "" "[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = " "[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]" @@ -4396,17 +4523,17 @@ msgstr "" "[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:12 -#: 56d15bcfdbcc4556a3848702228b970f +#: bb75dcb394b84875a95ea5029a452027 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 +#: 753080f7763646d1ad22a17240e53b6c msgid "Administration email contact." msgstr "Contact e-mail de l'administration." #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 7a5e93e36d434fcb96b85beea8f1adc6 +#: 5c58da831ccb44d4b19d5681c996c78f msgid "" "In certain special cases (example : questioning about password corruption), " "it is necessary to provide an administration contact email." @@ -4417,7 +4544,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 -#: 478effaaf0da47a1a31b996b06b8c650 +#: 426b66feb6d3450eaf7638586fec400f 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." @@ -4427,7 +4554,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 -#: b82dc4dc6818409eb5fa256462c4ac19 +#: 6479ecaa27d94cf89171e9587af6d468 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 " @@ -4438,7 +4565,7 @@ msgstr "" "e-mail sera en lecture seule." #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_OTP:1 -#: 8e19d8a485fe456191ab16773f84483e +#: 7c9b9868ad8c4e99832f5a2d3a5e6aee msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary email address." @@ -4448,7 +4575,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT:1 -#: 8e19d8a485fe456191ab16773f84483e +#: e374204dc15d4778b430968d4bc5f9d9 msgid "" "If :py:data:`True`, then users will have to wait for an increasingly long " "time between each failed login attempt." @@ -4458,7 +4585,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: cb4478169a09415a9f17e3df16239ecd +#: 4170c86b23554c8ea2c883557a8deec0 msgid "" "If :py:data:`True`, Canaille will check if passwords appears in " "compromission databases such as `HIBP `_ when " @@ -4471,7 +4598,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 -#: b70cf94037df4bd1ae8a74acc370b3a5 +#: bb6bad71e08a4d36b3339537790b147c msgid "" "If :py:data:`False`, then users cannot ask for a password recovery link by " "email." @@ -4481,7 +4608,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 -#: 6ee78ec59c21456e8761778153d4f700 +#: 5f8fcd4a000d411c8502c630e54f04ee msgid "" "If :py:data:`True`, then users can freely create an account at this instance." msgstr "" @@ -4490,7 +4617,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: 979b9444b9c04354add2e781bd324752 +#: d92660e43b9347d0ade1e397bc5207b8 msgid "" "If email verification is available, users must confirm their email before " "the account is created." @@ -4499,19 +4626,19 @@ msgstr "" "confirmer leur e-mail avant que le compte ne soit créé." #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1 -#: 8931d55b0c264be0982765f04f83ae38 +#: 8718e146c23448f682ee9642c6cb911a msgid "You favicon." msgstr "Votre favicon." #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: 7991e0eec12c457dad401f49b34ad835 +#: 8d1fc56d14134aa9ac8ad88fb924d401 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 +#: bdf0b98c2bed4013b5bed76ae6326c87 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 " @@ -4523,7 +4650,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 -#: dffe6e218f4f48e981ac5a9fa9a21e37 +#: 192cdb38b79048aaa18dcad8e675d6e9 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." @@ -4532,43 +4659,43 @@ msgstr "" "identifiant invalide, un message indique que l'identifiant n'existe pas." #: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1 -#: b200882d189b46f3a83f217ff8b59551 +#: 988c8b75a0884b80a0a1d65f53ac680e 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 +#: 4b6029f0ed44414f953feda8afe9b63e 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 +#: b6745de2c7b84f54b498403bdca444d1 msgid "Defaults to 2 days." msgstr "Deux jours par défaut." #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 70d5c7fa2dfa4e6695c84f2b4ab547c9 +#: f760d39408a748ce908e65a24a0c6a80 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 +#: e02332b4e43042de98a09d40a948302a 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 +#: 1a676dafa9194a46ae41884d78b1a8a6 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 +#: a16f42d36574410e929fb61e6ef8abac msgid "" "Configures the logging output using the python logging configuration format:" msgstr "" @@ -4576,7 +4703,7 @@ msgstr "" "configuration des journaux Python :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: 62d20006362a45ca8ff0f0a8fbb82bf4 +#: fb272f04203f46e098520a67a969659e 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." @@ -4589,7 +4716,7 @@ msgstr "" "elle est:py:data:`~logging." #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 44c6ded187ab4e44aac024c2cdb85303 +#: b970691fac51473d9fbc00f9f1a97f64 msgid "" "If this is a :class:`dict`, it is passed to :func:`logging.config." "dictConfig`:" @@ -4597,7 +4724,7 @@ msgstr "" "Si c’est un :class:`dict`, il est passé à :func:`logging.config.dictConfig` :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 6e269ac8b9144e9699a5856c375d7a37 +#: fa42a52c1dc84ef4b56ce123d98cd612 msgid "" "If this is a :class:`str`, it is expected to be a file path that will be " "passed to :func:`logging.config.fileConfig`." @@ -4607,12 +4734,12 @@ msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4 #: canaille.core.configuration.CoreSettings.LOGGING:10 -#: ba8b9d6794e2459492abfa778736328a +#: fb6acd57fe244d02bbd69015275cd69c f33e86db2dc74cd0a98a6d5c0d928e73 msgid "For example:" msgstr "Par exemple :" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14 -#: 2eedaa2fba4545698dfd11007a2e0c9c +#: a5b8c52cf10a429699e2054f42658c17 msgid "" "[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] " "%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", " @@ -4623,7 +4750,7 @@ msgstr "" "handlers = [\"canaille\"]}" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:19 -#: 4b44c1c288c3433fb0edba70dd9c1343 +#: 2524ebb40666405b8630a4778d4334fd msgid "" "[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers." "WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = " @@ -4634,7 +4761,7 @@ msgstr "" "\"default\"" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: 851b93aeb7b54426872a6b4a2ed973b9 +#: 19233db1937d4d398e9bc82d88b2aeb4 msgid "" "The logo of your organization, this is useful to make your organization " "recognizable on login screens." @@ -4644,13 +4771,13 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 -#: 88cd67b65c954dc7a261df77d1823cda +#: b8115919bf52465c8ecad2294c9cb3f5 msgid "User password maximum length." msgstr "Longueur minimum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 435e72d3f33642da9016c521a88f15e6 +#: acfb34baa52d40c2ac93f84d1d1b0b45 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." @@ -4661,29 +4788,29 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: b15846ed6b2a4ad49bbb19cde177023a +#: 06396a965c9342b697bc45dcc011f2be msgid "User password minimum length." msgstr "Longueur maximum des mots de passe utilisateur." #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 820670101aa7436eb014aa61e1c1a7eb +#: 7efa39bf27bb468b9df98c5248428124 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 +#: 5e65abc8483f455a991d9e047e73da66 msgid "Your organization name." msgstr "Le nom de votre organisation." #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: d61df1326c344b45b6d1c7b24e12b207 +#: 606e9a684c9243359899a63d7e2c07d2 msgid "Used for display purpose." msgstr "Utilisé à fins d'affichage." #: ../../docstring of canaille.core.configuration.CoreSettings.OTP_METHOD:1 -#: 622f83bdd580459cad5b3b328fb2de3b +#: 04b59ac479f548bd9740d2b7e243e0be msgid "" "If OTP_METHOD is defined, then users will need to authenticate themselves " "using a one-time password (OTP) via an authenticator app. If set to " @@ -4699,7 +4826,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 4501d236ecc142e2ad045599ee19ac19 +#: efecdcc0b3c44808aab72f448d73bf42 msgid "Have i been pwned api url for compromission checks." msgstr "" "URL du service HaveIBeenPwned, utilisé pour les vérifications de " @@ -4707,13 +4834,13 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:1 -#: 1072c369689f4922997715eb5337795a +#: c9deb9285c2e43869c2acf1319bc5cf5 msgid "Password validity duration." msgstr "Durée de validité du mot de passe." #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:3 -#: 4262b875a3a148dab5e94595cb2a981f +#: e54d23138f1b4d63ab45a1ea9cd55dbd msgid "" "If set, user passwords expire after this delay. Users are forced to change " "their password when the lifetime of the password is over. The duration value " @@ -4727,25 +4854,25 @@ msgstr "" "de 60 jours s'écrit « P60D »." #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 0b234cbe21824f31b27a3b3c893fd37b +#: f2e004ed1352465e8d32c0565f60dc08 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 +#: 396fd294d31a4d2d9ad9967ea5845ea7 msgid "This is useful for tracking errors in test and production environments." msgstr "" "Utile pour centraliser les erreurs dans les environnements de test et de " "production." #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1 -#: 79d66e38b7d94974a21563fac9a58149 +#: 2548a23167c14ca791a00efef39a5fba msgid "The settings related to SMPP configuration." msgstr "Les paramètres liés à la configuration des serveurs SMPP." #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:3 -#: 41d396512e7d40b28223841b21f8ed09 +#: 58473f24986d42edb6abb6ac7447701b msgid "" "If unset, sms-related features like sms one-time passwords won't be enabled." msgstr "" @@ -4753,7 +4880,7 @@ msgstr "" "réinitialisation des mots de passe par SMS, ne seront pas activées." #: ../../docstring of canaille.core.configuration.CoreSettings.SMS_OTP:1 -#: 8e19d8a485fe456191ab16773f84483e +#: 0d4b32baaef746d0920a8d7b49f41f4c msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary phone number." @@ -4763,12 +4890,12 @@ msgstr "" "principal." #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 79d66e38b7d94974a21563fac9a58149 +#: e2bfd599192e4c6f9bfeaead50f548ed 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 +#: 444f30f696184ee6898c385d19fc647b msgid "" "If unset, mail-related features like password recovery won't be enabled." msgstr "" @@ -4776,13 +4903,13 @@ msgstr "" "réinitialisation des mots de passe, ne seront pas activées." #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: e327a089ace6495285f29ade69226d1b +#: d006eeb6ee7c4d1cb5249d35faeda62e 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 +#: 3b7e2c30ab29424a8b1e74cd9404ffce msgid "" "Defaults to ``default``. Theming is done with `flask-themer `_." @@ -4791,7 +4918,7 @@ msgstr "" "faite avec `flask-themer `_." #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 421c3427b77b4cc4af9619406463c1c2 +#: 503564e13430483fbbdbdf3d3933c331 msgid "" "The timezone in which datetimes will be displayed to the users (e.g. " "``CEST``)." @@ -4800,12 +4927,12 @@ msgstr "" "exemple ``CEST``)." #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: d8d80524578e4697a5bb9f7e83c7d113 +#: 0906370280b743b782a2a6dde00ca491 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 +#: canaille.core.configuration.SMTPSettings:1 57a55ca2875c462babb31fd7b4aaa3d4 msgid "" "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, " "mail related features will be disabled, such as mail verification or " @@ -4817,7 +4944,7 @@ msgstr "" "de passe." #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:5 598e1ca109154455ad98b50d8853891d +#: canaille.core.configuration.SMTPSettings:5 9a813b531406465e94e5348aef282cd0 msgid "" "By default, Canaille will try to send mails from localhost without " "authentication." @@ -4826,48 +4953,48 @@ msgstr "" "authentification." #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 8ab9425f8a6b42dc9097b69e3eaa334a +#: ddac936f417d41c0ab52e7899e0cd6c3 msgid "The sender for Canaille mails." msgstr "L’émetteur des emails de Canaille." #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: f8f5f1377e5147d4baf9782ff95b4aa3 +#: c9aa4a06ffaf45fcac8c2d518bd32d97 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 +#: ec91a927a1974be1a89fd6f9cf1a9e80 msgid "The SMTP host." msgstr "Le serveur SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 0bf8168dc84545cb810a8f25bbb4abf7 +#: 579743b8464b4d29a118d73e1ec74c94 msgid "The SMTP login." msgstr "L’identifiant SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: ec1b4f81894e45f5abcae80dfaee87a9 +#: 2a70d820c61c4b3cad94d66bae196094 msgid "The SMTP password." msgstr "Le mot de passe SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 514104bb8bcc4331b1e7fff12e550ba3 +#: f59d761d5304416dbb5e2711598e00a4 msgid "The SMTP port." msgstr "Le port SMTP." #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: f4e65d7811cb43d5b7d86ec07af2576d +#: 83650c04663f4c4ab803282325a29073 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 +#: c6ec3788d99d46a68815e355bc37e6b0 msgid "Whether to use TLS to connect to the SMTP server." msgstr "Utiliser ou non TLS pour se connecter au serveur SMTP." #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMPPSettings:1 2f0178f9dbe747c695273f89e42da8c2 +#: canaille.core.configuration.SMPPSettings:1 05a0a772c0964569a863b02e60bb2b60 msgid "" "The SMPP configuration. Belong in the ``CANAILLE.SMPP`` namespace. If not " "set, sms related features such as sms one-time passwords will be disabled." @@ -4877,34 +5004,34 @@ msgstr "" "que la réinitialisation des mots de passe par SMS." #: ../../docstring of canaille.core.configuration.SMPPSettings.HOST:1 -#: 9059b29ae44849efb180f3b2da128c19 +#: ff31eb63e9c84d4cacd175f5028acda7 msgid "The SMPP host." msgstr "Le serveur SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.LOGIN:1 -#: 0bf8168dc84545cb810a8f25bbb4abf7 +#: b18653341cdd49a8bd3cc74e9dc0d177 msgid "The SMPP login." msgstr "L’identifiant SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.PASSWORD:1 -#: ec1b4f81894e45f5abcae80dfaee87a9 +#: d8f1c895bda94702aa5efa1b3ffd7f8b msgid "The SMPP password." msgstr "Le mot de passe SMPP." #: ../../docstring of canaille.core.configuration.SMPPSettings.PORT:1 -#: 1c6040260eac4930a107d3f612c6ef6e +#: 8e46db242a7b43ccbb26ca42a7a44a97 msgid "The SMPP port. Use 8775 for SMPP over TLS (recommended)." msgstr "Le port SMPP. Utilisez `8775` pour SMPP avec TLS (recommandé)." #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0 +#: canaille.core.configuration.ACLSettings:1 1032e74cacef4f1d8c4cc5a72c374dc0 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 +#: canaille.core.configuration.ACLSettings:3 4a2a439777264fee9754f94f04b23815 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:" @@ -4921,12 +5048,12 @@ msgstr "" "à plusieurs filtres cumuleront les permissions." #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 -#: a14933a4c7244138bb59a43c9d288955 +#: 30704fd262e54feaa7505f5da3bff786 msgid ":attr:`FILTER` can be:" msgstr ":attr:`FILTER`peut être :" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: d0f71dfab2ec47fca2184767e58eec59 +#: 49f0a37bc20a46f788cbcf4e5a67f5b6 msgid "" ":py:data:`None`, in which case all the users will match this access control" msgstr "" @@ -4934,7 +5061,7 @@ msgstr "" "d’accès" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: e33849bb0c954228951cb18c56a9e70d +#: c383b32ac2134422b95321c1159422d2 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 " @@ -4945,7 +5072,7 @@ msgstr "" "correspondre à l'utilisateur pour faire partie du contrôle d'accès." #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: 2ed07fdd7da94cfd90167b2d1f4cb4eb +#: 588e0e10a4b347e6a3fdda1ea444b4c7 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" @@ -4955,12 +5082,12 @@ msgstr "" "fera partie du contrôle d'accès" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 657a11f5921947b88bfc47cf8affbe00 +#: e662b5f42e8f488ca47ef2885a2e8c85 msgid "Here are some examples::" msgstr "Voici quelques exemples :" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: df95253032c647229909e34386b1e5cc +#: 947459704a294f38b0ee5b0ab39c3d5b msgid "" "A list of :class:`Permission` users in the access control will be able to " "manage." @@ -4969,7 +5096,7 @@ msgstr "" "seront capables de gérer." #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:8 -#: 700fa74aeea44e9aa6dd204df7870e90 +#: 7b7a62237cca42a6bc1cf641951bd872 msgid "" "PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", " "\"delete_account\", \"impersonate_users\"]" @@ -4978,7 +5105,7 @@ msgstr "" "\"delete_account\", \"impersonate_users\"]" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: ab801708874c4b1bb937f62969614340 +#: fd894bac29b14289abb8b997d80f2ace msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to read." @@ -4987,7 +5114,7 @@ msgstr "" "utilisateurs dans les ACL seront capables de lire." #: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1 -#: 384d296240314638a1f1b6b7719c6bb6 +#: ed3af117e73c4a08a4cc9570d9505564 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to edit." @@ -4996,12 +5123,12 @@ msgstr "" "utilisateurs dans les ACL seront capables de modifier." #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:1 f9eec27878c64e608b2783b5e89172ed +#: canaille.core.configuration.Permission:1 3630076631504884994de04711e79c85 msgid "The permissions that can be assigned to users." msgstr "Les droits qui peuvent être assignés aux utilisateurs." #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131 +#: canaille.core.configuration.Permission:3 836f0d6eb00a449b8f593fe22f4c6e3d msgid "" "The permissions are intended to be used in :attr:`ACLSettings `." @@ -5010,12 +5137,12 @@ msgstr "" "core.configuration.ACLSettings.PERMISSIONS>`." #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: 370dec6e2b8049d0b7353b085340b102 +#: 2a00700bc3df406bb414932e14a777aa msgid "Allows users to delete their account." msgstr "Permettre aux utilisateurs de supprimer leur compte." #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: f7be239942c94727a948d27c6c93408e +#: 10ce363401a14711b73f41bf58f5b11c msgid "" "If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, " "users can delete any account." @@ -5024,49 +5151,49 @@ msgstr "" "MANAGE_USERS`, les utilisateurs peuvent supprimer n'importe quel compte." #: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1 -#: 1f716bb0d0ec481ab5dff0a02f5c9e37 +#: 7876013cd8d34f059c292d35a93e8bed msgid "Allows users to edit their own profile." msgstr "Permet aux utilisateurs de modifier leur propre profil." #: ../../docstring of #: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: c9018bb9aceb40bc9536cc03320c5bad +#: 133a7a2df544419db9c12a1d81adb463 msgid "Allows users to take the identity of another user." msgstr "Permet aux utilisateurs de prendre l'identité d'un autre utilisateur." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: 1072c369689f4922997715eb5337795a +#: 197c146b044d41e1a91760b38f7fa42b msgid "Allows group edition and creation." msgstr "Permet la création et la modification de groupe." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 014b4028381e4f4d8dcc8dc8a5e3a26f +#: 1187d515878b4a73a383eb5dafc3cdf3 msgid "Allows OpenID Connect client managements." msgstr "Permet les gestion de client OpenID Connect." #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: ff39df8edc7143c7b23d22bb773b5198 +#: 3fc23fff9e2541ad9e079c331bfb1296 msgid "Allows other users management." msgstr "Permet la gestion des autres utilisateurs." #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: c7e27c4618a9460e8373c17f558f8d1e +#: 500b7afe49f34db3885ae75a2aa99ff8 msgid "Allows OpenID Connect authentication." msgstr "Permet l'authentification OpenID Connect." #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef +#: canaille.oidc.configuration.OIDCSettings:1 af3b4287fa40413fa0a9095a0972aa94 msgid "OpenID Connect settings." msgstr "Paramètres OpenID Connect." #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0 +#: canaille.oidc.configuration.OIDCSettings:3 569811f41eca490eb6d44f79521b19e4 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_OIDC``." #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 092f0d4259994eb8b834b256a8f72453 +#: 3a4739edd59b43b3b39b6ec25b438b20 msgid "" "Whether a token is needed for the RFC7591 dynamical client registration." msgstr "" @@ -5075,7 +5202,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 506f1fcd0f424df4bdafd9a69307f645 +#: 81d8fadf800643b5880c3a9b2da2f026 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:" @@ -5087,68 +5214,68 @@ msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 -#: 30861c9a3a294daf8105dd5ac9007282 +#: b9b0f251f5a040788db035222a1833d7 msgid "A list of tokens that can be used for dynamic client registration." msgstr "" "Une liste de jeton utilisables pour l'enregistrement de client dynamique." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: 04e054bb3d094e4ea8f23ab6fdec9bf6 +#: 8d4cca4d5d8248569a8b5e284cf2a628 msgid "JSON Web Token settings." msgstr "Paramètres de jeton web JSON." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: 95b1ee4fd0da4ec2b30beb3e25944cd9 +#: 45dab080b9b542a78d7c5e7d8f11efdc msgid "Force the nonce exchange during the authentication flows." msgstr "Force l'échange de nonce durant le processus d'authentification." #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: de680082bc4546a6883ff4826df0067b +#: 9d35f18ffd9540198d0f197c1c2a4240 msgid "This adds security but may not be supported by all clients." msgstr "" "Cela améliore la sécurité mais pourrait ne pas être géré par tous les " "clients." #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:1 750fbe7d77954d87855e68d3199c81e7 +#: canaille.oidc.configuration.JWTSettings:1 f862449d0b374ae0add26d95ef2f5cb7 msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." msgstr "" "Paramètres de jeton Web JSON. Appartient à l'espace de nom ``CANAILLE_OIDC." "JWT``." #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:3 03945dc4192c4f7abefbcd2b5c7c2bd9 +#: canaille.oidc.configuration.JWTSettings:3 04bb58dabe1849068f0e8fbbde1b6c8c msgid "You can generate a RSA keypair with::" msgstr "Vous pouvez générer un poire de clefs RSA avec :" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: d65a4aaf4cb64130ac59c97cddcffb0b +#: 29ec28a6230a458885f7b7aa999c8a66 msgid "The key algorithm." msgstr "L'algorithme de clef." #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: c0c460480db94b1a9ebceea06528d426 +#: 9430c7f0daae460db38df33e90d593ba msgid "The time the JWT will be valid, in seconds." msgstr "La durée pendant laquelle le JWT sera valide, en secondes." #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: 6501426215db4b27b7b5d217954ca6be +#: 3a87f42a35f94be488f736b99fdc235a msgid "The URI of the identity provider." msgstr "L'URI du fournisseur d'identité." #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 3e338458e42e405fb025bfcfc53688f4 +#: 2e7bd63f53ce4691b16b0ddb6def6788 msgid "The key type." msgstr "Le type de clef." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 27a15f235d63447884175edd85e55cf4 +#: 93f87ea252884bac976fdb483026a745 msgid "The private key." msgstr "La clef privée." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 29d2c1b105e74d46b80db01b78954711 +#: 5a38848e470044cc86d8088acba470ee d65e8c973f9b4574838315b2ac4fbc6b msgid "" "If :py:data:`None` and debug mode is enabled, then an in-memory key will be " "used." @@ -5157,49 +5284,70 @@ msgstr "" "sera utilisée." #: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 -#: e88605c89e4b47989186fd27e5aff172 +#: 065eb721cbb646c3957f30587b650b09 msgid "The public key." msgstr "La clef publique." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:1 -#: 235687b99f2c408aaf1c063061975f77 +#: d9a0b99e00254e1dbae60d4d0f92d268 msgid "Mapping between the user model and the JWT fields." msgstr "Correspondance entre le modèle utilisateur et les champs JWT." #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:3 -#: ebe87d5efdaa458b97451b5ab4fdeb3d +#: dc177e3a15bd44a58ad9a78d86488317 msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" "Les champs sont évalués avec jinja. Une variable ``user`` est disponible." #: ../../canaille/scim/configuration.py:docstring of -#: canaille.scim.configuration.SCIMSettings:1 e2e226bd197b4d6f87291ee45a3004ef +#: canaille.scim.configuration.SCIMSettings:1 eb8831b391be4590a8ff7004ce5deec5 msgid "SCIM settings." msgstr "Paramètres SCIM." #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:1 -#: b7ccdac0ebd14f47be2d77ea52bd75d7 +#: ed5d3f22ff8c4dcc98caafbb1c9ef5d3 msgid "Settings related to the SQL backend." msgstr "Paramètres concernant le serveur SQL." #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:3 -#: 07e03b184cb54e0a92ca3a33033da5cd +#: 7a39e104f4d24b5bb0f2999a30e7dd39 msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_SQL``." +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:1 +#: c49da2725c2b4bcaa81ff15f505ea439 +msgid "Whether to automatically apply database migrations." +msgstr "" + +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:3 +#: 47e7693d96434baca0d3dd196c5a4db4 +msgid "" +"If :data:`True`, database migrations will be automatically applied when " +"Canaille web application is launched. If :data:`False`, migrations must be " +"applied manually with ``canaille db upgrade``." +msgstr "" + +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:8 +#: b58635cfdb7f4240854239418e78fe14 +msgid "When running the CLI, migrations will never be applied." +msgstr "" + #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: 4d1ff118c1a44a50a962e527d1a8e2a2 +#: 4536c2d4cb2149eeb579656c7d6fef22 msgid "The SQL server URI. For example:" msgstr "URI du serveur SQL. Par exemple :" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6 -#: 4bb9ca2e412a461caacf1a146582247f +#: 07d66e79d7df497d85858df1396e191c msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\"" msgstr "" "DATABASE_URI = \"postgresql://utilisateur:motdepasse@localhost/" @@ -5207,13 +5355,13 @@ msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:1 -#: b1827fc993454e8fbfbe2868c28e751c +#: 10845b88dbdc43c788ee2e0bc36350e1 msgid "Password hashing scheme." msgstr "Algorithme de hachage des mots de passe." #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:3 -#: 2e0dbdbc64944ec7948324890d02b255 +#: 52fdf7d843c9432db315f114054c9395 msgid "" "Defines password hashing scheme in SQL database. examples : \"mssql2000\", " "\"ldap_salted_sha1\", \"pbkdf2_sha512\"" @@ -5223,103 +5371,103 @@ msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:1 -#: e656ae1d120e45109618f653d29d845e +#: e15e2823c04d4ec28c7babecc8562d74 msgid "Settings related to the LDAP backend." msgstr "Paramètres concernant le serveur LDAP." #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:3 -#: 9877879932a3406b87f9893f4a6bf8f3 +#: 83424c682e70455799fea1843996c454 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "Appartient à l'espace de nom ``CANAILLE_LDAP``." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: 96d852cc067c459cabfcc201a7271cf0 +#: abd1149eb47f4ca391af208bac04862e msgid "The LDAP bind DN." msgstr "Le DN de connexion LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: 084f3814a8604375aed794d649845045 +#: 0d9db8acc3bb462e959c147787183929 msgid "The LDAP bind password." msgstr "Le mot de passe de connexion LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 8f56c7d2bfb348afbcc36de24398dfac +#: dfe0dce641704dfe8e107c25c9a48395 msgid "The LDAP node under which groups will be looked for and saved." msgstr "Le noeud LDAP dans lequel les groupes seront cherchés et enregistrés." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 58cf9c9e87464b709e4e8508577fbd63 +#: d1a484ad5d9b416882079b981605b592 msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "Par exemple `\"ou=groups,dc=mondomaine,dc=tld\"`." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 3b6a2121763e4302aa1780cb6d51d9d6 +#: c683dd1cef604a8eb3b22d39d848788d msgid "The object class to use for creating new groups." msgstr "La classe objet à utiliser pour créer de nouveaux groupes." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: 10d8bb8232bf4b30b6c631847ea70b2b +#: 82b43769a16441fa96297e1e31f03062 msgid "The attribute to use to identify a group." msgstr "L'attribut à utiliser pour identifier un groupe." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: 688132cb0d4e4f27973a02406d50edaa +#: f3fb1e7028544214a4ea3b83f3c3d49f msgid "The attribute to identify an object in the Group DN." msgstr "L'attribut pour identifier un objet dans le Groupe DN." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: 4428b1de4b664a55b077caa3969d6769 +#: 3f3bc5cd8b044803b3fba6e4fdfde1e3 msgid "The LDAP root DN." msgstr "Le DN racine LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: 5a175d6a66e445458ee6bc473d614a45 +#: d5d1aa6b21c64ed4b81236594911f285 msgid "The LDAP connection timeout." msgstr "Le délai d'expiration de connexion LDAP." #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: 3172b80b5b86434699f226a3b713c52f +#: f20bc6eb339648d893a110829ce14ab1 msgid "The LDAP server URI." msgstr "L'URI du serveur LDAP." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: 0e03c3262f504b79b84847041ee442e5 +#: 9b091562c6774d6b81e8fe6dd81c93cd msgid "The LDAP node under which users will be looked for and saved." msgstr "" "Le noeud LDAP dans lequel les utilisateurs seront recherchés et enregistrés." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: e1d16301542b40929d9e65c9a949b303 +#: c61024ac66b44e35925082e9876b8a9a msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "Par exemple `ou=users,dc=mondomainedc=tld`." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 92a1f8f8665848c9aaf4d5f9f1f3b6b7 +#: cd09943f22a8453fbca1aa2173e3186c msgid "The object class to use for creating new users." msgstr "La classe d'objet pour créer de nouveaux utilisateurs." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 228fcd64b4704fa0b4ea52ab85f48f08 +#: 894a2a5356004edaa5fc0ac68e8e4742 msgid "Filter to match users on sign in." msgstr "Filtre de correspondance des utilisateurs lors de la connexion." #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: f61c66f7c0e94e67ae5a4ce5de0dc548 +#: 4daf3e1956864084aa30ea039bdc1ef7 msgid "" "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is " "supported and a ``login`` variable is available, containing the value passed " @@ -5331,27 +5479,27 @@ msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 -#: d49e7765b3d6440d9fdcb0ecb18c06c1 +#: 44e7dc51f57347f1b02ad3d371f174e9 msgid "The attribute to identify an object in the User DN." msgstr "L'attribut pour identifier un objet dans le DN Utilisateur." -#: ../references/configuration.rst:94 c4674c5a1b434e81944983c7ec2fb0f1 +#: ../references/configuration.rst:94 3dd3777a442446f594c09782013d74f1 msgid "Example file" msgstr "Fichier d'exemple" -#: ../references/configuration.rst:96 87c3dcb2ef5a4f649ec0fa9005449a79 +#: ../references/configuration.rst:96 d1a4ab70ee764b0bb698a26a11818542 msgid "Here is a configuration file example:" msgstr "Voici un exemple de fichier de configuration :" -#: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e +#: ../references/index.rst:2 071913032bd34cd2bd443cd511ed0f99 msgid "References" msgstr "Références" -#: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c +#: ../references/models.rst:2 8449e7712a554bf88b595a0bbb2d0c4c msgid "Data models" msgstr "Modèles de donnée" -#: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217 +#: ../references/models.rst:4 bee5e0d6c994427f8c8b66eb51ea1eb9 msgid "" "This reference details the data models used by Canaille. This is mostly " "useful for developers." @@ -5362,18 +5510,18 @@ msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features:1 #: ../../canaille/backends/models.py:docstring #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 -#: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 -#: 3ac32584e20443aaae7659c3e894cb06 +#: 38d2033e866440eeaafe892cc6064c18 23d8ede99f5a4ee39d8da74d996a4a1d +#: 3a3408d8f3904b038bce47acee950437 msgid "Bases: :py:class:`object`" msgstr "Bases : :py:class:`object`" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9 +#: canaille.backends.models.BackendModel:1 c25bd1ffbbd349e5ad1dea57b25154c8 msgid "The backend model abstract class." msgstr "La classe abstraite du modèle backend." #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2 +#: canaille.backends.models.BackendModel:3 7ef9431bea8e442ebb713b76b3bc64ff msgid "" "It details all the methods and attributes that are expected to be " "implemented for every model and for every backend." @@ -5382,17 +5530,17 @@ msgstr "" "pour chaque modèle et chaque backend." #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:1 9f46b7e1801e4a57a346c598161cbdac +#: canaille.backends.models.Model:1 9b1a6bcb81134359bc30467d1dd705ab msgid "The model abstract class." msgstr "La classe abstraite de modèle." #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b +#: canaille.backends.models.Model:3 4e4cc81400bd4a4589afcdce71b2b087 msgid "It details all the common attributes shared by every models." msgstr "Il détaille tous les attributs en commun entre tous les modèles." #: ../../docstring of canaille.backends.models.Model.created:1 -#: 8685782e932b476a8b6f80256ebca659 +#: a8d222c7abad4c26a9aca53d2227a03d msgid "" "The :class:`~datetime.datetime` that the resource was added to the service " "provider." @@ -5401,7 +5549,7 @@ msgstr "" "par le fournisseur de service." #: ../../docstring of canaille.backends.models.Model.id:1 -#: 112d9fd0a032418682875fe5f5685fc8 +#: dd7a51180db84215bf6bae28646204cf msgid "" "A unique identifier for a SCIM resource as defined by the service provider. " "Id will be :data:`None` until the ``Backend.save`` method is called." @@ -5411,7 +5559,7 @@ msgstr "" "méthode ``BackendModel.save`` soit appelée." #: ../../docstring of canaille.backends.models.Model.id:5 -#: fe3e4be3b44b43ebbbd11fe81fdc2613 +#: c267b02c5d9f44d2b6fa54a4fa80c07a 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 " @@ -5437,7 +5585,7 @@ msgstr "" "considérations supplémentaires concernant la vie privée." #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de +#: canaille.backends.models.Model.identifier:1 68b886ca51e94b929e6a81dece535871 msgid "" "Returns a unique value that will be used to identify the model instance." msgstr "" @@ -5445,7 +5593,7 @@ msgstr "" "modèle." #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:4 570af0c54d8a4b9ca5e1180a154578c6 +#: canaille.backends.models.Model.identifier:4 b942d5bf24f8490790ea02f455feef27 msgid "" "This value will be used in URLs in canaille, so it should be unique and " "short." @@ -5454,7 +5602,7 @@ msgstr "" "unique et court." #: ../../docstring of canaille.backends.models.Model.last_modified:1 -#: a64d636f5ae843698bae18cbc27adae5 +#: e2986b332a464e609b4d1a6042569839 msgid "" "The most recent :class:`~datetime.datetime` that the details of this " "resource were updated at the service provider." @@ -5463,7 +5611,7 @@ msgstr "" "de cette ressource a été mise-à-jour par le fournisseur de service." #: ../../docstring of canaille.backends.models.Model.last_modified:4 -#: 1478742051c64d3c8e8cb44b101c2337 +#: bc822b66fbc04a00801cac82d2dae44c 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." @@ -5476,13 +5624,15 @@ msgstr "" #: 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 +#: canaille.oidc.basemodels.Token:1 82169b55a46b4c65b4beb8d57b131a7c +#: ec3b388e2afc44389fbc8ba448b91118 71f525f7b5c0407db5b52bbd115bc09d +#: 5a01ffa3802640ffa56b74edf6b87cd3 db8c684605854a7e860884b4467182d6 +#: e1f14f010ff54e918cc97dc2d2345ff6 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "Bases : :py:class:`~canaille.backends.models.Model`" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: d8d4759602c44e048e0d4f053dc5c895 +#: 1957213a8dd2445ea66f5fa8155fdec7 msgid "" "User model, based on the `SCIM Group schema `_." @@ -5491,23 +5641,23 @@ msgstr "" "ietf.org/doc/html/rfc7643#section-4.2>`_." #: ../../docstring of canaille.core.models.Group.display_name:1 -#: f557ae62a380458ca1e212165ff7ebd2 +#: 329f754548e54099a1f7ffcbfeab9e77 msgid "A human-readable name for the Group." msgstr "Un nom lisible par un humain pour le Groupe." #: ../../docstring of canaille.core.models.Group.display_name:3 -#: canaille.oidc.basemodels.Client.client_id:1 3a782effac4c44f2b4084280c168f909 -#: 038998149ec146249f6cd7993b6ea7c2 +#: canaille.oidc.basemodels.Client.client_id:1 0ba4b47f809b4adfb4faa401ab882eb1 +#: 1687fff7eedc4a9294f55b5c0e71460d msgid "REQUIRED." msgstr "OBLIGATOIRE." #: ../../docstring of canaille.core.models.Group.members:1 -#: 83c94299de834bb7899fc5d919567ddf +#: 3849324e8bd9411ca14cf42753424f0b msgid "A list of members of the Group." msgstr "Une liste des membres du Groupe." #: ../../docstring of canaille.core.models.Group.members:3 -#: f8395458983d4efd966c1f2bd3e771dc +#: bfeaf8af5e9a4adaabbdc92a9c16c0b3 msgid "" "While values MAY be added or removed, sub-attributes of members are " "\"immutable\". The \"value\" sub-attribute contains the value of an \"id\" " @@ -5529,7 +5679,7 @@ msgstr "" "l'attribut « members » dans le schéma de la ressource « Group »." #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: 3de74c338e4e45d4ada0909e1d6a2c1d +#: e70c0af0475547bab48542208e6960ab msgid "" "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_." #: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 -#: dd44c29c7f88458e923a6bdc89ff4bd8 +#: cb1ff62500f2400f80efb9a83b666257 msgid "" "Whether or not the user has the :class:`~canaille.core.configuration." "Permission` according to the :class:`configuration `." #: ../../docstring of canaille.core.models.User.department:1 -#: d09b761f1c3d4bcda3c7c5841cb86768 +#: 1a0701e1fb5c4fb0b538e5a1998394a4 msgid "Identifies the name of a department." msgstr "Identifie le nom d’un service." #: ../../docstring of canaille.core.models.User.display_name:1 -#: 7a92e34396f14701a901c6342ba43372 +#: b02fd0fbb2dd404c94264ede072af9d3 msgid "The name of the user, suitable for display to end-users." msgstr "" "Le nom de l’utilisateur, destiné à être affiché auprès d’autres utilisateurs." #: ../../docstring of canaille.core.models.User.display_name:3 -#: e89fec83b2eb42deaac70264489240e3 +#: 2c6a95db4eb2484dbc839cf9d5874f6a 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 " @@ -5587,12 +5737,12 @@ msgstr "" "quand affiché auprès d'autres utilisateurs." #: ../../docstring of canaille.core.models.User.emails:1 -#: 5383ce6b712040c4a0bba18c1bbef93d +#: 09d7beb59dda4fba94ad22d25e6e6e6d msgid "Email addresses for the User." msgstr "L'adresse email de l'utilisateur." #: ../../docstring of canaille.core.models.User.emails:3 -#: dcbfe09f878141a4bd5a20b9e2d9b6da +#: f2a627a9e2d64f6e98a8a7d49c6e3960 msgid "" "The value SHOULD be specified according to [RFC5321]. Service providers " "SHOULD canonicalize the value according to [RFC5321], e.g., " @@ -5614,7 +5764,7 @@ msgstr "" "additionnels pouvant être utilisés à la discrétion des clients SCIM." #: ../../docstring of canaille.core.models.User.employee_number:1 -#: 6cc0c003bd234628a0bc0a0c27cccaee +#: 2fad1dcd5a98494782a7261a060cc54d msgid "" "A string identifier, typically numeric or alphanumeric, assigned to a " "person, typically based on order of hire or association with an organization." @@ -5624,7 +5774,7 @@ msgstr "" "d'embauche ou d'association avec une organisation." #: ../../docstring of canaille.core.models.User.family_name:1 -#: db1cbc1b88a44555ac36431d951ed1bc +#: de6af42b8a78479c80c17f9650ff40c0 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\")." @@ -5633,7 +5783,7 @@ msgstr "" "the full name \"Ms. Barbara Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.formatted_address:1 -#: 19bb2c52eb2747a8bae2df988b0f3226 +#: a98d8370e3ac4f0e8b69c6bbe070c064 msgid "" "The full mailing address, formatted for display or use with a mailing label." msgstr "" @@ -5641,12 +5791,12 @@ msgstr "" "un label de mailing." #: ../../docstring of canaille.core.models.User.formatted_address:4 -#: aaf2f2de713c468a8388bd976795c621 +#: 231f865353d84dd4a48c1df380cb67f9 msgid "This attribute MAY contain newlines." msgstr "Cet attribut PEUT contenir des retours à la ligne." #: ../../docstring of canaille.core.models.User.formatted_name:1 -#: 6e02928b97a944b5929f0002f9c7b70c +#: 756e32b2f48c4bb699750c4fb7bfeee4 msgid "" "The full name, including all middle names, titles, and suffixes as " "appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")." @@ -5655,7 +5805,7 @@ msgstr "" "formatés pour l'affichage (e.g., \"Mme. Barbara Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.given_name:1 -#: 0adf168d41024021aca8fcbf22e2b575 +#: 9ea5b53d4e104215b57ac2bbdd26ce37 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\")." @@ -5665,7 +5815,7 @@ msgstr "" "Jane Jensen, III\")." #: ../../docstring of canaille.core.models.User.groups:1 -#: ef755a48c32047c187a2405190a88b07 +#: 38f2628961964453b52af44ae8b771de msgid "" "A list of groups to which the user belongs, either through direct " "membership, through nested groups, or dynamically calculated." @@ -5674,7 +5824,7 @@ msgstr "" "appartenance directe, soit par groupes imbriqués ou calculés dynamiquement." #: ../../docstring of canaille.core.models.User.groups:4 -#: 0d7136476f7649ddad322de96971e938 +#: 028cef824f9f4aa4bc32e25d85675aa4 msgid "" "The values are meant to enable expression of common group-based or role-" "based access control models, although no explicit authorization model is " @@ -5718,12 +5868,12 @@ msgstr "" "mutabilité en lecture seule («  readOnly»)." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.has_password:1 034f9fa73a5d455382726ac4b448c136 +#: canaille.core.models.User.has_password:1 0f2b60791a8b4de6ad01e2aae8599351 msgid "Check whether a password has been set for the user." msgstr "Vérifie si un mot de passe a été définie pour l'utilisateur." #: ../../docstring of canaille.core.models.User.hotp_counter:1 -#: 05380b82ddda46bfa9678288cebf85a7 +#: 7270ae13d163421c834873b5c783e59c msgid "" "HMAC-based One Time Password counter, used for multi-factor authentication." msgstr "" @@ -5731,7 +5881,7 @@ msgstr "" "l'authentification multi-facteurs." #: ../../docstring of canaille.core.models.User.last_otp_login:1 -#: bdfeb17b4cc24311b1945121f22d4e61 +#: 3733def07fab41e6a20187ed1d5b3e0e msgid "" "A DateTime indicating when the user last logged in with a one-time password. " "This attribute is currently used to check whether the user has activated one-" @@ -5743,22 +5893,22 @@ msgstr "" "pas." #: ../../docstring of canaille.core.models.User.locality:1 -#: 3d50110e459f4ba3b06af609c8f2bef8 +#: 35cad569116b41dfbe6bbe2b8104b76b msgid "The city or locality component." msgstr "Le composant de ville ou de localité." #: ../../docstring of canaille.core.models.User.lock_date:1 -#: bc9386fb2f7c41cc82308c45d919feb9 +#: 633f6bdeb83f4913a8ee2f882af9002c msgid "A DateTime indicating when the resource was locked." msgstr "Une date (DateTime) indiquant quand la ressource a été verrouillée." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.locked:1 8f227ede6e584fda946d50e86049afcb +#: canaille.core.models.User.locked:1 39db3feba62644ffa9786bffc2ab4a7f msgid "Whether the user account has been locked or has expired." msgstr "Si le compte utilisateur a été verrouillé ou a expiré." #: ../../docstring of canaille.core.models.User.one_time_password:1 -#: 4f6ac05bac3845ea8325c2b34e8c0824 +#: f18bf157b3d146f9a1ce6b555d34e063 msgid "One time password used for email or sms multi-factor authentication." msgstr "" "Mot de passe à usage unique utilisé pour l'authentification multi-facteurs " @@ -5766,7 +5916,7 @@ msgstr "" #: ../../docstring of #: canaille.core.models.User.one_time_password_emission_date:1 -#: cc1503678fc046f9bb759040e7e561e1 +#: 3524d8036e604f5ea0b79f6923281e59 msgid "" "A DateTime indicating when the user last emitted an email or sms one-time " "password." @@ -5775,12 +5925,12 @@ msgstr "" "unique par SMS ou email." #: ../../docstring of canaille.core.models.User.organization:1 -#: 39b14adbf8ad42b39c2cdd9fb0fcf96c +#: 4d9f6ad494f04647ab74303cf4ac43ff msgid "Identifies the name of an organization." msgstr "Identifie le nom de l'organisation." #: ../../docstring of canaille.core.models.User.password:1 -#: a4ec9a6f72834b47b82db401e1ebed2f +#: 40d6c48066524cfc8351cc767f41346a 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 " @@ -5798,7 +5948,7 @@ msgstr "" "de service comme suit :" #: ../../docstring of canaille.core.models.User.password:9 -#: 4a4c0608f0ac4739bbb358ebfffbc94c +#: 8f905c9dd5d348c3a471dba091253875 msgid "" "Prepare the cleartext value for international language comparison. See " "Section 7.8 of [RFC7644]." @@ -5807,7 +5957,7 @@ msgstr "" "Voir la section 7.8 de [RFC7644]." #: ../../docstring of canaille.core.models.User.password:12 -#: 770cfb12f1c943188e281ef2e527ccb2 +#: 2ebe8572767c40ef994cdebbe78d85de msgid "" "Validate the value against server password policy. Note: The definition and " "enforcement of password policy are beyond the scope of this document." @@ -5817,7 +5967,7 @@ msgstr "" "périmètre de ce document." #: ../../docstring of canaille.core.models.User.password:16 -#: 736bf805f27d4dfb8c1292b5afaca0be +#: 75918453e12d4bceb114c825c4bc2be3 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 " @@ -5828,7 +5978,7 @@ msgstr "" "et la persistance pour des raisons de suivi de fourniture." #: ../../docstring of canaille.core.models.User.password:20 -#: 605f5a91894e42ee9d14686ae2f346cd +#: b9119fbfcde14dbca59820b443efd8a2 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 " @@ -5846,7 +5996,7 @@ msgstr "" "chiffrement." #: ../../docstring of canaille.core.models.User.password:28 -#: 198ed93545fe467ea461cef9a184362c +#: 16ddf15766214a3f80f303269bddbb79 msgid "" "Testing for an equality match MAY be supported if there is an existing " "stored hashed value. When testing for equality, the service provider:" @@ -5855,7 +6005,7 @@ msgstr "" "Quand un test d'égalité est fait, le fournisseur du service :" #: ../../docstring of canaille.core.models.User.password:32 -#: becd82e6d299471d94ab4906ce105218 +#: 827dd01cece04053a65fed8877f35e51 msgid "" "Prepares the filter value for international language comparison. See " "Section 7.8 of [RFC7644]." @@ -5864,7 +6014,7 @@ msgstr "" "Voir la section7.8 de [RFC7644]." #: ../../docstring of canaille.core.models.User.password:35 -#: ca91b3fdd3ae434dbb47d55b73ccbcb2 +#: 1e4a8c9cfd7a4bd6960d66a5f63742ab msgid "" "Generates the salted hash of the filter value and tests for a match with the " "locally held value." @@ -5873,7 +6023,7 @@ msgstr "" "la valeur locale." #: ../../docstring of canaille.core.models.User.password:38 -#: 0c4d62a31f2d442981432c2f841abdac +#: 8f6cfda04ae544c6822f4a7f06cea845 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 " @@ -5885,7 +6035,7 @@ msgstr "" "l'attribut est \"never\")." #: ../../docstring of canaille.core.models.User.password_failure_timestamps:1 -#: af54ab55d44c469d886fbacc828582d6 +#: 2bcfd4fcbfb044239e08740a87b836cf msgid "" "This attribute stores the timestamps of the user's failed authentications." msgstr "" @@ -5893,14 +6043,14 @@ msgstr "" "l'utilisateur." #: ../../docstring of canaille.core.models.User.password_failure_timestamps:4 -#: 785dc2a557f5471fb7e5cdebbaf84443 +#: 947638406ec447c69ee529ec5db689c9 msgid "It's currently used by the intruder lockout delay system." msgstr "" "C'est actuellement utilisé par le système de blocage des connexions " "infructueuses." #: ../../docstring of canaille.core.models.User.password_last_update:1 -#: f1bb412648244da18357a6e88d57836b +#: 9ed3dec804234490afb3e06065614fcb msgid "" "Specifies the last time the user password was changed. By default, the date " "of creation of the password is retained." @@ -5909,12 +6059,12 @@ msgstr "" "défaut, c'est la date de création du mot de passe qui est utilisée." #: ../../docstring of canaille.core.models.User.phone_numbers:1 -#: 636757499c76498ca8a1cbad6ea4fbb7 +#: e6c0fe4b0a3142fe9197d175f60b217c msgid "Phone numbers for the user." msgstr "Numéros de téléphone pour l'utilisateur." #: ../../docstring of canaille.core.models.User.phone_numbers:3 -#: dabf654512714fda965fded70f74aeac +#: 4e5ec315754d41568d9b1b84d5a7dce7 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 " @@ -5934,7 +6084,7 @@ msgstr "" "d'autres types définis par les clients SCIM." #: ../../docstring of canaille.core.models.User.photo:1 -#: 27d8a36d06ce46858ed9974cfb3a9a9b +#: 509e5e62dcb240599d27a5f02e7a7e03 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." @@ -5944,7 +6094,7 @@ msgstr "" "l'image de l'utilisateur." #: ../../docstring of canaille.core.models.User.photo:5 -#: 8d0e8ca2555c48b0aad26fa7fdb102cf +#: 207121916f8140a89ac96917fb82c3c8 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 " @@ -5968,12 +6118,12 @@ msgstr "" "pour représenter les tailles de photo populaire : « photo » et « vignette »." #: ../../docstring of canaille.core.models.User.postal_code:1 -#: ca9c10bc74eb4a2b90365bbd3473b1be +#: bb30484b20b44c4c8a5e790565a75c52 msgid "The zip code or postal code component." msgstr "Le composant code zip ou postal." #: ../../docstring of canaille.core.models.User.preferred_language:1 -#: 5c7d29d6e6334161b21068010f566af2 +#: d28cb1c7653f48619c4ea69883c99982 msgid "" "Indicates the user's preferred written or spoken languages and is generally " "used for selecting a localized user interface." @@ -5982,7 +6132,7 @@ msgstr "" "généralement utilisée pour sélectionner la langue de l'interface utilisateur." #: ../../docstring of canaille.core.models.User.preferred_language:4 -#: c45f7e1feb59446daa9dbea7cce24305 +#: 65ba0d81d5b4453dac85fbb4b80521b4 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 " @@ -6006,7 +6156,7 @@ msgstr "" "l'en-tête HTTP Accept-Language." #: ../../docstring of canaille.core.models.User.profile_url:1 -#: 267adc8c4ecf4750a9db3464eb2b8573 +#: dc41821b1f6940468c4c18d70de4b372 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 " @@ -6017,12 +6167,12 @@ msgstr "" "l'utilisateur (par exemple une page web)." #: ../../docstring of canaille.core.models.User.profile_url:5 -#: 7f227419ab034b3da8303fe94affeb6c +#: 8481e9db6717497da875c95d2f8c5a8d msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." msgstr "Les URI sont au format canonique selon la section 6.2 de [RFC3986]." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.readable_fields:1 e064888816ad4e228797af005daa0c1b +#: canaille.core.models.User.readable_fields:1 82072608d7184c37ab37493cacb7b587 msgid "" "The fields the user can read according to the :class:`configuration " "` configuration." @@ -6031,7 +6181,7 @@ msgstr "" "`configuration ." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.readable_fields:4 d51b5c9a3058444187f7f52aafcc57ce +#: canaille.core.models.User.readable_fields:4 c02e2a584e0c4473b1001c024b24696f msgid "" "This does not include the :attr:`writable ` fields." @@ -6040,12 +6190,12 @@ msgstr "" "writable_fields>`." #: ../../docstring of canaille.core.models.User.region:1 -#: 7781da46bb4f45c19d4061a73efd1860 +#: 037f259a6e984ca1aea1e1f80d9b6079 msgid "The state or region component." msgstr "Le composant État ou région." #: ../../docstring of canaille.core.models.User.secret_token:1 -#: 3764681cd7844fdaa69cc2ab072ff732 +#: 5f56d77ac5ee40d192cc5b122e0f79ae msgid "" "Unique token generated for each user, used for multi-factor authentication." msgstr "" @@ -6053,7 +6203,7 @@ msgstr "" "multi-facteurs." #: ../../docstring of canaille.core.models.User.street:1 -#: e15de46ed1a745e580399d0bf40e96b8 +#: e57fcc9747814887a3643ba92cc6dc53 msgid "" "The full street address component, which may include house number, street " "name, P.O." @@ -6062,7 +6212,7 @@ msgstr "" "maison, le nom de la rue, code" #: ../../docstring of canaille.core.models.User.street:4 -#: 663a1b080f3646f5bbc30492beccda49 +#: 563c42f617d444ec90c40d6af35f43a8 msgid "" "box, and multi-line extended street address information. This attribute MAY " "contain newlines." @@ -6071,12 +6221,12 @@ msgstr "" "attribut PEUT contenir des retours à la ligne." #: ../../docstring of canaille.core.models.User.title:1 -#: 96571ab69f47443087e9de7cdf2af3ef +#: 6d2d009ee87746d4bcb3d63c3bc9f8cb msgid "The user's title, such as \"Vice President\"." msgstr "Le titre de l'utilisateur, par exemple \"Vice Président\"." #: ../../docstring of canaille.core.models.User.user_name:1 -#: 5a41c74aee6040d78b20e68feedbe91d +#: 89f788bca8344b2ba7f5967a62e7bcce msgid "" "A service provider's unique identifier for the user, typically used by the " "user to directly authenticate to the service provider." @@ -6086,7 +6236,7 @@ msgstr "" "auprès de ce fournisseur de service." #: ../../docstring of canaille.core.models.User.user_name:4 -#: 305c46ac8a734b4fb513c2da9c0bd78d +#: f6806a97c1b74c79b9600427618fed91 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-" @@ -6102,7 +6252,7 @@ msgstr "" "et n'est pas sensible à la casse." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.writable_fields:1 f99945951b7f476484908fef5eb9bee4 +#: canaille.core.models.User.writable_fields:1 2017dc660a66445db67269640fd1fd8f msgid "" "The fields the user can write according to the :class:`configuration " "`." @@ -6111,14 +6261,14 @@ msgstr "" "`." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.string_code:1 81f725c1782d45b395593f37c0776e41 +#: canaille.core.models.string_code:1 b1de5e85f60e43b282a0030180652af0 msgid "Add leading 0 if the code length does not match the defined length." msgstr "" "Ajoute des 0 au début si la longueur du code ne correspond pas la longueur " "définie." #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.string_code:3 1cc69f629da14627a5d08132c7388c45 +#: canaille.core.models.string_code:3 97af099fefbe45d6a996d9a721da82c3 msgid "" "For instance, parameter ``digit=6``, but ``code=123``, this method would " "return ``000123``::" @@ -6128,12 +6278,12 @@ msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.AuthorizationCode:1 -#: 470216f2acc344a9bc4fe9408cf38b4c +#: adb7d97f3da14c2aacca22dd9662c8ff msgid "OpenID Connect temporary authorization code definition." msgstr "Définition du code temporaire d'autorisation OpenID Connect." #: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b +#: canaille.oidc.basemodels.Client:1 5b28461fe1a648319cb0c397a99b4e53 msgid "" "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " "Registration protocols `_." #: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 -#: 9630f3464163481993a425c28c308969 +#: e0657b683d9647658874cadf0850f835 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 " @@ -6161,12 +6311,13 @@ 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 +#: 967cfa0d0db440809c848e54df164c07 4b4d070c368a434f8cc01bd90da45fc9 +#: f0ca582d84334ea1a5507f264b52ef8b msgid "OPTIONAL." msgstr "OPTIONNEL." #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 -#: fb189c4d73054f559edc1f71e252013c +#: 0838ce8aace4443387c90b0261ca5378 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 " @@ -6177,7 +6328,7 @@ msgstr "" "UTC jusqu'à la date d'émission." #: ../../docstring of canaille.oidc.basemodels.Client.client_name:1 -#: 90b1171c71784152b30c868ce6a69e92 +#: 717188e85d47456ebd89ff518aa68b29 msgid "" "Human-readable string name of the client to be presented to the end-user " "during authorization." @@ -6186,7 +6337,7 @@ msgstr "" "sous la forme d'une chaîne de caractères lisible par un être humain." #: ../../docstring of canaille.oidc.basemodels.Client.client_name:4 -#: 2f438f6285d3455f81459326d3ed2a3d +#: 245a799f27b0452d8b0796e99a80f07d 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 " @@ -6199,7 +6350,7 @@ msgstr "" "internationalisée, comme décrit dans la Section 2.2." #: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3 -#: b659e17a18ae49d6b460ce4bfd3ef720 +#: c1fc10e0d4c54f52a51026a03b857b99 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 " @@ -6215,13 +6366,13 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:1 -#: fe3efeb714e642038fddaee69b85a240 +#: 9cfc3339a1dd46189984275692dba718 msgid "REQUIRED if \"client_secret\" is issued." msgstr "REQUIS si \"client_secret\" est émis." #: ../../docstring of #: canaille.oidc.basemodels.Client.client_secret_expires_at:3 -#: 8224ead887464588a9b93fc320780f69 +#: 1186270fd481486caa704d2fd7528b4f 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 " @@ -6232,13 +6383,13 @@ msgstr "" "1970-01-01T00:00:00Z mesuré en UTC jusqu'à la date d'expiration." #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1 -#: c7ec8c5c04bd41fa87825f3d6f4e71b3 +#: b0291c41aa9c4f2c8f66a0c71b9b4711 msgid "URL string of a web page providing information about the client." msgstr "" "URL en chaîne de caractères d'une page d'information à propos du client." #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 -#: 8be313c7ec5848419e7a0062beefd60c +#: f478bd954ac24382b1de1588c419c6a2 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. " @@ -6252,7 +6403,7 @@ msgstr "" "section 2.2." #: ../../docstring of canaille.oidc.basemodels.Client.contacts:1 -#: 133418eefb1d484ba26f492838063c04 +#: f6e323978f9a463cabca1ddcaa5f6d0b msgid "" "Array of strings representing ways to contact people responsible for this " "client, typically email addresses." @@ -6262,7 +6413,7 @@ msgstr "" "e-mail." #: ../../docstring of canaille.oidc.basemodels.Client.contacts:4 -#: 4c4d89f737af445da4e7eb5882887e00 +#: de7fc414bed34c7aab0a55ad3cd826f4 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 " @@ -6274,7 +6425,7 @@ msgstr "" "vie privée." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:1 -#: 5105e93451e946fea6c3fd0b09c19683 +#: 23b30053d45946ecaf4f2d8bc5469f90 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:" @@ -6284,7 +6435,7 @@ msgstr "" "définies comme suit :" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:4 -#: 471bb398e08d45d588f320d2c25cb025 +#: 75a3dfb08d97436eb62cc7855c3610ea msgid "" "\"authorization_code\": The authorization code grant type defined in OAuth " "2.0, Section 4.1." @@ -6293,7 +6444,7 @@ msgstr "" "2.0, section 4.1." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:7 -#: c1785e60703f46e5a3a6e7131ba26894 +#: ae2400d35211470f9ad2dc29e743ecb0 msgid "" "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." msgstr "" @@ -6301,7 +6452,7 @@ msgstr "" "section 4.2." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 -#: 99ec3801466340bd83367ab92a351ac3 +#: 0af327a65a014400b624754d17db1304 msgid "" "\"password\": The resource owner password credentials grant type defined in " "OAuth 2.0, Section 4.3." @@ -6310,7 +6461,7 @@ msgstr "" "de la ressource défini dans OAuth 2.0, section 4.3." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:13 -#: a62c7b8185ee4863aec423c5fe445ae5 +#: 33eb8a7321934eef8b1b8f7c77ca6e04 msgid "" "\"client_credentials\": The client credentials grant type defined in OAuth " "2.0, Section 4.4." @@ -6319,7 +6470,7 @@ msgstr "" "défini dans OAuth 2.0, section 4.4." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:16 -#: 2fd298fce6974e4da2f670da31280955 +#: 986d1fe697094e24b8d1c5d9abcbe542 msgid "" "\"refresh_token\": The refresh token grant type defined in OAuth 2.0, " "Section 6." @@ -6328,7 +6479,7 @@ msgstr "" "2.0, section 6." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:19 -#: 2fb0f1de8f46429eb46970d53c954d91 +#: 04635a2484cb4aa98c04ef7e6d06047e msgid "" "\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token Grant " "Type defined in OAuth JWT Bearer Token Profiles [RFC7523]." @@ -6337,7 +6488,7 @@ msgstr "" "jeton Bearer JWT défini dans OAuth JWT Bearer Token Profiles [RFC7523]." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:23 -#: dd4f8e0551e048d599a3f95740ea3cf1 +#: 30c6734c6f254c9ab0c1bd628606080d 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]." @@ -6347,7 +6498,7 @@ msgstr "" "[RFC7522]." #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:27 -#: 241768369988480b8f79cae93fa06ff4 +#: cde679d2d9524468863e856afe8a7b60 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 " @@ -6365,7 +6516,7 @@ msgstr "" "uniquement le type d'autorisation \"authorization_code\"." #: ../../docstring of canaille.oidc.basemodels.Client.jwk:1 -#: 779d5b8c355f4e469d0880100f197dbd +#: 03fcc115c5ff4506bdd2a9adef32c993 msgid "" "Client's JSON Web Key Set [RFC7517] document value, which contains the " "client's public keys." @@ -6374,7 +6525,7 @@ msgstr "" "clés publiques du client." #: ../../docstring of canaille.oidc.basemodels.Client.jwk:4 -#: 786a840808f042fdb3a97eb1bd7f7a98 +#: 02fefaf4edc14d88ad63f66d929fbc8f 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 " @@ -6392,7 +6543,7 @@ msgstr "" "présent dans la même requête our réponse." #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:1 -#: 29bbb97b4b0545df84cf23ec1e6b14cf +#: 3517e8d1433c4a29af4e1a37e51745b0 msgid "" "URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] " "document, which contains the client's public keys." @@ -6401,7 +6552,7 @@ msgstr "" "[RFC7517] du client, qui contient les clefs publiques du client." #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:4 -#: 4021b5fbeabb464d938a3903ef7e718b +#: a4cea848089b4921b616a4cc682df264 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 " @@ -6423,12 +6574,12 @@ msgstr "" "deux présents dans la même requête ou réponse." #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:1 -#: 723f17b9b9df481394bcff341b2730b1 +#: 1058da51ab304a729c47f357ba058b65 msgid "URL string that references a logo for the client." msgstr "URL en chaîne de caractères pointant vers un logo pour le client." #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 -#: 6b1a034be4f248e98f185c7a0ef2c3b5 +#: 897286c50a844afeaa8822854d80c376 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 " @@ -6440,7 +6591,7 @@ msgstr "" "comme décrit dans la Section 2.2." #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1 -#: 92446c1f45fc4da9bf18fed32b046f26 +#: 3b42d4ff71e940519fe684fb1ff948f7 msgid "" "URL string that points to a human-readable privacy policy document that " "describes how the deployment organization collects, uses, retains, and " @@ -6452,7 +6603,8 @@ msgstr "" "personnelles." #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5 -#: canaille.oidc.basemodels.Client.tos_uri:5 470f3a6ebe5a470d97207d2d724d7a50 +#: canaille.oidc.basemodels.Client.tos_uri:5 8b45eca8d1ba446abf902daadf5e1fda +#: 3387991465b848b2a30d39647bbb4957 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 " @@ -6465,7 +6617,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.post_logout_redirect_uris:3 -#: 80775602163f4c4eae2aa73101fb4a59 +#: fc67d35b36e44cf8aba020e20ed0541f 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 " @@ -6485,7 +6637,7 @@ msgstr "" "autorise l'utilisation d'URI RP http." #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:1 -#: 9864218626a9495d837ca07ecabe2e83 +#: 9a33ca942bb24edf8a01c21608ea2f73 msgid "" "Array of redirection URI strings for use in redirect-based flows such as the " "authorization code and implicit flows." @@ -6495,7 +6647,7 @@ msgstr "" "implicites." #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:4 -#: a1f4e7a342764daf9b91f5c582e0d704 +#: 68f13c9e8ebb40aeb80f1f8646b9c17a msgid "" "As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with " "redirection MUST register their redirection URI values. Authorization " @@ -6509,7 +6661,7 @@ msgstr "" "gestion de la valeur de cette métadonnéee." #: ../../docstring of canaille.oidc.basemodels.Client.response_types:1 -#: 2b675d8a76b64442baaf96288a99145f +#: 14f38992c4cd441ebbc8581b5cfc81ed 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:" @@ -6519,7 +6671,7 @@ msgstr "" "définies comme suit :" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:5 -#: 3f19f3d3bf244c669c336230f4e548e5 +#: f10a2f7b651b49f3a478805baa7d1ba7 msgid "" "\"code\": The authorization code response type defined in OAuth 2.0, Section " "4.1." @@ -6528,14 +6680,14 @@ msgstr "" "section 4.1." #: ../../docstring of canaille.oidc.basemodels.Client.response_types:8 -#: 8be17e9ef4c642a0a227974a40450da2 +#: 5afdef305ded4cb09fd75ef4733d4a7a msgid "" "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." msgstr "" "\"token\" : le type de réponse implicite défini dans OAuth 2.0, section 4.2." #: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 -#: 3be1d7f3ab82407ebcf77c9ad6294934 +#: 31436e43c2444893993f0537a739bb97 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 " @@ -6554,7 +6706,7 @@ msgstr "" "\"code\"." #: ../../docstring of canaille.oidc.basemodels.Client.scope:1 -#: 99bf5a0735f3490eb63943c7926eb165 +#: ee96854b70914411b34d691bee4ea794 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 " @@ -6565,7 +6717,7 @@ msgstr "" "le client peut utiliser quand il demande des jetons d'accès." #: ../../docstring of canaille.oidc.basemodels.Client.scope:5 -#: d9c4d3be73ae454fbc08c0452c4cafba +#: 867579989e8343099f2645ec3daae661 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." @@ -6575,7 +6727,7 @@ msgstr "" "de périmètres par défaut." #: ../../docstring of canaille.oidc.basemodels.Client.software_id:1 -#: ee3bd26091c94945b33584e781c19370 +#: c267bd27bc0643dfa799a288bba6898c msgid "" "A unique identifier string (e.g., a Universally Unique Identifier (UUID)) " "assigned by the client developer or software publisher used by registration " @@ -6588,7 +6740,7 @@ msgstr "" "dynamiquement." #: ../../docstring of canaille.oidc.basemodels.Client.software_id:6 -#: 8fd0e02b12354b72b7175ade2536eac3 +#: b39f9748f4d94612bce4bbafa631edb5 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 " @@ -6606,7 +6758,7 @@ msgstr "" "d'autorisation." #: ../../docstring of canaille.oidc.basemodels.Client.software_version:1 -#: 2d69ee9b36d244ec98fb0ca3135ac74f +#: 1c86069cf82d405b80e9449c82ecd79e msgid "" "A version identifier string for the client software identified by " "\"software_id\"." @@ -6615,7 +6767,7 @@ msgstr "" "identifié par \"software_id\"." #: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 -#: 0da082aab3354aad8196b87ea111796f +#: 76d6a1a3931a4366a86c58de3c921b06 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 " @@ -6640,7 +6792,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 -#: e666c285e9d0483a8b06ed07b9596fd1 +#: a931df28521e48ac9f2e294e6b40c1af msgid "" "String indicator of the requested authentication method for the token " "endpoint. Values defined by this specification are:" @@ -6651,7 +6803,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 -#: 75019e0ffa134fe0a48fc885130c97ee +#: d03d2336b72748abb03b7629c8cb236c msgid "" "\"none\": The client is a public client as defined in OAuth 2.0, Section " "2.1, and does not have a client secret." @@ -6661,7 +6813,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 -#: 6d1fcab0de3a41e18101687e93c45444 +#: 1d75c85686a6406e80c0609011503309 msgid "" "\"client_secret_post\": The client uses the HTTP POST parameters as defined " "in OAuth 2.0, Section 2.3.1." @@ -6671,7 +6823,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 -#: 75493a43244c4357842d2fdfa745f330 +#: 3fce72a657484e9987ed472193f364a2 msgid "" "\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth 2.0, " "Section 2.3.1." @@ -6681,7 +6833,7 @@ msgstr "" #: ../../docstring of #: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 -#: 070320a7585e4d9ba744cbaed1593208 +#: 01d6f8a488754b5f8da1973c101cffdb msgid "" "Additional values can be defined via the IANA \"OAuth Token Endpoint " "Authentication Methods\" registry established in Section 4.2. Absolute URIs " @@ -6697,7 +6849,7 @@ msgstr "" "authentication » comme spécifié dans la section 2.3.1 de OAuth 2.0." #: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:1 -#: 95cc7b66c6da48e5a189a32abaa9c24e +#: a87b9ed913e74134a96ab13db76ac51f 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 " @@ -6709,24 +6861,24 @@ msgstr "" "l'utilisateur final accepte quand il autorise le client." #: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Consent:1 bf6c359aadbc4404ba1967b1b8d26255 +#: canaille.oidc.basemodels.Consent:1 1ce3e3e8887242d4887f1d65ded91a08 msgid "Long-term user consent to an application." msgstr "Consentement utilisateur à long terme à une application." #: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Token:1 a20eaa516c854599a62222141346d76b +#: canaille.oidc.basemodels.Token:1 5165dd5a43e7441cb556b288dd912159 msgid "OpenID Connect token definition." msgstr "Définition de jeton OpenID Connect." #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_account_lockability:1 -#: 51e69cc91e5b411db5b8ebdb30702245 +#: e317757c8739489cb4c606d40a90cb90 msgid "Indicate whether the user accounts can be locked." msgstr "Indique si les comptes utilisateur peuvent être verrouillés." #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_account_lockability:3 -#: e8475984eb0f465f97109240832fc978 +#: 4935317ffeda47b785292d21e926c3a3 msgid "" "It depends on the backend used by Canaille. This is only disabled for " "OpenLDAP versions under 2.6." @@ -6736,14 +6888,14 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_confirmation:1 -#: db40ea1562de466b8cd314d95f04fb64 +#: 2970459a63174e829259ae220ec911dc msgid "Indicate whether the user email confirmation is enabled." msgstr "" "Indique si la confirmation des adresses email des utilisateurs est activée." #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_confirmation:3 -#: 24739facc2bd4c75aaabe0ab4f870c52 +#: c1079035d9be414983104194b2ab2120 msgid "" "It is controlled by the :attr:`CANAILLE.EMAIL_CONFIRMATION ` configuration parameter." @@ -6754,7 +6906,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_otp:1 -#: 21ca21a9a0c240f7899bc11bca2da3b0 +#: 479b07160b35479abc87e2221bec17b2 msgid "Indicate whether the email OTP authentication factor is enabled." msgstr "" "Indique si le facteur d'authentification de mot de passe à usage unique " @@ -6762,7 +6914,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_otp:3 -#: e064888816ad4e228797af005daa0c1b +#: e84db66b26a44edfa4dc1e6cbde4a367 msgid "" "It is controlled by the :attr:`CANAILLE.EMAIL_OTP ` configuration parameter." @@ -6772,7 +6924,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_intruder_lockout:1 -#: 1998dd6eda9e42f981d690ad9c3114d3 +#: 61712b4872ac426aa90f58eee9fe9e4c msgid "Indicate whether the intruder lockout feature is enabled." msgstr "" "Indique si le verrouillage temporaire des comptes utilisateur après échecs " @@ -6780,7 +6932,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_intruder_lockout:3 -#: f673ed471ad545b18ac0693ba051f9ba +#: aef23f3499454b14b5bd0b7bbfec559d msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_INTRUDER_LOCKOUT ` configuration " @@ -6791,12 +6943,12 @@ msgstr "" "ENABLE_INTRUDER_LOCKOUT>`." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_oidc:1 07510d9a21e7471a86b8cb67ebd3f818 +#: canaille.app.features.Features.has_oidc:1 2aabb9553b6949709c73253180bd4d4e msgid "Indicate whether the OIDC feature is enabled." msgstr "Indique si la fonctionnalité OIDC est activé." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_oidc:3 aabe8d66effa4394829dee8ebdbc387b +#: canaille.app.features.Features.has_oidc:3 82fb878e33854d91b056aa833b95c490 msgid "" "This feature is required to make Canaille an authorization server for other " "applications and enable SSO. It is controlled by the :class:`CANAILLE_OIDC " @@ -6811,14 +6963,14 @@ msgstr "" "``oidc``." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_otp:1 aa9a89f7384f49e680ea30d8baa145b3 +#: canaille.app.features.Features.has_otp:1 7b629967c62d4d4082395fd70d845fac msgid "Indicate whether the OTP authentication factor is enabled." msgstr "" "Indique si le facteur d'authentification de mot de passe à usage unique est " "actif." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_otp:3 97dbc9427f2942639739f4ca336b2c5f +#: canaille.app.features.Features.has_otp:3 04109fcdb7c5458290d27321fe20d363 msgid "" "It is controlled by the :attr:`CANAILLE.OTP_METHOD ` configuration parameter, and needs " @@ -6830,14 +6982,14 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_password_recovery:1 -#: be057526037b4c0ca9eeadd4d59faf00 +#: 30f3561a2c7f4f82940e8659e07b9fce msgid "Indicate whether the password recovery feature is enabled." msgstr "" "Indique si la fonctionnalité de réinitialisation de mot de passe est activée." #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_password_recovery:3 -#: 25817e283da2497d805bfcad9c0175cf +#: 8dbab1baf660461b957ab458b86f8d1a msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_PASSWORD_RECOVERY ` configuration " @@ -6849,7 +7001,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_registration:1 -#: 625966afc8b04095b75167729f416662 +#: 1a46b31407b94556b7d7ba1b1efb72b5 msgid "Indicate whether the user account registration is enabled." msgstr "" "Indique si la fonctionnalité d'enregistrement de comptes utilisateurs est " @@ -6857,7 +7009,7 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_registration:3 -#: 2805f75ef1fb4cd0832d589018d21548 +#: 8a808dd6387b49d69a88d23b8da5c3de msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_REGISTRATION ` configuration parameter." @@ -6868,13 +7020,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_scim_server:1 -#: aaecfeba0f154fe2977fa24558dac7f8 +#: b6353866864746679e731902db3a6ad5 msgid "Indicate whether the SCIM server feature is enabled." msgstr "Indique si la fonctionnalité de serveur SCIM est activée." #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_scim_server:3 -#: f585e4196fbb439189756d2389b6c9fc +#: 0e4e8b0c28bf4ff893e4b015d4c045e3 msgid "" "This feature is required to make Canaille a provisioning server. It is " "controlled by the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter, and needs the ``smpp`` extra " @@ -6907,12 +7059,12 @@ msgstr "" "requière le paquet extra ``smpp``." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_smtp:1 3a89ac39a9e643149dc0173956a001a3 +#: canaille.app.features.Features.has_smtp:1 6252fb79e38d40f5b8826dfe87efd84c msgid "Indicate whether the mail sending feature is enabled." msgstr "Indique si la fonctionnalité d'envoi de mail est activée." #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_smtp:3 28bd58a812e84704a83f61aa5e9f0832 +#: canaille.app.features.Features.has_smtp:3 849b7de93582432cb12e533cacf3d864 msgid "" "This feature is required to :attr:`validate user email addresses `, send email OTP passwords " @@ -6925,11 +7077,11 @@ msgstr "" "par le paramètre de configuration :attr:`CANAILLE.SMTP `." -#: ../references/templates.rst:2 25d974aba30140f4ad6e3445c3d71f50 +#: ../references/templates.rst:2 5f9d52fbb7344304a33a0eb7cfb015fb msgid "Templates" msgstr "Patrons" -#: ../references/templates.rst:4 29dfdb16379245fbb820e7677490ee2a +#: ../references/templates.rst:4 0ec160217743460aa21c2c99a386524f msgid "" "This references the template files, their role and the variables available " "in their contexts. The intended audience for this reference is designers " @@ -6940,37 +7092,37 @@ msgstr "" "pour cette référence sont les designers qui souhaitent construire un thème " "personnalisé pour Canaille." -#: ../references/templates.rst:8 a9dc7731e37b4ca3900d9a269af917b2 +#: ../references/templates.rst:8 c4dae69dc590432f9691c0d763f7df8c msgid "Base" msgstr "Base" -#: ../references/templates.rst:10 0083cf8f344a4aebb0db66182082b38e +#: ../references/templates.rst:10 2d86d946bebb41a69933f921f2b7312d msgid "Those templates are shared by all the pages rendered by Canaille." msgstr "Ces patrons sont partagés par toutes les pages de Canaille." #: ../references/templates.rst:13 ../references/templates.rst:35 -#: ../references/templates.rst:53 b7454449e2d74b1ba858b35dd9506974 -#: 017f3391e5324507b57d461e17c87379 d98c6d77a83046edba83238c1c41f765 +#: ../references/templates.rst:53 a5a0c7c729174b69b7161dbc8abbd969 +#: 298198cd92ec45a490362f33c0e75741 74c0ab51e1da40efb5b75f98868222a9 msgid "Template files" msgstr "Fichiers de patrons" -#: ../../:1 8da82919623541cf99ddb3719a66ce6c +#: ../../:1 7be0a83bad854553b20777a2a0782d23 msgid "The main template inherited by almost every other templates." msgstr "Le patron principal dont hérite à peu près tous les autres patrons." -#: ../../:1 0302eac895db4e9192dcda1cf138e681 +#: ../../:1 ade7caad09f74fbbbb8e6ae9276e3be8 msgid "The current user, if logged in." msgstr "L'utilisateur courant, si connecté." -#: ../../:1 e3c9d7ed1b37441a9ea451dc09bf0256 +#: ../../:1 276fe3eb9c3346dd987a579dad80e69b msgid "The features enabled and available in Canaille." msgstr "Les fonctionnalités disponibles, et activées dans Canaille." -#: ../../:1 92d32aa698334d27bccff184e7f56f4a +#: ../../:1 2d0ad06c56034e4296882043db94e127 msgid "The user locale." msgstr "La code de la langue utilisée par l'utilisateur." -#: ../../:1 46c7365e792d4e44bd0964d401ba3d8d +#: ../../:1 bc1a541d4be4473d9ea86978fb5cbd9f msgid "" "The Canaille instance defined in :attr:`~canaille.core.configuration." "CoreSettings.NAME`." @@ -6978,7 +7130,7 @@ msgstr "" "Le nom de l'instance de Canaille défini dans :attr:`~canaille.core." "configuration.CoreSettings.NAME`." -#: ../../:1 4eb0dc013f754cd19b2b0ead85436fc2 +#: ../../:1 e4a5a4c5dc6f40cdb50a5bbd11ad13ca msgid "" "The URL of the instance logo defined in :attr:`~canaille.core.configuration." "CoreSettings.LOGO`." @@ -6986,7 +7138,7 @@ msgstr "" "L'URL du logo de l'instance défini dans :attr:`~canaille.core.configuration." "CoreSettings.LOGO`." -#: ../../:1 36b2a2855bb84f5a82440c1ce7a066af +#: ../../:1 a2c4eb224d834cfa8438bfa3da66f569 msgid "" "The URL of the instance favicon defined in :attr:`~canaille.core." "configuration.CoreSettings.FAVICON`." @@ -6994,7 +7146,7 @@ msgstr "" "L'URL du *favicon* de l'instance de Canaille défini dans :attr:`~canaille." "core.configuration.CoreSettings.FAVICON`." -#: ../../:1 b5502e90eb964459b7477ba8cfd4bb56 +#: ../../:1 d547da6f559b42d78fb3a73d97f0447e msgid "" "Whether the page is boosted by :attr:`~canaille.core.configuration." "CoreSettings.HTMX`." @@ -7002,15 +7154,15 @@ msgstr "" "Indique si les pages sont propulsées par :attr:`~canaille.core.configuration." "CoreSettings.HTMX`." -#: ../../:1 abaac915defc44a39bb760b0fa1ca058 +#: ../../:1 e96fbba85e69401794cd24472a510920 msgid "Whether to display the menu or not." msgstr "Indique si le menu doit être affiché ou non." -#: ../../:1 4a846a9c1bf04b76bce93d3f51c2c63a +#: ../../:1 915e2d15e72f448581b4232462138de8 msgid "Whether the app has been launched in debug mode." msgstr "Indique si Canaille a été lancé en mode débogage." -#: ../../:1 9a6481ec7a844690a56433119b0a980a +#: ../../:1 8e94e267a2e24fd086ff86ca5dd2d000 msgid "" "The error page. Displayed for all kinds of errors (not found, internal " "server error etc.)." @@ -7018,42 +7170,42 @@ msgstr "" "La page d'erreur. Cette page est affichée pour tous types d'erreurs (page " "non trouvée, erreur interne du serveur, etc.)." -#: ../../:1 3c9236009d544093ab37e413f94d45b3 +#: ../../:1 2306a7ac505241a7be52428c377fdf3b msgid "The code of the HTTP error (404, 500, etc.)" msgstr "Le code HTTP de l'erreur (404, 500, etc.)" -#: ../../:1 072ab6b535b245c0b5c16c84a51e0293 +#: ../../:1 4bacf1c221314a0caa4206f59268df11 msgid "The error code description." msgstr "La description du code d'erreur." -#: ../../:1 01363257f0fd47a9beba953b1580f6f2 +#: ../../:1 d55fefef1f0142afae9079c733167f2d msgid "An optional Font Awesome icon reference." msgstr "La référence optionnelle à un icône *Font Awesome*." -#: ../../:1 5eee8575ceec4ab6bb88624d75a23204 +#: ../../:1 0a534694c6044876aa823571cc6431d6 msgid "Macros for Flask flash message rendering" msgstr "Macros pour l'affichage des messages informatifs de Flask" -#: ../../:1 6df3858522a34bc181b21c3985dab099 +#: ../../:1 de9e78670ac34fd2a8bfeb84e5fd449a msgid "Macros for form and form field rendering." msgstr "Macros pour l'affichage des formulaires et de leurs champs." -#: ../../:1 45d3e7a61b2247f0b294c31fcdfd752b +#: ../../:1 010fef6420b54e9fa0030bff7cf89d66 msgid "Connects WTForms, Fomantic-UI and HTMX." msgstr "Connecte WTForms, Fomantic-UI et HTMX." -#: ../../:1 29a5444bd2c545e3a16b992c005e6626 +#: ../../:1 722e1cc69d054b6b90eccbbf14d34fe4 msgid "Macros for rendering table paginated with HTMX." msgstr "Macros pour l'affichage de tables paginées avec HTMX." #: ../references/templates.rst:22 ../references/templates.rst:40 -#: ../references/templates.rst:58 4e87bb3eb49f4aef877cc6d31a2141b8 -#: 10827c0bcbb14fc3a1b8054d412a9a7d a1745ac8a300467b9a58c9ae79837332 +#: ../references/templates.rst:58 c1141c3140ed49efb429fe7e0ddb07d5 +#: f66b89d5a0514f8fbc41b532ceb496b6 ddd9f189d96f48cb92e11a1819d26a8f msgid "Forms" msgstr "Formulaires" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 438cfba9a79f484b9721d0f91a75b81a +#: 391264c8ae9342b98ccd4af5cfbcf383 msgid "" "Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf." "form.FlaskForm`" @@ -7062,15 +7214,15 @@ msgstr "" "form.FlaskForm`" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 57e0185db0a449f485f8c651f063748f +#: bbbef09257294353ae83fcc921eca400 msgid "A form for table rendering of object collections." msgstr "Un formulaire pour le rendu en tableau de collection d'objets." -#: ../references/templates.rst:30 162e7b075ee14548a43f9cff48b480a2 +#: ../references/templates.rst:30 a6ad4ce568a44098a9e487453d689dd5 msgid "Core" msgstr "Cœur" -#: ../references/templates.rst:32 006bb138232740cdba8de572fe62fa24 +#: ../references/templates.rst:32 43fe331ad9c54541ac476bbe141b0a51 msgid "" "The core templates are displayed in the authentication and profile edition " "pages." @@ -7078,7 +7230,7 @@ msgstr "" "Ces patrons sont affichés dans les pages d'authentification et d'édition de " "profiles utilisateurs." -#: ../../:1 e38aa98840094488a64497fcdbaa0264 +#: ../../:1 d19a70214ef0419bb0ce07ea39578834 msgid "" "The 'About' page. This is an informational page, displaying the project " "links." @@ -7086,25 +7238,25 @@ msgstr "" "La page « À propos ». Cette page est informationnelle, elle affiche les " "liens du projet." -#: ../../:1 4c4ed92740f14deb87533cfa65ee80bf +#: ../../:1 51aba32d8e6d4e43ab37c3042b830e3a msgid "The current Canaille version." msgstr "La version de l'instance de Canaille." -#: ../../:1 d95f55f7f9ff4b5f9686be3dc9a7847f +#: ../../:1 d296db599ed840dda1ffa1af92ce9e15 msgid "The first login page." msgstr "La page de première connexion." -#: ../../:1 25602187d8a1450d93af69c3a5cb8676 +#: ../../:1 da37d9d1681e41b7beb4d8eb1f52ee17 msgid "This page is displayed to users who do not have set a password yet." msgstr "" "Cette page est affichée aux utilisateurs qui n'ont pas encore paramétré un " "mot de passe." -#: ../../:1 b40d8dbabfb942b9a7e43fd2be5260fb +#: ../../:1 41cf2f06296f4529825add3e93ecce87 msgid "Password forgotten page." msgstr "Page d'oubli du mot de passe." -#: ../../:1 168380710d5343d3ab70eaa096d1eaba +#: ../../:1 5544ff3d795643299723088da49f54d2 msgid "" "This page displays a form asking for the email address of users who cannot " "remember their password." @@ -7112,15 +7264,15 @@ msgstr "" "Cette page affiche un formulaire requérant l'adresse email d'un utilisateur " "ayant oublié son mot de passe." -#: ../../:1 c5a709077f1948dc85448baca9d505b2 +#: ../../:1 91f95a21d2cf4cd682dbf7622895f744 msgid "Group edition page." msgstr "Page d'édition des groupes." -#: ../../:1 1d741cc01a7b477ebe6484f595b1ae27 +#: ../../:1 eb70b7161ea14a59800362c10a234635 msgid "Displays the group edition or creation form." msgstr "Affiche le formulaire d'édition ou de création d'un groupe." -#: ../../:1 1bb598284f574fadb4afdaa186936d45 +#: ../../:1 8b37ea965e5e49358b31b3f72980cd14 msgid "" ":data:`None` in a creation context. In edition context this is the edited " "group." @@ -7128,36 +7280,36 @@ msgstr "" ":data:`None` dans un contexte de création. Dans un contexte d'édition, c'est " "le groupe édité." -#: ../../:1 cfb58971b75b4288af102ce52358148d +#: ../../:1 c34b493558f041089780f1ee6d8bc0cb msgid "The group edition/creation form." msgstr "Le formulaire de création et d'édition de groupes." -#: ../../:1 6a01b239a7364e059ac20e5c32156147 +#: ../../:1 e6f30f59e1984b9696c77b053200c933 msgid "The group list page." msgstr "La page de liste des groupes." -#: ../../:1 8f596f7adabe4f35be79f5f12beb5e50 +#: ../../:1 1123e6271a2547938e77a710f559788a msgid "A :class:`~canaille.core.models.Group` pagination form." msgstr "Un formulaire de pagination de :class:`~canaille.core.models.Group`." -#: ../../:1 b7309cf53df840c1ba19e7177f27c99f +#: ../../:1 bb18bceefbe644b39f75dd515e56f4f0 msgid "The invitation form page." msgstr "La page de formulaire d'invitation." -#: ../../:1 9fd33d67aac641e7a5c4fc9098332edc +#: ../../:1 84e88c0d7f8146e7b245b725fa1527a1 msgid "Displays the invitation form to users with the invitation permission." msgstr "" "Affiche le formulaire d'invitation aux utilisateurs en ayant la permission." -#: ../../:1 06e9aef4cee8405f96f76c99084ab2ef +#: ../../:1 e6ed714de65843e5bf138d95d9d61316 msgid "The invitation form." msgstr "Le formulaire d'invitation d'utilisateurs." -#: ../../:1 50937b6a974343eab8527a1977b6280a +#: ../../:1 dd60812049374cd18c7d3cfa6dfaec5c msgid "The invitation acceptation page." msgstr "La page d'acceptation d'une invitation." -#: ../../:1 5781a7c918ac43d0842b01eb38b74cd5 +#: ../../:1 8c9de3bd5fd64142b2f1b40644c04114 msgid "" "This page is displayed to users who have clicked on invitation links sent by " "mail (or by other media). It displays a basic account creation form." @@ -7166,28 +7318,28 @@ msgstr "" "d'invitation qui leur a été envoyé par mail (ou par un autre médium). Il " "affiche un formulaire basique de création de compte." -#: ../../:1 b447524d0fb1461b81bf503c13eb3788 +#: ../../:1 f3767e9183b5463b8dc502ac64917496 msgid "The account creation form." msgstr "Le formulaire de création de compte." -#: ../../:1 6f56b461666743eabb55c179df25b96b +#: ../../:1 f8d7f98b7554401081a21e260a78f706 msgid "The login page." msgstr "La page de connexion." -#: ../../:1 0160e1cfedb04735a642a373eba00f85 +#: ../../:1 735e538185894b8282b972ca8b9d3426 msgid "This page displays a form to get the user identifier." msgstr "" "Cette page affiche un formulaire qui récupère l'identifiant d'un utilisateur." -#: ../../:1 d2c554cbdaa941f089c6e1d178e2c40a +#: ../../:1 013c3dbd2c544946b7d26f65bf77a272 msgid "The login form." msgstr "Le formulaire de connexion." -#: ../../:1 5bf5c4af6d5949978459c9558e5959c0 +#: ../../:1 81b9105d642d4fadaec60fe2f3ae2b2b msgid "User account creation page." msgstr "Page de création de compte utilisateur." -#: ../../:1 052f0f9a73e54baa90e2beb51100c62f +#: ../../:1 ad5a3f08284e4d97bb932d57aa7d689e msgid "" "This template displays an account creation form. It is used in the " "registration page, and in the manual account creation page available for " @@ -7198,7 +7350,7 @@ msgstr "" "disponibles aux utilisateurs avec les permissions de gestion des " "utilisateurs." -#: ../../:1 32e07b796f2542448a5c4f651407e05e +#: ../../:1 c4c05e7a207c4a55a3be41d8f4b25339 msgid "" "The user creation form. Dynamically built according to the user :attr:" "`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." @@ -7212,21 +7364,21 @@ msgstr "" "disponibles sont ceux listés dans *READ* et *WRITE*. Ceux n'apparaissant que " "dans *READ* sont en lecture seule." -#: ../../:1 94e9b36ee7a04d4db509845398904973 +#: ../../:1 242018ca141f4b478d46d6837d5e2d70 msgid "The profile edition template." msgstr "Le patron d'édition de profil." -#: ../../:1 b86d69135b324d5b879980406f1b321b +#: ../../:1 f330ada37637476fb4bdb1c84a2ae6ea msgid "Displays a user profile edition form." msgstr "Affiche un formulaire d'édition de profil utilisateur." -#: ../../:1 b7dedbaafbf4421dad65efa4edb64bc7 -#: f4ab6a408b4846a28755a25c75d49e9d +#: ../../:1 4c2881082edb4939b2915eadb7ab9bef +#: 010d499b81f04fb199ed2ba1931ee496 msgid "The user that the form will edit." msgstr "L'utilisateur édité par le formulaire." -#: ../../:1 e971a69e070545b6a3efb2ef229a5e78 -#: 57372626a5504526a6602a9903be25f3 +#: ../../:1 8866fc8c9c8e4bf6a3a2f677fd272d3a +#: 4f5e9a4af8cd4f50a56d6ba6f8e5e853 msgid "" "The user profile edition form. Dynamically built according to the user :attr:" "`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." @@ -7240,7 +7392,7 @@ msgstr "" "disponibles sont ceux listés dans *READ* et *WRITE*. Ceux n'apparaissant que " "dans *READ* sont en lecture seule." -#: ../../:1 232f10ffd4634e3e8d30fd95968ff20e +#: ../../:1 c4f0fe40593a4ffaa798eca30b4aac78 msgid "" "An email edition form. Used when the :attr:`~canaille.app.features.Features." "has_email_confirmation` feature is enabled." @@ -7249,92 +7401,92 @@ msgstr "" "de :attr:`confirmation des adresses email ` est activée." -#: ../../:1 6f083b8c024042d2afc6e830605fcb29 +#: ../../:1 779dc49b2ca248c4b05af1ddacec02b6 msgid "The profile settings template." msgstr "Le patron de paramètres de profil utilisateur." -#: ../../:1 1e1b6ca57eee407ea373fabfa6b68203 +#: ../../:1 40f89421dbc748bca7235657984eb30f msgid "Displays the user settings edition form." msgstr "Affiche le formulaire d'édition des paramètres utilisateur." -#: ../../:1 79751bf3182a4e728ce7c771919c012e +#: ../../:1 ea6777c05f4a4e62b2e2385062c6dc8f msgid "Whether the editor is allowed to delete the account of the edited user." msgstr "" "Indique si l'éditeur a la permission de supprimé le compte de l'utilisateur " "édité." -#: ../../:1 f6fbc394bb0e4d23b2025ad9512ed7f8 +#: ../../:1 d1d48c1e0d9c43dca9c07b4617b609c1 msgid "The password reset template." msgstr "Le patron de réinitialisation de mot de passe." -#: ../../:1 ac11fe027baa47d08507ce462ccf6521 +#: ../../:1 61f93db68163494f9443a2954a20d7e9 msgid "Displays a password reset form." msgstr "Affiche un formulaire de réinitialisation de mot de passe." -#: ../../:1 022dc36a70434d0cbbc929e6389ed667 +#: ../../:1 5b94f171e4174999b79c79239f3a0e63 msgid "The password reset form." msgstr "Le formulaire de réinitialisation de mot de passe." -#: ../../:1 b78ecf9a56b94a57a3b3708a76eb115e +#: ../../:1 0179c0c333d049749ff14ac90ef2ed73 msgid "The user associated with the URL." msgstr "L'utilisateur associé à l'URL." -#: ../../:1 2ad2199bf9a543bc89f2b1eab1575ed3 +#: ../../:1 8cbae008b22349cab8e5647fbba5756e msgid "The secret link hash." msgstr "Le hachage du lien secret." -#: ../../:1 d33d88c5756d4573bff6aed0f8b22df9 +#: ../../:1 b0015de385324c26ab05aaae65cc53bc msgid "The multi-factor authentication initialization template." msgstr "Le patron d'initialisation de l'authentification multi-facteurs." -#: ../../:1 fd9b649f626b4b3e93dc09db80ce6ca4 +#: ../../:1 5f61ae62c1f54123872391a3b49eed9f msgid "Display a QR-code and the OTP secret." msgstr "Affiche un QR-code et le secret OTP." -#: ../../:1 0f8aaa24949f428d91f05bb8ea510a5e +#: ../../:1 1f370c74d1e44aeaa97929094036c1f1 msgid "The user initializing the OTP." msgstr "L'utilisateur initialisant l'OTP." -#: ../../:1 23c8614367454fe48500f84535d7345d +#: ../../:1 a372567c3b3b4ff2a99da5b529c6597a msgid "The OTP secret." msgstr "Le secret de l'OTP." -#: ../../:1 ce26bc1edce5450e867c020efdf0879a +#: ../../:1 16636bc9c47b44b79d22b301e102acb2 msgid "A QR-code image representing the OTP secret." msgstr "Une image QR-code représentant le secret OTP." -#: ../../:1 5a2fdfda2f1346bf8027c51f73374f77 +#: ../../:1 d164582bacae40b7b2cc7474d6f9fb3e msgid "The users list." msgstr "La liste des utilisateurs." -#: ../../:1 3578a4cf58144521ab2d0883f7aa772e +#: ../../:1 882b8d87c79845379937941cc0c97219 msgid "Displays a paginated list of :class:`~canaille.core.models.User`." msgstr "Affiche une liste paginée de :class:`~canaille.core.models.User`." -#: ../../:1 27156299d35549f6a45ff3b7ff201226 -#: c6be1b3ce3d840fb953550cdaf6e1a29 5cb81767c1704260bc729322c4d6d013 -#: 68d31f09582d4ec2ac3706a0f578de31 +#: ../../:1 708426b50822492ea31a6c0da17b2c48 +#: 125a29d6209f4166bf05a177110f8daf 70d1cef7e598494e868fdb5c6803edda +#: 7cfa3fb4f0f24c93aab1cf503a1a7223 msgid "The paginated list form." msgstr "Le formulaire de listes paginées." -#: ../../:1 8f7a6ad97f984f7b90953f39a07c9bb5 +#: ../../:1 d56775ed9ad242d4836769c7eedf12f2 msgid "The multi-factor authentication code verification template." msgstr "Le patron de vérification de codes d'authentification multi-facteurs." -#: ../../:1 1180b06a92c045c189a11016f3d869b3 +#: ../../:1 25a01008fa74404d9b4cd104c129c446 msgid "Displays a form that asks for the multi-factor authentication code." msgstr "" "Affiche un formulaire qui requière un code d'authentification multi-facteurs." -#: ../../:1 653c3e233b7e41b689dd61a1a575768f +#: ../../:1 55e4772a75ef4013bd616b2a95f6f318 msgid "The code verification form." msgstr "Le formulaire de vérification de code." -#: ../../:1 c070afb39eb34d9b92862ae453876355 +#: ../../:1 fe2303972b36464c930cefc5633d251e msgid "The username of the user attempting to log-in." msgstr "L'identifiant de l'utilisateur tentant de se connecter." -#: ../../:1 1995353d10d24e2e86c87864fc8b17cc +#: ../../:1 28f6d34d343e49d4820c4954328a6831 msgid "The authentication factor method." msgstr "La méthode d'authentification multi-facteur." @@ -7356,44 +7508,44 @@ msgstr "La méthode d'authentification multi-facteur." #: canaille.oidc.endpoints.forms.ClientAddForm:1 #: canaille.oidc.endpoints.forms.LogoutForm:1 #: canaille.oidc.endpoints.forms.TokenRevokationForm:1 -#: c6b8f8c4f50047c4ad6f8d99a6de0f22 66162ad74b1f491e9815987352e3f843 -#: 3d9992e3d5db4bd0928836aca626058a 3b72a3535cb84d30a1e44d8b91b96903 -#: b95ae3bb349946949cb639e4ef9dc552 47a533342bda4ba2a94c62a94fcb70ad -#: 738540f528d74bcba2787fc6e25a04e1 79b58787a6954501a9b171492c9ba562 -#: cec55d6a542843f7bf4133f5e7160a89 ba39e17ba4834e048f841ce0689e48ba -#: d5d0648bb1b543a4bcd2f863306b2bf8 9075862fb6944b5d93ec7c848595e7be -#: 99b9891b663544458c6c24aafbaa4355 43741eee6aed4f1885f590c4baf20f83 -#: 27c2b976b7ae469d9f82c19665688817 4d826f68173b4b47bac9d96a2abe03a7 +#: 7557d735c06048ccb03d3c4ffed21a1e f5f7ab5ae7484c86a89b57c79ae4d9d6 +#: fb8d2b222f4b4d57abf77d5f8faafcc7 d75199c9f7c0404e8853973b78f0215e +#: 9e95fee049e0435cbd4159781f1edd50 2cb77273b20c4212831821fbd01496a6 +#: 8c8d1dee54184a78812ac3d859aa7038 e460257810ed4a33a7cb85fe807494ad +#: ec61c50a963d4d8fb3aa676239db3c5c b9313e7cc1e546e0839ac8bd0fa1760e +#: 06303d0c8056424983870c202d19074f 5a75a23845964be5b79acd05e664377a +#: 01c7c817569e47c991d87c04991e1b93 994f96504a2d4c4eae1c01b3ef956af4 +#: 69946c83cd194c83be75b93e19961443 364071d215404e7197f25862ad916888 msgid "Bases: :py:class:`~canaille.app.forms.Form`" msgstr "Bases: :py:class:`~canaille.app.forms.Form`" #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.CreateGroupForm:1 -#: e4a35724e14d4581afe8c1d76256145b +#: bce83bbe98ba42a8aa85ba83608565c9 msgid "The group creation form." msgstr "Le formulaire de création de groupes." #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.EditGroupForm:1 -#: d3488ce4b62b455cbc5919a3592c5eaf +#: 6bc2bd87056e48ce9974042c0d00bfbc msgid "The group edition form." msgstr "Le formulaire d'édition de groupes." #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.InvitationForm:1 -#: a3b72e9abc8b44e9862481fe20209e3f +#: a909bb654e4c4565ac1ea27f28611b10 msgid "The user invitation form." msgstr "Le formulaire d'invitation d'utilisateurs." -#: ../references/templates.rst:50 16e60f31d5e549d8b0332ecdd2c8ec33 +#: ../references/templates.rst:50 1e8006623dfc46f3871671308d57d286 msgid "The OIDC templates are displayed in the OIDC consent pages." msgstr "Les patrons OIDC sont affichés lors des étapes de consentement OIDC." -#: ../../:1 6d3187567112498bafed8211d4e63aa9 +#: ../../:1 7b424e4d64804074874788b1d21f10c4 msgid "The list of authorizations." msgstr "La liste des autorisations." -#: ../../:1 ab9ee4b402464232a04de5af272ec4a2 +#: ../../:1 49a2e809fc454e9eb81444bfa5aea2fd msgid "" "Displays a paginated list of :class:`~canaille.oidc.basemodels." "AuthorizationCode`." @@ -7401,11 +7553,11 @@ msgstr "" "Affiche une liste paginées d':class:`~canaille.oidc.basemodels." "AuthorizationCode`." -#: ../../:1 af96456e16b5452da48beda8aa765d4d +#: ../../:1 59ce05b851854f99b0eb2a80c72487c0 msgid "Authorization details template." msgstr "Patron de détails d'un code d'autorisation." -#: ../../:1 60b6bca7f05c44c1863aeb04e3cc2f53 +#: ../../:1 b4c494183b864ab2a7c99778f68941c5 msgid "" "Displays details about an :class:`~canaille.oidc.basemodels." "AuthorizationCode`." @@ -7413,15 +7565,15 @@ msgstr "" "Affiche les détails d'un :class:`~canaille.oidc.basemodels." "AuthorizationCode`." -#: ../../:1 4ddc2e41ee114c249fcebd0f7a4e86f8 +#: ../../:1 5044fed4cfb1448fa17f25b4328f8bc6 msgid "The detailed authorization." msgstr "Le code d'autorisation détaillé." -#: ../../:1 0b979bab813e4ff39f47fc84cc204598 +#: ../../:1 f737bff0908640b78e347324f2c5aa42 msgid "Consent request template." msgstr "Le patron de requête de consentement." -#: ../../:1 567c68d08849430da9230de7c671e93a +#: ../../:1 b34520f53fde44cf94788a8c83ea3f20 msgid "" "This templates is displayed to users accessing a new application that " "requests to access to personal information. It lists the personal " @@ -7433,76 +7585,76 @@ msgstr "" "informations personnelles demandées, et propose à l'utilisateur d'accepter " "ou de refuser." -#: ../../:1 21f53e087f2148f39791bfc780edefb7 +#: ../../:1 9585274c74414512be370fea928f1c78 msgid "The user whose consent is asked." msgstr "L'utilisateur dont le consentement est requis." -#: ../../:1 48a0c4f1b88f4aaa9f10b158450a7bb1 +#: ../../:1 5697b00cb677424f8c60d2ac42ce8e35 msgid "The OIDC grant." msgstr "Le flux OIDC." -#: ../../:1 f6bbf416c64247dbb06044aa221ab515 +#: ../../:1 54d27cd742d645eea8d2b8d20258580d msgid "The client addition template." msgstr "Le patron d'ajout d'application cliente." -#: ../../:1 acbe06b62ce6465b915b5678d5426a35 +#: ../../:1 e38ade13b3f34dcd8f06043609e0cf87 msgid "" "Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`." msgstr "" "Affiche un formulaire de création de :class:`~canaille.oidc.basemodels." "Client`." -#: ../../:1 3f0bb36f5d614523876371b9466e7861 -#: fc6afaad7f0040ba8bc9e5018bf3ebdd +#: ../../:1 5a6e238a9dd04938b14706662f3ba7a6 +#: ab09685570cc4cfcb98550e38e2f08cd msgid "The client creation form." msgstr "Le formulaire de création de client." -#: ../../:1 0c6c8a94ac7f41969c583a4e50c7f8c6 +#: ../../:1 52c08a4adbab4524b7fe5b67e6fe2253 msgid "The client edition template." msgstr "Le formulaire d'édition de client." -#: ../../:1 fc89d67d55e84fa39dd02decf27c7ad0 +#: ../../:1 7b0dfa914fa641d984e21ef0fad3112e msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`." msgstr "" "Affiche un formulaire d'édition de :class:`~canaille.oidc.basemodels.Client`." -#: ../../:1 69829ae75e504c15a7042fa0d0ca9a45 +#: ../../:1 aef123f8ca564e2dac9acc501f3f26e2 msgid "The edited client." msgstr "Le client édité." -#: ../../:1 e4137e9e29764f91ae4314a2b1b55ea9 +#: ../../:1 b22265b671f74acdbc32dde7f2d90d9a msgid "The list of OIDC clients." msgstr "La liste des clients OIDC." -#: ../../:1 e417b00de6f14e44b9fe8a0212f90d24 +#: ../../:1 6c42ffb024e24aea9e96df3dd65675d1 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`." msgstr "" "Affiche une liste paginée de :class:`~canaille.oidc.basemodels.Client`." -#: ../../:1 1d341bd4be4c40f9b475cab7f3899eac +#: ../../:1 6fd5e350b6974fc3866228bbbbce8734 msgid "The OIDC logout template." msgstr "Le patron de déconnexion OIDC." -#: ../../:1 4968bf02e5154f7d84a89f9790696370 +#: ../../:1 d2d905e9b7c649ceacf130530b983fc2 msgid "" "Used during OIDC RP-initiated logout, when an user confirmation is needed." msgstr "" "Utilisé durant la *déconnexion initiée par les applications clients OIDC*, " "lorsque le consentement de l'utilisateur est nécessaire." -#: ../../:1 b8bf82eb3cac45a4853dcaf6f5ac1589 +#: ../../:1 c5ee6b63b12d450c839d00e524666077 msgid "The logout form." msgstr "Le formulaire de déconnexion." -#: ../../:1 b6c0b03d71bf4873ac7b8565605d158e +#: ../../:1 b9f9a3b61a7e4ec18d7758b91c7021a2 msgid "The client requesting the logout." msgstr "Le client requérant la déconnexion." -#: ../../:1 5bac6224d1084ae98930ff6ccdb785f4 +#: ../../:1 43ad2b30770e4df0af73574b37d2aa2a msgid "The preconsented applications list." msgstr "La liste d'application avec consentement implicite." -#: ../../:1 9c634a235c2c4991b5e7af9769279832 +#: ../../:1 c702a3f0221d487499921bc257cceca5 msgid "" "Display a list of trusted clients for which it is implied that users don't " "need to explicitly give their consent." @@ -7510,48 +7662,48 @@ msgstr "" "Affiche une liste d'applications clientes de confiance dont il est établi " "que les utilisateurs n'ont pas besoin de fournir un consentement explicite." -#: ../../:1 c246254d28664995a358d16c42110b49 +#: ../../:1 a6823066956c4fc2b276df9d83388b4d msgid "Description of the OIDC scopes." msgstr "Description des *scopes* OIDC." -#: ../../:1 ae25aa3ac5a345e5a23f6770e33b3ba5 +#: ../../:1 707d1dfb66c04f43aa1c3a325604c102 msgid "The scopes to hide." msgstr "Les *scopes* à masquer." -#: ../../:1 076793e823214f96b43e5066270c865c +#: ../../:1 cd04c23769714fc283d7545736cf76df msgid "The list of implicitly consented clients." msgstr "La liste des clients avec consentements implicite." -#: ../../:1 81333f39450142f3b492f8fe7bd17957 +#: ../../:1 82ad0acba372414b871d130c914abfb7 msgid "The number of consents." msgstr "Le nombre de consentements." -#: ../../:1 08c463165ae2487eadebc7a4ae928bd0 +#: ../../:1 daf494895b0c4ccca750e702b80f6169 msgid "The number of preconsented clients." msgstr "Le nombre de clients avec consentement implicite." -#: ../../:1 e6d5d68657fa4c5f964a902844cf443e +#: ../../:1 8863e96ede17429c8c8290507298f75e msgid "The list of tokens." msgstr "La liste des jetons." -#: ../../:1 a67dbec8f19c460eac41e22b702668ac +#: ../../:1 9ee471727d394a3ca69aa57a1d1ce2a0 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`." msgstr "Affiche une liste paginée de :class:`~canaille.oidc.basemodels.Token`." -#: ../../:1 7aa26abc05944ecd9afa89d71ca3f60a +#: ../../:1 6f8e482728da4cc4a7cc230406724ac9 msgid "The token edition template." msgstr "Le patron d'édition de jetons." -#: ../../:1 0051850e1f994570be480414cb1a8e50 +#: ../../:1 b032ea266259462482364e665f4e8d7d msgid "" "Displays the details of a token :class:`~canaille.oidc.basemodels.Token`." msgstr "Affiche les détails d'un :class:`~canaille.oidc.basemodels.Token`." -#: ../../:1 47975a2ecbce481f94ee843e3a77be73 +#: ../../:1 4f81edbeefee48508c2f8b6cb1e2e197 msgid "A token revokation form." msgstr "Un formulaire de révocation de jeton." -#: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b +#: ../tutorial/databases.rst:4 5c79df402123406db2947c3941513130 msgid "" "Canaille can read and save data in different databases. This page presents " "the different database backends and their specificities:" @@ -7560,7 +7712,7 @@ msgstr "" "présente les differents « backends » des bases de données et leurs " "spécificités :" -#: ../tutorial/databases.rst:10 4d8d9b1634cf47eca9c118b3af6173df +#: ../tutorial/databases.rst:10 fb804421e3114ddeba964dd491d4930f msgid "" "Canaille comes with a lightweight inmemory backend by default. It is used " "when no other backend has been configured." @@ -7568,7 +7720,7 @@ msgstr "" "Canaille est fourni avec un«  backend » léger en mémoire par défaut. Il est " "utilisé lorsqu'aucun autre backend n'a été configuré." -#: ../tutorial/databases.rst:13 5383f833c2634382a279cf9c2e9efff5 +#: ../tutorial/databases.rst:13 68262ac3da6b430584cf68823fef7dce msgid "" "This backend is only for test purpose and should not be used in production " "environments." @@ -7576,7 +7728,7 @@ msgstr "" "Ce backend est destiné uniquement à des fins de test et ne devrait pas être " "utilisé dans des environnements de production." -#: ../tutorial/databases.rst:18 5c04f9416e954990a51ad770b994755d +#: ../tutorial/databases.rst:18 87f0d130dcaa4f8190956d5d1a772945 msgid "" "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." @@ -7585,7 +7737,7 @@ msgstr "" "`SQLAlchemy `_, comme sqlite, postgresql ou " "mariadb." -#: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca +#: ../tutorial/databases.rst:24 b8d6bb4ac80d41b08f0544154cdf26f4 msgid "" "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " "instance:" @@ -7593,7 +7745,7 @@ msgstr "" "Il est utilisé quand le paramètre de configuration ``CANAILLE_SQL`` est " "défini. Par exemple :" -#: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96 +#: ../tutorial/databases.rst:32 0ace17711acd4f70a5fddee46acd1f29 msgid "" "You can find more details on the SQL configuration in the :class:`dedicated " "section `." @@ -7601,7 +7753,29 @@ msgstr "" "Vous pouvez trouver plus de détails sur la configuration SQL dans la :class:" "`dedicated section `." -#: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91 +#: ../tutorial/databases.rst:35 10baeaf0e5e64feba07dc33caa1c50ff +#, fuzzy +#| msgid "Configuration" +msgid "Migrations" +msgstr "Configuration" + +#: ../tutorial/databases.rst:37 eddaa2b6515740d895284b1d2b49955a +msgid "" +"By default, migrations are applied when you run the web application. You can " +"disable this behavior with the :attr:`~canaille.backends.sql.configuration." +"SQLSettings.AUTO_MIGRATE` setting. Migrations are not automatically applied " +"with the use of the CLI though." +msgstr "" + +#: ../tutorial/databases.rst:41 dc824fe2ce9047a98a90bc5ac22b09d9 +msgid "" +"Migrations are done with :doc:`flask-alembic `, that " +"provides a dedicated CLI to manually tune migrations. You can check the :doc:" +"`flask-alembic documentation ` and the ``canaille db`` " +"command line if you are in trouble." +msgstr "" + +#: ../tutorial/databases.rst:47 8a13bd9f5910475bb70637ce82181eb9 msgid "" "Canaille can use OpenLDAP as its main database. It is used when the " "``CANAILLE_LDAP`` configuration parameter is defined. For instance:" @@ -7610,7 +7784,7 @@ msgstr "" "utilisée quand le paramètre de configuration ``CANAILLE_LDAP`` est défini. " "Par exemple :" -#: ../tutorial/databases.rst:52 dbd09fe39b724102813c8d259ad336f6 +#: ../tutorial/databases.rst:65 476b7dba11aa40b09e46cbfc9fe108d8 msgid "" "If you want to use TOTP/HOTP authentication, you will need to add the " "``oathHOTPToken`` class to the user:" @@ -7618,7 +7792,7 @@ msgstr "" "Si vous voulez utiliser l'authentification TOTP/HOTP, vous devrez ajouter la " "classe ``oathHOTPToken`` à l'utilisateur :" -#: ../tutorial/databases.rst:58 fcbc8501c455465daa5142894408bb38 +#: ../tutorial/databases.rst:71 4e72e945162d43e3a2dddb9cc73c3dd7 msgid "" "You can find more details on the LDAP configuration in the :class:`dedicated " "section `." @@ -7626,7 +7800,7 @@ msgstr "" "Vous pouvez trouver plus de détails sur la configuration LDAP dans la :class:" "`dedicated section `." -#: ../tutorial/databases.rst:61 2c710def18bc46539b2962ee1bde2bf6 +#: ../tutorial/databases.rst:74 ae34abf5095c4902b974c7371e352c0f msgid "" "Currently, only the ``inetOrgPerson``, ``oathHOTPToken`` and " "``groupOfNames`` schemas have been tested. If you want to use different " @@ -7637,19 +7811,19 @@ msgstr "" "ou serveurs LDAP, des adaptations peuvent être nécessaires. Toute " "amélioration est bienvenue." -#: ../tutorial/databases.rst:66 b7014bf888504dcc865871e8275190f6 +#: ../tutorial/databases.rst:79 50561ef9299b4b178f99b9caa13aebb0 msgid "OpenLDAP overlays integration" msgstr "Intégration de surcouches (« overlays ») OpenLDAP" -#: ../tutorial/databases.rst:68 a67abbc0745e4c7e9353697969a4fbab +#: ../tutorial/databases.rst:81 3bfe9562b46643b19dee13f11b843626 msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "Canaille peut s'intégrer avec plusieurs « overlays » OpenLDAP :" -#: ../tutorial/databases.rst:71 b1eebe57d90648b3b24cb48cb49c5436 +#: ../tutorial/databases.rst:84 57a61bc80e964a168c3cfde20793fddf msgid "memberof / refint" msgstr "memberof / refint" -#: ../tutorial/databases.rst:73 6bb596696373483ab0a52f0e8169ab9e +#: ../tutorial/databases.rst:86 d0198ad99ed248f18c75fb6d20f84945 msgid "" "`memberof `_ and `refint `_ overlay is configured and the ``pwdEndTime`` attribute is " @@ -7700,19 +7874,19 @@ msgstr "" "l'expiration de leur compte, ils ont besoin du droit d'*écriture* sur " "l'attribut :attr:`~canaille.core.models.User.lock_date`." -#: ../tutorial/databases.rst:102 0194f8cb96554ed9a209784cd1a5a10e +#: ../tutorial/databases.rst:115 71e349aa00bd4fdead29c503c330fe1d msgid "ppolicy-config.ldif" msgstr "ppolicy-config.ldif" -#: ../tutorial/databases.rst:106 09776d76a5c54f6eb7d79e15a0dbed82 +#: ../tutorial/databases.rst:119 d2a999e876784f7fba94ee1c31e67954 msgid "ppolicy.ldif" msgstr "ppolicy.ldif" -#: ../tutorial/databases.rst:119 7bb7048ad0234c28a245626aa50d9c62 +#: ../tutorial/databases.rst:132 ffcc75b8614c45f5a45c20886313db2b msgid "otp" msgstr "otp" -#: ../tutorial/databases.rst:121 89b862fd590f4c49a156ed490b778051 +#: ../tutorial/databases.rst:134 d2aa3bda5d4c4f77807eecedf1a8f7ad msgid "" "If the `otp `_ " "overlay is configured, you will be able to add one-time password " @@ -7722,29 +7896,29 @@ msgstr "" "otp>`_ est configuré, vous pourrez ajouter l'authentification par mot de " "passe unique (OTP) dans Canaille." -#: ../tutorial/databases.rst:125 0194f8cb96554ed9a209784cd1a5a10e +#: ../tutorial/databases.rst:138 2a30eb140e2e4c97b8da3144326b6086 msgid "otp-config.ldif" msgstr "otp-config.ldif" -#: ../tutorial/databases.rst:129 4070700e524f481ba82662576453c6b3 +#: ../tutorial/databases.rst:142 64b6e0b40dfd4236930973e51e84ce52 msgid "You can adapt and load this configuration file with:" msgstr "Vous pouvez adapter et charger ce fichier de configuration avec :" -#: ../tutorial/databases.rst:136 14e54c22e9114f30b809b1605c494c6f +#: ../tutorial/databases.rst:149 e93012fc7b054366b3c4a354f8a9bf92 msgid "You will also need to add the ``oathHOTPToken`` class to the user:" msgstr "" "Vous aurez aussi besoin d'ajouter la classe ``oathHOTPToken`` à " "l'utilisateur :" -#: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb +#: ../tutorial/deployment.rst:2 513d899ef6dc4daa8d4d1c80b8fe09db msgid "Deployment" msgstr "Déploiement" -#: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110 +#: ../tutorial/deployment.rst:5 26a94e873f1d47cfbafd6540e505d700 msgid "Application service" msgstr "Serveur d’application" -#: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5 +#: ../tutorial/deployment.rst:7 93f18dfd47d74293b2d4395f986d2df8 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 " @@ -7754,23 +7928,23 @@ msgstr "" "serveur d'application WSGI. Voici des exemples de configuration de serveur " "WSGI que vous pouvez utiliser. Pensez à adapter les chemins." -#: ../tutorial/deployment.rst:11 cf41e4599bea477a8b6742ed38c09555 +#: ../tutorial/deployment.rst:11 e2f76491a3e1478ba424f5edd746c002 msgid "gunicorn" msgstr "gunicorn" -#: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff +#: ../tutorial/deployment.rst:15 82934b4c9e8c4ada9337c45654f68b77 msgid "Write a gunicorn configuration sample file." msgstr "Écrire un fichier d'exemple de configuration gunicorn." -#: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b +#: ../tutorial/deployment.rst:18 9dd0ac25fb264f0597b815ce11a6bfb3 msgid "uwsgi" msgstr "uwsgi" -#: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4 +#: ../tutorial/deployment.rst:42 962996fed1da4efca4a4a02feebd33ef msgid "Webserver" msgstr "Serveur web" -#: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4 +#: ../tutorial/deployment.rst:44 47141e5a9bde40d2965553cc49bfe1ee 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 " @@ -7780,19 +7954,19 @@ msgstr "" "serveur web pour qu'il soit accessible sur internet. Voici quelques exemples " "de configuration de serveur web que vous pouvez utiliser :" -#: ../tutorial/deployment.rst:48 40d9837c5cdd4c9faf94797e578e409d +#: ../tutorial/deployment.rst:48 820201befbcc48c6b3361229592dc180 msgid "Nginx" msgstr "Nginx" -#: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e +#: ../tutorial/deployment.rst:114 e2214f07b495472f96579f40c1db65fa msgid "Apache" msgstr "Apache" -#: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e +#: ../tutorial/deployment.rst:153 9cbe3d556cc7426393b232f3d92365fa msgid "Recurrent jobs" msgstr "Tâches récurrentes" -#: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334 +#: ../tutorial/deployment.rst:155 e8352b7061ff460a8c5e98ab8df6b855 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:" @@ -7801,11 +7975,11 @@ msgstr "" "croissance. Vous pouvez supprimer régulièrement les jetons expirés et les " "code d'autorisation avec :" -#: ../tutorial/deployment.rst:164 3a91c9769ca04ed289ef4e08d71c84e0 +#: ../tutorial/deployment.rst:164 41e645107b2f4f429d10e13fdd10dfe3 msgid "Webfinger" msgstr "Webfinger" -#: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad +#: ../tutorial/deployment.rst:166 f9c13500454c4b66a5e07e4daf8ce527 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 " @@ -7832,7 +8006,7 @@ msgstr "" "auth.mydomain.example``. Avec cette information, l'application tierce " "pourrait rediriger l'utilisateur vers la page d'authentification Canaille." -#: ../tutorial/deployment.rst:168 d4f07f118d4443bcbd44e55144cf4d1f +#: ../tutorial/deployment.rst:168 4ab7ac8eeb9148c9a28a3e22f40fb859 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 " @@ -7847,23 +8021,23 @@ msgstr "" "pas hébergé sur le domaine de plus haut niveau, une redirection est " "obligatoire sur le chemin ``/.well-known/webfinger``." -#: ../tutorial/deployment.rst:170 b305def4f6e74643b1c47e5491e46126 +#: ../tutorial/deployment.rst:170 88e080b374de43a383b7eba9c2965280 msgid "Here are configuration examples for Nginx or Apache:" msgstr "Voici des exemples de configuration pour Nginx ou Apache :" -#: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce +#: ../tutorial/deployment.rst:172 a88231c631134524a42f216c40811164 msgid "Nginx webfinger configuration for a top level domain" msgstr "Configuration webfinger Nginx pour le domaine de plus haut niveau" -#: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637 +#: ../tutorial/deployment.rst:181 808e93094e5b413e8e1a4963bdb36b14 msgid "Apache webfinger configuration for a top level domain" msgstr "Configuration webfinger Apache pour le domaine de plus haut niveau" -#: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a +#: ../tutorial/deployment.rst:191 c15c08cbe5f945c8898c5d23d90362d4 msgid "Create the first user" msgstr "Créer le premier utilisateur" -#: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f +#: ../tutorial/deployment.rst:193 4d268375e5ca48bfa9eb90fc4e3ffb44 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 ` " @@ -7873,15 +8047,15 @@ msgstr "" "d'ajouter des utilisateurs. Pour créer votre premier utilisateur, vous " "pouvez utiliser la ligne de commande :ref:`canaille create `." -#: ../tutorial/index.rst:2 40de96b13f0b46ba88769f9f0c91bece +#: ../tutorial/index.rst:2 b3789b9e712b4beeb246f85f9c49d48b msgid "Tutorial" msgstr "Tutoriel" -#: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544 +#: ../tutorial/install.rst:2 06039f8070f844df9fbda359223ebd9d msgid "Installation" msgstr "Installation" -#: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613 +#: ../tutorial/install.rst:6 4e3bbb4435314752bfbc859bd161dadd msgid "" "Canaille is under heavy development and may not fit a production environment " "yet." @@ -7889,7 +8063,7 @@ msgstr "" "Canaille est en cours de développement et peut ne pas être encore prêt pour " "un environnement de production." -#: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499 +#: ../tutorial/install.rst:8 8969df93b0b149f181069407f24c4d0f msgid "" "The installation of canaille consist in several steps, some of which you can " "do manually or with command line tool:" @@ -7897,11 +8071,11 @@ msgstr "" "L'installation de Canaille consiste en plusieurs étapes, certaines sont " "faisables manuellement ou l'outil en ligne de commande :" -#: ../tutorial/install.rst:11 de05573555224e75869a68ac41471c97 +#: ../tutorial/install.rst:11 c23cda31d355445f9fee914f862a52a0 msgid "Get the code" msgstr "Récupérer le code source" -#: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5 +#: ../tutorial/install.rst:13 3d08ef96a8624845a45354bb4d39476d 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 " @@ -7912,74 +8086,74 @@ msgstr "" "Choisissons un endroit pour l'environnement de Canaille, comme ``/opt/" "canaille/env``." -#: ../tutorial/install.rst:24 5e8dbf51cc8e401d8e7f2738c4c1e500 +#: ../tutorial/install.rst:24 7a1b423ba1a84e3b89da2a77f850bae3 msgid "Extras" msgstr "Extras" -#: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6 +#: ../tutorial/install.rst:26 84c6d479fc1e44129da6841676091c19 msgid "Canaille provides different package options:" msgstr "Canaille fournit différentes options de paquet :" -#: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb +#: ../tutorial/install.rst:28 7ec187fcd85a4d31b8db333db6173f83 msgid "`front` provides all the things needed to produce the user interface;" msgstr "" "`front` fournit tous les éléments nécessaires pour produire l'interface " "utilisateur ;" -#: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd +#: ../tutorial/install.rst:29 fa166a769fee47e98b04ca3bc5baed57 msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" "`oidc` fournit les dépendances pour exécuter une authentification OAuth2/" "OIDC ;" -#: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131 +#: ../tutorial/install.rst:30 ccedd8c1040a46feba1f50af045d6387 msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "`ldap` fournit les dépendances pour activer le backend LDAP ;" -#: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062 +#: ../tutorial/install.rst:31 6c5366eddd4a464ab031a8a0c427de48 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "`sqlite` fournit les dépendances pour activer le backend SQLite ;" -#: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f +#: ../tutorial/install.rst:32 a92c054fbc9d4dfdafe81c1c3afdefe8 msgid "" "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" "`postgresql` fournit les dépendances pour activer le backend PostgreSQL :;" -#: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122 +#: ../tutorial/install.rst:33 ffa21589e73f4ff89df7807eba77d409 msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "`mysql` fournit les dépendances pour activer le backend MySQL ;" -#: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2 +#: ../tutorial/install.rst:34 7f6b4a5423bd4119a59432e27daa023f msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" "`sentry` fournit l'intégration Sentry pour visualiser les exceptions " "survenues dans Canaille ;" -#: ../tutorial/install.rst:35 11d315c8ffbb415cab5068a2fb287590 +#: ../tutorial/install.rst:35 b817b267e4d54154adb9ad22bdfa5d06 msgid "" "`otp` provides the dependencies to enable one-time password authentication;" msgstr "" "`otp` fournit les dépendances pour activer l'authentification à mot de passe " "unique (OTP) ;" -#: ../tutorial/install.rst:36 c60670612f384704ad46fba12f41dcf9 +#: ../tutorial/install.rst:36 6c6fd587ec504c20811d525a2c0a0bc2 msgid "`sms` provides the dependencies to enable sms sending;" msgstr "`sms` fournit les dépendances pour activer l'envoi de SMS ;" -#: ../tutorial/install.rst:37 dfd39313c050407193deac1f01f23e54 +#: ../tutorial/install.rst:37 ee7eda989a3c4aaeb902d0f66f3fea3d msgid "`all` provides all the extras above." msgstr "`all` fournit tous les éléments supplémentaires ci-dessus." -#: ../tutorial/install.rst:39 3d0f7f47cc1a469e9762578aed91f002 +#: ../tutorial/install.rst:39 29ca33d87d8f46618e3ea5f89c4a63f1 msgid "They can be installed with:" msgstr "Ils peuvent être installés avec :" -#: ../tutorial/install.rst:46 b7732a260ca84ba3a4130bd6cb0d1619 +#: ../tutorial/install.rst:46 379636cc71c64f659bf2ebd1a5116854 msgid "Configure" msgstr "Configurer" -#: ../tutorial/install.rst:48 86df5b7acf954ddfbb2982dbe0a51da1 +#: ../tutorial/install.rst:48 6a6c9b6a1d9d42e3899e0b689311389a msgid "" "Choose a path where to store your configuration file. You can pass any " "configuration path with the ``CONFIG`` environment variable." @@ -7988,7 +8162,7 @@ msgstr "" "passer n'importe quel chemin de configuration avec la variable " "d'environnement ``CONFING``." -#: ../tutorial/install.rst:56 042753d9c5704f21b0da35d38a17a620 +#: ../tutorial/install.rst:56 f710879df41b4abebcfdc30a67527d36 msgid "" "You should then edit your configuration file to adapt the values to your " "needs. Look at the configuration details in the :doc:`configuration <../" @@ -7998,11 +8172,11 @@ msgstr "" "valeurs à vos besoins. Regardez les détails de configuration dans la page :" "doc:`configuration <../references/configuration>`." -#: ../tutorial/install.rst:59 a87138181fe64cd9891206619cad6d2d +#: ../tutorial/install.rst:59 c973e8ccd9364877bf39706b06656503 msgid "Install" msgstr "Installer" -#: ../tutorial/install.rst:61 2a7cde9a8ef54f6fb6b527734b5e471d +#: ../tutorial/install.rst:61 64701944f4474d878ae759bd7e578bd9 msgid "" "The :ref:`install command ` will apply most of the things " "needed to get Canaille working. Depending on the configured :doc:`database " @@ -8014,11 +8188,11 @@ msgstr "" "données ` configurée, il créera les tables SQL ou installera les " "schémas LDAP par exemple." -#: ../tutorial/install.rst:70 faefbbda355349e19671492f478d3153 +#: ../tutorial/install.rst:70 f00606bdf1284a4f8014282a323a6784 msgid "Check" msgstr "Vérifier" -#: ../tutorial/install.rst:72 ab77edb446f44686bf26ef04fbf3dc7d +#: ../tutorial/install.rst:72 ccda38335f984f02a53d28b9a045e4cd msgid "" "After a manual installation, you can check your configuration file using " "the :ref:`check command `:" @@ -8026,11 +8200,11 @@ msgstr "" "Après une installation manuelle, vous pouvez vérifier votre fichier de " "configuration en utilisant la :ref:`commande check ` :" -#: ../tutorial/provisioning.rst:2 96b0ed3d70cf436a80f82cf3cd89bf37 +#: ../tutorial/provisioning.rst:2 9d7ccfd105804dfca14df19021f0bb00 msgid "Provisioning" msgstr "Provisionnement" -#: ../tutorial/provisioning.rst:4 a4047f8d0f904f6799d549e2f65181b2 +#: ../tutorial/provisioning.rst:4 484d232863c540ef8a27fd528e3a60f1 msgid "" "Canaille partially implement the :rfc:`SCIM <7642>` provisioning protocol at " "the ``/scim/v2`` endpoint." @@ -8038,7 +8212,7 @@ msgstr "" "Canaille implémente partiellement le protocole de provisionnement :rfc:`SCIM " "<7642>` au terminal ``/scim/v2``." -#: ../tutorial/provisioning.rst:6 969c0c2d7d2a47de8fb1c7441ec62e2d +#: ../tutorial/provisioning.rst:6 acd9d2bffc9042008283550b5dc7271a msgid "" "At the moment, only the server part is implemented. It allows client " "applications to manage user profiles directly in Canaille." @@ -8047,7 +8221,7 @@ msgstr "" "applications clientes de gérer les profils utilisateur directement dans " "Canaille." -#: ../tutorial/provisioning.rst:11 37c0e4ee9eb54f9f94754fec060e0ac5 +#: ../tutorial/provisioning.rst:11 f96f385b8bdd453fa8dc5dfad64571d4 msgid "" "Some SCIM :ref:`features and endpoints ` are not " "implemented. In addition to these, Canaille will implement in the future:" @@ -8056,7 +8230,7 @@ msgstr "" "ne sont pas implémentées. En plus de celles-ci, Canaille implémentera dans " "le future :" -#: ../tutorial/provisioning.rst:14 a5d6aea95b444cbb9d10731986ae66ac +#: ../tutorial/provisioning.rst:14 2d6934f2d1de4397a5cfc88af92433ce msgid "" "Access control for clients on the SCIM API endpoint, to finely manage " "permissions depending on clients." @@ -8064,7 +8238,7 @@ msgstr "" "Contrôle d'accès pour les clients sur le terminal API de SCIM, pour gérer " "finement les droits en fonction des clients." -#: ../tutorial/provisioning.rst:15 98d88ce07bc640bcafedee10c9bbc98f +#: ../tutorial/provisioning.rst:15 350b84195c284bdd9ae93eed7e2d47ff msgid "" "Client-side implementation, to broadcast user and groups modifications among " "all the clients." @@ -8072,7 +8246,7 @@ msgstr "" "Implémentation côté client, pour envoyer les modification d'utilisateur et " "de groupes à tous les clients." -#: ../tutorial/provisioning.rst:20 706556a4f4de43658b7ee3583115216a +#: ../tutorial/provisioning.rst:20 12f015c76be64351862c7d36a87f4ce3 msgid "" "To allow clients to access the SCIM API, the client must have the " "``client_credentials`` grant type configured. This allows clients to ask an " @@ -8085,7 +8259,7 @@ msgstr "" "ce jeton pour exécuter des requêtes. Actuellement, les jetons utilisateurs " "ne sont pas disponibles." -#: ../tutorial/provisioning.rst:24 5abc69c6a6ff4cd48e3f2b01cdaa1a52 +#: ../tutorial/provisioning.rst:24 d039cadee3494ada9106f9226b224ab5 msgid "" "Then the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter must be enabled." @@ -8093,11 +8267,11 @@ msgstr "" "Alors le paramètre de configuration :attr:`CANAILLE_SCIM.ENABLE_SERVER " "` doit être activé." -#: ../tutorial/provisioning.rst:33 08c5f12f847f4376993010f11b7055e6 +#: ../tutorial/provisioning.rst:33 f3a7fcf65cc545c4a7ad8ac2009b465e msgid "Implementation details" msgstr "Détails d'implémentation" -#: ../tutorial/provisioning.rst:35 163f28f6d3cf4d94bc60bddec6b1b25e +#: ../tutorial/provisioning.rst:35 2d162e0038714a3b9aea13a19a098bee msgid "" "Due to technical reasons, the Canaille *User* and *Group* resources " "implementation subtly differs from the :rfc:`RFC7643 <7643>` definitions:" @@ -8105,25 +8279,25 @@ msgstr "" "Pour des raisons techniques, les implémentations des resources *User* et " "*Group* diffèrent subtilement entre Canaille et la :rfc:`RFC7643 <7643>` :" -#: ../tutorial/provisioning.rst:37 5e235bded8ba46ae94fe89b82341e3a9 +#: ../tutorial/provisioning.rst:37 c8d0951c350640639249f99950282b08 msgid "``User.userName`` is immutable (while it is read-write in RFC7643)." msgstr "" "``User.userName`` est immuable (tandis qu'il est en lecture-écriture dans la " "RFC7643)." -#: ../tutorial/provisioning.rst:38 5c0be56ebf754660b7702622cd085221 +#: ../tutorial/provisioning.rst:38 76d54c1a256240818c4a5f84d43bf76f msgid "``User.name.familyName`` is required (while it is optional in RFC7643)." msgstr "" "``User.name.familyName`` est requis (tandis qu'il est optionnel dans la " "RFC7643)." -#: ../tutorial/provisioning.rst:39 35cfdbc7fd954036805a8b64bc46ae90 +#: ../tutorial/provisioning.rst:39 ac544d900c0249048f073753be25a317 msgid "``Group.displayName`` is required (while it is optional in RFC7643)." msgstr "" "``Group.displayName`` est requis (tandis qu'il est optionnel dans la " "RFC7643)." -#: ../tutorial/provisioning.rst:40 7490ca87a3fe4b5f9fdc80991e74a130 +#: ../tutorial/provisioning.rst:40 c76213daf50f40c2852de2fdec93ba48 msgid "" "``Group.members`` is required (while it is optional in RFC7643), i.e. groups " "cannot be empty." @@ -8131,11 +8305,11 @@ msgstr "" "``Group.members`` est requis (tandis qu'il est optionnel dans la RFC7643), " "c'est à dire que les groupes ne peuvent être vides." -#: ../tutorial/provisioning.rst:43 432c05f5057e4d6ab93225079865e789 +#: ../tutorial/provisioning.rst:43 58496f192f4c4b94b70c8a760525369c msgid "Debugging" msgstr "Débogage" -#: ../tutorial/provisioning.rst:45 ecce1ab63ddd4b1a8dd3c7c65e9a990c +#: ../tutorial/provisioning.rst:45 faa6b4b7a057496abc9d96efcca72e82 msgid "" "To check what data are exposed through the Canaille SCIM API, you need a " "*client token* and a SCIM client application. To generate a client token, " @@ -8150,15 +8324,15 @@ msgstr "" "recommandons l'utilisation de :doc:`scim2-cli:index` pour interagir avec " "l'API :" -#: ../tutorial/provisioning.rst:49 0494884602794d818953870e734c721b +#: ../tutorial/provisioning.rst:49 25e370c855454c10a7f705a96e7c3049 msgid "scim2-cli usage example" msgstr "Exemple d'utilisation de scim2-cli" -#: ../tutorial/theming.rst:2 1e8d2a5169ed4313896d1a9c33dee1ab +#: ../tutorial/theming.rst:2 25ff583d708742d6b564212c42ac76a0 msgid "Theming" msgstr "Habillage" -#: ../tutorial/theming.rst:4 8b9d02343d7b48a08704a60b2394672a +#: ../tutorial/theming.rst:4 19f015eb34ff4185b0fb33829ca916be msgid "" "Canaille comes with a default theme based on `Fomantic UI `__ but any part of the UI can be slightly modified or even " @@ -8169,11 +8343,11 @@ msgstr "" "utilisateur peut être légèrement modifiée, ou bien complètement ré-écrite si " "besoin." -#: ../tutorial/theming.rst:7 aaa944c2e0b64fc7a9d04703be543cc8 +#: ../tutorial/theming.rst:7 0fdaf7ef1f1d41e88243804d40d16984 msgid "Custom templates" msgstr "Patrons personnalisés" -#: ../tutorial/theming.rst:9 d431b58edd7c4ab5960f4889ad4bf8b1 +#: ../tutorial/theming.rst:9 7e432962674842a6a4ec1321ef3d20f9 msgid "" "To use a custom theme, set the :attr:`~canaille.core.configuration." "CoreSettings.THEME` to a path to a directory where you will host your custom " @@ -8183,7 +8357,7 @@ msgstr "" "attr:`~canaille.core.configuration.CoreSettings.THEME` vers un répertoire " "dans lequel sont enregistrés vos patrons." -#: ../tutorial/theming.rst:11 f70b37ff511248529ee7801adeae3f40 +#: ../tutorial/theming.rst:11 f5e08d34905747839e25e36c22ee7811 msgid "" "Then in this directory, create new files for templates you want to override. " "The exhaustive list of templates is available in the :doc:`reference <../" @@ -8199,15 +8373,15 @@ msgstr "" "À propos »*, vous devez le faire dans un fichier ``core/about.html``. Vous " "pouvez hériter du patron original en utilisant la directive Jinja ``extend``." -#: ../tutorial/theming.rst:15 3abcbfdad0cf41628a3bb4e27789bdf0 +#: ../tutorial/theming.rst:15 cfa8a0a2dfe1408d9dd4b339f27a3016 msgid "core/about.html" msgstr "core/about.html" -#: ../tutorial/theming.rst:26 19d7d3280a9b4cc8a868428d2ef5b12f +#: ../tutorial/theming.rst:26 08dd0f6259c34b5d92c476bda8bd40e2 msgid "Custom style sheets" msgstr "Feuilles de style personnalisées" -#: ../tutorial/theming.rst:28 13f029143d7a41ee97bff9bab5c6696d +#: ../tutorial/theming.rst:28 ee6d9940bc7d453f8b754abbf51cfcba msgid "" "If you simply want to put your custom style sheets in the default theme, you " "can just push it in the ``base.html`` template. Put your file in a " @@ -8219,11 +8393,11 @@ msgstr "" "Placez votre fichier dans un sous-répertoire ``static`` de votre thème, par " "exemple ``static/css/custom.css`` et référencez-le avec ``theme_static``." -#: ../tutorial/theming.rst:31 5494d679f6294826a4fe0ec3307f1d90 +#: ../tutorial/theming.rst:31 bcea65c8d4ef4139a353420b7e1d5cdd msgid "base.html" msgstr "base.html" -#: ../tutorial/theming.rst:43 eb8604a736ba49c7a5268aff30c7045f +#: ../tutorial/theming.rst:43 b8572e3c71c54d65ad8ea6ce986d30ea msgid "" "To write your custom theme and check how it is rendered, you can put the " "path to your theme in a ``.env`` file and run the Canaille demo instance, as " @@ -8234,19 +8408,19 @@ msgstr "" "lancer l'instance de démonstration de Canaille, comme décrit dans le :ref:" "`guide de contribution `" -#: ../tutorial/theming.rst:50 f2e3066341864ffdb46f79b737fd491c +#: ../tutorial/theming.rst:50 94442631b4e4430aabc6abe4b0f565db msgid "Run the demo instance" msgstr "Lancement de l’instance de démonstration" -#: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 +#: ../tutorial/troubleshooting.rst:2 ae54b220570140fc9af7133272cd26f4 msgid "Troubleshooting" msgstr "Dépannage" -#: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934 +#: ../tutorial/troubleshooting.rst:5 3f156ee26a7646f69513b66ef675d793 msgid "The web interface throws useless error messages" msgstr "L'interface web affiche des messages erreurs inutiles" -#: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de +#: ../tutorial/troubleshooting.rst:7 0fb6c271073a4abdb010d7f95eeac81e msgid "" "Unless the current user has admin :class:`permissions `, or the installation is in :attr:`~canaille.app." @@ -8263,11 +8437,11 @@ msgstr "" "d'erreur détaillées, vous pouvez **temporairement** activer le paramètre de " "configuration :attr:`~canaille.app.configuration.RootSettings.DEBUG`." -#: ../tutorial/troubleshooting.rst:12 358b28e47d4a4b48ba2bde7ddd4bc5f3 +#: ../tutorial/troubleshooting.rst:12 58570442c05e4cd19751820083151ece msgid "How to manually install LDAP schemas?" msgstr "Comment installer manuellement les schémas LDAP ?" -#: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c +#: ../tutorial/troubleshooting.rst:16 067c19e9f37c46ea91b8bed914bcd276 msgid "" "Schema installation can be automatically done using the :ref:`install " "command `." @@ -8275,11 +8449,11 @@ msgstr "" "L'installation de schema peut être automatiquement réalisé en utilisant la :" "ref:`commande d'installation `." -#: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154 +#: ../tutorial/troubleshooting.rst:18 b590574910044ce299bfbdb318ebea6a msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "Avec OpenLDAP 2.4, deux méthodes de configuration sont disponibles :" -#: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6 +#: ../tutorial/troubleshooting.rst:20 6ad84183e4c64116b49932cef2584fd0 msgid "" "The `deprecated `_ " "one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" @@ -8288,7 +8462,7 @@ msgstr "" "html>`_ , basée sur un fichier de configuration (généralement ``/etc/ldap/" "slapd.conf``) ;" -#: ../tutorial/troubleshooting.rst:21 2681e5ed98de4633ab3e958980570c61 +#: ../tutorial/troubleshooting.rst:21 19abee92e8b14d4ba90f9506412d8118 msgid "" "The new one, based on a configuration directory (generally ``/etc/ldap/slapd." "d``)." @@ -8296,7 +8470,7 @@ msgstr "" "La nouvelle méthode, basée sur un répertoire de configuration " "(généralement``/etc/ldap/slapd.d``)." -#: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09 +#: ../tutorial/troubleshooting.rst:23 a8ca0bf4ec6e4d71806d2071d226d2cd msgid "" "Depending on the configuration method you use with your OpenLDAP " "installation, you need to chose how to add the canaille schemas:" @@ -8304,24 +8478,24 @@ msgstr "" "Selon la méthode de configuration utilisée avec votre installation OpenLDAP, " "vous aurez besoin de choisir comment ajouter les schémas Canaille :" -#: ../tutorial/troubleshooting.rst:26 7fa64ce5f9834bfc8a84a6b147776135 +#: ../tutorial/troubleshooting.rst:26 e6d653692ee34c47bb5efe760a381699 msgid "Old fashion: Copy the schemas in your filesystem" msgstr "À l'ancienne : copier les schémas sur votre système de fichier" -#: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f +#: ../tutorial/troubleshooting.rst:35 d64d1890fd104a4ea9a8d9941189af0b msgid "New fashion: Use slapadd to add the schemas" msgstr "Méthode moderne : utiliser slapadd pour ajouter les schémas" -#: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b +#: ../tutorial/troubleshooting.rst:37 692e81784a5e4fa48dc2bcc2e1cf4a1e msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" "Soyez attentif à arrêter votre serveur LDAP avant d'exécuter ``slapadd``" -#: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772 +#: ../tutorial/troubleshooting.rst:46 d404812e38644b3090d9823e682c9254 msgid "How to manually generate the OIDC keypair?" msgstr "Comment générer manuellement la paire de clef OIDC ?" -#: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88 +#: ../tutorial/troubleshooting.rst:50 62e08f82a4804de8b5dd459b903a8cd3 msgid "" "The keypair generation can be automatically done using the :ref:`install " "command `." @@ -8329,7 +8503,7 @@ msgstr "" "La génération de la paire de clef peut être automatiquement faite en " "utilisant la :ref:`commande d'installation `." -#: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984 +#: ../tutorial/troubleshooting.rst:52 06dd3710174a40e4a0ef3b2c54a2e9b5 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 " @@ -8339,11 +8513,11 @@ msgstr "" "pouvez personnaliser ces commandes tant qu'elles correspondent la section " "``JWT``de votre fichier de configuration." -#: ../usecases.rst:4 dde73820d8ff46128f0ae5a245d4f212 +#: ../usecases.rst:4 168d233560c64d829ee09d581aa7d361 msgid "Use cases" msgstr "Cas d'usage" -#: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9 +#: ../usecases.rst:6 a65d311c88094169acb330c3d6e3c7f7 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." @@ -8353,11 +8527,11 @@ msgstr "" "quelques cas d'usage dans lesquels vous pourriez vous reconnaître où " "Canaille pourrait répondre à votre besoin." -#: ../usecases.rst:10 0c06bc8fc0754db6bdfbae05fe718b2e +#: ../usecases.rst:10 179edacb13c54333aace4b68c4708253 msgid "OpenID Connect provider on top of a LDAP directory" msgstr "Fournisseur OpenID Connect au-dessus d'un annuaire LDAP" -#: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6 +#: ../usecases.rst:12 302b4ac43f3e467e85d2bd4b19297569 msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to add a :ref:`OpenID Connect ` :abbr:`SSO " @@ -8370,11 +8544,11 @@ msgstr "" "utiliser toutes vos applications tout en ne se connectant qu'une seule fois, " "sans aucune migration de données." -#: ../usecases.rst:15 35bb9bbb50064dc7a5383c9d5371adfd +#: ../usecases.rst:15 e0024a833d08474ba72b828f6eb83a8e msgid "Profile edition of LDAP users" msgstr "Modification de profil d'utilisateurs LDAP" -#: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3 +#: ../usecases.rst:17 ea3058635a35476eb122ab777c349dc3 msgid "" "Your organization has a :ref:`LDAP directory ` and you " "want to provide a way to your users to :ref:`edit their personal information " @@ -8386,11 +8560,11 @@ msgstr "" "informations personnelles ` par eux-mêmes, sans " "nécessiter l'intervention d'un administrateur." -#: ../usecases.rst:20 22ec6d0c58ed413b80cd6aca23f637b6 +#: ../usecases.rst:20 e81a578b174c43b194932cdd88c38500 msgid "Password recovery with a LDAP directory" msgstr "Récupération de mot de passe avec un annuaire LDAP" -#: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd +#: ../usecases.rst:22 7f58bba7651f4df6870fc163b486932f msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to provide a way to your users to :ref:`recover their password " @@ -8402,11 +8576,11 @@ msgstr "" "mot de passe ` quand ils ne s'en rappellent plus, " "sans intervention d'un administrateur." -#: ../usecases.rst:25 f44f325b29594fc7b31521d259e27d5f +#: ../usecases.rst:25 2b626e10eb2b480b816b9151a8f160fd msgid "A lightweight IAM for unit testing" msgstr "un GIA (IAM) léger pour les tests unitaires" -#: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b +#: ../usecases.rst:27 cff10ba64f6e4184bcbfccae206f6d9c msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You don't want to mock " @@ -8421,11 +8595,11 @@ msgstr "" "véritables requêtes OAuth2/OIDC `, et tester vos " "applications avec les différents réglages du fournisseur d'identité." -#: ../usecases.rst:30 5b9b8e07b9154150a105088cc630ce6a +#: ../usecases.rst:30 130dbc72dcb54dbf830a1c0e199e9e3b msgid "A lightweight IAM for developing" msgstr "Un GIA (IAM) léger pour le développement" -#: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51 +#: ../usecases.rst:32 0ff43cbb31f548089d237c4fbcc8e312 msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM " @@ -8438,11 +8612,11 @@ msgstr "" "` localement, mais votre vieil ordinateur ne peut pas " "lancer un Keycloak complet dans un conteneur Docker." -#: ../usecases.rst:35 e594e15fba204d65a3f483c36e7c0aab +#: ../usecases.rst:35 adc956f5cf0f43bc988261b4f0ba541a msgid "A lightweight IAM for CIs" msgstr "Un GIA (IAM) léger pour de l'Intégration Continue" -#: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24 +#: ../usecases.rst:37 68048b0e31044e6eb1b844a8541f900d msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a IAM server " @@ -8455,13 +8629,13 @@ msgstr "" "remplir de données personnalisées et intégrer dans votre :ref:`environnement " "d'intégration continue `." -#: ../usecases.rst:40 8a37de08f6594334a3ba6ed2f9a3b71e +#: ../usecases.rst:40 ef4f06a88d3f4f3d99df361d7d25da08 msgid "A CLI to quickly edit LDAP directory users" msgstr "" "Une interface en ligne de commande pour modifier rapidement les utilisateurs " "d'un annuaire LDAP" -#: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2 +#: ../usecases.rst:42 aec48cc98e9043ac962854780f5e4aa5 msgid "" "Your organization has an historic :ref:`LDAP directory `. " "You are tired to deal with *ldif* syntax to manage your users and group and " diff --git a/doc/locales/ta/LC_MESSAGES/doc.po b/doc/locales/ta/LC_MESSAGES/doc.po index a3e4d3e1..9b390a74 100644 --- a/doc/locales/ta/LC_MESSAGES/doc.po +++ b/doc/locales/ta/LC_MESSAGES/doc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: canaille 0.0.56\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-08 17:04+0100\n" +"POT-Creation-Date: 2025-01-10 12:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,88 +16,117 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../development/changelog.rst:2 3fb33c37ddc0459280f3c58be943008e +#: ../development/changelog.rst:2 1f34b2340e8b40bebbbb26b15e68b03b msgid "Release notes" msgstr "" -#: ../development/changelog.rst:4 67e645fac3b646bba12959afa71710cc +#: ../development/changelog.rst:4 974a9ddc92084ba885466bd64dd8473e msgid "All notable changes to this project will be documented in there." msgstr "" -#: ../development/changelog.rst:6 6c5d0b8435cf4001afa1fe74104daf7a +#: ../development/changelog.rst:6 412266a64b564ebd8cf722ee2e952ea5 msgid "" "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." msgstr "" -#: ../../CHANGES.rst:2 c415689d242946298da972c97d5bb0c4 +#: ../../CHANGES.rst:2 8e30b80f3f94498da6f59c6f63a94ec5 msgid "[0.0.58] - Unreleased" msgstr "" -#: ../../CHANGES.rst:5 ../../CHANGES.rst:22 ../../CHANGES.rst:56 -#: ../../CHANGES.rst:84 ../../CHANGES.rst:103 ../../CHANGES.rst:110 -#: ../../CHANGES.rst:129 ../../CHANGES.rst:189 ../../CHANGES.rst:215 -#: ../../CHANGES.rst:230 ../../CHANGES.rst:279 ../../CHANGES.rst:305 -#: ../../CHANGES.rst:324 ../../CHANGES.rst:332 ../../CHANGES.rst:341 -#: ../../CHANGES.rst:367 ../../CHANGES.rst:402 ../../CHANGES.rst:428 -#: ../../CHANGES.rst:477 ../../CHANGES.rst:505 ../../CHANGES.rst:535 -#: ../../CHANGES.rst:591 ../../CHANGES.rst:624 ../../CHANGES.rst:645 -#: ../../CHANGES.rst:655 ../../CHANGES.rst:678 ../../CHANGES.rst:745 -#: ../../CHANGES.rst:783 ../../CHANGES.rst:800 ../../CHANGES.rst:836 -#: 91a8054efa234209906812cdd41bd586 2e9453d4722144fd9ad7f53b28a7cb37 +#: ../../CHANGES.rst:5 ../../CHANGES.rst:23 ../../CHANGES.rst:57 +#: ../../CHANGES.rst:85 ../../CHANGES.rst:104 ../../CHANGES.rst:111 +#: ../../CHANGES.rst:130 ../../CHANGES.rst:190 ../../CHANGES.rst:216 +#: ../../CHANGES.rst:231 ../../CHANGES.rst:280 ../../CHANGES.rst:306 +#: ../../CHANGES.rst:325 ../../CHANGES.rst:333 ../../CHANGES.rst:342 +#: ../../CHANGES.rst:368 ../../CHANGES.rst:403 ../../CHANGES.rst:429 +#: ../../CHANGES.rst:478 ../../CHANGES.rst:506 ../../CHANGES.rst:536 +#: ../../CHANGES.rst:592 ../../CHANGES.rst:625 ../../CHANGES.rst:646 +#: ../../CHANGES.rst:656 ../../CHANGES.rst:679 ../../CHANGES.rst:746 +#: ../../CHANGES.rst:784 ../../CHANGES.rst:801 ../../CHANGES.rst:837 +#: 74bd8e6a205c4a06b55ec9b1b8d86f48 4b956af725cc45d0ab80a2fdd02a4b9a +#: b8d535f039134b0a9afd68f7f8713d0c 879c4a3feec54624b5c16345690f94dd +#: 1985623df8644a759ff789f1fef96076 383ea6426a8f484f9ffb40a520830935 +#: ac97d42167a54f52a4f4387433d4f2a6 51abb94c86684f0e98aa85821b3b55de +#: b7a9f2fff1f842a7b3df26649bc8bc63 cbc8dd1774c44a428cb21e8f4c9d8f2e +#: 240d272f380e4681987edd02c169246e 15e513215a474d70b40edf12381e72f7 +#: 0418257ecc0c44959535ccb1f84887ed 105bf789bacd488b9547c456c678ce9a +#: 941f4be6c4fc4387a16a415291dcea10 39fb9e60582f4e7b849c6b352d4b8900 +#: ba1f31ddd6a54152b9ec60ff8dc828e3 29032d8c22424133893779341d9a3cc4 +#: 5becffbb07f9439f8f8e5128f6ae4b4c 5dca26ae33b5403883d0624bbebb09d3 +#: 82f1ceff9a0449798fd2cda980481ef5 6f19ab064ce74b30a553a9c7f40734cc +#: 5bb5974e718c4fd898c6951c84e83fd8 e73ec88847a5405c83925f07aa1c9fa4 +#: d0ecd5272cb842a39060ae5357ffdea1 668f2ebaabe94e7cae8d43c6ae82b8c0 +#: fce964069b044cf3a9ef4c7b514572bc d889698da80b4ae486084b2081c9aaea +#: 18a1a9aca2364d989bed0ef2e1c05083 efcfdd51c4fe4adb81edbcb955eaec75 msgid "Added" msgstr "" -#: ../../CHANGES.rst:6 8593aca44439457296e5591823f56739 +#: ../../CHANGES.rst:6 2deee404aef64ad3803993329510bc5a msgid "``--version`` option to the CLI. :pr:`209`" msgstr "" -#: ../../CHANGES.rst:7 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:7 68dd17fef135479c891a55e7657b2af9 msgid "" ":attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` :" "issue:`175`" msgstr "" -#: ../../CHANGES.rst:8 0f7d8f6a51e545499fcff7acd93586e3 -msgid "`canaille get --all` command option to perform full database dumps" +#: ../../CHANGES.rst:8 63808a8f2ece4e8299c1d6a3d48678fb +msgid "`canaille dump` command option to perform full database dumps" msgstr "" -#: ../../CHANGES.rst:11 ../../CHANGES.rst:15 ../../CHANGES.rst:44 -#: ../../CHANGES.rst:64 ../../CHANGES.rst:77 ../../CHANGES.rst:89 -#: ../../CHANGES.rst:114 ../../CHANGES.rst:122 ../../CHANGES.rst:170 -#: ../../CHANGES.rst:196 ../../CHANGES.rst:248 ../../CHANGES.rst:285 -#: ../../CHANGES.rst:354 ../../CHANGES.rst:372 ../../CHANGES.rst:410 -#: ../../CHANGES.rst:449 ../../CHANGES.rst:484 ../../CHANGES.rst:527 -#: ../../CHANGES.rst:631 ../../CHANGES.rst:685 ../../CHANGES.rst:717 -#: ../../CHANGES.rst:731 254357b217fe4a309d66a400497a104a +#: ../../CHANGES.rst:11 ../../CHANGES.rst:16 ../../CHANGES.rst:45 +#: ../../CHANGES.rst:65 ../../CHANGES.rst:78 ../../CHANGES.rst:90 +#: ../../CHANGES.rst:115 ../../CHANGES.rst:123 ../../CHANGES.rst:171 +#: ../../CHANGES.rst:197 ../../CHANGES.rst:249 ../../CHANGES.rst:286 +#: ../../CHANGES.rst:355 ../../CHANGES.rst:373 ../../CHANGES.rst:411 +#: ../../CHANGES.rst:450 ../../CHANGES.rst:485 ../../CHANGES.rst:528 +#: ../../CHANGES.rst:632 ../../CHANGES.rst:686 ../../CHANGES.rst:718 +#: ../../CHANGES.rst:732 9d6779c7467447bf9348630f9df9f7a6 +#: c9d0c3771a1545029cbf181cdaaf010e b71b6cc4093d47b0a025a6084ee10b82 +#: 3a1c46806f3a4fcd9bbcf94b8f2ecd6f 4ecdd331965d4307bcae6b8e23cc2758 +#: 3007fe60da8b497489115528ff73a22a d97da6e417504c30905b3bbbcff0a3e5 +#: 8379ca38044741609b60ac5563f117e8 a65d6cf0ec7440a89b6e4e26bcee20a9 +#: 603c0752d0754d31ba81c98b44689841 803aba2541184a568053711d70a98172 +#: a0d9788d439b4e76a40fecbedda27dd7 61a3b7ac77f1470db2511ddd0f4fb557 +#: 893961704a1d436cbd4ca48dfb664ace 104393fcd7b0433cb2600fa15b60db74 +#: 2900ac4761c1410c94519e4d29763ec5 e32378837b094cbbbf4e2446f6454991 +#: 3cc46ac4032447bcb723f9c694279c51 47d34ef97528461eb4b152543826122d +#: 12cf7bbc8c624173a724dd66eea7edf2 b974765388144565a52c260b58adca84 +#: 303ba7514eba49cda1e049ff223d146c msgid "Changed" msgstr "" -#: ../../CHANGES.rst:12 ../../CHANGES.rst:16 d1eb743e584f441d9b1dbf0669995b45 -#: c15803fd37484051a8f92213756c4d22 +#: ../../CHANGES.rst:12 ../../CHANGES.rst:17 6f26098796454b3cad6eb8ecdb44eddf +#: 2bd1e492a77e48be91838061fed5e7b8 msgid "fixed a bug on updating user's settings :issue:`206`" msgstr "" -#: ../../CHANGES.rst:19 9d53638e5933499baafec12390f02e23 +#: ../../CHANGES.rst:13 fe7429ca2df94118964bd4c3ea5cb945 +msgid "CLI commands dump hashed passwords :issue:`214`" +msgstr "" + +#: ../../CHANGES.rst:20 a9391eece84240bb82abe2cbcd0d2367 msgid "[0.0.57] - 2024-12-31" msgstr "" -#: ../../CHANGES.rst:23 5b4f3aa107a74df3ba845920503dfdc5 +#: ../../CHANGES.rst:24 fb0fd10598b4464dae61d7edea3f3246 msgid "Intruder lockout :issue:`173`" msgstr "" -#: ../../CHANGES.rst:24 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:25 ac217f88cae6455a91e3240120afecd1 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT` :" "issue:`173`" msgstr "" -#: ../../CHANGES.rst:26 cdab69b7537c452caa3eadb572993a40 +#: ../../CHANGES.rst:27 61171b21dcc64e56b9a6d1b8fe1aa10e msgid "Multi-factor authentication :issue:`47`" msgstr "" -#: ../../CHANGES.rst:27 a90b270f7e144a4b81babbac96f5ff22 +#: ../../CHANGES.rst:28 00fe2c01e8e741fbafa9004b6cbde2ae msgid "" ":attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD` and :attr:" "`~canaille.core.configuration.CoreSettings.EMAIL_OTP` and :attr:`~canaille." @@ -105,11 +134,11 @@ msgid "" "configuration.CoreSettings.SMPP` :issue:`47`" msgstr "" -#: ../../CHANGES.rst:32 05060126fea740ef82fba8246132aa6e +#: ../../CHANGES.rst:33 81230933555848b4b7db27a802f7445f msgid "Password compromission check :issue:`179`" msgstr "" -#: ../../CHANGES.rst:33 a90b270f7e144a4b81babbac96f5ff22 +#: ../../CHANGES.rst:34 283ab183148249a2b3eab298fc7746c6 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:" "`~canaille.core.configuration.CoreSettings." @@ -117,1394 +146,1417 @@ msgid "" "CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL` :issue:`179`" msgstr "" -#: ../../CHANGES.rst:37 2cfcbdba2e9541dbab610bc724a2683a +#: ../../CHANGES.rst:38 935d8279dbc64e649d6d647c5747456a msgid "Implement OIDC client_credentials flow. :issue:`207`" msgstr "" -#: ../../CHANGES.rst:38 1e36a8464f6045708cf07b39bcdfea1c +#: ../../CHANGES.rst:39 cde005956a384cc2a9c6e19cb14e6c99 msgid "Button in the client admin page to create client tokens." msgstr "" -#: ../../CHANGES.rst:39 c69d8b01e4194d5b9268b84ab81849d6 +#: ../../CHANGES.rst:40 2f64a0f5e56f40c093e7c8bb34e57b21 msgid "Basic SCIM implementation. :issue:`116` :pr:`197`" msgstr "" -#: ../../CHANGES.rst:40 c777083179094cd994619adcfc8499d9 +#: ../../CHANGES.rst:41 e1497232147641ed858b53ca6d1a0c4d msgid "Password expiry policy :issue:`176`" msgstr "" -#: ../../CHANGES.rst:41 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:42 452b760e978e47dc91176f653dc53d5b msgid ":attr:`~canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME`" msgstr "" -#: ../../CHANGES.rst:45 bb196cd8528b48628628ab53c5288b49 +#: ../../CHANGES.rst:46 7f89d7aba58f465eab40eb10192962c4 msgid "" "PostgreSQL and MySQL extras does not rely on libraries that need to be " "compiled." msgstr "" -#: ../../CHANGES.rst:46 c36865875c264bb4a34d614ea2be23cf +#: ../../CHANGES.rst:47 da03a9cd311a416bbb18aed6783e2855 msgid "" "``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be " "passed so ``.env`` files are loaded." msgstr "" -#: ../../CHANGES.rst:49 045b041136be49de8d54674ad57fea87 +#: ../../CHANGES.rst:50 50fe28668fa04a39b0004b6cd8cb9e68 msgid "[0.0.56] - 2024-11-07" msgstr "" -#: ../../CHANGES.rst:52 ../../CHANGES.rst:94 ../../CHANGES.rst:133 -#: ../../CHANGES.rst:141 ../../CHANGES.rst:149 ../../CHANGES.rst:156 -#: ../../CHANGES.rst:163 ../../CHANGES.rst:177 ../../CHANGES.rst:207 -#: ../../CHANGES.rst:220 ../../CHANGES.rst:238 ../../CHANGES.rst:257 -#: ../../CHANGES.rst:265 ../../CHANGES.rst:291 ../../CHANGES.rst:299 -#: ../../CHANGES.rst:319 ../../CHANGES.rst:349 ../../CHANGES.rst:381 -#: ../../CHANGES.rst:389 ../../CHANGES.rst:415 ../../CHANGES.rst:435 -#: ../../CHANGES.rst:459 ../../CHANGES.rst:469 ../../CHANGES.rst:490 -#: ../../CHANGES.rst:498 ../../CHANGES.rst:521 ../../CHANGES.rst:544 -#: ../../CHANGES.rst:556 ../../CHANGES.rst:565 ../../CHANGES.rst:574 -#: ../../CHANGES.rst:583 ../../CHANGES.rst:603 ../../CHANGES.rst:610 -#: ../../CHANGES.rst:660 ../../CHANGES.rst:668 ../../CHANGES.rst:693 -#: ../../CHANGES.rst:701 ../../CHANGES.rst:709 ../../CHANGES.rst:722 -#: ../../CHANGES.rst:736 ../../CHANGES.rst:768 ../../CHANGES.rst:791 -#: ../../CHANGES.rst:822 13ee0de3f7db4046b8399917e8d52e0b +#: ../../CHANGES.rst:53 ../../CHANGES.rst:95 ../../CHANGES.rst:134 +#: ../../CHANGES.rst:142 ../../CHANGES.rst:150 ../../CHANGES.rst:157 +#: ../../CHANGES.rst:164 ../../CHANGES.rst:178 ../../CHANGES.rst:208 +#: ../../CHANGES.rst:221 ../../CHANGES.rst:239 ../../CHANGES.rst:258 +#: ../../CHANGES.rst:266 ../../CHANGES.rst:292 ../../CHANGES.rst:300 +#: ../../CHANGES.rst:320 ../../CHANGES.rst:350 ../../CHANGES.rst:382 +#: ../../CHANGES.rst:390 ../../CHANGES.rst:416 ../../CHANGES.rst:436 +#: ../../CHANGES.rst:460 ../../CHANGES.rst:470 ../../CHANGES.rst:491 +#: ../../CHANGES.rst:499 ../../CHANGES.rst:522 ../../CHANGES.rst:545 +#: ../../CHANGES.rst:557 ../../CHANGES.rst:566 ../../CHANGES.rst:575 +#: ../../CHANGES.rst:584 ../../CHANGES.rst:604 ../../CHANGES.rst:611 +#: ../../CHANGES.rst:661 ../../CHANGES.rst:669 ../../CHANGES.rst:694 +#: ../../CHANGES.rst:702 ../../CHANGES.rst:710 ../../CHANGES.rst:723 +#: ../../CHANGES.rst:737 ../../CHANGES.rst:769 ../../CHANGES.rst:792 +#: ../../CHANGES.rst:823 53c5a65f508e4ce4a2cdb301851dd948 +#: b274bbd1b95e42bcb8153fc3514259ce 2533d3c823f74185b35b06fa4e1b80e3 +#: ed1e8ab37be64a8f8ca5ffecb229e0ad df88f1d57bf34873bffea45537b3af4c +#: 6172e8c8655f4dcc9adc6bea34c0fc95 f69752d371734b35af74db0812516dd9 +#: e84d4fc2503b4cb9bc30b43d71515f3d de5ce855802f402a8b90fd3f7401d7d9 +#: b0d8d589bafb44e7a50e1df6b5a2c0ee df7c8e6f591146ae9d0214b5cf2ef20c +#: 01c7173e0c4f4edd9b9435c71cf0b42f f852bdbb77364a7e9cc6b146e56ed402 +#: 0fde0faefcc74c63814c308767cfece9 646698a0b8834d5a82e6251501ac750e +#: 72754d5c2e904a22a329f4254a514e9c 7e1ac803c25144c0b2b9c902530a21a2 +#: 526a14aecd6f4e87b95a6edb635fc92c 194cefb8995b489fb1cedfa349a864c0 +#: 50050907eee8458fb96d8c32a755b0d4 acbb3ec553594f6680d223653479eff4 +#: 089020254ca745848ba3bc24c50f593b 2dccac9b689a4eefab864be77ee5a433 +#: 7ac15c877d0e44deadcfbb9c99e14ca6 0606f5a65c6d412a96cb74b9eaf59706 +#: 08260e612848485cb1928449b08ddfa2 0a5801741e6e4f68b248e8eefc11e32e +#: d6643e325d37484d9c9b14c4dc3e26ff ff19c7e139e64f40be24d0d3766e12d1 +#: 70025a466d2940dd82bb4d943cae9cbc bc7c7a9dc156475c8a65bfe5b94c66df +#: 10d045405e844791b053eee9e1f845e2 66784d9272f44414a23d2b25cc73b179 +#: 02d5e48f9ea0441688e6d8e75da2bc20 daca4e664b6d4a949f8825c48941a1f2 +#: 42fe0d93e6da4649b6315591d95fabfd e344dc15cfcd4ebaa54ed440b8745fd8 +#: 52a9e522d4784784aa9db400ec187e1f 0d260c98b74242b0bde5f2cca4aca9b0 +#: 7f343e5272b14cdabcd8606c3af8de59 6c2e38da89e548bcb490b4ef93d4cdd1 +#: 27d0795441ff491e8d5599a42d03f41b e74496b8550542b7a5061fffdd77cddc msgid "Fixed" msgstr "" -#: ../../CHANGES.rst:53 10c707b06b884b168b2dd26bffd7bf76 +#: ../../CHANGES.rst:54 d1079f04609745a5b2b84388ffbafe12 msgid "" "With LDAP backend, updating another user groups could result in a permission " "lost for the editor. :issue:`202`" msgstr "" -#: ../../CHANGES.rst:57 efa1fc20329f42918fe6a530617cf102 +#: ../../CHANGES.rst:58 5064e81a1a254f5cae3b89c8d59a263d msgid "" ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH` and :" "attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH` " "configuration options :issue:`174`" msgstr "" -#: ../../CHANGES.rst:59 cdab69b7537c452caa3eadb572993a40 +#: ../../CHANGES.rst:60 26e4f63a1064497b93ca4f9849d60b6e msgid "Password strength visual indicator. :issue:`174`" msgstr "" -#: ../../CHANGES.rst:60 2ae6bad543d64621886630d3db7832e6 +#: ../../CHANGES.rst:61 a2fdef5b105b41d5ad708fe077dd6ea5 msgid "Security events logs. :issue:`177`" msgstr "" -#: ../../CHANGES.rst:61 40ab5f1ed3bc406fb662d0025e5b3212 +#: ../../CHANGES.rst:62 c01dd0db19874fb1a2bce1ab058ff012 msgid "Support for Python 3.13. :pr:`186`" msgstr "" -#: ../../CHANGES.rst:65 c7940e351aac4939b964ccb80cebd616 +#: ../../CHANGES.rst:66 123ca7470aaa4f0ea643e898579c3cdb msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "" -#: ../../CHANGES.rst:66 dfc1569ae0ec412d86503a0695522fa5 +#: ../../CHANGES.rst:67 289367c535344e859b7a42df83c7cf4f msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`" msgstr "" -#: ../../CHANGES.rst:67 40c97bec2553487fa62efc486d3ee444 +#: ../../CHANGES.rst:68 b553f5d728d74f9ea62e87cbf8472ef2 msgid "" "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` " "and ``mysql``." msgstr "" -#: ../../CHANGES.rst:70 ../../CHANGES.rst:420 ../../CHANGES.rst:828 -#: bc1a20b5783a4fe38fa201438a8075e5 +#: ../../CHANGES.rst:71 ../../CHANGES.rst:421 ../../CHANGES.rst:829 +#: ac38305d876e48789c182a1fbf0483ac 022fcf9dd0534233866aa0d9974e2987 +#: 29bdcf38f9d748fe90268b40a612f081 msgid "Removed" msgstr "" -#: ../../CHANGES.rst:71 3f97d00692d047dbbecb5c18a2d45b07 +#: ../../CHANGES.rst:72 943bfc081ef14407995de675069f94d1 msgid "End support for Python 3.9. :pr:`179`" msgstr "" -#: ../../CHANGES.rst:74 4a57056601f148969254d2f049e0f460 +#: ../../CHANGES.rst:75 1329245bc09c41e790e01b07835c59a9 msgid "[0.0.55] - 2024-08-30" msgstr "" -#: ../../CHANGES.rst:78 a037ad5da20049ad82e9f9b0d766cfbb +#: ../../CHANGES.rst:79 79310b4f35ed49b980404e77433ad344 msgid "Use poetry-core build backend. :pr:`178`" msgstr "" -#: ../../CHANGES.rst:81 d6bf96b8e5cc4a6f8e099b48c1951a6a +#: ../../CHANGES.rst:82 b1c2cc3b8f1644cba3e1e82dfd2eda3b msgid "[0.0.54] - 2024-07-25" msgstr "" -#: ../../CHANGES.rst:85 062bcc176aac499384187fcb06e2a00b +#: ../../CHANGES.rst:86 ebb97b0ad729407381eafd00a0345db4 msgid "" "Group member removal can be achieved from the group edition page. :issue:" "`192`" msgstr "" -#: ../../CHANGES.rst:86 8680469549c74d37a52b1c6252c74d57 +#: ../../CHANGES.rst:87 b938d978231f485d96dd65c284b50c75 msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "" -#: ../../CHANGES.rst:90 c19428c67d8f4d198d0ab97defe14fb3 +#: ../../CHANGES.rst:91 194419a0a61744cabd33b572a65b9ebb msgid "Model `identifier_attributes` are fixed." msgstr "" -#: ../../CHANGES.rst:91 571f38b1484b43e2beed6f33eb675700 +#: ../../CHANGES.rst:92 38cf7ccdf64844b3b46da32df1b7e6c3 msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "" -#: ../../CHANGES.rst:96 9e54da898699471194477836791f08a6 +#: ../../CHANGES.rst:97 03e01fffdd994e5688cff3e313bd4402 msgid "Dark theme colors for better readability." msgstr "" -#: ../../CHANGES.rst:97 4e0f2a8e03a447e59cb0a2b0e6d208f1 +#: ../../CHANGES.rst:98 d0f2bd58fbd24866855da92cff441bbf msgid "" "Crash for passwordless users at login when no SMTP server was configured." msgstr "" -#: ../../CHANGES.rst:100 a9273241db7e4137bac5973b20e3ec5d +#: ../../CHANGES.rst:101 a93bd621e6d442e09311f9a527e82cb5 msgid "[0.0.53] - 2024-04-22" msgstr "" -#: ../../CHANGES.rst:104 17fbf739a68a4e59b5cc6da8befa1c6f +#: ../../CHANGES.rst:105 e57b8cfe44ef43fdb1cb5c6796f6f07e msgid "" "`env_prefix` `create_app`` variable can select the environment var prefix." msgstr "" -#: ../../CHANGES.rst:107 7bdc8f732053463b95353cdf5c994838 +#: ../../CHANGES.rst:108 5f3aedb0fb95429c948c48a44ce99bc9 msgid "[0.0.52] - 2024-04-22" msgstr "" -#: ../../CHANGES.rst:111 bc7d1037cdfd40a69044f465467f6834 +#: ../../CHANGES.rst:112 fc80c3f894ac496da58299137473570f msgid "`env_file` create_app variable can customize/disable the .env file." msgstr "" -#: ../../CHANGES.rst:115 9685a5e5a13147f093ac57e2039fe11b +#: ../../CHANGES.rst:116 dfee8d84d47a46d4a02626043ad3c378 msgid "Locked users cannot be impersonated anymore." msgstr "" -#: ../../CHANGES.rst:116 1b83a24a97384c2faab67e915701e6b2 +#: ../../CHANGES.rst:117 50b623665b86438d8d94f754ddfec814 msgid "Minimum Python requirement is 3.9." msgstr "" -#: ../../CHANGES.rst:119 e88f01e3f89f45f2a63b456f8e304d3d +#: ../../CHANGES.rst:120 2aef1c38709f40de94070e2591894618 msgid "[0.0.51] - 2024-04-09" msgstr "" -#: ../../CHANGES.rst:123 aae3d126989840578ec2b08058aad688 +#: ../../CHANGES.rst:124 b7591b424f2e45788b23199143298a26 msgid "Display the menu bar on error pages." msgstr "" -#: ../../CHANGES.rst:126 22b11dc18595450fa5e7fe5f35824ebe +#: ../../CHANGES.rst:127 0482caf34246470a9cad38fb5494ec06 msgid "[0.0.50] - 2024-04-09" msgstr "" -#: ../../CHANGES.rst:130 fc1bc503759c4beb943e9dcbf0c4a9cf +#: ../../CHANGES.rst:131 1ac6b68041ac41b588d06ee7289d7b54 msgid "Sign in/out events are logged in. :issue:`177`" msgstr "" -#: ../../CHANGES.rst:134 cfe0182123c94bcc9ee847739bd2e114 +#: ../../CHANGES.rst:135 c3deb238bd1448c384f74146a0cb34c1 msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "" -#: ../../CHANGES.rst:135 3bc7c83763d34549bac91df86a22b3a0 +#: ../../CHANGES.rst:136 7e5dc3a8203f4975938a56512527ce61 msgid "Compatibility with old sessions IDs." msgstr "" -#: ../../CHANGES.rst:138 cdee0bee34024d21bace2d77ff637ed9 +#: ../../CHANGES.rst:139 e7a941e0a4d841fba7e67ca25ddf14a7 msgid "[0.0.49] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:142 f9c9585c305d47628adffcae287229d2 +#: ../../CHANGES.rst:143 d2faee827c5b40b68570ab1c02b3d467 msgid "LDAP user group removal." msgstr "" -#: ../../CHANGES.rst:143 c25c5c6a9cca4061be6502cae5e86ba2 +#: ../../CHANGES.rst:144 3530ff4f5a494c97be1248713efad111 msgid "" "Display an error message when trying to remove the last user from a group." msgstr "" -#: ../../CHANGES.rst:146 5e0c66b55801444497954839297b97eb +#: ../../CHANGES.rst:147 37b850b8747f4885bb59c4b600f07e39 msgid "[0.0.48] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:150 bd9920a130844ee897863a6b649484e2 +#: ../../CHANGES.rst:151 43fcc4664e2c493e8d6fe0db840fe372 msgid "LDAP ``objectClass`` guessing exception." msgstr "" -#: ../../CHANGES.rst:153 93cf829932204311ba399ae713aff29f +#: ../../CHANGES.rst:154 ae0eb5c761394db2b1d091e6fa1cb7b6 msgid "[0.0.47] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:157 b7a5d3351a334b0592b12373e1c7afa6 +#: ../../CHANGES.rst:158 cf62cb736d744b53b5968b84e6b3b424 msgid "Lazy permission loading exception." msgstr "" -#: ../../CHANGES.rst:160 c6000ae4f0fc4d488ab180c3aa9eb144 +#: ../../CHANGES.rst:161 c5ba2703aa9742a8957fcb6a15a22298 msgid "[0.0.46] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:164 db4476f22ad049f49833696323eb1b33 +#: ../../CHANGES.rst:165 d9150b7d06724be49a3d165891332d9e msgid "" "Saving an object with the LDAP backend keeps the ``objectClass`` un-managed " "by Canaille. :pr:`171`" msgstr "" -#: ../../CHANGES.rst:167 d7117b0322b549ff87b73b8e4c839915 +#: ../../CHANGES.rst:168 aa1459361e01481a9f2f9e3e29927db4 msgid "[0.0.45] - 2024-04-04" msgstr "" -#: ../../CHANGES.rst:171 9690ab893eef4290a52b1137f24b9be8 +#: ../../CHANGES.rst:172 5f111a4408054a86a564f89965320a0e msgid "Internal indexation mechanism of ``MemoryModel``." msgstr "" -#: ../../CHANGES.rst:174 be79650410904879b53da2c62ac092d5 +#: ../../CHANGES.rst:175 4ec01913c134471ba2c9bc6c7d6594a0 msgid "[0.0.44] - 2024-03-29" msgstr "" -#: ../../CHANGES.rst:178 1c2533bc36b548c59361d7b3e304cce6 +#: ../../CHANGES.rst:179 96427ccf2ab844e09af39f35d99e62f4 msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "" -#: ../../CHANGES.rst:179 c429e79bd5aa46edb7b4cd1bd87c3ad8 +#: ../../CHANGES.rst:180 bdc76b00698649b0a1662a4f4574295e msgid "Fix the OIDC feature detection." msgstr "" -#: ../../CHANGES.rst:182 51a43a574cc943b5912effdaa67f8690 +#: ../../CHANGES.rst:183 aac8fcfe3c274caf955d0c0ec4d56a95 msgid "[0.0.43] - 2024-03-29" msgstr "" -#: ../../CHANGES.rst:186 ../../CHANGES.rst:445 02e8eccba3b74e889a68c78dc51e0a24 +#: ../../CHANGES.rst:187 ../../CHANGES.rst:446 580f0fc146ec498a9bab5ebbcc1a075d +#: 50bb86bd7d0e43d6807b49af9344f81f msgid "Configuration files must be updated." msgstr "" -#: ../../CHANGES.rst:191 a39fba5f25754fdc9f0f339142ff0320 +#: ../../CHANGES.rst:192 5e07cdf3619e479d8481e119065404ec msgid "Add ``created`` and ``last_modified`` datetime for all models." msgstr "" -#: ../../CHANGES.rst:192 b1e37ddf62994798a70a23cff76ed4d6 +#: ../../CHANGES.rst:193 3102a152b0dd403b86e27d64a971ce87 msgid "Sitemap to the documentation. :pr:`169`" msgstr "" -#: ../../CHANGES.rst:193 54cf20bc59af4634af6b3f2d0e10c5e9 +#: ../../CHANGES.rst:194 0219c78a44ed414fa3c72cf01961951b msgid "" "Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`" msgstr "" -#: ../../CHANGES.rst:198 689b4f88ba4b43db8c8b1a7bff0aebe6 +#: ../../CHANGES.rst:199 b3186678446f4f74aad4f014d22d39be msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`" msgstr "" -#: ../../CHANGES.rst:199 7d18c66450654e25a65749ea273b859d +#: ../../CHANGES.rst:200 fd5c70ba10bc4ea199529498765da9c8 msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "" -#: ../../CHANGES.rst:200 9d053f12577548bc8cff1add00376bae +#: ../../CHANGES.rst:201 97733b3cecda49b59eda7684cbcf0bdc msgid "" "Use the standard tomllib Python module instead of `toml` starting from " "Python 3.11. :pr:`167`" msgstr "" -#: ../../CHANGES.rst:201 fd8c1c0314b2465c9cacb4ba593eae77 +#: ../../CHANGES.rst:202 417ca230093143fd898eacb9326a5bce msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "" -#: ../../CHANGES.rst:204 abc0b3ba739e4f99866d02027d8128d2 +#: ../../CHANGES.rst:205 265939621caf4ae4be01d355c819a1a4 msgid "[0.0.42] - 2023-12-29" msgstr "" -#: ../../CHANGES.rst:209 74e8932123b744b2809d370b36980326 +#: ../../CHANGES.rst:210 8ff42abcf9f14d8cb6acb1252cb72185 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" -#: ../../CHANGES.rst:212 41f209b7a9054599b7b71d4fab3afe8f +#: ../../CHANGES.rst:213 a3b54c69b61f4cab9c33ccffaa2ccb1d msgid "[0.0.41] - 2023-12-25" msgstr "" -#: ../../CHANGES.rst:217 77ff8fdeadf94e2f8696b2f5b9bd9349 +#: ../../CHANGES.rst:218 b7be279b17f04cdead0f43eb1263cc8f msgid "" "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:" "`185` :pr:`164`" msgstr "" -#: ../../CHANGES.rst:222 8940d9836a9f46a09613c3646e1d55f8 +#: ../../CHANGES.rst:223 c2131815b4ee4e53854f1c9801b81672 msgid "" "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during " "OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:223 bb9a9230771445b6a7c93f042fb289ee +#: ../../CHANGES.rst:224 674bd58192194c48872f1bceb85b64b9 msgid "" "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:224 b5d0341447ef443b969d2a48457442f2 +#: ../../CHANGES.rst:225 f00edc3069de458793e37db8f46cf24c msgid "Group field error prevented the registration form validation." msgstr "" -#: ../../CHANGES.rst:227 7bcad6150cbc4883817538eb23bed3bd +#: ../../CHANGES.rst:228 acfe93442a3e445daccb56cb0a977bd5 msgid "[0.0.40] - 2023-12-22" msgstr "" -#: ../../CHANGES.rst:232 aae4204166c443f99e04d84842dd6dd9 +#: ../../CHANGES.rst:233 e963680d5372445bb660af444ebc5fc3 msgid "The ``THEME`` setting can be a relative path." msgstr "" -#: ../../CHANGES.rst:235 26224cfa5ee647a2b15239a78065f5f7 +#: ../../CHANGES.rst:236 13b3c18f8c344461a0f22041afdce696 msgid "[0.0.39] - 2023-12-15" msgstr "" -#: ../../CHANGES.rst:240 14b2b67c379045d681ee712797f44328 +#: ../../CHANGES.rst:241 346414ba0ed545abaa3c92f8e00e4573 msgid "Crash when no ACL were defined." msgstr "" -#: ../../CHANGES.rst:241 38649598ac954d29843b54b15343dd15 +#: ../../CHANGES.rst:242 b1302bfb48c5482e84720a6ad95541b0 msgid "OIDC Userinfo endpoint is also available in POST." msgstr "" -#: ../../CHANGES.rst:242 ed1da2958a1646fd82c70171a5c04317 +#: ../../CHANGES.rst:243 7923b8de73af4dce9521620ee749336f msgid "Fix redirection after password reset. :issue:`159`" msgstr "" -#: ../../CHANGES.rst:245 8f2bc47f69554f539aa2836958029d59 +#: ../../CHANGES.rst:246 52a4d55d277f4b7389318b494216b17b msgid "[0.0.38] - 2023-12-15" msgstr "" -#: ../../CHANGES.rst:250 24f252671c9a4a3590e94e5e563e4d19 +#: ../../CHANGES.rst:251 7ce633eaccb84a0abe491918a8a48b6d msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "" -#: ../../CHANGES.rst:251 8a1d423f79f749868c06a775e9c21bd2 +#: ../../CHANGES.rst:252 3fcb891995404ae99d79ce23eb8caa0d msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "" -#: ../../CHANGES.rst:254 9d53638e5933499baafec12390f02e23 +#: ../../CHANGES.rst:255 cbee12051316441698e3c2c15d6ede8a msgid "[0.0.37] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:259 5ed255dd094a4a3aae1b75edf54001ad +#: ../../CHANGES.rst:260 01c5325fd82c43d9b530c2dac22b5fe6 msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`" msgstr "" -#: ../../CHANGES.rst:262 26d16685ada341a29bf6ee6e98997128 +#: ../../CHANGES.rst:263 9a17c644884048a2992dd5428c40d05f msgid "[0.0.36] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:267 2cfddfd6843e4cbfb1b645c84bc70322 +#: ../../CHANGES.rst:268 96261936841c49d9ace436ca743e1e9f msgid "Avoid crashing when LDAP groups references unexisting users." msgstr "" -#: ../../CHANGES.rst:268 f5714a32e81841e29f2619f6ee5464e8 +#: ../../CHANGES.rst:269 7acc84b824d0448c97a734b600f5c421 msgid "" "Password reset and initialization mails were only sent to the preferred user " "email address." msgstr "" -#: ../../CHANGES.rst:270 4e121ada1cc24b7b8051d085b0ce464b +#: ../../CHANGES.rst:271 4312e1ec50d3417fae1c5274518b4603 msgid "" "Password reset and initialization mails were not sent at all the user " "addresses if one email address could not be reached." msgstr "" -#: ../../CHANGES.rst:272 c5fc8c86d3df4732b3a06f70dd89af18 +#: ../../CHANGES.rst:273 2252295c032d4e41a5d6a38857a2f5cf msgid "Password comparison was too permissive on login." msgstr "" -#: ../../CHANGES.rst:273 36f936a6dd8c41c5bc833d928f347321 +#: ../../CHANGES.rst:274 27ed494c0fd942129181c56473fa068e msgid "Encrypt passwords in the SQL backend." msgstr "" -#: ../../CHANGES.rst:276 76befacfb135435fbee6ee0fe07f40e5 +#: ../../CHANGES.rst:277 e5a596d2090c48589c732902e4ea1715 msgid "[0.0.35] - 2023-11-25" msgstr "" -#: ../../CHANGES.rst:281 14d361d80e4c429f929b943d3321e895 +#: ../../CHANGES.rst:282 6f53586e55d14c0a88ce91b1d3dd5a0e msgid "" "Refresh token grant supports other client authentication methods. :pr:`157`" msgstr "" -#: ../../CHANGES.rst:282 c52cda2685214bcab533db539acee007 +#: ../../CHANGES.rst:283 b11afbdb2b1c4d37b7364fa8426cd740 msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" msgstr "" -#: ../../CHANGES.rst:287 57670f55b7644a0888ab65cd2da2fd8c +#: ../../CHANGES.rst:288 092696abad604e50a28844294cc25b5b msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" msgstr "" -#: ../../CHANGES.rst:288 f4ef25b7b38b42a48fb2a32c5cd8888f +#: ../../CHANGES.rst:289 8e581ce7d30d47d7a98ae99979bf471f msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "" -#: ../../CHANGES.rst:293 49b0b7da40204fdeaf40c5281235c2a6 +#: ../../CHANGES.rst:294 bc46a9529f664beeb57d37afb6538007 msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`" msgstr "" -#: ../../CHANGES.rst:296 db372dee122e4b4fb18c2c99dd056ce2 +#: ../../CHANGES.rst:297 4cc90925acde46e6bc670a73abcfd2b1 msgid "[0.0.34] - 2023-10-02" msgstr "" -#: ../../CHANGES.rst:301 a4b5211e96894c5d9d51b2630d6aea17 +#: ../../CHANGES.rst:302 aeca0dbe6dd646a182af06ae52e21bab msgid "" "Canaille installations without account lockabilty could not delete users. :" "pr:`153`" msgstr "" -#: ../../CHANGES.rst:307 4f4ca04b08a04dcb8f6a2eb6605f0e13 +#: ../../CHANGES.rst:308 e2e75a18ecd34793a12ed5b1b116202b msgid "" "If users register or authenticate during a OAuth Authorization phase, they " "get redirected back to that page afterwards. :issue:`168` :pr:`151`" msgstr "" -#: ../../CHANGES.rst:310 298ffe26093441918be8b38d13f0cc58 +#: ../../CHANGES.rst:311 f4f96c897ca841af8798712e0f0dcd41 msgid "" "The `flask-babel` and `pytz` libraries are now part of the `front` packaging " "extras." msgstr "" -#: ../../CHANGES.rst:311 ccb502180d634f11ad173619af1b68d8 +#: ../../CHANGES.rst:312 d9d9125da5484af3b63440eec6c4b8b0 msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "" -#: ../../CHANGES.rst:312 7413676f512d4473972484920ff5f060 +#: ../../CHANGES.rst:313 2520552fc51d4064bf0862108b44ef63 msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "" -#: ../../CHANGES.rst:313 7905327465c44c09b2a10854abe79960 +#: ../../CHANGES.rst:314 e46900d403e047ec90aae41b0988436b msgid "Support for Python 3.12. :pr:`155`" msgstr "" -#: ../../CHANGES.rst:316 808e57e560f74a25b60029fbd6531d2e +#: ../../CHANGES.rst:317 45acc759934d44949490e91b88fcf082 msgid "[0.0.33] - 2023-08-26" msgstr "" -#: ../../CHANGES.rst:321 1179dc27648248188fdecf5696fd5045 +#: ../../CHANGES.rst:322 5943247053c7415da4498ba141e70558 msgid "OIDC jwks endpoint do not return empty `kid` claim." msgstr "" -#: ../../CHANGES.rst:326 b8b2caca239b4b609143ffd267522a16 +#: ../../CHANGES.rst:327 a971c7037bd74e9fa857a92fb695d9b8 msgid "Documentation details on the Canaille models." msgstr "" -#: ../../CHANGES.rst:329 dd35ed0e27664b6b954e9b39881f14bc +#: ../../CHANGES.rst:330 667888a9f86e4623a43d6f86b59a5575 msgid "[0.0.32] - 2023-08-17" msgstr "" -#: ../../CHANGES.rst:334 bdcae061315a4e92a6bc1a48475cb351 +#: ../../CHANGES.rst:335 2af3dcdb899a44acbe3de44e71df8135 msgid "Additional inmemory backend. :issue:`30` :pr:`149`" msgstr "" -#: ../../CHANGES.rst:335 c39cbed721254ce5ad9c250de1e7ea41 +#: ../../CHANGES.rst:336 2ba5da0aea28417290b07dd3a1801eb5 msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "" -#: ../../CHANGES.rst:338 5311648e4c714ed29e89e9644167f963 +#: ../../CHANGES.rst:339 b0c7c8a21cd64b8f962fe1ecc850225f msgid "[0.0.31] - 2023-08-15" msgstr "" -#: ../../CHANGES.rst:343 a6a4b510a0ac4b4ebeb9160510f72d77 +#: ../../CHANGES.rst:344 aaf2b92f1c6b445eaf28e272153f622f msgid "" "Configuration option to disable the forced usage of OIDC `nonce` parameter. :" "pr:`143`" msgstr "" -#: ../../CHANGES.rst:344 37eb24ef005e44da8ae0f4c48bda766c +#: ../../CHANGES.rst:345 ed95959d47a540daa19d1f994a3dde58 msgid "Validate phone numbers with a regex. :pr:`146`" msgstr "" -#: ../../CHANGES.rst:345 2be2120a0500430a8d854d1b8f19a0bf +#: ../../CHANGES.rst:346 f39302c55f0f4ce583fe0329947a4f35 msgid "Email verification. :issue:`41` :pr:`147`" msgstr "" -#: ../../CHANGES.rst:346 d3be95492ef348efa77976515d4ffca9 +#: ../../CHANGES.rst:347 5bd084c1ce134929aa6bce51792b08fb msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "" -#: ../../CHANGES.rst:351 1a3da0153c2b451d99665d2b61c512f2 +#: ../../CHANGES.rst:352 63c8bd04ebd7478ba461e5fa3d1e43a6 msgid "The `check` command uses the default configuration values." msgstr "" -#: ../../CHANGES.rst:356 15f35fa96af04e508b1a6448d866cb5f +#: ../../CHANGES.rst:357 f242fb900ae14d2eb49fd473fae1313b msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`" msgstr "" -#: ../../CHANGES.rst:359 add3188842de44b691dfbe3152546f7b +#: ../../CHANGES.rst:360 3b4b7eb562c14f48ac1ad43a108da59e msgid "[0.0.30] - 2023-07-06" msgstr "" -#: ../../CHANGES.rst:363 b96e981450334eee84128d7dffb40d8f +#: ../../CHANGES.rst:364 53e1f5ae6b92429181ad69dd80ca4869 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 "" -#: ../../CHANGES.rst:369 ab83051dda0b48d185846e49011f2429 +#: ../../CHANGES.rst:370 002bbcc157fc4d29aed42c1047a61aeb msgid "Configuration option to disable Javascript. :pr:`141`" msgstr "" -#: ../../CHANGES.rst:374 85fb804c891f444c9de116e6e4771526 +#: ../../CHANGES.rst:375 e2785b5f1bd041a2827469286db836ff msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja." msgstr "" -#: ../../CHANGES.rst:375 42d91f7cf5a3438a8bcb0bd5c193f1ea +#: ../../CHANGES.rst:376 2953a560d0414f03a2ca068f41b515ec msgid "" "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " "``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``." msgstr "" -#: ../../CHANGES.rst:378 30736e0e4b854b46940e80c38023946a +#: ../../CHANGES.rst:379 5049ed8674084571afb1ff9198181b5a msgid "[0.0.29] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:383 89d319fb81e148cb8f82f4b1a5a5390c +#: ../../CHANGES.rst:384 a072c563d2b549b8b4df37f718e0b892 msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors." msgstr "" -#: ../../CHANGES.rst:386 68d32ee84fa642dfbf358ef907193eb8 +#: ../../CHANGES.rst:387 db156cd566a64fdeaf6d3a0ad118ebd4 msgid "[0.0.28] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:391 5490daf53fd144c0b6b360e90bf5667b +#: ../../CHANGES.rst:392 afeaf312be7c4482acda1b70e6c78ffb msgid "A template variable was misnamed." msgstr "" -#: ../../CHANGES.rst:394 c65a251ed68a49beaff42740c12ce76a +#: ../../CHANGES.rst:395 404964fb0e2d4aa693b0c760d0e059f7 msgid "[0.0.27] - 2023-06-29" msgstr "" -#: ../../CHANGES.rst:398 ccf84fb0d4cd47058c3849498bd92259 +#: ../../CHANGES.rst:399 c7974ece102f4a8198ebd2b0723293df 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 "" -#: ../../CHANGES.rst:404 0856562aad23492aa6efc7f6e4bf8f90 +#: ../../CHANGES.rst:405 96138d7e5aa54a8eb198758f5b8fc15f 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 "" -#: ../../CHANGES.rst:406 24fa209262e04bcbb46c2ab7c881fbaa +#: ../../CHANGES.rst:407 6faee467462e4c119a9376683f3f7469 msgid "Field list support. :issue:`115` :pr:`136`" msgstr "" -#: ../../CHANGES.rst:407 eaff808f9ce745c59a1b373ab0ef90ab +#: ../../CHANGES.rst:408 fc6362954cf1477898af50459f340745 msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`" msgstr "" -#: ../../CHANGES.rst:412 8afcdb0ddd8f4e6c9941315ff1b06538 +#: ../../CHANGES.rst:413 98e71a54cd1a45a2ac5dbfb3f524332a msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "" -#: ../../CHANGES.rst:417 a6e1f4b8a72f4500ab437a86f6e98d06 +#: ../../CHANGES.rst:418 5e461d234d4f48ee8e22788ac686e24a msgid "" "Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`" msgstr "" -#: ../../CHANGES.rst:422 cfcf7ee77bb84df1bcd780df223e9044 +#: ../../CHANGES.rst:423 7f5c0656cb6c417dafe6db0ed3554c7c msgid "Stop support for Python 3.7. :pr:`131`" msgstr "" -#: ../../CHANGES.rst:425 42eab7328c604747ad6bde0067cb6603 +#: ../../CHANGES.rst:426 64c961d63d5542e586843d44c1b9d256 msgid "[0.0.26] - 2023-06-03" msgstr "" -#: ../../CHANGES.rst:430 b621a029c6ec420d8708f0ddd4b49c85 +#: ../../CHANGES.rst:431 679364c32f5e423692372a1c993f3538 msgid "" "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " "OpenLDAP 2.5+. :issue:`13` :pr:`118`" msgstr "" -#: ../../CHANGES.rst:432 05f5b0808e74429b92bf61fa570014cf +#: ../../CHANGES.rst:433 1eb00fcc6bc243adb17806d211fa8e05 msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "" -#: ../../CHANGES.rst:437 d7e71d1ce6704911b7e5094538cc1084 +#: ../../CHANGES.rst:438 dbf3a64e5c1d4a209416371f291d493e msgid "Avoid setting ``None`` in JWT claims when they have no value." msgstr "" -#: ../../CHANGES.rst:438 e16dcca3b764486d874401ba65e22f78 +#: ../../CHANGES.rst:439 57d98f2e337e40288f8460b70a3aebfc msgid "Display password recovery button on OIDC login page. :pr:`129`" msgstr "" -#: ../../CHANGES.rst:441 dcbd97e0bc4f44babcdc9ad9a503c162 +#: ../../CHANGES.rst:442 7bd1e12bdc5547ac95950d1629c6be6c msgid "[0.0.25] - 2023-05-05" msgstr "" -#: ../../CHANGES.rst:446 4109765130284304994ae405858bdd3c +#: ../../CHANGES.rst:447 c520e75e7db14c95904bc57074a6a23f msgid "" "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config." "sample.toml``" msgstr "" -#: ../../CHANGES.rst:451 c4645c08f789400bba029897871bb828 +#: ../../CHANGES.rst:452 ee2ef81304e643f7a203487a2ab8ee4f msgid "" "Renamed user model attributes to match SCIM naming convention. :pr:`123`" msgstr "" -#: ../../CHANGES.rst:452 3c58d21fdc81418e8ee43179c2d6384f +#: ../../CHANGES.rst:453 6610a6a82402441f9f5576cf1b0a6bb3 msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "" -#: ../../CHANGES.rst:453 5b002906414e41448a3fadea87d71e45 +#: ../../CHANGES.rst:454 6b567a15909841659979d4c608c4a65f msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" -#: ../../CHANGES.rst:454 d58c113094474cf3b82e8a3303202bb6 +#: ../../CHANGES.rst:455 17aae437222746ba8b3443adc5f556b5 msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "" -#: ../../CHANGES.rst:455 3bbdffb495f74fccbdb9eeb78a8eaf81 +#: ../../CHANGES.rst:456 7373759762424878b0c8a0faaec36c64 msgid "" "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:456 0d3ea4f8df2542e0a7da5029159f31e0 +#: ../../CHANGES.rst:457 22364336688d42ac9c77bc9203cfeafb msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "" -#: ../../CHANGES.rst:461 71139e5ab6e34c2a87d51d3d04c0dbc0 +#: ../../CHANGES.rst:462 51f8a182379f40fcbb97c59ab3a964d3 msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." msgstr "" -#: ../../CHANGES.rst:462 e34b111a3a8b4e2da966a36107a682b5 +#: ../../CHANGES.rst:463 efea74181b5b4c40b307993e97ea35ec msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:463 566d49eca850419cbb39c3a78a4160aa +#: ../../CHANGES.rst:464 51fc989c81574dae8c1242ab5ad24aaf msgid "Password initialization mails were not correctly sent. :pr:`128`" msgstr "" -#: ../../CHANGES.rst:466 f461dc48e9c846628f7ddb99b18252c6 +#: ../../CHANGES.rst:467 334afb8a4e1f45c5b8b2d38c255679c4 msgid "[0.0.24] - 2023-04-07" msgstr "" -#: ../../CHANGES.rst:471 007393d26d6e4375a0e05cbbf6c41d65 +#: ../../CHANGES.rst:472 bf3d671baf10499f99d287bdbc914b97 msgid "Fixed avatar update. :pr:`122`" msgstr "" -#: ../../CHANGES.rst:474 0ddfaf5df815484f9eb469a884e5f667 +#: ../../CHANGES.rst:475 339df86f0d1344778a5f40d4c20eafef msgid "[0.0.23] - 2023-04-05" msgstr "" -#: ../../CHANGES.rst:479 2e7346baddf44a7f9f5b9a05ae826913 +#: ../../CHANGES.rst:480 48a3d313e64f4114b0831e83123c25ea msgid "Organization field. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:480 1c68c43ae90f4e2e944dab12514f06d1 +#: ../../CHANGES.rst:481 54788639e7b14b42900ea5a7613fbbb6 msgid "ETag and Last-Modified headers on user photos. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:481 bcaf8fe7d8e940f191ed6ea5178566c1 +#: ../../CHANGES.rst:482 b1a1c1d88698449eb6195003a25b67d7 msgid "Dynamic form validation. :pr:`120`" msgstr "" -#: ../../CHANGES.rst:486 2b077ff5215a4b20b8438e82f4366ada +#: ../../CHANGES.rst:487 999932f58c6b4c809b4436373faa1f13 msgid "UX rework. Submenu addition. :pr:`114`" msgstr "" -#: ../../CHANGES.rst:487 166152fdbf6248e8a4af29f4f3bf5b6e +#: ../../CHANGES.rst:488 7c8b2566d4db458586c8337e6741cf23 msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "" -#: ../../CHANGES.rst:492 343c4102b6d648018544f151f97540e1 +#: ../../CHANGES.rst:493 7600d248c21e452dbe579fbdb9305e20 msgid "CSRF protection on every forms. :pr:`119`" msgstr "" -#: ../../CHANGES.rst:495 7140973831594dacad0bd205ca9b60e5 +#: ../../CHANGES.rst:496 3f9aac4badee40a484b1f5ff80bcab53 msgid "[0.0.22] - 2023-03-13" msgstr "" -#: ../../CHANGES.rst:499 67dc897fec2946598dbb4fe82db8a94f +#: ../../CHANGES.rst:500 01ce5349718e429699c70113d0dcda5d msgid "" "The `Faker` library is not imported anymore when the `clean` command is " "called." msgstr "" -#: ../../CHANGES.rst:502 58e3c0af1ce74125bf42a5ea16b88fbf +#: ../../CHANGES.rst:503 66d3c164cb34406f9046aa8edb9a8928 msgid "[0.0.21] - 2023-03-12" msgstr "" -#: ../../CHANGES.rst:507 a25f75d9086a4499aa1088e537f21bc3 +#: ../../CHANGES.rst:508 a397eca3471640e696a9ff70fb36bef9 msgid "Display TOS and policy URI on the consent list page. :pr:`102`" msgstr "" -#: ../../CHANGES.rst:508 e848a4f5372b44249423579a7e2cdc3d +#: ../../CHANGES.rst:509 22a5f8c34f1345b5a54965ec438f8315 msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" -#: ../../CHANGES.rst:509 61b841de5b89407d9912c8c73309111a +#: ../../CHANGES.rst:510 6f4eca0831854f35bd47d0f0e56dd7ca msgid "Revoked consents can be restored. :pr:`103`" msgstr "" -#: ../../CHANGES.rst:510 656acd80913242a4820a20bc76d797e8 +#: ../../CHANGES.rst:511 cd47eb57f7fc4f1d9a0515f89faeef57 msgid "" "Pre-consented clients are displayed in the user consent list, and their " "consents can be revoked. :issue:`69` :pr:`103`" msgstr "" -#: ../../CHANGES.rst:512 e08c1586240745fa9537dd7501475c0d +#: ../../CHANGES.rst:513 0f1343c1ee75454092b6de800afa42c7 msgid "" "A ``populate`` command can be used to fill the database with random users " "generated with faker. :pr:`105`" msgstr "" -#: ../../CHANGES.rst:514 dc653adfdbc441589c385b956ae9739e +#: ../../CHANGES.rst:515 e44b67a6721f4e3fa68c41837a5ca554 msgid "SMTP SSL support. :pr:`108`" msgstr "" -#: ../../CHANGES.rst:515 c69d8b01e4194d5b9268b84ab81849d6 +#: ../../CHANGES.rst:516 8c9317bed0bb4b27bd29987ff121b787 msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "" -#: ../../CHANGES.rst:516 5b4f3aa107a74df3ba845920503dfdc5 +#: ../../CHANGES.rst:517 0f50375487384246ab4eb7938f07db01 msgid "Department number support. :issue:`129`" msgstr "" -#: ../../CHANGES.rst:517 d219e1ac8fa148d5b6e4babc678fbeb2 +#: ../../CHANGES.rst:518 727bc53d7c984ba99850545096c51202 msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`" msgstr "" -#: ../../CHANGES.rst:518 52d2ceda28ab430a984dee19f8766b2a +#: ../../CHANGES.rst:519 2bbc467920d24e02875a5fd3199e5bcd msgid "Title edition support. :pr:`113`" msgstr "" -#: ../../CHANGES.rst:523 c4aca25daa3b491f9208d71f7715800f +#: ../../CHANGES.rst:524 36b0872d19f344adb8b44ccbfd920cd8 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 "" -#: ../../CHANGES.rst:529 a1c057df21a9436a9b149fb91fdb28d0 +#: ../../CHANGES.rst:530 bcdf981ce5eb414099830d68efe4c1b5 msgid "Removed the `DataTables` Javascript library." msgstr "" -#: ../../CHANGES.rst:532 74a0312b6fff499fa609d0adbe73dfac +#: ../../CHANGES.rst:533 fb503d354a2d4c92b75a9a6a603bb5f4 msgid "[0.0.20] - 2023-01-28" msgstr "" -#: ../../CHANGES.rst:537 c443970df56e4203b8ee3fd9e4fa2395 +#: ../../CHANGES.rst:538 364e4a2dfd8148c0b93b75d8ff1c4214 msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "" -#: ../../CHANGES.rst:538 9e42a95e59a74c5584d1144c249a57c1 +#: ../../CHANGES.rst:539 39a35892e6494270a65a235562211e53 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "" -#: ../../CHANGES.rst:539 e06855259b6f463897acd0f8a23cd05e +#: ../../CHANGES.rst:540 b47b044c9d814ea98df1d057bdef5a19 msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:540 96cb7430946248108d8c97973a4799d5 +#: ../../CHANGES.rst:541 a48c5424848f4396a6300f38b5471daf msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:541 5b5784d9aedb4949bac1591395fc7eb9 +#: ../../CHANGES.rst:542 7746a18d023c460c8b64b83eeb4e1895 msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:546 e88b90b5e0eb418f99ea2839c1e79943 +#: ../../CHANGES.rst:547 7e1217800b654fc8adc10eeb952cc2f5 msgid "Fix typos and grammar errors. :pr:`84`" msgstr "" -#: ../../CHANGES.rst:547 d333115d646f4ccf9a5bb2dc4d23eba0 +#: ../../CHANGES.rst:548 abda017241404950b48f8efac9fdc9c9 msgid "Fix wording and punctuations. :pr:`86`" msgstr "" -#: ../../CHANGES.rst:548 cfc153afa2ec4bee9c2dd589a234716c +#: ../../CHANGES.rst:549 10e5ef2bbd284e31b4eda7f81f7bc477 msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "" -#: ../../CHANGES.rst:549 a2dc7b3677d040c7a43bde721f766029 +#: ../../CHANGES.rst:550 4e7702ae17ee456992ea48cd8a37e1fc msgid "Automatically trims the HTML translated strings. :pr:`91`" msgstr "" -#: ../../CHANGES.rst:550 9a91064adb7f414fab73518fbc77b01d +#: ../../CHANGES.rst:551 ce0f54018448492c983b83f9f687ef82 msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" msgstr "" -#: ../../CHANGES.rst:553 d7a2cda6d8e24cc484f13ee4df40c1ea +#: ../../CHANGES.rst:554 c237ea1f9aac4ec2b1c843d7ab9ab218 msgid "[0.0.19] - 2023-01-14" msgstr "" -#: ../../CHANGES.rst:558 f7c94b5e7545458e8375ef8a8e3dc21c +#: ../../CHANGES.rst:559 14c643ff842042b5a51f46661b7b8681 msgid "" "Ensures the token `expires_in` claim and the `access_token` `exp` claim have " "the same value. :pr:`83`" msgstr "" -#: ../../CHANGES.rst:562 9291df232e4b4a7eb97fb87504f9b8d4 +#: ../../CHANGES.rst:563 21e042a3e48f41048409e27017a970b9 msgid "[0.0.18] - 2022-12-28" msgstr "" -#: ../../CHANGES.rst:567 c896b9996ab24cfeb217e9ebfdbed090 +#: ../../CHANGES.rst:568 c4b8dee13cf54cc9b3a09610a6b384a3 msgid "" "OIDC end_session was not returning the ``state`` parameter in the " "``post_logout_redirect_uri``. :pr:`82`" msgstr "" -#: ../../CHANGES.rst:571 2fa2e9a70b8d4ab4bed4d7f0d8d68f37 +#: ../../CHANGES.rst:572 353f49a6db7247d989368befd4c90822 msgid "[0.0.17] - 2022-12-26" msgstr "" -#: ../../CHANGES.rst:576 cff81f4ef5254cfdb1e6ba76c2c3b9f6 +#: ../../CHANGES.rst:577 ab608e9bb5e149e39c0c59c3be3dbf66 msgid "Fixed group deletion button. :pr:`80`" msgstr "" -#: ../../CHANGES.rst:577 552d92ac7c364f198201b60a3abebae2 +#: ../../CHANGES.rst:578 25c9cf71a4b84a2d9cd0f78b741c0b6f msgid "Fixed post requests in oidc clients views. :pr:`81`" msgstr "" -#: ../../CHANGES.rst:580 f7c78b950b184117855277070cb4e548 +#: ../../CHANGES.rst:581 4149b3b16d764ab7905fc817ba705009 msgid "[0.0.16] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:585 3e522208e81740fba479a43b017311fd +#: ../../CHANGES.rst:586 4f7b050ada524ca99110de2af98ef375 msgid "Fixed LDAP operational attributes handling." msgstr "" -#: ../../CHANGES.rst:588 53e83abb15b24cc0a3d589011cf7c2a3 +#: ../../CHANGES.rst:589 eb6d98c6f1954de58a40b1a7a8bc10eb msgid "[0.0.15] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:593 7194a505926740e3b52b81708d2818de +#: ../../CHANGES.rst:594 a0e5a6ff923246d68231d5e1f7356f76 msgid "User can chose their display name. :pr:`77`" msgstr "" -#: ../../CHANGES.rst:594 5c5a59a03bd5497aa7474ae59e88f6bf +#: ../../CHANGES.rst:595 44c07c21854a42fc885ae1fcd1a6a201 msgid "Bumped to Authlib 1.2. :pr:`78`" msgstr "" -#: ../../CHANGES.rst:595 0a3d037fae66464b8c2dfeea28dd3eaf +#: ../../CHANGES.rst:596 1b360e7ce02f411b9834514fbc1b00c4 msgid "" "Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration " "Management Protocol. :pr:`79`" msgstr "" -#: ../../CHANGES.rst:597 0670727ea1074acf968c49e71dc4062b +#: ../../CHANGES.rst:598 33d751e32dcd4a13adce2196a729447c msgid "" "Add the ``nonce`` parameter to the ``claims_supported`` server metadata list." msgstr "" -#: ../../CHANGES.rst:600 eb86b7335b7b4971812f25c9a2d37d1e +#: ../../CHANGES.rst:601 dba04a29e3a14c5fb7e9aa2a1a549a34 msgid "[0.0.14] - 2022-11-29" msgstr "" -#: ../../CHANGES.rst:604 9903a64c05994256813debf83e9a6b21 +#: ../../CHANGES.rst:605 8cd0feacd2824b0b87a841aa5d4ee1ba msgid "Fixed translation catalogs packaging." msgstr "" -#: ../../CHANGES.rst:607 eb1e508e7d2c46bdb471cffecbe4d897 +#: ../../CHANGES.rst:608 b60ffadb24184fa2a813cf0c67a816a0 msgid "[0.0.13] - 2022-11-21" msgstr "" -#: ../../CHANGES.rst:612 6e71d21752234824bc42897b8a434bb3 +#: ../../CHANGES.rst:613 9f23aca3972f48e9bc8d9cf2c760257b msgid "" "Fixed a bug on the contacts field in the admin client form following the " "LDAP schema update of 0.0.12." msgstr "" -#: ../../CHANGES.rst:614 374bd3f105af42bc8ea5c0de35e7437f +#: ../../CHANGES.rst:615 6c68ccda597a42df9148cfef906797ae msgid "" "Fixed a bug happening during RP initiated logout on clients without " "`post_logout_redirect_uri` defined." msgstr "" -#: ../../CHANGES.rst:616 6244294cde9d429dbab852b0f7721160 +#: ../../CHANGES.rst:617 ac6c8083aa374040984d0350fa2fbc36 msgid "Gitlab CI fix. :pr:`64`" msgstr "" -#: ../../CHANGES.rst:617 8dc7de6abbd447f4a78272f33cbcb6cf +#: ../../CHANGES.rst:618 a747a08976904f3fb6bc3381b8c94e61 msgid "" "Fixed `client_secret` display on the client administration page. :pr:`65`" msgstr "" -#: ../../CHANGES.rst:618 be276c6c0aed433987b562fa51a9af06 +#: ../../CHANGES.rst:619 6a64b2d613c14ae9b7973dad5c7c925d msgid "Fixed non-square logo CSS. :pr:`67`" msgstr "" -#: ../../CHANGES.rst:619 45c4b643c08f4e98b8eb1994cca78051 +#: ../../CHANGES.rst:620 29182f0e7f1248e1a1c917b6ae0dfd01 msgid "Fixed schema path on installation. :pr:`68`" msgstr "" -#: ../../CHANGES.rst:620 490ff7e15c244e1c80522169f52be22c +#: ../../CHANGES.rst:621 bb240d19b70243efb891b21b8a241bc2 msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "" -#: ../../CHANGES.rst:621 13d139a4ca6b420eb0780952acd8582c +#: ../../CHANGES.rst:622 7f9a0251d66846479a85943aa1fbe036 msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" -#: ../../CHANGES.rst:626 f863beea190c4605afc13c35d7828c7e +#: ../../CHANGES.rst:627 03fac1bbdf3342018f4eb1b6efa8b465 msgid "Python 3.11 support. :pr:`61`" msgstr "" -#: ../../CHANGES.rst:627 dfa820f752f64485950bd9f2f4f2f798 +#: ../../CHANGES.rst:628 ba0b5e607d0a40e29cdcdc1a6cc98147 msgid "" "``apparmor`` slapd configuration instructions in the documentation page for " "contributions. :pr:`66`" msgstr "" -#: ../../CHANGES.rst:628 33f4b497e723467fb7cca94de105b331 +#: ../../CHANGES.rst:629 235a8b4a7ac74cc089299db6c43f5a94 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "" -#: ../../CHANGES.rst:633 80931cb05ba54eb0bdd13af0e69ae5c4 +#: ../../CHANGES.rst:634 b8515bd5812547b9b6408e07754188bf msgid "" "Replaced the use of the deprecated `FLASK_ENV` environment variable by " "`FLASK_DEBUG`." msgstr "" -#: ../../CHANGES.rst:635 74c0ecca84cb4195b047360a2a12b281 +#: ../../CHANGES.rst:636 722ab05a3e8240b3a984e91cbcb85f2c 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 "" -#: ../../CHANGES.rst:638 b56f59b2dd124c91a6268830cf4ddecc +#: ../../CHANGES.rst:639 a79d0a5fc950458f9ea40f5fa340ae2d msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" msgstr "" -#: ../../CHANGES.rst:639 d701256eb4764f81827acd7b0a0dbda3 +#: ../../CHANGES.rst:640 f5c1547a0084442eba537cccef2a3181 msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" msgstr "" -#: ../../CHANGES.rst:642 45607852e443428199051f1ecba9ba24 +#: ../../CHANGES.rst:643 c9903f9704254bd8856c6fb23a3f7f34 msgid "[0.0.12] - 2022-10-24" msgstr "" -#: ../../CHANGES.rst:647 9997d515babd44b4841ef0218885f1f1 +#: ../../CHANGES.rst:648 713bdc2d9dee45d0b80eead40194b1f7 msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "" -#: ../../CHANGES.rst:648 509a601f77664756bc01064f20359cf6 +#: ../../CHANGES.rst:649 cc2f977715cb4c8ba51d4d34f6a4151f msgid "Bumped to FomanticUI 2.9.0." msgstr "" -#: ../../CHANGES.rst:649 2cfcbdba2e9541dbab610bc724a2683a +#: ../../CHANGES.rst:650 a41e569505ed46e8a30eabb1605a9f4e msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" -#: ../../CHANGES.rst:652 4acb242ffb5440d1a468e2d3c3856fe8 +#: ../../CHANGES.rst:653 40e16cae3052481c9a967a80643e51dc msgid "[0.0.11] - 2022-08-11" msgstr "" -#: ../../CHANGES.rst:657 0c4bd2691ba9453b88a686a22ede18ef +#: ../../CHANGES.rst:658 ac2a36a292ee496ba78a96711e33b778 msgid "Default theme has a dark variant. :pr:`57`" msgstr "" -#: ../../CHANGES.rst:662 d3cabac68def4f77a693a6159bf2f5c0 +#: ../../CHANGES.rst:663 c4d05a11686d406bba007ff8d333de4d msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "" -#: ../../CHANGES.rst:665 735459f4aeea42c6b0f7be4a2b06802f +#: ../../CHANGES.rst:666 1d3f0b2e79a94cf787d645b8898bce4a msgid "[0.0.10] - 2022-07-07" msgstr "" -#: ../../CHANGES.rst:670 f9dfd87d0fa145579e2297b27b61a11b +#: ../../CHANGES.rst:671 eaf79a2a1e6f4b1e9c3b3823e5dda85b msgid "Online demo. :pr:`55`" msgstr "" -#: ../../CHANGES.rst:671 5e5eef7b53ce470ab0a0137617552a9c +#: ../../CHANGES.rst:672 0d80f6e630d049c9ad813e945376ab83 msgid "" "The consent page was displaying scopes not supported by clients. :pr:`56`" msgstr "" -#: ../../CHANGES.rst:672 f7b8675a05b64bafb3efbbad603537ce +#: ../../CHANGES.rst:673 559c5036f54d4cacab704fb3cdf57958 msgid "Fixed end session when user are already disconnected." msgstr "" -#: ../../CHANGES.rst:675 a14c8084a27d463f82c1573d946a6676 +#: ../../CHANGES.rst:676 5395b02e05a04ce19c8d9cf8c0d54845 msgid "[0.0.9] - 2022-06-05" msgstr "" -#: ../../CHANGES.rst:680 d04e2396209641cc84fa39d8bb397eaa +#: ../../CHANGES.rst:681 d6b2f45bfea548cebbe625ae282f95c0 msgid "" "``DISABLE_PASSWORD_RESET`` configuration option to disable password " "recovery. :pr:`46`" msgstr "" -#: ../../CHANGES.rst:681 01acc147a456445eb3858de7b0586dca +#: ../../CHANGES.rst:682 216697ca6fc046a28864aa8152639a7c msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" msgstr "" -#: ../../CHANGES.rst:682 dafb92303cb147909db73fdc619f1267 +#: ../../CHANGES.rst:683 ea4420bc7f1c4c568d8da8657deddb66 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "" -#: ../../CHANGES.rst:687 f672b1443aa9498994204b20952103e4 +#: ../../CHANGES.rst:688 72b36fc3a5e74417b5fdcb5a23be8c12 msgid "Bumped to Authlib 1. :pr:`48`" msgstr "" -#: ../../CHANGES.rst:688 18c1456a82f748cd9ee0d6abcb40801f +#: ../../CHANGES.rst:689 4fbf3c55b45a4a119e339bd126960d20 msgid "Various documentation improvements. :pr:`50`" msgstr "" -#: ../../CHANGES.rst:689 77c7a3b3242647718a3a94a1fc4d05a1 +#: ../../CHANGES.rst:690 45feed1105504c609b5df975797e4194 msgid "Use poetry instead of setuptools as project management tool. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:690 3b65181a80b64d0d8a474a5e643d3f80 +#: ../../CHANGES.rst:691 c4542cdb5f7c4d58b07b4b0a90cb302d msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`" msgstr "" -#: ../../CHANGES.rst:694 35eef6ab06b940e8ad49bf31b7620404 +#: ../../CHANGES.rst:695 b327af2d08cb437e9b4751818cf8a8e2 msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "" -#: ../../CHANGES.rst:695 2792732f7d154df2b11a35b13114939b +#: ../../CHANGES.rst:696 b000da6a9373445dad688a3b780a6aa0 msgid "" "Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`" msgstr "" -#: ../../CHANGES.rst:698 8766634316d146ab8929259434391f34 +#: ../../CHANGES.rst:699 b2b2047443544b74a71bc79ff8c5f47b msgid "[0.0.8] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:703 f053b2fe7153473a81cb24bfc2b90c7d +#: ../../CHANGES.rst:704 375d29aba6424d43b859b8c3edfa80ba msgid "Fixed dependencies." msgstr "" -#: ../../CHANGES.rst:706 6fe1289ea759485b9c3c7658461a409d +#: ../../CHANGES.rst:707 aeb08878a74b4f47b6d37baacf675b15 msgid "[0.0.7] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:711 f40f5e320ea4412fadc8f1bc1d99198c +#: ../../CHANGES.rst:712 34c20276bd7c45bcb792f22355e4927a msgid "" "Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:714 ac9b3059b303486a9b31536f1726d873 +#: ../../CHANGES.rst:715 0976abec0d0b46a3ae20e83d110393ec msgid "[0.0.6] - 2022-03-08" msgstr "" -#: ../../CHANGES.rst:719 357a41c66f054b9b830d9ae20551690d +#: ../../CHANGES.rst:720 d963ca446eb94c6e9aeb75012abb1cfd msgid "Access token are JWT. :pr:`38`" msgstr "" -#: ../../CHANGES.rst:724 20b619f456934ab09712d95d37ef12cd +#: ../../CHANGES.rst:725 02ca5edc4d13450db7f18d59d45864bf msgid "Default groups on invitations. :pr:`41`" msgstr "" -#: ../../CHANGES.rst:725 74f8d8568cd1405bbef739de7b92f380 +#: ../../CHANGES.rst:726 5891d198061a448c9ba57ffdbc6f801d msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`" msgstr "" -#: ../../CHANGES.rst:728 936cdbdb780241beb677c1a3c5d21735 +#: ../../CHANGES.rst:729 c3272c14158a40f59a6b0f77af890f33 msgid "[0.0.5] - 2022-02-17" msgstr "" -#: ../../CHANGES.rst:733 b49925c79428413ca8c31eff4f42a588 +#: ../../CHANGES.rst:734 406e2245d9dc4d679bdcbd6b5728861e msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "" -#: ../../CHANGES.rst:738 21e3bd1145ce480ea8a82394722cef34 +#: ../../CHANGES.rst:739 a9f0c61002d0458eb30d4affda6e47c1 msgid "Admin menu dropdown display. :pr:`39`" msgstr "" -#: ../../CHANGES.rst:739 b50bd877e6fa4055a450f65d4e0e6951 +#: ../../CHANGES.rst:740 fe303a61e23a434a890964802224e16a msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`" msgstr "" -#: ../../CHANGES.rst:742 93523c049fd2438b9f8dbb942b657b7c +#: ../../CHANGES.rst:743 5bd8b178d1d5466e844942b7afed166e msgid "[0.0.4] - 2022-02-16" msgstr "" -#: ../../CHANGES.rst:747 9cc5e4c0be3e43f98a84d076d254a7a8 +#: ../../CHANGES.rst:748 649efb86b8b2433589e7bbbdd8b5cd1e msgid "Client pre-authorization. :pr:`11`" msgstr "" -#: ../../CHANGES.rst:748 b1444e5514e3495f8f05b00bfb31e54b +#: ../../CHANGES.rst:749 6e7050395d194611ad2c085e64f383a2 msgid "LDAP permissions check with the check command. :pr:`12`" msgstr "" -#: ../../CHANGES.rst:749 81badbb21dfe4dd0bd990037947c24cf +#: ../../CHANGES.rst:750 5ae674761b1f4b2ea7718a8d8f227016 msgid "" "Update consents when a scope required is larger than the scope of an already " "given consent. :pr:`13`" msgstr "" -#: ../../CHANGES.rst:751 5f6092f6103d401e9fe4554e04ad12cb +#: ../../CHANGES.rst:752 5fb12e8bee6440d5912e9ebd8921a6e3 msgid "Theme customization. :pr:`15`" msgstr "" -#: ../../CHANGES.rst:752 7e99d3a9c9134144a8e18989e6d0d633 +#: ../../CHANGES.rst:753 c2ebd08df453407f97b9eebd16b55149 msgid "Logging configuration. :pr:`16`" msgstr "" -#: ../../CHANGES.rst:753 abd6618054b443efbb5101e9c32f0c90 +#: ../../CHANGES.rst:754 06ac3fd9e9474c87a1d5dce79d49f547 msgid "Installation command. :pr:`17`" msgstr "" -#: ../../CHANGES.rst:754 18c69372e28c42c4b0ac0cae51fcd8aa +#: ../../CHANGES.rst:755 5b18c8b637654faa84da8cf06f428780 msgid "Invitation links. :pr:`18`" msgstr "" -#: ../../CHANGES.rst:755 2e35dc7cf246485c97650451d1f41d93 +#: ../../CHANGES.rst:756 13e0a85eb2b7475181bdd35f25eecee6 msgid "Advanced permissions. :pr:`20`" msgstr "" -#: ../../CHANGES.rst:756 ef3b8ab7e89448089a9d09363832c7cc +#: ../../CHANGES.rst:757 2d166176352d463282ef0c831cba992c msgid "An option to not use OIDC. :pr:`23`" msgstr "" -#: ../../CHANGES.rst:757 4d5d5581283a4eaabab00c6df18077a0 +#: ../../CHANGES.rst:758 3b87847e50664f6196aa406788838dc7 msgid "Disable some features when no SMTP server is configured. :pr:`24`" msgstr "" -#: ../../CHANGES.rst:758 a54b117ff68e47eabb66aa0a741790b1 +#: ../../CHANGES.rst:759 de8d6a74115549b8adc25882f14e9588 msgid "" "Login placeholder dynamically generated according to the configuration. :pr:" "`25`" msgstr "" -#: ../../CHANGES.rst:759 8593aca44439457296e5591823f56739 +#: ../../CHANGES.rst:760 c5919e02f35e45469b725fd79aade908 msgid "Added an option to tune object IDs. :pr:`26`" msgstr "" -#: ../../CHANGES.rst:760 548d5d09a1da4104aed49324dd3d96b6 +#: ../../CHANGES.rst:761 607e9f8c23b54e8c998700ff4416eaec msgid "Avatar support. :pr:`27`" msgstr "" -#: ../../CHANGES.rst:761 e6275bae918547beab8caabaf64f57db +#: ../../CHANGES.rst:762 c279a511c9b141568ede28b7c0afa583 msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "" -#: ../../CHANGES.rst:762 82bbcaaa7973438696de021fbff14354 +#: ../../CHANGES.rst:763 08fa58159ca6437e8f1beca79627fa27 msgid "UI improvements. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:763 70cd1dd3d81d4288b1c6bca674492944 +#: ../../CHANGES.rst:764 2a2b659fe7154b799ce44fafb902fd57 msgid "Invitation links expiration. :pr:`30`" msgstr "" -#: ../../CHANGES.rst:764 af865fef102c44bc801e8aec157c2835 +#: ../../CHANGES.rst:765 ce7aa46cc889408aa52bbb62f76c92b6 msgid "Invitees can choose their IDs. :pr:`31`" msgstr "" -#: ../../CHANGES.rst:765 d194b87cfbd94dd398f1c58bec6e4c37 +#: ../../CHANGES.rst:766 6bdec9f52f5044e698c2bf619c587280 msgid "LDAP backend refactoring. :pr:`35`" msgstr "" -#: ../../CHANGES.rst:770 2409763cd25243c9a80678c470fa336d +#: ../../CHANGES.rst:771 e819e93e00234beea6d9820e82fde531 msgid "Fixed ghost members in a group. :pr:`14`" msgstr "" -#: ../../CHANGES.rst:771 ae04a8fa1896467792d8aaaf161fed29 +#: ../../CHANGES.rst:772 10dd9d261d284523a84fd5c59050af24 msgid "Fixed email sender names. :pr:`19`" msgstr "" -#: ../../CHANGES.rst:772 596c5956ebc6442984251ca5c558834e +#: ../../CHANGES.rst:773 8b309c5389bf44e8ac69e53c2765b585 msgid "Fixed filter being not escaped. :pr:`21`" msgstr "" -#: ../../CHANGES.rst:773 bbf97ea202404efd8708cfbed4bbfe74 +#: ../../CHANGES.rst:774 cd93af35f9cc4576b1659289218ec809 msgid "Demo script good practices. :pr:`32`" msgstr "" -#: ../../CHANGES.rst:774 8d176b7d4da5419d8768430eeb01036c +#: ../../CHANGES.rst:775 9e92fa5ce3cd43848cc7c809c709180c msgid "Binary path for Debian. :pr:`33`" msgstr "" -#: ../../CHANGES.rst:775 004ecd0e934049ef823bbf0d63f75c14 +#: ../../CHANGES.rst:776 7d0dadcab0a644aba779030c25e2fc88 msgid "" "Last name was not mandatory in the forms while this was mandatory in the " "LDAP server. :pr:`34`" msgstr "" -#: ../../CHANGES.rst:777 c6de3dbeeb5f40ff85c60e062271bfdb +#: ../../CHANGES.rst:778 4526606a32614a238d9ba69b3f3c311d msgid "Spelling typos. :pr:`36`" msgstr "" -#: ../../CHANGES.rst:780 d49aed2f00e346cc8adaa26aa54f470a +#: ../../CHANGES.rst:781 c92de561587746169e06e8a51bd2efcd msgid "[0.0.3] - 2021-10-13" msgstr "" -#: ../../CHANGES.rst:785 0b32a6319c044bba95b3a00f245c6956 +#: ../../CHANGES.rst:786 b4e4578702394d8db53727dca04e2eeb msgid "Two-steps sign-in. :issue:`49`" msgstr "" -#: ../../CHANGES.rst:786 4cf53569893c4b0ba8eab17b44a4a15b +#: ../../CHANGES.rst:787 f1f267f1648f4866b3b003c271acb344 msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "" -#: ../../CHANGES.rst:787 2956507b8bba47839fef6f9a63d5321a +#: ../../CHANGES.rst:788 51257e276adb454f9bd203167e591489 msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "" -#: ../../CHANGES.rst:788 0415c157cb414913b3d7748afba41cda +#: ../../CHANGES.rst:789 5684d9f7c259429290886a77f263ce3f msgid "Groups management. :issue:`12` :pr:`6`" msgstr "" -#: ../../CHANGES.rst:793 e08a9eafc49f45cbb361ed3bd89d4649 +#: ../../CHANGES.rst:794 c439c2e96fa14377bc990f5fc2cd65bc msgid "Introspection access bugfix. :issue:`63` :pr:`10`" msgstr "" -#: ../../CHANGES.rst:794 48e63a4a411d4aab8259f74b1d257a37 +#: ../../CHANGES.rst:795 0c8a65056b0c4684984d84f76362f380 msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" -#: ../../CHANGES.rst:797 2a9047b937be481f811eb403d6bf7fd9 +#: ../../CHANGES.rst:798 664b613f4fd74b97a6caa749d9c5fd58 msgid "[0.0.2] - 2021-01-06" msgstr "" -#: ../../CHANGES.rst:802 9f74458dacff435998774594822a1506 +#: ../../CHANGES.rst:803 2a77b05db06141a9918f93152e999c25 msgid "Login page is responsive. :issue:`1`" msgstr "" -#: ../../CHANGES.rst:803 8a87683d8d524cd482264473256b3777 +#: ../../CHANGES.rst:804 6d5de8101cf648e3b546489ba36f58aa msgid "Adapt mobile keyboards to login page fields. :issue:`2`" msgstr "" -#: ../../CHANGES.rst:804 c777083179094cd994619adcfc8499d9 +#: ../../CHANGES.rst:805 b945b81cdb88450c92efe96b2baa1329 msgid "Password recovery interface. :issue:`3`" msgstr "" -#: ../../CHANGES.rst:805 c7393dc1bb6a4290bfdb2d59a3fef0c9 +#: ../../CHANGES.rst:806 89545855a2d04788922fe2566668d450 msgid "User profile interface. :issue:`4`" msgstr "" -#: ../../CHANGES.rst:806 e874e0e97cae4310ba62553c3d31cd16 +#: ../../CHANGES.rst:807 909bce16a1e349f6b070d4b2fb7dc069 msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "" -#: ../../CHANGES.rst:807 27a300eabaaf4644989d134ccca22dd8 +#: ../../CHANGES.rst:808 f1cd27a5a0794001afd13fdacf6fc6c5 msgid "Command to remove old tokens. :issue:`17`" msgstr "" -#: ../../CHANGES.rst:808 8e168b1583984a71848678112365d1c7 +#: ../../CHANGES.rst:809 17fa5866a3994849b85361163b9ea131 msgid "Improved password recovery email. :issue:`14` :issue:`26`" msgstr "" -#: ../../CHANGES.rst:809 901de9a21dd94541b3c23946ada4cd88 +#: ../../CHANGES.rst:810 9565eb5071fa47ddae91f5f76af6b048 msgid "" "Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" msgstr "" -#: ../../CHANGES.rst:810 62c1e3da0a87437aaa529dcc936c7dbc +#: ../../CHANGES.rst:811 8386c50a80aa4b8ca9ce34942d659216 msgid "Improved consents page. :issue:`27`" msgstr "" -#: ../../CHANGES.rst:811 f816ffeb73244ae0b1171b8c156d1e12 +#: ../../CHANGES.rst:812 0aa2212e1af549f8bdce3c9588cd6109 msgid "Admin user page. :issue:`8`" msgstr "" -#: ../../CHANGES.rst:812 2241f2b45f1e426f99f68ccc516c6b60 +#: ../../CHANGES.rst:813 0c8c21373574440392345e305971d258 msgid "Project logo. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:813 dd802cef3e384fdc928fc43178ab119a +#: ../../CHANGES.rst:814 912385ce9ea24b4b81f77904ad670901 msgid "" "User account self-deletion can be enabled in the configuration with " "`SELF_DELETION`. :issue:`35`" msgstr "" -#: ../../CHANGES.rst:814 75d6d908a827424284ea63478783cbf9 +#: ../../CHANGES.rst:815 447289b003f64e72b8b0977842a73f9c msgid "Admins can impersonate users. :issue:`39`" msgstr "" -#: ../../CHANGES.rst:815 b4eee6e748f94ba9b6e62e2e7fd4d86b +#: ../../CHANGES.rst:816 ad67189130fd49868fcb0abfad1e7275 msgid "Forgotten page UX improvement. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:816 44489482b8d54ae78c70959758d6f825 +#: ../../CHANGES.rst:817 660c1528bbe0431aa50394306e761072 msgid "Admins can remove clients. :pr:`45`" msgstr "" -#: ../../CHANGES.rst:817 be6e5371ee2a48efa0d9d276e9caa9a0 +#: ../../CHANGES.rst:818 3aa25de74978491ab76de431e7819552 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 "" -#: ../../CHANGES.rst:819 b1df16b2411a440d8d2a0745c972f368 +#: ../../CHANGES.rst:820 44549258486845fab0456f113a04f98b msgid "Password initialization mail. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:824 ba317999584d46d7b5bfda36157bc111 +#: ../../CHANGES.rst:825 11f9843c7ed348d89ec776212da1f871 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "" -#: ../../CHANGES.rst:825 e0d773fd3f814a438321528df1c4d67d +#: ../../CHANGES.rst:826 115b5ed2ccf441d59dd25dc521fb148e msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "" -#: ../../CHANGES.rst:830 d7c5d0509cfe422ab95beb9c1929e413 +#: ../../CHANGES.rst:831 ce6a992d5aa3472aa464e0aae5e1dd58 msgid "'My tokens' page. :issue:`22`" msgstr "" -#: ../../CHANGES.rst:833 35ab727ebe564ff2a2aa3e28f9392f5b +#: ../../CHANGES.rst:834 5c71c7871c87474a9a6e956d46958569 msgid "[0.0.1] - 2020-10-21" msgstr "" -#: ../../CHANGES.rst:838 487e834d3b154f69991d042f97ce3734 +#: ../../CHANGES.rst:839 174e925430f14fad869e0c91923805af msgid "Initial release." msgstr "" -#: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3 +#: ../../CONTRIBUTING.rst:2 0990185d86db4ce8a07d51360d1322d3 msgid "Contributions" msgstr "" -#: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc +#: ../../CONTRIBUTING.rst:4 da4d8554175642ba94b4f7e339063077 msgid "Contributions are welcome!" msgstr "" -#: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d +#: ../../CONTRIBUTING.rst:6 7c2b65c2bab049f7ae36d441f0956ecd msgid "" "The repository is hosted at `gitlab.com/yaal/canaille `_." msgstr "" -#: ../../CONTRIBUTING.rst:9 880fd4b263fa4f5aa77f826cf6d7a13e +#: ../../CONTRIBUTING.rst:9 a673ec733c0a4064b2cd6cb76e454637 msgid "Discuss" msgstr "" -#: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c +#: ../../CONTRIBUTING.rst:11 1cb0899f872a4345aa339d9f3a6139a3 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 "" -#: ../../CONTRIBUTING.rst:16 032421a7ce0548e38943bb37b9e46f90 +#: ../../CONTRIBUTING.rst:16 393a353bc9ee457e876a227f79bddc75 msgid "Development environment" msgstr "" -#: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264 +#: ../../CONTRIBUTING.rst:18 7948bd5b6ee144f59136b49cfb7ee55f msgid "You can either run the demo locally or with Docker." msgstr "" -#: ../../CONTRIBUTING.rst:20 b918844970c545a3826d0b39a79cb08c +#: ../../CONTRIBUTING.rst:20 f119e4446ee4463d80ce3fe3e0588b06 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 "" -#: ../../CONTRIBUTING.rst:24 56f217cf35444c72b1bc1a1cb3ee9e53 +#: ../../CONTRIBUTING.rst:24 632e3a0e19ab4c97aea1bfdfd0b5c165 msgid "Initialize your development environment with:" msgstr "" -#: ../../CONTRIBUTING.rst:26 9cf0a292c2bb408fa660e14ab61f0e43 +#: ../../CONTRIBUTING.rst:26 507673718d174120a28e7afc5a110ec7 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 "" -#: ../../CONTRIBUTING.rst:27 8d29fc6ad3bd43c5b232963f5137c91a +#: ../../CONTRIBUTING.rst:27 942fe3cb54354168a07c3862241e378c 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 "" -#: ../../CONTRIBUTING.rst:28 928d535d56314259b20055eea3a4ceb4 +#: ../../CONTRIBUTING.rst:28 18e74ae611944f71b212e9072eb24b3e 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 "" -#: ../../CONTRIBUTING.rst:29 56b8780399064aec89d3099841d1b017 +#: ../../CONTRIBUTING.rst:29 4a5010a9a38349dbb5af58ff13291b28 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 " @@ -1513,39 +1565,39 @@ msgid "" "available on your computer." msgstr "" -#: ../../CONTRIBUTING.rst:32 1a514a3605f243979b2d04e1a329368a +#: ../../CONTRIBUTING.rst:32 75f515626b4f4524b29f13d98acf40ad msgid "After having launched the demo you have access to several services:" msgstr "" -#: ../../CONTRIBUTING.rst:34 bbde54dc79ba4241bd97323b5152b50b +#: ../../CONTRIBUTING.rst:34 7eb94a5ef2ee4a4db852ca0988e51945 msgid "A canaille server at `localhost:5000 `_" msgstr "" -#: ../../CONTRIBUTING.rst:35 d028b9cbae714b2d945ba4d70a75fb99 +#: ../../CONTRIBUTING.rst:35 ad12ff8db3d64a02b528e93c352ebdf1 msgid "A dummy client at `localhost:5001 `_" msgstr "" -#: ../../CONTRIBUTING.rst:36 dbd0340fc974432798237b9b3efe01ea +#: ../../CONTRIBUTING.rst:36 2cd9a0e0ac94408289a0d31a15112fd0 msgid "Another dummy client at `localhost:5002 `_" msgstr "" -#: ../../CONTRIBUTING.rst:38 9ff28ddd679b42f4a5bf288242e8c827 +#: ../../CONTRIBUTING.rst:38 e3696d8d026b4c0391112ce8c19e90b1 msgid "The canaille server has some default users:" msgstr "" -#: ../../CONTRIBUTING.rst:40 324e9f4f1d744fa49a0c3e7fe60cf46b +#: ../../CONTRIBUTING.rst:40 8f956c9e5db842f6a5e28e81353915f9 msgid "A regular user which login and password are **user**;" msgstr "" -#: ../../CONTRIBUTING.rst:41 30a3f2679a4b456791471ac6d4c15e2b +#: ../../CONTRIBUTING.rst:41 b2efc68d24d34fa39590ef3064ce84b0 msgid "A moderator user which login and password are **moderator**;" msgstr "" -#: ../../CONTRIBUTING.rst:42 d5e4f771a0854678af55e11ae4c8fc3d +#: ../../CONTRIBUTING.rst:42 d38003f0a5674760918da590be8b7c60 msgid "An admin user which admin and password are **admin**;" msgstr "" -#: ../../CONTRIBUTING.rst:43 325a060f0844402d80a7267a46291010 +#: ../../CONTRIBUTING.rst:43 9cf3b6e86c78488fbadac5d7f7da7081 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 " @@ -1553,31 +1605,31 @@ msgid "" msgstr "" #: ../development/specifications.rst:106 ../../CONTRIBUTING.rst:48 -#: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da +#: 381b89217b0348debccf9ea7d3e494b8 24da1fbbb1214b0aad0e8cfd91ebad9f msgid "Backends" msgstr "" -#: ../../CONTRIBUTING.rst:50 12c4afcb316c448797ed9784ef9fbaa1 +#: ../../CONTRIBUTING.rst:50 a456ad4a727440eea70c2267c7dd5a8a msgid "Canaille comes with several backends:" msgstr "" -#: ../../CONTRIBUTING.rst:52 853d2b906b80415db33c707e29640f4c +#: ../../CONTRIBUTING.rst:52 d658db4aa8734153b436094cd3c588b2 msgid "a lightweight test purpose `memory` backend" msgstr "" -#: ../../CONTRIBUTING.rst:53 b280dce615cb48ec8456abf65fec4a9e +#: ../../CONTRIBUTING.rst:53 d8b76bacd56f44168825850444a6b29e msgid "a `sql` backend, based on sqlalchemy" msgstr "" -#: ../../CONTRIBUTING.rst:54 ad6d07459c274a9e8282e290875d5bfb +#: ../../CONTRIBUTING.rst:54 0b6fbdf76a3748059ed8f25be5597e12 msgid "a production-ready `LDAP` backend" msgstr "" -#: ../../CONTRIBUTING.rst:57 7db1494e281b4b89949e18e1ece1cb6c +#: ../../CONTRIBUTING.rst:57 a131ee5f73f3462281ec7b8ce52c4ff2 msgid "Docker environment" msgstr "" -#: ../../CONTRIBUTING.rst:59 c8e61bddd24e4af0ab8ee2bd2709652d +#: ../../CONTRIBUTING.rst:59 934a3551784041c2a96d1040950cf880 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, " @@ -1587,118 +1639,118 @@ msgid "" "means `localhost`." msgstr "" -#: ../../CONTRIBUTING.rst:64 0e3e6469d25f43998fce20bcb1291b86 +#: ../../CONTRIBUTING.rst:64 669dec4ddb9844a097afd2f606725df1 msgid "To do that, you can add the following line to your `/etc/hosts`:" msgstr "" -#: ../../CONTRIBUTING.rst:70 c0dce613d6384dd18a1d6abce742bf55 +#: ../../CONTRIBUTING.rst:70 9bdeeebb82004fabb71ccd006be5a152 msgid "To launch containers, use:" msgstr "" #: ../development/specifications.rst:108 ../tutorial/databases.rst:16 #: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:108 -#: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012 -#: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9 +#: e147d723475a42de95ae6b307ec2c1b3 129d25dfcdd144ccb4be37e7474aed23 +#: e6e3a6c57dbd41f4bbb3846087970020 cdf80b9bdb0a4d59b519e6d6ffd71ae3 msgid "SQL" msgstr "" #: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:109 -#: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95 +#: 24ef4199122140dd8f6df3109ee6544e 19b6a09e2468439b82b110ec4c051ae6 msgid "" "With the SQL backend, the demo instance will load and save data in a local " "sqlite database." msgstr "" #: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:111 -#: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d +#: 9bc9fa8549854c99ad7f739ec5317a99 573978fa6ecb432fa0d54cc76e8f2861 msgid "Run the demo instance with the SQL backend" msgstr "" #: ../tutorial/databases.rst:8 ../../CONTRIBUTING.rst:83 -#: ../../CONTRIBUTING.rst:117 e5f82f8945b747ac81b31a20cc241e5d -#: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8 +#: ../../CONTRIBUTING.rst:117 c9ac76f0f24b441aa9632911fb19ff7e +#: d578daebea3f4c2cb6fe0d4866bcb690 b22dc1aeb5f0489c9a2228869072255b msgid "Memory" msgstr "" #: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:118 -#: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc +#: 8d19234a6dd74306bd775fc44ac43c63 9be657a56d1c460b9ce184d59e8b1c5f msgid "With the memory backend, all data is lost when Canaille stops." msgstr "" #: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:120 -#: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38 +#: 8f594f36a26342d8a6c1b8f53ab7dcd2 2c26d8e08f034833b27c02831de86710 msgid "Run the demo instance with the memory backend" msgstr "" -#: ../development/specifications.rst:108 ../tutorial/databases.rst:32 +#: ../development/specifications.rst:108 ../tutorial/databases.rst:45 #: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:126 -#: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e -#: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65 +#: c135807ed63542f1ae515a60df0501ba 00ed3f79be9f4e7588e38a777da737ab +#: 5933c483337e4ebb9390a59a166e2a13 2c30cc73fa584d5886d6f04ed75f1b1d msgid "LDAP" msgstr "" #: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:127 -#: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569 +#: 83b3c6b4940141b885f051fb82b84125 054bfb478e684320a73b57569eec14df msgid "With the LDAP backend, all data is lost when Canaille stops." msgstr "" #: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:129 -#: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb +#: 6e2da183608c4e7bb87e38a2c66aa63b 73a67cd951644177bdccca3a08deb606 msgid "Run the demo instance with the LDAP backend" msgstr "" -#: ../../CONTRIBUTING.rst:105 9e2c9acef9184e34b00d62c97980467d +#: ../../CONTRIBUTING.rst:105 2fa57166974946a899931022ba5fad8a msgid "Local environment" msgstr "" -#: ../../CONTRIBUTING.rst:135 5fffaf4bff884b5a839078ad5a889fc9 +#: ../../CONTRIBUTING.rst:135 8283fb57ce51423a9b3541571cc4cd0b 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 "" -#: ../../CONTRIBUTING.rst:140 aa9aab912ff04dd68c3b59bf1e36575a +#: ../../CONTRIBUTING.rst:140 6e8c5a2f92e348ab9afedd54df75c46a 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 "" -#: ../../CONTRIBUTING.rst:150 3d21757ba34c4721af043c150330c2e4 +#: ../../CONTRIBUTING.rst:150 c78ca4223f9645a583ac47bd1aa5c146 msgid "Populate the database" msgstr "" -#: ../../CONTRIBUTING.rst:152 a412d39e98cf44f6b911566e1ebcdbde +#: ../../CONTRIBUTING.rst:152 bb0e31cb292b423fba42e70830997721 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 "" -#: ../../CONTRIBUTING.rst:163 cdf90f875bcc44d5b41197a7cdbb275c +#: ../../CONTRIBUTING.rst:163 cbb12aab253c455fa1b1754f2eb0729a msgid "" "Adapt to use either the `ldap` or the `sql` configuration file. Note that " "this will not work with the memory backend." msgstr "" -#: ../../CONTRIBUTING.rst:166 2db32f774df8429fa4c9e83d00616a96 +#: ../../CONTRIBUTING.rst:166 0e899d83156d4e029681d634b1dec436 msgid "Unit tests" msgstr "" -#: ../../CONTRIBUTING.rst:168 5d6a9b57b35d49c48e2b615f8128ebcc +#: ../../CONTRIBUTING.rst:168 39be72b7c6d54603abbca8de879267c5 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 "" -#: ../../CONTRIBUTING.rst:171 e1e6e475ff78404f930bb453f1f26e3b +#: ../../CONTRIBUTING.rst:171 45992e8a617143e6a2b805043155118a msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." msgstr "" -#: ../../CONTRIBUTING.rst:173 2cb85029b4274de388878da3d3285369 +#: ../../CONTRIBUTING.rst:173 8162f265527e4a42a0ab95ec14e769a4 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-" @@ -1706,11 +1758,11 @@ msgid "" "check the HTML coverage report in the newly created `htmlcov` directory." msgstr "" -#: ../../CONTRIBUTING.rst:178 4408d499056c480f86f450a781d2ca0d +#: ../../CONTRIBUTING.rst:178 775bdfa6e27e469383647d7d603659a1 msgid "Code style" msgstr "" -#: ../../CONTRIBUTING.rst:180 93e483f2a66a4d8f82feb8ca9a739818 +#: ../../CONTRIBUTING.rst:180 b309d56f31904c9da28ceb01fe67d6f9 msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " @@ -1719,61 +1771,61 @@ msgid "" "with ``uv run pre-commit install``." msgstr "" -#: ../../CONTRIBUTING.rst:186 0dca6207e6734ab487cb3fe72c3e90e8 +#: ../../CONTRIBUTING.rst:186 dbbdab0936124ac2a12af49411a84128 msgid "Front" msgstr "" -#: ../../CONTRIBUTING.rst:188 930e01d770324dc68f73095cd5456a8e +#: ../../CONTRIBUTING.rst:188 799d621279764c62af4239338d80db8a msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_." msgstr "" -#: ../../CONTRIBUTING.rst:191 fc0da8a2736e461dab5a7d242c1cfa9a +#: ../../CONTRIBUTING.rst:191 128898c5e69d49368cdbf572550dacca 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 "" -#: ../../CONTRIBUTING.rst:193 a13b055a65244362a025440451de998d +#: ../../CONTRIBUTING.rst:193 dc05fa959ec8437381264442b6a30974 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 "" -#: ../index.rst:71 ../../CONTRIBUTING.rst:198 e3ff6afa466e4e61aa4f677cd58d3ed2 -#: a08d8d5331494e7d93508eaf25f41a07 +#: ../index.rst:71 ../../CONTRIBUTING.rst:198 392f1081f6e94b6da5679a367a2e7a4a +#: 0f273ce3769347ce8015316671ac1b15 msgid "Documentation" msgstr "" -#: ../../CONTRIBUTING.rst:200 2e1fdcae75de46a6b50db7e4155758af +#: ../../CONTRIBUTING.rst:200 b5151aeda933407bb66f3ea0d6ba101e msgid "The documentation is generated when the tests run:" msgstr "" -#: ../../CONTRIBUTING.rst:206 94405109592b47c09c8726c305fa5edc +#: ../../CONTRIBUTING.rst:206 39f2fefbdf4343ccb8641e3dcc1549b4 msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" msgstr "" -#: ../../CONTRIBUTING.rst:212 fe4610d142474897ae4f97d321448fac +#: ../../CONTRIBUTING.rst:212 89531c0a7d17422684603832f8aeef47 msgid "The generated documentation is located at ``build/sphinx/html/en``." msgstr "" -#: ../../CONTRIBUTING.rst:215 bf09dd8ed31742bca2fa80175ae85bb3 +#: ../../CONTRIBUTING.rst:215 bb87f6e759f140baa631b9a44d008e97 msgid "Code translation" msgstr "" -#: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f +#: ../../canaille/translations/README.rst:1 c4bd0dcdf5b847958c1713690a062440 msgid "" "Translations are done with `Weblate `__." msgstr "" -#: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd +#: ../../canaille/translations/README.rst:3 04a9342ea51b4cceb41bf7505907566a msgid "" "The following commands are there as documentation, only the message " "extraction is needed for contributors. All the other steps are automatically " @@ -1781,34 +1833,38 @@ msgid "" msgstr "" #: readme.rst:6 ../../canaille/translations/README.rst:8 -#: ea5bd05b09984bcaa643efa7a1a7618c 33490a8ff4a3465fb8648393ff65eb75 +#: 84706a46430343e6aa358b28a46feff2 08d06911b6e54459881d14deaf9a7a80 +#: 33cedfb8b8624971bbe4cb2413fbdb15 msgid "Message extraction" msgstr "" #: readme.rst:8 ../../canaille/translations/README.rst:10 -#: 210e9ff98db74777830a5a1f4746df44 16b22e2bc3cf495bbef529f5732887e3 +#: 4ade1dc0d8cb420cb02eae9fd4fd3653 d8994cc54925437687864ded269ddc34 +#: 384b7d18414843f9adfa40c46f734da5 msgid "" "After you have edited translatable strings, you should extract the messages " "with:" msgstr "" #: readme.rst:15 ../../canaille/translations/README.rst:17 -#: 54ecd51acf494402964ae281c6cd639b 02fa7225075346f89ad702cba8aabdeb +#: 1e09dc8b659c479eb2f6f943786e423e 6ddd54ecd3f540b28fea415cea1199df +#: 8492e236ff844116b90640e12b246f67 msgid "Language addition" msgstr "" #: readme.rst:17 ../../canaille/translations/README.rst:19 -#: 5429b47768e2472ea597ed48140a5621 015d6a437f7e4d099c8cad60986c0b68 +#: 0720284c793641c5a85eecc25ba0d9b3 0aea2aff48bf4743b456f7a56cd41359 +#: 9aaae4da193146b4b4f41aa2bd467336 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 "" -#: ../../canaille/translations/README.rst:26 bdfbb4ef60c54b26abf457ba930b7fcf +#: ../../canaille/translations/README.rst:26 25ee62b065294ad5adf105b9d575587b msgid "Catalog update" msgstr "" -#: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25 +#: ../../canaille/translations/README.rst:28 20e76bc5528c40b4bdd89c629723e8c4 msgid "" "You can update the catalogs with the following command, however this should " "not be needed as Weblate automatically update language catalogs when it " @@ -1816,11 +1872,11 @@ msgid "" "pushes happen every 24h." msgstr "" -#: ../../canaille/translations/README.rst:36 f232cbfdd201463ab74fe71353c8e23b +#: ../../canaille/translations/README.rst:36 15327a715c38464fa9dfb969965c2ac1 msgid "Catalog compilation" msgstr "" -#: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6 +#: ../../canaille/translations/README.rst:38 4c95a49edb0740d0ad34d7eee9466334 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 " @@ -1828,492 +1884,492 @@ msgid "" "package:" msgstr "" -#: ../../CONTRIBUTING.rst:221 4ff341d941384c029ed9c0b49d1062f9 +#: ../../CONTRIBUTING.rst:221 da97f28b857241879092e1c0a45cc6d6 msgid "Documentation translation" msgstr "" -#: readme.rst:1 35fff9d115334ec6aa6a99ec5da8a27f -#: 7abe83f2eeb54b3f9f3d1a8542696765 +#: readme.rst:1 9776df929dbd40f59315d9dad326da0a +#: 127143cd0922422c941bd0880cb85699 msgid "" "Translations are done with `Weblate `__." msgstr "" -#: readme.rst:3 de92a131ecf44614963dd89770f593ae -#: 0ca00925251d48668c7673ddece41d66 +#: readme.rst:3 b1e092b9af914bbaa60034638b5feb44 +#: cb5ccfce511a4bff97a39b300396dfce msgid "" "The following commands are there as documentation, only the message " "extraction and the language addition is needed for contributors." msgstr "" -#: readme.rst:24 3d142fe9f633400ea029e949f1e869ee -#: 74cc2740b1584972aa3c0e672dff5f3e +#: readme.rst:24 9312e9d146484a30b47297cfe934dcb7 +#: f6ae3452c2de41c397aec993afaab244 msgid "Build the documentation in another language" msgstr "" -#: ../../CONTRIBUTING.rst:226 4b1dc3dae99f4c6fbbeec3e54be3e922 +#: ../../CONTRIBUTING.rst:226 588494c60125438a9a70645678f05ca3 msgid "Publish a new release" msgstr "" -#: ../../CONTRIBUTING.rst:228 975b37a07edc4a42bbef14c2ca80a34f +#: ../../CONTRIBUTING.rst:228 420e9e7fcb244f18b3db1d1b9c52d92c msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" msgstr "" -#: ../../CONTRIBUTING.rst:229 e9bd8386c6c64ef99aac12ee831f39d1 +#: ../../CONTRIBUTING.rst:229 00227bd468c34010a3883e4e0f90d8e3 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 "" -#: ../../CONTRIBUTING.rst:230 3e7d5493a8e44c1a9067010115678723 +#: ../../CONTRIBUTING.rst:230 72f3b000f5b1489384c00d6e266c63a8 msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" msgstr "" -#: ../../CONTRIBUTING.rst:231 fe7867ea9416424e81c518f77853958a +#: ../../CONTRIBUTING.rst:231 5bea104b168a477f9accf8d55549330e msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" msgstr "" -#: ../../CONTRIBUTING.rst:232 7d89adc1c3e6478ab9e8faa02f97bf03 +#: ../../CONTRIBUTING.rst:232 90f263cc1eeb4ef5a42f8809672f64ef msgid "Increase the version number in ``pyproject.toml``;" msgstr "" -#: ../../CONTRIBUTING.rst:233 a376131776cd4e469611fa3ad6749be9 +#: ../../CONTRIBUTING.rst:233 58fe93530d98448c82779271abb44629 msgid "Commit with ``git commit``;" msgstr "" -#: ../../CONTRIBUTING.rst:234 655fd489e5324dc5b6172d438a6b8e3e +#: ../../CONTRIBUTING.rst:234 ad1df1a61c3942368ec1313411547c13 msgid "Build with ``uv build``;" msgstr "" -#: ../../CONTRIBUTING.rst:235 79fc61b7c13647a285a918a0c126ea53 +#: ../../CONTRIBUTING.rst:235 0cfad1da05584638ab4bc386b666f5a3 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" msgstr "" -#: ../../CONTRIBUTING.rst:236 93540129ce0c440eba4da63ed3ddb769 +#: ../../CONTRIBUTING.rst:236 f6308d8a0b3f4db4bc7c7907d8a1f266 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 "" -#: ../../CONTRIBUTING.rst:237 8a73b31d1fe14fdda15e6c2dea0cafc9 +#: ../../CONTRIBUTING.rst:237 0e10ccf92af749d49e9bfea50fd82a50 msgid "Publish on production PyPI ``uv publish``;" msgstr "" -#: ../../CONTRIBUTING.rst:238 93131bb37ccc4207825449d393f92201 +#: ../../CONTRIBUTING.rst:238 fa1c23c9661d4fb8b0f5d291a64d49f7 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "" -#: ../../CONTRIBUTING.rst:239 a98a5168d5f949ec9e96f16d8ff8b6f5 +#: ../../CONTRIBUTING.rst:239 7a281f02d2a741c892e150979920d23b msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." msgstr "" #: ../development/index.rst:2 ../tutorial/theming.rst:41 -#: c0f14bad2988468fa0700bbd47fe1de0 294492704f9349cba94a11db140b19ab +#: 52e76c88219e4de19a2b82b2a2c1c4d8 1b6948f6a143409db5b73d81af367214 msgid "Development" msgstr "" -#: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911 +#: ../development/specifications.rst:2 b3876dc3555842a49a1c8e1eb079fbe1 msgid "Specifications" msgstr "" -#: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6 +#: ../development/specifications.rst:4 8ce7c58ef8634acb8f37bf04fde97d9c msgid "" "This page details which specifications are implemented in Canaille, and " "compares Canaille with other well-known identity providers." msgstr "" -#: ../development/specifications.rst:7 bfa87dc7f42445fb96172a2ce7643950 +#: ../development/specifications.rst:7 4c4e202076854f99b4d398d1e3719296 msgid "State of the specs in Canaille" msgstr "" -#: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c +#: ../development/specifications.rst:10 682849a438ce4c9eb771d18c1c3e21b4 msgid "OAuth2" msgstr "" -#: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e +#: ../development/specifications.rst:12 829d6454dfd14680b17fad372f8cca40 msgid "" "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" -#: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3 +#: ../development/specifications.rst:13 f115a6d1703c4250ab425bb030e48939 msgid "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" -#: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278 +#: ../development/specifications.rst:14 77024b74c51f45b984117084b8f7deb5 msgid "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" msgstr "" -#: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc +#: ../development/specifications.rst:15 9fdf59e113c6482f8db2451c5b2df549 msgid "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" msgstr "" -#: ../development/specifications.rst:16 0213796d176a4938a10c902cfb737a18 +#: ../development/specifications.rst:16 bdeb1dc9178d4e00a0377e2c22346350 msgid "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" msgstr "" -#: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a +#: ../development/specifications.rst:17 fe66b098739b46ceb8bc989246fc9067 msgid "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" msgstr "" -#: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d +#: ../development/specifications.rst:18 f084226dce6c46c1b6aa79e024bd4543 msgid "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" msgstr "" -#: ../development/specifications.rst:19 bc914d1d327d4ce6a638c5245c4cfcc3 +#: ../development/specifications.rst:19 ae8757b89e224f2d8348038e1924d795 msgid "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" msgstr "" -#: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d +#: ../development/specifications.rst:20 531dff6077d14c7aa880e7f823c72eff msgid "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" msgstr "" -#: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8 +#: ../development/specifications.rst:21 6b2fc87355914a08b0e0c9e4d795443c msgid "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" msgstr "" -#: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab +#: ../development/specifications.rst:22 535bd458ee31408ebe837c03ea660d17 msgid "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" -#: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d +#: ../development/specifications.rst:23 f0bfbeac37b44b8d816100505c291ba9 msgid "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" msgstr "" -#: ../development/specifications.rst:24 772cbe80f8cd44faa3230ee4e690e5f3 +#: ../development/specifications.rst:24 ed43d77027d44b88b776baeebed78802 msgid "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" msgstr "" -#: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e +#: ../development/specifications.rst:25 5630d915f527443e93073192b4bc2e8a msgid "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" msgstr "" -#: ../development/specifications.rst:26 088615a4afdc48a5b6449df856cb1eb3 +#: ../development/specifications.rst:26 6dfb4c82f5d24fe5ac3edde198aae615 msgid "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" msgstr "" -#: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a +#: ../development/specifications.rst:27 b14871b2584c40ddb76374986a69d89f msgid "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" msgstr "" -#: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85 +#: ../development/specifications.rst:28 8d53df978c09455cbbd5f0b3c86fae56 msgid "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" msgstr "" -#: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96 +#: ../development/specifications.rst:29 fc24914060bc4e2b83be624cf1e72c4b msgid "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" msgstr "" -#: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8 +#: ../development/specifications.rst:30 415da024ae33470ead9213e36bbb5287 msgid "" "❌ `OAuth2 Multiple Response Types `_" msgstr "" -#: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac +#: ../development/specifications.rst:31 90dca086523a4b7992b11bd243218023 msgid "" "❌ `OAuth2 Form Post Response Mode `_" msgstr "" #: ../development/specifications.rst:34 ../features.rst:230 -#: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42 +#: a191e1d8741042fd82b609c98cb88f49 a39756472b3e413583feb8a2a3c5a456 msgid "OpenID Connect" msgstr "" -#: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c +#: ../development/specifications.rst:36 f8aa5fbf69f64a6cae6b53d13ab9f14d msgid "" "✅ `OpenID Connect Core `_" msgstr "" -#: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0 +#: ../development/specifications.rst:37 0aa3c6a211764851be72af8859e72faf msgid "" "✅ `OpenID Connect Discovery `_" msgstr "" -#: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a +#: ../development/specifications.rst:38 8731b7e2a1f440d0ab3d19f58363205b msgid "" "✅ `OpenID Connect Dynamic Client Registration `_" msgstr "" -#: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d +#: ../development/specifications.rst:39 19762de2d0564cd2bab6556f5daa32b9 msgid "" "✅ `OpenID Connect RP Initiated Logout `_" msgstr "" -#: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a +#: ../development/specifications.rst:40 b1f99cddaa19432189ba53247b24d887 msgid "" "❌ `OpenID Connect Session Management `_" msgstr "" -#: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844 +#: ../development/specifications.rst:41 6bc7d7cf2e6e4fbd8c5b37ee78f38da3 msgid "" "❌ `OpenID Connect Front Channel Logout `_" msgstr "" -#: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9 +#: ../development/specifications.rst:42 c86778f4c87d4ea5bf51969fd79efa9a msgid "" "❌ `OpenID Connect Back Channel Logout `_" msgstr "" -#: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b +#: ../development/specifications.rst:43 f29d468edc9e4c93b4e132dcb896ec23 msgid "" "❌ `OpenID Connect Back Channel Authentication Flow `_" msgstr "" -#: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243 +#: ../development/specifications.rst:44 aca2626f01c94811ab9cbb4e11c8249a msgid "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" msgstr "" -#: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d +#: ../development/specifications.rst:45 5a70caff3ff34223b1fc4bd8270c2184 msgid "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" msgstr "" -#: ../development/specifications.rst:46 6cfd3e82e2bb4f80a58d8864be2ef301 +#: ../development/specifications.rst:46 ca8c178eab77479991d9744e62826ca5 msgid "" "❌ `OpenID Connect Profile for SCIM Services `_" msgstr "" #: ../development/specifications.rst:49 ../development/specifications.rst:108 -#: d9278a9cbe784818b57f9fd9d76dda68 +#: 794c29185c834483b43d4cd7efa94774 4c7bd083d6eb494aa8290e0e28cf88d3 msgid "SCIM" msgstr "" -#: ../development/specifications.rst:51 6599ee73d8ab49579b0e09836d421750 +#: ../development/specifications.rst:51 9f8697b813204adba4a63ddf11a7fd36 msgid "Canaille provides a basic SCIM server implementation." msgstr "" -#: ../development/specifications.rst:53 c91f11a0512e4782981c5bb98a8038d7 +#: ../development/specifications.rst:53 3e956d7fa3934bc7a67befcae72393c8 msgid "" "🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, " "Overview, Concepts, and Requirements `_" msgstr "" -#: ../development/specifications.rst:54 2f4ea31b4c80425a8e3075b8597ae8e5 +#: ../development/specifications.rst:54 c51b643157fe4079b535244f4f63c809 msgid "" "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" msgstr "" -#: ../development/specifications.rst:55 6ffdb285557144afb301b05c33fecddf +#: ../development/specifications.rst:55 f31d0b61f1c44de4befe75f6142c1421 msgid "" "🟠 `RFC7644: System for Cross-domain Identity Management: Protocol `_" msgstr "" -#: ../development/specifications.rst:57 0b5af403924542a99c63f28eaab81ca5 +#: ../development/specifications.rst:57 4b113baa287044a5b3710d8083f306e1 msgid "" "Client-side implementation (i.e. broadcasting changes on users and groups " "among clients) and advanced features will be implemented in the future." msgstr "" -#: ../development/specifications.rst:60 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:60 68cfc580aef74b74ac47e293bbf7440e msgid "What's implemented" msgstr "" #: ../development/specifications.rst:62 ../development/specifications.rst:83 -#: a221acec85ca4725b2951cb9b51e20d5 a3820ca28394481b85c5906175c9211b +#: 344f97d9c70a41f2aa7db3e292674b0d 2a7e31290d3b4472a9886379380543d7 msgid "Endpoints:" msgstr "" -#: ../development/specifications.rst:64 fda698ab71304acb81f54cb02fbeea05 +#: ../development/specifications.rst:64 51a2a6bac44a4c84b78e77b3e1c03d51 msgid "/Users (GET, POST)" msgstr "" -#: ../development/specifications.rst:65 888be4da4f194f319087de8e766157f2 +#: ../development/specifications.rst:65 35f011e2bf79415883469e279325ef25 msgid "/Users/ (GET, PUT, DELETE)" msgstr "" -#: ../development/specifications.rst:66 172c39c33a9d4449b9fa08649f7e1db5 +#: ../development/specifications.rst:66 a071464fe752465bbe18f12c5f63562f msgid "/Groups (GET, POST)" msgstr "" -#: ../development/specifications.rst:67 351bfa9248414180b3e2e12f3e39a7cc +#: ../development/specifications.rst:67 48d92f0c8d28471f9c4de06a6fee14aa msgid "/Groups/ (GET, PUT, DELETE)" msgstr "" -#: ../development/specifications.rst:68 0b3147e232df4562abe864dcc3c62600 +#: ../development/specifications.rst:68 8b34a263d2b046cbb9a20a2083938892 msgid "/ServiceProviderConfig (GET)" msgstr "" -#: ../development/specifications.rst:69 d12ef72fdb2a4faf91c5f3a6606e09d3 +#: ../development/specifications.rst:69 75ce8a0bca0543dd9059ea6b0090f9c3 msgid "/Schemas (GET)" msgstr "" -#: ../development/specifications.rst:70 3a2387dace19496d9539e3adb6b3a634 +#: ../development/specifications.rst:70 f9e4b33f55864bc09237b0688d4c1cba msgid "/Schemas/ (GET)" msgstr "" -#: ../development/specifications.rst:71 7bd1a03ce13a4a519529ffa633c39dad +#: ../development/specifications.rst:71 7315f0b03e3447bfb18af0bd54b13e99 msgid "/ResourceTypes (GET)" msgstr "" -#: ../development/specifications.rst:72 7bc66e9808184fa28e9af54c0a2ca411 +#: ../development/specifications.rst:72 cb771a93cdef478bbc6d52657d778ba1 msgid "/ResourceTypes/ (GET)" msgstr "" -#: ../development/specifications.rst:74 65ccf2057cb044258e738dd9dcfb0582 +#: ../development/specifications.rst:74 f8cb594cde24439c8d642d7eecdeb33d msgid "Features:" msgstr "" -#: ../development/specifications.rst:76 ef940c8ad25f4e97a8d4fa1ee9bfd786 +#: ../development/specifications.rst:76 175a65fc837f4dc48a10d3b167a464a7 msgid ":rfc:`pagination <7644#section-3.4.2.4>`" msgstr "" -#: ../development/specifications.rst:81 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:81 38c532b3622f4a2b8b789298a0bfed99 msgid "What is not implemented yet" msgstr "" -#: ../development/specifications.rst:85 76085a65129e4d1387aa1ccb5b5b2bba +#: ../development/specifications.rst:85 d2456827f07847dfa9f42e8bf86da08f msgid "/Users (PATCH)" msgstr "" -#: ../development/specifications.rst:86 da3a2dd71b204dd8941958051a0ca269 +#: ../development/specifications.rst:86 6bad7d4b458c4294be2ad05dcac5abd4 msgid "/Groups (PATCH)" msgstr "" -#: ../development/specifications.rst:87 1936b0ba8c5743b397c3dcc914f453fc +#: ../development/specifications.rst:87 a26dd83532c44f7abad4572dd932170a msgid ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" msgstr "" -#: ../development/specifications.rst:88 d6095a95a820448c8e93c6205907d2c0 +#: ../development/specifications.rst:88 836bfaabb5544327a40fb8c893a2f0e5 msgid ":rfc:`/Bulk <7644#section-3.11>` (POST)" msgstr "" -#: ../development/specifications.rst:89 8ae6230d4d04470587eabc0e85bfd237 +#: ../development/specifications.rst:89 aa37c0272ba24b308922fc40b66e3a2e msgid ":rfc:`/.search <7644#section-3.4.3>` (POST)" msgstr "" #: ../development/specifications.rst:91 ../features.rst:9 -#: 8b8d299ade65429ab2a1739bbeca65b0 61a68141a485477a9fb49921e7b8aa3a +#: d7b01888bb114c7d95660a93cbf52311 d58b104b8d5548c594cfd8be5a3a1adc msgid "Features" msgstr "" -#: ../development/specifications.rst:93 f85742cf16c0404a99264064c75cebbd +#: ../development/specifications.rst:93 c62cbc4b8b56467aa7fd7d0ff542fe4a msgid ":rfc:`filtering <7644#section-3.4.2.2>`" msgstr "" -#: ../development/specifications.rst:94 e20e4adefa5947319005523f6b6a9377 +#: ../development/specifications.rst:94 7ca9fca1e13c4f79a9ba327f7ce384f6 msgid ":rfc:`sorting <7644#section-3.4.2.3>`" msgstr "" -#: ../development/specifications.rst:95 02742549d8f54bc18893ecb9c419809c +#: ../development/specifications.rst:95 5c835bee9e924b52881f7bf441ecb4e9 msgid ":rfc:`attributes selection <7644#section-3.4.2.5>`" msgstr "" -#: ../development/specifications.rst:96 9e10ed15bc1b477ea12326a749bf64b8 +#: ../development/specifications.rst:96 5d3dbd08058047d8a38b559ea46c277e msgid ":rfc:`ETags <7644#section-3.14>`" msgstr "" -#: ../development/specifications.rst:99 ac600b38603f4fb999aebf5ffbe33cc7 +#: ../development/specifications.rst:99 255c6e6f83b44945a5f67191414a1b9b msgid "Comparison with other providers" msgstr "" -#: ../development/specifications.rst:101 2ef9567e17694a669ed5071c882661ad +#: ../development/specifications.rst:101 4d4ac8c44b4a459792dfd9e7c931c6f4 msgid "Here is a feature comparison with other OpenID Connect server software." msgstr "" -#: ../development/specifications.rst:103 d6d241980d3e46e192dd54a5082b0197 +#: ../development/specifications.rst:103 034c310137f74d2cbaf87959b844f123 msgid "" "Canaille voluntarily only implements the OpenID Connect protocol to keep its " "codebase simple." msgstr "" -#: ../development/specifications.rst:106 0b9a4fba353c483692ed6fb04227691e +#: ../development/specifications.rst:106 a0b6d9411ccd46a0a614e61187457f81 msgid "Software" msgstr "" -#: ../development/specifications.rst:106 62c2fe7c97644cfa8e7d297a337bfe36 +#: ../development/specifications.rst:106 0972e311a8984d718913ab728c5a613d msgid "Project" msgstr "" -#: ../development/specifications.rst:106 f4700ad912314bfc8d66be8471a4c772 +#: ../development/specifications.rst:106 ec16e393279c4574919b9dc2fde6566e msgid "Protocols implementations" msgstr "" -#: ../development/specifications.rst:108 ea237be2a99a4940be67516a1b95d97d +#: ../development/specifications.rst:108 069a90c864e9485ba71f0626a04bb7ac msgid "FLOSS" msgstr "" -#: ../development/specifications.rst:108 55d5dd9174f94ca9850b999864598259 +#: ../development/specifications.rst:108 793ab8c0e5864c36951cdfe503b6b520 msgid "Language" msgstr "" -#: ../development/specifications.rst:108 27002c409c6440d29ae89e91559a6994 +#: ../development/specifications.rst:108 a17def4fd4ba4cdf836371d70a58dae0 msgid "LOC" msgstr "" #: ../development/specifications.rst:108 ../references/templates.rst:48 -#: 3ba35fd6c6d44150b4b049cf603e4a85 1e5e7225bddd44a4accf8159f4a489c4 +#: 2489de89a6ae4142a72fb3176f96d97c 4d2cf4eb587146ad9de3a2e651a4f59b msgid "OIDC" msgstr "" -#: ../development/specifications.rst:108 dc762bcd6eca4fc79dae1ca65c411351 +#: ../development/specifications.rst:108 fde25f12c34b4290a5781d59545fd4f5 msgid "SAML" msgstr "" -#: ../development/specifications.rst:108 6ae5803282c4439a9e7b1c1570e4c505 +#: ../development/specifications.rst:108 1bf933220236402a8578cb23e99a23d6 msgid "CAS" msgstr "" -#: ../development/specifications.rst:110 f4c4ac6fdea74558a74bc9a3cefbb5c7 +#: ../development/specifications.rst:110 a06c6e50e788419f8e23165436f5b64a msgid "Canaille" msgstr "" @@ -2323,25 +2379,47 @@ msgstr "" #: ../development/specifications.rst:122 ../development/specifications.rst:124 #: ../development/specifications.rst:126 ../development/specifications.rst:128 #: ../development/specifications.rst:130 ../development/specifications.rst:132 -#: 33e7166b401144bcadff959d61e03c4c c2035a448fa9405a92d51c9c90277394 -#: 7bba6b8427854a41b99c15b883290007 588ab8a50fca4528b9a471dbddfb7d4a -#: ba65de35554741a48a7eb4a72fc66433 4dd20636352243038f0bdad8d15e8449 -#: 5b23071246ab41f1abd1bfa5596a4b46 c1aa2d442f2047f9a1194e38c2b1ddd1 -#: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31 -#: f5e5911bcb704af19c073370f437c1b4 e063ffcc58474df4a66b2814eb4c0f61 -#: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4 -#: 4b09487097334807804aaba873d4dc7b c9b45500d9d145a8862c978d95329330 -#: c34b7940cbbd4218af2cb94e8eb24fc7 8a394726b7b941dfbbd8af3e546782c1 -#: f5320617a03e47dea905ac5a70208c70 +#: 8359cdf8361a4f40af83efebc710b26c 92ab0f4a4a88426788a990e1a4e66ac1 +#: 2144f214b51540269c3be06540f96d80 07291bfd83b44fea9b28698e9459714f +#: c1c334386ed74b60a5c918c27074b3b2 4141a1bf492f460f9122f6e4a6a472cc +#: 7da15555b136476c90a6ee8c07ad8931 bb31a9d5919e4ec496f1ded1061047ef +#: 29b780d8270448919bb84882ad99e208 cf66b87d6d6946b2a6a1bba66ec49866 +#: 405ec378a23f45368056001f0e125e86 32573bb2db2c48f294f1c8e99041b7ba +#: fa87dc7094444bf192921dc21d96e163 31885860425144758e2f46e1d15fb0ed +#: 4fab7f1511c941f1a2d49c35650eec5b 958e8e4c17ae448ab5446180b5bd5907 +#: 03c8b263424f44b5b671ddc157dd5cbc b417afdb4bf84c16af18d53b34834dcd +#: 5199937c1c8b4832a2f9576e4dc925d9 888dd2299cac429ca0feff30cb7ee7fd +#: 89cd7338992946d0b687a257acc47a1a 411d48d5271146c7a27f5e61927d5718 +#: 7d8bf7085a2d407b88566b752769d211 b03b87ae7f0a463f81fe51fd42c9d856 +#: d56cbf84355a44ca8b2783ca1296fe33 395c20898c52466d9ea4d48f3b51f8b5 +#: 274d57a4fe6a40bfadaff61802338c2c ee3e34ce765f4a0b9ca32df1e2154604 +#: e4b974ef3e284bb79a6af7f6ba7b6bf8 68486605ae5f433d9276e6cf2fdb6352 +#: f2f6140c99c744eba16734ae914f6068 b2dc6bf2db8d40e0923c648a7f3fbe77 +#: a6709cf0859f42bdb86a3efa686225f9 8beffdfc8f574c68bf648c43d1b9fd53 +#: 8e1c7536e3a449ffb9057ee3d9fd0616 4a99ccc8d37b4ef79c1d5fb9156cb01d +#: 559c72bcf9154c7482c3c9817c013846 d90a2be715354f9fbec07d1ddecf0587 +#: 7de72e60317f48dea89bef5d42834ce9 72dfddba807a4ff3a1b6d21f05357709 +#: c2154721e215407d9519a1364e36cf94 bcfc9457ee264da795001e4691011bf3 +#: 6a6b82c0868442c2b3910c250c9c30ff d5dff4f0dae6496a879e8b23b78f98c5 +#: 61dcd56d6ecc43b59758e02fdddc9b45 67b31d28861444308994cdf883ae317a +#: 270eace283a14d66b9e59db048efc37f 7ea946aabc7e4da186e50262a66e66a8 +#: 428c79ed0ab4413081e3cf9b65023836 8f8e1f80778c4738989497cdf6fd0cad +#: 3586504e4d564d288508699bf1a476f7 cc2d8201751c4180a568013887a8fa37 +#: 4fc53bcdaf484ca48d2d4d8be91eee4b e6544ae648cb4504a26dd8f471900b7c +#: feb5d4d093514ec682e54082d8fe615c ab882015b1b943c4b7890f07712df299 +#: 6b9ef531feaf40e8bdff9ff234df758c b9210995b5634268b16adb581dee4c0a +#: f25e1de836dc405eb0a8c879ae679dd8 0e8ef9488cc94903b2841e13fb9a19cc +#: 9a715a4a98ae4db0b95302ea696f69ff 0726f102de6646dfa28e29178067d786 +#: 6b7ffc0ef20048e0a85521ccae8f188a msgid "✅" msgstr "" #: ../development/specifications.rst:110 ../development/specifications.rst:116 -#: 86f975b8aaab4af9bfc62ef2df91ba28 +#: 2ce059e05f9c4da293172ace511122de e2ab2a0e8ea74bb39c1a9551b335cb61 msgid "Python" msgstr "" -#: ../development/specifications.rst:110 3a757539fafc4e3aa92dbdec5227a2df +#: ../development/specifications.rst:110 87708af531fc4265a4221079fa936a2c msgid "10k" msgstr "" @@ -2350,104 +2428,118 @@ msgstr "" #: ../development/specifications.rst:118 ../development/specifications.rst:120 #: ../development/specifications.rst:122 ../development/specifications.rst:126 #: ../development/specifications.rst:130 ../development/specifications.rst:132 -#: 0baee04e46584b46ab2b5bd83dea4c0d 94a1a61f502a42569788cfe93ad6bcf7 +#: a57dfb6ec28747e7b0c22d5350a438f6 7e3f062885a04d51bd3d990d0f12b3c2 +#: 7d4be1af719440a394a3c1db62aa2f57 8063e8846e4b43bd986948c13850e137 +#: 8286477f5979436697efd5449d716d5f f37761c3350c46e3be462ed8d0ca2e1e +#: e19f121e83dc41b28a0d5327d4a41286 7f3f1182bd8042f688e05e50d93fa2c9 +#: dd13ab9d853841f8949c74f2ed9e6480 0070fe7c812341df9dc54a2131baa9a7 +#: aed906e90e9e4e2c97fc4879dbada5db 8081047a12364457b6c2961c72761759 +#: cfb3090585a84c4486cd07855168bfd2 fd1891815a1344c0a6bac195dea94853 +#: b025e52c9ab64fa1a6f08154653574f0 b69c1d1477034615a2a974f68873f5f2 +#: 990657b9343d4f12b279bd27e0ee2078 572f6127a926431cbed73c7fcb29a41a msgid "❌" msgstr "" -#: ../development/specifications.rst:110 c3172c68b79b46e1ac155f9af8f8729f +#: ../development/specifications.rst:110 4deaec7283d04195bb4b5ce830423c17 msgid "🟠" msgstr "" -#: ../development/specifications.rst:112 41d7747dc9384c6b908b8394168b5b5a +#: ../development/specifications.rst:112 ef8ef0ca3a3e41d89ca0d204cf9575ef msgid "`Auth0`_" msgstr "" #: ../development/specifications.rst:112 ../development/specifications.rst:122 #: ../development/specifications.rst:124 ../development/specifications.rst:132 -#: 8f85eeab9d6945af894c55e2a4aa0b9b +#: 1ec8da617dc74ff48cc221502b18cb5f 55ff3b92c3614bc39efd55d219010756 +#: 7c8ef00509294715b264887ecdba0d35 c2bbeca5ac0541109fbfb688ce50219c +#: 621c54fa39e74dec875e6141a490d52d 01e2de36a736422bbb195cafe4d932b5 +#: 69ff3ec3345847089a98e5660b75c27b c764dfbb678342618ca6ba085ce34bff +#: 6196220072c04e4680c81a3da830f32c msgid "❔" msgstr "" -#: ../development/specifications.rst:114 47ff7b1213464f85b246c4282f3af933 +#: ../development/specifications.rst:114 a06e90a200c142329aab42c417145475 msgid "`Authelia`_" msgstr "" #: ../development/specifications.rst:114 ../development/specifications.rst:118 -#: ../development/specifications.rst:126 5db56fd3e64948f5a108d2f74f7070b4 +#: ../development/specifications.rst:126 afc0d499c6624f029bf984a2b660a06f +#: 147dfdd1635f4d37a961194619b1b761 c9febc2d19ec455f9377f9a83cb24686 msgid "Go" msgstr "" #: ../development/specifications.rst:114 ../development/specifications.rst:126 -#: 741e97755b8c4478b7e19ba006898401 +#: 38acc1bf34554da2ac15381b4ae4bcbf 8fa0178c68534ff0bcf109e0713cf937 msgid "50k" msgstr "" -#: ../development/specifications.rst:116 7fb71b70103e40eeb178e1281ea81de3 +#: ../development/specifications.rst:116 3cc6d108c87045fbbf9a63da618a9e6e msgid "`Authentic2`_" msgstr "" -#: ../development/specifications.rst:116 cb26c38797d9416fafe5d1a1b5c5b03b +#: ../development/specifications.rst:116 a0ffc4dc899d49b08f8b32146c8a4a43 msgid "65k" msgstr "" -#: ../development/specifications.rst:118 6f7fc7bbb2694f09a12393a74ffc8013 +#: ../development/specifications.rst:118 1105db265e8f46369b7ddb743e1f7e9b msgid "`Authentik`_" msgstr "" -#: ../development/specifications.rst:118 bb964534c0704925b6d856bd54af7c7f +#: ../development/specifications.rst:118 83b25cffb0da4a24a3b2a402d484524e msgid "55k" msgstr "" -#: ../development/specifications.rst:120 4604cb0778044b63807b2be23ced893c +#: ../development/specifications.rst:120 248eb430ee704fc3a24e022cfb5eee14 msgid "`CAS`_" msgstr "" #: ../development/specifications.rst:120 ../development/specifications.rst:124 -#: ../development/specifications.rst:128 aa3618e441ac413e83acdfe56631d15a +#: ../development/specifications.rst:128 a8b79f9ecab5469a9b80cc7e909609f6 +#: 9273ae9f8bb240dcb07cad9ca0bc19d2 7aca0c51a5bd45509421444dc8e21b00 msgid "Java" msgstr "" -#: ../development/specifications.rst:120 c316893b4f00454a8c5745071e0888b1 +#: ../development/specifications.rst:120 679056ff38cb4ba4b09d21fbbb583fcb msgid "360k" msgstr "" -#: ../development/specifications.rst:122 c8a158afb8d841209c20b9ef42e563cb +#: ../development/specifications.rst:122 5a7602cb44b545679f6f464b0c967659 msgid "`Connect2id`_" msgstr "" -#: ../development/specifications.rst:124 a264cd68201c442faf08474397c550aa +#: ../development/specifications.rst:124 07e7c1d67f2245e4b1a36a6ef061721a msgid "`Gluu`_" msgstr "" -#: ../development/specifications.rst:126 e54b53bfeafd4764b01095c1cd0077b7 +#: ../development/specifications.rst:126 a8a9b571aedd4fc0bdb545fa04a09c35 msgid "`Hydra`_" msgstr "" -#: ../development/specifications.rst:128 87594578370246d494ef5e63196a3a92 +#: ../development/specifications.rst:128 f354d55bcfa445269d2f873e3cad72be msgid "`Keycloak`_" msgstr "" -#: ../development/specifications.rst:128 d6304d1f41714ad5af15edb6febbfbc5 +#: ../development/specifications.rst:128 ae7e82db3a9f458f96b0d07be7f9bc60 msgid "600k" msgstr "" -#: ../development/specifications.rst:130 2efe7957b848447dacfecb082a95c438 +#: ../development/specifications.rst:130 0cbcdf7a4748404eb674088a9b3b26e5 msgid "`LemonLDAP`_" msgstr "" -#: ../development/specifications.rst:130 cdd25b565e5d4de4b4202f82f4407843 +#: ../development/specifications.rst:130 a9e79acd7894437c9b290df6b4b630db msgid "Perl" msgstr "" -#: ../development/specifications.rst:130 51b2d4fcc1fc43d2a692826a2b2c62d1 +#: ../development/specifications.rst:130 a9c50fc2632c4efcbd0a7107c93c6f44 msgid "130k" msgstr "" -#: ../development/specifications.rst:132 4c2a5d27487345f7bc3c1bbd0c897c47 +#: ../development/specifications.rst:132 7b0328f64db64f4ab4712b67ea0793fe msgid "`Okta`_" msgstr "" -#: ../features.rst:11 5dd070084abb440ebf87c36df501f197 +#: ../features.rst:11 83992b326f024b0f85077ae68cb0587b msgid "" "Here are the different features that Canaille provides. You can enable any " "of those features with the :doc:`configuration ` " @@ -2455,7 +2547,7 @@ msgid "" "`roadmap ` to see what is coming next." msgstr "" -#: ../features.rst:15 83eef1f1157b4d37b4627438618f31ab +#: ../features.rst:15 e84eca88d1f945c0b75f5cb7660e147e msgid "" "Users can interact with Canaille through its :ref:`web interface ` and administrators can also use its :ref:`command line " @@ -2463,31 +2555,31 @@ msgid "" "`database backends `." msgstr "" -#: ../features.rst:19 73c7e363c37147fc825deea06ee26975 +#: ../features.rst:19 54195631200f46668dd0774d8fb1fe7c msgid "User and group management" msgstr "" -#: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c +#: ../features.rst:21 93495d3a171a49898396742c01e8c0f6 msgid "" "Canaille web interface can be used either in :doc:`production environments " "` or locally for development purposes." msgstr "" -#: ../features.rst:26 ../index.rst:27 759b0714ba194bc5a5d043350cb4cd14 -#: dd79223676e0465293d1499d8929fa26 +#: ../features.rst:26 ../index.rst:27 747fc6d9c0ff4afe99f5e8c636fc0630 +#: 281a61a509c14bd785713a9e32ff21d3 msgid "Profile management" msgstr "" -#: ../features.rst:28 ../features.rst:238 53e5483c51ae4df28138ae990c16de07 -#: 0a36f2261b84450b98131ff740f7ceb9 +#: ../features.rst:28 ../features.rst:238 7cd208e6778b4e3ca435fcaa282b6656 +#: 3845e2e3bc7048fb8e477f3964ea4286 msgid "Profile" msgstr "" -#: ../features.rst:33 864adfa77693422cad803b08d9187a5e +#: ../features.rst:33 bd8bf9442ea64aedaa39bad6408300b6 msgid "Canaille provides an interface to manage user profiles." msgstr "" -#: ../features.rst:35 505ce537381249ec82445d38a4e093df +#: ../features.rst:35 735d8c451c114d188fdfda137bb0b3da msgid "" "The exact list of displayed fields, and whether they are :attr:`writable " "` or :attr:`read-only " @@ -2496,18 +2588,18 @@ msgid "" "ACLSettings>`." msgstr "" -#: ../features.rst:37 625c7cea8a034a7ba263a71ce0587a26 +#: ../features.rst:37 d85f58ac8b8b4d0c809d18cd01308676 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 "" -#: ../features.rst:42 530dac22b587444cbd5de9ba2d7a3a90 +#: ../features.rst:42 b0204857451143228a47d4bd0d207425 msgid "Email confirmation" msgstr "" -#: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71 +#: ../features.rst:44 6357bf8141804e8ca3c7cc4688147c79 msgid "" "If the :attr:`email confirmation feature ` is enabled, any modification or addition " @@ -2516,29 +2608,29 @@ msgid "" "email address." msgstr "" -#: ../features.rst:46 8d597149b59e45f896eff2baa716fc20 +#: ../features.rst:46 2b8cac7a02c241db86c0e1a8977f539f msgid "" "Users with :attr:`user management permission ` can set user emails without confirmation though." msgstr "" -#: ../features.rst:51 4a6be5a6b71a4a5ea35d7c4a41630e35 +#: ../features.rst:51 5ca54af9769c4d66b1f073cf5dae0f8c msgid "Group management" msgstr "" -#: ../features.rst:53 ../features.rst:140 4824338c1fbf4fdd8c2e01534219ee98 -#: 3d8b9fc086e945d890bf9b3e01c82984 +#: ../features.rst:53 ../features.rst:140 859672dbd62e44f68edf373e3db0f25f +#: 7b785345dfe54831abb635f53566cbb4 msgid "Group edition" msgstr "" -#: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729 +#: ../features.rst:58 3c406b087545469ba8233b792ccf4117 msgid "" "In a similar fashion than :ref:`profile management " "` Canaille provides an interface to manage user " "groups." msgstr "" -#: ../features.rst:60 b83c6d0af7fe45228496bb2c594cf88c +#: ../features.rst:60 f3aa5eee77bb4c878ea3117ef50906b1 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 " @@ -2548,50 +2640,50 @@ msgstr "" #: ../features.rst:63 ../features.rst:83 ../features.rst:149 #: ../tutorial/deployment.rst:13 ../tutorial/provisioning.rst:9 -#: 6fdf0a969ccb49e1bf9bfc28f4df9169 4065a0b70a1444058df3bb16f0abc445 -#: bc0be7a805e04b5f91b89db28d7dffae 7ab21494d11e4287acffeb771f8f5244 -#: 9df6890219304d7dbb04c9b7817147f5 +#: be163aa553874c63a119ca1e531e4926 bbcda8b5363746de842d3fd4565df358 +#: 61f8b293eb1840df8775b9a46977e68a 7d063927a16248008786ce8fff0c0f4c +#: ef513869dfee4036992c4c33ae89cb19 msgid "Todo" msgstr "" -#: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7 +#: ../features.rst:64 19616dc65f50458da4280f5f0a763790 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 "" -#: ../features.rst:66 6440e19e527d4d5f8abc44d99c8a3dba +#: ../features.rst:66 1f22335eacb94aa8a46554367a8edb65 msgid "" "Group management can be enable with a :attr:`dedicated user permission " "`." msgstr "" -#: ../features.rst:69 2382414ec97641a4925e741a26ae3148 +#: ../features.rst:69 206521f4720945159a79dcd353d89a63 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 "" -#: ../features.rst:75 ../index.rst:34 b136f97d836d4c8dbb63cd671ceebe4e -#: 76d8725ced9e421f98de5fb1e1ee01a2 +#: ../features.rst:75 ../index.rst:34 df0f45720dd54482a606b7384b0af773 +#: b96f3e623fbc42cc886ade8fce98b625 msgid "User authentication" msgstr "" -#: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6 +#: ../features.rst:77 009db2e14df8413095b0d9f3150e4b5e msgid "" "Unless their account is :ref:`locked `, users can " "authenticate with a login and a password." msgstr "" -#: ../features.rst:81 1a8cb7dc227a452b81768be3758a8fb4 +#: ../features.rst:81 ad32a04ddd764be6bc4f07f835189dc1 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 "" -#: ../features.rst:83 778349cb3c344689bd8cc06184005e10 +#: ../features.rst:83 160e331c61874a97aa78b514e80863ef msgid "" ":ref:`LDAP backend ` users can define which :class:" "`user field ` should be used as the login (such " @@ -2602,11 +2694,11 @@ msgid "" "issue:`working to improve this <196>`." msgstr "" -#: ../features.rst:88 aa467ae3118543ed94401a8ca23776f1 +#: ../features.rst:88 eac565374d1d43499d808cb66e3db17b msgid "User registration" msgstr "" -#: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b +#: ../features.rst:90 b2e46804265c43df8ee0242a495608c4 msgid "" "Users can create accounts on Canaille if the :attr:`registration feature " "` is enabled. " @@ -2614,7 +2706,7 @@ msgid "" "the default :class:`ACL settings `." msgstr "" -#: ../features.rst:92 c1f2442a948d414e9b9983d79aa91ae4 +#: ../features.rst:92 beef77105d71424a81a7608596a70ddc msgid "" "If :attr:`email confirmation ` is also enabled, users will be sent a confirmation link " @@ -2622,12 +2714,12 @@ msgid "" "finalize their registration." msgstr "" -#: ../features.rst:97 ../features.rst:99 3d200c871e19420db3ce1885f7414a3c -#: 7bf61d1ad01240f7b1ed2db4ab0fdf77 +#: ../features.rst:97 ../features.rst:99 16180dbd28a247d0b58017290d410e1c +#: 27d275b7f1524eae9a3d0bb28d27d734 msgid "User invitation" msgstr "" -#: ../features.rst:104 134f042cb892434e922c01d62222ed54 +#: ../features.rst:104 9c5e83d641624935a643163f6194f1b3 msgid "" "If a :class:`mail server ` is " "configured, users with :attr:`user management permission ` is disabled." msgstr "" -#: ../features.rst:108 536cbb5eff1444dda4ac45998d356fe6 +#: ../features.rst:108 c5f67c0c35744d06a46ff62581a68be5 msgid "It can be automatically sent by email to the new user." msgstr "" -#: ../features.rst:113 c24731829c1949aeb3f54f0167ed8b37 +#: ../features.rst:113 87dc5cf8a5644adba540c43626b85116 msgid "Account locking" msgstr "" -#: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed +#: ../features.rst:115 e06722f64e4d4b51860928e63423b9f7 msgid "" "If Canaille is plugged to a :ref:`backend ` that supports " "it, user accounts can be locked by users with :attr:`user management " @@ -2657,51 +2749,51 @@ msgid "" "date can be set instantly or at a given date in the future." msgstr "" -#: ../features.rst:118 31e7e6b90652414ab1b450f98ddb7d53 +#: ../features.rst:118 8b1b5e618c3943a989c0d9b7958890ce msgid "At the moment a user account is locked:" msgstr "" -#: ../features.rst:120 6be8caf7464643e99cb2614ce0138045 +#: ../features.rst:120 9df53f0bc1e14517b207979063e506db msgid "their open sessions will be closed;" msgstr "" -#: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a +#: ../features.rst:121 76e0e046a3af405a94194bad849adca5 msgid "they won't be able to sign in again;" msgstr "" -#: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42 +#: ../features.rst:122 82e4c98b176c4d2bba2f7ce96c2322d9 msgid "no new OIDC token will be issued;" msgstr "" -#: ../features.rst:124 c784a99a157b46028eb5c3543da73e38 +#: ../features.rst:124 5f9b8faf05a246bea2a23417d83ec83d msgid "" "User accounts must be manually unlocked by an administrator for the users to " "regain access to those actions." msgstr "" -#: ../features.rst:129 da2f0b388508475cbb3fd080de1ff44c +#: ../features.rst:129 19999c792f774669959a562731f2ae45 msgid "Account deletion" msgstr "" -#: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2 +#: ../features.rst:131 7009976bf70348c5a99681fe82017a2f msgid "" "Users with the :attr:`account deletion permission ` are allowed to delete their own " "account." msgstr "" -#: ../features.rst:133 85f4ea778e8f45f7841ddf39f1bc8b41 +#: ../features.rst:133 2a140bd932e84750ac0b767017723fb2 msgid "" "Users that also have the :attr:`user management permission ` are also allowed to delete other " "users accounts." msgstr "" -#: ../features.rst:138 86a66e197de94dcbb90d559730b89318 +#: ../features.rst:138 93cd6c928328482a98f4ed4bf3868fb5 msgid "Password recovery" msgstr "" -#: ../features.rst:145 6693db5e96354da69ed660a259c109ce +#: ../features.rst:145 92d716598ce844bf80049d7c7720d73c msgid "" "If a :class:`mail server ` is " "configured and the :attr:`password recovery feature ` is " "configured, :attr:`user management permission ` are optional. If " "a :class:`mail server ` is " @@ -2746,11 +2838,11 @@ msgid "" "password." msgstr "" -#: ../features.rst:173 412b386c0c794b5d8c71ea7b51278da8 +#: ../features.rst:173 5319e975d4fb4701b91648542a2d8828 msgid "Password compromission check" msgstr "" -#: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe +#: ../features.rst:175 6808b4633ea2473480a7de609cc74213 msgid "" "If :attr:`password compromission check feature ` is enabled, Canaille will " @@ -2759,11 +2851,11 @@ msgid "" "`." msgstr "" -#: ../features.rst:180 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:180 71fd2622c9734be487e462b06fd8e6bf msgid "Multi-factor authentication" msgstr "" -#: ../features.rst:182 2e2c9ae9e2e24bce942de98d12d7fb33 +#: ../features.rst:182 707f699e7d374657ac3b29d3e5c65eba msgid "" "If the :attr:`one-time password feature ` is set, then users will need to authenticate " @@ -2782,30 +2874,30 @@ msgid "" "one-time password sent to their primary phone number." msgstr "" -#: ../features.rst:191 39adf64b80444b27bb6f9f11747a6960 +#: ../features.rst:191 92cf33b469d640cbaa67400714a54221 msgid "Intruder lockout" msgstr "" -#: ../features.rst:193 e884c68544f2480db394e53aeb54a811 +#: ../features.rst:193 2122ba68652f47df83d6863d31d4f169 msgid "" "If the :attr:`intruder lockout feature ` is enabled, then users will have to " "wait for an increasingly long time between each failed login attempt." msgstr "" -#: ../features.rst:196 cbba3fccd9f84230b6eb0774cfd7e109 +#: ../features.rst:196 8278c8d375764d8b81559827f6ec5c96 msgid "Web interface" msgstr "" -#: ../features.rst:201 fab0081b9bd4460098de6df7d8c317b5 +#: ../features.rst:201 30a7dce9d05d46bba5697e75b939ebd7 msgid "Internationalization" msgstr "" -#: ../features.rst:203 46cf7a3a3e9047439aa7fa6654b07921 +#: ../features.rst:203 b76e44066c3e436c8d850b9bc8552c40 msgid "Translation state" msgstr "" -#: ../features.rst:208 0a5afedc31de47a28d0bf7842a8558cd +#: ../features.rst:208 e2fdac042d5b4d7fb37fdebf1f54393e msgid "" "Canaile will display in your :attr:`preferred language ` if available, or your browser language if " @@ -2815,22 +2907,22 @@ msgid "" "for every users." msgstr "" -#: ../features.rst:214 2caebf718cab47029a83bb91253e36e5 +#: ../features.rst:214 a8d7dd0ef8a148079d86252bfdb24e8d msgid "Lightweight" msgstr "" -#: ../features.rst:216 e3cbad3b2af0422287a92a4094559d8b +#: ../features.rst:216 62e134fecda54ecebd2ed99cfad21431 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 "" -#: ../features.rst:220 a7db848b637a46b1874f04fb542009e2 +#: ../features.rst:220 98e5119178fe49fc865631a7f0f79683 msgid "Customizable" msgstr "" -#: ../features.rst:222 0c829a128889493fbc97247a60390954 +#: ../features.rst:222 0289e553e0c141c5bf0584f63db93a0b 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 `." msgstr "" -#: ../features.rst:225 3a69d40c024744af967a1408c054aca0 +#: ../features.rst:225 b12a1b77895c45c39c69711771f45cfc msgid "" "If you need more you can also use a :attr:`custom theme `." msgstr "" -#: ../features.rst:232 003c4e8eee334a9d89486e2c0ae5d106 +#: ../features.rst:232 9093d3d195d14410aa63d5fb011294d9 msgid "" "Canaille implements a :ref:`subset` of the OAuth2/OpenID Connect specifications . This " @@ -2852,48 +2944,48 @@ msgid "" "On)` to applications plugged to Canaille." msgstr "" -#: ../features.rst:236 51e9a6e1ddb04b99a6a73135fc8728e7 +#: ../features.rst:236 8d78707d882c4ad7bd911a12f77357bf msgid "Consent management" msgstr "" -#: ../features.rst:244 a613e3d10f1243f3bc5d4e796b278c89 +#: ../features.rst:244 2f4773e2479e40b5a5b8f85b99d07d2b msgid "" "Users can give their consent to application requesting access to their " "personal information, and then revoke those consent at their will." msgstr "" -#: ../features.rst:248 115bec7ea8944f6ab98641d9bd2540ec +#: ../features.rst:248 cb6b8f0c1c3f4fba9fa0271cfde526f8 msgid "Application management" msgstr "" -#: ../features.rst:250 526d36374a8747d6ad6280379bcf664c +#: ../features.rst:250 7a6c934205fd409cb24d57d8abb44f3b msgid "" "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." msgstr "" -#: ../features.rst:252 79f0217902dc4b2ca73128ff6c16e7b5 +#: ../features.rst:252 58ff42230b714f6887b089d27d4cbb1e msgid "" "In some cases, it might be useful to avoid the consent page for some trusted " "applications, so clients can be pre-consented." msgstr "" -#: ../features.rst:255 d1f7f85df6404afe91d29e4dee44be1d +#: ../features.rst:255 d3d907c775ac40e7804b9d807393fd24 msgid "Discovery" msgstr "" -#: ../features.rst:257 8b306f1c76664574a0f3d85805a46d87 +#: ../features.rst:257 3cbdbbb7efdf497390e96311f23ba98c msgid "" "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-" "configure themselves." msgstr "" -#: ../features.rst:260 d5a2f0c4fa2f4363b5e87c4243376aaa +#: ../features.rst:260 a898023be2a341718e270e67167d0779 msgid "Dynamic Client Registration" msgstr "" -#: ../features.rst:262 800aec57df82487f80fc7da359dc5c34 +#: ../features.rst:262 ad31ff1cd9644ab683677d17732722b8 msgid "" "Canaille implements the :doc:`Dynamic Client Registration specifications " "`, so when the :attr:`feature is enabled " @@ -2902,22 +2994,22 @@ msgid "" "Canaille without an administrator intervention." msgstr "" -#: ../features.rst:265 9cae9e0af58f499dac34354e9c12785d +#: ../features.rst:265 203b8da2c05346b988887b1fbcd7eb33 msgid "System administration" msgstr "" #: ../features.rst:270 ../references/commands.rst:2 -#: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f +#: 9977d7c7ec444216ad6aae3ab99637f7 389875cae59843dc8c837dd6aaaae752 msgid "Command Line Interface" msgstr "" -#: ../features.rst:272 98ef5f39d74944668dfff8b63d9d6199 +#: ../features.rst:272 b8b20bc2fcf64a8d92111dcddbec0d84 msgid "" "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " "administrators in hosting and management." msgstr "" -#: ../features.rst:274 9a30112ff2eb47c69263e73aa3c4ee15 +#: ../features.rst:274 d2b7aaf441474ac2ad1d8cc3caf1085f msgid "" "There are tools to :ref:`check your configuration ` or to :ref:" "`install missing parts `. You can use the CLI to :ref:`create " @@ -2927,18 +3019,18 @@ msgid "" "clients `." msgstr "" -#: ../features.rst:277 02d13c90aa8f41f5b1007cd67fcea510 +#: ../features.rst:277 3a7b780ed2aa4a4c809b0919ddb14f6a msgid "" "There are also tools to :ref:`fill your database ` with random " "objects, for tests purpose for instance." msgstr "" #: ../features.rst:282 ../tutorial/databases.rst:2 -#: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9 +#: 3da864e6a4114405bf250d130fde7a25 f0012cb6a1764925a997dd5dc87dd7d2 msgid "Databases" msgstr "" -#: ../features.rst:284 1a7af5dc07fa4f6c9231664737ee46a7 +#: ../features.rst:284 9406baff55794744bdd337ba3d2f4a3d msgid "" "Canaille can handle data from the most :ref:`common SQL databases ` such as PostgreSQL, MariaDB or SQLite, as well as :ref:" @@ -2947,76 +3039,76 @@ msgid "" "unit tests suites." msgstr "" -#: ../features.rst:290 a6a6a7334af54051aebed82d83027ea8 +#: ../features.rst:290 01c71f0086e048ecbd75c8adad975135 msgid "Logging" msgstr "" -#: ../features.rst:292 9bc7705bd378459abf2f813381aa58a6 +#: ../features.rst:292 c1c30fa9a81741bfb7da053d314a7767 msgid "" "Canaille writes :attr:`logs ` for every important event happening, to help administrators " "understand what is going on and debug funky situations." msgstr "" -#: ../features.rst:294 2aeb5161276a4f048c40a7256c3d7f0e +#: ../features.rst:294 04974cc2a4704184a19298b064ab6c2e msgid "" "The following security events are logged with the log level \"security\" for " "easy retrieval :" msgstr "" -#: ../features.rst:296 ed4be0b57afe4ce9976c45f03c249444 +#: ../features.rst:296 769a0d2fbc474a72ae85d332cd09ce09 msgid "Authentication attempt" msgstr "" -#: ../features.rst:297 452456f9907e4bbd89439903c2fc9ebc +#: ../features.rst:297 94e144420f1b4f2992067040bf4a5582 msgid "Password update" msgstr "" -#: ../features.rst:298 9ccb4ef2a139403c85223576eb87a182 +#: ../features.rst:298 38f087163a9541c29f06820437135d5c msgid "Email update" msgstr "" -#: ../features.rst:299 bd0936deb7994f8fb59f2f0a47115edc +#: ../features.rst:299 4a9bbfa8dd4947f28bab05cf76fbb9f8 msgid "Forgotten password mail sent to user" msgstr "" -#: ../features.rst:300 bd0936deb7994f8fb59f2f0a47115edc +#: ../features.rst:300 38d9fce3533c4f1e94cb34743ea4fb68 msgid "One-time password mail sent to user" msgstr "" -#: ../features.rst:301 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:301 461dfd630cb34a6c833d803dbc6fde75 msgid "Multi-factor authentication reset" msgstr "" -#: ../features.rst:302 02079fe76d2041aaba48a6b2079630f1 +#: ../features.rst:302 73ad0b101d244196bb1bce7c516078a8 msgid "Token emission" msgstr "" -#: ../features.rst:303 814519684d8c47a5b0b5ae6eaa9aa66e +#: ../features.rst:303 42d20b5c805c45c289c4e76202ca10ea msgid "Token refresh" msgstr "" -#: ../features.rst:304 4489f99b64dd40248f28453fb8b4b0df +#: ../features.rst:304 62b5a24c52434109abbef7d96a6566da msgid "Token revokation" msgstr "" -#: ../features.rst:305 99abcc04f85649c1b184e22e67b36f18 +#: ../features.rst:305 9c696c7b26174b6bacf9a65d84f6ba8e msgid "New consent given for client application" msgstr "" -#: ../features.rst:306 c64802d623a74d678c4aca29f82c39d7 +#: ../features.rst:306 f036ee77fd30459f8b17970f43d3faaa msgid "Consent revokation" msgstr "" -#: ../features.rst:311 f9d92f5f76a745ee97ea36afc853c516 +#: ../features.rst:311 50c4cb979d764e9fad538a0c95490708 msgid "Development and testing tool" msgstr "" -#: ../features.rst:316 9c0500515a5847c2bec5b1bb743f42fc +#: ../features.rst:316 28171f4aabbe4c209ba0d928d7fceb51 msgid "Unit-testing tool" msgstr "" -#: ../features.rst:318 b1dc62a0c2024ff1bd6682408301766a +#: ../features.rst:318 b4efc9d6589d47f3816505275ce27bed msgid "" "Thanks to its lightweight :ref:`in-memory database ` and its curated :ref:`dependency list `, you can prepare data in Canaille, let your application " "interact with it, and then check the side effects." msgstr "" -#: ../features.rst:333 beb39ccb89e040118104ba0c0f41eb71 +#: ../features.rst:333 2603a014b9f74261b4e108f98b2d8e05 msgid "Roadmap" msgstr "" -#: ../features.rst:336 4fee3c311fe844bbb345bd5b562844ad +#: ../features.rst:336 843a62acc9414741ace4ed40372359fe msgid "Bêta version" msgstr "" -#: ../features.rst:338 f699343ae7fe4f12a9d12f4692c22827 +#: ../features.rst:338 5af3d35132f44adab7d0a442d742db59 msgid "" "To go out of the current Alpha version we want to achieve the following " "tasks:" msgstr "" -#: ../features.rst:340 c8aec1fe7d574a789319e75cc64bd2e7 +#: ../features.rst:340 7f1b9a153b2a4174b7c70668fdf717b7 msgid ":issue:`Configuration validation using pydantic <138>`" msgstr "" -#: ../features.rst:343 706d590389f54c40ba1b219877946bb5 +#: ../features.rst:343 317b18e87a674ce5a39f0aef073a5e1c msgid "Stable version" msgstr "" -#: ../features.rst:345 54c0d4cc60054a5ebe7456575b1b70c3 +#: ../features.rst:345 074aa5b4bbf94a5282c9493291f8bcf7 msgid "" "Before we push Canaille in stable version we want to achieve the following " "tasks:" msgstr "" -#: ../features.rst:348 7807e2d92e264bc78fd5b6a3c63beb3a +#: ../features.rst:348 32e169e1f36441549ddbee882110def8 msgid "Security" msgstr "" -#: ../features.rst:350 577ab46503ee45e89daa8c42938635e5 +#: ../features.rst:350 542d78c7c5bc4dea80a39a63ce215989 msgid ":issue:`Password hashing configuration <175>`" msgstr "" -#: ../features.rst:351 a337cb0aac704dbca90dd70f1d68456d +#: ../features.rst:351 e0ab0dd48216432ea2f3e683b151f7d0 msgid ":issue:`Authentication logging policy <177>`" msgstr "" -#: ../features.rst:352 39adf64b80444b27bb6f9f11747a6960 +#: ../features.rst:352 1e865664fc1b4c6ea020e5924e36e4f0 msgid ":issue:`Intruder lockout <173>`" msgstr "" -#: ../features.rst:353 3eeac7b1dec04fe9b990864b8810db50 +#: ../features.rst:353 eff48eadd8d546508709110ee4297ccc msgid ":issue:`Password expiry policy <176>`" msgstr "" -#: ../features.rst:354 4ad4707b7d02481ab507ded2d410eb70 +#: ../features.rst:354 b57aa03df49f4bed8674f579ed2be7de msgid ":issue:`Multi-factor authentication: Email <47>`" msgstr "" -#: ../features.rst:355 478b4f7b443f4f728085a2ea686b0248 +#: ../features.rst:355 7cd9c56ff1ec4fe4844ba21eac411b41 msgid ":issue:`Multi-factor authentication: SMS <47>`" msgstr "" -#: ../features.rst:356 fd624a7e3d404428830928ee05ec5348 +#: ../features.rst:356 5349695bf05a4f9fa1072fe0bb6c4b58 msgid ":issue:`Multi-factor authentication: OTP <47>`" msgstr "" -#: ../features.rst:359 a6acbc89a16a4fad8658fb33764830ad +#: ../features.rst:359 7d5beadbd8184d7eb1fdd52b06f8a0bc msgid "Packaging" msgstr "" -#: ../features.rst:361 575b556539994d1190e50cbfd0133bd4 +#: ../features.rst:361 90de3f4dabb043a58c125c85126c5c3a msgid ":issue:`Nix package <190>`" msgstr "" -#: ../features.rst:362 f8facef108bf4d668509e57200f732bb +#: ../features.rst:362 f86de768f08c4e44bda3b40a54193b1c msgid ":issue:`Docker / OCI package <59>`" msgstr "" -#: ../features.rst:365 92825d26f07c4b718121c2784a9b6b81 +#: ../features.rst:365 8f0ff63fc2264a2994584ca350cfacb9 msgid "And beyond" msgstr "" -#: ../features.rst:367 ac17ddb06c4d400ebc190454535608c2 +#: ../features.rst:367 18f71a0ecade47288245c41b1fcd4bad msgid ":issue:`OpenID Connect certification <182>`" msgstr "" -#: ../features.rst:368 1b80703b0f434fe6ade3288840b9cf3c +#: ../features.rst:368 d2176d37d72c4b7d8cc90a8374661c98 msgid ":issue:`SCIM support <116>`" msgstr "" -#: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5 +#: ../index.rst:15 3cd93747449e4826a82978400fa0021a msgid "Lightweight Identity and Authorization Management" msgstr "" -#: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66 +#: ../index.rst:19 e1f076af69624d368f1c12f86cfc965d 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 " @@ -3143,60 +3235,60 @@ msgid "" "simple to install and simple to maintain. Its main features are :" msgstr "" -#: ../index.rst:31 8b56e6fd5b374afbadf70d3371ad8538 +#: ../index.rst:31 88bafd653fb4418ea8afaa3cde8baa0b msgid "User profile and groups management, Basic permissions" msgstr "" -#: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1 +#: ../index.rst:38 8054216c1dd746c2b1210f5c402cb1f1 msgid "" "Authentication, registration, email confirmation, \"I forgot my password\" " "emails" msgstr "" -#: ../index.rst:40 c4659885674a4b848e904b352c94b89c +#: ../index.rst:40 60a03d30d8fe43fbae685b2702612b09 msgid "SSO" msgstr "" -#: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa +#: ../index.rst:44 142f93e5c0ad4fb2a486b4aa87f90cef msgid "OpenID Connect identity provider" msgstr "" -#: ../index.rst:46 f7caa27d43354246a89db295901976cb +#: ../index.rst:46 24e2262cc93549c2a6997f62f8f7e38e msgid "Multi-database support" msgstr "" -#: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0 +#: ../index.rst:50 ccf5ab1611aa4893aa498f3cad5f6107 msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "" -#: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d +#: ../index.rst:52 510ac22471fe41ea981c5b6f8b6503db msgid "Customization" msgstr "" -#: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e +#: ../index.rst:56 bf2a273bba904d2393eb781cc5e84b84 msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" msgstr "" -#: ../index.rst:58 b168d0612c04400e8b259edb581dc6c7 +#: ../index.rst:58 1c7791be752c4b288c420a47929998af msgid "Developers friendliness" msgstr "" -#: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032 +#: ../index.rst:62 9b22b1a84542414d9448bde94c60b8b7 msgid "" "Canaille can easily fit in your unit tests suite or in your Continuous " "Integration." msgstr "" -#: ../index.rst:66 a4dbd4558bda425cab549061b5952854 +#: ../index.rst:66 4d0c2675411c4891a1da5945a8d99894 msgid ":doc:`Full feature list ` :doc:`Common use cases `" msgstr "" -#: ../references/commands.rst:4 574cb073f7584f8599a4cc129a337c4a +#: ../references/commands.rst:4 88c4569acf554105957f705b7f6a9d10 msgid "" "Canaille provide several commands to help administrator manage their data." msgstr "" -#: ../references/commands.rst:6 aa7436e81d0347aca49e76837769f92b +#: ../references/commands.rst:6 e29d45adb32440248cfc56c951ada110 msgid "" "Generally, some configuration has to be loaded by `Canaille`. This can be " "achieved by :ref:`configuration loading method` for inspiration." msgstr "" -#: ../references/configuration.rst:31 8cbac0cd9e3e4bc3ad5fc60d82180568 +#: ../references/configuration.rst:31 855fd5086aa74bde85c68c3fb4473eca msgid "Environment variables" msgstr "" -#: ../references/configuration.rst:33 b909831b5aed44a4b439b37701feabb7 +#: ../references/configuration.rst:33 f5ff88a87e1241d4a07a2c4c3f670b54 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 " @@ -3470,18 +3592,18 @@ msgid "" "values>`_." msgstr "" -#: ../references/configuration.rst:38 fd22a354c18f4733b8b1962cfcbe2139 +#: ../references/configuration.rst:38 f7fcfa2d43864f288d1c0746fd8ed74e 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 "" -#: ../references/configuration.rst:42 f12f0cbb606e4627be2fa3b2a895f162 +#: ../references/configuration.rst:42 ba95ac0bec524f2186c0c5a2fd55ddc4 msgid "Environment file" msgstr "" -#: ../references/configuration.rst:44 434c11ee0d6a4a118f9b8802d407d447 +#: ../references/configuration.rst:44 d301925be3cf4943be48ae119f0d518e msgid "" "Any environment variable can also be written in an environment file, which " "path should be passed in the ``ENV_FILE`` environment variable. For " @@ -3489,91 +3611,91 @@ msgid "" msgstr "" #: ../references/configuration.rst:47 ../tutorial/theming.rst:45 -#: 83d91b20c3204d09b61a4a6de8c84769 457a1eceffa94e44afeb7c6d55ef5ea8 +#: 399b3ea19a0f47509d8bc251ed19246f 39e63609b8d14eabb7f70dbd257c3f05 msgid ".env" msgstr "" -#: ../references/configuration.rst:65 8fc48610072c4e248c494befe2a4c8f6 +#: ../references/configuration.rst:65 8c82c49133f34f779dcc9309e3633625 msgid "Configuration methods priority" msgstr "" -#: ../references/configuration.rst:67 d3fdde7c8d9841e49e92bcba763e33d8 +#: ../references/configuration.rst:67 29a90274aef046c09f17682553736efc msgid "" "If a same configuration option is defined by different ways, here is how " "Canaille will choose which one to use:" msgstr "" -#: ../references/configuration.rst:69 b79bfecad485446b85a8866657222448 +#: ../references/configuration.rst:69 5fe899a247494a3babcecca1746b08cd msgid "" "environment vars have priority over the environment file and the " "configuration file;" msgstr "" -#: ../references/configuration.rst:70 63800f5a14d44e1fa3ed0266e19f5482 +#: ../references/configuration.rst:70 0cd4875aa3a047329f866dba98ea29d8 msgid "environment file will have priority over the configuration file." msgstr "" #: ../references/configuration.rst:73 ../references/templates.rst:0 -#: e8e7a0f78d68479a9586036adf25e183 e618c439d01140e89d1dc5192b332e88 -#: f4db2269f8ad4c409d39e94fe1dcaa04 68c66fa321bf4fe2a26894cfb9893ef0 -#: d7c47aab465445b8bc425f9441587869 52bdc51455ac48d2bdb9d260bdb350cf -#: 0fb7c750d22647d788376d6343f66caf f92c045d1a5a4d00b038fa12d93eff2e -#: 90d78d2e0fdb420ab3c4d75f9909ebca c86ca15b6d43459db4613bed7711b415 -#: 025f6511bb9848d4a1434b34d8af8ed5 5bd3a111c63e47598c6a88827ea19ffe -#: d2ba0706e4954be5b7ae534c589f6aca 9e2f1558bdac4c4eb1f753e347f81def -#: eb3ec759399744d3a0b8340459257502 7a6f904d5199479faf1f9475e8f28ec8 -#: aa80eea655004e6aa3ed31b683743446 47e7b3bef2d7471b9b71292a43c594f0 -#: d477ef4794834bcd88e238de37086828 af7c4339cf534ca499a21f430a2cfddc -#: c537eb4e5a054b4da0cce51226e90ae8 3e425d243a7e46c4ba306bdc43551133 -#: 65568f4bca8a4d9f9a4fcdc05b5e446c 833bc5945dc84c89947a25733c1029dc -#: fa1f3f1eebc5442cb616ba17c22aa22d 5093360aed9a4fd0a361bd81f3310e2c +#: 2eb621ffce2f420680529f3bf4901f73 a044d8c4524a4d36bb09196ba221c543 +#: c69f134bcb144ad0a92381365ab2f83e 974e15495c234b3a8eb9ce7968e7beda +#: 6b633fbb96d84ec7a52e3a57c7ddb347 515ac97c820c4d6da9aeec7264d9f8b8 +#: 02faf1b58dfd4a0f9319a47d7ec47ae2 32d1ed5dd4b842df9bc42ce6a343892e +#: 0b9656a5f894494db688a75cd7d0c642 6edf1abe2cee40738eece983144306d5 +#: 941e74d08cb443e48a940d76e5d04438 9a57301253854e968388a7c4cee2002f +#: 4fd00dbcf8c143e4bccbed3edcbee864 d187ad28099a4b569019d8dadba7ec13 +#: e35b68481ffb4d068cb15274894b15f9 e99cb8030e8e4cdfbf4c01e06a3e714c +#: 8a29fb06720c4c4397ad4957b490a8c0 a8e69ab44b5540439b59f6f0bf6a38a1 +#: a32ac168931245b68611cd6955faeea5 b2e8743b32164566be10d124c518e437 +#: bbbaacd277154bceaf2283930962ba8c 71db7835a9984c0b9124fcf46045e799 +#: a33a17334e9b4d16a42c11374a9e5095 7529ea6abdac43299a57a0b242497b4c +#: 689c48da2d964dff82be0f72974e6498 63a0c611ea4640a3ad0562e6d8ad7f21 msgid "Parameters" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3 +#: canaille.app.configuration.RootSettings:1 84e2009dde284788b29008558f7ee8df msgid "" "The top-level namespace contains the configuration settings unrelated to " "Canaille." msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:4 fffc30ea67ab47d99472750172be2a29 +#: canaille.app.configuration.RootSettings:4 233b44cb5f924b92b55e0717ec868cc7 msgid "The configuration parameters from the following libraries can be used:" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:6 ae9ceb139bfc47f8b383dec852b507c2 +#: canaille.app.configuration.RootSettings:6 528ffc1283f1453f8b5a315650653aad msgid ":doc:`Flask `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277 +#: canaille.app.configuration.RootSettings:7 8434735c37f44b4a9dca422dcfa35fb0 msgid ":doc:`Flask-WTF `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd +#: canaille.app.configuration.RootSettings:8 36e7ddf80e5a439482c95b1cdc3138a2 msgid ":doc:`Flask-Babel `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa +#: canaille.app.configuration.RootSettings:9 53c48e3c1ee04722bbd19d1a0647ab84 msgid ":doc:`Authlib `" msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: 4309008dba2c4aa79584299f19987ac4 +#: 0266d76fe0494ebe951de15dff0a03de msgid "The Flask :external:py:data:`DEBUG` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: f8cb9ba68ed14b818c2fb2bcfbffb16a +#: 91084957d9a44fba848f2d3bdc4f173b msgid "This enables debug options." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: 553b378e895a4b74aa242c08cd29450f +#: 4411e21377474f2395da5cf994bf9b5f msgid "" "This is useful for development but should be absolutely avoided in " "production environments." @@ -3581,57 +3703,57 @@ msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 -#: cb2cc7437e4a4d3c90895c4148186b25 +#: 2631e6c917144dcda0f45f75dca3e045 msgid "" "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: 530f78ce6f4842c983c10b38fe4c4b93 +#: 17d256877da540b4af0ecb3f816527d1 msgid "This sets the url scheme by which canaille will be served." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: 42e179fea274407eb26dd67e4a6d14a5 +#: ce0a09e3f4bb40b8a88d5d8a02c78b53 msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: b16e239dce5c4f199a2fba1707c82d1a +#: 054498e41f0c4cf19ba9b6d9a7bd344b msgid "You MUST change this." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 0f0f60195f334cf597f67857740b2ace +#: 29d21b789ee2499a81b40546ac5bc867 msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: 39edb89e79af4a10a154a5c42d51e86e +#: c244712d83da4e2ea46b19c7f7c9677f msgid "This sets domain name on which canaille will be served." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:1 d831c1b108eb4e96bb11a6ddc92ed45e +#: canaille.core.configuration.CoreSettings:1 8abadcc23b59421eaf1866cf66f16b82 msgid "The settings from the ``CANAILLE`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:3 a51801e81d914eb3bfe1fa4e649133c1 +#: canaille.core.configuration.CoreSettings:3 b197626889354c289279eb095892940e msgid "" "Those are all the configuration parameters that controls the behavior of " "Canaille." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 89de24471b434051a4a84e39bc47aded +#: 83e6e2dfc47a4a0da12b26098911529d msgid "" "Mapping of permission groups. See :class:`ACLSettings` for more details." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 1f85af06bed64d9da4417c6e6f7e244e +#: cb73b597fa1e4394b1c5bb2bb2435e99 msgid "The ACL name can be freely chosen. For example:" msgstr "" @@ -3640,29 +3762,30 @@ msgstr "" #: canaille.core.configuration.ACLSettings.PERMISSIONS:6 #: canaille.core.configuration.CoreSettings.ACL:5 #: canaille.core.configuration.CoreSettings.LOGGING:12 -#: 56ce67b55d3b4d8eba9a07b4feed2587 d9b0f4816c2644679233ec3b797c2fc4 +#: 881bf101872546348dd1fbe1e0876ce2 14afae3efc904e2085f73676b352e16f +#: f269c5d6271a4989a1bcfddeee3ee9c2 a159a694d7e14098907617eed4f35aa0 msgid "..code-block:: toml" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7 -#: dc73b62baf4f465598787ebb33191c7b +#: 7df785453bf2449bb5fa56a6eb3f40d2 msgid "" "[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = " "[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:12 -#: 56d15bcfdbcc4556a3848702228b970f +#: bb75dcb394b84875a95ea5029a452027 msgid "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: e07c109febe5434e95b532da3dadf454 +#: 753080f7763646d1ad22a17240e53b6c msgid "Administration email contact." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 7a5e93e36d434fcb96b85beea8f1adc6 +#: 5c58da831ccb44d4b19d5681c996c78f msgid "" "In certain special cases (example : questioning about password corruption), " "it is necessary to provide an administration contact email." @@ -3670,7 +3793,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 -#: 478effaaf0da47a1a31b996b06b8c650 +#: 426b66feb6d3450eaf7638586fec400f 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." @@ -3678,7 +3801,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 -#: b82dc4dc6818409eb5fa256462c4ac19 +#: 6479ecaa27d94cf89171e9587af6d468 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 " @@ -3686,7 +3809,7 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_OTP:1 -#: 8e19d8a485fe456191ab16773f84483e +#: 7c9b9868ad8c4e99832f5a2d3a5e6aee msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary email address." @@ -3694,7 +3817,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT:1 -#: 8e19d8a485fe456191ab16773f84483e +#: e374204dc15d4778b430968d4bc5f9d9 msgid "" "If :py:data:`True`, then users will have to wait for an increasingly long " "time between each failed login attempt." @@ -3702,7 +3825,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: cb4478169a09415a9f17e3df16239ecd +#: 4170c86b23554c8ea2c883557a8deec0 msgid "" "If :py:data:`True`, Canaille will check if passwords appears in " "compromission databases such as `HIBP `_ when " @@ -3711,7 +3834,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 -#: b70cf94037df4bd1ae8a74acc370b3a5 +#: bb6bad71e08a4d36b3339537790b147c msgid "" "If :py:data:`False`, then users cannot ask for a password recovery link by " "email." @@ -3719,32 +3842,32 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 -#: 6ee78ec59c21456e8761778153d4f700 +#: 5f8fcd4a000d411c8502c630e54f04ee msgid "" "If :py:data:`True`, then users can freely create an account at this instance." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: 979b9444b9c04354add2e781bd324752 +#: d92660e43b9347d0ade1e397bc5207b8 msgid "" "If email verification is available, users must confirm their email before " "the account is created." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1 -#: 8931d55b0c264be0982765f04f83ae38 +#: 8718e146c23448f682ee9642c6cb911a msgid "You favicon." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: 7991e0eec12c457dad401f49b34ad835 +#: 8d1fc56d14134aa9ac8ad88fb924d401 msgid "If unset and :attr:`LOGO` is set, then the logo will be used." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 -#: 8e19d8a485fe456191ab16773f84483e +#: bdf0b98c2bed4013b5bed76ae6326c87 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 " @@ -3753,52 +3876,52 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 -#: dffe6e218f4f48e981ac5a9fa9a21e37 +#: 192cdb38b79048aaa18dcad8e675d6e9 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 "" #: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1 -#: b200882d189b46f3a83f217ff8b59551 +#: 988c8b75a0884b80a0a1d65f53ac680e msgid "Accelerates webpages loading with asynchronous requests." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: 2dc15bd9ea8a4386b7202dbdbab5de36 +#: 4b6029f0ed44414f953feda8afe9b63e msgid "The validity duration of registration invitations, in seconds." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: c6aaae8719c34838aec54b8fea2d5101 +#: b6745de2c7b84f54b498403bdca444d1 msgid "Defaults to 2 days." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 70d5c7fa2dfa4e6695c84f2b4ab547c9 +#: f760d39408a748ce908e65a24a0c6a80 msgid "Enables Javascript to smooth the user experience." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 1e1cda3ec4c04a4aaeb2069ccc8f376f +#: e02332b4e43042de98a09d40a948302a msgid "If a language code is set, it will be used for every user." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: 6818acfcf652444db48e1c61878b6bb6 +#: 1a676dafa9194a46ae41884d78b1a8a6 msgid "If unset, the language is guessed according to the users browser." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: 63800f5a14d44e1fa3ed0266e19f5482 +#: a16f42d36574410e929fb61e6ef8abac msgid "" "Configures the logging output using the python logging configuration format:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: 62d20006362a45ca8ff0f0a8fbb82bf4 +#: fb272f04203f46e098520a67a969659e 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." @@ -3807,14 +3930,14 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 44c6ded187ab4e44aac024c2cdb85303 +#: b970691fac51473d9fbc00f9f1a97f64 msgid "" "If this is a :class:`dict`, it is passed to :func:`logging.config." "dictConfig`:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 6e269ac8b9144e9699a5856c375d7a37 +#: fa42a52c1dc84ef4b56ce123d98cd612 msgid "" "If this is a :class:`str`, it is expected to be a file path that will be " "passed to :func:`logging.config.fileConfig`." @@ -3822,12 +3945,12 @@ msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4 #: canaille.core.configuration.CoreSettings.LOGGING:10 -#: ba8b9d6794e2459492abfa778736328a +#: fb6acd57fe244d02bbd69015275cd69c f33e86db2dc74cd0a98a6d5c0d928e73 msgid "For example:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14 -#: 2eedaa2fba4545698dfd11007a2e0c9c +#: a5b8c52cf10a429699e2054f42658c17 msgid "" "[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] " "%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", " @@ -3835,7 +3958,7 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:19 -#: 4b44c1c288c3433fb0edba70dd9c1343 +#: 2524ebb40666405b8630a4778d4334fd msgid "" "[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers." "WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = " @@ -3843,7 +3966,7 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: 851b93aeb7b54426872a6b4a2ed973b9 +#: 19233db1937d4d398e9bc82d88b2aeb4 msgid "" "The logo of your organization, this is useful to make your organization " "recognizable on login screens." @@ -3851,13 +3974,13 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 -#: 88cd67b65c954dc7a261df77d1823cda +#: b8115919bf52465c8ecad2294c9cb3f5 msgid "User password maximum length." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 435e72d3f33642da9016c521a88f15e6 +#: acfb34baa52d40c2ac93f84d1d1b0b45 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." @@ -3865,28 +3988,28 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: b15846ed6b2a4ad49bbb19cde177023a +#: 06396a965c9342b697bc45dcc011f2be msgid "User password minimum length." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 820670101aa7436eb014aa61e1c1a7eb +#: 7efa39bf27bb468b9df98c5248428124 msgid "If 0 or :data:`None`, password won't have a minimum length." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: a41944f564f5438fb8572449b5d13995 +#: 5e65abc8483f455a991d9e047e73da66 msgid "Your organization name." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: d61df1326c344b45b6d1c7b24e12b207 +#: 606e9a684c9243359899a63d7e2c07d2 msgid "Used for display purpose." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.OTP_METHOD:1 -#: 622f83bdd580459cad5b3b328fb2de3b +#: 04b59ac479f548bd9740d2b7e243e0be msgid "" "If OTP_METHOD is defined, then users will need to authenticate themselves " "using a one-time password (OTP) via an authenticator app. If set to " @@ -3896,19 +4019,19 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 4501d236ecc142e2ad045599ee19ac19 +#: efecdcc0b3c44808aab72f448d73bf42 msgid "Have i been pwned api url for compromission checks." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:1 -#: 1072c369689f4922997715eb5337795a +#: c9deb9285c2e43869c2acf1319bc5cf5 msgid "Password validity duration." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:3 -#: 4262b875a3a148dab5e94595cb2a981f +#: e54d23138f1b4d63ab45a1ea9cd55dbd msgid "" "If set, user passwords expire after this delay. Users are forced to change " "their password when the lifetime of the password is over. The duration value " @@ -3917,70 +4040,70 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 0b234cbe21824f31b27a3b3c893fd37b +#: f2e004ed1352465e8d32c0565f60dc08 msgid "A `Sentry `_ DSN to collect the exceptions." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: 2eab9799f4c0478aa5479f62e826b170 +#: 396fd294d31a4d2d9ad9967ea5845ea7 msgid "This is useful for tracking errors in test and production environments." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1 -#: 79d66e38b7d94974a21563fac9a58149 +#: 2548a23167c14ca791a00efef39a5fba msgid "The settings related to SMPP configuration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:3 -#: 41d396512e7d40b28223841b21f8ed09 +#: 58473f24986d42edb6abb6ac7447701b msgid "" "If unset, sms-related features like sms one-time passwords won't be enabled." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMS_OTP:1 -#: 8e19d8a485fe456191ab16773f84483e +#: 0d4b32baaef746d0920a8d7b49f41f4c msgid "" "If :py:data:`True`, then users will need to authenticate themselves via a " "one-time password sent to their primary phone number." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 79d66e38b7d94974a21563fac9a58149 +#: e2bfd599192e4c6f9bfeaead50f548ed msgid "The settings related to SMTP and mail configuration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 41d396512e7d40b28223841b21f8ed09 +#: 444f30f696184ee6898c385d19fc647b msgid "" "If unset, mail-related features like password recovery won't be enabled." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: e327a089ace6495285f29ade69226d1b +#: d006eeb6ee7c4d1cb5249d35faeda62e msgid "The name of a theme in the 'theme' directory, or a path to a theme." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 -#: 641146b41ecc461d9fa7280687a462d9 +#: 3b7e2c30ab29424a8b1e74cd9404ffce msgid "" "Defaults to ``default``. Theming is done with `flask-themer `_." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 421c3427b77b4cc4af9619406463c1c2 +#: 503564e13430483fbbdbdf3d3933c331 msgid "" "The timezone in which datetimes will be displayed to the users (e.g. " "``CEST``)." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: d8d80524578e4697a5bb9f7e83c7d113 +#: 0906370280b743b782a2a6dde00ca491 msgid "If unset, the server timezone will be used." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:1 2f0178f9dbe747c695273f89e42da8c2 +#: canaille.core.configuration.SMTPSettings:1 57a55ca2875c462babb31fd7b4aaa3d4 msgid "" "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, " "mail related features will be disabled, such as mail verification or " @@ -3988,86 +4111,86 @@ msgid "" msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:5 598e1ca109154455ad98b50d8853891d +#: canaille.core.configuration.SMTPSettings:5 9a813b531406465e94e5348aef282cd0 msgid "" "By default, Canaille will try to send mails from localhost without " "authentication." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 8ab9425f8a6b42dc9097b69e3eaa334a +#: ddac936f417d41c0ab52e7899e0cd6c3 msgid "The sender for Canaille mails." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: f8f5f1377e5147d4baf9782ff95b4aa3 +#: c9aa4a06ffaf45fcac8c2d518bd32d97 msgid "Some mail provider might require a valid sender address." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: 9059b29ae44849efb180f3b2da128c19 +#: ec91a927a1974be1a89fd6f9cf1a9e80 msgid "The SMTP host." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 0bf8168dc84545cb810a8f25bbb4abf7 +#: 579743b8464b4d29a118d73e1ec74c94 msgid "The SMTP login." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: ec1b4f81894e45f5abcae80dfaee87a9 +#: 2a70d820c61c4b3cad94d66bae196094 msgid "The SMTP password." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 514104bb8bcc4331b1e7fff12e550ba3 +#: f59d761d5304416dbb5e2711598e00a4 msgid "The SMTP port." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: f4e65d7811cb43d5b7d86ec07af2576d +#: 83650c04663f4c4ab803282325a29073 msgid "Whether to use SSL to connect to the SMTP server." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: bd8dac0e38f14b6583d024fca1768b7d +#: c6ec3788d99d46a68815e355bc37e6b0 msgid "Whether to use TLS to connect to the SMTP server." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMPPSettings:1 2f0178f9dbe747c695273f89e42da8c2 +#: canaille.core.configuration.SMPPSettings:1 05a0a772c0964569a863b02e60bb2b60 msgid "" "The SMPP configuration. Belong in the ``CANAILLE.SMPP`` namespace. If not " "set, sms related features such as sms one-time passwords will be disabled." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.HOST:1 -#: 9059b29ae44849efb180f3b2da128c19 +#: ff31eb63e9c84d4cacd175f5028acda7 msgid "The SMPP host." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.LOGIN:1 -#: 0bf8168dc84545cb810a8f25bbb4abf7 +#: b18653341cdd49a8bd3cc74e9dc0d177 msgid "The SMPP login." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.PASSWORD:1 -#: ec1b4f81894e45f5abcae80dfaee87a9 +#: d8f1c895bda94702aa5efa1b3ffd7f8b msgid "The SMPP password." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.PORT:1 -#: 1c6040260eac4930a107d3f612c6ef6e +#: 8e46db242a7b43ccbb26ca42a7a44a97 msgid "The SMPP port. Use 8775 for SMPP over TLS (recommended)." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0 +#: canaille.core.configuration.ACLSettings:1 1032e74cacef4f1d8c4cc5a72c374dc0 msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:3 733df203b313404eb417f40ed8708a2e +#: canaille.core.configuration.ACLSettings:3 4a2a439777264fee9754f94f04b23815 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:" @@ -4077,18 +4200,18 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 -#: a14933a4c7244138bb59a43c9d288955 +#: 30704fd262e54feaa7505f5da3bff786 msgid ":attr:`FILTER` can be:" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: d0f71dfab2ec47fca2184767e58eec59 +#: 49f0a37bc20a46f788cbcf4e5a67f5b6 msgid "" ":py:data:`None`, in which case all the users will match this access control" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: e33849bb0c954228951cb18c56a9e70d +#: c383b32ac2134422b95321c1159422d2 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 " @@ -4096,120 +4219,120 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: 2ed07fdd7da94cfd90167b2d1f4cb4eb +#: 588e0e10a4b347e6a3fdda1ea444b4c7 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 +#: e662b5f42e8f488ca47ef2885a2e8c85 msgid "Here are some examples::" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: df95253032c647229909e34386b1e5cc +#: 947459704a294f38b0ee5b0ab39c3d5b 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 +#: 7b7a62237cca42a6bc1cf641951bd872 msgid "" "PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", " "\"delete_account\", \"impersonate_users\"]" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: ab801708874c4b1bb937f62969614340 +#: fd894bac29b14289abb8b997d80f2ace 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 +#: ed3af117e73c4a08a4cc9570d9505564 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 +#: canaille.core.configuration.Permission:1 3630076631504884994de04711e79c85 msgid "The permissions that can be assigned to users." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131 +#: canaille.core.configuration.Permission:3 836f0d6eb00a449b8f593fe22f4c6e3d msgid "" "The permissions are intended to be used in :attr:`ACLSettings `." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: 370dec6e2b8049d0b7353b085340b102 +#: 2a00700bc3df406bb414932e14a777aa msgid "Allows users to delete their account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: f7be239942c94727a948d27c6c93408e +#: 10ce363401a14711b73f41bf58f5b11c 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 +#: 7876013cd8d34f059c292d35a93e8bed msgid "Allows users to edit their own profile." msgstr "" #: ../../docstring of #: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: c9018bb9aceb40bc9536cc03320c5bad +#: 133a7a2df544419db9c12a1d81adb463 msgid "Allows users to take the identity of another user." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: 1072c369689f4922997715eb5337795a +#: 197c146b044d41e1a91760b38f7fa42b msgid "Allows group edition and creation." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 014b4028381e4f4d8dcc8dc8a5e3a26f +#: 1187d515878b4a73a383eb5dafc3cdf3 msgid "Allows OpenID Connect client managements." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: ff39df8edc7143c7b23d22bb773b5198 +#: 3fc23fff9e2541ad9e079c331bfb1296 msgid "Allows other users management." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: c7e27c4618a9460e8373c17f558f8d1e +#: 500b7afe49f34db3885ae75a2aa99ff8 msgid "Allows OpenID Connect authentication." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef +#: canaille.oidc.configuration.OIDCSettings:1 af3b4287fa40413fa0a9095a0972aa94 msgid "OpenID Connect settings." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0 +#: canaille.oidc.configuration.OIDCSettings:3 569811f41eca490eb6d44f79521b19e4 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 092f0d4259994eb8b834b256a8f72453 +#: 3a4739edd59b43b3b39b6ec25b438b20 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 +#: 81d8fadf800643b5880c3a9b2da2f026 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:" @@ -4218,123 +4341,144 @@ msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 -#: 30861c9a3a294daf8105dd5ac9007282 +#: b9b0f251f5a040788db035222a1833d7 msgid "A list of tokens that can be used for dynamic client registration." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: 04e054bb3d094e4ea8f23ab6fdec9bf6 +#: 8d4cca4d5d8248569a8b5e284cf2a628 msgid "JSON Web Token settings." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: 95b1ee4fd0da4ec2b30beb3e25944cd9 +#: 45dab080b9b542a78d7c5e7d8f11efdc msgid "Force the nonce exchange during the authentication flows." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: de680082bc4546a6883ff4826df0067b +#: 9d35f18ffd9540198d0f197c1c2a4240 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 +#: canaille.oidc.configuration.JWTSettings:1 f862449d0b374ae0add26d95ef2f5cb7 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 +#: canaille.oidc.configuration.JWTSettings:3 04bb58dabe1849068f0e8fbbde1b6c8c msgid "You can generate a RSA keypair with::" msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: d65a4aaf4cb64130ac59c97cddcffb0b +#: 29ec28a6230a458885f7b7aa999c8a66 msgid "The key algorithm." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: c0c460480db94b1a9ebceea06528d426 +#: 9430c7f0daae460db38df33e90d593ba msgid "The time the JWT will be valid, in seconds." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: 6501426215db4b27b7b5d217954ca6be +#: 3a87f42a35f94be488f736b99fdc235a msgid "The URI of the identity provider." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 3e338458e42e405fb025bfcfc53688f4 +#: 2e7bd63f53ce4691b16b0ddb6def6788 msgid "The key type." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 27a15f235d63447884175edd85e55cf4 +#: 93f87ea252884bac976fdb483026a745 msgid "The private key." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 29d2c1b105e74d46b80db01b78954711 +#: 5a38848e470044cc86d8088acba470ee d65e8c973f9b4574838315b2ac4fbc6b 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 +#: 065eb721cbb646c3957f30587b650b09 msgid "The public key." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:1 -#: 235687b99f2c408aaf1c063061975f77 +#: d9a0b99e00254e1dbae60d4d0f92d268 msgid "Mapping between the user model and the JWT fields." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:3 -#: ebe87d5efdaa458b97451b5ab4fdeb3d +#: dc177e3a15bd44a58ad9a78d86488317 msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" #: ../../canaille/scim/configuration.py:docstring of -#: canaille.scim.configuration.SCIMSettings:1 e2e226bd197b4d6f87291ee45a3004ef +#: canaille.scim.configuration.SCIMSettings:1 eb8831b391be4590a8ff7004ce5deec5 msgid "SCIM settings." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:1 -#: b7ccdac0ebd14f47be2d77ea52bd75d7 +#: ed5d3f22ff8c4dcc98caafbb1c9ef5d3 msgid "Settings related to the SQL backend." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:3 -#: 07e03b184cb54e0a92ca3a33033da5cd +#: 7a39e104f4d24b5bb0f2999a30e7dd39 msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "" +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:1 +#: c49da2725c2b4bcaa81ff15f505ea439 +msgid "Whether to automatically apply database migrations." +msgstr "" + +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:3 +#: 47e7693d96434baca0d3dd196c5a4db4 +msgid "" +"If :data:`True`, database migrations will be automatically applied when " +"Canaille web application is launched. If :data:`False`, migrations must be " +"applied manually with ``canaille db upgrade``." +msgstr "" + +#: ../../docstring of +#: canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:8 +#: b58635cfdb7f4240854239418e78fe14 +msgid "When running the CLI, migrations will never be applied." +msgstr "" + #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: 4d1ff118c1a44a50a962e527d1a8e2a2 +#: 4536c2d4cb2149eeb579656c7d6fef22 msgid "The SQL server URI. For example:" msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6 -#: 4bb9ca2e412a461caacf1a146582247f +#: 07d66e79d7df497d85858df1396e191c msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\"" msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:1 -#: b1827fc993454e8fbfbe2868c28e751c +#: 10845b88dbdc43c788ee2e0bc36350e1 msgid "Password hashing scheme." msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:3 -#: 2e0dbdbc64944ec7948324890d02b255 +#: 52fdf7d843c9432db315f114054c9395 msgid "" "Defines password hashing scheme in SQL database. examples : \"mssql2000\", " "\"ldap_salted_sha1\", \"pbkdf2_sha512\"" @@ -4342,102 +4486,102 @@ msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:1 -#: e656ae1d120e45109618f653d29d845e +#: e15e2823c04d4ec28c7babecc8562d74 msgid "Settings related to the LDAP backend." msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:3 -#: 9877879932a3406b87f9893f4a6bf8f3 +#: 83424c682e70455799fea1843996c454 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: 96d852cc067c459cabfcc201a7271cf0 +#: abd1149eb47f4ca391af208bac04862e msgid "The LDAP bind DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: 084f3814a8604375aed794d649845045 +#: 0d9db8acc3bb462e959c147787183929 msgid "The LDAP bind password." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 8f56c7d2bfb348afbcc36de24398dfac +#: dfe0dce641704dfe8e107c25c9a48395 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 +#: d1a484ad5d9b416882079b981605b592 msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 3b6a2121763e4302aa1780cb6d51d9d6 +#: c683dd1cef604a8eb3b22d39d848788d msgid "The object class to use for creating new groups." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: 10d8bb8232bf4b30b6c631847ea70b2b +#: 82b43769a16441fa96297e1e31f03062 msgid "The attribute to use to identify a group." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: 688132cb0d4e4f27973a02406d50edaa +#: f3fb1e7028544214a4ea3b83f3c3d49f msgid "The attribute to identify an object in the Group DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: 4428b1de4b664a55b077caa3969d6769 +#: 3f3bc5cd8b044803b3fba6e4fdfde1e3 msgid "The LDAP root DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: 5a175d6a66e445458ee6bc473d614a45 +#: d5d1aa6b21c64ed4b81236594911f285 msgid "The LDAP connection timeout." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: 3172b80b5b86434699f226a3b713c52f +#: f20bc6eb339648d893a110829ce14ab1 msgid "The LDAP server URI." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: 0e03c3262f504b79b84847041ee442e5 +#: 9b091562c6774d6b81e8fe6dd81c93cd 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 +#: c61024ac66b44e35925082e9876b8a9a msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 92a1f8f8665848c9aaf4d5f9f1f3b6b7 +#: cd09943f22a8453fbca1aa2173e3186c msgid "The object class to use for creating new users." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 228fcd64b4704fa0b4ea52ab85f48f08 +#: 894a2a5356004edaa5fc0ac68e8e4742 msgid "Filter to match users on sign in." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: f61c66f7c0e94e67ae5a4ce5de0dc548 +#: 4daf3e1956864084aa30ea039bdc1ef7 msgid "" "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is " "supported and a ``login`` variable is available, containing the value passed " @@ -4446,27 +4590,27 @@ msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 -#: d49e7765b3d6440d9fdcb0ecb18c06c1 +#: 44e7dc51f57347f1b02ad3d371f174e9 msgid "The attribute to identify an object in the User DN." msgstr "" -#: ../references/configuration.rst:94 c4674c5a1b434e81944983c7ec2fb0f1 +#: ../references/configuration.rst:94 3dd3777a442446f594c09782013d74f1 msgid "Example file" msgstr "" -#: ../references/configuration.rst:96 87c3dcb2ef5a4f649ec0fa9005449a79 +#: ../references/configuration.rst:96 d1a4ab70ee764b0bb698a26a11818542 msgid "Here is a configuration file example:" msgstr "" -#: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e +#: ../references/index.rst:2 071913032bd34cd2bd443cd511ed0f99 msgid "References" msgstr "" -#: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c +#: ../references/models.rst:2 8449e7712a554bf88b595a0bbb2d0c4c msgid "Data models" msgstr "" -#: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217 +#: ../references/models.rst:4 bee5e0d6c994427f8c8b66eb51ea1eb9 msgid "" "This reference details the data models used by Canaille. This is mostly " "useful for developers." @@ -4475,49 +4619,49 @@ msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features:1 #: ../../canaille/backends/models.py:docstring #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 -#: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 -#: 3ac32584e20443aaae7659c3e894cb06 +#: 38d2033e866440eeaafe892cc6064c18 23d8ede99f5a4ee39d8da74d996a4a1d +#: 3a3408d8f3904b038bce47acee950437 msgid "Bases: :py:class:`object`" msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9 +#: canaille.backends.models.BackendModel:1 c25bd1ffbbd349e5ad1dea57b25154c8 msgid "The backend model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2 +#: canaille.backends.models.BackendModel:3 7ef9431bea8e442ebb713b76b3bc64ff 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 +#: canaille.backends.models.Model:1 9b1a6bcb81134359bc30467d1dd705ab msgid "The model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b +#: canaille.backends.models.Model:3 4e4cc81400bd4a4589afcdce71b2b087 msgid "It details all the common attributes shared by every models." msgstr "" #: ../../docstring of canaille.backends.models.Model.created:1 -#: 8685782e932b476a8b6f80256ebca659 +#: a8d222c7abad4c26a9aca53d2227a03d msgid "" "The :class:`~datetime.datetime` that the resource was added to the service " "provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:1 -#: 112d9fd0a032418682875fe5f5685fc8 +#: dd7a51180db84215bf6bae28646204cf msgid "" "A unique identifier for a SCIM resource as defined by the service provider. " "Id will be :data:`None` until the ``Backend.save`` method is called." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:5 -#: fe3e4be3b44b43ebbbd11fe81fdc2613 +#: c267b02c5d9f44d2b6fa54a4fa80c07a 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 " @@ -4532,27 +4676,27 @@ msgid "" msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de +#: canaille.backends.models.Model.identifier:1 68b886ca51e94b929e6a81dece535871 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 +#: canaille.backends.models.Model.identifier:4 b942d5bf24f8490790ea02f455feef27 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 +#: e2986b332a464e609b4d1a6042569839 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 +#: bc822b66fbc04a00801cac82d2dae44c 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." @@ -4563,36 +4707,38 @@ msgstr "" #: 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 +#: canaille.oidc.basemodels.Token:1 82169b55a46b4c65b4beb8d57b131a7c +#: ec3b388e2afc44389fbc8ba448b91118 71f525f7b5c0407db5b52bbd115bc09d +#: 5a01ffa3802640ffa56b74edf6b87cd3 db8c684605854a7e860884b4467182d6 +#: e1f14f010ff54e918cc97dc2d2345ff6 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: d8d4759602c44e048e0d4f053dc5c895 +#: 1957213a8dd2445ea66f5fa8155fdec7 msgid "" "User model, based on the `SCIM Group schema `_." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:1 -#: f557ae62a380458ca1e212165ff7ebd2 +#: 329f754548e54099a1f7ffcbfeab9e77 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 +#: canaille.oidc.basemodels.Client.client_id:1 0ba4b47f809b4adfb4faa401ab882eb1 +#: 1687fff7eedc4a9294f55b5c0e71460d msgid "REQUIRED." msgstr "" #: ../../docstring of canaille.core.models.Group.members:1 -#: 83c94299de834bb7899fc5d919567ddf +#: 3849324e8bd9411ca14cf42753424f0b msgid "A list of members of the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.members:3 -#: f8395458983d4efd966c1f2bd3e771dc +#: bfeaf8af5e9a4adaabbdc92a9c16c0b3 msgid "" "While values MAY be added or removed, sub-attributes of members are " "\"immutable\". The \"value\" sub-attribute contains the value of an \"id\" " @@ -4605,7 +4751,7 @@ msgid "" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: 3de74c338e4e45d4ada0909e1d6a2c1d +#: e70c0af0475547bab48542208e6960ab msgid "" "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension ` configuration." msgstr "" #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.readable_fields:4 d51b5c9a3058444187f7f52aafcc57ce +#: canaille.core.models.User.readable_fields:4 c02e2a584e0c4473b1001c024b24696f msgid "" "This does not include the :attr:`writable ` fields." msgstr "" #: ../../docstring of canaille.core.models.User.region:1 -#: 7781da46bb4f45c19d4061a73efd1860 +#: 037f259a6e984ca1aea1e1f80d9b6079 msgid "The state or region component." msgstr "" #: ../../docstring of canaille.core.models.User.secret_token:1 -#: 3764681cd7844fdaa69cc2ab072ff732 +#: 5f56d77ac5ee40d192cc5b122e0f79ae msgid "" "Unique token generated for each user, used for multi-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.street:1 -#: e15de46ed1a745e580399d0bf40e96b8 +#: e57fcc9747814887a3643ba92cc6dc53 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 +#: 563c42f617d444ec90c40d6af35f43a8 msgid "" "box, and multi-line extended street address information. This attribute MAY " "contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.title:1 -#: 96571ab69f47443087e9de7cdf2af3ef +#: 6d2d009ee87746d4bcb3d63c3bc9f8cb msgid "The user's title, such as \"Vice President\"." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:1 -#: 5a41c74aee6040d78b20e68feedbe91d +#: 89f788bca8344b2ba7f5967a62e7bcce 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 +#: f6806a97c1b74c79b9600427618fed91 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-" @@ -5014,19 +5160,19 @@ msgid "" msgstr "" #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.writable_fields:1 f99945951b7f476484908fef5eb9bee4 +#: canaille.core.models.User.writable_fields:1 2017dc660a66445db67269640fd1fd8f msgid "" "The fields the user can write according to the :class:`configuration " "`." msgstr "" #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.string_code:1 81f725c1782d45b395593f37c0776e41 +#: canaille.core.models.string_code:1 b1de5e85f60e43b282a0030180652af0 msgid "Add leading 0 if the code length does not match the defined length." msgstr "" #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.string_code:3 1cc69f629da14627a5d08132c7388c45 +#: canaille.core.models.string_code:3 97af099fefbe45d6a996d9a721da82c3 msgid "" "For instance, parameter ``digit=6``, but ``code=123``, this method would " "return ``000123``::" @@ -5034,12 +5180,12 @@ msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.AuthorizationCode:1 -#: 470216f2acc344a9bc4fe9408cf38b4c +#: adb7d97f3da14c2aacca22dd9662c8ff msgid "OpenID Connect temporary authorization code definition." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b +#: canaille.oidc.basemodels.Client:1 5b28461fe1a648319cb0c397a99b4e53 msgid "" "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " "Registration protocols ` configuration parameter." @@ -5480,13 +5628,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_otp:1 -#: 21ca21a9a0c240f7899bc11bca2da3b0 +#: 479b07160b35479abc87e2221bec17b2 msgid "Indicate whether the email OTP authentication factor is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_email_otp:3 -#: e064888816ad4e228797af005daa0c1b +#: e84db66b26a44edfa4dc1e6cbde4a367 msgid "" "It is controlled by the :attr:`CANAILLE.EMAIL_OTP ` configuration parameter." @@ -5494,13 +5642,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_intruder_lockout:1 -#: 1998dd6eda9e42f981d690ad9c3114d3 +#: 61712b4872ac426aa90f58eee9fe9e4c msgid "Indicate whether the intruder lockout feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_intruder_lockout:3 -#: f673ed471ad545b18ac0693ba051f9ba +#: aef23f3499454b14b5bd0b7bbfec559d msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_INTRUDER_LOCKOUT ` configuration " @@ -5508,12 +5656,12 @@ msgid "" msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_oidc:1 07510d9a21e7471a86b8cb67ebd3f818 +#: canaille.app.features.Features.has_oidc:1 2aabb9553b6949709c73253180bd4d4e msgid "Indicate whether the OIDC feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_oidc:3 aabe8d66effa4394829dee8ebdbc387b +#: canaille.app.features.Features.has_oidc:3 82fb878e33854d91b056aa833b95c490 msgid "" "This feature is required to make Canaille an authorization server for other " "applications and enable SSO. It is controlled by the :class:`CANAILLE_OIDC " @@ -5522,12 +5670,12 @@ msgid "" msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_otp:1 aa9a89f7384f49e680ea30d8baa145b3 +#: canaille.app.features.Features.has_otp:1 7b629967c62d4d4082395fd70d845fac msgid "Indicate whether the OTP authentication factor is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_otp:3 97dbc9427f2942639739f4ca336b2c5f +#: canaille.app.features.Features.has_otp:3 04109fcdb7c5458290d27321fe20d363 msgid "" "It is controlled by the :attr:`CANAILLE.OTP_METHOD ` configuration parameter, and needs " @@ -5536,13 +5684,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_password_recovery:1 -#: be057526037b4c0ca9eeadd4d59faf00 +#: 30f3561a2c7f4f82940e8659e07b9fce msgid "Indicate whether the password recovery feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_password_recovery:3 -#: 25817e283da2497d805bfcad9c0175cf +#: 8dbab1baf660461b957ab458b86f8d1a msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_PASSWORD_RECOVERY ` configuration " @@ -5551,13 +5699,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_registration:1 -#: 625966afc8b04095b75167729f416662 +#: 1a46b31407b94556b7d7ba1b1efb72b5 msgid "Indicate whether the user account registration is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_registration:3 -#: 2805f75ef1fb4cd0832d589018d21548 +#: 8a808dd6387b49d69a88d23b8da5c3de msgid "" "It is controlled by the :attr:`CANAILLE.ENABLE_REGISTRATION ` configuration parameter." @@ -5565,13 +5713,13 @@ msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_scim_server:1 -#: aaecfeba0f154fe2977fa24558dac7f8 +#: b6353866864746679e731902db3a6ad5 msgid "Indicate whether the SCIM server feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of #: canaille.app.features.Features.has_scim_server:3 -#: f585e4196fbb439189756d2389b6c9fc +#: 0e4e8b0c28bf4ff893e4b015d4c045e3 msgid "" "This feature is required to make Canaille a provisioning server. It is " "controlled by the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter, and needs the ``smpp`` extra " @@ -5595,12 +5743,12 @@ msgid "" msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_smtp:1 3a89ac39a9e643149dc0173956a001a3 +#: canaille.app.features.Features.has_smtp:1 6252fb79e38d40f5b8826dfe87efd84c msgid "Indicate whether the mail sending feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of -#: canaille.app.features.Features.has_smtp:3 28bd58a812e84704a83f61aa5e9f0832 +#: canaille.app.features.Features.has_smtp:3 849b7de93582432cb12e533cacf3d864 msgid "" "This feature is required to :attr:`validate user email addresses `, send email OTP passwords " @@ -5608,245 +5756,245 @@ msgid "" "configuration.CoreSettings.SMTP>` configuration parameter." msgstr "" -#: ../references/templates.rst:2 25d974aba30140f4ad6e3445c3d71f50 +#: ../references/templates.rst:2 5f9d52fbb7344304a33a0eb7cfb015fb msgid "Templates" msgstr "" -#: ../references/templates.rst:4 29dfdb16379245fbb820e7677490ee2a +#: ../references/templates.rst:4 0ec160217743460aa21c2c99a386524f msgid "" "This references the template files, their role and the variables available " "in their contexts. The intended audience for this reference is designers " "wishing to build their custom Canaille theme." msgstr "" -#: ../references/templates.rst:8 a9dc7731e37b4ca3900d9a269af917b2 +#: ../references/templates.rst:8 c4dae69dc590432f9691c0d763f7df8c msgid "Base" msgstr "" -#: ../references/templates.rst:10 0083cf8f344a4aebb0db66182082b38e +#: ../references/templates.rst:10 2d86d946bebb41a69933f921f2b7312d msgid "Those templates are shared by all the pages rendered by Canaille." msgstr "" #: ../references/templates.rst:13 ../references/templates.rst:35 -#: ../references/templates.rst:53 b7454449e2d74b1ba858b35dd9506974 -#: 017f3391e5324507b57d461e17c87379 d98c6d77a83046edba83238c1c41f765 +#: ../references/templates.rst:53 a5a0c7c729174b69b7161dbc8abbd969 +#: 298198cd92ec45a490362f33c0e75741 74c0ab51e1da40efb5b75f98868222a9 msgid "Template files" msgstr "" -#: ../../:1 8da82919623541cf99ddb3719a66ce6c +#: ../../:1 7be0a83bad854553b20777a2a0782d23 msgid "The main template inherited by almost every other templates." msgstr "" -#: ../../:1 0302eac895db4e9192dcda1cf138e681 +#: ../../:1 ade7caad09f74fbbbb8e6ae9276e3be8 msgid "The current user, if logged in." msgstr "" -#: ../../:1 e3c9d7ed1b37441a9ea451dc09bf0256 +#: ../../:1 276fe3eb9c3346dd987a579dad80e69b msgid "The features enabled and available in Canaille." msgstr "" -#: ../../:1 92d32aa698334d27bccff184e7f56f4a +#: ../../:1 2d0ad06c56034e4296882043db94e127 msgid "The user locale." msgstr "" -#: ../../:1 46c7365e792d4e44bd0964d401ba3d8d +#: ../../:1 bc1a541d4be4473d9ea86978fb5cbd9f msgid "" "The Canaille instance defined in :attr:`~canaille.core.configuration." "CoreSettings.NAME`." msgstr "" -#: ../../:1 4eb0dc013f754cd19b2b0ead85436fc2 +#: ../../:1 e4a5a4c5dc6f40cdb50a5bbd11ad13ca msgid "" "The URL of the instance logo defined in :attr:`~canaille.core.configuration." "CoreSettings.LOGO`." msgstr "" -#: ../../:1 36b2a2855bb84f5a82440c1ce7a066af +#: ../../:1 a2c4eb224d834cfa8438bfa3da66f569 msgid "" "The URL of the instance favicon defined in :attr:`~canaille.core." "configuration.CoreSettings.FAVICON`." msgstr "" -#: ../../:1 b5502e90eb964459b7477ba8cfd4bb56 +#: ../../:1 d547da6f559b42d78fb3a73d97f0447e msgid "" "Whether the page is boosted by :attr:`~canaille.core.configuration." "CoreSettings.HTMX`." msgstr "" -#: ../../:1 abaac915defc44a39bb760b0fa1ca058 +#: ../../:1 e96fbba85e69401794cd24472a510920 msgid "Whether to display the menu or not." msgstr "" -#: ../../:1 4a846a9c1bf04b76bce93d3f51c2c63a +#: ../../:1 915e2d15e72f448581b4232462138de8 msgid "Whether the app has been launched in debug mode." msgstr "" -#: ../../:1 9a6481ec7a844690a56433119b0a980a +#: ../../:1 8e94e267a2e24fd086ff86ca5dd2d000 msgid "" "The error page. Displayed for all kinds of errors (not found, internal " "server error etc.)." msgstr "" -#: ../../:1 3c9236009d544093ab37e413f94d45b3 +#: ../../:1 2306a7ac505241a7be52428c377fdf3b msgid "The code of the HTTP error (404, 500, etc.)" msgstr "" -#: ../../:1 072ab6b535b245c0b5c16c84a51e0293 +#: ../../:1 4bacf1c221314a0caa4206f59268df11 msgid "The error code description." msgstr "" -#: ../../:1 01363257f0fd47a9beba953b1580f6f2 +#: ../../:1 d55fefef1f0142afae9079c733167f2d msgid "An optional Font Awesome icon reference." msgstr "" -#: ../../:1 5eee8575ceec4ab6bb88624d75a23204 +#: ../../:1 0a534694c6044876aa823571cc6431d6 msgid "Macros for Flask flash message rendering" msgstr "" -#: ../../:1 6df3858522a34bc181b21c3985dab099 +#: ../../:1 de9e78670ac34fd2a8bfeb84e5fd449a msgid "Macros for form and form field rendering." msgstr "" -#: ../../:1 45d3e7a61b2247f0b294c31fcdfd752b +#: ../../:1 010fef6420b54e9fa0030bff7cf89d66 msgid "Connects WTForms, Fomantic-UI and HTMX." msgstr "" -#: ../../:1 29a5444bd2c545e3a16b992c005e6626 +#: ../../:1 722e1cc69d054b6b90eccbbf14d34fe4 msgid "Macros for rendering table paginated with HTMX." msgstr "" #: ../references/templates.rst:22 ../references/templates.rst:40 -#: ../references/templates.rst:58 4e87bb3eb49f4aef877cc6d31a2141b8 -#: 10827c0bcbb14fc3a1b8054d412a9a7d a1745ac8a300467b9a58c9ae79837332 +#: ../references/templates.rst:58 c1141c3140ed49efb429fe7e0ddb07d5 +#: f66b89d5a0514f8fbc41b532ceb496b6 ddd9f189d96f48cb92e11a1819d26a8f msgid "Forms" msgstr "" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 438cfba9a79f484b9721d0f91a75b81a +#: 391264c8ae9342b98ccd4af5cfbcf383 msgid "" "Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf." "form.FlaskForm`" msgstr "" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 57e0185db0a449f485f8c651f063748f +#: bbbef09257294353ae83fcc921eca400 msgid "A form for table rendering of object collections." msgstr "" -#: ../references/templates.rst:30 162e7b075ee14548a43f9cff48b480a2 +#: ../references/templates.rst:30 a6ad4ce568a44098a9e487453d689dd5 msgid "Core" msgstr "" -#: ../references/templates.rst:32 006bb138232740cdba8de572fe62fa24 +#: ../references/templates.rst:32 43fe331ad9c54541ac476bbe141b0a51 msgid "" "The core templates are displayed in the authentication and profile edition " "pages." msgstr "" -#: ../../:1 e38aa98840094488a64497fcdbaa0264 +#: ../../:1 d19a70214ef0419bb0ce07ea39578834 msgid "" "The 'About' page. This is an informational page, displaying the project " "links." msgstr "" -#: ../../:1 4c4ed92740f14deb87533cfa65ee80bf +#: ../../:1 51aba32d8e6d4e43ab37c3042b830e3a msgid "The current Canaille version." msgstr "" -#: ../../:1 d95f55f7f9ff4b5f9686be3dc9a7847f +#: ../../:1 d296db599ed840dda1ffa1af92ce9e15 msgid "The first login page." msgstr "" -#: ../../:1 25602187d8a1450d93af69c3a5cb8676 +#: ../../:1 da37d9d1681e41b7beb4d8eb1f52ee17 msgid "This page is displayed to users who do not have set a password yet." msgstr "" -#: ../../:1 b40d8dbabfb942b9a7e43fd2be5260fb +#: ../../:1 41cf2f06296f4529825add3e93ecce87 msgid "Password forgotten page." msgstr "" -#: ../../:1 168380710d5343d3ab70eaa096d1eaba +#: ../../:1 5544ff3d795643299723088da49f54d2 msgid "" "This page displays a form asking for the email address of users who cannot " "remember their password." msgstr "" -#: ../../:1 c5a709077f1948dc85448baca9d505b2 +#: ../../:1 91f95a21d2cf4cd682dbf7622895f744 msgid "Group edition page." msgstr "" -#: ../../:1 1d741cc01a7b477ebe6484f595b1ae27 +#: ../../:1 eb70b7161ea14a59800362c10a234635 msgid "Displays the group edition or creation form." msgstr "" -#: ../../:1 1bb598284f574fadb4afdaa186936d45 +#: ../../:1 8b37ea965e5e49358b31b3f72980cd14 msgid "" ":data:`None` in a creation context. In edition context this is the edited " "group." msgstr "" -#: ../../:1 cfb58971b75b4288af102ce52358148d +#: ../../:1 c34b493558f041089780f1ee6d8bc0cb msgid "The group edition/creation form." msgstr "" -#: ../../:1 6a01b239a7364e059ac20e5c32156147 +#: ../../:1 e6f30f59e1984b9696c77b053200c933 msgid "The group list page." msgstr "" -#: ../../:1 8f596f7adabe4f35be79f5f12beb5e50 +#: ../../:1 1123e6271a2547938e77a710f559788a msgid "A :class:`~canaille.core.models.Group` pagination form." msgstr "" -#: ../../:1 b7309cf53df840c1ba19e7177f27c99f +#: ../../:1 bb18bceefbe644b39f75dd515e56f4f0 msgid "The invitation form page." msgstr "" -#: ../../:1 9fd33d67aac641e7a5c4fc9098332edc +#: ../../:1 84e88c0d7f8146e7b245b725fa1527a1 msgid "Displays the invitation form to users with the invitation permission." msgstr "" -#: ../../:1 06e9aef4cee8405f96f76c99084ab2ef +#: ../../:1 e6ed714de65843e5bf138d95d9d61316 msgid "The invitation form." msgstr "" -#: ../../:1 50937b6a974343eab8527a1977b6280a +#: ../../:1 dd60812049374cd18c7d3cfa6dfaec5c msgid "The invitation acceptation page." msgstr "" -#: ../../:1 5781a7c918ac43d0842b01eb38b74cd5 +#: ../../:1 8c9de3bd5fd64142b2f1b40644c04114 msgid "" "This page is displayed to users who have clicked on invitation links sent by " "mail (or by other media). It displays a basic account creation form." msgstr "" -#: ../../:1 b447524d0fb1461b81bf503c13eb3788 +#: ../../:1 f3767e9183b5463b8dc502ac64917496 msgid "The account creation form." msgstr "" -#: ../../:1 6f56b461666743eabb55c179df25b96b +#: ../../:1 f8d7f98b7554401081a21e260a78f706 msgid "The login page." msgstr "" -#: ../../:1 0160e1cfedb04735a642a373eba00f85 +#: ../../:1 735e538185894b8282b972ca8b9d3426 msgid "This page displays a form to get the user identifier." msgstr "" -#: ../../:1 d2c554cbdaa941f089c6e1d178e2c40a +#: ../../:1 013c3dbd2c544946b7d26f65bf77a272 msgid "The login form." msgstr "" -#: ../../:1 5bf5c4af6d5949978459c9558e5959c0 +#: ../../:1 81b9105d642d4fadaec60fe2f3ae2b2b msgid "User account creation page." msgstr "" -#: ../../:1 052f0f9a73e54baa90e2beb51100c62f +#: ../../:1 ad5a3f08284e4d97bb932d57aa7d689e msgid "" "This template displays an account creation form. It is used in the " "registration page, and in the manual account creation page available for " "users with *user management* permission." msgstr "" -#: ../../:1 32e07b796f2542448a5c4f651407e05e +#: ../../:1 c4c05e7a207c4a55a3be41d8f4b25339 msgid "" "The user creation form. Dynamically built according to the user :attr:" "`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." @@ -5855,21 +6003,21 @@ msgid "" "only." msgstr "" -#: ../../:1 94e9b36ee7a04d4db509845398904973 +#: ../../:1 242018ca141f4b478d46d6837d5e2d70 msgid "The profile edition template." msgstr "" -#: ../../:1 b86d69135b324d5b879980406f1b321b +#: ../../:1 f330ada37637476fb4bdb1c84a2ae6ea msgid "Displays a user profile edition form." msgstr "" -#: ../../:1 b7dedbaafbf4421dad65efa4edb64bc7 -#: f4ab6a408b4846a28755a25c75d49e9d +#: ../../:1 4c2881082edb4939b2915eadb7ab9bef +#: 010d499b81f04fb199ed2ba1931ee496 msgid "The user that the form will edit." msgstr "" -#: ../../:1 e971a69e070545b6a3efb2ef229a5e78 -#: 57372626a5504526a6602a9903be25f3 +#: ../../:1 8866fc8c9c8e4bf6a3a2f677fd272d3a +#: 4f5e9a4af8cd4f50a56d6ba6f8e5e853 msgid "" "The user profile edition form. Dynamically built according to the user :attr:" "`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core." @@ -5878,95 +6026,95 @@ msgid "" "only." msgstr "" -#: ../../:1 232f10ffd4634e3e8d30fd95968ff20e +#: ../../:1 c4f0fe40593a4ffaa798eca30b4aac78 msgid "" "An email edition form. Used when the :attr:`~canaille.app.features.Features." "has_email_confirmation` feature is enabled." msgstr "" -#: ../../:1 6f083b8c024042d2afc6e830605fcb29 +#: ../../:1 779dc49b2ca248c4b05af1ddacec02b6 msgid "The profile settings template." msgstr "" -#: ../../:1 1e1b6ca57eee407ea373fabfa6b68203 +#: ../../:1 40f89421dbc748bca7235657984eb30f msgid "Displays the user settings edition form." msgstr "" -#: ../../:1 79751bf3182a4e728ce7c771919c012e +#: ../../:1 ea6777c05f4a4e62b2e2385062c6dc8f msgid "Whether the editor is allowed to delete the account of the edited user." msgstr "" -#: ../../:1 f6fbc394bb0e4d23b2025ad9512ed7f8 +#: ../../:1 d1d48c1e0d9c43dca9c07b4617b609c1 msgid "The password reset template." msgstr "" -#: ../../:1 ac11fe027baa47d08507ce462ccf6521 +#: ../../:1 61f93db68163494f9443a2954a20d7e9 msgid "Displays a password reset form." msgstr "" -#: ../../:1 022dc36a70434d0cbbc929e6389ed667 +#: ../../:1 5b94f171e4174999b79c79239f3a0e63 msgid "The password reset form." msgstr "" -#: ../../:1 b78ecf9a56b94a57a3b3708a76eb115e +#: ../../:1 0179c0c333d049749ff14ac90ef2ed73 msgid "The user associated with the URL." msgstr "" -#: ../../:1 2ad2199bf9a543bc89f2b1eab1575ed3 +#: ../../:1 8cbae008b22349cab8e5647fbba5756e msgid "The secret link hash." msgstr "" -#: ../../:1 d33d88c5756d4573bff6aed0f8b22df9 +#: ../../:1 b0015de385324c26ab05aaae65cc53bc msgid "The multi-factor authentication initialization template." msgstr "" -#: ../../:1 fd9b649f626b4b3e93dc09db80ce6ca4 +#: ../../:1 5f61ae62c1f54123872391a3b49eed9f msgid "Display a QR-code and the OTP secret." msgstr "" -#: ../../:1 0f8aaa24949f428d91f05bb8ea510a5e +#: ../../:1 1f370c74d1e44aeaa97929094036c1f1 msgid "The user initializing the OTP." msgstr "" -#: ../../:1 23c8614367454fe48500f84535d7345d +#: ../../:1 a372567c3b3b4ff2a99da5b529c6597a msgid "The OTP secret." msgstr "" -#: ../../:1 ce26bc1edce5450e867c020efdf0879a +#: ../../:1 16636bc9c47b44b79d22b301e102acb2 msgid "A QR-code image representing the OTP secret." msgstr "" -#: ../../:1 5a2fdfda2f1346bf8027c51f73374f77 +#: ../../:1 d164582bacae40b7b2cc7474d6f9fb3e msgid "The users list." msgstr "" -#: ../../:1 3578a4cf58144521ab2d0883f7aa772e +#: ../../:1 882b8d87c79845379937941cc0c97219 msgid "Displays a paginated list of :class:`~canaille.core.models.User`." msgstr "" -#: ../../:1 27156299d35549f6a45ff3b7ff201226 -#: c6be1b3ce3d840fb953550cdaf6e1a29 5cb81767c1704260bc729322c4d6d013 -#: 68d31f09582d4ec2ac3706a0f578de31 +#: ../../:1 708426b50822492ea31a6c0da17b2c48 +#: 125a29d6209f4166bf05a177110f8daf 70d1cef7e598494e868fdb5c6803edda +#: 7cfa3fb4f0f24c93aab1cf503a1a7223 msgid "The paginated list form." msgstr "" -#: ../../:1 8f7a6ad97f984f7b90953f39a07c9bb5 +#: ../../:1 d56775ed9ad242d4836769c7eedf12f2 msgid "The multi-factor authentication code verification template." msgstr "" -#: ../../:1 1180b06a92c045c189a11016f3d869b3 +#: ../../:1 25a01008fa74404d9b4cd104c129c446 msgid "Displays a form that asks for the multi-factor authentication code." msgstr "" -#: ../../:1 653c3e233b7e41b689dd61a1a575768f +#: ../../:1 55e4772a75ef4013bd616b2a95f6f318 msgid "The code verification form." msgstr "" -#: ../../:1 c070afb39eb34d9b92862ae453876355 +#: ../../:1 fe2303972b36464c930cefc5633d251e msgid "The username of the user attempting to log-in." msgstr "" -#: ../../:1 1995353d10d24e2e86c87864fc8b17cc +#: ../../:1 28f6d34d343e49d4820c4954328a6831 msgid "The authentication factor method." msgstr "" @@ -5988,68 +6136,68 @@ msgstr "" #: canaille.oidc.endpoints.forms.ClientAddForm:1 #: canaille.oidc.endpoints.forms.LogoutForm:1 #: canaille.oidc.endpoints.forms.TokenRevokationForm:1 -#: c6b8f8c4f50047c4ad6f8d99a6de0f22 66162ad74b1f491e9815987352e3f843 -#: 3d9992e3d5db4bd0928836aca626058a 3b72a3535cb84d30a1e44d8b91b96903 -#: b95ae3bb349946949cb639e4ef9dc552 47a533342bda4ba2a94c62a94fcb70ad -#: 738540f528d74bcba2787fc6e25a04e1 79b58787a6954501a9b171492c9ba562 -#: cec55d6a542843f7bf4133f5e7160a89 ba39e17ba4834e048f841ce0689e48ba -#: d5d0648bb1b543a4bcd2f863306b2bf8 9075862fb6944b5d93ec7c848595e7be -#: 99b9891b663544458c6c24aafbaa4355 43741eee6aed4f1885f590c4baf20f83 -#: 27c2b976b7ae469d9f82c19665688817 4d826f68173b4b47bac9d96a2abe03a7 +#: 7557d735c06048ccb03d3c4ffed21a1e f5f7ab5ae7484c86a89b57c79ae4d9d6 +#: fb8d2b222f4b4d57abf77d5f8faafcc7 d75199c9f7c0404e8853973b78f0215e +#: 9e95fee049e0435cbd4159781f1edd50 2cb77273b20c4212831821fbd01496a6 +#: 8c8d1dee54184a78812ac3d859aa7038 e460257810ed4a33a7cb85fe807494ad +#: ec61c50a963d4d8fb3aa676239db3c5c b9313e7cc1e546e0839ac8bd0fa1760e +#: 06303d0c8056424983870c202d19074f 5a75a23845964be5b79acd05e664377a +#: 01c7c817569e47c991d87c04991e1b93 994f96504a2d4c4eae1c01b3ef956af4 +#: 69946c83cd194c83be75b93e19961443 364071d215404e7197f25862ad916888 msgid "Bases: :py:class:`~canaille.app.forms.Form`" msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.CreateGroupForm:1 -#: e4a35724e14d4581afe8c1d76256145b +#: bce83bbe98ba42a8aa85ba83608565c9 msgid "The group creation form." msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.EditGroupForm:1 -#: d3488ce4b62b455cbc5919a3592c5eaf +#: 6bc2bd87056e48ce9974042c0d00bfbc msgid "The group edition form." msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of #: canaille.core.endpoints.forms.InvitationForm:1 -#: a3b72e9abc8b44e9862481fe20209e3f +#: a909bb654e4c4565ac1ea27f28611b10 msgid "The user invitation form." msgstr "" -#: ../references/templates.rst:50 16e60f31d5e549d8b0332ecdd2c8ec33 +#: ../references/templates.rst:50 1e8006623dfc46f3871671308d57d286 msgid "The OIDC templates are displayed in the OIDC consent pages." msgstr "" -#: ../../:1 6d3187567112498bafed8211d4e63aa9 +#: ../../:1 7b424e4d64804074874788b1d21f10c4 msgid "The list of authorizations." msgstr "" -#: ../../:1 ab9ee4b402464232a04de5af272ec4a2 +#: ../../:1 49a2e809fc454e9eb81444bfa5aea2fd msgid "" "Displays a paginated list of :class:`~canaille.oidc.basemodels." "AuthorizationCode`." msgstr "" -#: ../../:1 af96456e16b5452da48beda8aa765d4d +#: ../../:1 59ce05b851854f99b0eb2a80c72487c0 msgid "Authorization details template." msgstr "" -#: ../../:1 60b6bca7f05c44c1863aeb04e3cc2f53 +#: ../../:1 b4c494183b864ab2a7c99778f68941c5 msgid "" "Displays details about an :class:`~canaille.oidc.basemodels." "AuthorizationCode`." msgstr "" -#: ../../:1 4ddc2e41ee114c249fcebd0f7a4e86f8 +#: ../../:1 5044fed4cfb1448fa17f25b4328f8bc6 msgid "The detailed authorization." msgstr "" -#: ../../:1 0b979bab813e4ff39f47fc84cc204598 +#: ../../:1 f737bff0908640b78e347324f2c5aa42 msgid "Consent request template." msgstr "" -#: ../../:1 567c68d08849430da9230de7c671e93a +#: ../../:1 b34520f53fde44cf94788a8c83ea3f20 msgid "" "This templates is displayed to users accessing a new application that " "requests to access to personal information. It lists the personal " @@ -6057,190 +6205,210 @@ msgid "" "decline." msgstr "" -#: ../../:1 21f53e087f2148f39791bfc780edefb7 +#: ../../:1 9585274c74414512be370fea928f1c78 msgid "The user whose consent is asked." msgstr "" -#: ../../:1 48a0c4f1b88f4aaa9f10b158450a7bb1 +#: ../../:1 5697b00cb677424f8c60d2ac42ce8e35 msgid "The OIDC grant." msgstr "" -#: ../../:1 f6bbf416c64247dbb06044aa221ab515 +#: ../../:1 54d27cd742d645eea8d2b8d20258580d msgid "The client addition template." msgstr "" -#: ../../:1 acbe06b62ce6465b915b5678d5426a35 +#: ../../:1 e38ade13b3f34dcd8f06043609e0cf87 msgid "" "Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`." msgstr "" -#: ../../:1 3f0bb36f5d614523876371b9466e7861 -#: fc6afaad7f0040ba8bc9e5018bf3ebdd +#: ../../:1 5a6e238a9dd04938b14706662f3ba7a6 +#: ab09685570cc4cfcb98550e38e2f08cd msgid "The client creation form." msgstr "" -#: ../../:1 0c6c8a94ac7f41969c583a4e50c7f8c6 +#: ../../:1 52c08a4adbab4524b7fe5b67e6fe2253 msgid "The client edition template." msgstr "" -#: ../../:1 fc89d67d55e84fa39dd02decf27c7ad0 +#: ../../:1 7b0dfa914fa641d984e21ef0fad3112e msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`." msgstr "" -#: ../../:1 69829ae75e504c15a7042fa0d0ca9a45 +#: ../../:1 aef123f8ca564e2dac9acc501f3f26e2 msgid "The edited client." msgstr "" -#: ../../:1 e4137e9e29764f91ae4314a2b1b55ea9 +#: ../../:1 b22265b671f74acdbc32dde7f2d90d9a msgid "The list of OIDC clients." msgstr "" -#: ../../:1 e417b00de6f14e44b9fe8a0212f90d24 +#: ../../:1 6c42ffb024e24aea9e96df3dd65675d1 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`." msgstr "" -#: ../../:1 1d341bd4be4c40f9b475cab7f3899eac +#: ../../:1 6fd5e350b6974fc3866228bbbbce8734 msgid "The OIDC logout template." msgstr "" -#: ../../:1 4968bf02e5154f7d84a89f9790696370 +#: ../../:1 d2d905e9b7c649ceacf130530b983fc2 msgid "" "Used during OIDC RP-initiated logout, when an user confirmation is needed." msgstr "" -#: ../../:1 b8bf82eb3cac45a4853dcaf6f5ac1589 +#: ../../:1 c5ee6b63b12d450c839d00e524666077 msgid "The logout form." msgstr "" -#: ../../:1 b6c0b03d71bf4873ac7b8565605d158e +#: ../../:1 b9f9a3b61a7e4ec18d7758b91c7021a2 msgid "The client requesting the logout." msgstr "" -#: ../../:1 5bac6224d1084ae98930ff6ccdb785f4 +#: ../../:1 43ad2b30770e4df0af73574b37d2aa2a msgid "The preconsented applications list." msgstr "" -#: ../../:1 9c634a235c2c4991b5e7af9769279832 +#: ../../:1 c702a3f0221d487499921bc257cceca5 msgid "" "Display a list of trusted clients for which it is implied that users don't " "need to explicitly give their consent." msgstr "" -#: ../../:1 c246254d28664995a358d16c42110b49 +#: ../../:1 a6823066956c4fc2b276df9d83388b4d msgid "Description of the OIDC scopes." msgstr "" -#: ../../:1 ae25aa3ac5a345e5a23f6770e33b3ba5 +#: ../../:1 707d1dfb66c04f43aa1c3a325604c102 msgid "The scopes to hide." msgstr "" -#: ../../:1 076793e823214f96b43e5066270c865c +#: ../../:1 cd04c23769714fc283d7545736cf76df msgid "The list of implicitly consented clients." msgstr "" -#: ../../:1 81333f39450142f3b492f8fe7bd17957 +#: ../../:1 82ad0acba372414b871d130c914abfb7 msgid "The number of consents." msgstr "" -#: ../../:1 08c463165ae2487eadebc7a4ae928bd0 +#: ../../:1 daf494895b0c4ccca750e702b80f6169 msgid "The number of preconsented clients." msgstr "" -#: ../../:1 e6d5d68657fa4c5f964a902844cf443e +#: ../../:1 8863e96ede17429c8c8290507298f75e msgid "The list of tokens." msgstr "" -#: ../../:1 a67dbec8f19c460eac41e22b702668ac +#: ../../:1 9ee471727d394a3ca69aa57a1d1ce2a0 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`." msgstr "" -#: ../../:1 7aa26abc05944ecd9afa89d71ca3f60a +#: ../../:1 6f8e482728da4cc4a7cc230406724ac9 msgid "The token edition template." msgstr "" -#: ../../:1 0051850e1f994570be480414cb1a8e50 +#: ../../:1 b032ea266259462482364e665f4e8d7d msgid "" "Displays the details of a token :class:`~canaille.oidc.basemodels.Token`." msgstr "" -#: ../../:1 47975a2ecbce481f94ee843e3a77be73 +#: ../../:1 4f81edbeefee48508c2f8b6cb1e2e197 msgid "A token revokation form." msgstr "" -#: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b +#: ../tutorial/databases.rst:4 5c79df402123406db2947c3941513130 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 +#: ../tutorial/databases.rst:10 fb804421e3114ddeba964dd491d4930f 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 +#: ../tutorial/databases.rst:13 68262ac3da6b430584cf68823fef7dce msgid "" "This backend is only for test purpose and should not be used in production " "environments." msgstr "" -#: ../tutorial/databases.rst:18 5c04f9416e954990a51ad770b994755d +#: ../tutorial/databases.rst:18 87f0d130dcaa4f8190956d5d1a772945 msgid "" "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." msgstr "" -#: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca +#: ../tutorial/databases.rst:24 b8d6bb4ac80d41b08f0544154cdf26f4 msgid "" "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " "instance:" msgstr "" -#: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96 +#: ../tutorial/databases.rst:32 0ace17711acd4f70a5fddee46acd1f29 msgid "" "You can find more details on the SQL configuration in the :class:`dedicated " "section `." msgstr "" -#: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91 +#: ../tutorial/databases.rst:35 10baeaf0e5e64feba07dc33caa1c50ff +msgid "Migrations" +msgstr "" + +#: ../tutorial/databases.rst:37 eddaa2b6515740d895284b1d2b49955a +msgid "" +"By default, migrations are applied when you run the web application. You can " +"disable this behavior with the :attr:`~canaille.backends.sql.configuration." +"SQLSettings.AUTO_MIGRATE` setting. Migrations are not automatically applied " +"with the use of the CLI though." +msgstr "" + +#: ../tutorial/databases.rst:41 dc824fe2ce9047a98a90bc5ac22b09d9 +msgid "" +"Migrations are done with :doc:`flask-alembic `, that " +"provides a dedicated CLI to manually tune migrations. You can check the :doc:" +"`flask-alembic documentation ` and the ``canaille db`` " +"command line if you are in trouble." +msgstr "" + +#: ../tutorial/databases.rst:47 8a13bd9f5910475bb70637ce82181eb9 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 dbd09fe39b724102813c8d259ad336f6 +#: ../tutorial/databases.rst:65 476b7dba11aa40b09e46cbfc9fe108d8 msgid "" "If you want to use TOTP/HOTP authentication, you will need to add the " "``oathHOTPToken`` class to the user:" msgstr "" -#: ../tutorial/databases.rst:58 fcbc8501c455465daa5142894408bb38 +#: ../tutorial/databases.rst:71 4e72e945162d43e3a2dddb9cc73c3dd7 msgid "" "You can find more details on the LDAP configuration in the :class:`dedicated " "section `." msgstr "" -#: ../tutorial/databases.rst:61 2c710def18bc46539b2962ee1bde2bf6 +#: ../tutorial/databases.rst:74 ae34abf5095c4902b974c7371e352c0f msgid "" "Currently, only the ``inetOrgPerson``, ``oathHOTPToken`` and " "``groupOfNames`` schemas have been tested. If you want to use different " "schemas or LDAP servers, adaptations may be needed. Patches are welcome." msgstr "" -#: ../tutorial/databases.rst:66 b7014bf888504dcc865871e8275190f6 +#: ../tutorial/databases.rst:79 50561ef9299b4b178f99b9caa13aebb0 msgid "OpenLDAP overlays integration" msgstr "" -#: ../tutorial/databases.rst:68 a67abbc0745e4c7e9353697969a4fbab +#: ../tutorial/databases.rst:81 3bfe9562b46643b19dee13f11b843626 msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "" -#: ../tutorial/databases.rst:71 b1eebe57d90648b3b24cb48cb49c5436 +#: ../tutorial/databases.rst:84 57a61bc80e964a168c3cfde20793fddf msgid "memberof / refint" msgstr "" -#: ../tutorial/databases.rst:73 6bb596696373483ab0a52f0e8169ab9e +#: ../tutorial/databases.rst:86 d0198ad99ed248f18c75fb6d20f84945 msgid "" "`memberof `_ and `refint `_ overlay is configured and the ``pwdEndTime`` attribute is " @@ -6280,98 +6448,98 @@ msgid "" "attribute." msgstr "" -#: ../tutorial/databases.rst:102 0194f8cb96554ed9a209784cd1a5a10e +#: ../tutorial/databases.rst:115 71e349aa00bd4fdead29c503c330fe1d msgid "ppolicy-config.ldif" msgstr "" -#: ../tutorial/databases.rst:106 09776d76a5c54f6eb7d79e15a0dbed82 +#: ../tutorial/databases.rst:119 d2a999e876784f7fba94ee1c31e67954 msgid "ppolicy.ldif" msgstr "" -#: ../tutorial/databases.rst:119 7bb7048ad0234c28a245626aa50d9c62 +#: ../tutorial/databases.rst:132 ffcc75b8614c45f5a45c20886313db2b msgid "otp" msgstr "" -#: ../tutorial/databases.rst:121 89b862fd590f4c49a156ed490b778051 +#: ../tutorial/databases.rst:134 d2aa3bda5d4c4f77807eecedf1a8f7ad msgid "" "If the `otp `_ " "overlay is configured, you will be able to add one-time password " "authentication in canaille." msgstr "" -#: ../tutorial/databases.rst:125 0194f8cb96554ed9a209784cd1a5a10e +#: ../tutorial/databases.rst:138 2a30eb140e2e4c97b8da3144326b6086 msgid "otp-config.ldif" msgstr "" -#: ../tutorial/databases.rst:129 4070700e524f481ba82662576453c6b3 +#: ../tutorial/databases.rst:142 64b6e0b40dfd4236930973e51e84ce52 msgid "You can adapt and load this configuration file with:" msgstr "" -#: ../tutorial/databases.rst:136 14e54c22e9114f30b809b1605c494c6f +#: ../tutorial/databases.rst:149 e93012fc7b054366b3c4a354f8a9bf92 msgid "You will also need to add the ``oathHOTPToken`` class to the user:" msgstr "" -#: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb +#: ../tutorial/deployment.rst:2 513d899ef6dc4daa8d4d1c80b8fe09db msgid "Deployment" msgstr "" -#: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110 +#: ../tutorial/deployment.rst:5 26a94e873f1d47cfbafd6540e505d700 msgid "Application service" msgstr "" -#: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5 +#: ../tutorial/deployment.rst:7 93f18dfd47d74293b2d4395f986d2df8 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 +#: ../tutorial/deployment.rst:11 e2f76491a3e1478ba424f5edd746c002 msgid "gunicorn" msgstr "" -#: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff +#: ../tutorial/deployment.rst:15 82934b4c9e8c4ada9337c45654f68b77 msgid "Write a gunicorn configuration sample file." msgstr "" -#: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b +#: ../tutorial/deployment.rst:18 9dd0ac25fb264f0597b815ce11a6bfb3 msgid "uwsgi" msgstr "" -#: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4 +#: ../tutorial/deployment.rst:42 962996fed1da4efca4a4a02feebd33ef msgid "Webserver" msgstr "" -#: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4 +#: ../tutorial/deployment.rst:44 47141e5a9bde40d2965553cc49bfe1ee 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 +#: ../tutorial/deployment.rst:48 820201befbcc48c6b3361229592dc180 msgid "Nginx" msgstr "" -#: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e +#: ../tutorial/deployment.rst:114 e2214f07b495472f96579f40c1db65fa msgid "Apache" msgstr "" -#: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e +#: ../tutorial/deployment.rst:153 9cbe3d556cc7426393b232f3d92365fa msgid "Recurrent jobs" msgstr "" -#: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334 +#: ../tutorial/deployment.rst:155 e8352b7061ff460a8c5e98ab8df6b855 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 +#: ../tutorial/deployment.rst:164 41e645107b2f4f429d10e13fdd10dfe3 msgid "Webfinger" msgstr "" -#: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad +#: ../tutorial/deployment.rst:166 f9c13500454c4b66a5e07e4daf8ce527 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 " @@ -6386,7 +6554,7 @@ msgid "" "party application can redirect the user to the Canaille authentication page." msgstr "" -#: ../tutorial/deployment.rst:168 d4f07f118d4443bcbd44e55144cf4d1f +#: ../tutorial/deployment.rst:168 4ab7ac8eeb9148c9a28a3e22f40fb859 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 " @@ -6395,136 +6563,136 @@ msgid "" "domain, a web redirection is required on the ``/.well-known/webfinger`` path." msgstr "" -#: ../tutorial/deployment.rst:170 b305def4f6e74643b1c47e5491e46126 +#: ../tutorial/deployment.rst:170 88e080b374de43a383b7eba9c2965280 msgid "Here are configuration examples for Nginx or Apache:" msgstr "" -#: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce +#: ../tutorial/deployment.rst:172 a88231c631134524a42f216c40811164 msgid "Nginx webfinger configuration for a top level domain" msgstr "" -#: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637 +#: ../tutorial/deployment.rst:181 808e93094e5b413e8e1a4963bdb36b14 msgid "Apache webfinger configuration for a top level domain" msgstr "" -#: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a +#: ../tutorial/deployment.rst:191 c15c08cbe5f945c8898c5d23d90362d4 msgid "Create the first user" msgstr "" -#: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f +#: ../tutorial/deployment.rst:193 4d268375e5ca48bfa9eb90fc4e3ffb44 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 +#: ../tutorial/index.rst:2 b3789b9e712b4beeb246f85f9c49d48b msgid "Tutorial" msgstr "" -#: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544 +#: ../tutorial/install.rst:2 06039f8070f844df9fbda359223ebd9d msgid "Installation" msgstr "" -#: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613 +#: ../tutorial/install.rst:6 4e3bbb4435314752bfbc859bd161dadd msgid "" "Canaille is under heavy development and may not fit a production environment " "yet." msgstr "" -#: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499 +#: ../tutorial/install.rst:8 8969df93b0b149f181069407f24c4d0f 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 +#: ../tutorial/install.rst:11 c23cda31d355445f9fee914f862a52a0 msgid "Get the code" msgstr "" -#: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5 +#: ../tutorial/install.rst:13 3d08ef96a8624845a45354bb4d39476d 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 +#: ../tutorial/install.rst:24 7a1b423ba1a84e3b89da2a77f850bae3 msgid "Extras" msgstr "" -#: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6 +#: ../tutorial/install.rst:26 84c6d479fc1e44129da6841676091c19 msgid "Canaille provides different package options:" msgstr "" -#: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb +#: ../tutorial/install.rst:28 7ec187fcd85a4d31b8db333db6173f83 msgid "`front` provides all the things needed to produce the user interface;" msgstr "" -#: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd +#: ../tutorial/install.rst:29 fa166a769fee47e98b04ca3bc5baed57 msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" -#: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131 +#: ../tutorial/install.rst:30 ccedd8c1040a46feba1f50af045d6387 msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "" -#: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062 +#: ../tutorial/install.rst:31 6c5366eddd4a464ab031a8a0c427de48 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "" -#: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f +#: ../tutorial/install.rst:32 a92c054fbc9d4dfdafe81c1c3afdefe8 msgid "" "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" -#: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122 +#: ../tutorial/install.rst:33 ffa21589e73f4ff89df7807eba77d409 msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "" -#: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2 +#: ../tutorial/install.rst:34 7f6b4a5423bd4119a59432e27daa023f msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" -#: ../tutorial/install.rst:35 11d315c8ffbb415cab5068a2fb287590 +#: ../tutorial/install.rst:35 b817b267e4d54154adb9ad22bdfa5d06 msgid "" "`otp` provides the dependencies to enable one-time password authentication;" msgstr "" -#: ../tutorial/install.rst:36 c60670612f384704ad46fba12f41dcf9 +#: ../tutorial/install.rst:36 6c6fd587ec504c20811d525a2c0a0bc2 msgid "`sms` provides the dependencies to enable sms sending;" msgstr "" -#: ../tutorial/install.rst:37 dfd39313c050407193deac1f01f23e54 +#: ../tutorial/install.rst:37 ee7eda989a3c4aaeb902d0f66f3fea3d msgid "`all` provides all the extras above." msgstr "" -#: ../tutorial/install.rst:39 3d0f7f47cc1a469e9762578aed91f002 +#: ../tutorial/install.rst:39 29ca33d87d8f46618e3ea5f89c4a63f1 msgid "They can be installed with:" msgstr "" -#: ../tutorial/install.rst:46 b7732a260ca84ba3a4130bd6cb0d1619 +#: ../tutorial/install.rst:46 379636cc71c64f659bf2ebd1a5116854 msgid "Configure" msgstr "" -#: ../tutorial/install.rst:48 86df5b7acf954ddfbb2982dbe0a51da1 +#: ../tutorial/install.rst:48 6a6c9b6a1d9d42e3899e0b689311389a msgid "" "Choose a path where to store your configuration file. You can pass any " "configuration path with the ``CONFIG`` environment variable." msgstr "" -#: ../tutorial/install.rst:56 042753d9c5704f21b0da35d38a17a620 +#: ../tutorial/install.rst:56 f710879df41b4abebcfdc30a67527d36 msgid "" "You should then edit your configuration file to adapt the values to your " "needs. Look at the configuration details in the :doc:`configuration <../" "references/configuration>` page." msgstr "" -#: ../tutorial/install.rst:59 a87138181fe64cd9891206619cad6d2d +#: ../tutorial/install.rst:59 c973e8ccd9364877bf39706b06656503 msgid "Install" msgstr "" -#: ../tutorial/install.rst:61 2a7cde9a8ef54f6fb6b527734b5e471d +#: ../tutorial/install.rst:61 64701944f4474d878ae759bd7e578bd9 msgid "" "The :ref:`install command ` will apply most of the things " "needed to get Canaille working. Depending on the configured :doc:`database " @@ -6532,51 +6700,51 @@ msgid "" "instance." msgstr "" -#: ../tutorial/install.rst:70 faefbbda355349e19671492f478d3153 +#: ../tutorial/install.rst:70 f00606bdf1284a4f8014282a323a6784 msgid "Check" msgstr "" -#: ../tutorial/install.rst:72 ab77edb446f44686bf26ef04fbf3dc7d +#: ../tutorial/install.rst:72 ccda38335f984f02a53d28b9a045e4cd msgid "" "After a manual installation, you can check your configuration file using " "the :ref:`check command `:" msgstr "" -#: ../tutorial/provisioning.rst:2 96b0ed3d70cf436a80f82cf3cd89bf37 +#: ../tutorial/provisioning.rst:2 9d7ccfd105804dfca14df19021f0bb00 msgid "Provisioning" msgstr "" -#: ../tutorial/provisioning.rst:4 a4047f8d0f904f6799d549e2f65181b2 +#: ../tutorial/provisioning.rst:4 484d232863c540ef8a27fd528e3a60f1 msgid "" "Canaille partially implement the :rfc:`SCIM <7642>` provisioning protocol at " "the ``/scim/v2`` endpoint." msgstr "" -#: ../tutorial/provisioning.rst:6 969c0c2d7d2a47de8fb1c7441ec62e2d +#: ../tutorial/provisioning.rst:6 acd9d2bffc9042008283550b5dc7271a msgid "" "At the moment, only the server part is implemented. It allows client " "applications to manage user profiles directly in Canaille." msgstr "" -#: ../tutorial/provisioning.rst:11 37c0e4ee9eb54f9f94754fec060e0ac5 +#: ../tutorial/provisioning.rst:11 f96f385b8bdd453fa8dc5dfad64571d4 msgid "" "Some SCIM :ref:`features and endpoints ` are not " "implemented. In addition to these, Canaille will implement in the future:" msgstr "" -#: ../tutorial/provisioning.rst:14 a5d6aea95b444cbb9d10731986ae66ac +#: ../tutorial/provisioning.rst:14 2d6934f2d1de4397a5cfc88af92433ce msgid "" "Access control for clients on the SCIM API endpoint, to finely manage " "permissions depending on clients." msgstr "" -#: ../tutorial/provisioning.rst:15 98d88ce07bc640bcafedee10c9bbc98f +#: ../tutorial/provisioning.rst:15 350b84195c284bdd9ae93eed7e2d47ff msgid "" "Client-side implementation, to broadcast user and groups modifications among " "all the clients." msgstr "" -#: ../tutorial/provisioning.rst:20 706556a4f4de43658b7ee3583115216a +#: ../tutorial/provisioning.rst:20 12f015c76be64351862c7d36a87f4ce3 msgid "" "To allow clients to access the SCIM API, the client must have the " "``client_credentials`` grant type configured. This allows clients to ask an " @@ -6584,45 +6752,45 @@ msgid "" "queries. Currently, user tokens are not supported." msgstr "" -#: ../tutorial/provisioning.rst:24 5abc69c6a6ff4cd48e3f2b01cdaa1a52 +#: ../tutorial/provisioning.rst:24 d039cadee3494ada9106f9226b224ab5 msgid "" "Then the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter must be enabled." msgstr "" -#: ../tutorial/provisioning.rst:33 08c5f12f847f4376993010f11b7055e6 +#: ../tutorial/provisioning.rst:33 f3a7fcf65cc545c4a7ad8ac2009b465e msgid "Implementation details" msgstr "" -#: ../tutorial/provisioning.rst:35 163f28f6d3cf4d94bc60bddec6b1b25e +#: ../tutorial/provisioning.rst:35 2d162e0038714a3b9aea13a19a098bee msgid "" "Due to technical reasons, the Canaille *User* and *Group* resources " "implementation subtly differs from the :rfc:`RFC7643 <7643>` definitions:" msgstr "" -#: ../tutorial/provisioning.rst:37 5e235bded8ba46ae94fe89b82341e3a9 +#: ../tutorial/provisioning.rst:37 c8d0951c350640639249f99950282b08 msgid "``User.userName`` is immutable (while it is read-write in RFC7643)." msgstr "" -#: ../tutorial/provisioning.rst:38 5c0be56ebf754660b7702622cd085221 +#: ../tutorial/provisioning.rst:38 76d54c1a256240818c4a5f84d43bf76f msgid "``User.name.familyName`` is required (while it is optional in RFC7643)." msgstr "" -#: ../tutorial/provisioning.rst:39 35cfdbc7fd954036805a8b64bc46ae90 +#: ../tutorial/provisioning.rst:39 ac544d900c0249048f073753be25a317 msgid "``Group.displayName`` is required (while it is optional in RFC7643)." msgstr "" -#: ../tutorial/provisioning.rst:40 7490ca87a3fe4b5f9fdc80991e74a130 +#: ../tutorial/provisioning.rst:40 c76213daf50f40c2852de2fdec93ba48 msgid "" "``Group.members`` is required (while it is optional in RFC7643), i.e. groups " "cannot be empty." msgstr "" -#: ../tutorial/provisioning.rst:43 432c05f5057e4d6ab93225079865e789 +#: ../tutorial/provisioning.rst:43 58496f192f4c4b94b70c8a760525369c msgid "Debugging" msgstr "" -#: ../tutorial/provisioning.rst:45 ecce1ab63ddd4b1a8dd3c7c65e9a990c +#: ../tutorial/provisioning.rst:45 faa6b4b7a057496abc9d96efcca72e82 msgid "" "To check what data are exposed through the Canaille SCIM API, you need a " "*client token* and a SCIM client application. To generate a client token, " @@ -6631,33 +6799,33 @@ msgid "" "interact with the API:" msgstr "" -#: ../tutorial/provisioning.rst:49 0494884602794d818953870e734c721b +#: ../tutorial/provisioning.rst:49 25e370c855454c10a7f705a96e7c3049 msgid "scim2-cli usage example" msgstr "" -#: ../tutorial/theming.rst:2 1e8d2a5169ed4313896d1a9c33dee1ab +#: ../tutorial/theming.rst:2 25ff583d708742d6b564212c42ac76a0 msgid "Theming" msgstr "" -#: ../tutorial/theming.rst:4 8b9d02343d7b48a08704a60b2394672a +#: ../tutorial/theming.rst:4 19f015eb34ff4185b0fb33829ca916be msgid "" "Canaille comes with a default theme based on `Fomantic UI `__ but any part of the UI can be slightly modified or even " "entierely rewritten if needed." msgstr "" -#: ../tutorial/theming.rst:7 aaa944c2e0b64fc7a9d04703be543cc8 +#: ../tutorial/theming.rst:7 0fdaf7ef1f1d41e88243804d40d16984 msgid "Custom templates" msgstr "" -#: ../tutorial/theming.rst:9 d431b58edd7c4ab5960f4889ad4bf8b1 +#: ../tutorial/theming.rst:9 7e432962674842a6a4ec1321ef3d20f9 msgid "" "To use a custom theme, set the :attr:`~canaille.core.configuration." "CoreSettings.THEME` to a path to a directory where you will host your custom " "templates." msgstr "" -#: ../tutorial/theming.rst:11 f70b37ff511248529ee7801adeae3f40 +#: ../tutorial/theming.rst:11 f5e08d34905747839e25e36c22ee7811 msgid "" "Then in this directory, create new files for templates you want to override. " "The exhaustive list of templates is available in the :doc:`reference <../" @@ -6667,15 +6835,15 @@ msgid "" "the Jinja ``extend`` directive." msgstr "" -#: ../tutorial/theming.rst:15 3abcbfdad0cf41628a3bb4e27789bdf0 +#: ../tutorial/theming.rst:15 cfa8a0a2dfe1408d9dd4b339f27a3016 msgid "core/about.html" msgstr "" -#: ../tutorial/theming.rst:26 19d7d3280a9b4cc8a868428d2ef5b12f +#: ../tutorial/theming.rst:26 08dd0f6259c34b5d92c476bda8bd40e2 msgid "Custom style sheets" msgstr "" -#: ../tutorial/theming.rst:28 13f029143d7a41ee97bff9bab5c6696d +#: ../tutorial/theming.rst:28 ee6d9940bc7d453f8b754abbf51cfcba msgid "" "If you simply want to put your custom style sheets in the default theme, you " "can just push it in the ``base.html`` template. Put your file in a " @@ -6683,30 +6851,30 @@ msgid "" "css`` and reference it with ``theme_static``." msgstr "" -#: ../tutorial/theming.rst:31 5494d679f6294826a4fe0ec3307f1d90 +#: ../tutorial/theming.rst:31 bcea65c8d4ef4139a353420b7e1d5cdd msgid "base.html" msgstr "" -#: ../tutorial/theming.rst:43 eb8604a736ba49c7a5268aff30c7045f +#: ../tutorial/theming.rst:43 b8572e3c71c54d65ad8ea6ce986d30ea msgid "" "To write your custom theme and check how it is rendered, you can put the " "path to your theme in a ``.env`` file and run the Canaille demo instance, as " "described in the :ref:`contributing guide `" msgstr "" -#: ../tutorial/theming.rst:50 f2e3066341864ffdb46f79b737fd491c +#: ../tutorial/theming.rst:50 94442631b4e4430aabc6abe4b0f565db msgid "Run the demo instance" msgstr "" -#: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 +#: ../tutorial/troubleshooting.rst:2 ae54b220570140fc9af7133272cd26f4 msgid "Troubleshooting" msgstr "" -#: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934 +#: ../tutorial/troubleshooting.rst:5 3f156ee26a7646f69513b66ef675d793 msgid "The web interface throws useless error messages" msgstr "" -#: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de +#: ../tutorial/troubleshooting.rst:7 0fb6c271073a4abdb010d7f95eeac81e msgid "" "Unless the current user has admin :class:`permissions `, or the installation is in :attr:`~canaille.app." @@ -6716,82 +6884,82 @@ msgid "" "`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter." msgstr "" -#: ../tutorial/troubleshooting.rst:12 358b28e47d4a4b48ba2bde7ddd4bc5f3 +#: ../tutorial/troubleshooting.rst:12 58570442c05e4cd19751820083151ece msgid "How to manually install LDAP schemas?" msgstr "" -#: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c +#: ../tutorial/troubleshooting.rst:16 067c19e9f37c46ea91b8bed914bcd276 msgid "" "Schema installation can be automatically done using the :ref:`install " "command `." msgstr "" -#: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154 +#: ../tutorial/troubleshooting.rst:18 b590574910044ce299bfbdb318ebea6a msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "" -#: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6 +#: ../tutorial/troubleshooting.rst:20 6ad84183e4c64116b49932cef2584fd0 msgid "" "The `deprecated `_ " "one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" msgstr "" -#: ../tutorial/troubleshooting.rst:21 2681e5ed98de4633ab3e958980570c61 +#: ../tutorial/troubleshooting.rst:21 19abee92e8b14d4ba90f9506412d8118 msgid "" "The new one, based on a configuration directory (generally ``/etc/ldap/slapd." "d``)." msgstr "" -#: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09 +#: ../tutorial/troubleshooting.rst:23 a8ca0bf4ec6e4d71806d2071d226d2cd 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 +#: ../tutorial/troubleshooting.rst:26 e6d653692ee34c47bb5efe760a381699 msgid "Old fashion: Copy the schemas in your filesystem" msgstr "" -#: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f +#: ../tutorial/troubleshooting.rst:35 d64d1890fd104a4ea9a8d9941189af0b msgid "New fashion: Use slapadd to add the schemas" msgstr "" -#: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b +#: ../tutorial/troubleshooting.rst:37 692e81784a5e4fa48dc2bcc2e1cf4a1e msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" -#: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772 +#: ../tutorial/troubleshooting.rst:46 d404812e38644b3090d9823e682c9254 msgid "How to manually generate the OIDC keypair?" msgstr "" -#: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88 +#: ../tutorial/troubleshooting.rst:50 62e08f82a4804de8b5dd459b903a8cd3 msgid "" "The keypair generation can be automatically done using the :ref:`install " "command `." msgstr "" -#: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984 +#: ../tutorial/troubleshooting.rst:52 06dd3710174a40e4a0ef3b2c54a2e9b5 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 +#: ../usecases.rst:4 168d233560c64d829ee09d581aa7d361 msgid "Use cases" msgstr "" -#: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9 +#: ../usecases.rst:6 a65d311c88094169acb330c3d6e3c7f7 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 +#: ../usecases.rst:10 179edacb13c54333aace4b68c4708253 msgid "OpenID Connect provider on top of a LDAP directory" msgstr "" -#: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6 +#: ../usecases.rst:12 302b4ac43f3e467e85d2bd4b19297569 msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to add a :ref:`OpenID Connect ` :abbr:`SSO " @@ -6799,11 +6967,11 @@ msgid "" "while signin-in only once, without any data migration." msgstr "" -#: ../usecases.rst:15 35bb9bbb50064dc7a5383c9d5371adfd +#: ../usecases.rst:15 e0024a833d08474ba72b828f6eb83a8e msgid "Profile edition of LDAP users" msgstr "" -#: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3 +#: ../usecases.rst:17 ea3058635a35476eb122ab777c349dc3 msgid "" "Your organization has a :ref:`LDAP directory ` and you " "want to provide a way to your users to :ref:`edit their personal information " @@ -6811,11 +6979,11 @@ msgid "" "administrator intervention." msgstr "" -#: ../usecases.rst:20 22ec6d0c58ed413b80cd6aca23f637b6 +#: ../usecases.rst:20 e81a578b174c43b194932cdd88c38500 msgid "Password recovery with a LDAP directory" msgstr "" -#: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd +#: ../usecases.rst:22 7f58bba7651f4df6870fc163b486932f msgid "" "Your organization has an historic :ref:`LDAP directory ` " "and you want to provide a way to your users to :ref:`recover their password " @@ -6823,11 +6991,11 @@ msgid "" "administrator intervention." msgstr "" -#: ../usecases.rst:25 f44f325b29594fc7b31521d259e27d5f +#: ../usecases.rst:25 2b626e10eb2b480b816b9151a8f160fd msgid "A lightweight IAM for unit testing" msgstr "" -#: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b +#: ../usecases.rst:27 cff10ba64f6e4184bcbfccae206f6d9c msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You don't want to mock " @@ -6836,11 +7004,11 @@ msgid "" "application against different identity provider tunings." msgstr "" -#: ../usecases.rst:30 5b9b8e07b9154150a105088cc630ce6a +#: ../usecases.rst:30 130dbc72dcb54dbf830a1c0e199e9e3b msgid "A lightweight IAM for developing" msgstr "" -#: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51 +#: ../usecases.rst:32 0ff43cbb31f548089d237c4fbcc8e312 msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM " @@ -6848,11 +7016,11 @@ msgid "" "cannot bear launching a full Keycloak in a Docker container." msgstr "" -#: ../usecases.rst:35 e594e15fba204d65a3f483c36e7c0aab +#: ../usecases.rst:35 adc956f5cf0f43bc988261b4f0ba541a msgid "A lightweight IAM for CIs" msgstr "" -#: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24 +#: ../usecases.rst:37 68048b0e31044e6eb1b844a8541f900d msgid "" "You are :ref:`developing ` an application relying on " "OAuth2 or OpenID Connect to authenticate the users. You need a IAM server " @@ -6860,11 +7028,11 @@ msgid "" "`continuous integration environment `." msgstr "" -#: ../usecases.rst:40 8a37de08f6594334a3ba6ed2f9a3b71e +#: ../usecases.rst:40 ef4f06a88d3f4f3d99df361d7d25da08 msgid "A CLI to quickly edit LDAP directory users" msgstr "" -#: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2 +#: ../usecases.rst:42 aec48cc98e9043ac962854780f5e4aa5 msgid "" "Your organization has an historic :ref:`LDAP directory `. " "You are tired to deal with *ldif* syntax to manage your users and group and "