diff --git a/doc/locales/fr/LC_MESSAGES/doc.po b/doc/locales/fr/LC_MESSAGES/doc.po index c7e90721..4697ad20 100644 --- a/doc/locales/fr/LC_MESSAGES/doc.po +++ b/doc/locales/fr/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: 2024-11-24 19:30+0100\n" +"POT-Creation-Date: 2024-11-25 14:07+0100\n" "PO-Revision-Date: 2024-11-24 18:32+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 f066845304ae44b1857a2cd827ef9300 +#: ../../CHANGES.rst:2 c415689d242946298da972c97d5bb0c4 msgid "[0.0.57] - Unreleased" msgstr "[0.0.57] - Inédit" @@ -51,29 +51,29 @@ msgstr "[0.0.57] - Inédit" #: ../../CHANGES.rst:469 ../../CHANGES.rst:499 ../../CHANGES.rst:555 #: ../../CHANGES.rst:588 ../../CHANGES.rst:609 ../../CHANGES.rst:619 #: ../../CHANGES.rst:642 ../../CHANGES.rst:709 ../../CHANGES.rst:747 -#: ../../CHANGES.rst:764 ../../CHANGES.rst:800 9d6b1d66801b4c86aaf7b10f3c3db5bd -#: 3a8e409ea3c244a1855b1eaaab55407f b1ec6ff03fc047728f47c606ac3b87c4 -#: 0d8c9a7edd7f4cb2b3b2f8603a23e7d2 f476bd23ca8f4082aabbc7a19e0ab5f5 -#: a06ae36e63434330a392c13d929686b6 423503b2e33642249fc402376a2ccd89 -#: 4cf16188a39741f3ac13878f9137b838 57956e4671b141e59c253878f7e9ef33 -#: c794f22deae64148a3cf87c6b05cfa4c 92d5a3a91c2947fa8909e2d29280dbc9 -#: ad1c662936754226a068ba09452f7c32 5e5cd1f910b84e299c4ac5eb6e6621f0 -#: cdf61c11a5a14b0d9c50e5c467b3d805 02f204bfc88f4496a90d4f128b0570f4 -#: 4d23d71c0244482cb57268cfe9002f07 3cf89e1abda746a586184d722354a91c -#: af4b809a9e3c4f859b5b0174e9d2bf06 1def87fb8caa496f9a8d443b1aae0b77 -#: eae1d84a65934160ac0d69ea6698e924 75185cb8104345689c2d2ff50c8e5943 -#: 935e6050d9304e5f987d0e9649097a11 38d82d14804e41dd8a7b615068bf9b6a -#: d6ba084123a34a38870f7f510cb8849a b71008aa5a7844dda0c4c5c1336bb7df -#: 26e7b8415d8246ccb23c1dd7542b4632 bdfbfc4c3f83401f8e8517f7ee77a5ac -#: 51652d52954342029cd22aea81458ac8 fe6b00ae7c424fcba8dbb64b2514e507 +#: ../../CHANGES.rst:764 ../../CHANGES.rst:800 91a8054efa234209906812cdd41bd586 +#: 2e9453d4722144fd9ad7f53b28a7cb37 9543a44b8b874bfba8fe2c14eb5a3b9e +#: ee17ac05a56b484a911079a62e4239b1 47f754d8104f45fd97c2a708d3e3a762 +#: 38acf51b96b14d9ea147a107168673ca 68234c29757c49afb6f848010320f9a1 +#: c5f04758aea24340a27c062595482f64 5f6ee4c5340841679e9163ab94a26631 +#: b9643ba008b646b09a0c81c05f4f5d1a 4f1725d88b8f47f89e0963791a599b78 +#: 882c5648be5043d9bd0548a4bbfee8b9 31ef883ef72b492e91f1fb1335893cb8 +#: 4fcceb25cc244723bf6785a76975c5e3 33560e599f12447bbaa84eeedb8f3351 +#: 363be11c3f4947fca1ca71461245c92c 4d0de4ec5fef48c4a8b0a5e66fede8cd +#: fbe3161ef07e47518b92e3277841bc87 caa4f9d1911745da8d44e057214fedeb +#: 366186dbb3ef4343a7ac182f9000a430 5e1e83c39a874fb79ecef4d60c00f3c4 +#: c15daece1da4437f91b625a265916b67 ac2ba3bda6c543e6b2da1e5104c1e980 +#: f290d44be0ec48a6b509a60a763954d6 5fb724ac7eba4e1b928c242224b4a6b9 +#: d6334e39f82a4b09b331222f464eca4c ec21757a31c24bee89fbb3cdfdbbb427 +#: 24fe9ee5210a4bc3ac7b1df5136ef1f4 fc7d263a49f94a478ff294d4fc74db3f msgid "Added" msgstr "Ajouté" -#: ../../CHANGES.rst:6 d9938b7139144750874fa3d85f5c7747 +#: ../../CHANGES.rst:6 05060126fea740ef82fba8246132aa6e msgid "Password compromission check :issue:`179`" msgstr "Vérification de la compromission des mots de passe :issue:`179`" -#: ../../CHANGES.rst:7 6d21d5e4ec3e41a99e090d3497434177 +#: ../../CHANGES.rst:7 a90b270f7e144a4b81babbac96f5ff22 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:" "`~canaille.core.configuration.CoreSettings." @@ -85,7 +85,7 @@ msgstr "" "ENABLE_PASSWORD_COMPROMISSION_CHECK` et :attr:`~canaille.core.configuration." "CoreSettings.API_URL_HIBP` :issue:`179`" -#: ../../CHANGES.rst:13 11f4accaa28e4de99d3d07ad54523396 +#: ../../CHANGES.rst:13 045b041136be49de8d54674ad57fea87 msgid "[0.0.56] - 2024-11-07" msgstr "[0.0.56] - 2024-11-07" @@ -103,32 +103,32 @@ msgstr "[0.0.56] - 2024-11-07" #: ../../CHANGES.rst:624 ../../CHANGES.rst:632 ../../CHANGES.rst:657 #: ../../CHANGES.rst:665 ../../CHANGES.rst:673 ../../CHANGES.rst:686 #: ../../CHANGES.rst:700 ../../CHANGES.rst:732 ../../CHANGES.rst:755 -#: ../../CHANGES.rst:786 083538a8ed2840dbb3516a58dc2c347b -#: 3ab3343de6294c0091f7df2fc7999d80 3f2471bd41f7442398e2799d60d21fca -#: 911ab486a7dd4870bcd41bb19caaa5c8 f3802df89f474ad388bdbb916b8da760 -#: 9d31525cd21245a09868967fc2d85c05 4fb15f96e11b493bbf5e4a5f4a44272d -#: 7ddfacb797554ccc958dbecfe52aa4aa 8b9b2d1b88f048a3b0598ea831d52b03 -#: ae6d61b8c49242bdafe6c862c33071c7 c30992c2a9c34d53b384b937217afc8a -#: ef31dc8b2d4048379c4f3cf50a76fba0 cd421849f46e4d5b8e3f04f7cb11def1 -#: 092b6f7685bd43ab873bc24d3eec4a1f da457b3a224c4ab998c08856e4e7b2f5 -#: 03c5fed9e80d4e608b3a41d8496b6bfd b29aee5f9a284d57b909fac4338683d5 -#: a4e37461b42849c4bb496b3f070aea47 aab3b9094d7f41b3bb7d4053b9865a41 -#: 5669ff63ec7c4322ad62410daff2a395 b0356e505fc84fda98f25c7a1c364f09 -#: 76e552b978ae4a9c852c337e557a8ad2 457c0603be1643c182ce2c8b0facb172 -#: f88bd537dbe34f6b9d01bdbb4a2cc35f 8da837785d96481d85d8de265090882f -#: 3cd4c27c6a94429dac387628f5e43512 0e286fb66b194ebb9332cc1e732908f7 -#: 16d31564aa1949a188c07c9053474c64 0c3210d182ec419fa7db36a7b133f44a -#: 38e1a98c3ed94d819c79a8681c6ba1e3 e3c3f354faa8417f9ee8b8fb12145445 -#: b8408a5f30894e2eb4b578b4de02f8c8 b2d5b8093db24aa0bb7076c2154a7fcc -#: b603e9eeedd7446ca17fbdee25916a01 87fb03fe98e541b59b85e871aa395b62 -#: e8e07caf623249f0ad457066a6b6ac9c 35f68b4a21654d448739181dff251c7b -#: ba56c7970b414412b74df73940099db0 cac6531c5f06439bba341e25d82e8cf5 -#: 7bf7900788284e6cb63f8b08f67594f5 278cb3ba28344709a1572934b6706967 -#: 8ab9e7c8532447f0ae38a97ff9ce54c5 07a4ac57f1584e908f780013fde449b4 +#: ../../CHANGES.rst:786 13ee0de3f7db4046b8399917e8d52e0b +#: 0dc0629179f5400386e9c856338e265d 574cec87282d4deaa94c9e30d3ffda4e +#: e81d5f3a4a1d4cf3acaf5a4940525072 961b2233ae9f485182b152d59efbf264 +#: 8aa12c56b1ec4fb99bd9490d6dbe4272 ced309911720411692cd12a52473f32b +#: 1987b2d6de09493891eeef4d4d2d100b aba77f15d4a545578b783976b275487e +#: f251ffbac69548f6b747cd4b8ea6f8ec 3a19b71ff5a24cbe915c71bbfabad433 +#: e7589d9e344f47f3a850bead8a1636b6 78867dced8fe492a821b465c5d539c76 +#: eb9c68774eb84fb49f179bde0611a346 0f275a51c41e4604b28af3918ea74584 +#: a6edd30d5949449694f7b250e0031010 8862dccf8b1845bc8f2d341dcaec4c71 +#: 19bfd15c66a5403aa8cb0ca83baa5541 67b2572f05c84530aed1f635543785fe +#: 867c5d46876a4e5ab99c161d9966740d ff6bc12e61414002b60b75641ed97204 +#: b3de1f055977465586c5f10103e88bb6 c582172293c74e6e9df5bb65756c4c6c +#: 1e34ec458ec14ddbb2bb0e770fb28f63 2d621438090341fda9ad1304b5a849d2 +#: e3bf374e75dc4099859d20d3fd3e15ae dbc926c58a3d4413bcffcf2aa8392a17 +#: afa06832ab324399ac847aaebc6e5ea9 ecbe693daf1741048b55a19bbe0ceec0 +#: c3c0b0f146684406ac9a9b7887f16d37 8823207f7e254b269b612654eea87b6b +#: d30b2503bd444caeaf914fbb2ea5ece0 9d27864f27c84f73af85f211d9b82b65 +#: e7c8e47588974f7086c494af072e2b2c 9b4c62548257483c98ca66a652097f3d +#: b4038234a1f740a88609e1569d381bc0 6b9ddd33c0424f5ca821016d6fd5ed3d +#: 69919a35cbcb42ce9e5037803879cf51 839f52c15ed94f0ba4a9356f392f728b +#: fdf7420d3b8b4718b3b4d99edf6e6aff fc24747886644b45a32e65e1676a3ad8 +#: 0d17007dcf37499ab35d22c4f6a6b677 872b6e973efd4b99af4fd291423c0746 msgid "Fixed" msgstr "Corrigé" -#: ../../CHANGES.rst:17 268b58fddbda42eaa28da61d4e81779a +#: ../../CHANGES.rst:17 10c707b06b884b168b2dd26bffd7bf76 msgid "" "With LDAP backend, updating another user groups could result in a permission " "lost for the editor. :issue:`202`" @@ -136,7 +136,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:21 4066f7971e1440d0b9c31680d28b28c4 +#: ../../CHANGES.rst:21 efa1fc20329f42918fe6a530617cf102 msgid "" ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :" "attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` " @@ -146,19 +146,19 @@ msgstr "" "MAX_PASSWORD_LENGHT` et :attr:`~canaille.core.configuration.CoreSettings." "MIN_PASSWORD_LENGHT` :issue:`174`" -#: ../../CHANGES.rst:23 40380e5318f74f728cc8e72f69a70a1f +#: ../../CHANGES.rst:23 cdab69b7537c452caa3eadb572993a40 #, fuzzy #| msgid "Password strength visual indicator :issue:`174`" msgid "Password strength visual indicator. :issue:`174`" msgstr "Indicateur visuel de la force des mots de pase :issue:`174`" -#: ../../CHANGES.rst:24 a870cc07f3354e50b35ef79992c03720 +#: ../../CHANGES.rst:24 2ae6bad543d64621886630d3db7832e6 #, fuzzy #| msgid "Security events logs :issue:`177`" msgid "Security events logs. :issue:`177`" msgstr "Journalisation des évènements de sécurité :issue:`177`" -#: ../../CHANGES.rst:25 d8806d95a88d419796ac7a7d1d79dccd +#: ../../CHANGES.rst:25 40ab5f1ed3bc406fb662d0025e5b3212 #, fuzzy #| msgid "Support for Python 3.13 :pr:`186`" msgid "Support for Python 3.13. :pr:`186`" @@ -170,32 +170,32 @@ msgstr "Support de Python 3.13 :pr:`186`" #: ../../CHANGES.rst:318 ../../CHANGES.rst:336 ../../CHANGES.rst:374 #: ../../CHANGES.rst:413 ../../CHANGES.rst:448 ../../CHANGES.rst:491 #: ../../CHANGES.rst:595 ../../CHANGES.rst:649 ../../CHANGES.rst:681 -#: ../../CHANGES.rst:695 c36f4ed488fa4b33a5c3192f5240ecc2 -#: bd47b3679b1d4daa82e117c56086bc95 ecd8b7cb28cb46e49fbfb5c20c37e306 -#: b5825b392e8f4629b9e10858a0842703 aa8e96957d624618a52868184a093c23 -#: 2d12678eae22474e959e065f018208be 5bbe5e33c0174fe59de1754b33fc2686 -#: 18a63654d7a2483688b1a939d519d657 5d053d3c01374374a1bde4afb239e3ad -#: aa9f660105cb4520bafdbf7a88de8fb7 afe56206107947918b5ba3dc28d1abce -#: 7f21262e001b48c8b6a442f4c7dce895 d5feca263714439fbb620f8de692f7ef -#: c0fbfcf990d74375be15e30bc9cf41e4 62c59debd6a94913af110750e5810818 -#: 3b96917ae5b04cf49811ef52492498db dcef5e3846d042ddb9b7d66612fa69d8 -#: e871bfb060634a45adb7da2650db705f c62ac36cd2864df0aa5c865cb15862d6 +#: ../../CHANGES.rst:695 254357b217fe4a309d66a400497a104a +#: b52d8d66ee46448395c2ef69801946fa dcd69f53d0aa47c588bd5df81a94bf8f +#: 46df62c5bb0144069dbcd9e2002d7a31 5b1d82108f564276abe59cdc520c94e0 +#: 5be16c2fafdf49c3bd7e1ea5c784f5ad 9683d0e40c584035b4079f806594e3fb +#: 398263c90dc74b15ad03b2aa78f5216e 69dced26171e4725bd4bd158cada5f9a +#: bf8e8844acd9402796a472364448fa7b 5281ba16c8ef4e61a1315065ce59cfef +#: dc45f8b42dfa4598a793b459828fe2bf 1fce46356a934e209fae382802fcc624 +#: f00576fac1524365903e3114cfe31056 7978d2d2d93b41ac87432dcd2937dde3 +#: 6aa1c0d77e094ba8848ad4d83b773bd8 70062efedd9f4d43b17de99d6d8f36b9 +#: edd967eb63c947ef8ebe6bf904e26e5e df741c4602764336b114859e6e2deb48 msgid "Changed" msgstr "Modifié" -#: ../../CHANGES.rst:29 ebd1b21973fb439fb24747be7cb7f6c5 +#: ../../CHANGES.rst:29 c7940e351aac4939b964ccb80cebd616 #, fuzzy #| msgid "Update to HTMX 2.0.3 :pr:`184`" msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "Mise à jours vers HTMX 2.0.3 :pr:`184`" -#: ../../CHANGES.rst:30 0c0dc9d216e54fc2a010dc34da666624 +#: ../../CHANGES.rst:30 dfc1569ae0ec412d86503a0695522fa5 #, fuzzy #| msgid "Migrate from poetry to uv :pr:`187`" msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`" msgstr "Migration de poetry à uv :pr:`187`" -#: ../../CHANGES.rst:31 8b837bb77c0c4b829578de45a1308c62 +#: ../../CHANGES.rst:31 40c97bec2553487fa62efc486d3ee444 msgid "" "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` " "and ``mysql``." @@ -204,31 +204,31 @@ msgstr "" "``mysql``." #: ../../CHANGES.rst:34 ../../CHANGES.rst:384 ../../CHANGES.rst:792 -#: efc8d1dc200c49bc9eba50de784d58d0 a4543f5cd24243e0a4aff935acb1abcb -#: 0965eb3a985e4a79a583219a93dfa103 +#: bc1a20b5783a4fe38fa201438a8075e5 b0e6e7ec669e424db9388def0897cc72 +#: 7344cae030e642f99598aa5f0e716054 msgid "Removed" msgstr "Supprimé" -#: ../../CHANGES.rst:35 ffcb2026c97345949b5c43f010333b95 +#: ../../CHANGES.rst:35 3f97d00692d047dbbecb5c18a2d45b07 #, fuzzy #| msgid "End support for python 3.9. :pr:`179`" msgid "End support for Python 3.9. :pr:`179`" msgstr "Fin de support pour Python 3.9. :pr:`179`" -#: ../../CHANGES.rst:38 5ce135ec2bb344a7901b04b5e52ca250 +#: ../../CHANGES.rst:38 4a57056601f148969254d2f049e0f460 msgid "[0.0.55] - 2024-08-30" msgstr "[0.0.55] - 2024-08-30" -#: ../../CHANGES.rst:42 6080810493444192ade3ed6169fc5881 +#: ../../CHANGES.rst:42 a037ad5da20049ad82e9f9b0d766cfbb msgid "Use poetry-core build backend. :pr:`178`" msgstr "" "Utilisation de `poetry-core` comme outil de construction de paquets. :pr:`178" -#: ../../CHANGES.rst:45 3cc78a6b367a48d09ea62e797bf78493 +#: ../../CHANGES.rst:45 d6bf96b8e5cc4a6f8e099b48c1951a6a msgid "[0.0.54] - 2024-07-25" msgstr "[0.0.54] - 2024-07-25" -#: ../../CHANGES.rst:49 2144793247d24f3da2682e15ebd214db +#: ../../CHANGES.rst:49 062bcc176aac499384187fcb06e2a00b #, fuzzy #| msgid "" #| "Group member removal can be achieved from the group edition page :issue:" @@ -240,40 +240,40 @@ msgstr "" "La suppression des membres de groupes peut être effectuée depuis la page " "d’édition des groupes :issue:`192`" -#: ../../CHANGES.rst:50 00fd9f0801354831b5faec4d31662d4d +#: ../../CHANGES.rst:50 8680469549c74d37a52b1c6252c74d57 #, fuzzy #| msgid "Model management commands :issue:`117` :issue:`54`" msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "Commande de gestion des modèles :issue:`117` :issue:`54`" -#: ../../CHANGES.rst:54 cc4b56ada329486bbdc9644dbbf72ce1 +#: ../../CHANGES.rst:54 c19428c67d8f4d198d0ab97defe14fb3 msgid "Model `identifier_attributes` are fixed." msgstr "L’attribut `identifier_attributes` des models est fixe." -#: ../../CHANGES.rst:55 5e0b8596aa4c40f19cc94aa3c77c23cd +#: ../../CHANGES.rst:55 571f38b1484b43e2beed6f33eb675700 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:60 9de6aa0cc2444a7a958b34ee5bf630be +#: ../../CHANGES.rst:60 9e54da898699471194477836791f08a6 #, fuzzy #| msgid "Dark theme colors for better readability" msgid "Dark theme colors for better readability." msgstr "Couleurs des champs dans le thème sombre" -#: ../../CHANGES.rst:61 6bbdcb3894cf49e29e16f2f43307ecea +#: ../../CHANGES.rst:61 4e0f2a8e03a447e59cb0a2b0e6d208f1 msgid "" "Crash for passwordless users at login when no SMTP server was configured." msgstr "" "Erreur lorsque les utilisateurs sans mots de passe lorsqu’aucun serveur SMTP " "n’a été configuré." -#: ../../CHANGES.rst:64 7e5e6a702e7541e783935b562e84e050 +#: ../../CHANGES.rst:64 a9273241db7e4137bac5973b20e3ec5d msgid "[0.0.53] - 2024-04-22" msgstr "[0.0.53] - 2024-04-22" -#: ../../CHANGES.rst:68 0db38f9b2a0d4586afbf7b9e7c757978 +#: ../../CHANGES.rst:68 17fbf739a68a4e59b5cc6da8befa1c6f #, fuzzy #| msgid "" #| "`env_prefix` create_app variable can select the environment var prefix." @@ -284,11 +284,11 @@ msgstr "" "La variable `env_prefix`de la méthode `create_app` permet de choisir le " "préfixe des variables d’environnement." -#: ../../CHANGES.rst:71 fbbfe075ed204e04b0965346ce814b42 +#: ../../CHANGES.rst:71 7bdc8f732053463b95353cdf5c994838 msgid "[0.0.52] - 2024-04-22" msgstr "[0.0.52] - 2024-04-22" -#: ../../CHANGES.rst:75 2dd3c33d1329454ea693ca5197f29251 +#: ../../CHANGES.rst:75 bc7d1037cdfd40a69044f465467f6834 #, fuzzy #| msgid "`env_file` create_app variable can customize/disable the .env file" msgid "`env_file` create_app variable can customize/disable the .env file." @@ -296,82 +296,82 @@ msgstr "" "La variable `env_file` de la méthode `create_app` permet de désactiver ou " "personnaliser le fichier `.env`" -#: ../../CHANGES.rst:79 3adc8cdab5624d96bc70a43e910178e4 +#: ../../CHANGES.rst:79 9685a5e5a13147f093ac57e2039fe11b msgid "Locked users cannot be impersonated anymore." msgstr "Les comptes verrouillés ne peuvent plus être incarnés." -#: ../../CHANGES.rst:80 fd4d6120419f45e3be328f1cef2e7087 +#: ../../CHANGES.rst:80 1b83a24a97384c2faab67e915701e6b2 #, fuzzy #| msgid "Minimum python requirement is 3.9." msgid "Minimum Python requirement is 3.9." msgstr "La version minimum requise de Python est 3.9." -#: ../../CHANGES.rst:83 c2753efe71b04e9f8cf34877b75aa820 +#: ../../CHANGES.rst:83 e88f01e3f89f45f2a63b456f8e304d3d msgid "[0.0.51] - 2024-04-09" msgstr "[0.0.51] - 2024-04-09" -#: ../../CHANGES.rst:87 47ef072d3aab42f8a4ebb370d4bca2a2 +#: ../../CHANGES.rst:87 aae3d126989840578ec2b08058aad688 msgid "Display the menu bar on error pages." msgstr "Affichage de la barre de menu sur les pages d’erreur." -#: ../../CHANGES.rst:90 fb5832707bfb4f168bd8768303bf534b +#: ../../CHANGES.rst:90 22b11dc18595450fa5e7fe5f35824ebe msgid "[0.0.50] - 2024-04-09" msgstr "[0.0.50] - 2024-04-09" -#: ../../CHANGES.rst:94 d9ee4b0c0ea14be3b9a51d469d354244 +#: ../../CHANGES.rst:94 fc1bc503759c4beb943e9dcbf0c4a9cf #, fuzzy #| msgid "Sign in/out events are logged in :issue:`177`" msgid "Sign in/out events are logged in. :issue:`177`" msgstr "Journalisation des évènements de connexion et déconnexion :issue:`177`" -#: ../../CHANGES.rst:98 df803a22f2ca47a0b89528c45b47d6d2 +#: ../../CHANGES.rst:98 cfe0182123c94bcc9ee847739bd2e114 #, fuzzy #| msgid "HTMX and JAVASCRIPT configuration settings." msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "Paramètres de configuration `HTMX` et `JAVASCRIPT`." -#: ../../CHANGES.rst:99 a1f7bee54e4a4174afb83bca92c94e3c +#: ../../CHANGES.rst:99 3bc7c83763d34549bac91df86a22b3a0 msgid "Compatibility with old sessions IDs." msgstr "Compatibilité avec les anciens identifiants de session." -#: ../../CHANGES.rst:102 ded54eb4249e4de1b10e4a8856fd65a1 +#: ../../CHANGES.rst:102 cdee0bee34024d21bace2d77ff637ed9 msgid "[0.0.49] - 2024-04-08" msgstr "[0.0.49] - 2024-04-08" -#: ../../CHANGES.rst:106 0ae76abed479480fb1eed5ee0f5c3f46 +#: ../../CHANGES.rst:106 f9c9585c305d47628adffcae287229d2 msgid "LDAP user group removal." msgstr "Suppression des groupes d’utilisateurs avec LDAP." -#: ../../CHANGES.rst:107 545fbaeac1744dee996f3bf0e71d7815 +#: ../../CHANGES.rst:107 c25c5c6a9cca4061be6502cae5e86ba2 msgid "" "Display an error message when trying to remove the last user from a group." msgstr "" "Affichage d’un message d’erreur lors de tentatives de suppression du dernier " "utilisateur d’un groupe." -#: ../../CHANGES.rst:110 74c98eeccd094bb898867aae458f2494 +#: ../../CHANGES.rst:110 5e0c66b55801444497954839297b97eb msgid "[0.0.48] - 2024-04-08" msgstr "[0.0.48] - 2024-04-08" -#: ../../CHANGES.rst:114 ffdc09e3502f470787c5119452b34b14 +#: ../../CHANGES.rst:114 bd9920a130844ee897863a6b649484e2 #, fuzzy #| msgid "LDAP objectClass guessing exception." msgid "LDAP ``objectClass`` guessing exception." msgstr "Exception lors de la détection des classes d’object LDAP." -#: ../../CHANGES.rst:117 c96de36f23684cb7a999510a9bb86197 +#: ../../CHANGES.rst:117 93cf829932204311ba399ae713aff29f msgid "[0.0.47] - 2024-04-08" msgstr "[0.0.47] - 2024-04-08" -#: ../../CHANGES.rst:121 857d17d42df04551a1f16c660ccc56c3 +#: ../../CHANGES.rst:121 b7a5d3351a334b0592b12373e1c7afa6 msgid "Lazy permission loading exception." msgstr "Exception lors du chargement paresseux des permissions." -#: ../../CHANGES.rst:124 216348ff0a164090bbc518a44f29177d +#: ../../CHANGES.rst:124 c6000ae4f0fc4d488ab180c3aa9eb144 msgid "[0.0.46] - 2024-04-08" msgstr "[0.0.46] - 2024-04-08" -#: ../../CHANGES.rst:128 db28664d313243b1b72ae7a9469e5971 +#: ../../CHANGES.rst:128 db4476f22ad049f49833696323eb1b33 #, fuzzy #| msgid "" #| "Saving an object with the LDAP backend keeps the objectClass un-managed " @@ -383,11 +383,11 @@ msgstr "" "La sauvegarde des objets avec LDAP garde les valeurs de `objectClass` non " "gérés par Canaille. :pr:`171" -#: ../../CHANGES.rst:131 3ffe73f05ba9463898428e1255a4daea +#: ../../CHANGES.rst:131 d7117b0322b549ff87b73b8e4c839915 msgid "[0.0.45] - 2024-04-04" msgstr "[0.0.45] - 2024-04-04" -#: ../../CHANGES.rst:135 4ca624982fc64b76a5cdac758e01acfc +#: ../../CHANGES.rst:135 9690ab893eef4290a52b1137f24b9be8 #, fuzzy #| msgid "" #| "Internal indexation mechanism of :class:`~canaille.backends.memory.model." @@ -399,932 +399,932 @@ msgstr "" "Mécanisme d’indexation interne de :class:`~canaille.backends.memory.model." "MemoryModel`" -#: ../../CHANGES.rst:138 cc37f3d3a3174a6aa659fbb4a11170d0 +#: ../../CHANGES.rst:138 be79650410904879b53da2c62ac092d5 msgid "[0.0.44] - 2024-03-29" msgstr "[0.0.44] - 2024-03-29" -#: ../../CHANGES.rst:142 47091bb2e58849baa65f34f17c53780a +#: ../../CHANGES.rst:142 1c2533bc36b548c59361d7b3e304cce6 #, fuzzy #| msgid "Fix the default LDAP USER_FILTER value" msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "Correction de la valeur par défaut de ``USER_FILTER`` pour LDAP" -#: ../../CHANGES.rst:143 d3a240a7d98a4f619022cb3c07bbf1d7 +#: ../../CHANGES.rst:143 c429e79bd5aa46edb7b4cd1bd87c3ad8 #, fuzzy #| msgid "Fix the OIDC feature detection" msgid "Fix the OIDC feature detection." msgstr "Correction de la détection de la fonctionnalité OIDC" -#: ../../CHANGES.rst:146 3d7bcf5b51cc40a0ba7908b841e08bfb +#: ../../CHANGES.rst:146 51a43a574cc943b5912effdaa67f8690 msgid "[0.0.43] - 2024-03-29" msgstr "[0.0.43] - 2024-03-29" -#: ../../CHANGES.rst:150 ../../CHANGES.rst:409 31ac383e379a4c1ab2fd4a06796971ba -#: e46cc25f0a1f412e8ac68b0a5360f209 +#: ../../CHANGES.rst:150 ../../CHANGES.rst:409 02e8eccba3b74e889a68c78dc51e0a24 +#: 163717d0290841848f3b3a4c7a95efb4 #, fuzzy #| msgid "🚨Configuration files must be updated.🚨" msgid "Configuration files must be updated." msgstr "🚨Les fichiers de configuration doivent être mis à jour.🚨" -#: ../../CHANGES.rst:155 5b71dcc40335436b9897df8ede9ca2ea +#: ../../CHANGES.rst:155 a39fba5f25754fdc9f0f339142ff0320 #, fuzzy #| msgid "Add `created` and `last_modified` datetime for all models" 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:156 80a874123cdb451ba1e4b21b02d09669 +#: ../../CHANGES.rst:156 b1e37ddf62994798a70a23cff76ed4d6 msgid "Sitemap to the documentation. :pr:`169`" msgstr "" -#: ../../CHANGES.rst:157 177c3facfbf340bfa8aa18bfcd2f49e8 +#: ../../CHANGES.rst:157 54cf20bc59af4634af6b3f2d0e10c5e9 msgid "" "Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`" msgstr "" -#: ../../CHANGES.rst:162 3eaece458c6748b1b9a7d8962c06051b +#: ../../CHANGES.rst:162 689b4f88ba4b43db8c8b1a7bff0aebe6 msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`" msgstr "" -#: ../../CHANGES.rst:163 ac06ec40edc3471c8d41ac7cc1aab095 +#: ../../CHANGES.rst:163 7d18c66450654e25a65749ea273b859d #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:164 bafdbbe7d5a34bac950b698a5987ff25 +#: ../../CHANGES.rst:164 9d053f12577548bc8cff1add00376bae msgid "" "Use the standard tomllib Python module instead of `toml` starting from " "Python 3.11. :pr:`167`" msgstr "" -#: ../../CHANGES.rst:165 1cb76bfeed454f3bbd3a1a97a3bfe8c8 +#: ../../CHANGES.rst:165 fd8c1c0314b2465c9cacb4ba593eae77 msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "" -#: ../../CHANGES.rst:168 f3a89f8635784fc3857b079ee52cd271 +#: ../../CHANGES.rst:168 abc0b3ba739e4f99866d02027d8128d2 msgid "[0.0.42] - 2023-12-29" msgstr "[0.0.42] - 2023-12-29" -#: ../../CHANGES.rst:173 ee0ca767efe54c30907866769c111e5c +#: ../../CHANGES.rst:173 74e8932123b744b2809d370b36980326 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" "Correction d’une erreur d’import lorsque ``cryptography`` était manquant." -#: ../../CHANGES.rst:176 5fcdf860dae9409f8e0713c402cd95e3 +#: ../../CHANGES.rst:176 41f209b7a9054599b7b71d4fab3afe8f msgid "[0.0.41] - 2023-12-25" msgstr "[0.0.41] - 2023-12-25" -#: ../../CHANGES.rst:181 faba54b1d0e9469a9be4f1e40fdaba6b +#: ../../CHANGES.rst:181 77ff8fdeadf94e2f8696b2f5b9bd9349 msgid "" "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:" "`185` :pr:`164`" msgstr "" -#: ../../CHANGES.rst:186 63f680a45ce9492d99a1c120897a530c +#: ../../CHANGES.rst:186 8940d9836a9f46a09613c3646e1d55f8 msgid "" "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during " "OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:187 88157773b5f24a50a9e79446ce7c9565 +#: ../../CHANGES.rst:187 bb9a9230771445b6a7c93f042fb289ee msgid "" "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:188 70b110a67af0438cb7d1f7037f19bf8f +#: ../../CHANGES.rst:188 b5d0341447ef443b969d2a48457442f2 msgid "Group field error prevented the registration form validation." msgstr "" -#: ../../CHANGES.rst:191 11ced533597a4acca22289460559873e +#: ../../CHANGES.rst:191 7bcad6150cbc4883817538eb23bed3bd msgid "[0.0.40] - 2023-12-22" msgstr "" -#: ../../CHANGES.rst:196 e96bd6f889c349afa8e89b9cac332d8a +#: ../../CHANGES.rst:196 aae4204166c443f99e04d84842dd6dd9 msgid "``THEME`` can be a relative path." msgstr "" -#: ../../CHANGES.rst:199 d8e7ddb6c3524b1aa3748df7f94aec97 +#: ../../CHANGES.rst:199 26224cfa5ee647a2b15239a78065f5f7 msgid "[0.0.39] - 2023-12-15" msgstr "[0.0.39] - 2023-12-15" -#: ../../CHANGES.rst:204 7064099368e945eba6d139a20ede2f7e +#: ../../CHANGES.rst:204 14b2b67c379045d681ee712797f44328 msgid "Crash when no ACL were defined." msgstr "" -#: ../../CHANGES.rst:205 ca76aca580354212b3a2b8b0b7578f20 +#: ../../CHANGES.rst:205 38649598ac954d29843b54b15343dd15 msgid "OIDC Userinfo endpoint is also available in POST." msgstr "" -#: ../../CHANGES.rst:206 4436141fd931421ab2a35cb562fbc17a +#: ../../CHANGES.rst:206 ed1da2958a1646fd82c70171a5c04317 msgid "Fix redirection after password reset. :issue:`159`" msgstr "" -#: ../../CHANGES.rst:209 03feda093b02411fb33277ebe5ff621f +#: ../../CHANGES.rst:209 8f2bc47f69554f539aa2836958029d59 msgid "[0.0.38] - 2023-12-15" msgstr "" -#: ../../CHANGES.rst:214 96ce9c1c71b541b2a6fb4ce8fa9d23fa +#: ../../CHANGES.rst:214 24f252671c9a4a3590e94e5e563e4d19 msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "" -#: ../../CHANGES.rst:215 fb68107a9f5246bd9e6e1c3dd8c91575 +#: ../../CHANGES.rst:215 8a1d423f79f749868c06a775e9c21bd2 msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "" -#: ../../CHANGES.rst:218 c525871545ec4443bc7ad62cbed1daf0 +#: ../../CHANGES.rst:218 9d53638e5933499baafec12390f02e23 msgid "[0.0.37] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:223 303630de3be94634a589ecaab9315afc +#: ../../CHANGES.rst:223 5ed255dd094a4a3aae1b75edf54001ad msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`" msgstr "" -#: ../../CHANGES.rst:226 01fb709c3b5f452abed29626cb1c6a80 +#: ../../CHANGES.rst:226 26d16685ada341a29bf6ee6e98997128 msgid "[0.0.36] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:231 0a6f52bf380048bc930dce42522628e0 +#: ../../CHANGES.rst:231 2cfddfd6843e4cbfb1b645c84bc70322 msgid "Avoid crashing when LDAP groups references unexisting users." msgstr "" -#: ../../CHANGES.rst:232 ff7ffe9978284a239008db9593cb2397 +#: ../../CHANGES.rst:232 f5714a32e81841e29f2619f6ee5464e8 msgid "" "Password reset and initialization mails were only sent to the preferred user " "email address." msgstr "" -#: ../../CHANGES.rst:234 1c99362fe8f5406981cc1e56559bd066 +#: ../../CHANGES.rst:234 4e121ada1cc24b7b8051d085b0ce464b 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:236 129cc8fe27594ea19ac0cfaf960f22ce +#: ../../CHANGES.rst:236 c5fc8c86d3df4732b3a06f70dd89af18 msgid "Password comparison was too permissive on login." msgstr "" -#: ../../CHANGES.rst:237 3c489650b2464fbc96cb8d39a45c3af8 +#: ../../CHANGES.rst:237 36f936a6dd8c41c5bc833d928f347321 msgid "Encrypt passwords in the SQL backend." msgstr "" -#: ../../CHANGES.rst:240 1db3ba9dda8046e69b567247eb827b42 +#: ../../CHANGES.rst:240 76befacfb135435fbee6ee0fe07f40e5 msgid "[0.0.35] - 2023-11-25" msgstr "" -#: ../../CHANGES.rst:245 469f4bb7814244678b1995bfdb5b585f +#: ../../CHANGES.rst:245 14d361d80e4c429f929b943d3321e895 msgid "" "Refresh token grant supports other client authentication methods. :pr:`157`" msgstr "" -#: ../../CHANGES.rst:246 3d0e54e0ee0d4d1693b5d233ea01d336 +#: ../../CHANGES.rst:246 c52cda2685214bcab533db539acee007 msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" msgstr "" -#: ../../CHANGES.rst:251 1971940e1af44a4cadb829e0770f66d2 +#: ../../CHANGES.rst:251 57670f55b7644a0888ab65cd2da2fd8c msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" msgstr "" -#: ../../CHANGES.rst:252 e1cfbcea12d84b9baf7a8cbb07ad9451 +#: ../../CHANGES.rst:252 f4ef25b7b38b42a48fb2a32c5cd8888f #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:257 5cd273f89ce34abb9e420c877e0fcf28 +#: ../../CHANGES.rst:257 49b0b7da40204fdeaf40c5281235c2a6 msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`" msgstr "" -#: ../../CHANGES.rst:260 4d77bba4518d49bfbcaeec77fa7e72a0 +#: ../../CHANGES.rst:260 db372dee122e4b4fb18c2c99dd056ce2 msgid "[0.0.34] - 2023-10-02" msgstr "" -#: ../../CHANGES.rst:265 731fee04b0584e968a33416b0218d587 +#: ../../CHANGES.rst:265 a4b5211e96894c5d9d51b2630d6aea17 msgid "" "Canaille installations without account lockabilty could not delete users. :" "pr:`153`" msgstr "" -#: ../../CHANGES.rst:271 b8920b43c229457c80b25806e3152125 +#: ../../CHANGES.rst:271 4f4ca04b08a04dcb8f6a2eb6605f0e13 msgid "" "If users register or authenticate during a OAuth Authorization phase, they " "get redirected back to that page afterwards. :issue:`168` :pr:`151`" msgstr "" -#: ../../CHANGES.rst:274 ad3bb822a6724625a478e773d7fa3799 +#: ../../CHANGES.rst:274 298ffe26093441918be8b38d13f0cc58 msgid "flask-babel and pytz are now part of the `front` packaging extras." msgstr "" -#: ../../CHANGES.rst:275 7425ad14807e470d86fec107964c3ef2 +#: ../../CHANGES.rst:275 ccb502180d634f11ad173619af1b68d8 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:276 00c66e3e107b434db9ab6e0e73c4b0a9 +#: ../../CHANGES.rst:276 7413676f512d4473972484920ff5f060 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:277 90245bd35e8d49e6aec374c1cfff8293 +#: ../../CHANGES.rst:277 7905327465c44c09b2a10854abe79960 #, fuzzy #| msgid "Support for Python 3.13 :pr:`186`" msgid "Support for Python 3.12. :pr:`155`" msgstr "Support de Python 3.13 :pr:`186`" -#: ../../CHANGES.rst:280 ea22f77409da4e76aaabaa465351ddea +#: ../../CHANGES.rst:280 808e57e560f74a25b60029fbd6531d2e msgid "[0.0.33] - 2023-08-26" msgstr "" -#: ../../CHANGES.rst:285 85c81d73507d49adbf7485bc981ca4f2 +#: ../../CHANGES.rst:285 1179dc27648248188fdecf5696fd5045 msgid "OIDC jwks endpoint do not return empty kid claim." msgstr "" -#: ../../CHANGES.rst:290 ed321e2b53254626ba8d8668a93f9baa +#: ../../CHANGES.rst:290 b8b2caca239b4b609143ffd267522a16 msgid "Documentation details on the canaille models." msgstr "" -#: ../../CHANGES.rst:293 8a5d6d09659242d892802cbf67bcce67 +#: ../../CHANGES.rst:293 dd35ed0e27664b6b954e9b39881f14bc msgid "[0.0.32] - 2023-08-17" msgstr "" -#: ../../CHANGES.rst:298 7ad97afd1b364b0594e127ffb741cb36 +#: ../../CHANGES.rst:298 bdcae061315a4e92a6bc1a48475cb351 msgid "Additional inmemory backend. :issue:`30` :pr:`149`" msgstr "" -#: ../../CHANGES.rst:299 e2fa73efe3434a9cb400b70173da2286 +#: ../../CHANGES.rst:299 c39cbed721254ce5ad9c250de1e7ea41 msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "" -#: ../../CHANGES.rst:302 8f6a9539210f481cace05b5eaf4a4d12 +#: ../../CHANGES.rst:302 5311648e4c714ed29e89e9644167f963 msgid "[0.0.31] - 2023-08-15" msgstr "" -#: ../../CHANGES.rst:307 30769d5405a04b428bceb613e621380f +#: ../../CHANGES.rst:307 a6a4b510a0ac4b4ebeb9160510f72d77 msgid "" "Configuration option to disable the forced usage of OIDC `nonce` parameter. :" "pr:`143`" msgstr "" -#: ../../CHANGES.rst:308 09aa5440214949ebb072cd0efa8072fc +#: ../../CHANGES.rst:308 37eb24ef005e44da8ae0f4c48bda766c msgid "Validate phone numbers with a regex. :pr:`146`" msgstr "" -#: ../../CHANGES.rst:309 68622c505d4c4146a0133579afe5b3f1 +#: ../../CHANGES.rst:309 2be2120a0500430a8d854d1b8f19a0bf msgid "Email verification. :issue:`41` :pr:`147`" msgstr "" -#: ../../CHANGES.rst:310 6a1132321011438aa7c1fd9c08582483 +#: ../../CHANGES.rst:310 d3be95492ef348efa77976515d4ffca9 msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "" -#: ../../CHANGES.rst:315 8cbf0e1c697b4e14a34f160a081ddaae +#: ../../CHANGES.rst:315 1a3da0153c2b451d99665d2b61c512f2 msgid "The `check` command uses the default configuration values." msgstr "" -#: ../../CHANGES.rst:320 8a838d998ae74537ad6630ceb9e14925 +#: ../../CHANGES.rst:320 15f35fa96af04e508b1a6448d866cb5f msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`" msgstr "" -#: ../../CHANGES.rst:323 164cf5d0d0c5476abcc5039615b297bf +#: ../../CHANGES.rst:323 add3188842de44b691dfbe3152546f7b msgid "[0.0.30] - 2023-07-06" msgstr "" -#: ../../CHANGES.rst:327 3d687757031e4b168032e13eda7fd3be +#: ../../CHANGES.rst:327 b96e981450334eee84128d7dffb40d8f msgid "" "Configuration files must be updated. Check the new format with ``git diff " "0.0.29 0.0.30 canaille/conf/config.sample.toml``" msgstr "" -#: ../../CHANGES.rst:333 d9cab1dd0d9a44d2a770b2ddd54840b9 +#: ../../CHANGES.rst:333 ab83051dda0b48d185846e49011f2429 msgid "Configuration option to disable Javascript .:pr:`141`" msgstr "" -#: ../../CHANGES.rst:338 dc8e9bb1507e44d2bda322a2f303ac66 +#: ../../CHANGES.rst:338 85fb804c891f444c9de116e6e4771526 msgid "Configuration ``USER_FILTER`` is parsed with Jinja." msgstr "" -#: ../../CHANGES.rst:339 725471b01dc74d0e885d8c9f3bf81efd +#: ../../CHANGES.rst:339 42d91f7cf5a3438a8bcb0bd5c193f1ea msgid "" "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " "``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``." msgstr "" -#: ../../CHANGES.rst:342 7e334a0b38f84d749c12ad86df30f35b +#: ../../CHANGES.rst:342 30736e0e4b854b46940e80c38023946a msgid "[0.0.29] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:347 2fb9305432774f49afdfaa74b254addc +#: ../../CHANGES.rst:347 89d319fb81e148cb8f82f4b1a5a5390c msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors." msgstr "" -#: ../../CHANGES.rst:350 baa11ffc559c47f881bcb8e99638bae0 +#: ../../CHANGES.rst:350 68d32ee84fa642dfbf358ef907193eb8 msgid "[0.0.28] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:355 c4dd2c17a50541bd8b054521ea774ab3 +#: ../../CHANGES.rst:355 5490daf53fd144c0b6b360e90bf5667b msgid "A template variable was misnamed." msgstr "" -#: ../../CHANGES.rst:358 19d161e912bf48babdc1cc3bdf6a9c56 +#: ../../CHANGES.rst:358 c65a251ed68a49beaff42740c12ce76a msgid "[0.0.27] - 2023-06-29" msgstr "" -#: ../../CHANGES.rst:362 2e4d80d0086d4a24b58f4d1ab12f2440 +#: ../../CHANGES.rst:362 ccf84fb0d4cd47058c3849498bd92259 msgid "" "Configuration files must be updated.🚨 Check the new format with ``git diff " "0.0.26 0.0.27 canaille/conf/config.sample.toml``" msgstr "" -#: ../../CHANGES.rst:368 d54bb485719c48768eaa90f5734005f7 +#: ../../CHANGES.rst:368 0856562aad23492aa6efc7f6e4bf8f90 msgid "" "Configuration entries can be loaded from files if the entry key has a " "*_FILE* suffix and the entry value is the path to the file. :issue:`134` :pr:" "`134`" msgstr "" -#: ../../CHANGES.rst:370 5b0b352136524ec8949f5c2a1aebf03d +#: ../../CHANGES.rst:370 24fa209262e04bcbb46c2ab7c881fbaa msgid "Field list support. :issue:`115` :pr:`136`" msgstr "" -#: ../../CHANGES.rst:371 44b62551516a483ca676c04e99c519c4 +#: ../../CHANGES.rst:371 eaff808f9ce745c59a1b373ab0ef90ab msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`" msgstr "" -#: ../../CHANGES.rst:376 3c4a9178029143ebb3dfa4383e5ae943 +#: ../../CHANGES.rst:376 8afcdb0ddd8f4e6c9941315ff1b06538 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:381 18a84b017be84ae885899bd3f32cce87 +#: ../../CHANGES.rst:381 a6e1f4b8a72f4500ab437a86f6e98d06 msgid "" "Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`" msgstr "" -#: ../../CHANGES.rst:386 24c604bb636641dfa50fa88936073669 +#: ../../CHANGES.rst:386 cfcf7ee77bb84df1bcd780df223e9044 #, fuzzy #| msgid "Support for Python 3.13 :pr:`186`" msgid "Stop support for Python 3.7. :pr:`131`" msgstr "Support de Python 3.13 :pr:`186`" -#: ../../CHANGES.rst:389 f0c5946fac2c4c9983cf82780f00fa1b +#: ../../CHANGES.rst:389 42eab7328c604747ad6bde0067cb6603 msgid "[0.0.26] - 2023-06-03" msgstr "" -#: ../../CHANGES.rst:394 2fcd8cd9f4bd4996a04d92ab5af1f370 +#: ../../CHANGES.rst:394 b621a029c6ec420d8708f0ddd4b49c85 msgid "" "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " "OpenLDAP 2.5+. :issue:`13` :pr:`118`" msgstr "" -#: ../../CHANGES.rst:396 b25d961718f7491dbd0c566ccf4ad08c +#: ../../CHANGES.rst:396 05f5b0808e74429b92bf61fa570014cf msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "" -#: ../../CHANGES.rst:401 77ca5569b6e2485dbdddc707ff5081ca +#: ../../CHANGES.rst:401 d7e71d1ce6704911b7e5094538cc1084 msgid "Avoid setting ``None`` in JWT claims when they have no value." msgstr "" -#: ../../CHANGES.rst:402 4f97ee654d694412826a3401993b3d5f +#: ../../CHANGES.rst:402 e16dcca3b764486d874401ba65e22f78 msgid "Display password recovery button on OIDC login page. :pr:`129`" msgstr "" -#: ../../CHANGES.rst:405 1a828d5de4954981999d3f923575bafc +#: ../../CHANGES.rst:405 dcbd97e0bc4f44babcdc9ad9a503c162 msgid "[0.0.25] - 2023-05-05" msgstr "" -#: ../../CHANGES.rst:410 001ea27348244eadafce9bcebeddfab4 +#: ../../CHANGES.rst:410 4109765130284304994ae405858bdd3c msgid "" "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config." "sample.toml``" msgstr "" -#: ../../CHANGES.rst:415 d19ad8316f714710a9ea18b4592e2ccc +#: ../../CHANGES.rst:415 c4645c08f789400bba029897871bb828 msgid "" "Renamed user model attributes to match SCIM naming convention. :pr:`123`" msgstr "" -#: ../../CHANGES.rst:416 51f8287a6d494c2ab95d1d8b885cc5b1 +#: ../../CHANGES.rst:416 3c58d21fdc81418e8ee43179c2d6384f msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "" -#: ../../CHANGES.rst:417 0ebac07cd74d40b7a5cd88da58b63dc9 +#: ../../CHANGES.rst:417 5b002906414e41448a3fadea87d71e45 msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" -#: ../../CHANGES.rst:418 5d069c57b7744d2d812c809910b90904 +#: ../../CHANGES.rst:418 d58c113094474cf3b82e8a3303202bb6 #, fuzzy #| msgid "Update to HTMX 2.0.3 :pr:`184`" msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "Mise à jours vers HTMX 2.0.3 :pr:`184`" -#: ../../CHANGES.rst:419 4d1819b22e7541d6901018c5902fb9b6 +#: ../../CHANGES.rst:419 3bbdffb495f74fccbdb9eeb78a8eaf81 msgid "" "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:420 33a71c2ca29943108ad800e443c7b16a +#: ../../CHANGES.rst:420 0d3ea4f8df2542e0a7da5029159f31e0 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:425 dde2f7b37dc5431d854008b03f1c1b94 +#: ../../CHANGES.rst:425 71139e5ab6e34c2a87d51d3d04c0dbc0 msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." msgstr "" -#: ../../CHANGES.rst:426 ad51cd8083a248829e839f76ef4cc01f +#: ../../CHANGES.rst:426 e34b111a3a8b4e2da966a36107a682b5 msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:427 a79703e349b64f40a3977e14feaa6b82 +#: ../../CHANGES.rst:427 566d49eca850419cbb39c3a78a4160aa msgid "Password initialization mails were not correctly sent. :pr:`128`" msgstr "" -#: ../../CHANGES.rst:430 8914635900d34d33a1c6214b8bfd7255 +#: ../../CHANGES.rst:430 f461dc48e9c846628f7ddb99b18252c6 msgid "[0.0.24] - 2023-04-07" msgstr "" -#: ../../CHANGES.rst:435 24214a81bc6442e68b28d5643521a919 +#: ../../CHANGES.rst:435 007393d26d6e4375a0e05cbbf6c41d65 msgid "Fixed avatar update. :pr:`122`" msgstr "" -#: ../../CHANGES.rst:438 779e343612ab41518582d26db59d1fa0 +#: ../../CHANGES.rst:438 0ddfaf5df815484f9eb469a884e5f667 msgid "[0.0.23] - 2023-04-05" msgstr "" -#: ../../CHANGES.rst:443 30ebb2fb5a27422b9c6dadd7bce81461 +#: ../../CHANGES.rst:443 2e7346baddf44a7f9f5b9a05ae826913 msgid "Organization field. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:444 a108dcf95f674304a02b378f9cc5ae1b +#: ../../CHANGES.rst:444 1c68c43ae90f4e2e944dab12514f06d1 msgid "ETag and Last-Modified headers on user photos. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:445 d36cc68bb93e4f67ba4c1573161e7937 +#: ../../CHANGES.rst:445 bcaf8fe7d8e940f191ed6ea5178566c1 msgid "Dynamic form validation. :pr:`120`" msgstr "" -#: ../../CHANGES.rst:450 ba469523b7ed436fa02d57b5aa55e2f7 +#: ../../CHANGES.rst:450 2b077ff5215a4b20b8438e82f4366ada msgid "UX rework. Submenu addition. :pr:`114`" msgstr "" -#: ../../CHANGES.rst:451 e9fe7228bf55451aacf348054443b316 +#: ../../CHANGES.rst:451 166152fdbf6248e8a4af29f4f3bf5b6e msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "" -#: ../../CHANGES.rst:456 6735d02bce054e90839b0bc7f76a498e +#: ../../CHANGES.rst:456 343c4102b6d648018544f151f97540e1 msgid "CSRF protection on every forms. :pr:`119`" msgstr "" -#: ../../CHANGES.rst:459 7481454596c4441cafa36ac727e13ffc +#: ../../CHANGES.rst:459 7140973831594dacad0bd205ca9b60e5 msgid "[0.0.22] - 2023-03-13" msgstr "" -#: ../../CHANGES.rst:463 9c0310a5987e414db0dec066116ab3a9 +#: ../../CHANGES.rst:463 67dc897fec2946598dbb4fe82db8a94f msgid "" "The `Faker` library is not imported anymore when the `clean` command is " "called." msgstr "" -#: ../../CHANGES.rst:466 b03f22899d2b4a58aeb49ad846e32633 +#: ../../CHANGES.rst:466 58e3c0af1ce74125bf42a5ea16b88fbf msgid "[0.0.21] - 2023-03-12" msgstr "" -#: ../../CHANGES.rst:471 5a91e99066d44eeb91900743e25812c5 +#: ../../CHANGES.rst:471 a25f75d9086a4499aa1088e537f21bc3 msgid "Display TOS and policy URI on the consent list page. :pr:`102`" msgstr "" -#: ../../CHANGES.rst:472 350924499017445c814e114d79c5ffe9 +#: ../../CHANGES.rst:472 e848a4f5372b44249423579a7e2cdc3d msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" -#: ../../CHANGES.rst:473 d9fff953dfc647859bcf9ab0388fd494 +#: ../../CHANGES.rst:473 61b841de5b89407d9912c8c73309111a msgid "Revoked consents can be restored. :pr:`103`" msgstr "" -#: ../../CHANGES.rst:474 788ea9fa55224ba3a4d524dfe95b77e2 +#: ../../CHANGES.rst:474 656acd80913242a4820a20bc76d797e8 msgid "" "Pre-consented clients are displayed in the user consent list, and their " "consents can be revoked. :issue:`69` :pr:`103`" msgstr "" -#: ../../CHANGES.rst:476 8874eeff2bbc4f6d92a1b67820dbe5f0 +#: ../../CHANGES.rst:476 e08c1586240745fa9537dd7501475c0d msgid "" "A ``populate`` command can be used to fill the database with random users " "generated with faker. :pr:`105`" msgstr "" -#: ../../CHANGES.rst:478 11864ccef53c40b68b2512f1a5fde2a0 +#: ../../CHANGES.rst:478 dc653adfdbc441589c385b956ae9739e msgid "SMTP SSL support. :pr:`108`" msgstr "" -#: ../../CHANGES.rst:479 aa3d2de14af94312b97f625d0b86a20c +#: ../../CHANGES.rst:479 c69d8b01e4194d5b9268b84ab81849d6 msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "" -#: ../../CHANGES.rst:480 0e635872e2514abc8e19f5a3a65678b1 +#: ../../CHANGES.rst:480 5b4f3aa107a74df3ba845920503dfdc5 msgid "Department number support. :issue:`129`" msgstr "" -#: ../../CHANGES.rst:481 0ff36acfaae644b99d8ff82b64883f7d +#: ../../CHANGES.rst:481 d219e1ac8fa148d5b6e4babc678fbeb2 msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`" msgstr "" -#: ../../CHANGES.rst:482 332f9b6f72854bf5abbf9ed6e8b10bdd +#: ../../CHANGES.rst:482 52d2ceda28ab430a984dee19f8766b2a msgid "Title edition support. :pr:`113`" msgstr "" -#: ../../CHANGES.rst:487 6bfc1277e08e4eaebfb9b417494e2051 +#: ../../CHANGES.rst:487 c4aca25daa3b491f9208d71f7715800f msgid "" "Client deletion also deletes related :class:`~canaille.oidc.basemodels." "Consent`, :class:`~canaille.oidc.basemodels.Token` and :class:`~canaille." "oidc.basemodels.AuthorizationCode` objects. :issue:`126` :pr:`98`" msgstr "" -#: ../../CHANGES.rst:493 c9d6bb2f733346f7baca60d15791fb75 +#: ../../CHANGES.rst:493 a1c057df21a9436a9b149fb91fdb28d0 msgid "Removed the `DataTables` Javascript library." msgstr "" -#: ../../CHANGES.rst:496 59f2ab9df3874bd2854a10a57183bd4a +#: ../../CHANGES.rst:496 74a0312b6fff499fa609d0adbe73dfac msgid "[0.0.20] - 2023-01-28" msgstr "" -#: ../../CHANGES.rst:501 2eb9d7164a084ebd99d8a02e22f7636b +#: ../../CHANGES.rst:501 c443970df56e4203b8ee3fd9e4fa2395 msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "" -#: ../../CHANGES.rst:502 4890482a1e364ae9be2b019a40d65544 +#: ../../CHANGES.rst:502 9e42a95e59a74c5584d1144c249a57c1 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "" -#: ../../CHANGES.rst:503 9bc6feb5a2e344f2bdaa7967f038eece +#: ../../CHANGES.rst:503 e06855259b6f463897acd0f8a23cd05e #, fuzzy #| msgid "Update to HTMX 2.0.3 :pr:`184`" msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "Mise à jours vers HTMX 2.0.3 :pr:`184`" -#: ../../CHANGES.rst:504 a57916a091eb49debaa1d92e8aa35a87 +#: ../../CHANGES.rst:504 96cb7430946248108d8c97973a4799d5 #, fuzzy #| msgid "Update to HTMX 2.0.3 :pr:`184`" msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "Mise à jours vers HTMX 2.0.3 :pr:`184`" -#: ../../CHANGES.rst:505 13414ec5f5fb4723bab8d160d7fae68d +#: ../../CHANGES.rst:505 5b5784d9aedb4949bac1591395fc7eb9 #, fuzzy #| msgid "Update to HTMX 2.0.3 :pr:`184`" msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "Mise à jours vers HTMX 2.0.3 :pr:`184`" -#: ../../CHANGES.rst:510 c3e3d11e304642ca994ff358a4d97b73 +#: ../../CHANGES.rst:510 e88b90b5e0eb418f99ea2839c1e79943 msgid "Fix typos and grammar errors. :pr:`84`" msgstr "" -#: ../../CHANGES.rst:511 11f8022cc5e7452b9a7d14711909782a +#: ../../CHANGES.rst:511 d333115d646f4ccf9a5bb2dc4d23eba0 msgid "Fix wording and punctuations. :pr:`86`" msgstr "" -#: ../../CHANGES.rst:512 0e9583ca27aa4384b3b7fe0505ae81e1 +#: ../../CHANGES.rst:512 cfc153afa2ec4bee9c2dd589a234716c msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "" -#: ../../CHANGES.rst:513 abfac415c14c47b9875fafd08633aafc +#: ../../CHANGES.rst:513 a2dc7b3677d040c7a43bde721f766029 msgid "Automatically trims the HTML translated strings. :pr:`91`" msgstr "" -#: ../../CHANGES.rst:514 7c0f2873519c41beb85477b8a7781908 +#: ../../CHANGES.rst:514 9a91064adb7f414fab73518fbc77b01d msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" msgstr "" -#: ../../CHANGES.rst:517 1e8a6134758e4fdfb6a069212c277c5d +#: ../../CHANGES.rst:517 d7a2cda6d8e24cc484f13ee4df40c1ea msgid "[0.0.19] - 2023-01-14" msgstr "" -#: ../../CHANGES.rst:522 f73400d40e3047788a6d29d197e4f3ae +#: ../../CHANGES.rst:522 f7c94b5e7545458e8375ef8a8e3dc21c msgid "" "Ensures the token `expires_in` claim and the `access_token` `exp` claim have " "the same value. :pr:`83`" msgstr "" -#: ../../CHANGES.rst:526 6d6fee7b06294fbb8abc1221fa3fbff4 +#: ../../CHANGES.rst:526 9291df232e4b4a7eb97fb87504f9b8d4 msgid "[0.0.18] - 2022-12-28" msgstr "" -#: ../../CHANGES.rst:531 65e0cd31017848f5a61a1bccd7699b89 +#: ../../CHANGES.rst:531 c896b9996ab24cfeb217e9ebfdbed090 msgid "" "OIDC end_session was not returning the ``state`` parameter in the " "``post_logout_redirect_uri``. :pr:`82`" msgstr "" -#: ../../CHANGES.rst:535 b4eb86603adf4d298247038d5a9632f7 +#: ../../CHANGES.rst:535 2fa2e9a70b8d4ab4bed4d7f0d8d68f37 msgid "[0.0.17] - 2022-12-26" msgstr "" -#: ../../CHANGES.rst:540 26cdc21de4f447629c6e0a19bc8fae7b +#: ../../CHANGES.rst:540 cff81f4ef5254cfdb1e6ba76c2c3b9f6 msgid "Fixed group deletion button. :pr:`80`" msgstr "" -#: ../../CHANGES.rst:541 44ac9db9319241fa980bb713e6235401 +#: ../../CHANGES.rst:541 552d92ac7c364f198201b60a3abebae2 msgid "Fixed post requests in oidc clients views. :pr:`81`" msgstr "" -#: ../../CHANGES.rst:544 a3dc5fca72754391a0b873de4bac69e7 +#: ../../CHANGES.rst:544 f7c78b950b184117855277070cb4e548 msgid "[0.0.16] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:549 2c47a306f19b46729713cccfa9081fb1 +#: ../../CHANGES.rst:549 3e522208e81740fba479a43b017311fd msgid "Fixed LDAP operational attributes handling." msgstr "" -#: ../../CHANGES.rst:552 9c93c12336c64a948ea327a148f09de2 +#: ../../CHANGES.rst:552 53e83abb15b24cc0a3d589011cf7c2a3 msgid "[0.0.15] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:557 c31ef436c78c4a459433fa11a3efe134 +#: ../../CHANGES.rst:557 7194a505926740e3b52b81708d2818de msgid "User can chose their favourite display name. :pr:`77`" msgstr "" -#: ../../CHANGES.rst:558 725604c975014d169c6f727fe12ebbdf +#: ../../CHANGES.rst:558 5c5a59a03bd5497aa7474ae59e88f6bf msgid "Bumped to authlib 1.2. :pr:`78`" msgstr "" -#: ../../CHANGES.rst:559 15c82310b4f5445faec5dd55b02e7bf0 +#: ../../CHANGES.rst:559 0a3d037fae66464b8c2dfeea28dd3eaf msgid "" "Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management " "Protocol. :pr:`79`" msgstr "" -#: ../../CHANGES.rst:561 93737a1761d74e668ad390678c113f50 +#: ../../CHANGES.rst:561 0670727ea1074acf968c49e71dc4062b msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." msgstr "" -#: ../../CHANGES.rst:564 2bd72548a10b46c387d03d74b8c2bd1e +#: ../../CHANGES.rst:564 eb86b7335b7b4971812f25c9a2d37d1e msgid "[0.0.14] - 2022-11-29" msgstr "" -#: ../../CHANGES.rst:568 fda06af4dce844ac960f9728b313aad4 +#: ../../CHANGES.rst:568 9903a64c05994256813debf83e9a6b21 msgid "Fixed translation mo files packaging." msgstr "" -#: ../../CHANGES.rst:571 9e80339640f44f6fb5bdfb5a46d69754 +#: ../../CHANGES.rst:571 eb1e508e7d2c46bdb471cffecbe4d897 msgid "[0.0.13] - 2022-11-21" msgstr "" -#: ../../CHANGES.rst:576 352f3004143b43a6a142e7261356121a +#: ../../CHANGES.rst:576 6e71d21752234824bc42897b8a434bb3 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:578 d2e06f8fce05470d8ea0b6462e3a3d2e +#: ../../CHANGES.rst:578 374bd3f105af42bc8ea5c0de35e7437f msgid "" "Fixed a bug happening during RP initiated logout on clients without " "`post_logout_redirect_uri` defined." msgstr "" -#: ../../CHANGES.rst:580 e25591bed70d47aabb4991c60385315d +#: ../../CHANGES.rst:580 6244294cde9d429dbab852b0f7721160 msgid "Gitlab CI fix. :pr:`64`" msgstr "" -#: ../../CHANGES.rst:581 052c1abeb1504947ae7971fbb2acbfe2 +#: ../../CHANGES.rst:581 8dc7de6abbd447f4a78272f33cbcb6cf msgid "" "Fixed `client_secret` display on the client administration page. :pr:`65`" msgstr "" -#: ../../CHANGES.rst:582 c21ecafb7e464b83b7269378abd31da0 +#: ../../CHANGES.rst:582 be276c6c0aed433987b562fa51a9af06 msgid "Fixed non-square logo CSS. :pr:`67`" msgstr "" -#: ../../CHANGES.rst:583 e957d4ee9c214301b1d6edadda774383 +#: ../../CHANGES.rst:583 45c4b643c08f4e98b8eb1994cca78051 msgid "Fixed schema path on installation. :pr:`68`" msgstr "" -#: ../../CHANGES.rst:584 bb5cbe1bd58c4914b6fb31904dace27f +#: ../../CHANGES.rst:584 490ff7e15c244e1c80522169f52be22c msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "" -#: ../../CHANGES.rst:585 317c8538754e47c8a4472c4058883657 +#: ../../CHANGES.rst:585 13d139a4ca6b420eb0780952acd8582c msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" -#: ../../CHANGES.rst:590 60f7dfdea9e24c999cd5137253bd39aa +#: ../../CHANGES.rst:590 f863beea190c4605afc13c35d7828c7e msgid "Python 3.11 support. :pr:`61`" msgstr "" -#: ../../CHANGES.rst:591 62cfaf21a7614780af218178e88594d6 +#: ../../CHANGES.rst:591 dfa820f752f64485950bd9f2f4f2f798 msgid "" "``apparmor`` slapd configuration instructions in ``CONTRIBUTING.rst``. :pr:" "`66`" msgstr "" -#: ../../CHANGES.rst:592 77d3d24c77f44acf97c5f2ed32b82fe7 +#: ../../CHANGES.rst:592 33f4b497e723467fb7cca94de105b331 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "" -#: ../../CHANGES.rst:597 2f2d66baff1b4d76bdb51d9a68f03d33 +#: ../../CHANGES.rst:597 80931cb05ba54eb0bdd13af0e69ae5c4 msgid "" "Replaced the use of the deprecated `FLASK_ENV` environment variable by " "`FLASK_DEBUG`." msgstr "" -#: ../../CHANGES.rst:599 2047c70b1c68493cb2718ce9d79a5b77 +#: ../../CHANGES.rst:599 74c0ecca84cb4195b047360a2a12b281 msgid "" "Dynamically generate the server metadata. Users won't have to copy and " "manually edit ``oauth-authorizationserver.json`` and ``openid-configuration." "json``. :pr:`71`" msgstr "" -#: ../../CHANGES.rst:602 ed79e47e7ab44b29bc488d36a73dbdb1 +#: ../../CHANGES.rst:602 b56f59b2dd124c91a6268830cf4ddecc msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" msgstr "" -#: ../../CHANGES.rst:603 2b688ab4dea14db08349bfefde1b2842 +#: ../../CHANGES.rst:603 d701256eb4764f81827acd7b0a0dbda3 msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" msgstr "" -#: ../../CHANGES.rst:606 9862c43797094fe3827450b46f79eec1 +#: ../../CHANGES.rst:606 45607852e443428199051f1ecba9ba24 msgid "[0.0.12] - 2022-10-24" msgstr "" -#: ../../CHANGES.rst:611 3504717ce3f94e2e908533b1990246c4 +#: ../../CHANGES.rst:611 9997d515babd44b4841ef0218885f1f1 msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "" -#: ../../CHANGES.rst:612 f6cd348864064d69a7fe38417d404373 +#: ../../CHANGES.rst:612 509a601f77664756bc01064f20359cf6 msgid "Bumped to FomanticUI 2.9.0." msgstr "" -#: ../../CHANGES.rst:613 8c0468dcc1e14966b946d28c6e694cc6 +#: ../../CHANGES.rst:613 2cfcbdba2e9541dbab610bc724a2683a msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" -#: ../../CHANGES.rst:616 ee3c54d958894fcab256447034dedb31 +#: ../../CHANGES.rst:616 4acb242ffb5440d1a468e2d3c3856fe8 msgid "[0.0.11] - 2022-08-11" msgstr "" -#: ../../CHANGES.rst:621 e1079b5d9f334cccb7c852bc57c02c3f +#: ../../CHANGES.rst:621 0c4bd2691ba9453b88a686a22ede18ef msgid "Default theme has a dark variant. :pr:`57`" msgstr "" -#: ../../CHANGES.rst:626 21f56695871c4d20a21e3507de160053 +#: ../../CHANGES.rst:626 d3cabac68def4f77a693a6159bf2f5c0 msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "" -#: ../../CHANGES.rst:629 9e01ba83c8294ea3a6d12a8880c95916 +#: ../../CHANGES.rst:629 735459f4aeea42c6b0f7be4a2b06802f msgid "[0.0.10] - 2022-07-07" msgstr "" -#: ../../CHANGES.rst:634 d571bdbf194c4d9bbb517fdadbfd33f4 +#: ../../CHANGES.rst:634 f9dfd87d0fa145579e2297b27b61a11b msgid "Online demo. :pr:`55`" msgstr "" -#: ../../CHANGES.rst:635 fc947b81637642bebc49fe466493ca0f +#: ../../CHANGES.rst:635 5e5eef7b53ce470ab0a0137617552a9c msgid "" "The consent page was displaying scopes not supported by clients. :pr:`56`" msgstr "" -#: ../../CHANGES.rst:636 7a8d70c1057549b9b8e437514b3e40ee +#: ../../CHANGES.rst:636 f7b8675a05b64bafb3efbbad603537ce msgid "Fixed end session when user are already disconnected." msgstr "" -#: ../../CHANGES.rst:639 b7ca6476d9d541ac98ebc7506e049944 +#: ../../CHANGES.rst:639 a14c8084a27d463f82c1573d946a6676 msgid "[0.0.9] - 2022-06-05" msgstr "" -#: ../../CHANGES.rst:644 2ebf622b308a4ac1b52ea2c98127a1f4 +#: ../../CHANGES.rst:644 d04e2396209641cc84fa39d8bb397eaa msgid "" "``DISABLE_PASSWORD_RESET`` configuration option to disable password " "recovery. :pr:`46`" msgstr "" -#: ../../CHANGES.rst:645 3cdb60dfd8694aabb9124b6a9c50ea60 +#: ../../CHANGES.rst:645 01acc147a456445eb3858de7b0586dca msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" msgstr "" -#: ../../CHANGES.rst:646 dea66187c0ec42ca99143c3ebceba08f +#: ../../CHANGES.rst:646 dafb92303cb147909db73fdc619f1267 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "" -#: ../../CHANGES.rst:651 1109c84e26e042e6ab329a61df8fb2d4 +#: ../../CHANGES.rst:651 f672b1443aa9498994204b20952103e4 #, fuzzy #| msgid "Bump to htmx 1.9.12 :pr:`172`" msgid "Bumped to Authlib 1. :pr:`48`" msgstr "Mise-à-jour vers HTMX 1.9.12 :pr:`172`" -#: ../../CHANGES.rst:652 2de5e86b875a408582df63fb1339c167 +#: ../../CHANGES.rst:652 18c1456a82f748cd9ee0d6abcb40801f msgid "Various documentation improvements. :pr:`50`" msgstr "" -#: ../../CHANGES.rst:653 5d69ea9d1d444185bd3a485f5f994eda +#: ../../CHANGES.rst:653 77c7a3b3242647718a3a94a1fc4d05a1 msgid "Use poetry instead of setuptools as project management tool. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:654 eb4d4fbf9ee24727a127f4f195c5c2cd +#: ../../CHANGES.rst:654 da9cbcb141c646c2b49e44737122cd53 msgid "Additional ``nonce`` tests. :pr:`52`" msgstr "" -#: ../../CHANGES.rst:658 aeb713c93b2840e4ae61f5325381f5e9 +#: ../../CHANGES.rst:658 35eef6ab06b940e8ad49bf31b7620404 msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "" -#: ../../CHANGES.rst:659 aeb2c34202754830bfe6b81d82536964 +#: ../../CHANGES.rst:659 2792732f7d154df2b11a35b13114939b msgid "" "Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`" msgstr "" -#: ../../CHANGES.rst:662 d254d4ef4ab7433585e2630559636dc5 +#: ../../CHANGES.rst:662 8766634316d146ab8929259434391f34 msgid "[0.0.8] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:667 43a5e8482e91488d98f97bd42f2cad61 +#: ../../CHANGES.rst:667 f053b2fe7153473a81cb24bfc2b90c7d msgid "Fixed dependencies." msgstr "" -#: ../../CHANGES.rst:670 47239a7c179a45c49ac99bc7278bc493 +#: ../../CHANGES.rst:670 6fe1289ea759485b9c3c7658461a409d msgid "[0.0.7] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:675 368eb0cc96874d2b9d8c9acd8f01625c +#: ../../CHANGES.rst:675 f40f5e320ea4412fadc8f1bc1d99198c msgid "" "Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:678 0314e0f515aa43d5a1c66e3c20782969 +#: ../../CHANGES.rst:678 ac9b3059b303486a9b31536f1726d873 msgid "[0.0.6] - 2022-03-08" msgstr "" -#: ../../CHANGES.rst:683 93406334d3d241b1a8c63fa034590221 +#: ../../CHANGES.rst:683 357a41c66f054b9b830d9ae20551690d msgid "Access token are JWT. :pr:`38`" msgstr "" -#: ../../CHANGES.rst:688 6c4e207ab5df44618ff79bf7b5b78727 +#: ../../CHANGES.rst:688 20b619f456934ab09712d95d37ef12cd msgid "Default groups on invitations. :pr:`41`" msgstr "" -#: ../../CHANGES.rst:689 e99ec6eb17e84e109b59f0d39c0ea201 +#: ../../CHANGES.rst:689 74f8d8568cd1405bbef739de7b92f380 msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`" msgstr "" -#: ../../CHANGES.rst:692 14a826b0be01461c8193fa8a6eeb7fc1 +#: ../../CHANGES.rst:692 936cdbdb780241beb677c1a3c5d21735 msgid "[0.0.5] - 2022-02-17" msgstr "" -#: ../../CHANGES.rst:697 caa374e93ba249cd8f9b027d02cafc63 +#: ../../CHANGES.rst:697 b49925c79428413ca8c31eff4f42a588 msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "" -#: ../../CHANGES.rst:702 5cfa1b85f2c5410cbe9c8085cba049ae +#: ../../CHANGES.rst:702 21e3bd1145ce480ea8a82394722cef34 msgid "Admin menu dropdown display. :pr:`39`" msgstr "" -#: ../../CHANGES.rst:703 ec5b6a1c5cf64ba4aa9b6ef0a910baeb +#: ../../CHANGES.rst:703 b50bd877e6fa4055a450f65d4e0e6951 msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`" msgstr "" -#: ../../CHANGES.rst:706 b9f812d1076a478c80c623651267077d +#: ../../CHANGES.rst:706 93523c049fd2438b9f8dbb942b657b7c msgid "[0.0.4] - 2022-02-16" msgstr "" -#: ../../CHANGES.rst:711 2f4061bfe71b42b29299eab3f497d251 +#: ../../CHANGES.rst:711 9cc5e4c0be3e43f98a84d076d254a7a8 msgid "Client pre-authorization. :pr:`11`" msgstr "" -#: ../../CHANGES.rst:712 87fe740219bd41c1b6b7c556cf2652ab +#: ../../CHANGES.rst:712 b1444e5514e3495f8f05b00bfb31e54b msgid "LDAP permissions check with the check command. :pr:`12`" msgstr "" -#: ../../CHANGES.rst:713 ebdb9816f24d470ba9a7539303645a67 +#: ../../CHANGES.rst:713 81badbb21dfe4dd0bd990037947c24cf msgid "" "Update consents when a scope required is larger than the scope of an already " "given consent. :pr:`13`" msgstr "" -#: ../../CHANGES.rst:715 1e3191429a9143068e482b7e109449fe +#: ../../CHANGES.rst:715 5f6092f6103d401e9fe4554e04ad12cb msgid "Theme customization. :pr:`15`" msgstr "" -#: ../../CHANGES.rst:716 db16038054444d98a84e33199eebd8d0 +#: ../../CHANGES.rst:716 7e99d3a9c9134144a8e18989e6d0d633 msgid "Logging configuration. :pr:`16`" msgstr "" -#: ../../CHANGES.rst:717 8e84eba2bea142389a85076ef2a3c122 +#: ../../CHANGES.rst:717 abd6618054b443efbb5101e9c32f0c90 msgid "Installation command. :pr:`17`" msgstr "" -#: ../../CHANGES.rst:718 f21354392bb04d63bf00b74da0cc4696 +#: ../../CHANGES.rst:718 18c69372e28c42c4b0ac0cae51fcd8aa msgid "Invitation links. :pr:`18`" msgstr "" -#: ../../CHANGES.rst:719 57cf07135c394896b7d4f43681125a69 +#: ../../CHANGES.rst:719 2e35dc7cf246485c97650451d1f41d93 msgid "Advanced permissions. :pr:`20`" msgstr "" -#: ../../CHANGES.rst:720 e3adc66569a647c7998c584993b6ac04 +#: ../../CHANGES.rst:720 ef3b8ab7e89448089a9d09363832c7cc msgid "An option to not use OIDC. :pr:`23`" msgstr "" -#: ../../CHANGES.rst:721 b1b33424133e45008513e82d59703be7 +#: ../../CHANGES.rst:721 4d5d5581283a4eaabab00c6df18077a0 #, fuzzy #| msgid "" #| "Crash for passwordless users at login when no SMTP server was configured." @@ -1333,236 +1333,236 @@ msgstr "" "Erreur lorsque les utilisateurs sans mots de passe lorsqu’aucun serveur SMTP " "n’a été configuré." -#: ../../CHANGES.rst:722 c3be020b839746e0a89f12a9c2a02976 +#: ../../CHANGES.rst:722 a54b117ff68e47eabb66aa0a741790b1 msgid "" "Login placeholder dynamically generated according to the configuration. :pr:" "`25`" msgstr "" -#: ../../CHANGES.rst:723 f3cdbf5878964cb0990a1baa8de508cb +#: ../../CHANGES.rst:723 8593aca44439457296e5591823f56739 msgid "Added an option to tune object IDs. :pr:`26`" msgstr "" -#: ../../CHANGES.rst:724 96757cd949bb440cbd61cc3209050813 +#: ../../CHANGES.rst:724 548d5d09a1da4104aed49324dd3d96b6 msgid "Avatar support. :pr:`27`" msgstr "" -#: ../../CHANGES.rst:725 bbc5bd67fac2455387965076ec64066c +#: ../../CHANGES.rst:725 e6275bae918547beab8caabaf64f57db msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "" -#: ../../CHANGES.rst:726 7938f2b7af79464b91e3a66076d8f1e5 +#: ../../CHANGES.rst:726 82bbcaaa7973438696de021fbff14354 msgid "UI improvements. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:727 41575b2df8ab49fe9bc6a78b8479abec +#: ../../CHANGES.rst:727 70cd1dd3d81d4288b1c6bca674492944 msgid "Invitation links expiration. :pr:`30`" msgstr "" -#: ../../CHANGES.rst:728 6ae6f1ea416d484a8c83c240773bfca8 +#: ../../CHANGES.rst:728 af865fef102c44bc801e8aec157c2835 msgid "Invitees can choose their IDs. :pr:`31`" msgstr "" -#: ../../CHANGES.rst:729 350a96666a414da3b6c512e3409176e3 +#: ../../CHANGES.rst:729 d194b87cfbd94dd398f1c58bec6e4c37 msgid "LDAP backend refactoring. :pr:`35`" msgstr "" -#: ../../CHANGES.rst:734 811a6a60877745879dd1e823e534ed8a +#: ../../CHANGES.rst:734 2409763cd25243c9a80678c470fa336d msgid "Fixed ghost members in a group. :pr:`14`" msgstr "" -#: ../../CHANGES.rst:735 06e00c0bf96a46049ca44d1d5d1b80cb +#: ../../CHANGES.rst:735 ae04a8fa1896467792d8aaaf161fed29 msgid "Fixed email sender names. :pr:`19`" msgstr "" -#: ../../CHANGES.rst:736 f72c89b5d30a4ef6813f52eab34053ad +#: ../../CHANGES.rst:736 596c5956ebc6442984251ca5c558834e msgid "Fixed filter being not escaped. :pr:`21`" msgstr "" -#: ../../CHANGES.rst:737 0dee5db90eb1443cba885c0b9c0bb20f +#: ../../CHANGES.rst:737 bbf97ea202404efd8708cfbed4bbfe74 msgid "Demo script good practices. :pr:`32`" msgstr "" -#: ../../CHANGES.rst:738 36e391925c6042de97932f8130ef9271 +#: ../../CHANGES.rst:738 8d176b7d4da5419d8768430eeb01036c msgid "Binary path for Debian. :pr:`33`" msgstr "" -#: ../../CHANGES.rst:739 8e4ec0309c6e42309803f6e6cbb86cab +#: ../../CHANGES.rst:739 004ecd0e934049ef823bbf0d63f75c14 msgid "" "Last name was not mandatory in the forms while this was mandatory in the " "LDAP server. :pr:`34`" msgstr "" -#: ../../CHANGES.rst:741 b8f47932fc784040aa76d1600bf0d3dc +#: ../../CHANGES.rst:741 c6de3dbeeb5f40ff85c60e062271bfdb msgid "Spelling typos. :pr:`36`" msgstr "" -#: ../../CHANGES.rst:744 3d20890d62ce46e0a106b32fa8a83b4a +#: ../../CHANGES.rst:744 d49aed2f00e346cc8adaa26aa54f470a msgid "[0.0.3] - 2021-10-13" msgstr "" -#: ../../CHANGES.rst:749 4693647807ac4e53b49a9e6222823845 +#: ../../CHANGES.rst:749 0b32a6319c044bba95b3a00f245c6956 msgid "Two-steps sign-in. :issue:`49`" msgstr "" -#: ../../CHANGES.rst:750 13d043d7e1e64371a589c7f09aa0727a +#: ../../CHANGES.rst:750 4cf53569893c4b0ba8eab17b44a4a15b msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "" -#: ../../CHANGES.rst:751 8f194088db2f4e04a7cc3dc3aa5775aa +#: ../../CHANGES.rst:751 2956507b8bba47839fef6f9a63d5321a msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "" -#: ../../CHANGES.rst:752 aa54a49eafde4bf88caaf0c093bc4f83 +#: ../../CHANGES.rst:752 0415c157cb414913b3d7748afba41cda msgid "Groups management. :issue:`12` :pr:`6`" msgstr "" -#: ../../CHANGES.rst:757 a097d11955bb4fe2b2ed0595c85a74b3 +#: ../../CHANGES.rst:757 e08a9eafc49f45cbb361ed3bd89d4649 msgid "Introspection access bugfix. :issue:`63` :pr:`10`" msgstr "" -#: ../../CHANGES.rst:758 170c71370d054c52a3b4aa675210d792 +#: ../../CHANGES.rst:758 48e63a4a411d4aab8259f74b1d257a37 msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" -#: ../../CHANGES.rst:761 57556078aa6c4bba9f4e92d70abd8519 +#: ../../CHANGES.rst:761 2a9047b937be481f811eb403d6bf7fd9 msgid "[0.0.2] - 2021-01-06" msgstr "" -#: ../../CHANGES.rst:766 f44ee1cfafc6458188ba50981c7b700b +#: ../../CHANGES.rst:766 9f74458dacff435998774594822a1506 msgid "Login page is responsive. :issue:`1`" msgstr "" -#: ../../CHANGES.rst:767 85182a27da1a4f69a9738ec3907c1e9b +#: ../../CHANGES.rst:767 8a87683d8d524cd482264473256b3777 msgid "Adapt mobile keyboards to login page fields. :issue:`2`" msgstr "" -#: ../../CHANGES.rst:768 481d12a3db204c4eb483fc9595e4c594 +#: ../../CHANGES.rst:768 c777083179094cd994619adcfc8499d9 msgid "Password recovery interface. :issue:`3`" msgstr "" -#: ../../CHANGES.rst:769 3e7233c0060e4b328cebf41de557bd26 +#: ../../CHANGES.rst:769 c7393dc1bb6a4290bfdb2d59a3fef0c9 msgid "User profile interface. :issue:`4`" msgstr "" -#: ../../CHANGES.rst:770 919baf6ee4ba4255a09584cd99218a86 +#: ../../CHANGES.rst:770 e874e0e97cae4310ba62553c3d31cd16 msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "" -#: ../../CHANGES.rst:771 3ea4f03800634244b2068eee15bdbfd6 +#: ../../CHANGES.rst:771 27a300eabaaf4644989d134ccca22dd8 msgid "Command to remove old tokens. :issue:`17`" msgstr "" -#: ../../CHANGES.rst:772 2f618a762cd84790a688923fa40c8f54 +#: ../../CHANGES.rst:772 8e168b1583984a71848678112365d1c7 msgid "Improved password recovery email. :issue:`14` :issue:`26`" msgstr "" -#: ../../CHANGES.rst:773 3a7ad3d88a7e415a9583933390e94680 +#: ../../CHANGES.rst:773 901de9a21dd94541b3c23946ada4cd88 msgid "" "Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" msgstr "" -#: ../../CHANGES.rst:774 b84ffa9231a54e74819ae3f87f0ceafc +#: ../../CHANGES.rst:774 62c1e3da0a87437aaa529dcc936c7dbc msgid "Improved consents page. :issue:`27`" msgstr "" -#: ../../CHANGES.rst:775 a61176580dae4098a5935a0dcbf7adfd +#: ../../CHANGES.rst:775 f816ffeb73244ae0b1171b8c156d1e12 msgid "Admin user page. :issue:`8`" msgstr "" -#: ../../CHANGES.rst:776 1a8c701432b24739b30631f046e942c1 +#: ../../CHANGES.rst:776 2241f2b45f1e426f99f68ccc516c6b60 msgid "Project logo. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:777 ae68e2faa8084d32a134b9ded19702ad +#: ../../CHANGES.rst:777 dd802cef3e384fdc928fc43178ab119a msgid "" "User account self-deletion can be enabled in the configuration with " "`SELF_DELETION`. :issue:`35`" msgstr "" -#: ../../CHANGES.rst:778 b6b6e3f1fda84c28a7d482a128b4d882 +#: ../../CHANGES.rst:778 75d6d908a827424284ea63478783cbf9 msgid "Admins can impersonate users. :issue:`39`" msgstr "" -#: ../../CHANGES.rst:779 986bc433e7474cfbaa47139c6fe31628 +#: ../../CHANGES.rst:779 b4eee6e748f94ba9b6e62e2e7fd4d86b msgid "Forgotten page UX improvement. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:780 87a0fbd3a3c5473a99c02c4d7357612c +#: ../../CHANGES.rst:780 44489482b8d54ae78c70959758d6f825 msgid "Admins can remove clients. :pr:`45`" msgstr "" -#: ../../CHANGES.rst:781 007e0c4574c545c480f70fe4c1f56410 +#: ../../CHANGES.rst:781 be6e5371ee2a48efa0d9d276e9caa9a0 msgid "" "Option `HIDE_INVALID_LOGIN` that can be unactivated to let the user know if " "the login he attempt to sign in with exists or not. :pr:`48`" msgstr "" -#: ../../CHANGES.rst:783 d2c33dc4cb254216804f7db87af16a4e +#: ../../CHANGES.rst:783 b1df16b2411a440d8d2a0745c972f368 msgid "Password initialization mail. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:788 9d0d7d4330ab4210b7d100e511030307 +#: ../../CHANGES.rst:788 ba317999584d46d7b5bfda36157bc111 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "" -#: ../../CHANGES.rst:789 2406dcc819cf442e985803254a6dd5d4 +#: ../../CHANGES.rst:789 e0d773fd3f814a438321528df1c4d67d msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "" -#: ../../CHANGES.rst:794 fb7ccab64424482fa7f35048b1f44152 +#: ../../CHANGES.rst:794 d7c5d0509cfe422ab95beb9c1929e413 msgid "'My tokens' page. :issue:`22`" msgstr "" -#: ../../CHANGES.rst:797 0f51cd40bd6346e6848c78bdd9dfa894 +#: ../../CHANGES.rst:797 35ab727ebe564ff2a2aa3e28f9392f5b msgid "[0.0.1] - 2020-10-21" msgstr "" -#: ../../CHANGES.rst:802 c3e13d0f14e34ba7a5c0c69ff58ede2e +#: ../../CHANGES.rst:802 487e834d3b154f69991d042f97ce3734 msgid "Initial release." msgstr "" -#: ../../CONTRIBUTING.rst:2 546cb02623d64888a6313e11f19f6a47 +#: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3 msgid "Contributions" msgstr "" -#: ../../CONTRIBUTING.rst:4 132e6195fb654008ac95668006180895 +#: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc msgid "Contributions are welcome!" msgstr "" -#: ../../CONTRIBUTING.rst:6 c2c28ee9d2964b5cba887ab488d66103 +#: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d msgid "" "The repository is hosted at `gitlab.com/yaal/canaille `_." msgstr "" -#: ../../CONTRIBUTING.rst:9 c32119293b5543289dfbf8db582c9260 +#: ../../CONTRIBUTING.rst:9 880fd4b263fa4f5aa77f826cf6d7a13e msgid "Discuss" msgstr "" -#: ../../CONTRIBUTING.rst:11 94fa43b091a942df8d2c0a4fe3622fcb +#: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c msgid "" "If you want to implement a feature or a bugfix, please start by discussing " "it with us on the `bugtracker `_ " "or the `matrix room `_." msgstr "" -#: ../../CONTRIBUTING.rst:16 4c89eb514db24698870e4151b4a57cd2 +#: ../../CONTRIBUTING.rst:16 032421a7ce0548e38943bb37b9e46f90 msgid "Development environment" msgstr "" -#: ../../CONTRIBUTING.rst:18 4f7766ef0f12426d9d15aa8e10f9b492 +#: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264 msgid "You can either run the demo locally or with Docker." msgstr "" -#: ../../CONTRIBUTING.rst:20 c796d131784748a1aa40a7efc23669de +#: ../../CONTRIBUTING.rst:20 b918844970c545a3826d0b39a79cb08c msgid "" "The only tool required for local development is `uv`. Make sure to have uv " "`installed on your computer `_ to be able to hack Canaille." msgstr "" -#: ../../CONTRIBUTING.rst:24 fa9c7470cab646ce8d043c9455e7c804 +#: ../../CONTRIBUTING.rst:24 3aab256d0e47465899e430a1229c3d1a msgid "" "Initialize your development environment with: - ``uv sync --extra front --" "extra oidc`` to have a minimal working development environment. This will " @@ -1579,72 +1579,71 @@ msgid "" "check that `GCC` and `cargo` are available on your computer." msgstr "" -#: ../../CONTRIBUTING.rst:31 0e2e0fd2ea684f87bca53fb025ec9731 +#: ../../CONTRIBUTING.rst:31 1a514a3605f243979b2d04e1a329368a msgid "After having launched the demo you have access to several services:" msgstr "" -#: ../../CONTRIBUTING.rst:33 f2cfbfff4656499a81172e5712425f00 +#: ../../CONTRIBUTING.rst:33 bbde54dc79ba4241bd97323b5152b50b msgid "A canaille server at `localhost:5000 `_" msgstr "" -#: ../../CONTRIBUTING.rst:34 256f392d4a5f4558bc2a269139a95fde +#: ../../CONTRIBUTING.rst:34 d028b9cbae714b2d945ba4d70a75fb99 msgid "A dummy client at `localhost:5001 `_" msgstr "" -#: ../../CONTRIBUTING.rst:35 951db649d1134e54aee096a53a578a2c +#: ../../CONTRIBUTING.rst:35 dbd0340fc974432798237b9b3efe01ea msgid "Another dummy client at `localhost:5002 `_" msgstr "" -#: ../../CONTRIBUTING.rst:37 55c2bfbf19df43f2ad2306e3aa4455a0 +#: ../../CONTRIBUTING.rst:37 9ff28ddd679b42f4a5bf288242e8c827 msgid "The canaille server has some default users:" msgstr "" -#: ../../CONTRIBUTING.rst:39 3fb1039e4c034f0a8530ada2bbf832a2 +#: ../../CONTRIBUTING.rst:39 324e9f4f1d744fa49a0c3e7fe60cf46b msgid "A regular user which login and password are **user**;" msgstr "" -#: ../../CONTRIBUTING.rst:40 64222e4195e44966ad1569bb6adaad79 +#: ../../CONTRIBUTING.rst:40 30a3f2679a4b456791471ac6d4c15e2b msgid "A moderator user which login and password are **moderator**;" msgstr "" -#: ../../CONTRIBUTING.rst:41 a33fe18382ad4cc6b5e06fd2d3de9908 +#: ../../CONTRIBUTING.rst:41 d5e4f771a0854678af55e11ae4c8fc3d msgid "An admin user which admin and password are **admin**;" msgstr "" -#: ../../CONTRIBUTING.rst:42 73926ca3e82e454594c9846587363353 +#: ../../CONTRIBUTING.rst:42 325a060f0844402d80a7267a46291010 msgid "" "A new user which login is **james**. This user has no password yet, and his " "first attempt to log-in would result in sending a password initialization " "email (if a smtp server is configured)." msgstr "" -#: ../development/specifications.rst:62 ../features.rst:258 -#: ../../CONTRIBUTING.rst:47 79d65d5e4afe43efb2ef2a4a207d132e -#: 3db640a629884d22a4802c5fb7d36a49 18201ecd1cdd4502998e32192c2ff9b3 +#: ../development/specifications.rst:62 ../../CONTRIBUTING.rst:47 +#: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da msgid "Backends" msgstr "" -#: ../../CONTRIBUTING.rst:49 76d70493e26d4ffd9fab7bdcd08e41da +#: ../../CONTRIBUTING.rst:49 12c4afcb316c448797ed9784ef9fbaa1 msgid "Canaille comes with several backends:" msgstr "" -#: ../../CONTRIBUTING.rst:51 b88f421ab1f447d68441a900207978d2 +#: ../../CONTRIBUTING.rst:51 853d2b906b80415db33c707e29640f4c msgid "a lightweight test purpose `memory` backend" msgstr "" -#: ../../CONTRIBUTING.rst:52 b4c848eaaebc4d368e6d313b720d7285 +#: ../../CONTRIBUTING.rst:52 b280dce615cb48ec8456abf65fec4a9e msgid "a `sql` backend, based on sqlalchemy" msgstr "" -#: ../../CONTRIBUTING.rst:53 d5961ac1ca314b5fae359a3704f6ae17 +#: ../../CONTRIBUTING.rst:53 ad6d07459c274a9e8282e290875d5bfb msgid "a production-ready `LDAP` backend" msgstr "" -#: ../../CONTRIBUTING.rst:56 22ebeaaea5f445359c4858adb3f2359e +#: ../../CONTRIBUTING.rst:56 7db1494e281b4b89949e18e1ece1cb6c msgid "Docker environment" msgstr "" -#: ../../CONTRIBUTING.rst:58 110672e7512a4d219fc78e2020b56b2c +#: ../../CONTRIBUTING.rst:58 c8e61bddd24e4af0ab8ee2bd2709652d msgid "" "If you want to develop with docker, your browser needs to be able to reach " "the `canaille` container. The docker-compose file exposes the right ports, " @@ -1654,66 +1653,66 @@ msgid "" "means `localhost`." msgstr "" -#: ../../CONTRIBUTING.rst:63 1fbc7037693e4cc0a4b736c00d8953dc +#: ../../CONTRIBUTING.rst:63 0e3e6469d25f43998fce20bcb1291b86 msgid "To do that, you can add the following line to your `/etc/hosts`:" msgstr "" -#: ../../CONTRIBUTING.rst:69 708ce910986e42abb104bb8cad39c317 +#: ../../CONTRIBUTING.rst:69 c0dce613d6384dd18a1d6abce742bf55 msgid "To launch containers, use:" msgstr "" -#: ../../CONTRIBUTING.rst:84 9ad12ac6ab9c4936a1b48f17f5d436f6 +#: ../../CONTRIBUTING.rst:84 9e2c9acef9184e34b00d62c97980467d msgid "Local environment" msgstr "" -#: ../../CONTRIBUTING.rst:98 39c8085c02f64358ae6454b34c804bf1 +#: ../../CONTRIBUTING.rst:98 5fffaf4bff884b5a839078ad5a889fc9 msgid "" "If you want to run the demo locally with the LDAP backend, you need to have " "`OpenLDAP `_ installed on your system. It is " "generally shipped under the ``slapd`` or ``openldap`` package name." msgstr "" -#: ../../CONTRIBUTING.rst:103 a5d0b2f8115a42c98496061fc3f304e9 +#: ../../CONTRIBUTING.rst:103 aa9aab912ff04dd68c3b59bf1e36575a msgid "" "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be " "restricted by apparmor, and thus makes the tests and the demo fail. This can " "be mitigated by removing apparmor restrictions on `slapd`." msgstr "" -#: ../../CONTRIBUTING.rst:113 938084fa5d5b45fcb475bf29bf7413d3 +#: ../../CONTRIBUTING.rst:113 3d21757ba34c4721af043c150330c2e4 msgid "Populate the database" msgstr "" -#: ../../CONTRIBUTING.rst:115 605498714a5c4c98b663ec98c3f99da9 +#: ../../CONTRIBUTING.rst:115 a412d39e98cf44f6b911566e1ebcdbde msgid "" "The demo database comes populated with some random users and groups. If you " "need more, you can generate users and groups with the ``populate`` command:" msgstr "" -#: ../../CONTRIBUTING.rst:126 f17ffc8a480e40d1ab56ed02d6a0c3f1 +#: ../../CONTRIBUTING.rst:126 cdf90f875bcc44d5b41197a7cdbb275c 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:129 bccac8aac2ee46d3bf1a1f7357593e95 +#: ../../CONTRIBUTING.rst:129 2db32f774df8429fa4c9e83d00616a96 msgid "Unit tests" msgstr "" -#: ../../CONTRIBUTING.rst:131 292c189c9b8c4d388d06e694ae2ebf23 +#: ../../CONTRIBUTING.rst:131 5d6a9b57b35d49c48e2b615f8128ebcc msgid "" "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to " "test all the supported python environments. Everything must be green before " "patches get merged." msgstr "" -#: ../../CONTRIBUTING.rst:134 fbb43db282bb49338e0e6b4e072dcadb +#: ../../CONTRIBUTING.rst:134 e1e6e475ff78404f930bb453f1f26e3b msgid "" "To test a specific backend you can pass ``--backend memory``, ``--backend " "sql`` or ``--backend ldap`` to pytest and tox." msgstr "" -#: ../../CONTRIBUTING.rst:136 4c8976efeaa94487a9b895bdaaf5f15a +#: ../../CONTRIBUTING.rst:136 2cb85029b4274de388878da3d3285369 msgid "" "The test coverage is 100%, patches won't be accepted if not entirely " "covered. You can check the test coverage with ``uv run pytest --cov --cov-" @@ -1721,11 +1720,11 @@ msgid "" "check the HTML coverage report in the newly created `htmlcov` directory." msgstr "" -#: ../../CONTRIBUTING.rst:141 ff7e619b661c41ec9b625e1457ad4a99 +#: ../../CONTRIBUTING.rst:141 4408d499056c480f86f450a781d2ca0d msgid "Code style" msgstr "" -#: ../../CONTRIBUTING.rst:143 a1000e9b40d84c09b9a49d20e181b9e8 +#: ../../CONTRIBUTING.rst:143 93e483f2a66a4d8f82feb8ca9a739818 msgid "" "We use `ruff `_ along with other tools to " "format our code. Please run ``uv run tox -e style`` on your patches before " @@ -1734,61 +1733,61 @@ msgid "" "with ``uv run pre-commit install``." msgstr "" -#: ../../CONTRIBUTING.rst:149 f1f6b1f43d084d0281f7a452789d66d3 +#: ../../CONTRIBUTING.rst:149 0dca6207e6734ab487cb3fe72c3e90e8 msgid "Front" msgstr "" -#: ../../CONTRIBUTING.rst:151 c79f437efa2641b5bd2d94c2fc66ff91 +#: ../../CONTRIBUTING.rst:151 930e01d770324dc68f73095cd5456a8e msgid "" "The interface is built upon the `Fomantic UI `_ " "CSS framework. The dynamical parts of the interface use `htmx `_." msgstr "" -#: ../../CONTRIBUTING.rst:154 ce5afb30269e439c838171f762c22418 +#: ../../CONTRIBUTING.rst:154 fc0da8a2736e461dab5a7d242c1cfa9a msgid "" "Using Javascript in the interface is tolerated, but the whole website MUST " "be accessible for browsers without Javascript support, and without any " "feature loss." msgstr "" -#: ../../CONTRIBUTING.rst:156 db27231d4d9140b685dc3d6d3eecb437 +#: ../../CONTRIBUTING.rst:156 a13b055a65244362a025440451de998d msgid "" "Because of Fomantic UI we have a dependency to jQuery, however new " "contributions should not depend on jQuery at all. See the `related issue " "`_." msgstr "" -#: ../index.rst:70 ../../CONTRIBUTING.rst:161 8e6613c7b3d94538aee5ab1823dc10e2 -#: 97f6f74099754fa7b8e607f889cd8499 +#: ../index.rst:71 ../../CONTRIBUTING.rst:161 e3ff6afa466e4e61aa4f677cd58d3ed2 +#: a08d8d5331494e7d93508eaf25f41a07 msgid "Documentation" msgstr "Documentation" -#: ../../CONTRIBUTING.rst:163 b66a0f9381d64372acdc6e59feec96e1 +#: ../../CONTRIBUTING.rst:163 2e1fdcae75de46a6b50db7e4155758af msgid "The documentation is generated when the tests run:" msgstr "" -#: ../../CONTRIBUTING.rst:169 06e5274ed5694ce1995b2ed1ba8785ab +#: ../../CONTRIBUTING.rst:169 94405109592b47c09c8726c305fa5edc msgid "" "You can also run sphinx by hand, that should be faster since it avoids the " "tox environment initialization:" msgstr "" -#: ../../CONTRIBUTING.rst:175 1dcfaf186f1a472997a3fe7ebf1c64d1 +#: ../../CONTRIBUTING.rst:175 fe4610d142474897ae4f97d321448fac msgid "The generated documentation is located at ``build/sphinx/html/en``." msgstr "" -#: ../../CONTRIBUTING.rst:178 25257bc0bcc94355a0fa23b39c1af8e1 +#: ../../CONTRIBUTING.rst:178 bf09dd8ed31742bca2fa80175ae85bb3 msgid "Code translation" msgstr "" -#: ../../canaille/translations/README.rst:1 8eefc4c607a6432f9d1bfb4a4a59a08c +#: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f msgid "" "Translations are done with `Weblate `_." msgstr "" -#: ../../canaille/translations/README.rst:3 6c5f80b320ff4dda8e1b0a7f08b1a14a +#: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd msgid "" "The following commands are there as documentation, only the message " "extraction is needed for contributors. All the other steps are automatically " @@ -1796,38 +1795,38 @@ msgid "" msgstr "" #: readme.rst:7 ../../canaille/translations/README.rst:8 -#: 5eb5beee026348d6bf777f405dad060c c3e1b93668784114a8fc359b02b63284 -#: 94e5690bd8a347a4adb5b76a05870224 +#: ea5bd05b09984bcaa643efa7a1a7618c 9dde116540474fe597aa26dda8187cae +#: 33490a8ff4a3465fb8648393ff65eb75 msgid "Message extraction" msgstr "" #: readme.rst:9 ../../canaille/translations/README.rst:10 -#: 6f6f8426d40d48f09f8e160ab2a3190a 327b9e77b0b048d882be777223d3d51e -#: 47fea125031749b6a5784b697179f8c5 +#: 210e9ff98db74777830a5a1f4746df44 00b6ba25d89746df982a4b2d864883d3 +#: 16b22e2bc3cf495bbef529f5732887e3 msgid "" "After you have edited translatable strings, you should extract the messages " "with:" msgstr "" #: readme.rst:16 ../../canaille/translations/README.rst:17 -#: 409f151131d9490b9dd5af2d961daaeb 939406415b344cc8b242ed413ff5496b -#: efb905c33b8f40af92985d0c69666a9f +#: 54ecd51acf494402964ae281c6cd639b 5368f206663b441d93e573282bf7a98f +#: 02fa7225075346f89ad702cba8aabdeb msgid "Language addition" msgstr "" #: readme.rst:18 ../../canaille/translations/README.rst:19 -#: 60c6b98c5ebc43a592c41670fd7215fd 59ad6a5d63b64c4eb3611635d9f2c27d -#: b07d83c43ebd480ca47d04e1e4b5b27b +#: 5429b47768e2472ea597ed48140a5621 0c25b2a0b91f4ebeb6b3a29d613c2344 +#: 015d6a437f7e4d099c8cad60986c0b68 msgid "" "You can add a new language manually with the following command, however this " "should not be needed as Weblate takes car of this:" msgstr "" -#: ../../canaille/translations/README.rst:26 cf8a7e7b36224a50b483afa495f4217e +#: ../../canaille/translations/README.rst:26 bdfbb4ef60c54b26abf457ba930b7fcf msgid "Catalog update" msgstr "" -#: ../../canaille/translations/README.rst:28 6788bac231084e8f91508c1071ddbb99 +#: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25 msgid "" "You can update the catalogs with the following command, however this should " "not be needed as Weblate automatically update language catalogs when it " @@ -1835,11 +1834,11 @@ msgid "" "pushes happen every 24h." msgstr "" -#: ../../canaille/translations/README.rst:36 827be623961349f88ae09347760fec21 +#: ../../canaille/translations/README.rst:36 f232cbfdd201463ab74fe71353c8e23b msgid "Catalog compilation" msgstr "" -#: ../../canaille/translations/README.rst:38 530a801cbacd41a4888e55b1bea431d4 +#: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6 msgid "" "You can compile the catalogs with the following command, however this should " "not be needed as catalogs are automatically compiled before running the unit " @@ -1847,386 +1846,386 @@ msgid "" "package:" msgstr "" -#: ../../CONTRIBUTING.rst:184 f75b695ccdb64e1a86651f91cb832753 +#: ../../CONTRIBUTING.rst:184 4ff341d941384c029ed9c0b49d1062f9 msgid "Documentation translation" msgstr "" -#: readme.rst:1 8aa4c6dc835843758bd3b0db11d5bd16 -#: ad7f36c18790415096b694f5056b10e9 +#: readme.rst:1 2e38a895387e4821a3f61eccb03496a4 +#: 7abe83f2eeb54b3f9f3d1a8542696765 msgid "" "Documentation translation Translations are done with `Weblate `_." msgstr "" -#: readme.rst:4 ff165bebc5484cfe8bc202eb5b573632 -#: 7bcbe0c9afbf404a9df96de2a4a8f144 +#: readme.rst:4 de92a131ecf44614963dd89770f593ae +#: 0ca00925251d48668c7673ddece41d66 msgid "" "The following commands are there as documentation, only the message " "extraction and the language addition is needed for contributors." msgstr "" -#: readme.rst:25 dc2e53e97b8449edac37ad9e1346ef30 -#: b0ed9d3cef0246cfa7e5a536d41ae38b +#: readme.rst:25 3d142fe9f633400ea029e949f1e869ee +#: 74cc2740b1584972aa3c0e672dff5f3e msgid "Build the documentation in another language" msgstr "" -#: ../../CONTRIBUTING.rst:189 af37f0a00d174badbfd8f981d9d47e76 +#: ../../CONTRIBUTING.rst:189 4b1dc3dae99f4c6fbbeec3e54be3e922 msgid "Publish a new release" msgstr "" -#: ../../CONTRIBUTING.rst:191 7f74569c93d045d58f83d99ea264ebc2 +#: ../../CONTRIBUTING.rst:191 975b37a07edc4a42bbef14c2ca80a34f msgid "" "Check that dependencies are up to date with ``uv sync --all-extras --" "upgrade`` and update dependencies accordingly in separated commits;" msgstr "" -#: ../../CONTRIBUTING.rst:192 44c0e317b0b9478892031ee269efb086 +#: ../../CONTRIBUTING.rst:192 e9bd8386c6c64ef99aac12ee831f39d1 msgid "" "Check that tests are still green for every supported python version, and " "that coverage is still at 100%, by running ``uv run tox``;" msgstr "" -#: ../../CONTRIBUTING.rst:193 2420b0b759dd434f84fabaaa3e1aed90 +#: ../../CONTRIBUTING.rst:193 3e7d5493a8e44c1a9067010115678723 msgid "" "Check that the demo environments are still working, both the local and the " "Docker one;" msgstr "" -#: ../../CONTRIBUTING.rst:194 ccf039350d4d4c7a90a79f7e2af349e0 +#: ../../CONTRIBUTING.rst:194 fe7867ea9416424e81c518f77853958a msgid "" "Check that the :ref:`development/changelog:Release notes` section is " "correctly filled up;" msgstr "" -#: ../../CONTRIBUTING.rst:195 a2b97e7103db4c5b9e28afc5c581ac3b +#: ../../CONTRIBUTING.rst:195 7d89adc1c3e6478ab9e8faa02f97bf03 msgid "Increase the version number in ``pyproject.toml``;" msgstr "" -#: ../../CONTRIBUTING.rst:196 0111206c723f4fc88038b22acc63de07 +#: ../../CONTRIBUTING.rst:196 a376131776cd4e469611fa3ad6749be9 msgid "Commit with ``git commit``;" msgstr "" -#: ../../CONTRIBUTING.rst:197 5f7dccf4644e49c587c681320f5cdac7 +#: ../../CONTRIBUTING.rst:197 655fd489e5324dc5b6172d438a6b8e3e msgid "Build with ``uv build``;" msgstr "" -#: ../../CONTRIBUTING.rst:198 b6b4a758cc4a4e428976d73e1d0204cc +#: ../../CONTRIBUTING.rst:198 79fc61b7c13647a285a918a0c126ea53 msgid "" "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/" "legacy/``;" msgstr "" -#: ../../CONTRIBUTING.rst:199 3975642bad774f579d3e22467d447c6d +#: ../../CONTRIBUTING.rst:199 93540129ce0c440eba4da63ed3ddb769 msgid "" "Install the test package somewhere with ``pip install --extra-index-url " "https://test.pypi.org/simple --upgrade canaille``. Check that everything " "looks fine;" msgstr "" -#: ../../CONTRIBUTING.rst:200 7a7a7c09e02341369586f19fdafa002a +#: ../../CONTRIBUTING.rst:200 8a73b31d1fe14fdda15e6c2dea0cafc9 msgid "Publish on production PyPI ``uv publish``;" msgstr "" -#: ../../CONTRIBUTING.rst:201 ae5efe3773964b27ae105e50ac18c55e +#: ../../CONTRIBUTING.rst:201 93131bb37ccc4207825449d393f92201 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "" -#: ../../CONTRIBUTING.rst:202 5361eb18e49c49f99e9faced12110d09 +#: ../../CONTRIBUTING.rst:202 a98a5168d5f949ec9e96f16d8ff8b6f5 msgid "" "Push the release commit and the new tag on the repository with ``git push --" "tags``." msgstr "" -#: ../development/index.rst:2 1c006896969a4b01abb1e68cdcfd4dc6 +#: ../development/index.rst:2 c0f14bad2988468fa0700bbd47fe1de0 msgid "Development" msgstr "" -#: ../development/specifications.rst:2 249e43302ee6425db3aeefcf4533fe56 +#: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911 msgid "Specifications" msgstr "" -#: ../development/specifications.rst:4 951575fa09794f709809621586397d95 +#: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6 msgid "" "This page details which specifications are implemented in Canaille, and " "compares Canaille with other well-known identity providers." msgstr "" -#: ../development/specifications.rst:7 b6193c674c104724ae7ba4406aa89544 +#: ../development/specifications.rst:7 bfa87dc7f42445fb96172a2ce7643950 msgid "State of the specs in Canaille" msgstr "" -#: ../development/specifications.rst:10 36cb51dcf2bf4727b8635dd940fbe277 +#: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c msgid "OAuth2" msgstr "" -#: ../development/specifications.rst:12 de4f1bb8c2424ed9bdd5ced547e2adfa +#: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e msgid "" "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" -#: ../development/specifications.rst:13 dc9b59af8319438791c590683b48e2fe +#: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3 msgid "" "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" -#: ../development/specifications.rst:14 21f92d27b5fc4b28a6a7fbacaba6befa +#: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278 msgid "" "✅ `RFC7009: OAuth 2.0 Token Revocation `_" msgstr "" -#: ../development/specifications.rst:15 a231fb579b0d46d79104e829c9ec8f44 +#: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc msgid "" "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " "Authorization Grants `_" msgstr "" -#: ../development/specifications.rst:16 38bdc215f54d4fe0992cf981e3ec07f9 +#: ../development/specifications.rst:16 0213796d176a4938a10c902cfb737a18 msgid "" "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" msgstr "" -#: ../development/specifications.rst:17 3e44ebe0f1c74fea8e4f184c0f8497b3 +#: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a msgid "" "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " "`_" msgstr "" -#: ../development/specifications.rst:18 8dfca332812e443f9cde8e059b2cd136 +#: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d msgid "" "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" msgstr "" -#: ../development/specifications.rst:19 4505126f943c48779b5dd4913794108e +#: ../development/specifications.rst:19 bc914d1d327d4ce6a638c5245c4cfcc3 msgid "" "✅ `RFC7662: OAuth 2.0 Token Introspection `_" msgstr "" -#: ../development/specifications.rst:20 f54b4b6c87c045e09d68a887f08c15d7 +#: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d msgid "" "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" msgstr "" -#: ../development/specifications.rst:21 fa1947f4336f4f648572826cb3cabcac +#: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8 msgid "" "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" msgstr "" -#: ../development/specifications.rst:22 67e013eb13cf4cb4b4b8e04ba434bd1b +#: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab msgid "" "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" -#: ../development/specifications.rst:23 4c06a297aff943dbac567bb1b263a923 +#: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d msgid "" "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" "Bound Access Tokens `_" msgstr "" -#: ../development/specifications.rst:24 2924864cafa9414ba6dc9af48a39a80d +#: ../development/specifications.rst:24 772cbe80f8cd44faa3230ee4e690e5f3 msgid "" "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" msgstr "" -#: ../development/specifications.rst:25 cb3dc2bf05c242c29151420dbc45a372 +#: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e msgid "" "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " "`_" msgstr "" -#: ../development/specifications.rst:26 46ac1e7e2fd94415b3fe2cc447a53684 +#: ../development/specifications.rst:26 088615a4afdc48a5b6449df856cb1eb3 msgid "" "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" msgstr "" -#: ../development/specifications.rst:27 8dbc9b67d66a48d8bcb351782701f517 +#: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a msgid "" "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" msgstr "" -#: ../development/specifications.rst:28 c82b748c28aa4b33998f7ff6110acf77 +#: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85 msgid "" "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" msgstr "" -#: ../development/specifications.rst:29 1168644add784f5eb44cc259b7c3beed +#: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96 msgid "" "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" msgstr "" -#: ../development/specifications.rst:30 33cf326498614375bfdd4f9426fbe72f +#: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8 msgid "" "❌ `OAuth2 Multiple Response Types `_" msgstr "" -#: ../development/specifications.rst:31 db0f4cde0fee4b84818231816c0bb832 +#: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac msgid "" "❌ `OAuth2 Form Post Response Mode `_" msgstr "" -#: ../development/specifications.rst:34 ../features.rst:209 -#: f0f781fe96e2462ea2bdc006f35f9a1f b61c5665cacc4960b65e9519deb92e64 +#: ../development/specifications.rst:34 ../features.rst:212 +#: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42 msgid "OpenID Connect" msgstr "" -#: ../development/specifications.rst:36 de784ce1cb984690b948da6cda236855 +#: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c msgid "" "✅ `OpenID Connect Core `_" msgstr "" -#: ../development/specifications.rst:37 42bffbcfddd74b089a17f8086513e7e8 +#: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0 msgid "" "✅ `OpenID Connect Discovery `_" msgstr "" -#: ../development/specifications.rst:38 1024dd09e852405ca9c5873ca7e5a2c2 +#: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a msgid "" "✅ `OpenID Connect Dynamic Client Registration `_" msgstr "" -#: ../development/specifications.rst:39 8c53a18db078466d9bb9912948d5ef87 +#: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d msgid "" "✅ `OpenID Connect RP Initiated Logout `_" msgstr "" -#: ../development/specifications.rst:40 8eb5e224e65d4c14bd95db0ed60011ad +#: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a msgid "" "❌ `OpenID Connect Session Management `_" msgstr "" -#: ../development/specifications.rst:41 e29e079e09a34708859fa53ce175d329 +#: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844 msgid "" "❌ `OpenID Connect Front Channel Logout `_" msgstr "" -#: ../development/specifications.rst:42 7b678d44980c44b29c6c7390cb117840 +#: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9 msgid "" "❌ `OpenID Connect Back Channel Logout `_" msgstr "" -#: ../development/specifications.rst:43 40bc3a7e08e640b98a42d6259e8c8f3b +#: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b msgid "" "❌ `OpenID Connect Back Channel Authentication Flow `_" msgstr "" -#: ../development/specifications.rst:44 05ab27a6d12c49e8a070b846503cc670 +#: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243 msgid "" "❌ `OpenID Connect Core Error Code unmet_authentication_requirements " "`_" msgstr "" -#: ../development/specifications.rst:45 9f8f8adf713047438a261bb476c188cd +#: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d msgid "" "✅ `Initiating User Registration via OpenID Connect 1.0 `_" msgstr "" #: ../development/specifications.rst:48 ../development/specifications.rst:64 -#: 8f14519caffa43ef9a64602548f967d1 04e0dcdb325a40a7a3cb29369b2ad283 +#: d9278a9cbe784818b57f9fd9d76dda68 7ad1170acbe7400785a02a07e408ce3b msgid "SCIM" msgstr "" -#: ../development/specifications.rst:50 4a7098a7ea784d60b18d29fbc90c8ac4 +#: ../development/specifications.rst:50 c91f11a0512e4782981c5bb98a8038d7 msgid "" "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, " "Overview, Concepts, and Requirements `_" msgstr "" -#: ../development/specifications.rst:51 a875cf91e2a64cccafdd4b3501df99bc +#: ../development/specifications.rst:51 2f4ea31b4c80425a8e3075b8597ae8e5 msgid "" "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " "`_" msgstr "" -#: ../development/specifications.rst:52 f64ea994e6754ecdb04387c5dca7c52e +#: ../development/specifications.rst:52 6ffdb285557144afb301b05c33fecddf msgid "" "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" msgstr "" -#: ../development/specifications.rst:55 b6fb09d321df4d53bee28871125886fc +#: ../development/specifications.rst:55 ac600b38603f4fb999aebf5ffbe33cc7 msgid "Comparison with other providers" msgstr "" -#: ../development/specifications.rst:57 15f4a25f63404fa38db5e2da8b72b076 +#: ../development/specifications.rst:57 2ef9567e17694a669ed5071c882661ad msgid "Here is a feature comparison with other OpenID Connect server software." msgstr "" -#: ../development/specifications.rst:59 9e21fbf177764f3abb421d7531971d17 +#: ../development/specifications.rst:59 d6d241980d3e46e192dd54a5082b0197 msgid "" "Canaille voluntarily only implements the OpenID Connect protocol to keep its " "codebase simple." msgstr "" -#: ../development/specifications.rst:62 b4c88707080c472f876ce8bca7c1f7c8 +#: ../development/specifications.rst:62 0b9a4fba353c483692ed6fb04227691e msgid "Software" msgstr "" -#: ../development/specifications.rst:62 a853a42851fb4104870f50804a48d510 +#: ../development/specifications.rst:62 62c2fe7c97644cfa8e7d297a337bfe36 msgid "Project" msgstr "" -#: ../development/specifications.rst:62 0053db38018e4af88ac8b5c39ea1a38d +#: ../development/specifications.rst:62 f4700ad912314bfc8d66be8471a4c772 msgid "Protocols implementations" msgstr "" -#: ../development/specifications.rst:64 8f6b4af1e8e44a97a8e25aa4c744de7d +#: ../development/specifications.rst:64 ea237be2a99a4940be67516a1b95d97d msgid "FLOSS" msgstr "" -#: ../development/specifications.rst:64 d06e1b3b20ba49c3bb31cbec313df4dd +#: ../development/specifications.rst:64 55d5dd9174f94ca9850b999864598259 msgid "Language" msgstr "" -#: ../development/specifications.rst:64 aa3da0e6f78e48a4bfab8622eb346544 +#: ../development/specifications.rst:64 27002c409c6440d29ae89e91559a6994 msgid "LOC" msgstr "" -#: ../development/specifications.rst:64 0f5ab64b297347759d21cd3ad9835958 +#: ../development/specifications.rst:64 3ba35fd6c6d44150b4b049cf603e4a85 msgid "OIDC" msgstr "" -#: ../development/specifications.rst:64 6abc459cf079495ba198097ef0045254 +#: ../development/specifications.rst:64 dc762bcd6eca4fc79dae1ca65c411351 msgid "SAML" msgstr "" -#: ../development/specifications.rst:64 f15837ec1b3640f2aa170aa5da2d42be +#: ../development/specifications.rst:64 6ae5803282c4439a9e7b1c1570e4c505 msgid "CAS" msgstr "" #: ../development/specifications.rst:64 ../tutorial/databases.rst:32 -#: 6dd6f1502ce24180a931d83e5f722c9e 6727e76ca0a94672b31356e7000f36b0 +#: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65 msgid "LDAP" msgstr "" #: ../development/specifications.rst:64 ../tutorial/databases.rst:16 -#: 3e46eb3531de497884083dfda20c8429 90ae2983d8cc409f8095e9d40349d5f4 +#: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9 msgid "SQL" msgstr "" -#: ../development/specifications.rst:66 a366a61c9c674a7283a341551b284cae +#: ../development/specifications.rst:66 f4c4ac6fdea74558a74bc9a3cefbb5c7 msgid "Canaille" msgstr "" @@ -2236,48 +2235,48 @@ msgstr "" #: ../development/specifications.rst:78 ../development/specifications.rst:80 #: ../development/specifications.rst:82 ../development/specifications.rst:84 #: ../development/specifications.rst:86 ../development/specifications.rst:88 -#: 76f382b47422487fb7cbc53f4aff0c98 4844a1c9e94148e7b704e34288523bb2 -#: 12d05728bdfa47b5896614fada305c27 d5e228ec90aa44e292ba7fcec5647b9c -#: 4258f565460449c9b4fc3c6796d2c5b6 911f044a18f6438586994333671fc378 -#: 77bb210c94914a21b60856dacecf2ae5 6fa7cee2f8364899b4edce41d54f4c88 -#: 76e040268e8a4f32b4f8af2597bea392 3e07bff5b4af452a8b3d773b5c37138f -#: da2926e6b2574207879b2c182a31ad44 a8a608ecbd464a13acdf7acf9c8155cd -#: 22a468176bcd467b8c62c509187c5703 04d7f345ca9943339e8111bdd466dbe6 -#: 60e8f33fa52947f787c375eb545e4464 896e8046acfb494680c6585af3e9251a -#: ce0a59e71a864a60ae04e56e50e3b5b1 b49c3962115243dbad9781644d2f6c5f -#: ece841cc28504cebb8bf41d524f2f333 dc810fbb36b84115a8847ce6dfdf04d1 -#: e08cb5571672459f9ada660121e80f0e 94dea3173cff4e788ff16df4003e0a86 -#: 38da64b2eabd424b8cef433b82412dfa e2af63632b264cf688e714bf5e837dfe -#: c8edc4ae10074f05bd9527815efee614 861d9b6ddb6a4e22bd294d6a80752101 -#: 975b8dc314ed458eaf46bc2fefa85359 0df8ee31ab9d45f0a04b1ab0bb5d1d27 -#: d29e1a61c7bc4d3b9f9b216a219a7793 58c235c90f5f484ba478ff16e956eb81 -#: 6ccde9015dae404f966f80e1ed8a5439 f34897241f1d4f129621fced609aef99 -#: ad025268df434316b41dd1a1db1bcd12 906d01b07790460ea2ed4a8edf44718c -#: 39881f29192e436a8abb119b0578d654 25b1f998547c4e009d3421081fb929a3 -#: aa491ff6358245409702e7713ceaa44e 6968bbaabde8426f8e8c6265acb8c576 -#: d1a63d47d2814685a8b857a88527ad11 3afb215d97174a4babc9fbe81d658f36 -#: 68274779fa1140dc954eb4a5c8946d40 96ee4b7d8316415c9b05467c48c5a66e -#: 733dd021e9414b05b69223e61f26118b cc61c6806d4443a3910507c21d5c986c -#: c42ebd1f23d1434b81c989262d672d43 55a98d6232ad412b8f377e4b7ed019fd -#: d5c8c3ed956b499596edf4e69416510b 59b50a7a4aa3452ba1dac847a38fb899 -#: 840a00754eca43ff9aeb83d1c7dbfd88 1189f3450d1f452f8e42c9c9f81baa8c -#: 7026cb879fdc4677b444e70688096a06 90459e3368bf4afe851dd81a0ba8041b -#: 6a7e9e44f49f424782a9a3f11d9f61ff b54a53ed49644f2e86d6071df219fdb3 -#: 65decb515e2a4bf691b4ab7b61062a68 5474d16e85c14f3f85d14ecb88397a51 -#: 19c3d50016db433fbbff6bff11d2a1ec d63531cace6c43c3ba3e57bbfebb3b60 -#: 929a5610abfa4a56960ab3ea02d27631 73735902d7074299a619e9520bd7e122 -#: e8ac2b67e3274fc1ace3b9a343abe0de 9b645d0449684133acf9eaa70f4ebdc2 -#: 424b13f7837e45d7ac5685be10c7ad75 +#: c2035a448fa9405a92d51c9c90277394 1fff4f30a7714816a18b3fcc116290ea +#: c40b5154d16f4769a90f544f921ff160 b4f8f14c2ccd48d7a2df4514e072872c +#: 070425d5941a41a5b151cd30b60c8759 ae10fc61ac05465c88b82d0432b9f6f3 +#: 487a8e03d0e34a79b0382407ce0105e6 aa47e755d8094a54a72e5a984eca8212 +#: 1e641255c61242d782202c8eafa965b0 66fcd17bb81c48538f3b165edb4842e4 +#: 28011cbaa1f84bc2b0c07e50fe8ee4c1 33e7166b401144bcadff959d61e03c4c +#: 3e414716fb234b5a98cbd381348c05b8 4233cb97a80043599c2ab7b25dfc7e09 +#: 01a61d6ece794b39adc441233aef3a3d 7bba6b8427854a41b99c15b883290007 +#: 87f7b258b9084896962266eef600ead0 35d2af03a40c44f3be85f38d56883d26 +#: d90d1af7efe04fa397f58ec889a042d2 721544149a7244feb2fd14bc071b9ba4 +#: 588ab8a50fca4528b9a471dbddfb7d4a 814ccdbc41184e08ac5d1dfc65486f1c +#: 5b92e201931a462c90a3d3883c2bd94a ba65de35554741a48a7eb4a72fc66433 +#: c5d5335a195a44cd882f443ae316348f 9a77ea56aecb4e859046a32bcd052251 +#: b845153d9ebc4c2e83791da5c5d0bf5a 4dd20636352243038f0bdad8d15e8449 +#: 5b23071246ab41f1abd1bfa5596a4b46 e9195a6880cc4824bb5fbfce4b1d26dc +#: f0943b3b5cd34615a55cb2f9b1608b4a d95ce6d1875045fc8442060795ebfe22 +#: eaa0089f734b48eea7a06ed3c5a0dad5 c1aa2d442f2047f9a1194e38c2b1ddd1 +#: f86c1eae20714e9dba1f0f48395c4dc9 0657decbae9645678985ea6020d354d2 +#: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31 +#: f5e5911bcb704af19c073370f437c1b4 2a75e780caa141b798c8b207bcc8fcbe +#: 47c3b428281d41fcb8e7bc0cdc16581f 44dd040e077248b48b1ed0af53404b9c +#: e063ffcc58474df4a66b2814eb4c0f61 24cd7d2b70af4d138d065f2b568969bc +#: 1b724ec2c443410fa224420a2dc57059 9909afe63bb34adcafa5eca97a23cd03 +#: cb0aa79288f1454880b063396f3803e5 b96e91bf613c4f4cb6ac463fad5a68fe +#: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4 +#: a5b3f91649094efebe4e858d745ccb2e 4b09487097334807804aaba873d4dc7b +#: a981b83da6074c448bcbcfaf442ff4f8 93c98f61c81b4628a9acfd096e11e7a4 +#: c9b45500d9d145a8862c978d95329330 c34b7940cbbd4218af2cb94e8eb24fc7 +#: 007275e0e3314ae5a27bc93732d22221 8a394726b7b941dfbbd8af3e546782c1 +#: eda36ba62e4947528d14d5bb46f98767 78eb76570364482583c3cb19d0303903 +#: 911d55a0575e40f68acac8945e382a6f 888a30003d764dd28c8744ea11295da4 +#: f5320617a03e47dea905ac5a70208c70 msgid "✅" msgstr "" #: ../development/specifications.rst:66 ../development/specifications.rst:72 -#: ../development/specifications.rst:74 590b36e06934435c807f9ece1b63d752 -#: bfd2eac1dccb4c09975f34cbd2b16e40 b0e4911efb3a4ab3a09fd0b55388f3d5 +#: ../development/specifications.rst:74 86f975b8aaab4af9bfc62ef2df91ba28 +#: 9dd4f11a08ae4fb0b0fde477b7209bc3 9cfb3e9bccaf45e691975588a1739e16 msgid "Python" msgstr "" -#: ../development/specifications.rst:66 77b88e900d78420fac3f2b456541b9ea +#: ../development/specifications.rst:66 3a757539fafc4e3aa92dbdec5227a2df msgid "10k" msgstr "" @@ -2286,118 +2285,118 @@ msgstr "" #: ../development/specifications.rst:74 ../development/specifications.rst:76 #: ../development/specifications.rst:78 ../development/specifications.rst:82 #: ../development/specifications.rst:86 ../development/specifications.rst:88 -#: 274c32037d2c4dad8c70aace8c178e46 a3562039d62e4124994a47a13511239b -#: d2514a09946d4e88a947d4f1e0f54cba 4ccaf14ea2374ceb80c8847ed9177d7b -#: 8980126cca4a447581d99d48a5146bf0 1f07295186ec40f18f630f66e7fdb3d5 -#: 795cb7180a544650a7e1edb73d98085a 5dbf8636bfff412f983e93a8c940b2a5 -#: bf7facf3057643a880bb72c33c536ef9 a3a674d92ddc4e1ebdfb641b08dbd2cf -#: 415a9995c17847b480d1a17fedbd9384 f31719b6b04046dfbf2f0d575fa4075f -#: 7e6e1fb7971141a4bb4cb407fc30cce9 51b5a1ad9c6a4e59bcb74d3147cc5435 -#: 6e068c843a92461caa91fd918bf671dd a17ab2c72ead40d4b91466051bcae054 -#: 3d67546c3c0541709374cf05d4410d13 9df466bfb9744d9da166de0ef460cb88 -#: 0a54600cc531443bb14b211af59e6ce2 +#: d1129a1abbbe451393139f636f972160 0baee04e46584b46ab2b5bd83dea4c0d +#: cab3dd361d004e25bc0250cb2e0ffe9a d3bccdee48f340dcac2b45c0892ceceb +#: 71b748e4a2b34c0bb767e54e9a6035e5 a2b3f6f336424dbbaf5dc3d387d841e6 +#: 465d3f3e0fd74093b25163100de425b3 7d6b64f2f3bd472bac864db31a8369db +#: 56488a2c86774489986852389d9bdc8b 31a1e7b5acc84a55bcb704865acece12 +#: 64856df8e2b846fc9b5af8a2091645a0 bfba022e99874f03afc35e4de5bd4708 +#: a879dcda766c4da185322f35d22e6f46 fd884c4495c144699d4ed019e0264719 +#: aa15002c037b42d49c62426116a999c9 94a1a61f502a42569788cfe93ad6bcf7 +#: 2f498851758b4c13943c69ec1ce9a3db 205c9937da9946108d0a0e2b4f8458aa +#: 7aa2bbcd681b45e3b3027de382926640 msgid "❌" msgstr "" -#: ../development/specifications.rst:68 67ae149c32c44465a8c35ff6970e223d +#: ../development/specifications.rst:68 41d7747dc9384c6b908b8394168b5b5a msgid "`Auth0`_" msgstr "" #: ../development/specifications.rst:68 ../development/specifications.rst:78 #: ../development/specifications.rst:80 ../development/specifications.rst:88 -#: fe370ac9761b4c33813e2ab760b6c5b8 7241ecee8699453cb3653ef9b5a7eec4 -#: 4a03bf636eea4958b259f540baf94ed4 3756a9567a2f43afa67315a502e73271 -#: c90f938b47794267896debd72564f1f3 200fbb703d374b83ad4937f7a12e71fc -#: b0680d7feef04d1889bc4332bd53ada2 54fe7b55fd914778976b23b4a22ee67b -#: aab84064aba1435bb518bc2c89dc0b23 +#: b391b0e5e2724d7f9d457a4e64303697 8f85eeab9d6945af894c55e2a4aa0b9b +#: 042200dd8e5446a9bf353b47b219b1bb cf98ae825b30479499de8a4c5ffa1941 +#: 9d4e74c78b2b439785310a334d06a1c7 29630d08824746cb989fd0b402a48ba1 +#: 40c78abb3bce4fc8a59fabdef15f0f33 d6fbf12d6eb6429d84551ea23bf8eecc +#: f682275b9cb14280a7f2654d727c75d1 msgid "❔" msgstr "" -#: ../development/specifications.rst:70 1932aed33f0641b0918cdba0c182465f +#: ../development/specifications.rst:70 47ff7b1213464f85b246c4282f3af933 msgid "`Authelia`_" msgstr "" #: ../development/specifications.rst:70 ../development/specifications.rst:82 -#: a0bd43fc9ae243b6b0e816c45b2019ab 39a9232125a04090ac39f3c791d9454a +#: 5db56fd3e64948f5a108d2f74f7070b4 f263685446a54133804e5f8517d59f1d msgid "Go" msgstr "" #: ../development/specifications.rst:70 ../development/specifications.rst:82 -#: 9e4aa145d9bf485fb59fa62a453eb512 80e382c657574a728a58742811e7545a +#: 741e97755b8c4478b7e19ba006898401 ffc79e1d4373446e88d2065ff0109fc8 msgid "50k" msgstr "" -#: ../development/specifications.rst:72 b12bc9f3f0ad45f7b8915b9e43c80ede +#: ../development/specifications.rst:72 7fb71b70103e40eeb178e1281ea81de3 msgid "`Authentic2`_" msgstr "" -#: ../development/specifications.rst:72 c152fc793e804a8ca40529003bbc316b +#: ../development/specifications.rst:72 cb26c38797d9416fafe5d1a1b5c5b03b msgid "65k" msgstr "" -#: ../development/specifications.rst:74 6bc4add963f84366b5af45982445732d +#: ../development/specifications.rst:74 6f7fc7bbb2694f09a12393a74ffc8013 msgid "`Authentik`_" msgstr "" -#: ../development/specifications.rst:74 b43fa4a7f1e04088a3cc17cca482aa4c +#: ../development/specifications.rst:74 bb964534c0704925b6d856bd54af7c7f msgid "55k" msgstr "" -#: ../development/specifications.rst:76 ef33eba5e37c496fb06062c7eed81f32 +#: ../development/specifications.rst:76 4604cb0778044b63807b2be23ced893c msgid "`CAS`_" msgstr "" #: ../development/specifications.rst:76 ../development/specifications.rst:80 -#: ../development/specifications.rst:84 3dd6e662c6364da8be52a8f63db745b3 -#: b7f1feeb04384ba7aebc2e44a9addd8a b6b77696292048dda54b2366119b4fc5 +#: ../development/specifications.rst:84 aa3618e441ac413e83acdfe56631d15a +#: 1dc363d8cf99410890cbd44e0f60699c 4104aef4b998447299aa6b10e861098c msgid "Java" msgstr "" -#: ../development/specifications.rst:76 1d9c7f3f08ba42b888bba17a5ab758c1 +#: ../development/specifications.rst:76 c316893b4f00454a8c5745071e0888b1 msgid "360k" msgstr "" -#: ../development/specifications.rst:78 84b2c569682549a7bebba0e6731cf972 +#: ../development/specifications.rst:78 c8a158afb8d841209c20b9ef42e563cb msgid "`Connect2id`_" msgstr "" -#: ../development/specifications.rst:80 ac8bc932dabf49329bef397f11f352d5 +#: ../development/specifications.rst:80 a264cd68201c442faf08474397c550aa msgid "`Gluu`_" msgstr "" -#: ../development/specifications.rst:82 540b95fcf809408e8e50876bfc61a3b0 +#: ../development/specifications.rst:82 e54b53bfeafd4764b01095c1cd0077b7 msgid "`Hydra`_" msgstr "" -#: ../development/specifications.rst:84 36fa1793dc0b4b60a01a50011c44b9d8 +#: ../development/specifications.rst:84 87594578370246d494ef5e63196a3a92 msgid "`Keycloak`_" msgstr "" -#: ../development/specifications.rst:84 6c35a7162ac14857a1483ab0c7fd5fdb +#: ../development/specifications.rst:84 d6304d1f41714ad5af15edb6febbfbc5 msgid "600k" msgstr "" -#: ../development/specifications.rst:86 7a090209b0db481b8b1c009cb57259b5 +#: ../development/specifications.rst:86 2efe7957b848447dacfecb082a95c438 msgid "`LemonLDAP`_" msgstr "" -#: ../development/specifications.rst:86 cc99601f41a340899442bfd7a968dde8 +#: ../development/specifications.rst:86 cdd25b565e5d4de4b4202f82f4407843 msgid "Perl" msgstr "" -#: ../development/specifications.rst:86 d1d793ed7830411a9bec415252108a17 +#: ../development/specifications.rst:86 51b2d4fcc1fc43d2a692826a2b2c62d1 msgid "130k" msgstr "" -#: ../development/specifications.rst:88 71e63c0c6c0c49bbb6a77e73f404a184 +#: ../development/specifications.rst:88 4c2a5d27487345f7bc3c1bbd0c897c47 msgid "`Okta`_" msgstr "" -#: ../features.rst:9 d3728080e2564c25bb4d8a3f93cf6b7c +#: ../features.rst:9 61a68141a485477a9fb49921e7b8aa3a msgid "Features" msgstr "" -#: ../features.rst:11 ba9f2e2fdf154f5aa0c97c40c1edc453 +#: ../features.rst:11 5dd070084abb440ebf87c36df501f197 msgid "" "Here are the different features that Canaille provides. You can enable any " "of those features with the :doc:`configuration ` " @@ -2405,39 +2404,39 @@ msgid "" "`roadmap ` to see what is coming next." msgstr "" -#: ../features.rst:15 916b14bf509240b791aebb5db4fa8dd7 +#: ../features.rst:15 83eef1f1157b4d37b4627438618f31ab msgid "" "Users can interact with Canaille through its :ref:`web interface ` and administrators can also use its :ref:`command line " -"interface `. Canaille can handle data " -"stored in different :ref:`database backends `." +"interface `. Canaille can handle data stored in different :ref:" +"`database backends `." msgstr "" -#: ../features.rst:19 cb21d7243d414b5eb24dba79cbf67625 -msgid "Web interface" +#: ../features.rst:19 73c7e363c37147fc825deea06ee26975 +msgid "User and group management" msgstr "" -#: ../features.rst:21 50fb55f5502741f2a60c863056b1eadb +#: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c msgid "" "Canaille web interface can be used either in :doc:`production environments " "` or locally for development purposes." msgstr "" -#: ../features.rst:26 ../index.rst:27 99c0b681c4034067a65a4c516aa0c0f4 -#: 900285c9ca974abd87723740190ea571 +#: ../features.rst:26 ../index.rst:27 759b0714ba194bc5a5d043350cb4cd14 +#: dd79223676e0465293d1499d8929fa26 msgid "Profile management" msgstr "" -#: ../features.rst:28 ../features.rst:217 f6720a97a4d54b118189f748efd2fe04 -#: 2658799710a14b31955b3f2af174cf0e +#: ../features.rst:28 ../features.rst:220 53e5483c51ae4df28138ae990c16de07 +#: 0a36f2261b84450b98131ff740f7ceb9 msgid "Profile" msgstr "Profil" -#: ../features.rst:33 a25831d5bc2043a0bdcf85a36b756930 +#: ../features.rst:33 864adfa77693422cad803b08d9187a5e msgid "Canaille provides an interface to manage user profiles." msgstr "" -#: ../features.rst:35 6772c8e867cb4279bd3ac48ed541ad38 +#: ../features.rst:35 505ce537381249ec82445d38a4e093df msgid "" "The exact list of displayed fields, and whether they are :attr:`writable " "` or :attr:`read-only " @@ -2446,18 +2445,18 @@ msgid "" "ACLSettings>`." msgstr "" -#: ../features.rst:37 82be57e28b204253948d93f2620def19 +#: ../features.rst:37 625c7cea8a034a7ba263a71ce0587a26 msgid "" "Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit " "any user profile, or do nothing at all." msgstr "" -#: ../features.rst:42 3f146a4167c2497f922be34cc3ecb40a +#: ../features.rst:42 530dac22b587444cbd5de9ba2d7a3a90 msgid "Email confirmation" msgstr "" -#: ../features.rst:44 822fb6a425dd4ec58da857cd101c8683 +#: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71 msgid "" "If the :attr:`email confirmation feature ` is enabled, any modification or addition " @@ -2466,29 +2465,29 @@ msgid "" "email address." msgstr "" -#: ../features.rst:46 f362dd1333c14ee48f08d50249818c29 +#: ../features.rst:46 8d597149b59e45f896eff2baa716fc20 msgid "" "Users with :attr:`user management permission ` can set user emails without confirmation though." msgstr "" -#: ../features.rst:51 48f72e26f97749e8b3f22f7ed6b88a3a +#: ../features.rst:51 4a6be5a6b71a4a5ea35d7c4a41630e35 msgid "Group management" msgstr "" -#: ../features.rst:53 ../features.rst:140 925474dc81c14e25981b027e4726ca34 -#: 002b0a5c430c4a6e9050e7baedb539e0 +#: ../features.rst:53 ../features.rst:140 4824338c1fbf4fdd8c2e01534219ee98 +#: 3d8b9fc086e945d890bf9b3e01c82984 msgid "Group edition" msgstr "Édition de groupes" -#: ../features.rst:58 a1d9120fd66c4b94a759a027f3ee84ed +#: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729 msgid "" "In a similar fashion than :ref:`profile management " "` Canaille provides an interface to manage user " "groups." msgstr "" -#: ../features.rst:60 6aec7c1e73254a65a7d92d8963545c9b +#: ../features.rst:60 b83c6d0af7fe45228496bb2c594cf88c msgid "" "The group management is quite simple at the moment and consists in a group " "name and description, and the list of its members. Group membership can be " @@ -2497,50 +2496,50 @@ msgid "" msgstr "" #: ../features.rst:63 ../features.rst:83 ../features.rst:149 -#: ../tutorial/deployment.rst:13 78cfe6a7475340d9a8c6777d1bd99d86 -#: a44faf52f7894021a9d1659958b7794c 01869636eca54996a43440161b50a7bd -#: 736a08f5839544d497bc19f692d4a690 +#: ../tutorial/deployment.rst:13 6fdf0a969ccb49e1bf9bfc28f4df9169 +#: 4065a0b70a1444058df3bb16f0abc445 bc0be7a805e04b5f91b89db28d7dffae +#: 7ab21494d11e4287acffeb771f8f5244 msgid "Todo" msgstr "" -#: ../features.rst:64 c7f14813c9d04ab3aeb8846aa7623523 +#: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7 msgid "" "At the moment adding an user to a group can only be achieved by the user " "settings page, but we are :issue:`working to improve this <192>`." msgstr "" -#: ../features.rst:66 74438df8ebb24ad3a3dd5aad414990e2 +#: ../features.rst:66 6440e19e527d4d5f8abc44d99c8a3dba msgid "" "Group management can be enable with a :attr:`dedicated user permission " "`." msgstr "" -#: ../features.rst:69 8149ffcf24914a2b8e3b4d7eea6a9acc +#: ../features.rst:69 2382414ec97641a4925e741a26ae3148 msgid "" "Due to limitations in the :ref:`LDAP backend `, " "groups must have at least one member. Thus it is not possible to remove the " "last user of a group without removing the group." msgstr "" -#: ../features.rst:75 ../index.rst:34 80aeccc2892246548c7ed3321cc51687 -#: cb1c7d1522104178b8f10e1e9d11c522 +#: ../features.rst:75 ../index.rst:34 b136f97d836d4c8dbb63cd671ceebe4e +#: 76d8725ced9e421f98de5fb1e1ee01a2 msgid "User authentication" msgstr "" -#: ../features.rst:77 0681cf5ef96f4cc097a895327ac2077b +#: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6 msgid "" "Unless their account is :ref:`locked `, users can " "authenticate with a login and a password." msgstr "" -#: ../features.rst:81 4360ad9df4404fea95550212059be35c +#: ../features.rst:81 1a8cb7dc227a452b81768be3758a8fb4 msgid "" "For security reasons, it won't be told to users if they try to sign in with " "an unexisting logging, unless explicitly :attr:`set in the configuration " "`." msgstr "" -#: ../features.rst:83 c849a822890342228f7e5fe119cce1ee +#: ../features.rst:83 778349cb3c344689bd8cc06184005e10 msgid "" ":ref:`LDAP backend ` users can define which :class:" "`user field ` should be used as the login (such " @@ -2551,11 +2550,11 @@ msgid "" "issue:`working to improve this <196>`." msgstr "" -#: ../features.rst:88 79a46a9faadf4748bb09a942bd59981f +#: ../features.rst:88 aa467ae3118543ed94401a8ca23776f1 msgid "User registration" msgstr "" -#: ../features.rst:90 220c4182e04e49c89f13bad01bd32e36 +#: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b msgid "" "Users can create accounts on Canaille if the feature :attr:`registration " "feature ` is " @@ -2564,7 +2563,7 @@ msgid "" "ACLSettings>`." msgstr "" -#: ../features.rst:92 16454e0b91824b8a8b3ed4967cca9a5c +#: ../features.rst:92 c1f2442a948d414e9b9983d79aa91ae4 msgid "" "If :attr:`email confirmation ` is also enabled, users will be sent a confirmation link " @@ -2572,12 +2571,12 @@ msgid "" "finalize their registration." msgstr "" -#: ../features.rst:97 ../features.rst:99 8f466d3f93c44596958c39a50d01c441 -#: ad1ee2bf277f4919b66b63f31d9ffee8 +#: ../features.rst:97 ../features.rst:99 3d200c871e19420db3ce1885f7414a3c +#: 7bf61d1ad01240f7b1ed2db4ab0fdf77 msgid "User invitation" msgstr "" -#: ../features.rst:104 e3ddc44b9b0d42bdabb5744fbeca4658 +#: ../features.rst:104 134f042cb892434e922c01d62222ed54 msgid "" "If a :class:`mail server ` is " "configured, users with :attr:`user management permission ` is disabled." msgstr "" -#: ../features.rst:108 07314a85717d4f1e957912d4f5ec89b2 +#: ../features.rst:108 536cbb5eff1444dda4ac45998d356fe6 msgid "It can be automatically sent by email to the new user." msgstr "" -#: ../features.rst:113 5614cd7aa52f423f90abe55bfb024115 +#: ../features.rst:113 c24731829c1949aeb3f54f0167ed8b37 msgid "Account locking" msgstr "Verrouillage des comptes" -#: ../features.rst:115 25d995330be84035b80439ae356ee084 +#: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed msgid "" -"If Canaille is plugged to a :ref:`backend ` that supports " +"If Canaille is plugged to a :ref:`backend ` that supports " "it, user accounts can be locked by users with :attr:`user management " "permission `. The lock " "date can be set instantly or at a given date in the future." msgstr "" -#: ../features.rst:118 9dc244bf19c54bba886b026aa24748f6 +#: ../features.rst:118 31e7e6b90652414ab1b450f98ddb7d53 msgid "At the moment a user account is locked:" msgstr "" -#: ../features.rst:120 08ce8bb5b7624788bb7adfd53374f1f3 +#: ../features.rst:120 6be8caf7464643e99cb2614ce0138045 msgid "their open sessions will be closed;" msgstr "" -#: ../features.rst:121 56d6a853df93429ca61e18fddd080315 +#: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a msgid "they won't be able to sign in again;" msgstr "" -#: ../features.rst:122 ec15817f7db74c6b9bfff7edeb894651 +#: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42 msgid "no new OIDC token will be issued;" msgstr "" -#: ../features.rst:124 d4bb63a4baf34c018cc16652853c807b +#: ../features.rst:124 c784a99a157b46028eb5c3543da73e38 msgid "" "User accounts must be manually unlocked by an administrator for the users to " "regain access to those actions." msgstr "" -#: ../features.rst:129 cd3bf8afc300433c8c4fe0e2a377e596 +#: ../features.rst:129 da2f0b388508475cbb3fd080de1ff44c msgid "Account deletion" msgstr "Suppression des comptes" -#: ../features.rst:131 e42e818d2c514149b6fc23e1214bc64a +#: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2 msgid "" "Users with the :attr:`account deletion permission ` are allowed to delete their own " "account." msgstr "" -#: ../features.rst:133 78098750472442119531f450e49991f8 +#: ../features.rst:133 85f4ea778e8f45f7841ddf39f1bc8b41 msgid "" "Users that also have the :attr:`user management permission ` are also allowed to delete other " "users accounts." msgstr "" -#: ../features.rst:138 56587947a7dd476f89a0fc35ff15d589 +#: ../features.rst:138 86a66e197de94dcbb90d559730b89318 msgid "Password recovery" msgstr "" -#: ../features.rst:145 5be3a7388baf4084a1810a6057d893ca +#: ../features.rst:145 6693db5e96354da69ed660a259c109ce 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 " @@ -2696,11 +2695,11 @@ msgid "" "password." msgstr "" -#: ../features.rst:173 740fd480fdad42c1bfe0dad03831b5ef +#: ../features.rst:173 412b386c0c794b5d8c71ea7b51278da8 msgid "Password compromission check" msgstr "" -#: ../features.rst:175 107ba5716f3048f6abda84239d3bcd9b +#: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe msgid "" "If :attr:`password compromission check feature ` is enabled, Canaille will " @@ -2709,15 +2708,19 @@ msgid "" "`." msgstr "" -#: ../features.rst:180 4a24666b8f694fbaaf66448ce7ca4582 +#: ../features.rst:178 cbba3fccd9f84230b6eb0774cfd7e109 +msgid "Web interface" +msgstr "" + +#: ../features.rst:183 fab0081b9bd4460098de6df7d8c317b5 msgid "Internationalization" msgstr "" -#: ../features.rst:182 9f7481ec42664690815ffae93b9870df +#: ../features.rst:185 46cf7a3a3e9047439aa7fa6654b07921 msgid "Translation state" msgstr "" -#: ../features.rst:187 5c9bed8ebf9a41d5ba8ede6b91685b5d +#: ../features.rst:190 0a5afedc31de47a28d0bf7842a8558cd msgid "" "Canaile will display in your :attr:`preferred language ` if available, or your browser language if " @@ -2727,22 +2730,22 @@ msgid "" "for every users." msgstr "" -#: ../features.rst:193 5fbce499448349e8b41c26077457acab +#: ../features.rst:196 2caebf718cab47029a83bb91253e36e5 msgid "Lightweight" msgstr "" -#: ../features.rst:195 950949481c144a9dac06476aa610b100 +#: ../features.rst:198 e3cbad3b2af0422287a92a4094559d8b msgid "" "The web interface is lightweight, so everything should load quickly. There " "is a few Javascript here and there to smooth the experience, but no " "Javascript at all is needed to use Canaille." msgstr "" -#: ../features.rst:199 1ad0e7ff86374be882ff45ecec2007cc +#: ../features.rst:202 a7db848b637a46b1874f04fb542009e2 msgid "Customizable" msgstr "" -#: ../features.rst:201 704790185cc0491da1f935987b30e0d6 +#: ../features.rst:204 0c829a128889493fbc97247a60390954 msgid "" "The default theme should be good enough for most usages. It has a dark " "theme, display well on mobile, and let you choose a :attr:`logo `." msgstr "" -#: ../features.rst:204 45c9d2f01a994e9bbe4bafd42396fcc3 +#: ../features.rst:207 3a69d40c024744af967a1408c054aca0 msgid "" "If you need more you can also use a :attr:`custom theme `." msgstr "" -#: ../features.rst:211 f4029da482b54a88b7fa5079b34aab7d +#: ../features.rst:214 003c4e8eee334a9d89486e2c0ae5d106 msgid "" "Canaille implements a :ref:`subset` of the OAuth2/OpenID Connect specifications . This " @@ -2764,48 +2767,48 @@ msgid "" "On)` to applications plugged to Canaille." msgstr "" -#: ../features.rst:215 2d1299f11a9746678f43f253901ff136 +#: ../features.rst:218 51e9a6e1ddb04b99a6a73135fc8728e7 msgid "Consent management" msgstr "" -#: ../features.rst:223 de0506f292fa47cd8c781780cd28fefd +#: ../features.rst:226 a613e3d10f1243f3bc5d4e796b278c89 msgid "" "Users can give their consent to application requesting access to their " "personal information, and then revoke those consent at their will." msgstr "" -#: ../features.rst:227 7ecb3fad5e73490cb40d13e9fbbb1496 +#: ../features.rst:230 115bec7ea8944f6ab98641d9bd2540ec msgid "Application management" msgstr "" -#: ../features.rst:229 6c444151153d4866bcf062f0714af865 +#: ../features.rst:232 526d36374a8747d6ad6280379bcf664c msgid "" "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." msgstr "" -#: ../features.rst:231 8f28092022844c1597436521771da2fa +#: ../features.rst:234 79f0217902dc4b2ca73128ff6c16e7b5 msgid "" "In some cases, it might be useful to avoid the consent page for some trusted " "applications, so clients can be pre-consented." msgstr "" -#: ../features.rst:234 22f84eab0c684724a5268751370d1948 +#: ../features.rst:237 d1f7f85df6404afe91d29e4dee44be1d msgid "Discovery" msgstr "" -#: ../features.rst:236 326957127a4c42f1a543312b3def949e +#: ../features.rst:239 8b306f1c76664574a0f3d85805a46d87 msgid "" "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-" "configure themselves." msgstr "" -#: ../features.rst:239 881e8483147049c093ed84e09861edf3 +#: ../features.rst:242 d5a2f0c4fa2f4363b5e87c4243376aaa msgid "Dynamic Client Registration" msgstr "" -#: ../features.rst:241 1636c6004a0d4e47bfb58048cf1c4f47 +#: ../features.rst:244 800aec57df82487f80fc7da359dc5c34 msgid "" "Canaille implements the :doc:`Dynamic Client Registration specifications " "`, so when the :attr:`feature is enabled " @@ -2814,18 +2817,22 @@ msgid "" "Canaille without an administrator intervention." msgstr "" -#: ../features.rst:246 ../references/commands.rst:2 -#: 5c4eef6c51b7404bbf5821c0e290f09e d7c8ce5ce720418baf7d3a8cf03fb200 +#: ../features.rst:247 9cae9e0af58f499dac34354e9c12785d +msgid "System administration" +msgstr "" + +#: ../features.rst:252 ../references/commands.rst:2 +#: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f msgid "Command Line Interface" msgstr "" -#: ../features.rst:248 7999641d72104faf99873e0e66157518 +#: ../features.rst:254 98ef5f39d74944668dfff8b63d9d6199 msgid "" "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " "administrators in hosting and management." msgstr "" -#: ../features.rst:250 34ca6c0b0a90450cabba78ef5cddbd7f +#: ../features.rst:256 9a30112ff2eb47c69263e73aa3c4ee15 msgid "" "There are tools to :ref:`check your configuration ` or to :ref:" "`install missing parts `. You can use the CLI to :ref:`create " @@ -2835,13 +2842,18 @@ msgid "" "clients `." msgstr "" -#: ../features.rst:253 7cf15f82fa2b45ee91656ccce96482b7 +#: ../features.rst:259 02d13c90aa8f41f5b1007cd67fcea510 msgid "" "There are also tools to :ref:`fill your database ` with random " "objects, for tests purpose for instance." msgstr "" -#: ../features.rst:260 d4bbefd205cd41bdbf446f1e4beddd58 +#: ../features.rst:264 ../tutorial/databases.rst:2 +#: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9 +msgid "Databases" +msgstr "" + +#: ../features.rst:266 1a7af5dc07fa4f6c9231664737ee46a7 msgid "" "Canaille can handle data from the most :ref:`common SQL databases ` such as PostgreSQL, MariaDB or SQLite, as well as :ref:" @@ -2850,68 +2862,68 @@ msgid "" "unit tests suites." msgstr "" -#: ../features.rst:264 99a6b339ea3e4d4d89693b5077da81b4 -msgid "Miscellaneous" -msgstr "" - -#: ../features.rst:269 c0a89f70f06e4cf8a45567ea7ad59083 +#: ../features.rst:272 a6a6a7334af54051aebed82d83027ea8 msgid "Logging" msgstr "" -#: ../features.rst:271 1d62d92d0c584831bc3ebffe6362d968 +#: ../features.rst:274 9bc7705bd378459abf2f813381aa58a6 msgid "" "Canaille writes :attr:`logs ` for every important event happening, to help administrators " "understand what is going on and debug funky situations." msgstr "" -#: ../features.rst:273 b73dadb152e743a298e3d7696d8917c8 +#: ../features.rst:276 2aeb5161276a4f048c40a7256c3d7f0e msgid "" "The following security events are logged with the tag [SECURITY] for easy " "retrieval :" msgstr "" -#: ../features.rst:275 9f44a20eafb942d5aec769a302394cb8 +#: ../features.rst:278 ed4be0b57afe4ce9976c45f03c249444 msgid "Authentication attempt" msgstr "" -#: ../features.rst:276 c40c4a447557481bb2787425049875a2 +#: ../features.rst:279 452456f9907e4bbd89439903c2fc9ebc msgid "Password update" msgstr "" -#: ../features.rst:277 0c953f82824842deb60f898786a5996d +#: ../features.rst:280 9ccb4ef2a139403c85223576eb87a182 msgid "Email update" msgstr "" -#: ../features.rst:278 430ba4ac93fe4f84a2b03eed728990d9 +#: ../features.rst:281 bd0936deb7994f8fb59f2f0a47115edc msgid "Forgotten password mail sent to user" msgstr "" -#: ../features.rst:279 e071c603320741a6844163eb851143af +#: ../features.rst:282 02079fe76d2041aaba48a6b2079630f1 msgid "Token emission" msgstr "" -#: ../features.rst:280 6a9bececc5d34250a0a3ef54c79256f6 +#: ../features.rst:283 814519684d8c47a5b0b5ae6eaa9aa66e msgid "Token refresh" msgstr "" -#: ../features.rst:281 b83cf2d3b0de48efb3352ff39faf587b +#: ../features.rst:284 4489f99b64dd40248f28453fb8b4b0df msgid "Token revokation" msgstr "Révocation des jetons" -#: ../features.rst:282 5679400eeab743e887c45840461900ff +#: ../features.rst:285 99abcc04f85649c1b184e22e67b36f18 msgid "New consent given for client application" msgstr "" -#: ../features.rst:283 ae032e3dbfa44e569eefa9880070f4e3 +#: ../features.rst:286 c64802d623a74d678c4aca29f82c39d7 msgid "Consent revokation" msgstr "" -#: ../features.rst:288 abbe3f0c29d846f7ae3605651449f229 -msgid "A tool for your development and tests" +#: ../features.rst:291 f9d92f5f76a745ee97ea36afc853c516 +msgid "Development and testing tool" msgstr "" -#: ../features.rst:290 75f56c18b93d4b6d8d309d4c0a2f5719 +#: ../features.rst:296 9c0500515a5847c2bec5b1bb743f42fc +msgid "Unit-testing tool" +msgstr "" + +#: ../features.rst:298 b1dc62a0c2024ff1bd6682408301766a 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:297 b0b8ba66d7f54017a0beda39b7cb8822 +#: ../features.rst:313 beb39ccb89e040118104ba0c0f41eb71 msgid "Roadmap" msgstr "" -#: ../features.rst:300 9931c30ac1e545f59398b131ed30108f +#: ../features.rst:316 4fee3c311fe844bbb345bd5b562844ad msgid "Bêta version" msgstr "" -#: ../features.rst:302 c228bd0a329f427d86e683017e7661e7 +#: ../features.rst:318 f699343ae7fe4f12a9d12f4692c22827 msgid "" "To go out of the current Alpha version we want to achieve the following " "tasks:" msgstr "" -#: ../features.rst:304 98526c0e87094a39802455025c25f0b4 +#: ../features.rst:320 c8aec1fe7d574a789319e75cc64bd2e7 msgid ":issue:`Configuration validation using pydantic <138>`" msgstr "" -#: ../features.rst:307 b7967bfe65e1409fa6fde16667f0c5e3 +#: ../features.rst:323 706d590389f54c40ba1b219877946bb5 msgid "Stable version" msgstr "" -#: ../features.rst:309 a45163cc9809462b8108fb844aacc4a0 +#: ../features.rst:325 54c0d4cc60054a5ebe7456575b1b70c3 msgid "" "Before we push Canaille in stable version we want to achieve the following " "tasks:" msgstr "" -#: ../features.rst:312 4b21ac630460405788b1942c7bd42002 +#: ../features.rst:328 7807e2d92e264bc78fd5b6a3c63beb3a msgid "Security" msgstr "" -#: ../features.rst:314 be315230d7144b0f87850d2fa1857903 +#: ../features.rst:330 577ab46503ee45e89daa8c42938635e5 msgid ":issue:`Password hashing configuration <175>`" msgstr "" -#: ../features.rst:315 057a42138afc4bf09b672b124b2427c2 +#: ../features.rst:331 a337cb0aac704dbca90dd70f1d68456d msgid ":issue:`Authentication logging policy <177>`" msgstr "" -#: ../features.rst:316 69727411ac534eb4a5d7c9878a3a9259 +#: ../features.rst:332 39adf64b80444b27bb6f9f11747a6960 msgid ":issue:`Intruder lockout <173>`" msgstr "" -#: ../features.rst:317 3aaa926ecf3742fd9f958c6289c07e28 +#: ../features.rst:333 3eeac7b1dec04fe9b990864b8810db50 msgid ":issue:`Password expiry policy <176>`" msgstr "" -#: ../features.rst:318 cbaccc55230e4715ae21da73acf1fda7 +#: ../features.rst:334 4ad4707b7d02481ab507ded2d410eb70 msgid ":issue:`Multi-factor authentication: Email <47>`" msgstr "" -#: ../features.rst:319 03b9b97e12804fb6a3f9bde3797f96de +#: ../features.rst:335 478b4f7b443f4f728085a2ea686b0248 msgid ":issue:`Multi-factor authentication: SMS <47>`" msgstr "" -#: ../features.rst:320 d1585c695fb34b31a2f4155e25a0ce21 +#: ../features.rst:336 fd624a7e3d404428830928ee05ec5348 msgid ":issue:`Multi-factor authentication: OTP <47>`" msgstr "" -#: ../features.rst:323 98cac710360c483c817392bdee691e42 +#: ../features.rst:339 a6acbc89a16a4fad8658fb33764830ad msgid "Packaging" msgstr "" -#: ../features.rst:325 d4918418360847039125e403638b1770 +#: ../features.rst:341 575b556539994d1190e50cbfd0133bd4 msgid ":issue:`Nix package <190>`" msgstr "" -#: ../features.rst:326 069d4b7f7c9c455890ccf4a3178ae966 +#: ../features.rst:342 f8facef108bf4d668509e57200f732bb msgid ":issue:`Docker / OCI package <59>`" msgstr "" -#: ../features.rst:329 4806bad1903f46cf8cb62f032e60d325 +#: ../features.rst:345 92825d26f07c4b718121c2784a9b6b81 msgid "And beyond" msgstr "" -#: ../features.rst:331 c9daf05da01f49f39133e2ea581eb74a +#: ../features.rst:347 ac17ddb06c4d400ebc190454535608c2 msgid ":issue:`OpenID Connect certification <182>`" msgstr "" -#: ../features.rst:332 54a025190082451f8b269e466e4b45d5 +#: ../features.rst:348 1b80703b0f434fe6ade3288840b9cf3c msgid ":issue:`SCIM support <116>`" msgstr "" -#: ../index.rst:15 717a8f7e969a4b8b8adaea1ba8291c47 +#: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5 msgid "Lightweight Identity and Authorization Management" msgstr "Serveur d’identité et d'autorisations ultra-léger" -#: ../index.rst:19 456fa1eddc78428da5560e87622dabf5 +#: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66 msgid "" "**Canaille** is a French word meaning *rascal*. It is roughly pronounced " "**Can I?**, as in *Can I access your data?* Canaille is a lightweight " @@ -3030,60 +3050,60 @@ msgid "" "simple to install and simple to maintain. Its main features are :" msgstr "" -#: ../index.rst:31 91e28418f0f241a99340fd5f989b4876 +#: ../index.rst:31 8b56e6fd5b374afbadf70d3371ad8538 msgid "User profile and groups management, Basic permissions" msgstr "" -#: ../index.rst:38 2a106e9c196f406586793a2f5b7066fb +#: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1 msgid "" "Authentication, registration, email confirmation, \"I forgot my password\" " "emails" msgstr "" -#: ../index.rst:40 b25dbd93717d433288aba207dcab7afa +#: ../index.rst:40 c4659885674a4b848e904b352c94b89c msgid "SSO" msgstr "" -#: ../index.rst:44 f37a5384d747493e8ef2874dfb07ecb3 +#: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa msgid "OpenID Connect identity provider" msgstr "" -#: ../index.rst:46 62957b4610794c3d8ee8468b997de1f5 +#: ../index.rst:46 f7caa27d43354246a89db295901976cb msgid "Multi-database support" msgstr "" -#: ../index.rst:50 5932f3e36f0648e497da180913d3fa3c +#: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0 msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "" -#: ../index.rst:52 8eb44391147d4534b8fa543e3e91bbf7 +#: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d msgid "Customization" msgstr "" -#: ../index.rst:56 3a4e05ddb2b44ea798b34cf1190c4127 +#: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" msgstr "" -#: ../index.rst:58 3e346f4e0c524e66800599dba3bad2c1 +#: ../index.rst:58 b168d0612c04400e8b259edb581dc6c7 msgid "Developers friendliness" msgstr "" -#: ../index.rst:62 82d294ca62e94a3dbc7ccc59441f8cff +#: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032 msgid "" "Canaille can easily fit in your unit tests suite or in your Continuous " "Integration." msgstr "" -#: ../index.rst:66 ca203799d67d4ea19c7d002fab89e084 -msgid ":doc:`Full feature list `" +#: ../index.rst:66 a4dbd4558bda425cab549061b5952854 +msgid ":doc:`Full feature list ` :doc:`Common use cases `" msgstr "" -#: ../references/commands.rst:4 032d1aefa986496d81ea101048303dc4 +#: ../references/commands.rst:4 574cb073f7584f8599a4cc129a337c4a msgid "" "Canaille provide several commands to help administrator manage their data." msgstr "" -#: ../references/commands.rst:6 f8979d0a813840e29cfa5dcfbd832593 +#: ../references/commands.rst:6 aa7436e81d0347aca49e76837769f92b 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:29 1c69be57aca540c98e722ff2276703b8 +#: ../references/configuration.rst:29 8cbac0cd9e3e4bc3ad5fc60d82180568 msgid "Environment variables" msgstr "" -#: ../references/configuration.rst:31 da85dc6fd02a45a789748f0ec17b4e89 +#: ../references/configuration.rst:31 b909831b5aed44a4b439b37701feabb7 msgid "" "In addition, parameters that have not been set in the configuration file can " "be read from environment variables. The way environment variables are parsed " @@ -3417,75 +3437,75 @@ msgid "" "values>`_." msgstr "" -#: ../references/configuration.rst:36 69417ab884ee42e6808dd9eab2beddce +#: ../references/configuration.rst:36 fd22a354c18f4733b8b1962cfcbe2139 msgid "" "For environment vars, the separator between sections and variables is a " "double underscore: ``__``. For instance, the ``NAME`` var in the " "``CANAILLE`` section shown above is ``CANAILLE__NAME``." msgstr "" -#: ../references/configuration.rst:40 b69e4d6753b841ad82bbe9ea7c33c0e4 +#: ../references/configuration.rst:40 f12f0cbb606e4627be2fa3b2a895f162 msgid "Environment file" msgstr "" -#: ../references/configuration.rst:42 20d741584a984ca39a3ecb59e76950d4 +#: ../references/configuration.rst:42 365f08457733440981be6a70f72771f7 msgid "" "Any environment variable can also be written in a ``.env``, and will be read " "if present." msgstr "" -#: ../references/configuration.rst:44 18ca9f3c5dcd4c36aec0ff6e5727d5e0 +#: ../references/configuration.rst:44 83d91b20c3204d09b61a4a6de8c84769 msgid ".env" msgstr "" -#: ../references/configuration.rst:62 0e5b619b08e7414d8e529d9297fb1e7d +#: ../references/configuration.rst:62 e8e7a0f78d68479a9586036adf25e183 msgid "Parameters" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:1 791c639fd1d348e792cb990516fbb286 +#: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3 msgid "" "The top-level namespace contains holds the configuration settings unrelated " "to Canaille." msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:4 861395c17af04cb591af5e96664eea5e +#: canaille.app.configuration.RootSettings:4 fffc30ea67ab47d99472750172be2a29 msgid "The configuration paramateres from the following libraries can be used:" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:6 128815abe24d4aa195be945ebd1eefec +#: canaille.app.configuration.RootSettings:6 ae9ceb139bfc47f8b383dec852b507c2 msgid ":doc:`Flask `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:7 b85b953781044907978edbd58f9b0e7c +#: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277 msgid ":doc:`Flask-WTF `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:8 bf2f0c41b19d4c6d818e3271f7d7090a +#: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd msgid ":doc:`Flask-Babel `" msgstr "" #: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:9 2e442fc811184ebaad6ed93cbbf85667 +#: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa msgid ":doc:`Authlib `" msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: 44d7f5737e1f4f05bf9585e90b30acc8 +#: 4309008dba2c4aa79584299f19987ac4 msgid "The Flask :external:py:data:`DEBUG` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: 7f957842ebd2454496fca244ea6133a0 +#: f8cb9ba68ed14b818c2fb2bcfbffb16a msgid "This enables debug options." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: f44bd4fd33dd41b8ad8bdb1c0f293304 +#: 553b378e895a4b74aa242c08cd29450f msgid "" "This is useful for development but should be absolutely avoided in " "production environments." @@ -3493,67 +3513,67 @@ msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 -#: 71ef18f3c1e24c64955eb3709c5f60d8 +#: cb2cc7437e4a4d3c90895c4148186b25 msgid "" "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." msgstr "" #: ../../docstring of #: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: a8c0d607af3f4abd85f4fc235509869d +#: 530f78ce6f4842c983c10b38fe4c4b93 msgid "This sets the url scheme by which canaille will be served." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: 62203acb719b4e6d96cc025d58484a1e +#: 42e179fea274407eb26dd67e4a6d14a5 msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: 0ed3cfbee7894619ad4bbd0501873853 +#: b16e239dce5c4f199a2fba1707c82d1a msgid "You MUST change this." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: af766648cf9842159f4f7d294f7eb981 +#: 0f0f60195f334cf597f67857740b2ace msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: e1605dcf629741598750b9f540926025 +#: 39edb89e79af4a10a154a5c42d51e86e msgid "This sets domain name on which canaille will be served." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:1 9a54f6ca9e944a58a14619128ce4281f +#: canaille.core.configuration.CoreSettings:1 d831c1b108eb4e96bb11a6ddc92ed45e msgid "The settings from the ``CANAILLE`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:3 cb35701f7ccd4bf086c43557b821a4f9 +#: canaille.core.configuration.CoreSettings:3 a51801e81d914eb3bfe1fa4e649133c1 msgid "" "Those are all the configuration parameters that controls the behavior of " "Canaille." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: a3bff7c066b44abba1acdbcfefc0a280 +#: 89de24471b434051a4a84e39bc47aded msgid "" "Mapping of permission groups. See :class:`ACLSettings` for more details." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 3939b33e562846619b2d47e433bbeb8c +#: 1f85af06bed64d9da4417c6e6f7e244e msgid "The ACL name can be freely chosen. For example::" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: 46f7381cb12740678e448512de20c117 +#: e07c109febe5434e95b532da3dadf454 msgid "Administration email contact." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: a1ae2edd27e64053ba5d01f253e32f47 +#: 7a5e93e36d434fcb96b85beea8f1adc6 msgid "" "In certain special cases (example : questioning about password corruption), " "it is necessary to provide an administration contact email." @@ -3561,7 +3581,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 -#: 8d2f34d5861642d6915ac0b42a30dbde +#: 478effaaf0da47a1a31b996b06b8c650 msgid "" "If :py:data:`True`, users will need to click on a confirmation link sent by " "email when they want to add a new email." @@ -3569,7 +3589,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 -#: 9f70fe2b56db4c1c81bec250f483d68f +#: b82dc4dc6818409eb5fa256462c4ac19 msgid "" "By default, this is true if ``SMTP`` is configured, else this is false. If " "explicitly set to true and ``SMTP`` is disabled, the email field will be " @@ -3578,7 +3598,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: 8a65cf51a52449129bcb0746bcffa046 +#: cb4478169a09415a9f17e3df16239ecd msgid "" "If :py:data:`True`, Canaille will check if passwords appears in " "compromission databases such as `HIBP `_ when " @@ -3587,7 +3607,7 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 -#: 776ad474178b4e959ad82fc032219c8e +#: b70cf94037df4bd1ae8a74acc370b3a5 msgid "" "If :py:data:`False`, then users cannot ask for a password recovery link by " "email." @@ -3595,32 +3615,32 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 -#: 12acca4e0f094e20bb5a270c8d97d99a +#: 6ee78ec59c21456e8761778153d4f700 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 -#: 840e49d2e9264d68b5d1cbd9b143ceb7 +#: 979b9444b9c04354add2e781bd324752 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 -#: 0d50af61aaba444b9e103ff521254ca0 +#: 8931d55b0c264be0982765f04f83ae38 msgid "You favicon." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: 59e60f97c84240169af8df01bbace81d +#: 7991e0eec12c457dad401f49b34ad835 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 -#: b3571ea7fa4b4df8a0ee8eb34b404c7a +#: 8e19d8a485fe456191ab16773f84483e msgid "" "If :py:data:`True`, when users try to sign in with an invalid login, a " "message is shown indicating that the password is wrong, but does not give a " @@ -3629,52 +3649,52 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 -#: 41f2e49e5856444fa23ac6d5fbaf358a +#: dffe6e218f4f48e981ac5a9fa9a21e37 msgid "" "If :py:data:`False`, when a user tries to sign in with an invalid login, a " "message is shown indicating that the login does not exist." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1 -#: 454a4dc93f8145b39d2f0849e79254eb +#: b200882d189b46f3a83f217ff8b59551 msgid "Accelerates webpages loading with asynchronous requests." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: a533c6a616404640af514d077f3349cc +#: 2dc15bd9ea8a4386b7202dbdbab5de36 msgid "The validity duration of registration invitations, in seconds." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: 4426e58deafa457db438250ea2123074 +#: c6aaae8719c34838aec54b8fea2d5101 msgid "Defaults to 2 days." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 17488de94ce44513b653f1862c7e10d4 +#: 70d5c7fa2dfa4e6695c84f2b4ab547c9 msgid "Enables Javascript to smooth the user experience." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 267b78dfc63140b1a9c72dfc30bb9b2d +#: 1e1cda3ec4c04a4aaeb2069ccc8f376f msgid "If a language code is set, it will be used for every user." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: 22134d36163549ceaffd20331efe914f +#: 6818acfcf652444db48e1c61878b6bb6 msgid "If unset, the language is guessed according to the users browser." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: 1a9c6c0024604e9686555ac6e59704bc +#: 63800f5a14d44e1fa3ed0266e19f5482 msgid "" "Configures the logging output using the python logging configuration format:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: 95c8e536640848c0b8b98e3d656caa74 +#: 62d20006362a45ca8ff0f0a8fbb82bf4 msgid "" "if :py:data:`None`, everything is logged in the standard error output the " "log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app." @@ -3683,26 +3703,26 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: c594e259fd604e4c90e1b6065dc163e2 +#: 44c6ded187ab4e44aac024c2cdb85303 msgid "" "if this is a :class:`dict`, it is passed to :func:`logging.config." "dictConfig`:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 011a9cbe80824880a48ed94ad95dfdf1 +#: 6e269ac8b9144e9699a5856c375d7a37 msgid "" "if this is a :class:`str`, it is expected to be a file path that will be " "passed to :func:`logging.config.fileConfig`" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 -#: 57acbce67efa44b28945add32352fbdf +#: ba8b9d6794e2459492abfa778736328a msgid "For example::" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: d0674fcab90a46c28d56a6f365f0188f +#: 851b93aeb7b54426872a6b4a2ed973b9 msgid "" "The logo of your organization, this is useful to make your organization " "recognizable on login screens." @@ -3710,13 +3730,13 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 -#: 58464e3876b545c1a32c812ebfa29005 +#: f7c447a44c3446258b4edba163f587dd msgid "Maximum length for user password." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 6861aa0b2a304a42bd0238b7f2ef485d +#: 435e72d3f33642da9016c521a88f15e6 msgid "" "There is a technical limit with passlib used by sql database of 4096 " "characters. If the value entered is 0 or None, or greater than 4096, then " @@ -3725,79 +3745,79 @@ msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: 82a4eb15b3e842929bf67fa5d0ca11cd +#: 6f4e40c7b45c4b72b571575ba0e98db9 msgid "Minimum length for user password." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 063f88a1b31b4a01b88d78fa9b6d3f39 +#: a0bcdae052d84c3fb9ef4bfd394e06a5 msgid "It is possible not to set a minimum, by entering None or 0." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: e92611023732499cbaea77efd690057a +#: a41944f564f5438fb8572449b5d13995 msgid "Your organization name." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: 1441cf7bd4ae459299474ece36c4cc74 +#: d61df1326c344b45b6d1c7b24e12b207 msgid "Used for display purpose." msgstr "" #: ../../docstring of #: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 36e2b75dbf244ffdbd20617f4b335420 +#: 4501d236ecc142e2ad045599ee19ac19 msgid "Have i been pwned api url for compromission checks." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 6f23592b1cb74c1a9892c485b59659c8 +#: 0b234cbe21824f31b27a3b3c893fd37b msgid "A `Sentry `_ DSN to collect the exceptions." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: f211dffdef8546eea858b1b9d597b894 +#: 2eab9799f4c0478aa5479f62e826b170 msgid "This is useful for tracking errors in test and production environments." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: de63624fd2da4c54bf615f3efcf95d0e +#: 79d66e38b7d94974a21563fac9a58149 msgid "The settings related to SMTP and mail configuration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 4a8b43ab10da4417be79e7131dfa060f +#: 41d396512e7d40b28223841b21f8ed09 msgid "" "If unset, mail-related features like password recovery won't be enabled." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: b8ac34a988bb4014ad7ae747247a72c4 +#: e327a089ace6495285f29ade69226d1b 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 -#: 2e2df83a5f83492faf2d4341f5f3b7b6 +#: 641146b41ecc461d9fa7280687a462d9 msgid "" "Defaults to ``default``. Theming is done with `flask-themer `_." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 97d945e9085943b2aca290115c964809 +#: 421c3427b77b4cc4af9619406463c1c2 msgid "" "The timezone in which datetimes will be displayed to the users (e.g. " "``CEST``)." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: fed392b95f8543d79691a1b1714f5977 +#: d8d80524578e4697a5bb9f7e83c7d113 msgid "If unset, the server timezone will be used." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:1 c950729a93064d8ea627986f85fb6d0f +#: canaille.core.configuration.SMTPSettings:1 2f0178f9dbe747c695273f89e42da8c2 msgid "" "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, " "mail related features will be disabled, such as mail verification or " @@ -3805,59 +3825,59 @@ msgid "" msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:5 ae1ea1e7c73c420f816084394306ba47 +#: canaille.core.configuration.SMTPSettings:5 598e1ca109154455ad98b50d8853891d msgid "" "By default, Canaille will try to send mails from localhost without " "authentication." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: f785744b560c40f1b2800d7ca351ea04 +#: 8ab9425f8a6b42dc9097b69e3eaa334a msgid "The sender for Canaille mails." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: febe818e7af94f76b1a3dd09c37156f3 +#: f8f5f1377e5147d4baf9782ff95b4aa3 msgid "Some mail provider might require a valid sender address." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: a69855a6e70b4d919aea5fecdcf44595 +#: 9059b29ae44849efb180f3b2da128c19 msgid "The SMTP host." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 3d4f216488a544569ba4a106c0bfc1cf +#: 0bf8168dc84545cb810a8f25bbb4abf7 msgid "The SMTP login." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: 1064eb67ae0743fb9972e096ea00fd7e +#: ec1b4f81894e45f5abcae80dfaee87a9 msgid "The SMTP password." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 63ad2686b92a42b6bdba3ac753370d0f +#: 514104bb8bcc4331b1e7fff12e550ba3 msgid "The SMTP port." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: a5b9bc6cc58946b291f72ba43c77c837 +#: f4e65d7811cb43d5b7d86ec07af2576d msgid "Whether to use SSL to connect to the SMTP server." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: bb2ffd5117a74ed0b828c7e9b643ff6c +#: bd8dac0e38f14b6583d024fca1768b7d msgid "Whether to use TLS to connect to the SMTP server." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:1 789f36d197fb453c91eb6f8e05fc4f25 +#: canaille.core.configuration.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0 msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:3 4bd657174e0143af9b9fbc0519d501e9 +#: canaille.core.configuration.ACLSettings:3 733df203b313404eb417f40ed8708a2e msgid "" "You can define access controls that define what users can do on canaille An " "access control consists in a :attr:`FILTER` to match users, a list of :attr:" @@ -3867,18 +3887,18 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 -#: 134302ab158549ad975879115d2c8eb9 +#: a14933a4c7244138bb59a43c9d288955 msgid ":attr:`FILTER` can be:" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: 7f0555044d4a4b58b776eeb9ec14b5cd +#: d0f71dfab2ec47fca2184767e58eec59 msgid "" ":py:data:`None`, in which case all the users will match this access control" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: e300b60dedae45238ea7f4acb02a87ee +#: e33849bb0c954228951cb18c56a9e70d msgid "" "a mapping where keys are user attributes name and the values those user " "attribute values. All the values must be matched for the user to be part of " @@ -3886,113 +3906,113 @@ msgid "" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: 755ee008fcce43ce8b906501c7247606 +#: 2ed07fdd7da94cfd90167b2d1f4cb4eb msgid "" "a list of those mappings. If a user values match at least one mapping, then " "the user will be part of the access control" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 3de2e561b83646f1b7ec6801b2910f38 +#: 657a11f5921947b88bfc47cf8affbe00 msgid "Here are some examples::" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: fe04ea512568461d9448d71f1c999092 +#: df95253032c647229909e34386b1e5cc msgid "" "A list of :class:`Permission` users in the access control will be able to " "manage. For example::" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: 4b229af962554aa99e9e93b39fe05f9f +#: ab801708874c4b1bb937f62969614340 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to read." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1 -#: b656265b8f9546659c5820e26fd1ce1c +#: 384d296240314638a1f1b6b7719c6bb6 msgid "" "A list of :class:`~canaille.core.models.User` attributes that users in the " "ACL will be able to edit." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:1 8ebfe0c9ad84417aa3bc92770d91af2f +#: canaille.core.configuration.Permission:1 f9eec27878c64e608b2783b5e89172ed msgid "The permissions that can be assigned to users." msgstr "" #: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:3 ef21883d2b12429d91d8dad8d382fdb2 +#: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131 msgid "" "The permissions are intended to be used in :attr:`ACLSettings `." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: e8f13fbf1ad24471b165a07059590a31 +#: 370dec6e2b8049d0b7353b085340b102 msgid "Allows users to delete their account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: 52717ea4c45a42b2b5a071c9393522cd +#: f7be239942c94727a948d27c6c93408e msgid "" "If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, " "users can delete any account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1 -#: 35547166ff4d489d9a3d4098bbff74ce +#: 1f716bb0d0ec481ab5dff0a02f5c9e37 msgid "Allows users to edit their own profile." msgstr "" #: ../../docstring of #: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: 310e4a17fd9242d6904054b4c883a577 +#: c9018bb9aceb40bc9536cc03320c5bad msgid "Allows users to take the identity of another user." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: ac1abae2d8f74772b348cbd59bd9e8e5 +#: 1072c369689f4922997715eb5337795a msgid "Allows group edition and creation." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 1490858a79d448788927c70f271e61b1 +#: 014b4028381e4f4d8dcc8dc8a5e3a26f msgid "Allows OpenID Connect client managements." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: b92df6b742994a71a4bac9c7c8f4b54a +#: ff39df8edc7143c7b23d22bb773b5198 msgid "Allows other users management." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: c675f1a7593b447e89aefd4f1cdb2cd2 +#: c7e27c4618a9460e8373c17f558f8d1e msgid "Allows OpenID Connect authentication." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:1 9b14baa774f44089a7f5e32ba777d0d2 +#: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef msgid "OpenID Connect settings." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:3 706575830d584262963070e217b28773 +#: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 05ce4abf1291468fad96409fcfdb326b +#: 092f0d4259994eb8b834b256a8f72453 msgid "" "Whether a token is needed for the RFC7591 dynamical client registration." msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 72532597a48e43bba0a220c4cc85d3f8 +#: 506f1fcd0f424df4bdafd9a69307f645 msgid "" "If :py:data:`True`, no token is needed to register a client. If :py:data:" "`False`, dynamical client registration needs a token defined in :attr:" @@ -4001,201 +4021,201 @@ msgstr "" #: ../../docstring of #: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 -#: f09695298396457d9ac80871f6a3f414 +#: 30861c9a3a294daf8105dd5ac9007282 msgid "A list of tokens that can be used for dynamic client registration." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: 60041fd5cd7943cc8c9ccd3c5399ebcd +#: 04e054bb3d094e4ea8f23ab6fdec9bf6 msgid "JSON Web Token settings." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: d72133a06e7b4fd5b768e50d5607eebe +#: 95b1ee4fd0da4ec2b30beb3e25944cd9 msgid "Force the nonce exchange during the authentication flows." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: 7fa93fd611ca48028ba3c6a64ccb1c7e +#: de680082bc4546a6883ff4826df0067b msgid "This adds security but may not be supported by all clients." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:1 539d3c96a9084289852a953a6d7b17df +#: canaille.oidc.configuration.JWTSettings:1 750fbe7d77954d87855e68d3199c81e7 msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:3 5e71253140a245129cf77c28005b19f1 +#: canaille.oidc.configuration.JWTSettings:3 03945dc4192c4f7abefbcd2b5c7c2bd9 msgid "You can generate a RSA keypair with::" msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: 988bee422e4b4fec87dc632e93a50c46 +#: d65a4aaf4cb64130ac59c97cddcffb0b msgid "The key algorithm." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: 1c0f3c2d601c428884a0e461ec2068b3 +#: c0c460480db94b1a9ebceea06528d426 msgid "The time the JWT will be valid, in seconds." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: 3c267a9fb78146278930375f669d84fd +#: 6501426215db4b27b7b5d217954ca6be msgid "The URI of the identity provider." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: eac75734be944cbaa98dbf3c58543182 +#: 3e338458e42e405fb025bfcfc53688f4 msgid "The key type." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 5b8d5a20394a42aaa95e8b6272422676 +#: 27a15f235d63447884175edd85e55cf4 msgid "The private key." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: f8f4cfc9a6944cf886747112edc27e05 27b7a5db2a7349fd8c8fcd0da52099a4 +#: 29d2c1b105e74d46b80db01b78954711 50803cf9f29e4e6aa869fe297d1181c5 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 -#: e35dd157c6e646deb620fc05fb2c6ea9 +#: e88605c89e4b47989186fd27e5aff172 msgid "The public key." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:1 -#: 780c4d38785741f285ccf535519eeaa3 +#: 235687b99f2c408aaf1c063061975f77 msgid "Mapping between the user model and the JWT fields." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of #: canaille.oidc.configuration.JWTMappingSettings:3 -#: f3a874b7d74b4a88b42d454b2610523f +#: ebe87d5efdaa458b97451b5ab4fdeb3d msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:1 -#: 165856c16d0a43d4ab40ae18c4c6a121 +#: b7ccdac0ebd14f47be2d77ea52bd75d7 msgid "Settings related to the SQL backend." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of #: canaille.backends.sql.configuration.SQLSettings:3 -#: 63bb2fe9e32a4335a4703a4858e04bdd +#: 07e03b184cb54e0a92ca3a33033da5cd msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "" #: ../../docstring of #: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: 0d50d676505145cba84b5bdbff702f47 +#: 4d1ff118c1a44a50a962e527d1a8e2a2 msgid "The SQL server URI. For example::" msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:1 -#: 63835d8e27dd4f49adc55bc2485065f8 +#: e656ae1d120e45109618f653d29d845e msgid "Settings related to the LDAP backend." msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of #: canaille.backends.ldap.configuration.LDAPSettings:3 -#: fd3ab17575104482a7f2c37cc19043af +#: 9877879932a3406b87f9893f4a6bf8f3 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: 550e9bdf6e9247f09403e4b4ff8be94c +#: 96d852cc067c459cabfcc201a7271cf0 msgid "The LDAP bind DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: bc1424fa78f1493fa69ef725de487809 +#: 084f3814a8604375aed794d649845045 msgid "The LDAP bind password." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 8282e536034347a3b09afa4b4bdcedc8 +#: 8f56c7d2bfb348afbcc36de24398dfac msgid "The LDAP node under which groups will be looked for and saved." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 9f912f59001e49c5b67f6e451514aa6a +#: 58cf9c9e87464b709e4e8508577fbd63 msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: e614760d80cd4a91a211ae8d84548bea +#: 3b6a2121763e4302aa1780cb6d51d9d6 msgid "The object class to use for creating new groups." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: 0338cd65d7fa41c985a7f6afe5d2d4b3 +#: 10d8bb8232bf4b30b6c631847ea70b2b msgid "The attribute to use to identify a group." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: 9c776217f019430990f05cb397592cc3 +#: 688132cb0d4e4f27973a02406d50edaa msgid "The attribute to identify an object in the Group DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: bb137dbdd9ba4b32a9ff399535965ec5 +#: 4428b1de4b664a55b077caa3969d6769 msgid "The LDAP root DN." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: 4819f0cceda947f789405fc0a2851540 +#: 5a175d6a66e445458ee6bc473d614a45 msgid "The LDAP connection timeout." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: e10eb86592e54e458fa14aed17aff1f3 +#: 3172b80b5b86434699f226a3b713c52f msgid "The LDAP server URI." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: f26b0015244b4ebf88f2a01ecccf6146 +#: 0e03c3262f504b79b84847041ee442e5 msgid "The LDAP node under which users will be looked for and saved." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: cfec4d845a124961b3e2a7d48af1b5f7 +#: e1d16301542b40929d9e65c9a949b303 msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 884ecb78852c4fb886fffcbf653909f1 +#: 92a1f8f8665848c9aaf4d5f9f1f3b6b7 msgid "The object class to use for creating new users." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 35708f1aa4a343179372567b9711de54 +#: 228fcd64b4704fa0b4ea52ab85f48f08 msgid "Filter to match users on sign in." msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: 282ea97660b54ea0b86d9aec0a26a7fb +#: f61c66f7c0e94e67ae5a4ce5de0dc548 msgid "" "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is " "supported and a ``login`` variable is available, containing the value passed " @@ -4204,27 +4224,27 @@ msgstr "" #: ../../docstring of #: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 -#: e064a83dfa6c492fb83985762141f127 +#: d49e7765b3d6440d9fdcb0ecb18c06c1 msgid "The attribute to identify an object in the User DN." msgstr "" -#: ../references/configuration.rst:81 8666192035fa47e2b43c95af3e2e9ff5 +#: ../references/configuration.rst:81 c4674c5a1b434e81944983c7ec2fb0f1 msgid "Example file" msgstr "" -#: ../references/configuration.rst:83 ae6fe4f0abc64b988760f7d54220a253 +#: ../references/configuration.rst:83 87c3dcb2ef5a4f649ec0fa9005449a79 msgid "Here is a configuration file example:" msgstr "" -#: ../references/index.rst:2 206288fd44084b00a6a7cebc4ec444af +#: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e msgid "References" msgstr "" -#: ../references/models.rst:2 e33e5271c036428493f7675bc9f5cb03 +#: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c msgid "Data models" msgstr "" -#: ../references/models.rst:4 857e3dd1bcf846a3b6bdd4a2d9610330 +#: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217 msgid "" "This reference details the data models used by Canaille. This is mostly " "useful for developers." @@ -4232,41 +4252,41 @@ msgstr "" #: ../../canaille/backends/models.py:docstring of #: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 -#: c7abd830186c4a0e8811584d8500f6ca b41326706bd14c358bf495e522b4dd3c +#: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7 msgid "Bases: :py:class:`object`" msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:1 1132269715584e11b7e0537cc804941e +#: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9 msgid "The backend model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:3 4ec1903388f54d95b4ad8204170fbaf3 +#: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2 msgid "" "It details all the methods and attributes that are expected to be " "implemented for every model and for every backend." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:1 fa90c720f73b4e81afd4f090b7a504a8 +#: canaille.backends.models.Model:1 9f46b7e1801e4a57a346c598161cbdac msgid "The model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:3 d0e3aaa6602f46619cef932ff017b2e3 +#: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b msgid "It details all the common attributes shared by every models." msgstr "" #: ../../docstring of canaille.backends.models.Model.created:1 -#: 8a033e0fc1384d81b8e14eb9fabf5b04 +#: 8685782e932b476a8b6f80256ebca659 msgid "" "The :class:`~datetime.datetime` that the resource was added to the service " "provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:1 -#: 8da69774f6ef4e11be081b9464934f55 +#: 112d9fd0a032418682875fe5f5685fc8 msgid "" "A unique identifier for a SCIM resource as defined by the service provider. " "Id will be :py:data:`None` until the :meth:`~canaille.backends.models." @@ -4274,7 +4294,7 @@ msgid "" msgstr "" #: ../../docstring of canaille.backends.models.Model.id:5 -#: 57bc2383f9fd4488bfb43683117e9dce +#: fe3e4be3b44b43ebbbd11fe81fdc2613 msgid "" "Each representation of the resource MUST include a non-empty \"id\" value. " "This identifier MUST be unique across the SCIM service provider's entire set " @@ -4289,27 +4309,27 @@ msgid "" msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:1 99835090b4f04bcaae8e4ca7a7f1c661 +#: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de msgid "" "Returns a unique value that will be used to identify the model instance." msgstr "" #: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:4 b73d248fbdae4e2aa9d85081a7cbcb47 +#: canaille.backends.models.Model.identifier:4 570af0c54d8a4b9ca5e1180a154578c6 msgid "" "This value will be used in URLs in canaille, so it should be unique and " "short." msgstr "" #: ../../docstring of canaille.backends.models.Model.last_modified:1 -#: 7c7bf6ecc0be4ffc8ee3deeaea8b30fd +#: a64d636f5ae843698bae18cbc27adae5 msgid "" "The most recent :class:`~datetime.datetime` that the details of this " "resource were updated at the service provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.last_modified:4 -#: 3e9df2c4756c4d3e8c0bc9f3dd02b81e +#: 1478742051c64d3c8e8cb44b101c2337 msgid "" "If this resource has never been modified since its initial creation, the " "value MUST be the same as the value of :attr:`~canaille.backends.models." @@ -4320,38 +4340,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 76e8d7eab59c4068a81892edeb1e0959 -#: 8ad591f5e7814bda8f75427e15ea3b94 5d552eb21a0b4bdbba717f23d9d07355 -#: de6ff91c8955442a8900ea3b083de26a 9dbde2f4403945e6a6a6407395f13c7d -#: 146d1fa072e444d9bde901a403f23bc0 +#: canaille.oidc.basemodels.Token:1 31058fb082044629ab68e330524f37d4 +#: 963c873782434df6bc7a6314e406858e ec3b5ed7c8e94f728377c74990bc94e6 +#: fac7abe230f5419eadc03a768bc0872c 1269097fb76b42c29248af6773628ec4 +#: 25aa111736e44c4ea89c97864274d146 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: a1df08de19964375abcca8512ca17705 +#: d8d4759602c44e048e0d4f053dc5c895 msgid "" "User model, based on the `SCIM Group schema `_." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:1 -#: 2bf3aa99c4a84f6095ba98e7f92e321d +#: f557ae62a380458ca1e212165ff7ebd2 msgid "A human-readable name for the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:3 -#: canaille.oidc.basemodels.Client.client_id:1 5c1fa86c00e84e3f95d2d051acd63464 -#: 58e401ecc8384467bb179ce57016d2f1 +#: canaille.oidc.basemodels.Client.client_id:1 3a782effac4c44f2b4084280c168f909 +#: 038998149ec146249f6cd7993b6ea7c2 msgid "REQUIRED." msgstr "" #: ../../docstring of canaille.core.models.Group.members:1 -#: d04e1dbd8f4946f3bfabb88ddd25791f +#: 83c94299de834bb7899fc5d919567ddf msgid "A list of members of the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.members:3 -#: d84485ef948747a398d2c755da44a71a +#: f8395458983d4efd966c1f2bd3e771dc msgid "" "While values MAY be added or removed, sub-attributes of members are " "\"immutable\". The \"value\" sub-attribute contains the value of an \"id\" " @@ -4364,7 +4384,7 @@ msgid "" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: 81f4664ae5714523a2ed092cc80537e9 +#: 3de74c338e4e45d4ada0909e1d6a2c1d 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 7afdae6265ca450ca7b90737893fb816 +#: canaille.core.models.User.readable_fields:4 d51b5c9a3058444187f7f52aafcc57ce msgid "" "This does not include the :attr:`writable ` fields." msgstr "" #: ../../docstring of canaille.core.models.User.region:1 -#: e396209a890449d0a517ba2e362d806f +#: 7781da46bb4f45c19d4061a73efd1860 msgid "The state or region component." msgstr "" #: ../../docstring of canaille.core.models.User.street:1 -#: 19108e451a7c434ba4246251f0a2646b +#: e15de46ed1a745e580399d0bf40e96b8 msgid "" "The full street address component, which may include house number, street " "name, P.O." msgstr "" #: ../../docstring of canaille.core.models.User.street:4 -#: eaa0d95c9221440b93e046dc85be8618 +#: 663a1b080f3646f5bbc30492beccda49 msgid "" "box, and multi-line extended street address information. This attribute MAY " "contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.title:1 -#: cd41539c41c34a0c9457d0ba3256a967 +#: 96571ab69f47443087e9de7cdf2af3ef msgid "The user's title, such as \"Vice President\"." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:1 -#: 24e291232c474e6590826cd8c03cbc1c +#: 5a41c74aee6040d78b20e68feedbe91d msgid "" "A service provider's unique identifier for the user, typically used by the " "user to directly authenticate to the service provider." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:4 -#: 9c35779d8e274c518400a690b9064ab2 +#: 305c46ac8a734b4fb513c2da9c0bd78d msgid "" "Often displayed to the user as their unique identifier within the system (as " "opposed to \"id\" or \"externalId\", which are generally opaque and not user-" @@ -4722,7 +4742,7 @@ msgid "" msgstr "" #: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.writable_fields:1 83205b3ffcaf4c7b8ff106f9a56ad5ed +#: canaille.core.models.User.writable_fields:1 f99945951b7f476484908fef5eb9bee4 msgid "" "The fields the user can write according to the :class:`configuration " "`." @@ -4730,12 +4750,12 @@ msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of #: canaille.oidc.basemodels.AuthorizationCode:1 -#: 882af7335c4448c1acd9b8bfa27cd3f1 +#: 470216f2acc344a9bc4fe9408cf38b4c msgid "OpenID Connect temporary authorization code definition." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Client:1 ebfd2dba785f4acf839c79f93a313fb9 +#: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b msgid "" "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " "Registration protocols `_, such as sqlite, postgresql or mariadb." msgstr "" -#: ../tutorial/databases.rst:21 4fd8e23cddf04dbc89c7b1a9573e87fd +#: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca msgid "" "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " "instance:" msgstr "" -#: ../tutorial/databases.rst:29 69b24a49338a4470a07e4a9c9d7282c6 +#: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96 msgid "" "You can find more details on the SQL configuration in the :class:`dedicated " "section `." msgstr "" -#: ../tutorial/databases.rst:34 8dd1e7f7944d4cc9bc0d59f0b484a375 +#: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91 msgid "" "Canaille can use OpenLDAP as its main database. It is used when the " "``CANAILLE_LDAP`` configuration parameter is defined. For instance:" msgstr "" -#: ../tutorial/databases.rst:52 9f342913152145969f54c9c7a730591a +#: ../tutorial/databases.rst:52 fcbc8501c455465daa5142894408bb38 msgid "" "You can find more details on the LDAP configuration in the :class:`dedicated " "section `." msgstr "" -#: ../tutorial/databases.rst:55 1d9844441ee94cfc8c1cd33634c8a260 +#: ../tutorial/databases.rst:55 2c710def18bc46539b2962ee1bde2bf6 msgid "" "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been " "tested. If you want to use different schemas or LDAP servers, adaptations " "may be needed. Patches are welcome." msgstr "" -#: ../tutorial/databases.rst:60 cbd9e8dd2d3d488fa9ff6a89fad68473 +#: ../tutorial/databases.rst:60 b7014bf888504dcc865871e8275190f6 msgid "OpenLDAP overlays integration" msgstr "" -#: ../tutorial/databases.rst:62 1128cf3f9348468d9c0525d62f369610 +#: ../tutorial/databases.rst:62 a67abbc0745e4c7e9353697969a4fbab msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "" -#: ../tutorial/databases.rst:65 dc2b38641a624e6ca15e768af895e165 +#: ../tutorial/databases.rst:65 b1eebe57d90648b3b24cb48cb49c5436 msgid "memberof / refint" msgstr "" -#: ../tutorial/databases.rst:67 29fde43c21534568827bb5d4af8bba87 +#: ../tutorial/databases.rst:67 6bb596696373483ab0a52f0e8169ab9e msgid "" "`memberof `_ and `refint `_ overlay is configured and the ``pwdEndTime`` attribute is " @@ -5263,75 +5279,75 @@ msgid "" "attribute." msgstr "" -#: ../tutorial/databases.rst:96 6d40734bf5e6400a96db52699ee59da7 +#: ../tutorial/databases.rst:96 0194f8cb96554ed9a209784cd1a5a10e msgid "ppolicy-config.ldif" msgstr "" -#: ../tutorial/databases.rst:100 cd2095f5b8434e5392dec2416b0cff16 +#: ../tutorial/databases.rst:100 09776d76a5c54f6eb7d79e15a0dbed82 msgid "ppolicy.ldif" msgstr "" -#: ../tutorial/deployment.rst:2 2987956a5e424d44a6ae813c10befc49 +#: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb msgid "Deployment" msgstr "" -#: ../tutorial/deployment.rst:5 0172517f10df47bb882e9b5e98aaaed8 +#: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110 msgid "Application service" msgstr "" -#: ../tutorial/deployment.rst:7 31fc23f3ae8c4edbb06fc3716dcdbd0c +#: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5 msgid "" "After having finished Canaille installation you have to run it in a WSGI " "application server. Here are some WSGI server configuration examples you can " "pick. Do not forget to update the paths." msgstr "" -#: ../tutorial/deployment.rst:11 2e279860c34e426ab02a89e8d3cbdc86 +#: ../tutorial/deployment.rst:11 cf41e4599bea477a8b6742ed38c09555 msgid "gunicorn" msgstr "" -#: ../tutorial/deployment.rst:15 a0bd0b5693f142a998c82f8eaded413c +#: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff msgid "Write a gunicorn configuration sample file." msgstr "" -#: ../tutorial/deployment.rst:18 8c89f19656444f3da0de58c09f55806e +#: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b msgid "uwsgi" msgstr "" -#: ../tutorial/deployment.rst:42 abd150cbb61f4869b76221fe90ef2fc4 +#: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4 msgid "Webserver" msgstr "" -#: ../tutorial/deployment.rst:44 4311527b4499488ab597ba5f76ed5c89 +#: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4 msgid "" "Now you have to plug your WSGI application server to your webserver so it is " "accessible on the internet. Here are some webserver configuration examples " "you can pick:" msgstr "" -#: ../tutorial/deployment.rst:48 6c6552189add4988bd8a8a903e17d7ab +#: ../tutorial/deployment.rst:48 40d9837c5cdd4c9faf94797e578e409d msgid "Nginx" msgstr "" -#: ../tutorial/deployment.rst:114 1d487ea77b1e4d6f8077c47588875cc9 +#: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e msgid "Apache" msgstr "" -#: ../tutorial/deployment.rst:153 d2ab58ef5d8d4399b5cbebefda64ef02 +#: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e msgid "Recurrent jobs" msgstr "" -#: ../tutorial/deployment.rst:155 009ab798ea3e421fa375c06afd947850 +#: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334 msgid "" "You might want to clean up your database to avoid it growing too much. You " "can regularly delete expired tokens and authorization codes with:" msgstr "" -#: ../tutorial/deployment.rst:164 02b4dac1342e4553ac855db4d8ccaf93 +#: ../tutorial/deployment.rst:164 3a91c9769ca04ed289ef4e08d71c84e0 msgid "Webfinger" msgstr "" -#: ../tutorial/deployment.rst:166 2251eedb9886498abccdf399a4eee6e0 +#: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad msgid "" "You may want to configure a `WebFinger`_ endpoint on your main website to " "allow the automatic discovery of your Canaille installation based on the " @@ -5346,7 +5362,7 @@ msgid "" "party application can redirect the user to the Canaille authentication page." msgstr "" -#: ../tutorial/deployment.rst:168 17dba1b42650416f8512f5e577920647 +#: ../tutorial/deployment.rst:168 d4f07f118d4443bcbd44e55144cf4d1f msgid "" "The difficulty here is that the WebFinger endpoint must be hosted at the top-" "level domain (i.e. ``mydomain.example``) while the authentication server " @@ -5355,127 +5371,127 @@ msgid "" "domain, a web redirection is required on the ``/.well-known/webfinger`` path." msgstr "" -#: ../tutorial/deployment.rst:170 8d303134c6994ed18bfc306fdf588b10 +#: ../tutorial/deployment.rst:170 b305def4f6e74643b1c47e5491e46126 msgid "Here are configuration examples for Nginx or Apache:" msgstr "" -#: ../tutorial/deployment.rst:172 cc1a265bbebb42769bc863376dd1a2b9 +#: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce msgid "Nginx webfinger configuration for a top level domain" msgstr "" -#: ../tutorial/deployment.rst:181 e88ce02e0f4044efb9b6ffdf1eab7bc6 +#: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637 msgid "Apache webfinger configuration for a top level domain" msgstr "" -#: ../tutorial/deployment.rst:191 505fdef5b6614e2ab6d99e974ce5ba3a +#: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a msgid "Create the first user" msgstr "" -#: ../tutorial/deployment.rst:193 d42846ede3db41a38a191b2c978d48d8 +#: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f msgid "" "Once canaille is installed, soon enough you will need to add users. To " "create your first user you can use the :ref:`canaille create ` " "CLI." msgstr "" -#: ../tutorial/index.rst:2 37c7604de530426ead3d7e42b055df3e +#: ../tutorial/index.rst:2 40de96b13f0b46ba88769f9f0c91bece msgid "Tutorial" msgstr "" -#: ../tutorial/install.rst:2 0549427dff71470884ef181434db0d1b +#: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544 msgid "Installation" msgstr "" -#: ../tutorial/install.rst:6 1a994e51ef1c4148b28123cc3f6e1b13 +#: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613 msgid "" "Canaille is under heavy development and may not fit a production environment " "yet." msgstr "" -#: ../tutorial/install.rst:8 30d4d9aa4ddc43ab887a4549faba18e1 +#: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499 msgid "" "The installation of canaille consist in several steps, some of which you can " "do manually or with command line tool:" msgstr "" -#: ../tutorial/install.rst:11 3067c5da88ca45d1b80c0c90dfba3c10 +#: ../tutorial/install.rst:11 de05573555224e75869a68ac41471c97 msgid "Get the code" msgstr "" -#: ../tutorial/install.rst:13 78bd3c946d664be7a0b8532f055b83df +#: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5 msgid "" "As the moment there is no distribution package for canaille. However, it can " "be installed with the ``pip`` package manager. Let us choose a place for the " "canaille environment, like ``/opt/canaille/env``." msgstr "" -#: ../tutorial/install.rst:24 e0e971d372ef471b912c4f65a3f60a29 +#: ../tutorial/install.rst:24 5e8dbf51cc8e401d8e7f2738c4c1e500 msgid "Extras" msgstr "" -#: ../tutorial/install.rst:26 48d64e466a2e4ce485339fdd0991775f +#: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6 msgid "Canaille provides different package options:" msgstr "" -#: ../tutorial/install.rst:28 66fc7bc361974faa8f057f71ca939a5a +#: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb msgid "`front` provides all the things needed to produce the user interface;" msgstr "" -#: ../tutorial/install.rst:29 60be8fdc29a343dbab05dcf20f3e137c +#: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" -#: ../tutorial/install.rst:30 23b2e09f1f334af2b53c3490a53f5f93 +#: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131 msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "" -#: ../tutorial/install.rst:31 cc7eb845e1744d85b54eeaef7dec2aa3 +#: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "" -#: ../tutorial/install.rst:32 572c6784c71940958514342a0f8252b1 +#: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f msgid "" "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" -#: ../tutorial/install.rst:33 a3dee22ba7d745869fb5bf592878e824 +#: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122 msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "" -#: ../tutorial/install.rst:34 15edacfc74d84243b67efe13d71c5576 +#: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2 msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" -#: ../tutorial/install.rst:35 1573b386520446c695f433d3f1eec54b +#: ../tutorial/install.rst:35 dfd39313c050407193deac1f01f23e54 msgid "`all` provides all the extras above." msgstr "" -#: ../tutorial/install.rst:37 d1c85c9b764144eaae14b92a13bd70bf +#: ../tutorial/install.rst:37 3d0f7f47cc1a469e9762578aed91f002 msgid "They can be installed with:" msgstr "" -#: ../tutorial/install.rst:44 52137f0d57ff48018bfa33a1bf431ed7 +#: ../tutorial/install.rst:44 b7732a260ca84ba3a4130bd6cb0d1619 msgid "Configure" msgstr "" -#: ../tutorial/install.rst:46 13d0fcf7c2504a2d8f91afd6ee79d064 +#: ../tutorial/install.rst:46 86df5b7acf954ddfbb2982dbe0a51da1 msgid "" "Choose a path where to store your configuration file. You can pass any " "configuration path with the ``CONFIG`` environment variable." msgstr "" -#: ../tutorial/install.rst:54 36e1d4e2a408494b9360f5cccffab226 +#: ../tutorial/install.rst:54 042753d9c5704f21b0da35d38a17a620 msgid "" "You should then edit your configuration file to adapt the values to your " "needs. Look at the configuration details in the :doc:`configuration <../" "references/configuration>` page." msgstr "" -#: ../tutorial/install.rst:57 9223c2cfca1e4199904c5f130879f5ef +#: ../tutorial/install.rst:57 a87138181fe64cd9891206619cad6d2d msgid "Install" msgstr "" -#: ../tutorial/install.rst:59 b0f16393e86e44a6954914faa9b5c313 +#: ../tutorial/install.rst:59 2a7cde9a8ef54f6fb6b527734b5e471d msgid "" "The :ref:`install command ` will apply most of the things " "needed to get Canaille working. Depending on the configured :doc:`database " @@ -5483,25 +5499,25 @@ msgid "" "instance." msgstr "" -#: ../tutorial/install.rst:68 407c4b61f9944dfdb8c4118fb5ae634b +#: ../tutorial/install.rst:68 faefbbda355349e19671492f478d3153 msgid "Check" msgstr "" -#: ../tutorial/install.rst:70 e366811097054aeba527918ea72ad41d +#: ../tutorial/install.rst:70 ab77edb446f44686bf26ef04fbf3dc7d msgid "" "After a manual installation, you can check your configuration file using " "the :ref:`check command `:" msgstr "" -#: ../tutorial/troubleshooting.rst:2 c67091cccdb74591b0d9bb3e2e5654ee +#: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407 msgid "Troubleshooting" msgstr "" -#: ../tutorial/troubleshooting.rst:5 160982b27426443da4d347a5c01189f2 +#: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934 msgid "The web interface throws useless error messages" msgstr "" -#: ../tutorial/troubleshooting.rst:7 fa2c6dd5c7a540e8a1f9e7b9a03a4b88 +#: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de msgid "" "Unless the current user has admin :class:`permissions `, or the installation is in :attr:`~canaille.app." @@ -5511,63 +5527,157 @@ msgid "" "`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter." msgstr "" -#: ../tutorial/troubleshooting.rst:12 a8cc0624994447649fd16c773e5b8fed +#: ../tutorial/troubleshooting.rst:12 358b28e47d4a4b48ba2bde7ddd4bc5f3 msgid "How to manually install LDAP schemas?" msgstr "" -#: ../tutorial/troubleshooting.rst:16 67a2fe8af3684655a1202d968a16eb17 +#: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c msgid "" "Schema installation can be automatically done using the :ref:`install " "command `." msgstr "" -#: ../tutorial/troubleshooting.rst:18 15f1f834fc9940958da02dc71b19eda0 +#: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154 msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "" -#: ../tutorial/troubleshooting.rst:20 a60e06420f994c55bc323633dada48ae +#: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6 msgid "" "The `deprecated `_ " "one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" msgstr "" -#: ../tutorial/troubleshooting.rst:21 fe71eea005cb44018102ab5eeb3604f0 +#: ../tutorial/troubleshooting.rst:21 2681e5ed98de4633ab3e958980570c61 msgid "" "The new one, based on a configuration directory (generally ``/etc/ldap/slapd." "d``)." msgstr "" -#: ../tutorial/troubleshooting.rst:23 dd416d958ccb4f6f995bf22091e3d5e8 +#: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09 msgid "" "Depending on the configuration method you use with your OpenLDAP " "installation, you need to chose how to add the canaille schemas:" msgstr "" -#: ../tutorial/troubleshooting.rst:26 36ac5e6d38e843d2b4085f8346214702 +#: ../tutorial/troubleshooting.rst:26 7fa64ce5f9834bfc8a84a6b147776135 msgid "Old fashion: Copy the schemas in your filesystem" msgstr "" -#: ../tutorial/troubleshooting.rst:35 ac128289f3cf42be97783b483d550026 +#: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f msgid "New fashion: Use slapadd to add the schemas" msgstr "" -#: ../tutorial/troubleshooting.rst:37 d84126970f494fbf86e2fb08fabe238e +#: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" -#: ../tutorial/troubleshooting.rst:46 264d7e80a4144fff934f7227030429d5 +#: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772 msgid "How to manually generate the OIDC keypair?" msgstr "" -#: ../tutorial/troubleshooting.rst:50 036b230876c44286868cd317e4b629a2 +#: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88 msgid "" "The keypair generation can be automatically done using the :ref:`install " "command `." msgstr "" -#: ../tutorial/troubleshooting.rst:52 43f5dcdf2c6c4210a3f3524074f1b09f +#: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984 msgid "" "Canaille needs a key pair to sign OIDC tokens. You can customize those " "commands, as long as they match the ``JWT`` section of your configuration " "file." msgstr "" + +#: ../usecases.rst:4 dde73820d8ff46128f0ae5a245d4f212 +msgid "Use cases" +msgstr "" + +#: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9 +msgid "" +"Canaille is a lightweight IAM for simple needs. Here are a few use cases you " +"might recognize in, where Canaille would fit your needs." +msgstr "" + +#: ../usecases.rst:10 0c06bc8fc0754db6bdfbae05fe718b2e +msgid "OpenID Connect provider on top of a LDAP directory" +msgstr "" + +#: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6 +msgid "" +"Your organization has an historic :ref:`LDAP directory ` " +"and you want to add a :ref:`OpenID Connect ` :abbr:`SSO " +"(Single Sign-On)` layer on top of it, so users can use all your application " +"while signin-in only once, without any data migration." +msgstr "" + +#: ../usecases.rst:15 35bb9bbb50064dc7a5383c9d5371adfd +msgid "Profile edition of LDAP users" +msgstr "" + +#: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3 +msgid "" +"Your organization has a :ref:`LDAP directory ` and you " +"want to provide a way to your users to :ref:`edit their personal information " +"` by themselves, without requiring any " +"administrator intervention." +msgstr "" + +#: ../usecases.rst:20 22ec6d0c58ed413b80cd6aca23f637b6 +msgid "Password recovery with a LDAP directory" +msgstr "" + +#: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd +msgid "" +"Your organization has an historic :ref:`LDAP directory ` " +"and you want to provide a way to your users to :ref:`recover their password " +"` when they cannot remember it, without any " +"administrator intervention." +msgstr "" + +#: ../usecases.rst:25 f44f325b29594fc7b31521d259e27d5f +msgid "A lightweight IAM for unit testing" +msgstr "" + +#: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b +msgid "" +"You are :ref:`developing ` an application relying on " +"OAuth2 or OpenID Connect to authenticate the users. You don't want to mock " +"the calls to the identity provider in your unit tests, but you want to :ref:" +"`perform real OAuth2/OIDC requests `, and test your " +"application against different identity provider tunings." +msgstr "" + +#: ../usecases.rst:30 5b9b8e07b9154150a105088cc630ce6a +msgid "A lightweight IAM for developing" +msgstr "" + +#: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51 +msgid "" +"You are :ref:`developing ` an application relying on " +"OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM " +"server to develop ` locally, but your old computer " +"cannot bear launching a full Keycloak in a Docker container." +msgstr "" + +#: ../usecases.rst:35 e594e15fba204d65a3f483c36e7c0aab +msgid "A lightweight IAM for CIs" +msgstr "" + +#: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24 +msgid "" +"You are :ref:`developing ` an application relying on " +"OAuth2 or OpenID Connect to authenticate the users. You need a IAM server " +"that could can populate with custom data, and integrate in your :ref:" +"`continuous integration environment `." +msgstr "" + +#: ../usecases.rst:40 8a37de08f6594334a3ba6ed2f9a3b71e +msgid "A CLI to quickly edit LDAP directory users" +msgstr "" + +#: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2 +msgid "" +"Your organization has an historic :ref:`LDAP directory `. " +"You are tired to deal with *ldif* syntax to manage your users and group and " +"would prefer a simple human-readable CLI." +msgstr ""