diff --git a/CHANGES.rst b/CHANGES.rst index 68f62cfa..7611cbac 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,7 +10,7 @@ Added Changed ^^^^^^^ -- Avoid displaying password strength progress bar in login form +- Avoid displaying password strength progress bar in login form. - Mysql extra depends on ``pymysql`` instead of ``mysql-connector``. - :attr:`~canaille.app.configuration.RootSettings.SECRET_KEY` is not mandatory anymore, but displays warnings when unset. :pr:`221` diff --git a/doc/locales/doc.pot b/doc/locales/doc.pot index 3b22790b..be44378f 100644 --- a/doc/locales/doc.pot +++ b/doc/locales/doc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: canaille 0.0.59\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-26 12:01+0100\n" +"POT-Creation-Date: 2025-01-29 10:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,2007 +17,2019 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../development/changelog.rst:2 -#: 929333de1e954a05b8b1f16eb39735da +#: 7ff76ed229a74a389d7167a72eefdd36 msgid "Release notes" msgstr "" #: ../development/changelog.rst:4 -#: 9efddf3e7789440db09fe038c9666d21 +#: 28bc76c9c93d4502ba5ccf7721ab787f msgid "All notable changes to this project will be documented in there." msgstr "" #: ../development/changelog.rst:6 -#: eee2ae1ae046491e83318f8137a63165 +#: 4689aadcaaf64cfdbd9d6f482407b212 msgid "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." msgstr "" #: ../../CHANGES.rst:2 -#: c40cc30bc9f847b1ba5d4c38c0da1c66 +#: a3b475ed309c4af2bd7eae6e90e1f87b msgid "[0.0.60] - Unreleased" msgstr "" #: ../../CHANGES.rst:5 -#: ../../CHANGES.rst:32 -#: ../../CHANGES.rst:50 -#: ../../CHANGES.rst:83 -#: ../../CHANGES.rst:111 -#: ../../CHANGES.rst:130 -#: ../../CHANGES.rst:137 -#: ../../CHANGES.rst:156 -#: ../../CHANGES.rst:216 -#: ../../CHANGES.rst:242 -#: ../../CHANGES.rst:257 -#: ../../CHANGES.rst:306 -#: ../../CHANGES.rst:332 -#: ../../CHANGES.rst:351 -#: ../../CHANGES.rst:359 -#: ../../CHANGES.rst:368 -#: ../../CHANGES.rst:394 -#: ../../CHANGES.rst:429 -#: ../../CHANGES.rst:455 -#: ../../CHANGES.rst:504 -#: ../../CHANGES.rst:532 -#: ../../CHANGES.rst:562 -#: ../../CHANGES.rst:618 -#: ../../CHANGES.rst:651 -#: ../../CHANGES.rst:672 -#: ../../CHANGES.rst:682 -#: ../../CHANGES.rst:705 -#: ../../CHANGES.rst:772 -#: ../../CHANGES.rst:810 -#: ../../CHANGES.rst:827 -#: ../../CHANGES.rst:863 -#: fc1c8c46aa4841f6904a59519a5447df -#: 9b47b10024bb441ba6e6fb6d9a8723b6 -#: 24e69b6e8973477596d1a4336b137a06 -#: 6a3680015b26454fa005adc810456f86 -#: 6aa8e3573dfb4e2ab05586139caef6a2 -#: 2b8c676dd380457597f03ef04635c9b5 -#: e85ce129fb504a9998ddd6698129778b -#: 475a451b7096495a95060b651d057c3f -#: 411f180dfbd8472cbb6493760decd1ee -#: 5a53c9a5d4b547ca9b33990194f5a715 -#: 8e8cf0fca42740668464dc0a56932385 -#: 5683d842dc784a3492da83523fb37c92 -#: 210f2adf0e95482680468835914857e2 -#: 9f587a61927246edbe96e4457c7315ab -#: 1bcc02c375454e4fb647583fd63d92f4 -#: 7749a9047237447da85531796e27750c -#: 492d78704d194b15ae91d62ea4f1553b -#: aeb351e1c9c541aca7f29dc53e8eb998 -#: 28d7f9f95eba46edb2ccefaef82f8d17 -#: ef278074e3a74f45b145ea3741481c41 -#: 977ead019b3a427e9aaef367f1f860a4 -#: af4418d1df704048a5f437aad0d95319 -#: 07dcffedd5fb4223931de7b98eba2c5a -#: 3b0a772c88d94a6f8eed3446263476b3 -#: 44ffea4017e649b7b02067e69f0c4bfc -#: 585b765539a84727b03ca29f5bcae80e -#: db8aa7208ec943878492dc9cbc64130d -#: 5aa96668b83e4e5ab0ea7585c2318e96 -#: 81b7d6973e67431eb87178763d6697af -#: 8317fa23df734db08ca7b0452f09c0b7 -#: 2ec961687ccb419d9e605fdf06eb0ef0 +#: ../../CHANGES.rst:37 +#: ../../CHANGES.rst:55 +#: ../../CHANGES.rst:88 +#: ../../CHANGES.rst:116 +#: ../../CHANGES.rst:135 +#: ../../CHANGES.rst:142 +#: ../../CHANGES.rst:161 +#: ../../CHANGES.rst:221 +#: ../../CHANGES.rst:247 +#: ../../CHANGES.rst:262 +#: ../../CHANGES.rst:311 +#: ../../CHANGES.rst:337 +#: ../../CHANGES.rst:356 +#: ../../CHANGES.rst:364 +#: ../../CHANGES.rst:373 +#: ../../CHANGES.rst:399 +#: ../../CHANGES.rst:434 +#: ../../CHANGES.rst:460 +#: ../../CHANGES.rst:509 +#: ../../CHANGES.rst:537 +#: ../../CHANGES.rst:567 +#: ../../CHANGES.rst:623 +#: ../../CHANGES.rst:656 +#: ../../CHANGES.rst:677 +#: ../../CHANGES.rst:687 +#: ../../CHANGES.rst:710 +#: ../../CHANGES.rst:777 +#: ../../CHANGES.rst:815 +#: ../../CHANGES.rst:832 +#: ../../CHANGES.rst:868 +#: 94852c2709ed490eb7e5b0ca1ac48f5e +#: 6aafb34784d44759bc90959c640512e5 +#: 9ea8b56e365b468e80ef137dc00245cb +#: ec9cc77a3d0e48e29566a02aad002cc4 +#: 26b3cc5fbdc041bdb0deee6219f42350 +#: 563cc250818448e6bbb0f1241316795f +#: 86870fd8c5d84068b76a9604211a35c6 +#: 7a5a900c565342b08101a8610505d164 +#: 559481a068d44e5d9481a599729bb8d6 +#: e7085b445e904f12bec2922bd617dc93 +#: 8359d7282ce34eef866352d0a8cd9eb5 +#: 0e320169f2ce44d88107fb903e2f8e34 +#: 09277b2baa094a70ba716522293df809 +#: 30b28b1390f349a4a6e449636b742d09 +#: e24553021e354ae59ee01ef24f3094d2 +#: 25c556f7dba94375bce614c2dc139877 +#: a26d67357ebb43da9dc6fe6fdd7e7cd0 +#: dcfe7d77344f480cad6f09dc658c0082 +#: 5442662d6fdf4385b03c2dd6c2b16d19 +#: 5cb9efd8f615426ca37d175700eecfaf +#: d0be4ef147ef43518165d6bb7b6533dd +#: 1c04639588794fc083ee1b29926d7452 +#: de1b155e3d7143a0a20d2a4bbd79c5d0 +#: 9e1d987839f0493e9126a27e7ff7b27e +#: 8579c065e8cd4a809da12a5c92f23cb3 +#: 15adb804febd48abad9ee9939c04cc6c +#: 114d79d4d1294b69bd17f0fb00581604 +#: 90445333563c40d29cba3503beea2b5d +#: 702727fc268a47b88c63789384e8ee7e +#: c719e73a3b2d46cb89e3bd9c1af9da74 +#: dea486983c1944f4b7f9302d1f955017 msgid "Added" msgstr "" #: ../../CHANGES.rst:6 -#: a149291db34041d791e5e05f0f4e29ef +#: 4f0b51d4e22146499e6a31bb215f00a2 msgid "Add screenshots in the documentation. :issue:`210`" msgstr "" #: ../../CHANGES.rst:7 -#: 07659727a2294849b1cb3ed47a4730da +#: 9f08ac87d3fd4c4fbdec93daa87e23c2 msgid "Implement a ``canaille run`` command that runs a production server with Hypercorn. :pr:`219`" msgstr "" #: ../../CHANGES.rst:8 -#: b5179b96bbf04bfb9b6a5770a72c27b5 +#: 50268821afa84780b3b293814cee7798 msgid "Implement a ``canaille export-config`` command that create a commented config file. :pr:`223`" msgstr "" -#: ../../CHANGES.rst:11 -#: ../../CHANGES.rst:25 -#: ../../CHANGES.rst:39 -#: ../../CHANGES.rst:71 -#: ../../CHANGES.rst:91 -#: ../../CHANGES.rst:104 -#: ../../CHANGES.rst:116 -#: ../../CHANGES.rst:141 -#: ../../CHANGES.rst:149 -#: ../../CHANGES.rst:197 -#: ../../CHANGES.rst:223 -#: ../../CHANGES.rst:275 -#: ../../CHANGES.rst:312 -#: ../../CHANGES.rst:381 -#: ../../CHANGES.rst:399 -#: ../../CHANGES.rst:437 -#: ../../CHANGES.rst:476 -#: ../../CHANGES.rst:511 -#: ../../CHANGES.rst:554 -#: ../../CHANGES.rst:658 -#: ../../CHANGES.rst:712 -#: ../../CHANGES.rst:744 -#: ../../CHANGES.rst:758 -#: 8e5d4809f5744120be236457bf3a6c4c -#: 3ae1ad42d5804b0d8c1cd54e786d0e88 -#: e4faa5220ea04ecc96b0b35bb2de9b01 -#: baf4efba28d34cfa9a8a473d6fc6c7d6 -#: 42547af3765a476a8449a1b9bc2b5c96 -#: e079a57189da415593b683906a5417ca -#: 03968553c5834fb1991b0bbce78d25b4 -#: da4ec322ec204978bc7179d0b6300c13 -#: d06ac7e1e6984511bbeec10823acdc44 -#: 62a6b1bbf1c8466d9e3d2a72983f3117 -#: 97175f08f9404c71af935855bcb2d77f -#: 595b41f252ed4fb38275f245579ec181 -#: d8b9fc134cad42a181bb4f01bc42a7ab -#: 826e892720934fb0855b8eec1dece211 -#: bb4599d3d22247c3968ef7ed70ec1e45 -#: 70c03aceb3cb47deb76e5bf11cfcca0e -#: 96d3f551c5894e8290204583c8456bd5 -#: c46b8afc286041749443ea040c2ba0df -#: 107b76c20dd04ac7ae3dc666f261c38c -#: cb0deed0280b46359a43c091adc4c5cf -#: 4992c892624e4fcd806bacbd1d29b346 -#: 5685155eaea54cf49bc16fd9355d213b -#: dc6af2cd86ce44f3b7bf73a0f4a9b295 -msgid "Changed" +#: ../../CHANGES.rst:9 +#: 53dcf56b86164324b13dff4a0ed885f5 +msgid "Load configuration from local ``canaille.toml`` files. :pr:`225`" msgstr "" #: ../../CHANGES.rst:12 -#: 53e3a56d035f4c6699ab3094337105d2 -msgid "Avoid displaying password strength progress bar in login form" +#: ../../CHANGES.rst:30 +#: ../../CHANGES.rst:44 +#: ../../CHANGES.rst:76 +#: ../../CHANGES.rst:96 +#: ../../CHANGES.rst:109 +#: ../../CHANGES.rst:121 +#: ../../CHANGES.rst:146 +#: ../../CHANGES.rst:154 +#: ../../CHANGES.rst:202 +#: ../../CHANGES.rst:228 +#: ../../CHANGES.rst:280 +#: ../../CHANGES.rst:317 +#: ../../CHANGES.rst:386 +#: ../../CHANGES.rst:404 +#: ../../CHANGES.rst:442 +#: ../../CHANGES.rst:481 +#: ../../CHANGES.rst:516 +#: ../../CHANGES.rst:559 +#: ../../CHANGES.rst:663 +#: ../../CHANGES.rst:717 +#: ../../CHANGES.rst:749 +#: ../../CHANGES.rst:763 +#: 524e67fe8e944a29842541c386547b52 +#: 57fb1f1093e44dff9d6a856abf394a98 +#: 928a31327fdf464bb454133b50a1e240 +#: cdc8419dc4644054bef82143095ff68f +#: aaa7a86ac73c48dc99aee56860188d42 +#: 9afb386c99e34a99914d62c5f5ea88f9 +#: 56e40f8d3a7a4b2cacfd5c7648a40d6e +#: cccc87bac5bf47e2ab8542145e0724b8 +#: 03e3d3252cf0413bbbc0acf0c9a9b34f +#: 95c14555637e4331967ab55a1f338327 +#: 890fb73168754aacaaac72ffbcb471df +#: 6634e25d698e4faf9a44c9d8bbc71031 +#: 813648924f74478caa31f8987b390c01 +#: 5049648a9e4643219ed6a0d3d6c79e72 +#: 2d13610bd2964b3287e553674751f8cc +#: b3e16c4d4223493b88296e7371676b72 +#: 199abed260b040dd8de47eb630fa5bf7 +#: e6928eac09954e8a8c92c211836ee5c5 +#: 0dc37e473bbc4fad99a571460e3aa265 +#: a5dfcd8736344162a8970ad9d0944c43 +#: 40f11ab5233349e5ab3f33e3ae1dcc75 +#: 36e9c881e0e14558a0cc18511490e2d2 +#: 7b56dd84f023467cb79f1f1ff522cdb0 +msgid "Changed" msgstr "" #: ../../CHANGES.rst:13 -#: d7a928fab15c4ac4b7adf6daa6a52d07 -msgid "Mysql extra depends on ``pymysql`` instead of ``mysql-connector``." +#: 8b05f8bf91344da49c05aefbe67b8cb9 +msgid "Avoid displaying password strength progress bar in login form." msgstr "" #: ../../CHANGES.rst:14 -#: 7e18554d0cbd44f59acf88221e570bb6 -msgid ":attr:`~canaille.app.configuration.RootSettings.SECRET_KEY` is not mandatory anymore, but displays warnings when unset. :pr:`221`" +#: 0ad0074159b345cfa3b6f1acbf5d2128 +msgid "Mysql extra depends on ``pymysql`` instead of ``mysql-connector``." msgstr "" -#: ../../CHANGES.rst:17 -#: 8b1b5641072b4faa8d0e43b186de422d -msgid "[0.0.59] - 2025-01-10" +#: ../../CHANGES.rst:15 +#: b618c7b20eda4aa0b8a4c88739e2e42f +msgid ":attr:`~canaille.app.configuration.RootSettings.SECRET_KEY` is not mandatory anymore, but displays warnings when unset. :pr:`221`" msgstr "" -#: ../../CHANGES.rst:20 -#: ../../CHANGES.rst:43 -#: ../../CHANGES.rst:79 -#: ../../CHANGES.rst:121 -#: ../../CHANGES.rst:160 -#: ../../CHANGES.rst:168 -#: ../../CHANGES.rst:176 -#: ../../CHANGES.rst:183 -#: ../../CHANGES.rst:190 -#: ../../CHANGES.rst:204 -#: ../../CHANGES.rst:234 -#: ../../CHANGES.rst:247 -#: ../../CHANGES.rst:265 -#: ../../CHANGES.rst:284 -#: ../../CHANGES.rst:292 -#: ../../CHANGES.rst:318 -#: ../../CHANGES.rst:326 -#: ../../CHANGES.rst:346 -#: ../../CHANGES.rst:376 -#: ../../CHANGES.rst:408 -#: ../../CHANGES.rst:416 -#: ../../CHANGES.rst:442 -#: ../../CHANGES.rst:462 -#: ../../CHANGES.rst:486 -#: ../../CHANGES.rst:496 -#: ../../CHANGES.rst:517 -#: ../../CHANGES.rst:525 -#: ../../CHANGES.rst:548 -#: ../../CHANGES.rst:571 -#: ../../CHANGES.rst:583 -#: ../../CHANGES.rst:592 -#: ../../CHANGES.rst:601 -#: ../../CHANGES.rst:610 -#: ../../CHANGES.rst:630 -#: ../../CHANGES.rst:637 -#: ../../CHANGES.rst:687 -#: ../../CHANGES.rst:695 -#: ../../CHANGES.rst:720 -#: ../../CHANGES.rst:728 -#: ../../CHANGES.rst:736 -#: ../../CHANGES.rst:749 -#: ../../CHANGES.rst:763 -#: ../../CHANGES.rst:795 -#: ../../CHANGES.rst:818 -#: ../../CHANGES.rst:849 -#: dce9f4325ff84c62bc02ae3d302e1d59 -#: cb518c549c0a4e6faa23d84df6b02bb6 -#: 58051d2be6514b1cb8b2ecdbd443ad04 -#: 63abe2942ee344188e0538db6b1f1017 -#: 2375f37052894422b8ecd79f7c2f8774 -#: cbfdbd491e4949f192e9702baba56a89 -#: e0291c6267584ec8bab3c97b6489c6dd -#: f633a807bfc345bbb7f60a6d995840c4 -#: 1eb0a120ee8344ea814991d59ed68ab8 -#: 172f6c1047384c82bc41467ce9912d40 -#: e7a90bde51ac4af3824971469d4c041e -#: b15215a51153478297bf191965b86e4f -#: c0564f66f84540eab026484e24a53ac3 -#: c826a238537a45bf9ea542029232006b -#: b8350fdc73f64f8fb5dcc866becb15a5 -#: c0100c1da07a49798c2446e9850306b1 -#: 49fdef03c2f54dd3a1fe938b5fd24396 -#: 3b5542a012cb43b8af709f365d66a975 -#: 05d6a2c12f274a04bba059f0bfb86b98 -#: c4c5886f9fc742e4a7363fb267f5c743 -#: 4ff9c79c15734da18b66fb74454bb84a -#: 840a8dde9f554b828c1aee355dad4ace -#: 9c6d4b84115f403dbc50af60e919ff08 -#: 50eed5626d294a3f8964bea2e87e621f -#: 1ec18c528ee2491596f5582911e31538 -#: 7bcd67d53f944607b42ec7b1ec53d03f -#: cdc15325f36945318329af6df11e0f0d -#: 04e79ff3fb2d419896e6ff81d78f2709 -#: 0d714f98a96142f6a7ce4bdcad3d6a55 -#: 2ce76c6d951e44d4b0d720e2b030b2dc -#: d898416534d748c98b4ca638d571dc11 -#: 5336a5c26c94421995f9b86e74224fb2 -#: 1e14a1b3228246e6a55ee47b1cdab7bf -#: 038161ae8aec4e8d925e3aa65d89119f -#: 05d8a678f89e45d5aa374336afe08ad2 -#: 9b44e2f4813944f49c4daa6ca85150ef -#: e3b36ae905d54ff8a46db000547ddabb -#: 24e52233161d4d5887c40a74b870c09f -#: 06db8e13ff51417e9cca347be139f35d -#: a6f32aad72684e9596e9a5992cb46035 -#: bd58196642c949f887124af6acc81a65 -#: 82bfe8c53c2c4d88be53a8c3fc1a789f -#: 840ff561be7a49a1ad92fe9c3b631162 -#: a5a7148964d94fb88fa10f9c4153da76 -#: 7d71ee83354d44d4a4cf7cc253be94c5 +#: ../../CHANGES.rst:18 +#: ../../CHANGES.rst:25 +#: ../../CHANGES.rst:48 +#: ../../CHANGES.rst:84 +#: ../../CHANGES.rst:126 +#: ../../CHANGES.rst:165 +#: ../../CHANGES.rst:173 +#: ../../CHANGES.rst:181 +#: ../../CHANGES.rst:188 +#: ../../CHANGES.rst:195 +#: ../../CHANGES.rst:209 +#: ../../CHANGES.rst:239 +#: ../../CHANGES.rst:252 +#: ../../CHANGES.rst:270 +#: ../../CHANGES.rst:289 +#: ../../CHANGES.rst:297 +#: ../../CHANGES.rst:323 +#: ../../CHANGES.rst:331 +#: ../../CHANGES.rst:351 +#: ../../CHANGES.rst:381 +#: ../../CHANGES.rst:413 +#: ../../CHANGES.rst:421 +#: ../../CHANGES.rst:447 +#: ../../CHANGES.rst:467 +#: ../../CHANGES.rst:491 +#: ../../CHANGES.rst:501 +#: ../../CHANGES.rst:522 +#: ../../CHANGES.rst:530 +#: ../../CHANGES.rst:553 +#: ../../CHANGES.rst:576 +#: ../../CHANGES.rst:588 +#: ../../CHANGES.rst:597 +#: ../../CHANGES.rst:606 +#: ../../CHANGES.rst:615 +#: ../../CHANGES.rst:635 +#: ../../CHANGES.rst:642 +#: ../../CHANGES.rst:692 +#: ../../CHANGES.rst:700 +#: ../../CHANGES.rst:725 +#: ../../CHANGES.rst:733 +#: ../../CHANGES.rst:741 +#: ../../CHANGES.rst:754 +#: ../../CHANGES.rst:768 +#: ../../CHANGES.rst:800 +#: ../../CHANGES.rst:823 +#: ../../CHANGES.rst:854 +#: 4260c9e7f03a47ee8058e1f8fcce59b3 +#: 96f0486c56f745688e055d66681f9988 +#: 6228ed54295442d0910d86065f5cf8f0 +#: 2a3793c182694c0cb3ef065ec1c4f410 +#: 7cb103d69ec64d4bac2466ccd3fe7fa8 +#: bfa4c5de1ee7481d8d7b5cba64e4e4a1 +#: 19726ee4d3994966b75d47ab8388e595 +#: b10481b7469e4bf18b120d2f73c1c076 +#: 164fd14f3d0e4fe2b7a8d899bb533887 +#: be82505cc14748c3918cccb2d4cfc658 +#: a51773dba48241d0bd0c215a07a66710 +#: 26bf9a114d1d44c6a059e74c18c4bea0 +#: dc26953b393949a881328c07e0e48780 +#: 95d9f2d195d84e768a802b4cadb41d23 +#: 84c814d44261455eaaa6ac487b9403d8 +#: a5a86b7c693a49a582569c30251afc5a +#: 66bd5568bdbc40a39854aee50a437b91 +#: bf4b4ee9a10542e081a8ec68238a0907 +#: d451c74639634518b87e1be01bd01385 +#: a52bb859338c46458dea3dabc59a6ce3 +#: e6800f8a491e4752b6abab085995841d +#: b91634de6e5f4109abbd4493cb1c8787 +#: 27dd6dbc2c1a49d5b051de66796831ca +#: 5e874e74d60a4b2a9b9f8b05de2693f1 +#: a120a7441643476bbf2266f389b61bda +#: 40b80bbd0fed4c7eba75ef1967f45460 +#: 9464c90fb9e4485386197bce23b59cd8 +#: d3a8018ce2cd425b84bc2e65a8eea256 +#: 107c44baa1e44148aa4d64e3ae175523 +#: 4db9b624e7a94e5680b7717fc0f27d9a +#: 5a471adad51340d0b4cb01d361cc98a8 +#: 1861528425d34ca7bc6a825974995d99 +#: 7afb7fc7e2854b8cbcf1950be7eeb563 +#: 974cbfa5b3514426b79ca9eef3e51e13 +#: 3eace4a6f7054e2b9da28e02e03a009f +#: efeb631117624772b2bca8c8da43d29d +#: 46c2fb5c394a49b4abeb9c8846b5a5ed +#: 6590abf0b5bb4db7ac3595f8ca275880 +#: 4d980c1c3fb14419ab129a949d066f23 +#: a21eecce91904053a4771687e26b7eb7 +#: e6c1417bf39b4899bf9e9eb22af8331e +#: c4422c6fabba429b91b994c788ba2e39 +#: 31540b18583041e6981bf4fdf39eac76 +#: 3ac91be455c94430bf13bc8a94a4d674 +#: 0b46e221211f433da76486735be294e2 +#: e1db3d439a75495cb6131e81a89b208e msgid "Fixed" msgstr "" -#: ../../CHANGES.rst:21 -#: 8160070516ec40219c21e1bf792fc8d3 -msgid "Fix password fields auto-refilling when input is reset. :issue:`218` :pr:`215`" +#: ../../CHANGES.rst:19 +#: 111a81fff53d48f2bb7bac2ce5c9ea0c +msgid "Dynamic client registration with missing ``scope`` parameter. :pr:`222`" msgstr "" #: ../../CHANGES.rst:22 -#: 6ae930c4ae6c4cc8ac45245c58ea9197 -msgid "Fix HTMX integration with the email confirmation form. :pr:`216`" +#: 131f4467ec474d1dab6c601d41d3f1b9 +msgid "[0.0.59] - 2025-01-10" msgstr "" #: ../../CHANGES.rst:26 -#: 070c2b3e87ac4bea8e728bbb0eb0870f +#: 85b4394055bf46fe970b0023358ba028 +msgid "Fix password fields auto-refilling when input is reset. :issue:`218` :pr:`215`" +msgstr "" + +#: ../../CHANGES.rst:27 +#: 94f7178fb19e417b9f58b83a5d82f268 +msgid "Fix HTMX integration with the email confirmation form. :pr:`216`" +msgstr "" + +#: ../../CHANGES.rst:31 +#: 6bea1eb83f4f42fb8969449458be36f1 msgid "Bump to HTMX 2.0.4" msgstr "" -#: ../../CHANGES.rst:29 -#: fb10f8069d5b4c299a24450385c21732 +#: ../../CHANGES.rst:34 +#: a2e42f59b8c248dc8c2bfa2fae09cca9 msgid "[0.0.58] - 2025-01-10" msgstr "" -#: ../../CHANGES.rst:33 -#: 27a31039969c4eeeb1accd36afe00453 +#: ../../CHANGES.rst:38 +#: 773800d590d640ed9915d9378af51c2a msgid "``--version`` option to the CLI. :pr:`209`" msgstr "" -#: ../../CHANGES.rst:34 -#: 40509836f31044a3a6174d665ca41576 +#: ../../CHANGES.rst:39 +#: 4819d908f4bd45428eec3c1a6d7d911b msgid "Password hashing scheme customization with the :attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` parameter. :issue:`175`" msgstr "" -#: ../../CHANGES.rst:35 -#: b3aa1cd8d1b7405bb15b08f017f8ef32 +#: ../../CHANGES.rst:40 +#: 57f30ce9e11344a1a6ac593bd3e48e1f msgid "`canaille dump` command option to perform full database dumps." msgstr "" -#: ../../CHANGES.rst:36 -#: 682c21ea0049497d861c59dbe5a95f58 +#: ../../CHANGES.rst:41 +#: 26ed7ba967484ab6bcd36b721dcdce79 msgid "Automatic SQL database migrations. :issue:`217` :pr:`214`" msgstr "" -#: ../../CHANGES.rst:40 -#: dc35c9c80b4b4580b5138ee1bd70211e +#: ../../CHANGES.rst:45 +#: 45bce68d2f8249b1a76d5c5a195cbb29 msgid "CLI commands dump hashed passwords. :issue:`214`" msgstr "" -#: ../../CHANGES.rst:44 -#: 555ec687d58645aeb85949a2ccf85a80 +#: ../../CHANGES.rst:49 +#: 8beda2f4880d4402a8ad0624b469061a msgid "A bug on updating user's settings. :issue:`206`" msgstr "" -#: ../../CHANGES.rst:47 -#: f1d7e55851b84fc18a898a22a96fcc7e +#: ../../CHANGES.rst:52 +#: 5d0a7c0a3c0246cfbd88039326cb1b4a msgid "[0.0.57] - 2024-12-31" msgstr "" -#: ../../CHANGES.rst:51 -#: 7c938309c7b448899d8e966326111482 +#: ../../CHANGES.rst:56 +#: 0aefae11077f4fc49abdaaa3b1e80766 msgid "Intruder lockout, controlled by the :attr:`~canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT` configuration setting. :issue:`173`" msgstr "" -#: ../../CHANGES.rst:54 -#: 818c2fda8cda420ba2cdcc69877e8242 +#: ../../CHANGES.rst:59 +#: 449f15d2f2c44616af1985f9bfe4b480 msgid "Multi-factor authentication, controlled by the :attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD`, :attr:`~canaille.core.configuration.CoreSettings.EMAIL_OTP`, :attr:`~canaille.core.configuration.CoreSettings.SMS_OTP` configuration settings. :issue:`47`" msgstr "" -#: ../../CHANGES.rst:59 -#: 933e2e0925574daa973667a17009e568 +#: ../../CHANGES.rst:64 +#: b2e3677b7b654906ae86aa7d7632d472 msgid "Password compromission check, controlled by the :attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL` settings. :issue:`179`" msgstr "" -#: ../../CHANGES.rst:63 -#: 7e754eab1f484e0aa711d2c4b103f64a +#: ../../CHANGES.rst:68 +#: 8f3c6f2e918c48ccb0b83cf383f3f3dc msgid ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` configuration setting." msgstr "" -#: ../../CHANGES.rst:64 -#: 03ea0151fee54050a69438e3d55bbf62 +#: ../../CHANGES.rst:69 +#: fffbae066fb3443eac30a62bc905b1e1 msgid "OIDC ``client_credentials`` flow implementation. :issue:`207`" msgstr "" -#: ../../CHANGES.rst:65 -#: 7c6456ca16eb45bab367e39fa6c284a4 +#: ../../CHANGES.rst:70 +#: 499f00bfdf0047a18c960f45a31c4a75 msgid "Button in the client admin page to create client tokens." msgstr "" -#: ../../CHANGES.rst:66 -#: 0d5ac1662421442e97011d6870871968 +#: ../../CHANGES.rst:71 +#: 38fcba3ec4a6492b897838ba6efdbffc msgid "Basic SCIM implementation. :issue:`116` :pr:`197`" msgstr "" -#: ../../CHANGES.rst:67 -#: b8b6715b88d941aa8385db6145051209 +#: ../../CHANGES.rst:72 +#: 07466e7581e54e138cdccf2ddfee1ccd msgid "Password expiry policy, controlled by the :attr:`~canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME` configuration setting. :issue:`176`" msgstr "" -#: ../../CHANGES.rst:72 -#: a83817ea21764df3aa85cbc14ed972a3 +#: ../../CHANGES.rst:77 +#: 5b9bbed09d0d4b64a2c4b1ea06585e8c msgid "PostgreSQL and MySQL extras does not rely on libraries that need to be compiled." msgstr "" -#: ../../CHANGES.rst:73 -#: be296f083346471d8ad2a051e68ea863 +#: ../../CHANGES.rst:78 +#: b91f7f381ddb459cb8eb79f363eab101 msgid "``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be passed so ``.env`` files are loaded." msgstr "" -#: ../../CHANGES.rst:76 -#: d77f5066abd747b89daff81fde5d84fd +#: ../../CHANGES.rst:81 +#: bd283c3db1a44428b586f8dbcdbf96bc msgid "[0.0.56] - 2024-11-07" msgstr "" -#: ../../CHANGES.rst:80 -#: b6b2d3acd29344959a45919cd4ed5945 +#: ../../CHANGES.rst:85 +#: 59da008e64854fa9b4f8e30b6068bf9d msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`" msgstr "" -#: ../../CHANGES.rst:84 -#: 16147ad35cab49ec870d2bc65138091e +#: ../../CHANGES.rst:89 +#: 53243c90d2cd438191547ecf22da6540 msgid ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH` and :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH` configuration options :issue:`174`" msgstr "" -#: ../../CHANGES.rst:86 -#: 0432dd5c9f7f4849bab9122a7a7c0862 +#: ../../CHANGES.rst:91 +#: 6a8a4a4f2927474e9f25570068c5bd6f msgid "Password strength visual indicator. :issue:`174`" msgstr "" -#: ../../CHANGES.rst:87 -#: e4688621abdc4f9bae75f32907f17028 +#: ../../CHANGES.rst:92 +#: 6085bddb09a24db18d73e4440871d020 msgid "Security events logs. :issue:`177`" msgstr "" -#: ../../CHANGES.rst:88 -#: 172cf441ebea4b52b87efad4019b59c7 +#: ../../CHANGES.rst:93 +#: 3647324657a94fccb74af516254f7ea1 msgid "Support for Python 3.13. :pr:`186`" msgstr "" -#: ../../CHANGES.rst:92 -#: 0302fdfae7814f1ea89d39addb4f1e8e +#: ../../CHANGES.rst:97 +#: 4b1a610b6a21452f867bcdaff9e19c93 msgid "Update to `HTMX` 2.0.3. :pr:`184`" msgstr "" -#: ../../CHANGES.rst:93 -#: 97612626bdef452b9db466aac5a06781 +#: ../../CHANGES.rst:98 +#: 361c4b69c8394a7a905d385b2e50efd3 msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`" msgstr "" -#: ../../CHANGES.rst:94 -#: 075289855cce4e559f152426ae14b6ef +#: ../../CHANGES.rst:99 +#: 7061d76935ae462c9320ffa3b72108f7 msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``." msgstr "" -#: ../../CHANGES.rst:97 -#: ../../CHANGES.rst:447 -#: ../../CHANGES.rst:855 -#: 0a6cd0eb9dd84397908d5fd9e6524273 -#: 0149b809a2ca4a8584559e27f842d23e -#: f610ac0e66854c199e6edc141148289a +#: ../../CHANGES.rst:102 +#: ../../CHANGES.rst:452 +#: ../../CHANGES.rst:860 +#: 3b4e7b8ee20545ec9f9f1571a78a8e6a +#: 4d7214d030f54668823c22ef845510dc +#: c15ce1ee71aa46c98d782c76629a7fba msgid "Removed" msgstr "" -#: ../../CHANGES.rst:98 -#: 6b5a174712484f948aae60be7b907685 +#: ../../CHANGES.rst:103 +#: af97baef882d417b86cc798a007e41de msgid "End support for Python 3.9. :pr:`179`" msgstr "" -#: ../../CHANGES.rst:101 -#: 3170ccf3edc24678a3a4ac83e5fd60e7 +#: ../../CHANGES.rst:106 +#: 05e8b9313982421fa6a4d278d4a5e255 msgid "[0.0.55] - 2024-08-30" msgstr "" -#: ../../CHANGES.rst:105 -#: d75942e271bb49db94d960041f0f2c08 +#: ../../CHANGES.rst:110 +#: c3c58c23b9404c639230cad646ee5f10 msgid "Use poetry-core build backend. :pr:`178`" msgstr "" -#: ../../CHANGES.rst:108 -#: 092dfc218cd04ef99be0812119120135 +#: ../../CHANGES.rst:113 +#: bb07230cdeb34d728787adc6ee75ab46 msgid "[0.0.54] - 2024-07-25" msgstr "" -#: ../../CHANGES.rst:112 -#: 4be359dcfcd24981bd534adae3250406 +#: ../../CHANGES.rst:117 +#: 49cbfd08881c4172a26d926a1ebdeab0 msgid "Group member removal can be achieved from the group edition page. :issue:`192`" msgstr "" -#: ../../CHANGES.rst:113 -#: 274d7fc1940c49fc904d5e921b4d36f9 +#: ../../CHANGES.rst:118 +#: 4520edecac98409c9eed51fc793b821c msgid "Model management commands. :issue:`117` :issue:`54`" msgstr "" -#: ../../CHANGES.rst:117 -#: 6fa8ae77af684a029db5aeec53406b81 +#: ../../CHANGES.rst:122 +#: 08d5a0919de547e58cf6d9d962ca9e9e msgid "Model `identifier_attributes` are fixed." msgstr "" -#: ../../CHANGES.rst:118 -#: c7675126fbe846bfbab5e4b097bd2da8 +#: ../../CHANGES.rst:123 +#: 468991562716491eb243701c6158964b msgid "Bump to `HTMX` 1.9.12. :pr:`172`" msgstr "" -#: ../../CHANGES.rst:123 -#: e91fecfc93344577908c20b9af2dfae9 +#: ../../CHANGES.rst:128 +#: 5ce4baa3f6094c1a8936058c1a50e1e6 msgid "Dark theme colors for better readability." msgstr "" -#: ../../CHANGES.rst:124 -#: f512abe4be3e40f48c660cd0febb84c2 +#: ../../CHANGES.rst:129 +#: cd09f132f1d94bcaa994e3f1da27875d msgid "Crash for passwordless users at login when no SMTP server was configured." msgstr "" -#: ../../CHANGES.rst:127 -#: 902ab5ffd47040938f7bcc9507330264 +#: ../../CHANGES.rst:132 +#: 1d12b8a2f64545ffbbf5d1746b1cee3f msgid "[0.0.53] - 2024-04-22" msgstr "" -#: ../../CHANGES.rst:131 -#: aa32fd9cc56d488f863d2d78526c7d02 +#: ../../CHANGES.rst:136 +#: 9d9bf6c0f3b14b8f972fde633c06c27c msgid "`env_prefix` `create_app`` variable can select the environment var prefix." msgstr "" -#: ../../CHANGES.rst:134 -#: 5e1e31b99ce84aee98f073fe824164c7 +#: ../../CHANGES.rst:139 +#: 8c14b0087b764340b8a34f1560a48e5e msgid "[0.0.52] - 2024-04-22" msgstr "" -#: ../../CHANGES.rst:138 -#: 9cab5cab738448c3bac61c80dd9522db +#: ../../CHANGES.rst:143 +#: 81d7e38100e64ec0ad8d696b353e302d msgid "`env_file` create_app variable can customize/disable the .env file." msgstr "" -#: ../../CHANGES.rst:142 -#: e636d3e5d7bf4b3ea1c8f61c49e12ca7 +#: ../../CHANGES.rst:147 +#: 9430299ef6a348d8b4951500a935ff97 msgid "Locked users cannot be impersonated anymore." msgstr "" -#: ../../CHANGES.rst:143 -#: 387a4d65abcf49c7a7e8194ff7cb66d6 +#: ../../CHANGES.rst:148 +#: f7a66da2faa2483380516b58033b96d0 msgid "Minimum Python requirement is 3.9." msgstr "" -#: ../../CHANGES.rst:146 -#: 5e56686d011e4740ab8501e05dbf23cf +#: ../../CHANGES.rst:151 +#: 3ad801b42382465ca07d09fd8dc6af7b msgid "[0.0.51] - 2024-04-09" msgstr "" -#: ../../CHANGES.rst:150 -#: c16ad222d3864e3e934ca9328435e448 +#: ../../CHANGES.rst:155 +#: cde74dc2d22e45ac95c1af6768fb7647 msgid "Display the menu bar on error pages." msgstr "" -#: ../../CHANGES.rst:153 -#: ef4b329d628648918d9e2d482725fb23 +#: ../../CHANGES.rst:158 +#: db7e53cb2e504c3aa2c44c516863231f msgid "[0.0.50] - 2024-04-09" msgstr "" -#: ../../CHANGES.rst:157 -#: c22c286352194b8ab6cd19d442c0c281 +#: ../../CHANGES.rst:162 +#: 94550765287141afaa68ac04667f1cba msgid "Sign in/out events are logged in. :issue:`177`" msgstr "" -#: ../../CHANGES.rst:161 -#: 932f8da69d894d2e838ca50220fc1513 +#: ../../CHANGES.rst:166 +#: 3fd3c1b19d514e2da59510eec6e46bac msgid "`HTMX` and `JAVASCRIPT` configuration settings." msgstr "" -#: ../../CHANGES.rst:162 -#: 484d9bb07117402094c77834e0ed943a +#: ../../CHANGES.rst:167 +#: fde654afdfc84393b4b76d4c68930fcc msgid "Compatibility with old sessions IDs." msgstr "" -#: ../../CHANGES.rst:165 -#: e49862b7dfbb4c2fa6c81cd5bd7124dd +#: ../../CHANGES.rst:170 +#: df571207d7824b3886d142d007d5ce0b msgid "[0.0.49] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:169 -#: 700e7eea567d4b57bc3cf471661eb412 +#: ../../CHANGES.rst:174 +#: 448d9a2268d94929ad37668675b1eb7d msgid "LDAP user group removal." msgstr "" -#: ../../CHANGES.rst:170 -#: 65d56b7f49904b6cba4de1b346c4fa22 +#: ../../CHANGES.rst:175 +#: 56752bf4d6f64872a7c3cfed730ed44f msgid "Display an error message when trying to remove the last user from a group." msgstr "" -#: ../../CHANGES.rst:173 -#: 5a23a130cd7f4188a9031ebaf268fec1 +#: ../../CHANGES.rst:178 +#: 02cc6d6ea8214bb8bb2488532f453621 msgid "[0.0.48] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:177 -#: 3232b506f719421e9625fe81005a01e2 +#: ../../CHANGES.rst:182 +#: 3a6466beadef4c0389ed61532d6a1939 msgid "LDAP ``objectClass`` guessing exception." msgstr "" -#: ../../CHANGES.rst:180 -#: 3e0a6c1de4f04dbd81692f5e51a4877a +#: ../../CHANGES.rst:185 +#: 30556c4a90b84b4ea2a6f0c7bcf4be8f msgid "[0.0.47] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:184 -#: 841600902278467f99a9b80f947e2df9 +#: ../../CHANGES.rst:189 +#: cae5f9cbb09b49dca5a5506f6110dd65 msgid "Lazy permission loading exception." msgstr "" -#: ../../CHANGES.rst:187 -#: eca600a9c01f4c72bbd939a44d927dc1 +#: ../../CHANGES.rst:192 +#: 27e6b54ef0f346d7beb83e2f6f653589 msgid "[0.0.46] - 2024-04-08" msgstr "" -#: ../../CHANGES.rst:191 -#: 7f0e52008e1944f9b26dab666ff4d98e +#: ../../CHANGES.rst:196 +#: 54707e3e48b049f3b4c3cf82a4e67a21 msgid "Saving an object with the LDAP backend keeps the ``objectClass`` un-managed by Canaille. :pr:`171`" msgstr "" -#: ../../CHANGES.rst:194 -#: e5bf2122101f43beba8db4f1c0133737 +#: ../../CHANGES.rst:199 +#: 0f240fef0f204b4691682d8fbc18d599 msgid "[0.0.45] - 2024-04-04" msgstr "" -#: ../../CHANGES.rst:198 -#: c13fb632104748a4bb6264d0a2fbfe00 +#: ../../CHANGES.rst:203 +#: 8e097faef58c42dc8569e6ffeebef104 msgid "Internal indexation mechanism of ``MemoryModel``." msgstr "" -#: ../../CHANGES.rst:201 -#: df2ca4f06024414e89b7b80d9f6bbf16 +#: ../../CHANGES.rst:206 +#: 24ac11d60f164d12aa4091036e7a7291 msgid "[0.0.44] - 2024-03-29" msgstr "" -#: ../../CHANGES.rst:205 -#: 36f56408a90440ce8b2b1f4efc7670f9 +#: ../../CHANGES.rst:210 +#: 358206f6198e492e9a5ddc8fc735565a msgid "Fix the default LDAP ``USER_FILTER`` value." msgstr "" -#: ../../CHANGES.rst:206 -#: e8516c40b55e44a89a61c967bccaa90a +#: ../../CHANGES.rst:211 +#: 7b4ec9ae5c4d40a9b0baf4bd8a881322 msgid "Fix the OIDC feature detection." msgstr "" -#: ../../CHANGES.rst:209 -#: 780d2cc8d618470fb89c4ccb823b494a +#: ../../CHANGES.rst:214 +#: 8dff3e18438944b9b659c5a68238ce36 msgid "[0.0.43] - 2024-03-29" msgstr "" -#: ../../CHANGES.rst:213 -#: ../../CHANGES.rst:472 -#: 8f22cad0fafc459b8824d997b8e8067c -#: 461d9b72ec4a4dfcbd69b1d790e3a385 +#: ../../CHANGES.rst:218 +#: ../../CHANGES.rst:477 +#: f4100039de2546cc8aca630c99b31e95 +#: 4510ac642a13423ab098c3ca8958e0b7 msgid "Configuration files must be updated." msgstr "" -#: ../../CHANGES.rst:218 -#: 4fc1317d9d0e4a4da657014d330d1c31 +#: ../../CHANGES.rst:223 +#: cd8972e7242c4403861e2ed3d9f9e3fa msgid "Add ``created`` and ``last_modified`` datetime for all models." msgstr "" -#: ../../CHANGES.rst:219 -#: 5a91ccac83384b308db29dd32c49c319 +#: ../../CHANGES.rst:224 +#: e7917f2180d94e189f6a0d2783da2d8e msgid "Sitemap to the documentation. :pr:`169`" msgstr "" -#: ../../CHANGES.rst:220 -#: 60d3bdc70b9d4c549572615c5e4c204b +#: ../../CHANGES.rst:225 +#: 1df8d37727cb49e0ad3536c4275b2643 msgid "Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`" msgstr "" -#: ../../CHANGES.rst:225 -#: 5a5363d15bcc4d6fb16811cfc371caa7 +#: ../../CHANGES.rst:230 +#: ec1b1c5bec27442689844e036da263ad msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`" msgstr "" -#: ../../CHANGES.rst:226 -#: 8b15cb3e54894b38a6ce9941d06374ac +#: ../../CHANGES.rst:231 +#: 7d0b25836ff842129eee6336b9454038 msgid "Bump to `HTMX` 1.99.11. :pr:`166`" msgstr "" -#: ../../CHANGES.rst:227 -#: 1627e4af5e60464c8fb35bb903a62fc2 +#: ../../CHANGES.rst:232 +#: 8f7560a25b5b476ebd0c3241959257cc msgid "Use the standard tomllib Python module instead of `toml` starting from Python 3.11. :pr:`167`" msgstr "" -#: ../../CHANGES.rst:228 -#: 2f72e9f80e3e4b5faba1d3d243e1f1ae +#: ../../CHANGES.rst:233 +#: 6aff7a22d4364014bff48a0ed84fc64a msgid "Use shibuya as the documentation theme :pr:`168`" msgstr "" -#: ../../CHANGES.rst:231 -#: 1e9b916f1f58486f9bc5c94229042db9 +#: ../../CHANGES.rst:236 +#: 7184bd5e0b524d8ca083421a17bf3579 msgid "[0.0.42] - 2023-12-29" msgstr "" -#: ../../CHANGES.rst:236 -#: 5945ac47641649f891b9d2c75d037476 +#: ../../CHANGES.rst:241 +#: ae5fa5483a2a4526bf4b4fbf2fdf8783 msgid "Avoid to fail on imports if ``cryptography`` is missing." msgstr "" -#: ../../CHANGES.rst:239 -#: 9c38af1de6d143a2bfd1a875f10b115b +#: ../../CHANGES.rst:244 +#: 21281bf36852484ba69b45bd265f4cad msgid "[0.0.41] - 2023-12-25" msgstr "" -#: ../../CHANGES.rst:244 -#: af980ce1a7c24702bf3042dba50ec757 +#: ../../CHANGES.rst:249 +#: 2d099c867182457ab8882218dcad0338 msgid "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:`185` :pr:`164`" msgstr "" -#: ../../CHANGES.rst:249 -#: 93eb36f3b7da4132908919d2cd198f54 +#: ../../CHANGES.rst:254 +#: c719569e8c914767b56a342a95422d64 msgid "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:250 -#: bd5c2d2242674f1ca603c59a608daef0 +#: ../../CHANGES.rst:255 +#: fb6b1ce195c9413eb4eaebfe66bc9d8f msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." msgstr "" -#: ../../CHANGES.rst:251 -#: 34e18ba3320142c789865654ac301fb9 +#: ../../CHANGES.rst:256 +#: 8596e63e0a094579b0b197ef987fa863 msgid "Group field error prevented the registration form validation." msgstr "" -#: ../../CHANGES.rst:254 -#: e62cbfdc44d342f384c18e0f6df0a8e1 +#: ../../CHANGES.rst:259 +#: e47028ff07394da9b07cbbe99f6498ae msgid "[0.0.40] - 2023-12-22" msgstr "" -#: ../../CHANGES.rst:259 -#: 2fd7aa8fc29f4eda9e0b87bd69f30af3 +#: ../../CHANGES.rst:264 +#: b6560e25b39c433783a52b0ce4fbae59 msgid "The ``THEME`` setting can be a relative path." msgstr "" -#: ../../CHANGES.rst:262 -#: 198a2f071642406883be5780a41d018e +#: ../../CHANGES.rst:267 +#: 00a637b377b04e7ea656e89894c34316 msgid "[0.0.39] - 2023-12-15" msgstr "" -#: ../../CHANGES.rst:267 -#: c7da70ba225943dfa9d307821b1ca02c +#: ../../CHANGES.rst:272 +#: e00c3a8bc8104f34859d21fe54179c32 msgid "Crash when no ACL were defined." msgstr "" -#: ../../CHANGES.rst:268 -#: 4ef17205446a41298d9b994c76f2b07f +#: ../../CHANGES.rst:273 +#: f99d0ed7ebef4a4e9cbc214d5bfdbd38 msgid "OIDC Userinfo endpoint is also available in POST." msgstr "" -#: ../../CHANGES.rst:269 -#: 4bbc031b716f437f91f43baacca69cc9 +#: ../../CHANGES.rst:274 +#: 2cad0521eb32455097631062c84b0f7f msgid "Fix redirection after password reset. :issue:`159`" msgstr "" -#: ../../CHANGES.rst:272 -#: 2aa8ff83b6bb4d8a831e60fb57ea9b0a +#: ../../CHANGES.rst:277 +#: a3d36b22217c4f41abd268f95ecb6fd9 msgid "[0.0.38] - 2023-12-15" msgstr "" -#: ../../CHANGES.rst:277 -#: 950437f89e9a45e9aa074741cd18aa64 +#: ../../CHANGES.rst:282 +#: c819544563444b6bbbd109ed340d9b00 msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`" msgstr "" -#: ../../CHANGES.rst:278 -#: 63f4785a5e2545d8861f935348d3c29c +#: ../../CHANGES.rst:283 +#: d21dc76f5f8846a9a5b7e62a3d14af35 msgid "Update to Flask 3. :issue:`161` :pr:`163`" msgstr "" -#: ../../CHANGES.rst:281 -#: f7c87ad7a89c4b328d39e537259ede8e +#: ../../CHANGES.rst:286 +#: e90f2d31d18449a3b9c86fc3e91e28ca msgid "[0.0.37] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:286 -#: 781aa570491043abaa508f398086b179 +#: ../../CHANGES.rst:291 +#: da818ac222104e79a066b5b86fc35d0e msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`" msgstr "" -#: ../../CHANGES.rst:289 -#: b82957a170e84681bb6f4b89c2ebf6b0 +#: ../../CHANGES.rst:294 +#: d8838cf944e745f2a6658d1ca179db26 msgid "[0.0.36] - 2023-12-01" msgstr "" -#: ../../CHANGES.rst:294 -#: 40bdb925ee9548aea294421becbce342 +#: ../../CHANGES.rst:299 +#: b1a98fa97de7472bbd8429660e912712 msgid "Avoid crashing when LDAP groups references unexisting users." msgstr "" -#: ../../CHANGES.rst:295 -#: 6052e9756c794b91846f88db8ebcdc4e +#: ../../CHANGES.rst:300 +#: a3741ed37469451a8d60ac58a87a6ea3 msgid "Password reset and initialization mails were only sent to the preferred user email address." msgstr "" -#: ../../CHANGES.rst:297 -#: d7524315dc2348e3b568866791a14ff4 +#: ../../CHANGES.rst:302 +#: cfdcfb58b3884e8d97f613ef9d4062f7 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:299 -#: 280eff4d926246fd932e5c5f24eb3436 +#: ../../CHANGES.rst:304 +#: 22904fad45b8455c9594e9f25ae62b83 msgid "Password comparison was too permissive on login." msgstr "" -#: ../../CHANGES.rst:300 -#: 1ba88a8f06e048a388ed0c2ba1c8e8f4 +#: ../../CHANGES.rst:305 +#: cb1093c7ad05487f8e9fa96636c7b81a msgid "Encrypt passwords in the SQL backend." msgstr "" -#: ../../CHANGES.rst:303 -#: d165d8988c404243890ea2421d0a0ad8 +#: ../../CHANGES.rst:308 +#: 2ce957e09818463299fe9113b13e643b msgid "[0.0.35] - 2023-11-25" msgstr "" -#: ../../CHANGES.rst:308 -#: cfcddb225bca4b67beb577d64486c87c +#: ../../CHANGES.rst:313 +#: ecadfcf2c3d343bb93b2ac28f56776f1 msgid "Refresh token grant supports other client authentication methods. :pr:`157`" msgstr "" -#: ../../CHANGES.rst:309 -#: 11ae0f5d2a8945c19cb0d11075aa51e3 +#: ../../CHANGES.rst:314 +#: 45fb276be7c845a3ab1ff7d9ab8a8b94 msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" msgstr "" -#: ../../CHANGES.rst:314 -#: 8dd3f7c2c811415c922d1a4edd5aabf0 +#: ../../CHANGES.rst:319 +#: beb95ba53c864acf84bebb3b53a4d8be msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" msgstr "" -#: ../../CHANGES.rst:315 -#: ab4e52e8f5a1458e9bb09e3592854aa5 +#: ../../CHANGES.rst:320 +#: 1f4e901f69ec4197a2753411f377a1f2 msgid "Bump to `HTMX` 1.9.9. :pr:`159`" msgstr "" -#: ../../CHANGES.rst:320 -#: 061c4446706343a5aaac1ff9ec4a2cb2 +#: ../../CHANGES.rst:325 +#: 4e0b50944577488fb69568789463fbb1 msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`" msgstr "" -#: ../../CHANGES.rst:323 -#: 6ba036dfb49e4e5ba630c9bcb0e685fc +#: ../../CHANGES.rst:328 +#: 971e3ddaea0f46b4b96664799910846c msgid "[0.0.34] - 2023-10-02" msgstr "" -#: ../../CHANGES.rst:328 -#: 7678b3c7498d4904830b54a9caa3244f +#: ../../CHANGES.rst:333 +#: 5ae3ac19aa0c4999bc7dacff64fe4a4d msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`" msgstr "" -#: ../../CHANGES.rst:334 -#: ceb789553d694c70a82da8ea99a34fe1 +#: ../../CHANGES.rst:339 +#: 46d79c8c817c49b9b3f99e5e017158df 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:337 -#: 2334b80e4319464292371fd8800fb8c6 +#: ../../CHANGES.rst:342 +#: 5141d04c33d74a53a4410bb8e3963f4f msgid "The `flask-babel` and `pytz` libraries are now part of the `front` packaging extras." msgstr "" -#: ../../CHANGES.rst:338 -#: 32bad310e9744c01bc1c7ad57609e226 +#: ../../CHANGES.rst:343 +#: 49efb411f539422b8c07f144a13776d6 msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`" msgstr "" -#: ../../CHANGES.rst:339 -#: 2666ccc2d07844278c6abb50284fc5bb +#: ../../CHANGES.rst:344 +#: d738d2a0c084499fadde82eef15777e2 msgid "Bump to `HTMX` 1.9.6. :pr:`154`" msgstr "" -#: ../../CHANGES.rst:340 -#: 74f5d27e55e74ffc80ef4255357ecf70 +#: ../../CHANGES.rst:345 +#: 4f0733fbae694fd2ab0f1d0ad368c64a msgid "Support for Python 3.12. :pr:`155`" msgstr "" -#: ../../CHANGES.rst:343 -#: b76e6869763a449b83715de4f37f3ac1 +#: ../../CHANGES.rst:348 +#: 307f4f261da5403886eeda58fc41eac0 msgid "[0.0.33] - 2023-08-26" msgstr "" -#: ../../CHANGES.rst:348 -#: 4ed55b5b2145497ea13957495e4615e8 +#: ../../CHANGES.rst:353 +#: 2b53b7b0bee743568d78b6197657563d msgid "OIDC jwks endpoint do not return empty `kid` claim." msgstr "" -#: ../../CHANGES.rst:353 -#: 9ddc172711234871a094d95190316281 +#: ../../CHANGES.rst:358 +#: 898286b272754fec9984b2ce11933678 msgid "Documentation details on the Canaille models." msgstr "" -#: ../../CHANGES.rst:356 -#: 871e696d71e94c569ac2f707bd2b4d5c +#: ../../CHANGES.rst:361 +#: 65de712ee9374d4d9a948f078b36c504 msgid "[0.0.32] - 2023-08-17" msgstr "" -#: ../../CHANGES.rst:361 -#: 7b160f99345a4bb6abe90f1e9097bf43 +#: ../../CHANGES.rst:366 +#: 1c3be20f2f8b4b7eb1b4ac3c13e2140a msgid "Additional inmemory backend. :issue:`30` :pr:`149`" msgstr "" -#: ../../CHANGES.rst:362 -#: b1502c48b769425687ddf4875d967746 +#: ../../CHANGES.rst:367 +#: 179a3cf9ca50456684d4337b1ef12727 msgid "Installation extras. :issue:`167` :pr:`150`" msgstr "" -#: ../../CHANGES.rst:365 -#: 21f4d2df3530403a983e67ed0381e99e +#: ../../CHANGES.rst:370 +#: 2a73b25e13ec4b16b643d6b7ac0d5f82 msgid "[0.0.31] - 2023-08-15" msgstr "" -#: ../../CHANGES.rst:370 -#: 6a2248658fdb4ee8a810d22769d9fe77 +#: ../../CHANGES.rst:375 +#: d6f3fea0889f4600a0ed9bdf1945e747 msgid "Configuration option to disable the forced usage of OIDC `nonce` parameter. :pr:`143`" msgstr "" -#: ../../CHANGES.rst:371 -#: 3884259c49ac40aba7a3e649075509ea +#: ../../CHANGES.rst:376 +#: 3a30c447e2604fb9bc195dd51a9e0db6 msgid "Validate phone numbers with a regex. :pr:`146`" msgstr "" -#: ../../CHANGES.rst:372 -#: b46fa9a3721f4fb2a310469172a21fb4 +#: ../../CHANGES.rst:377 +#: 8d98e4c5a3ae4c5bad15a55719792441 msgid "Email verification. :issue:`41` :pr:`147`" msgstr "" -#: ../../CHANGES.rst:373 -#: 1c8009550ba248ae911eb7d67d4a7a50 +#: ../../CHANGES.rst:378 +#: df75d068df5d4f28927a026517d36253 msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`" msgstr "" -#: ../../CHANGES.rst:378 -#: ec4778413bc34da497b86d0f9194cf02 +#: ../../CHANGES.rst:383 +#: 8a3d7328e5b04b9bbba394976e1ea76a msgid "The `check` command uses the default configuration values." msgstr "" -#: ../../CHANGES.rst:383 -#: 921403628193405e874c434e0cb43d9e +#: ../../CHANGES.rst:388 +#: a364c29423c34124a5ad52b16452acf1 msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`" msgstr "" -#: ../../CHANGES.rst:386 -#: 5c0d818ff8c34623a7ece4b7dc8699b1 +#: ../../CHANGES.rst:391 +#: f53b70b0ac9b4b40bd65bdfbb1d7e592 msgid "[0.0.30] - 2023-07-06" msgstr "" -#: ../../CHANGES.rst:390 -#: 7679f1d23e2b4dc98d103a6e11e73365 +#: ../../CHANGES.rst:395 +#: 995f70cc921a40f99334dd05fd4697ee 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:396 -#: 8644320e73264bb8ba9363e8ae98bb27 +#: ../../CHANGES.rst:401 +#: 7b1fb9b851dd4d9280c492ef0ed7f4ab msgid "Configuration option to disable Javascript. :pr:`141`" msgstr "" -#: ../../CHANGES.rst:401 -#: 8a10f7750121472a9646081ff8192f06 +#: ../../CHANGES.rst:406 +#: 18470b60088541089f5a5ac5b8678623 msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja." msgstr "" -#: ../../CHANGES.rst:402 -#: 62172ce3d7b44c8a8a5b40719054bf59 +#: ../../CHANGES.rst:407 +#: 0ba4b6cff1c74017bf11cde52b54561b msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``." msgstr "" -#: ../../CHANGES.rst:405 -#: b79d04e30ef146a89856b9a0acd0ceac +#: ../../CHANGES.rst:410 +#: ab45eaedcbcc48d78ce81c0c3eaad928 msgid "[0.0.29] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:410 -#: e082b4ffc74f4fa5ad535fdc25339fb9 +#: ../../CHANGES.rst:415 +#: ada3886977314df392f8c621db5ca4aa msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors." msgstr "" -#: ../../CHANGES.rst:413 -#: 121a03c2f8264159a2b7b4dd86b9f82a +#: ../../CHANGES.rst:418 +#: 1cec235d7daf4c0d96b60c294f4a7ae2 msgid "[0.0.28] - 2023-06-30" msgstr "" -#: ../../CHANGES.rst:418 -#: 31f0e74351b24c48b711eac992f457f8 +#: ../../CHANGES.rst:423 +#: 8d3a5a71a0f945728a4ccddd12fd9325 msgid "A template variable was misnamed." msgstr "" -#: ../../CHANGES.rst:421 -#: 5a7183a5d27548aeaf6070f8c6cf0bd6 +#: ../../CHANGES.rst:426 +#: ca97b346f9124437937dbf8f39a94832 msgid "[0.0.27] - 2023-06-29" msgstr "" -#: ../../CHANGES.rst:425 -#: 7b0da79735514bc0afa2f3bd77c667d5 +#: ../../CHANGES.rst:430 +#: 95d8a43dc3f74b1b9af64bc1801ff10a 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:431 -#: 3a1081b4eb6b41dca448fcb264611c11 +#: ../../CHANGES.rst:436 +#: 4c23d8c6a47d4a3cb0adc73482925a1a 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:433 -#: 130a8b66b9e044eaa1d14a2fd23b99e9 +#: ../../CHANGES.rst:438 +#: ae1a14723c664542a3b4fa7f5b6e9416 msgid "Field list support. :issue:`115` :pr:`136`" msgstr "" -#: ../../CHANGES.rst:434 -#: 5633fc14838b4716b86a3d57a0a969b2 +#: ../../CHANGES.rst:439 +#: 166ae100123545d88fb095625f8e5757 msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`" msgstr "" -#: ../../CHANGES.rst:439 -#: 71faa89a93af4b8e9e87b97f7d990150 +#: ../../CHANGES.rst:444 +#: f58011626b984cec855bf465b9eb740e msgid "Bump to jquery 3.7.0. :pr:`138`" msgstr "" -#: ../../CHANGES.rst:444 -#: 5b0e1dcc2c1c4804b2ba2bd5a4a603f4 +#: ../../CHANGES.rst:449 +#: b4c163cdd86d4d41a38ee8dc8dec79cd msgid "Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`" msgstr "" -#: ../../CHANGES.rst:449 -#: f549f9471b6645e2a10d5b4ee5061fae +#: ../../CHANGES.rst:454 +#: 9e5002bc346e405187a30f8e4b06d380 msgid "Stop support for Python 3.7. :pr:`131`" msgstr "" -#: ../../CHANGES.rst:452 -#: d913725094824a3a8e185262e70dc453 +#: ../../CHANGES.rst:457 +#: 3842d2293d104ee68ebf9088a832e639 msgid "[0.0.26] - 2023-06-03" msgstr "" -#: ../../CHANGES.rst:457 -#: 1afe9b4689ec4dd8bae989adf734d832 +#: ../../CHANGES.rst:462 +#: 82f6df6c805e404b905efcbe8b54e048 msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+. :issue:`13` :pr:`118`" msgstr "" -#: ../../CHANGES.rst:459 -#: 68f0650e032b427993470e3220bb6324 +#: ../../CHANGES.rst:464 +#: a652501ccf5241bf8b4b54e8f3203dcd msgid "Timezone configuration entry. :issue:`137` :pr:`130`" msgstr "" -#: ../../CHANGES.rst:464 -#: 07213564cc394fefa61e7412d5bc2633 +#: ../../CHANGES.rst:469 +#: 0d572b15160f4031bbf15c5a9a37b07a msgid "Avoid setting ``None`` in JWT claims when they have no value." msgstr "" -#: ../../CHANGES.rst:465 -#: 831fc1c2246c4572ae2ad1f74469c774 +#: ../../CHANGES.rst:470 +#: 655e16a6250f45eb9911924cd15af897 msgid "Display password recovery button on OIDC login page. :pr:`129`" msgstr "" -#: ../../CHANGES.rst:468 -#: 98d5d5e4a1f442b5be11c6375dbf1dcc +#: ../../CHANGES.rst:473 +#: 7aeb9d175b3646c2afb0825fff182301 msgid "[0.0.25] - 2023-05-05" msgstr "" -#: ../../CHANGES.rst:473 -#: b893fcfa2a4d4905b638b9909f6a693e +#: ../../CHANGES.rst:478 +#: 6231320bd79641839a5962aacfec0cf4 msgid "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" msgstr "" -#: ../../CHANGES.rst:478 -#: c4c44ea603434a3399bcd2023d5235f4 +#: ../../CHANGES.rst:483 +#: 86b626d62f784c18a21e2e4c01b6ced5 msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" msgstr "" -#: ../../CHANGES.rst:479 -#: 9b93b12448124250a6f367118f609461 +#: ../../CHANGES.rst:484 +#: 5d73e99d222f468ea490f43eabff4d07 msgid "Moved OIDC related configuration entries in ``OIDC``." msgstr "" -#: ../../CHANGES.rst:480 -#: 00b3824983044a1fbac5f85d63504db8 +#: ../../CHANGES.rst:485 +#: d7dbb7a2a1e04d71b924ced787508def msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``." msgstr "" -#: ../../CHANGES.rst:481 -#: 8e178dc82ac345d1b787d579f677c66e +#: ../../CHANGES.rst:486 +#: b54e11a65af449fbb7cabefa1d2f5a8f msgid "Bumped to `HTMX` 1.9.0. :pr:`124`" msgstr "" -#: ../../CHANGES.rst:482 -#: a14ba02aba7b42e089de2c998139043b +#: ../../CHANGES.rst:487 +#: 2ae42052dcc04b68ae5dce31d57c5d1c msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:483 -#: 6ba06372e44c475d9c22e78496b12a1d +#: ../../CHANGES.rst:488 +#: 47090e479634484ea87d626eeaea1f4c msgid "Bumped to `HTMX` 1.9.2. :pr:`127`" msgstr "" -#: ../../CHANGES.rst:488 -#: 7480ccb922c14f85a9f1e8df3c7fd0b0 +#: ../../CHANGES.rst:493 +#: 488ee458d46a4b84bb7e9640e7fee7f5 msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." msgstr "" -#: ../../CHANGES.rst:489 -#: eb9b69eeca2f45859c46669c3079d148 +#: ../../CHANGES.rst:494 +#: cc2241e9be1c4c67a40d63492f4ee3bd msgid "Fixed empty model attributes registration. :pr:`125`" msgstr "" -#: ../../CHANGES.rst:490 -#: 7b3ccb5cc054474282d0e0364fdf581f +#: ../../CHANGES.rst:495 +#: 069d4986fbfb42e1949b3432ea751aa1 msgid "Password initialization mails were not correctly sent. :pr:`128`" msgstr "" -#: ../../CHANGES.rst:493 -#: edcce5b2579e494399068ff527ae1154 +#: ../../CHANGES.rst:498 +#: 9ebb1af44b11429b996f53fe366c9ded msgid "[0.0.24] - 2023-04-07" msgstr "" -#: ../../CHANGES.rst:498 -#: 75df6a805ea7497886a1d97b72e30d53 +#: ../../CHANGES.rst:503 +#: 90c752cc044c45d7ba0d3b9016a2c86a msgid "Fixed avatar update. :pr:`122`" msgstr "" -#: ../../CHANGES.rst:501 -#: b0ccb51351e34fd2a7989eb5f3d9b7fd +#: ../../CHANGES.rst:506 +#: b2cae133929a45c6b7f3d751ea795658 msgid "[0.0.23] - 2023-04-05" msgstr "" -#: ../../CHANGES.rst:506 -#: 685b93f9b8ec4a5c819995cde2b4f7af +#: ../../CHANGES.rst:511 +#: 3f4b2add9ce843e48e442f1df5736ed8 msgid "Organization field. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:507 -#: 238011885d24456c8ae42e5879e682d9 +#: ../../CHANGES.rst:512 +#: 3a5cbfa540194c9dbf5b8e4059746bee msgid "ETag and Last-Modified headers on user photos. :pr:`116`" msgstr "" -#: ../../CHANGES.rst:508 -#: a3a0e69308f644c3b59b34c9f7295142 +#: ../../CHANGES.rst:513 +#: d8ae72f0748d49b4b39194e7bb0b91df msgid "Dynamic form validation. :pr:`120`" msgstr "" -#: ../../CHANGES.rst:513 -#: 4e8f53283ad24e859d1b9e0bf61ce412 +#: ../../CHANGES.rst:518 +#: 911f7f48193840eab6b79e6284962301 msgid "UX rework. Submenu addition. :pr:`114`" msgstr "" -#: ../../CHANGES.rst:514 -#: eb882759fce84bd284272612968b9cdc +#: ../../CHANGES.rst:519 +#: 17b8120732e64b2da61fa38391367757 msgid "Properly handle LDAP date timezones. :pr:`117`" msgstr "" -#: ../../CHANGES.rst:519 -#: b77e3469c62f45aa8a5afd6ed9b540b2 +#: ../../CHANGES.rst:524 +#: 9f99cb6c3d294a9892748b6dc8a00b8e msgid "CSRF protection on every forms. :pr:`119`" msgstr "" -#: ../../CHANGES.rst:522 -#: 46b4b10219bf48719f80744353658884 +#: ../../CHANGES.rst:527 +#: 41d531f56dd548f2990fb133127e76e2 msgid "[0.0.22] - 2023-03-13" msgstr "" -#: ../../CHANGES.rst:526 -#: e4af5aa7b6aa404cbd36dda5cd3b7aed +#: ../../CHANGES.rst:531 +#: 8f7e427477c542c99987c0a2051dd8b4 msgid "The `Faker` library is not imported anymore when the `clean` command is called." msgstr "" -#: ../../CHANGES.rst:529 -#: 4756bf90c28546c8b713b1a68f917c2e +#: ../../CHANGES.rst:534 +#: 8be260c5d1e8414a8170b499553c8e78 msgid "[0.0.21] - 2023-03-12" msgstr "" -#: ../../CHANGES.rst:534 -#: 2d2594eaea0548efa8dd9bb1c390c8cd +#: ../../CHANGES.rst:539 +#: 8c32260c07c7477b92f20bc8bd05d51b msgid "Display TOS and policy URI on the consent list page. :pr:`102`" msgstr "" -#: ../../CHANGES.rst:535 -#: f0a1f93b22674aa29086767cea73ff8b +#: ../../CHANGES.rst:540 +#: 7eb8b8401d45400cb71aeb09642dfaa8 msgid "Admin token deletion. :pr:`100` :pr:`101`" msgstr "" -#: ../../CHANGES.rst:536 -#: 2f4f2df6054940ca88bee0a23bbdd791 +#: ../../CHANGES.rst:541 +#: bb679056baa848d49494845f3e7ab2f8 msgid "Revoked consents can be restored. :pr:`103`" msgstr "" -#: ../../CHANGES.rst:537 -#: bd5b127c5d8b442dbfa12b04b43404e2 +#: ../../CHANGES.rst:542 +#: d8310880b205497aaf53c3db4d5d0e25 msgid "Pre-consented clients are displayed in the user consent list, and their consents can be revoked. :issue:`69` :pr:`103`" msgstr "" -#: ../../CHANGES.rst:539 -#: ed953ab326734b328faac7e4ce1a82d8 +#: ../../CHANGES.rst:544 +#: 6898d2f5592c437e806a45bc83915dc1 msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`" msgstr "" -#: ../../CHANGES.rst:541 -#: c4f079f62f3f41d4a1d0f903da7ef789 +#: ../../CHANGES.rst:546 +#: f06f2e894c5b423c80ab9f79519f79c4 msgid "SMTP SSL support. :pr:`108`" msgstr "" -#: ../../CHANGES.rst:542 -#: e84124830fbb4b2386e2780c421c24f5 +#: ../../CHANGES.rst:547 +#: 0dd080a448654e569f4924bca6fb9fef msgid "Server side pagination. :issue:`114` :pr:`111`" msgstr "" -#: ../../CHANGES.rst:543 -#: e79e17b605ca41428dfbe073c88d7a46 +#: ../../CHANGES.rst:548 +#: 0a6fb5c1e9a84406a296f482bc88c3df msgid "Department number support. :issue:`129`" msgstr "" -#: ../../CHANGES.rst:544 -#: 7ac9214483234c22b5cd63ce14445ae7 +#: ../../CHANGES.rst:549 +#: 907b7dcf46864c498c1f131aca7001fb msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`" msgstr "" -#: ../../CHANGES.rst:545 -#: 8762d6bb84d84f34af48f61ae075b545 +#: ../../CHANGES.rst:550 +#: 3b94c232c93d4b289aa0f0de23dba1c0 msgid "Title edition support. :pr:`113`" msgstr "" -#: ../../CHANGES.rst:550 -#: 80b77cfcdb444e428ac0dd1123682aed +#: ../../CHANGES.rst:555 +#: 779af60cf6314730b073c7ffc855b78f 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:556 -#: ac08c6366fbf4ea6bde38c8a3d118666 +#: ../../CHANGES.rst:561 +#: f3c4d81f4f82479f8ea62e986bd2433a msgid "Removed the `DataTables` Javascript library." msgstr "" -#: ../../CHANGES.rst:559 -#: a94dcc34a2a8441f80a90c8454a5806e +#: ../../CHANGES.rst:564 +#: a1ffacfb3ac144a28ae9979ca676f0c1 msgid "[0.0.20] - 2023-01-28" msgstr "" -#: ../../CHANGES.rst:564 -#: 0181591fdfe049498c214e8572f1ffb6 +#: ../../CHANGES.rst:569 +#: 9362feb98c114289ac03ba5b2b5c52eb msgid "Spanish translation. :pr:`85` :pr:`88`" msgstr "" -#: ../../CHANGES.rst:565 -#: e7bf68eb514147fda35f7890c725b737 +#: ../../CHANGES.rst:570 +#: 6b0f68efc938402f90aa62a0fb1f6174 msgid "Dedicated connectivity test email. :pr:`89`" msgstr "" -#: ../../CHANGES.rst:566 -#: 698535293f264d0ba5be29718884e2e9 +#: ../../CHANGES.rst:571 +#: 207402de24a246e59f3c48b3f3e55d8b msgid "Update to jquery 3.6.3. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:567 -#: bae2161f25914196b7638d932e1644b8 +#: ../../CHANGES.rst:572 +#: 8c7e7a79182f43668c1dabc0bdc1ebe1 msgid "Update to fomantic-ui 2.9.1. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:568 -#: bcc3028baa214876a441a3176e4de96b +#: ../../CHANGES.rst:573 +#: dce7421204ac41f8bc74e4841969a993 msgid "Update to DataTables 1.13.1. :pr:`90`" msgstr "" -#: ../../CHANGES.rst:573 -#: 3d03737d04c64ec2b63ec68c76a24435 +#: ../../CHANGES.rst:578 +#: ff71d75a15584b99af7ce49324cac5a1 msgid "Fix typos and grammar errors. :pr:`84`" msgstr "" -#: ../../CHANGES.rst:574 -#: bd153d8b888a433fa73362f330b0c1d7 -msgid "Fix wording and punctuations. :pr:`86`" +#: ../../CHANGES.rst:579 +#: 0142bca3c4744c058a3527bbd193ced9 +msgid "Fix wording and punctuation. :pr:`86`" msgstr "" -#: ../../CHANGES.rst:575 -#: 0eb1e97f7f6846cea707669840dfc0ec +#: ../../CHANGES.rst:580 +#: 3f290c1d392b4eb99613033f4a4abc36 msgid "Fix HTML lang tag. :issue:`122` :pr:`87`" msgstr "" -#: ../../CHANGES.rst:576 -#: 4823547c0e7a4227a2081241e4a398dd +#: ../../CHANGES.rst:581 +#: 5d0a8735436a49308d80f1e38e53d41f msgid "Automatically trims the HTML translated strings. :pr:`91`" msgstr "" -#: ../../CHANGES.rst:577 -#: fb08a3aa78bd43679a7b5243f7effe40 +#: ../../CHANGES.rst:582 +#: 592a104412ef42d083e8b0f1f48edbae msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" msgstr "" -#: ../../CHANGES.rst:580 -#: 137ae661438f4c4b8a95ea13131647ea +#: ../../CHANGES.rst:585 +#: 55394d68650041d095796bb6f96652a1 msgid "[0.0.19] - 2023-01-14" msgstr "" -#: ../../CHANGES.rst:585 -#: 07393512ba4e472ab582a44bc08f1fc5 +#: ../../CHANGES.rst:590 +#: d30233720f2641b39681d4b38538d3fb msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`" msgstr "" -#: ../../CHANGES.rst:589 -#: dd5479025e2943b29ba513a373924b05 +#: ../../CHANGES.rst:594 +#: 5d1ab53e1287473e9da988eee38244cb msgid "[0.0.18] - 2022-12-28" msgstr "" -#: ../../CHANGES.rst:594 -#: b0cf74c1b60e47e78d10698cd6bca2fb +#: ../../CHANGES.rst:599 +#: f3773833ff4e411f9409ee1d12315aef msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri``. :pr:`82`" msgstr "" -#: ../../CHANGES.rst:598 -#: 20db243448094ee1869f677734756043 +#: ../../CHANGES.rst:603 +#: 50250d974caa4d35a38ca42b62c0631e msgid "[0.0.17] - 2022-12-26" msgstr "" -#: ../../CHANGES.rst:603 -#: 03bf564ac99e40a6bf1c0179b46780a3 +#: ../../CHANGES.rst:608 +#: 372d62f8f1404f87ae4a948b1729eb2b msgid "Fixed group deletion button. :pr:`80`" msgstr "" -#: ../../CHANGES.rst:604 -#: ffd0923e11d144cbbac03f47b907031a +#: ../../CHANGES.rst:609 +#: df5d8ff06c074ebea60381d4a97c2983 msgid "Fixed post requests in oidc clients views. :pr:`81`" msgstr "" -#: ../../CHANGES.rst:607 -#: 07fa80ef872c4f0aa6a7779e0198e320 +#: ../../CHANGES.rst:612 +#: aae19c08760f4a7b92e77706448ba5f3 msgid "[0.0.16] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:612 -#: 18268039708d49d48b4f6253cdfc0e41 +#: ../../CHANGES.rst:617 +#: c7aa5330793a45d0ba69094ec226746e msgid "Fixed LDAP operational attributes handling." msgstr "" -#: ../../CHANGES.rst:615 -#: 8920eca583644e2ea606948312d19db5 +#: ../../CHANGES.rst:620 +#: bf3a5217ceda4c2a9d2a77d2e2bd7b6b msgid "[0.0.15] - 2022-12-15" msgstr "" -#: ../../CHANGES.rst:620 -#: 067e7d33c92642ce8170d2f189ba1eaf +#: ../../CHANGES.rst:625 +#: a4e2142b334b4546910fa0bfcb13cb98 msgid "User can chose their display name. :pr:`77`" msgstr "" -#: ../../CHANGES.rst:621 -#: e3ff0e53c4d74a07a0eecf1da0683ce2 +#: ../../CHANGES.rst:626 +#: 74850c5d97264fc6954f80ce5c0a5505 msgid "Bumped to Authlib 1.2. :pr:`78`" msgstr "" -#: ../../CHANGES.rst:622 -#: 7381665252be4e39bbf2dfa2dd058fa7 +#: ../../CHANGES.rst:627 +#: b8284cca6e4a488fbf8de22f53d00fe0 msgid "Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration Management Protocol. :pr:`79`" msgstr "" -#: ../../CHANGES.rst:624 -#: 0742502c9f9b4b7fa4950bc2c5be2344 +#: ../../CHANGES.rst:629 +#: 1b3fbfc8812f474a80cc2f56dc178faf msgid "Add the ``nonce`` parameter to the ``claims_supported`` server metadata list." msgstr "" -#: ../../CHANGES.rst:627 -#: 5c90dc86ec84497a95a715b0571867ce +#: ../../CHANGES.rst:632 +#: 4328ea49664546a28e7be4ffa17b8577 msgid "[0.0.14] - 2022-11-29" msgstr "" -#: ../../CHANGES.rst:631 -#: e121f0b60f1041bfbbeb1e521e7e6e00 +#: ../../CHANGES.rst:636 +#: 140b357c99bd4b59827d21a6a36dd28f msgid "Fixed translation catalogs packaging." msgstr "" -#: ../../CHANGES.rst:634 -#: 4389818557724b82bf568f9a3f543d75 +#: ../../CHANGES.rst:639 +#: bd416f209d1e44b4906cdfe4f3cd3ba0 msgid "[0.0.13] - 2022-11-21" msgstr "" -#: ../../CHANGES.rst:639 -#: c99b39e83ef84e038f16792ddd985a33 +#: ../../CHANGES.rst:644 +#: 9af2d530ba70445c82c42154878bc515 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:641 -#: 745faa20699245d5aca0ab5bc3e9e10d +#: ../../CHANGES.rst:646 +#: 9f7b8cb3c4fb4a4da15b856ae8361b84 msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined." msgstr "" -#: ../../CHANGES.rst:643 -#: 3f795515ed39451ea304fcd1d821c2e8 +#: ../../CHANGES.rst:648 +#: 50558cdbed5f4891a5df1b55202b94f2 msgid "Gitlab CI fix. :pr:`64`" msgstr "" -#: ../../CHANGES.rst:644 -#: 24fa3bebad2b4d3abfb847542cc5eb6b +#: ../../CHANGES.rst:649 +#: 21698d50862047a18122acee269acea5 msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" msgstr "" -#: ../../CHANGES.rst:645 -#: 1ac6be62d3ba42eebbf5691d51070cf8 +#: ../../CHANGES.rst:650 +#: 4330ea42364c4ea3aa55184e4a21dbf2 msgid "Fixed non-square logo CSS. :pr:`67`" msgstr "" -#: ../../CHANGES.rst:646 -#: f5b2446c163e424a9122c617d462e02f +#: ../../CHANGES.rst:651 +#: 14f833028db347dea4065de0a38742f7 msgid "Fixed schema path on installation. :pr:`68`" msgstr "" -#: ../../CHANGES.rst:647 -#: 02f5c7a9fc01442db3d13e595555afbf +#: ../../CHANGES.rst:652 +#: 64b313e1ba6041d8b73b71d9cf5bfb9e msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" msgstr "" -#: ../../CHANGES.rst:648 -#: 78f449d91fde4bbeab1115a260b6eaf6 +#: ../../CHANGES.rst:653 +#: d2af94bd1c224a72be52086a1bf99c5a msgid "Fixed client preconsent disabling. :pr:`72`" msgstr "" -#: ../../CHANGES.rst:653 -#: 6e2b25dfff3b44e8a082e7dfe0783ed6 +#: ../../CHANGES.rst:658 +#: c194f763ba684fca875e2ed2cb0789e5 msgid "Python 3.11 support. :pr:`61`" msgstr "" -#: ../../CHANGES.rst:654 -#: 03dddf9e2747444fa5a781e5991fb2ee +#: ../../CHANGES.rst:659 +#: d2fa3b7db3264394a78a4a52737366eb msgid "``apparmor`` slapd configuration instructions in the documentation page for contributions. :pr:`66`" msgstr "" -#: ../../CHANGES.rst:655 -#: 652bf489cff442399afa603f3189fce8 +#: ../../CHANGES.rst:660 +#: 091552347c98422cb929fc4429ec45a5 msgid "``preferredLanguage`` attribute support. :pr:`75`" msgstr "" -#: ../../CHANGES.rst:660 -#: cb73252eadc5439f9890c232680184bb +#: ../../CHANGES.rst:665 +#: b0ffe8cd5f634206aa75debc85fe7f03 msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`." msgstr "" -#: ../../CHANGES.rst:662 -#: 1f717c4202244232b3f027e75c72df0e +#: ../../CHANGES.rst:667 +#: c7f5e25e30514bf19e62f3ac90820478 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:665 -#: 899e3cc7a01548619e3222157d4f8a49 +#: ../../CHANGES.rst:670 +#: 910078a0fe7b43c6b83f275ed0669d9e msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" msgstr "" -#: ../../CHANGES.rst:666 -#: a18951416bb4489abd31ceec0366e57a +#: ../../CHANGES.rst:671 +#: a7279ae7234e438880c848154adb4b67 msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" msgstr "" -#: ../../CHANGES.rst:669 -#: b160acbf9eaa4e71a0bace6661884010 +#: ../../CHANGES.rst:674 +#: d78e68393a1d4aa5bcfda34e14061ada msgid "[0.0.12] - 2022-10-24" msgstr "" -#: ../../CHANGES.rst:674 -#: 129c83a0871246c7ad6e2a5a4eb02260 +#: ../../CHANGES.rst:679 +#: 0680ca4f25be4c3a84a177351b34f83c msgid "Basic WebFinger endpoint. :pr:`59`" msgstr "" -#: ../../CHANGES.rst:675 -#: 61ba856bc9144e99b8e6bdbc2c902616 +#: ../../CHANGES.rst:680 +#: 26c86c1cb04b4432a22a294adcd8f214 msgid "Bumped to FomanticUI 2.9.0." msgstr "" -#: ../../CHANGES.rst:676 -#: 74219fe023b9459cb1c2b01e6c734591 +#: ../../CHANGES.rst:681 +#: 50169945b0aa4096836d78c21a3a8b01 msgid "Implemented Dynamic Client Registration. :pr:`60`" msgstr "" -#: ../../CHANGES.rst:679 -#: 016f0c0c2d2c4182aca9240d2512543b +#: ../../CHANGES.rst:684 +#: d92803cf7e8a436793f8fc023a1505f9 msgid "[0.0.11] - 2022-08-11" msgstr "" -#: ../../CHANGES.rst:684 -#: db3fb19f6b054ba4a05e47e4eec51182 +#: ../../CHANGES.rst:689 +#: bac95e01c3fc4d0a86e4b766d5e153fa msgid "Default theme has a dark variant. :pr:`57`" msgstr "" -#: ../../CHANGES.rst:689 -#: 1e850e260b674b958db0c1e532d41204 +#: ../../CHANGES.rst:694 +#: 5b9fe7b8b63b4d7995a8c028d7806b89 msgid "Fixed missing ``canaille`` binary. :pr:`58`" msgstr "" -#: ../../CHANGES.rst:692 -#: 40e87478a2664b0c92140756707c60be +#: ../../CHANGES.rst:697 +#: 8cd429e444a24b44aa0f040277e72d5c msgid "[0.0.10] - 2022-07-07" msgstr "" -#: ../../CHANGES.rst:697 -#: e0ec3c84e12c4216906809629c883879 +#: ../../CHANGES.rst:702 +#: 06465917b7c74ed59f4d4b66e4ad47bc msgid "Online demo. :pr:`55`" msgstr "" -#: ../../CHANGES.rst:698 -#: 62dd075879514e42ae28700542264dc8 +#: ../../CHANGES.rst:703 +#: 755dc70c8091405997ed38b27480da6f msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" msgstr "" -#: ../../CHANGES.rst:699 -#: dabf19238a634ddc9e07d059544debc3 +#: ../../CHANGES.rst:704 +#: c687d6168f9240b981c38f9ceafd3b64 msgid "Fixed end session when user are already disconnected." msgstr "" -#: ../../CHANGES.rst:702 -#: 8ae757df74634eb79647c2fa087541f8 +#: ../../CHANGES.rst:707 +#: 1c5de6bb5f73481d8d270e4ab2c815db msgid "[0.0.9] - 2022-06-05" msgstr "" -#: ../../CHANGES.rst:707 -#: ac2ad71bec9647b8b5f762e4c9ffdb30 +#: ../../CHANGES.rst:712 +#: 714c2bbe2c70415581183b2d9a9b84df msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`" msgstr "" -#: ../../CHANGES.rst:708 -#: cf0dbda3694843a9b537e31e2fb907dc +#: ../../CHANGES.rst:713 +#: 452befa81f7a44e69c899403c4263a3e msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" msgstr "" -#: ../../CHANGES.rst:709 -#: 8dec8f2cd81742d4a01fa5b9ffe1a01b +#: ../../CHANGES.rst:714 +#: ffbbfc8361164825be4e1ac393183c72 msgid "`RP-initiated logout` implementation. :pr:`54`" msgstr "" -#: ../../CHANGES.rst:714 -#: 8a7594b3ea554d07bbc7b3de995203db +#: ../../CHANGES.rst:719 +#: aefee154c731404bb9b2f3bdf175f324 msgid "Bumped to Authlib 1. :pr:`48`" msgstr "" -#: ../../CHANGES.rst:715 -#: 4d46a5699c434e9db3e8a1262113be04 +#: ../../CHANGES.rst:720 +#: c40cf363e50a49bcb041ec51e7f3e30a msgid "Various documentation improvements. :pr:`50`" msgstr "" -#: ../../CHANGES.rst:716 -#: 75c81d21c57646b1b87c783213d0ce4b +#: ../../CHANGES.rst:721 +#: 60b85c01b2ef4ed1b49bf11139ef11a8 msgid "Use poetry instead of setuptools as project management tool. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:717 -#: 65d53e3caa964917999af35322ef34f8 +#: ../../CHANGES.rst:722 +#: 429f9a6dce514ecda59c037c35a6521c msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`" msgstr "" -#: ../../CHANGES.rst:721 -#: 668a5513cab746419b6f1f4383d9514d +#: ../../CHANGES.rst:726 +#: 5c5a64ad0b2f4486a73707c4d798e903 msgid "``HIDE_INVALID_LOGIN`` behavior and default value." msgstr "" -#: ../../CHANGES.rst:722 -#: b72d7532d5eb43f28cf58df7f43ccc72 +#: ../../CHANGES.rst:727 +#: a27053c3d7f54593b732730a957ef59a msgid "Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`" msgstr "" -#: ../../CHANGES.rst:725 -#: 93023371472b43229065c7b7bc1e3f39 +#: ../../CHANGES.rst:730 +#: ed8792af0e9c4fb7bcc61f546e54f5f8 msgid "[0.0.8] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:730 -#: 4c956bdf1fea4a8da72ce18d594c755a +#: ../../CHANGES.rst:735 +#: f54eb0e3cc5843ec9dffc1d9273676ac msgid "Fixed dependencies." msgstr "" -#: ../../CHANGES.rst:733 -#: 7583c8b1aab841bdb032ac0511593ffc +#: ../../CHANGES.rst:738 +#: 952d0e2c8b6e424aa0bc5ecf6066b546 msgid "[0.0.7] - 2022-03-15" msgstr "" -#: ../../CHANGES.rst:738 -#: da7842ed0543472dbd237afbe8d9e819 +#: ../../CHANGES.rst:743 +#: 4df75d144b8b4d7bb7866d3d8e924476 msgid "Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:741 -#: 236f3ba4d442454d884e948c7e270b73 +#: ../../CHANGES.rst:746 +#: ea6e51d22ea84d8a92e8e0faccc2ed6f msgid "[0.0.6] - 2022-03-08" msgstr "" -#: ../../CHANGES.rst:746 -#: 2766bb1178ae42d0a605ac7a091fe7ad +#: ../../CHANGES.rst:751 +#: 429a1b209b234db29483d3b1fc0acf61 msgid "Access token are JWT. :pr:`38`" msgstr "" -#: ../../CHANGES.rst:751 -#: db4fbd1e3ddc4f0ca00e26e4ebb4973c +#: ../../CHANGES.rst:756 +#: 512d398ace6b41a7814bcf41d4b07b8e msgid "Default groups on invitations. :pr:`41`" msgstr "" -#: ../../CHANGES.rst:752 -#: d23b1e497bda481486fbe83239fb691e +#: ../../CHANGES.rst:757 +#: 015b3636c19d4f7288fba1bfe138b38a msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`" msgstr "" -#: ../../CHANGES.rst:755 -#: c6c6a9c7cd3c42e8b7fbdb8728088bb8 +#: ../../CHANGES.rst:760 +#: 4e7170dedb1f452d96c2840d2f74abeb msgid "[0.0.5] - 2022-02-17" msgstr "" -#: ../../CHANGES.rst:760 -#: 9e9b19ec6348448ba54a5a323546ca98 +#: ../../CHANGES.rst:765 +#: bb147ef3f7d348419a52366fb1565133 msgid "LDAP model objects have new identifiers. :pr:`37`" msgstr "" -#: ../../CHANGES.rst:765 -#: 9891989730f44943b50509dbd60505f7 +#: ../../CHANGES.rst:770 +#: be2b7897b37147d8834cccde9331da58 msgid "Admin menu dropdown display. :pr:`39`" msgstr "" -#: ../../CHANGES.rst:766 -#: c84e9a03937847d1952f1934062510c1 +#: ../../CHANGES.rst:771 +#: cb12109386234e29a6cc7e77334dd736 msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`" msgstr "" -#: ../../CHANGES.rst:769 -#: 08b6fc2da0494c2eb57d789ab350d568 +#: ../../CHANGES.rst:774 +#: b39f305d9f2e48289d44c2f380e42e6d msgid "[0.0.4] - 2022-02-16" msgstr "" -#: ../../CHANGES.rst:774 -#: 1fdfa303b4484c1db9eee00f8a55b37f +#: ../../CHANGES.rst:779 +#: 140abc1e15874b2d89457db16387ad78 msgid "Client pre-authorization. :pr:`11`" msgstr "" -#: ../../CHANGES.rst:775 -#: e6e8431ad0fb447cbe5f338768f174e3 +#: ../../CHANGES.rst:780 +#: f144842e4d2745f5997488328eb1d919 msgid "LDAP permissions check with the check command. :pr:`12`" msgstr "" -#: ../../CHANGES.rst:776 -#: cbb3ce206fc042efa08d0f710bb3f29e +#: ../../CHANGES.rst:781 +#: 1767c082d71e43bcbcdd76869ff89a58 msgid "Update consents when a scope required is larger than the scope of an already given consent. :pr:`13`" msgstr "" -#: ../../CHANGES.rst:778 -#: a75023a92940453eadc28361e17226ab +#: ../../CHANGES.rst:783 +#: ed5501dfdcb04b29aaac94e0f854cc83 msgid "Theme customization. :pr:`15`" msgstr "" -#: ../../CHANGES.rst:779 -#: 6009f38a01064eb8b43c40e58e038462 +#: ../../CHANGES.rst:784 +#: 3128ac19904e43dea4a0c42012bbbdf2 msgid "Logging configuration. :pr:`16`" msgstr "" -#: ../../CHANGES.rst:780 -#: e780103a98334c89be8de17da39dbf25 +#: ../../CHANGES.rst:785 +#: 9373469eaf8846c5ad954b7512a969a9 msgid "Installation command. :pr:`17`" msgstr "" -#: ../../CHANGES.rst:781 -#: ff2ef858522a410eaed6e399b21dc9ab +#: ../../CHANGES.rst:786 +#: 8672af578b334fe69643c110d7cd9e2b msgid "Invitation links. :pr:`18`" msgstr "" -#: ../../CHANGES.rst:782 -#: f3bbc11874174336ab5f1d2a25c802a4 +#: ../../CHANGES.rst:787 +#: 9669ffa40350471bafa286efeaee5c2b msgid "Advanced permissions. :pr:`20`" msgstr "" -#: ../../CHANGES.rst:783 -#: a1f35cddd5ee489aa8540392cf1ed806 +#: ../../CHANGES.rst:788 +#: 9214296b5d1446cea387c64076ef4dfc msgid "An option to not use OIDC. :pr:`23`" msgstr "" -#: ../../CHANGES.rst:784 -#: 19b6ac25de0a4c459cdc7bdb04afdee4 +#: ../../CHANGES.rst:789 +#: f23646601d474085be01c2d849b3a3e6 msgid "Disable some features when no SMTP server is configured. :pr:`24`" msgstr "" -#: ../../CHANGES.rst:785 -#: 834025abbc184446a00ba6bc98490798 +#: ../../CHANGES.rst:790 +#: 83f6e7a2e64541f1b4ea4bb01af44eaa msgid "Login placeholder dynamically generated according to the configuration. :pr:`25`" msgstr "" -#: ../../CHANGES.rst:786 -#: 802fc40fcdc640319177fe19a4db1e2e +#: ../../CHANGES.rst:791 +#: 05098762a58c4522bf2175f449bfc9c5 msgid "Added an option to tune object IDs. :pr:`26`" msgstr "" -#: ../../CHANGES.rst:787 -#: 21596c4be3f842e79706a10b2004e258 +#: ../../CHANGES.rst:792 +#: 32db91cd47244baa9513353ab096bcc1 msgid "Avatar support. :pr:`27`" msgstr "" -#: ../../CHANGES.rst:788 -#: 8d6c8696c0fe4c8dba8d31285b0c6d8c +#: ../../CHANGES.rst:793 +#: 22d513a4411c40ebbc47b19e0245c948 msgid "Dynamical and configurable JWT claims. :pr:`28`" msgstr "" -#: ../../CHANGES.rst:789 -#: 096e42e86cea4a14b0221c2379c062ac +#: ../../CHANGES.rst:794 +#: 619ad62ecb394668a0dd95228807f133 msgid "UI improvements. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:790 -#: fcf217185de64916a1fded47c3042a60 +#: ../../CHANGES.rst:795 +#: d3847f7562db46969494e27be1155444 msgid "Invitation links expiration. :pr:`30`" msgstr "" -#: ../../CHANGES.rst:791 -#: be99864cd78647798e6c98874bf66859 +#: ../../CHANGES.rst:796 +#: bdaac8ce3bb9473888601579e65124dd msgid "Invitees can choose their IDs. :pr:`31`" msgstr "" -#: ../../CHANGES.rst:792 -#: 6d4df4c517e843ea91b56784fc7456ac +#: ../../CHANGES.rst:797 +#: 860019b47a8547b3bd948e44a4aa54fc msgid "LDAP backend refactoring. :pr:`35`" msgstr "" -#: ../../CHANGES.rst:797 -#: 6dfe7e9b843a4793a18a32a44213a51f +#: ../../CHANGES.rst:802 +#: 04ca16cfa1d84a55bd34752263ebfc48 msgid "Fixed ghost members in a group. :pr:`14`" msgstr "" -#: ../../CHANGES.rst:798 -#: 4d0668b5fd5146d6b952f229b494e4a8 +#: ../../CHANGES.rst:803 +#: 583377964f964064b57e110a01fb6d59 msgid "Fixed email sender names. :pr:`19`" msgstr "" -#: ../../CHANGES.rst:799 -#: 814ffcd9aa33403fa7c82f7f84165010 +#: ../../CHANGES.rst:804 +#: ad0f555117ff447ab954729149d624ff msgid "Fixed filter being not escaped. :pr:`21`" msgstr "" -#: ../../CHANGES.rst:800 -#: eafc2cd3272848b5a283a4b6e1ca3bb2 +#: ../../CHANGES.rst:805 +#: 393502e8436c4d0182acc25793c2bfc7 msgid "Demo script good practices. :pr:`32`" msgstr "" -#: ../../CHANGES.rst:801 -#: dc895e054ff74f2a999e1d3b97003aa9 +#: ../../CHANGES.rst:806 +#: 522fe5ee78ad49c8a61b81d2e219048e msgid "Binary path for Debian. :pr:`33`" msgstr "" -#: ../../CHANGES.rst:802 -#: 9d87ed0c765d49eab7b761900bfe9267 +#: ../../CHANGES.rst:807 +#: 8e096645799449318d5df3881dd5c3ec msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server. :pr:`34`" msgstr "" -#: ../../CHANGES.rst:804 -#: 7db67dce079746bc84ef9b79d2914487 +#: ../../CHANGES.rst:809 +#: 66e0c17c103141a79f26f1d50ccbe98b msgid "Spelling typos. :pr:`36`" msgstr "" -#: ../../CHANGES.rst:807 -#: 48e7cd6214584351aeb193ceda5747d5 +#: ../../CHANGES.rst:812 +#: 9dcad3987b2d4aada713d26b71d8b04a msgid "[0.0.3] - 2021-10-13" msgstr "" -#: ../../CHANGES.rst:812 -#: 7192e95d1eb644029e5246081305c04b +#: ../../CHANGES.rst:817 +#: ef03bf6fde8e4d8da6bfb5c4d98f82be msgid "Two-steps sign-in. :issue:`49`" msgstr "" -#: ../../CHANGES.rst:813 -#: 6b1f09173533499f94505b71bfe96448 +#: ../../CHANGES.rst:818 +#: f31b305c687347dda1c993d754b4c3f5 msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" msgstr "" -#: ../../CHANGES.rst:814 -#: 398931a76fad42db84dff796147025a5 +#: ../../CHANGES.rst:819 +#: 1c9c2cc6a1ad4616872f42544f8a0721 msgid "Configuration check command. :issue:`66` :pr:`8`" msgstr "" -#: ../../CHANGES.rst:815 -#: 6c9ec80eccc147fe8420793631bf8a67 +#: ../../CHANGES.rst:820 +#: dd95134783114add943cb94fb04c24ed msgid "Groups management. :issue:`12` :pr:`6`" msgstr "" -#: ../../CHANGES.rst:820 -#: 740c481b46584fbd993e8a398a89dd69 +#: ../../CHANGES.rst:825 +#: e19e45106a164d61a4439f6370c65711 msgid "Introspection access bugfix. :issue:`63` :pr:`10`" msgstr "" -#: ../../CHANGES.rst:821 -#: 08d017803db84bd4813b6b67306832ae +#: ../../CHANGES.rst:826 +#: 66a8b61cc80b4078a5d223eefcc910d4 msgid "Introspection sub claim. :issue:`64` :pr:`7`" msgstr "" -#: ../../CHANGES.rst:824 -#: 6ddeda1f6f3543df9eb27ee8ca29ae17 +#: ../../CHANGES.rst:829 +#: af8df4f413ef4d4892177f71407c4f53 msgid "[0.0.2] - 2021-01-06" msgstr "" -#: ../../CHANGES.rst:829 -#: cebab701ad914580b0ef24c5e477d00f +#: ../../CHANGES.rst:834 +#: c187841b1a2a4623a8bcee56a57d995e msgid "Login page is responsive. :issue:`1`" msgstr "" -#: ../../CHANGES.rst:830 -#: 39870870bec144c98d5cb664ae12c340 +#: ../../CHANGES.rst:835 +#: deb323d7b1524f4da30dc1bde2033269 msgid "Adapt mobile keyboards to login page fields. :issue:`2`" msgstr "" -#: ../../CHANGES.rst:831 -#: b36f83f83bab48b8bc3806012b73c5ec +#: ../../CHANGES.rst:836 +#: f967617d16f34185a79967fb08bf47e0 msgid "Password recovery interface. :issue:`3`" msgstr "" -#: ../../CHANGES.rst:832 -#: 925a64d71054452384bfd1c5f2cfb6f2 +#: ../../CHANGES.rst:837 +#: cce4984c2ee444a88b28ba45789471e8 msgid "User profile interface. :issue:`4`" msgstr "" -#: ../../CHANGES.rst:833 -#: 47766026c0e34bab92350e95fe5791f0 +#: ../../CHANGES.rst:838 +#: 6d795d219bd64576998f7d40acfe95cd msgid "Renamed the project *Canaille*. :issue:`5`" msgstr "" -#: ../../CHANGES.rst:834 -#: 40ad7a686e1b4c0082840aa434a052c4 +#: ../../CHANGES.rst:839 +#: 4eb52936358446759c78796a90c13315 msgid "Command to remove old tokens. :issue:`17`" msgstr "" -#: ../../CHANGES.rst:835 -#: ec3c326d09b347f7b4b3e5267c74a8ba +#: ../../CHANGES.rst:840 +#: 04652cd32b8d40aa95e87b4e7be8bd84 msgid "Improved password recovery email. :issue:`14` :issue:`26`" msgstr "" -#: ../../CHANGES.rst:836 -#: 5a8158e21d99478fb0ae501207a9e45d +#: ../../CHANGES.rst:841 +#: 5c6d305c12e045989de7a69461bdbb78 msgid "Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" msgstr "" -#: ../../CHANGES.rst:837 -#: 85812a315dd644f7806cf40f92759869 +#: ../../CHANGES.rst:842 +#: 460f837718d64f96bd3aae111f2ed575 msgid "Improved consents page. :issue:`27`" msgstr "" -#: ../../CHANGES.rst:838 -#: d912fde9b8764ae6b823eb98d69a6fe0 +#: ../../CHANGES.rst:843 +#: cec56346467746df92894d54f4777386 msgid "Admin user page. :issue:`8`" msgstr "" -#: ../../CHANGES.rst:839 -#: 0aeb9dc137184fa49299e945f7aa4eb1 +#: ../../CHANGES.rst:844 +#: a64b3fb30c5e492a8734908ecde1d6c9 msgid "Project logo. :pr:`29`" msgstr "" -#: ../../CHANGES.rst:840 -#: 68e92bc61d504a9dbaa7770baad04b98 +#: ../../CHANGES.rst:845 +#: d11c29ee5d65410ab38c35a9e0597604 msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`" msgstr "" -#: ../../CHANGES.rst:841 -#: a018e74c66b2485e81da7c57356a14b0 +#: ../../CHANGES.rst:846 +#: 471a8d1275584241ac097906c7177e0f msgid "Admins can impersonate users. :issue:`39`" msgstr "" -#: ../../CHANGES.rst:842 -#: 353fd38759ea48719620374e39afb1e1 +#: ../../CHANGES.rst:847 +#: b3e93315ff5d4de6984c9a33a5f7a262 msgid "Forgotten page UX improvement. :pr:`43`" msgstr "" -#: ../../CHANGES.rst:843 -#: 9e37257829c54b5e8ee095941cd859f8 +#: ../../CHANGES.rst:848 +#: 2e29c61d8a0a4509a6940da2d78565be msgid "Admins can remove clients. :pr:`45`" msgstr "" -#: ../../CHANGES.rst:844 -#: d424528be89e4725941b398063a25935 +#: ../../CHANGES.rst:849 +#: 87765447d1904590abe7a284689c0da5 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:846 -#: f4bffd71d9f64d55a3aeb6fd6a72373e +#: ../../CHANGES.rst:851 +#: d6ac7b49d77a45af89c3f73b962962b6 msgid "Password initialization mail. :pr:`51`" msgstr "" -#: ../../CHANGES.rst:851 -#: 4758867fd201452c93c8ab5eb62b00e3 +#: ../../CHANGES.rst:856 +#: ae08c1fc84ad429aa84b4a7741306786 msgid "Form translations. :issue:`19` :issue:`23`" msgstr "" -#: ../../CHANGES.rst:852 -#: 9d070cb833864799a2423423097e2720 +#: ../../CHANGES.rst:857 +#: 5e10cab37a3343dca75d502fb1d9aa7f msgid "Avoid to use Google Fonts. :issue:`21`" msgstr "" -#: ../../CHANGES.rst:857 -#: 1045646969cf4058b2d0b22190ea0538 +#: ../../CHANGES.rst:862 +#: b5ec94b3249e4c4baa527e39d1f41984 msgid "'My tokens' page. :issue:`22`" msgstr "" -#: ../../CHANGES.rst:860 -#: 72c00a60e20240ecbc4c7d19644e1bc6 +#: ../../CHANGES.rst:865 +#: bca3b0cc40bd42728f766ddc53bf2473 msgid "[0.0.1] - 2020-10-21" msgstr "" -#: ../../CHANGES.rst:865 -#: 98d8d76ed59c447eba685e2fffa9bd08 +#: ../../CHANGES.rst:870 +#: 6a4ab1eafed7409fb4104ed6fbdf22e7 msgid "Initial release." msgstr "" #: ../../CONTRIBUTING.rst:2 -#: bde67e720b444317a7da094a979b3882 +#: 4687662aec914efab3c981c6900e49b7 msgid "Contributions" msgstr "" #: ../../CONTRIBUTING.rst:4 -#: 21a8b0eb6a674a228ce0ce80ac45e1b1 +#: fd024d56bac8472b8d29c17e9ad5bda9 msgid "Contributions are welcome!" msgstr "" #: ../../CONTRIBUTING.rst:6 -#: dff99bad456740e6acaaa9e2aa58a417 +#: 7eba5395620b47abaee672d0faa21a11 msgid "The repository is hosted at `gitlab.com/yaal/canaille `_." msgstr "" #: ../../CONTRIBUTING.rst:9 -#: 7c26ee8f83604fcd93ea1a8d7b602407 +#: 341527f9fe2842548ec04c2fd2391e7a msgid "Discuss" msgstr "" #: ../../CONTRIBUTING.rst:11 -#: aa594fd3bdab40f7a40310d32ce34631 +#: e39db566619045338f4fda1c4e4a3a49 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 -#: bcad3954da1a4513965b988b196748f1 +#: 0f060ba688934ac4b420cba4f3c1cc6d msgid "Development environment" msgstr "" #: ../../CONTRIBUTING.rst:18 -#: 10066e409f984c5ebc234e2dab385e91 +#: e80f15e77ffe478887dbf2b05fcafd94 msgid "You can either run the demo locally or with Docker." msgstr "" #: ../../CONTRIBUTING.rst:20 -#: 6f7d8fb93d304b63948034762d4059d4 +#: f7ec7ab6822a4e2588b1e4ab746cb423 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 -#: 3a9fe69c06aa4c7980ffdd3c5c1ccb4f +#: 3ba0320a8e354c73aa35839de235427a msgid "Initialize your development environment with:" msgstr "" #: ../../CONTRIBUTING.rst:26 -#: 088aa6c1d0ca4dfc9dfe3f5be4979a19 +#: cd51f5ca28a741aebc28c47e45d9cb30 msgid "``uv sync --extra front --extra oidc`` to have a minimal working development environment. This will allow you to run the tests with ``uv pytest --backend memory``." msgstr "" #: ../../CONTRIBUTING.rst:27 -#: ee858fce2469444492189960e1ecefb2 +#: 146e3fd84d7d453fb1a4ac6fe597b4b7 msgid "``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal working development environment with SQLite backend support. This will allow you to run the tests with ``uv pytest --backend sql``." msgstr "" #: ../../CONTRIBUTING.rst:28 -#: eaf1d6f8a7404ef6a7870fc814657f93 +#: 5bfeac85203f46508df60588dd614c39 msgid "``uv sync --extra front --extra oidc --extra ldap`` to have a minimal working development environment with LDAP backend support. This will allow you to run the tests with ``uv pytest --backend ldap``." msgstr "" #: ../../CONTRIBUTING.rst:29 -#: e805f4cd014a4c37a9c0687d86bdca9a +#: c1ec5e05b9d74502b030b8eec6c8f2a2 msgid "``uv sync --all-extras`` if you want to have everything at your fingertips. Note that it may compile some Python dependencies that would expect things to be installed on your system; Some dependencies of Canaille might need to be compiled, so you probably want to check that `GCC` and `cargo` are available on your computer." msgstr "" #: ../../CONTRIBUTING.rst:32 -#: ae6031a583154406977375c30dfe3618 +#: d29616c62ff04b71b5a0635d3a393cd5 msgid "After having launched the demo you have access to several services:" msgstr "" #: ../../CONTRIBUTING.rst:34 -#: 5180cc64544047578fa1bc4d29a4ac6f +#: 03e2bab2c322461789ff4b27a359e366 msgid "A canaille server at `localhost:5000 `__" msgstr "" #: ../../CONTRIBUTING.rst:35 -#: 9f33d78751c84abc8bccc317f40ef6cc +#: 392756158e064a369aa0ca82c2dfa373 msgid "A dummy client at `localhost:5001 `__" msgstr "" #: ../../CONTRIBUTING.rst:36 -#: f821b9e1bdd14c8cb28c17f4dfef806b +#: 2942269bf6874ef4884a68f354798e1b msgid "Another dummy client at `localhost:5002 `__" msgstr "" #: ../../CONTRIBUTING.rst:37 -#: a67d089006404b64be3f524fb45f4cdc +#: 92551718b3684edc92ecabac91217c2d msgid "A mail catcher at `localhost:1080 `__" msgstr "" #: ../../CONTRIBUTING.rst:39 -#: 26e6dca78815463db197f580c669ab82 +#: f99ab5ac4dff4f168fbb6b910407ed0d msgid "The canaille server has some default users:" msgstr "" #: ../../CONTRIBUTING.rst:41 -#: eca1f16b208848bca8bc9f8b075bc04b +#: ed8c5574ab1449be989ed42268faf110 msgid "A regular user which login and password are **user**;" msgstr "" #: ../../CONTRIBUTING.rst:42 -#: 7ae3f3c1ef534b64abff9a4b37d34c6b +#: 65588fdcd73b4fa1bd599126883c09db msgid "A moderator user which login and password are **moderator**;" msgstr "" #: ../../CONTRIBUTING.rst:43 -#: 6be597c0830441408814118c52840fd1 +#: 0b5905d3d9f74ce28a0512102208e7c5 msgid "An admin user which admin and password are **admin**;" msgstr "" #: ../../CONTRIBUTING.rst:44 -#: 7c19cc71096a4fdbbd4473db7248a135 +#: 6a008aba154342e3975986949740d3dc 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:106 #: ../../CONTRIBUTING.rst:49 -#: e0ab0899531148f48e4bffd46e876361 -#: 21dea0d2aa054fe68572ee44a9ed7260 +#: 3af0f775d7f14acaaaf05b51731c48e2 +#: 22fa0bd90a234e84bef2f889c49f2cf1 msgid "Backends" msgstr "" #: ../../CONTRIBUTING.rst:51 -#: a1ad8bf382274a02873d1cfbfe5c7f1c +#: 1bd431a9373d4639a3452683a766951d msgid "Canaille comes with several backends:" msgstr "" #: ../../CONTRIBUTING.rst:53 -#: 554b01b1cf7742f28b9f9493aed53029 +#: 1dcb875c756e49fda6524b328df8bfc9 msgid "a lightweight test purpose `memory` backend" msgstr "" #: ../../CONTRIBUTING.rst:54 -#: 40c03f77b7f3431fb3e036f885cca122 +#: 62d4abb7db574374bd324ef5cb07798b msgid "a `sql` backend, based on sqlalchemy" msgstr "" #: ../../CONTRIBUTING.rst:55 -#: 45f089d389cc45758d8e1988c7990fc8 +#: b74d2ec27b2d40118294e82b517bf8d6 msgid "a production-ready `LDAP` backend" msgstr "" #: ../../CONTRIBUTING.rst:58 -#: 63b6b371acf14ff1a1fb066a1d9afd3f +#: 7a75c5a847614bfc89e4433c7e12268d msgid "Docker environment" msgstr "" #: ../../CONTRIBUTING.rst:60 -#: 7f29b0913b3241be896360c1d89eff81 +#: 5b180aa0ce95424eb618102e626c4467 msgid "If you want to develop with docker, your browser needs to be able to reach the `canaille` container. The docker-compose file exposes the right ports, but front requests are from outside the docker network: the `canaille` url that makes sense for docker, points nowhere from your browser. As exposed ports are on `localhost`, you need to tell your computer that `canaille` url means `localhost`." msgstr "" #: ../../CONTRIBUTING.rst:65 -#: 2792abeebe5943b98edc9c0852c979a4 +#: 420dc399b3d64e0084d8e34e2eb59fd6 msgid "To do that, you can add the following line to your `/etc/hosts`:" msgstr "" #: ../../CONTRIBUTING.rst:71 -#: 93e6039ee7554dc8b475b2eec37d2bee +#: e9516508c0104f9a9c51d077db01a6bc msgid "To launch containers, use:" msgstr "" @@ -2025,47 +2037,47 @@ msgstr "" #: ../tutorial/databases.rst:16 #: ../../CONTRIBUTING.rst:74 #: ../../CONTRIBUTING.rst:109 -#: bd13f35e282d4204ae739c8fece8584c -#: 9fec7320c3484726b5271e8d6befc155 -#: dba2cf6fc7b34599bf552477844bd504 -#: a5446796f3524f6db7a9ad7f77f4a3c5 +#: 2055925253594be694aef936d55244d0 +#: 0b92cf65f3c940cc8052fab4ad8dda02 +#: d1b68c6d65194f4b8208fb0ce48b63b7 +#: 1123fd0bfad44ab78d216adc4db07596 msgid "SQL" msgstr "" #: ../../CONTRIBUTING.rst:75 #: ../../CONTRIBUTING.rst:110 -#: 9625b3a455a149e9a6dcc6b3e3217101 -#: 148cb20c499f4e12a0ed51e8e2d3d92f +#: 116ff6ad470b45949a1dbc3e562ea85d +#: e3a2d43bc1e3414b8e6784fe2ed3d392 msgid "With the SQL backend, the demo instance will load and save data in a local sqlite database." msgstr "" #: ../../CONTRIBUTING.rst:77 #: ../../CONTRIBUTING.rst:112 -#: 229cf7d32cf64a948d5c8a55c2f9a8b5 -#: 87977709107a4e44b47b720bb22bbbe6 +#: c66b94dbd010495990613cad39c78d16 +#: b65feadd92a04c09838d325d2e61b9c9 msgid "Run the demo instance with the SQL backend" msgstr "" #: ../tutorial/databases.rst:8 #: ../../CONTRIBUTING.rst:84 #: ../../CONTRIBUTING.rst:118 -#: 2520b40bcf7549a589a111815c235b68 -#: 2d73d49cf6d5459489a791d17eed1a14 -#: 05ab266c77fe49339809c296744d2df5 +#: de59a86109fa422bb2de45a3a65ae8f5 +#: 87d50d253cb24fab89bef037a0bd6135 +#: af61c2ad9bac42afa606e8e8a39be272 msgid "Memory" msgstr "" #: ../../CONTRIBUTING.rst:85 #: ../../CONTRIBUTING.rst:119 -#: 31319ae8b16a43e596e7030cd233f045 -#: e745957885584e83b6a7f0aadc6c758d +#: f2922b8120d44978871991561dfe3666 +#: 6efe2e024e3744569747383f0d657223 msgid "With the memory backend, all data is lost when Canaille stops." msgstr "" #: ../../CONTRIBUTING.rst:87 #: ../../CONTRIBUTING.rst:121 -#: 00afbfbdd01e455e9958b3009fcff0c2 -#: 6e35f56ac3ee4ca19f9e2fc771b0079f +#: 028bd6295cc74d39a612203bb7edc6ac +#: 9d9b1f2a83c947e9a0b662ffe03765da msgid "Run the demo instance with the memory backend" msgstr "" @@ -2073,732 +2085,732 @@ msgstr "" #: ../tutorial/databases.rst:45 #: ../../CONTRIBUTING.rst:94 #: ../../CONTRIBUTING.rst:127 -#: 1dc151a5ada2403f9dc7ca81d46520b6 -#: 94267e1fdbed46ea9dc4e3469e9b0bdf -#: 859468312c7e48e8b2b551cfd49ac693 -#: 1d96001cad474112b3f3e0369e4f14b9 +#: 40c62a3d13004e91b316c455feaf747a +#: 02784665241d4addac4643e008a14a5f +#: e0d6165206e94b28bb2bc54676eeb234 +#: 43b7f22f5cfa41a6b464471d6f692f1d msgid "LDAP" msgstr "" #: ../../CONTRIBUTING.rst:95 #: ../../CONTRIBUTING.rst:128 -#: f7c704a575784339856ceee1f01cf876 -#: 6399858056f74f239b9011054143206f +#: 8a80fc3ed92948af836942c3ccdd55ed +#: b7fb5f8c6783476bb997f7570d67afc3 msgid "With the LDAP backend, all data is lost when Canaille stops." msgstr "" #: ../../CONTRIBUTING.rst:97 #: ../../CONTRIBUTING.rst:130 -#: c874e2aaa264428da6b83c11784c6e80 -#: b0917fb5c7654091ab9d9bfb9e88cb89 +#: 5d99ede7d4bc4c9f889ded1574515cde +#: 7cb82c433a3b450082be919d8c25adf4 msgid "Run the demo instance with the LDAP backend" msgstr "" #: ../../CONTRIBUTING.rst:106 -#: c3cea5caea764c358b84ff51c08469e5 +#: e3a7692783c54046a2f4642d64fe4b1a msgid "Local environment" msgstr "" #: ../../CONTRIBUTING.rst:136 -#: 013936605b184cd3948dc8f73d168e72 +#: ca20396cd1264aef9766723966e9a583 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:141 -#: 42c14306528e412bbad342a6f9af38f0 +#: 33e30395ce8e4e9b98517db9a6b15cca 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:151 -#: 59f94f7881894b0e83e7a1bef73cc020 +#: 75cd746bc7dd4397bf3872cb219613c1 msgid "Populate the database" msgstr "" #: ../../CONTRIBUTING.rst:153 -#: 66738948ae6b45c5b23563c7215e19e0 +#: 2dd40b11edf4481eb407fffe8d4f0eed 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:164 -#: db6f477fee0e4de09f04c01576690271 +#: 480a7f75a5ba492598b09e4a55ed0625 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:167 -#: 74c9dd23d014401281b1f170d1cb5d32 +#: 20fbd42c23584d1ea683e05b42cc6b2b msgid "Unit tests" msgstr "" #: ../../CONTRIBUTING.rst:169 -#: 22436ee47c70466fa6e88e8eb7e053ad +#: 3c72881f18994d8db7d5cc629133eada 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:172 -#: 7e59b465754d4d9085bf2ee7c81043d9 +#: 84c6125d214d4b05885b20f395c041fc msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox." msgstr "" #: ../../CONTRIBUTING.rst:174 -#: 28441149899b4c7bb1a10b41434eaec5 +#: 1ff1757b89db43168e71ea2239a48ddc msgid "The test coverage is 100%, patches won't be accepted if not entirely covered. You can check the test coverage with ``uv run pytest --cov --cov-report=html`` or ``uv run tox -e coverage -- --cov-report=html``. You can check the HTML coverage report in the newly created `htmlcov` directory." msgstr "" #: ../../CONTRIBUTING.rst:179 -#: 90e5de469d704a0cacaea81d39504bf7 +#: 5bc14aa6aa77438a96c844c6385eb775 msgid "Code style" msgstr "" #: ../../CONTRIBUTING.rst:181 -#: 1f9223917ca3462e8ee0eb9fc95d22f0 +#: 4b41b24c13a34806986e10737c2a4cee msgid "We use `ruff `_ along with other tools to format our code. Please run ``uv run tox -e style`` on your patches before submitting them. In order to perform a style check and correction at each commit you can use our `pre-commit `_ configuration with ``uv run pre-commit install``." msgstr "" #: ../../CONTRIBUTING.rst:187 -#: d59406a4e3694d53acb6b6eb762fb68e +#: 16c11c2894ad41b5be0b62a84854233e msgid "Front" msgstr "" #: ../../CONTRIBUTING.rst:189 -#: 6a49fc8130484866a25bfa4985c46ce5 +#: 6ea87c923b464e5b97af7265870323f8 msgid "The interface is built upon the `Fomantic UI `_ CSS framework. The dynamical parts of the interface use `htmx `_." msgstr "" #: ../../CONTRIBUTING.rst:192 -#: 8302d60edd98485b88f298b03c1c09de +#: c6c3435794ea46baa36773acf1260808 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:194 -#: 427ff72929444175b5a4769d1a5316de +#: 4417e258634848fd8749af8586c9c908 msgid "Because of Fomantic UI we have a dependency to jQuery, however new contributions should not depend on jQuery at all. See the `related issue `_." msgstr "" #: ../index.rst:71 #: ../../CONTRIBUTING.rst:199 -#: 586d6a1104ba4c0198fe3f62d59ba38d -#: c687e5dc99d64d26bf4574827eb4bd7e +#: 232aaf43c92a49d2947a53d534f22c7e +#: c1b0d873e12f4d33a2681eb1d511740f msgid "Documentation" msgstr "" #: ../../CONTRIBUTING.rst:201 -#: b7cd4d2d7f6a46efa001d086dc96460e +#: 02a1a93380714974a2bab3665b075c34 msgid "The documentation is generated when the tests run:" msgstr "" #: ../../CONTRIBUTING.rst:207 -#: 1a848b4a3d9743eb8e110a86b66f9503 +#: d73e09132a2449af82940156189395fb msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:" msgstr "" #: ../../CONTRIBUTING.rst:213 -#: c8ca1d48e7c246c6bf3818ff707cbde2 +#: 5e55633bcf244a1db60ee08722508c33 msgid "The generated documentation is located at ``build/sphinx/html/en``." msgstr "" #: ../../CONTRIBUTING.rst:217 -#: e8f50dc855e94dbf8d6c0442d891cc64 +#: 50688ea51e5241889e5af4f29d575705 msgid "The documentation generates dynamic screenshots of Canaille using `sphinxcontrib-screenshot`_, that internally uses `Playwright`_. Playwright needs to be initialized with the following command:" msgstr "" #: ../../CONTRIBUTING.rst:228 -#: 00fabd140c764f34a35bb61037963719 +#: f1716a2a9f014206bc5b03a4cef5b845 msgid "Code translation" msgstr "" #: ../../canaille/translations/README.rst:1 -#: b42ad95ca3a9448886c82f5d088e2ef7 +#: 28150d4c1cf646b89f39091ee789e40e msgid "Translations are done with `Weblate `__." msgstr "" #: ../../canaille/translations/README.rst:3 -#: f017a975456043c0821d0c896f09a5c7 +#: 3e988ba657364cf7930e4a9f8bcbcf69 msgid "The following commands are there as documentation, only the message extraction is needed for contributors. All the other steps are automatically done with Weblate." msgstr "" #: readme.rst:6 #: ../../canaille/translations/README.rst:8 #: readme.rst:6 -#: 46d24461025540a6a949614c2ff8a24a -#: 35d1c8a930b44709a594edd4967a0564 -#: ad03351fe22043539f9893fe7388dbc7 +#: 02aaaf8ded4b422ca9aeebfbd34ff121 +#: 2c38b70768eb4234866332c31960c425 +#: adfb08d2911e4753af33e8720bb305b0 msgid "Message extraction" msgstr "" #: readme.rst:8 #: ../../canaille/translations/README.rst:10 #: readme.rst:8 -#: 145f8eb7038a4cf1a05a828d1bedac2f -#: 5765370ac03a450386fa9982b50c212c -#: 384b021391c442f3bc7aeaa56898f7d8 +#: 8ac5b5b8236c4c07ac508dd058b62933 +#: 7fef651ebc3c4d13a6b1cd7beb31f03c +#: 80c7f1b4536c45acaf95f80b13496473 msgid "After you have edited translatable strings, you should extract the messages with:" msgstr "" #: readme.rst:15 #: ../../canaille/translations/README.rst:17 #: readme.rst:15 -#: 6b7ed1f28080413f9635c5d2d88f2c1c -#: 44beb4ecda2a4f87881f0352973ccc87 -#: 4ee7912d1929401f80fa7e485afbf213 +#: 628a7897d67d47e298e96e38f78c6746 +#: d73592b2efe542f88c982802fd274089 +#: 4039ecf6491c43d09addf4cdb7467f64 msgid "Language addition" msgstr "" #: readme.rst:17 #: ../../canaille/translations/README.rst:19 #: readme.rst:17 -#: 0d8be901f121499194ec250e12375e9f -#: f0172160f4bf40ca969ae9b94e09e165 -#: 8a158eaf8b1e44ea9898d99e46ad1439 +#: d13c57bd65bd4bb1803e049a44df4aef +#: f3882f0851714320b70efd19c2a9e77b +#: 9d8b887fb76848d791e96f362cf27596 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 -#: 2516f9c191274510838602d25d2b4932 +#: b0e9d3df5db64af2803940dd2ee6e7f8 msgid "Catalog update" msgstr "" #: ../../canaille/translations/README.rst:28 -#: 145d0ac534ba427ab10ffeff35b36518 +#: ce9ce02a009449f7be7cc2dd2e526896 msgid "You can update the catalogs with the following command, however this should not be needed as Weblate automatically update language catalogs when it detects new strings or when someone translate some existing strings. Weblate pushes happen every 24h." msgstr "" #: ../../canaille/translations/README.rst:36 -#: f1703a8484b549169d21696446af9280 +#: 3f7272cb02e84ce3be7bb1224ff015c0 msgid "Catalog compilation" msgstr "" #: ../../canaille/translations/README.rst:38 -#: 03645066357341c3bf4f289205464fdb +#: 9786aff3421c4088bd69e95cb1b366bf msgid "You can compile the catalogs with the following command, however this should not be needed as catalogs are automatically compiled before running the unit tests, before launching the demo and before compiling the Canaille python package:" msgstr "" #: ../../CONTRIBUTING.rst:234 -#: 9774333cfa6546e68f6e648fbcc5ab65 +#: d86ae757aa97478393f4275ffb470dc9 msgid "Documentation translation" msgstr "" #: readme.rst:1 #: readme.rst:1 -#: ff1a0f6b8abb482c8f6e92d5ed91b4f5 -#: 9207265c70a7433e9b9f34cd1306ef4d +#: 9c8502f323024668b2555a5fcf36d292 +#: 34d0618b5ed645ab899ab781ba5cef21 msgid "Translations are done with `Weblate `__." msgstr "" #: readme.rst:3 #: readme.rst:3 -#: fdb0828f1ab042bb8f6bac1cc0470c9b -#: a666bb4a0c1f4a82934ed7a0ac9f6862 +#: 034b89cc49564a77bc93bdf0cac1457a +#: 3dff8e49822243e3a01b4c56b6b4929c msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." msgstr "" #: readme.rst:24 #: readme.rst:24 -#: 89f97409577a4f3a9bd4dd592b20e6bf -#: 37e001e489f84ebcafe6f5ee5d387801 +#: e694976b2c4e4df4a617fd63dca61a22 +#: 5e14ea67bec2427dbbf52a73108b50a7 msgid "Build the documentation in another language" msgstr "" #: ../../CONTRIBUTING.rst:239 -#: cdc4debc7f344001b0b00baf3032579a +#: 7a719577219542ec9961056bff061723 msgid "Build a release" msgstr "" #: ../tutorial/install.rst:49 #: ../../CONTRIBUTING.rst:242 -#: 4c7facdc3f7b4a7f92435879c50b73db -#: f7e9fad62c1e4981804cc83541c7671d +#: 63c7814aee3c40b495afc7075d23e543 +#: 1e12309b6a58423395e561dce465bd7f msgid "Python package" msgstr "" #: ../../CONTRIBUTING.rst:244 -#: f8caa79fcae6462da7c3426b90d2c9eb +#: 1233571cb0b1466e8a691ba4f425e0c3 msgid "The Python packaging step is took care of by uv:" msgstr "" #: ../../CONTRIBUTING.rst:251 -#: 151e87c6cbf645fb9aacaf0dd264335f +#: dc71cd28b8bc4f688e2973ef4211b48a msgid "Binary file" msgstr "" #: ../../CONTRIBUTING.rst:253 -#: 29523c6865e84d1eb7d205b44dedd124 +#: 81a0d59fc7ce4c84a408fcdda2645741 msgid "To build a single binary of Canaille, you can use pyinstaller by installing the `release` dependency group:" msgstr "" #: ../../CONTRIBUTING.rst:261 -#: 1d941a28a111423cb26ff0c797a8412a +#: 446d280739404b1498485f5562095601 msgid "Publish a new release" msgstr "" #: ../../CONTRIBUTING.rst:263 -#: dc74511803ac4bd6bc003b9019d1a93b +#: 95da2923d2ce400eba9f7e58b6b39fcb msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;" msgstr "" #: ../../CONTRIBUTING.rst:264 -#: a11b44f9516a49eca6d8944b3be387b6 +#: aeb2d4ea104542ee846183af127cdf77 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:265 -#: c26f5bf2166a4e9880596acea9fd7a0c +#: 347729c6aed74a1fbf7341184ab0abfe msgid "Check that the demo environments are still working, both the local and the Docker one;" msgstr "" #: ../../CONTRIBUTING.rst:266 -#: 682e6d9410af48e48c391df261028c89 +#: 03cd415b6b0f4c33a1ce0cdf90b18980 msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;" msgstr "" #: ../../CONTRIBUTING.rst:267 -#: dcd79aa4d4d94e069660db2d7d61a21a +#: b08abb3cd6fc4860a1f83cd4c1170a3c msgid "Increase the version number in ``pyproject.toml``;" msgstr "" #: ../../CONTRIBUTING.rst:268 -#: 890472c21a7e45818da93791068acd0f +#: 63d21e79c3aa4ea6a429ee9f13bc02c0 msgid "Commit with ``git commit``;" msgstr "" #: ../../CONTRIBUTING.rst:269 -#: da47fe881bd140a0948a1b71ca9d197f +#: b4a13e4ca8014f0d94839d120eb688ac msgid ":ref:`Build the packages `;" msgstr "" #: ../../CONTRIBUTING.rst:270 -#: 59e6a194497f40589f9cadbc4819dac3 +#: 2e4b0086842144aaaf814551283e627b msgid "Publish the Python package on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;" msgstr "" #: ../../CONTRIBUTING.rst:271 -#: a76e7b5698e146a3aeb30fd210520018 +#: 884e6ae81a394173a952a3be530265a4 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:272 -#: bdbcc97321eb4f72a89ace044fa421a6 +#: 8d4994ae23d7455d843417dadf238a50 msgid "Publish the Python package on production PyPI ``uv publish``;" msgstr "" #: ../../CONTRIBUTING.rst:273 -#: 0cad7a4363db4ad7be4b1c69bd9b9565 +#: 3472dd52be994fa385413a0ccc8b8d52 msgid "Tag the commit with ``git tag XX.YY.ZZ``;" msgstr "" #: ../../CONTRIBUTING.rst:274 -#: f4131a01f96f47ceb519fff58f04cdde +#: d1d5e9dbb5144250a70967fed4b5bcbc msgid "Push the release commit and the new tag on the repository with ``git push --tags``." msgstr "" #: ../development/index.rst:2 #: ../tutorial/theming.rst:41 -#: 251b13c48d7c45e396ece3afa11d1117 -#: c8f8e1a3cc0c4b0682b294c0365e4066 +#: 76f2b8f42a6a49ac8461bed57306f9a3 +#: 78f0585bd8c7463c9e752e7fb3b379ce msgid "Development" msgstr "" #: ../development/specifications.rst:2 -#: 96ee3e14640c49b588c8a3a6c6bb423c +#: fdda3a903fa54416b8017afdd8dc2377 msgid "Specifications" msgstr "" #: ../development/specifications.rst:4 -#: 0bf2bc1ec2174018bbc542700bb9bb46 +#: 4b7d870921594e40ae916e38a07ad3d8 msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers." msgstr "" #: ../development/specifications.rst:7 -#: d7ee7a9d1e26465d9ad42f0c460b119c +#: 3c0c38437a5d4a72a6561b18b8848b19 msgid "State of the specs in Canaille" msgstr "" #: ../development/specifications.rst:10 -#: 6791ab3eb6e64041be2335a730c14f10 +#: 856ff4f150494ae3a187b4f6fa3e181b msgid "OAuth2" msgstr "" #: ../development/specifications.rst:12 -#: 71969c5c0a46441eb454fa8012a891aa +#: 894abbec47df48d2b2624cd0fb47c6af msgid "✅ `RFC6749: OAuth 2.0 Framework `_" msgstr "" #: ../development/specifications.rst:13 -#: 9003d08df9694e6c926760d7ad32d4d7 +#: a082f3f83b73466e9ef01416aa057cf9 msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" msgstr "" #: ../development/specifications.rst:14 -#: d55b5f67e40b4e89a8892f270d7396be +#: 548ca5c5482c48089722adf417eb6ec9 msgid "✅ `RFC7009: OAuth 2.0 Token Revocation `_" msgstr "" #: ../development/specifications.rst:15 -#: 81654dc31d06424099737c93902d6e84 +#: 68d47ff4328d4754950033455621fab7 msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants `_" msgstr "" #: ../development/specifications.rst:16 -#: 5a6793d134b64922a97edab7a7a76eb9 +#: fd9f4743a2c24c2ebde5e29163a6378b msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" msgstr "" #: ../development/specifications.rst:17 -#: 88e74731c2c94a8cb45c65dac49a073c +#: 7368ebb429c741f5b704867583306aeb msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol `_" msgstr "" #: ../development/specifications.rst:18 -#: ef4ad908808344c3897d3a3531e023f6 +#: 56c0fecc41544191827416a5a0a1ca08 msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" msgstr "" #: ../development/specifications.rst:19 -#: 6062417bf0f344ed83c1cf676f16b81f +#: 1a97374b745246f88379423040aa29bb msgid "✅ `RFC7662: OAuth 2.0 Token Introspection `_" msgstr "" #: ../development/specifications.rst:20 -#: 09bfcb5f91e04f13b1f063314f6344ad +#: c173bd10cefc4ac1a07be73901ac501f msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" msgstr "" #: ../development/specifications.rst:21 -#: 9826b1a42563407a9e9c03a1d71d50ce +#: d3b5c37f98e64803ba5a396b7fc35123 msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" msgstr "" #: ../development/specifications.rst:22 -#: 012463a90a544597aafd942b0fe204ac +#: 92b56b54894547aba08548355b92dcd7 msgid "❌ `RFC8693: OAuth 2.0 Token Exchange `_" msgstr "" #: ../development/specifications.rst:23 -#: f1fe2c748b0d4db286fa025136d532c3 +#: ef8935d2600b494eb3ce38113ac541af msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens `_" msgstr "" #: ../development/specifications.rst:24 -#: 060ea2f8c85f4c23a7da00d105a72d83 +#: 6b932f526a5a42e496a73453f5326795 msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" msgstr "" #: ../development/specifications.rst:25 -#: 4696fd3ba17a45c58e0052bc11937050 +#: d71b1116835842f6951ca8bc99821e64 msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens `_" msgstr "" #: ../development/specifications.rst:26 -#: 4bb7848a505b4f05bd9fdcbaa667795e +#: 6dbf2db9719c45cb977203df0b6577e4 msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" msgstr "" #: ../development/specifications.rst:27 -#: d8f5453b45cb41fcb730d697663e44f7 +#: 90a6724fc98f4d0eb567984349359b5b msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" msgstr "" #: ../development/specifications.rst:28 -#: fa4b6ba1d99b4124ae4d5616aa08f35f +#: b2997a3f5af44f52a799a939f1d956c1 msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" msgstr "" #: ../development/specifications.rst:29 -#: b872aea6082544dfa475182fca2ead84 +#: b474dc9db85f471a9e2fab50182fd167 msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" msgstr "" #: ../development/specifications.rst:30 -#: 2db53ca0bde44a3fb403b76abc37b58b +#: 45217fb27fab4fd49abc4266c2d1e501 msgid "❌ `OAuth2 Multiple Response Types `_" msgstr "" #: ../development/specifications.rst:31 -#: 971da05dc0844c4aa19194458a59c931 +#: 3d999f1d4f5a4a90b0fa3765475737f1 msgid "❌ `OAuth2 Form Post Response Mode `_" msgstr "" #: ../development/specifications.rst:34 #: ../features.rst:250 -#: 111a632c3bf948e2bd2bb2b981cf5ef7 -#: a07744ce5ee44e6fb19c4eb8b81a36b9 +#: b2cc5a88feec4d4ea2c48d1230bb13e2 +#: e6442f1d4f1f49ccbdb92b0bd030c8e9 msgid "OpenID Connect" msgstr "" #: ../development/specifications.rst:36 -#: 5f1313897de24f8fbf00d12108cd92a7 +#: 3fc7c4b66a024cc6b8b88f88233a7268 msgid "✅ `OpenID Connect Core `_" msgstr "" #: ../development/specifications.rst:37 -#: 2976f7e62f374d78bfd6363518747bd7 +#: 5d549ee76afe4f40911f6d76f6370a6d msgid "✅ `OpenID Connect Discovery `_" msgstr "" #: ../development/specifications.rst:38 -#: a3c4f9c4778443509985c03286c8f0f0 +#: 4efefe17e757415f92e1940b15427130 msgid "✅ `OpenID Connect Dynamic Client Registration `_" msgstr "" #: ../development/specifications.rst:39 -#: 3e9444f4adac40f7af058e10ba5a3440 +#: 4a49bcd1f8284ad1b1266b98a76e4ddb msgid "✅ `OpenID Connect RP Initiated Logout `_" msgstr "" #: ../development/specifications.rst:40 -#: 944eb1f88a95436e81fb406dbe2eb2e6 +#: b25cb5ce704745a0ae727d6a9d8a56ea msgid "❌ `OpenID Connect Session Management `_" msgstr "" #: ../development/specifications.rst:41 -#: 7c0997354b974b56acb34bf05ef138f0 +#: c0b65b39149341bfaec3b6f89082d81e msgid "❌ `OpenID Connect Front Channel Logout `_" msgstr "" #: ../development/specifications.rst:42 -#: ef72114fe6af496b83a362b50fe86fbc +#: b932b17909b74cc18f3d130515710b4d msgid "❌ `OpenID Connect Back Channel Logout `_" msgstr "" #: ../development/specifications.rst:43 -#: ed2ecd89b8624d44a9f23f9657b777a1 +#: ff7efee6683643e2b5ef38db7a8d14a8 msgid "❌ `OpenID Connect Back Channel Authentication Flow `_" msgstr "" #: ../development/specifications.rst:44 -#: 3959e690a6fa437e81673a5e5a590404 +#: 7e315c49888d43929ae4f8faf26d608d msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements `_" msgstr "" #: ../development/specifications.rst:45 -#: 9dd34e3571ea42fa8af2e63045d20a60 +#: c0078ae3594249c9adc4812f3fbf4769 msgid "✅ `Initiating User Registration via OpenID Connect 1.0 `_" msgstr "" #: ../development/specifications.rst:46 -#: e4b3ff9cd31b45e5b52382ae321854cf +#: 013b7e48f5a7494da97fa19a474a3d66 msgid "❌ `OpenID Connect Profile for SCIM Services `_" msgstr "" #: ../development/specifications.rst:49 #: ../development/specifications.rst:108 -#: 96ea4cdad4f442f4a3b4852c819f2e96 -#: 12898ab1c5d641f68199396339ea0294 +#: 015dfa496524481fbc851c3c79cd2e3d +#: efeaca393bd64a7794ebb6c638034754 msgid "SCIM" msgstr "" #: ../development/specifications.rst:51 -#: 797f2628958a458c870b663a2c71dfef +#: 631540d9dec649c8b043291599d2e483 msgid "Canaille provides a basic SCIM server implementation." msgstr "" #: ../development/specifications.rst:53 -#: 02a98f9951cb4b7287ca74fc149b6482 +#: 13b7877bd4824ff1883f8f652d22a87b msgid "🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements `_" msgstr "" #: ../development/specifications.rst:54 -#: f5586fba99484e3eaaf65f7199cd1bd1 +#: 3995956ba55e4026ab19c4fb5756b976 msgid "🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema `_" msgstr "" #: ../development/specifications.rst:55 -#: 80690f0041aa48a696f43d2fb903afdf +#: ee9263a1ec08418cbd7a3939d1415542 msgid "🟠 `RFC7644: System for Cross-domain Identity Management: Protocol `_" msgstr "" #: ../development/specifications.rst:57 -#: 8763fa0acf4e4a10a8b68f86b51e912e +#: 6a134f5786c74ea18d3e31dd8811b3cc msgid "Client-side implementation (i.e. broadcasting changes on users and groups among clients) and advanced features will be implemented in the future." msgstr "" #: ../development/specifications.rst:60 -#: 97b7503e38944cf883bdee693819672e +#: 9947655d359441e4b3237d5229c59eae msgid "What's implemented" msgstr "" #: ../development/specifications.rst:62 #: ../development/specifications.rst:83 -#: 39c6bd986fdd497eab0168dd3a5c8fff -#: 3148bad3a8154fc4b9b9fa759eba2ac5 +#: 2b009f4a53014f54bc1c40d137a4bb6c +#: e6ad6081b71b4cabbe23ba0a9fbca539 msgid "Endpoints:" msgstr "" #: ../development/specifications.rst:64 -#: 345de78aea184a3a8a83e9bbf246d77c +#: 8397e99b34014d59ae9d6769306c816f msgid "/Users (GET, POST)" msgstr "" #: ../development/specifications.rst:65 -#: 3867afa64b7e4b6e8dfe080a5e413c63 +#: 3284cffce4cd4e4cbdb9c91b1ec485c4 msgid "/Users/ (GET, PUT, DELETE)" msgstr "" #: ../development/specifications.rst:66 -#: d7e05ae84e4e49dd9081f463233d57aa +#: b85c5f93acbe435692553717c811aceb msgid "/Groups (GET, POST)" msgstr "" #: ../development/specifications.rst:67 -#: 3ac53fe0b44b48aa8fa9ee818538df9e +#: 829fb71ef44446219f7b6d056eebbff5 msgid "/Groups/ (GET, PUT, DELETE)" msgstr "" #: ../development/specifications.rst:68 -#: a52c00e498e54c3ea95ec0eb2890650b +#: cb9e787b144c43d1b7fe67c85f328db5 msgid "/ServiceProviderConfig (GET)" msgstr "" #: ../development/specifications.rst:69 -#: e5f6c215c0e34c72862fb029f57f67de +#: 201c6c21a147417699251e8522a9389a msgid "/Schemas (GET)" msgstr "" #: ../development/specifications.rst:70 -#: 577f9982a66c40e0817f819d67a6b5ed +#: acc1f6a7573b4f71b347780dbef6e5df msgid "/Schemas/ (GET)" msgstr "" #: ../development/specifications.rst:71 -#: b685da7061f14b098f8803ba9c21fbf3 +#: 2c93292cc83f45b086fbc05084e8a2ce msgid "/ResourceTypes (GET)" msgstr "" #: ../development/specifications.rst:72 -#: 30b337a0046d44f3ac532962a9181046 +#: 5adc117f9cf849ed9aef795a813b7c2b msgid "/ResourceTypes/ (GET)" msgstr "" #: ../development/specifications.rst:74 -#: 74981204e3d4454b9b18e5551abeef5e +#: 1d4705b3fbc44230add19cff60f5fab5 msgid "Features:" msgstr "" #: ../development/specifications.rst:76 -#: 44136dd3342743efbf144f435f6722f7 +#: 177fbaf45a604576ac1738a69ec09dd9 msgid ":rfc:`pagination <7644#section-3.4.2.4>`" msgstr "" #: ../development/specifications.rst:81 -#: 52a4b989a2784210858ca11ccc81ac6b +#: 7ca5f92e25aa45b59a7f2211d843b652 msgid "What is not implemented yet" msgstr "" #: ../development/specifications.rst:85 -#: e826bedfc9214eb3aef3b914fbf92967 +#: 6a1166e177f44c5985ee2fc1cfed93ee msgid "/Users (PATCH)" msgstr "" #: ../development/specifications.rst:86 -#: 162a54b9a5604971880914176803c4ca +#: 391660c64385420d92a1e63367acdfdc msgid "/Groups (PATCH)" msgstr "" #: ../development/specifications.rst:87 -#: 26a0a7c0762d4fa2819027b5d2b51235 +#: 0d7183ce9b46401bb045887381f68170 msgid ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)" msgstr "" #: ../development/specifications.rst:88 -#: 78a9edd638824d57b1da6138192ce204 +#: 1c102ea225af4e63a0bf05d30982b3f0 msgid ":rfc:`/Bulk <7644#section-3.11>` (POST)" msgstr "" #: ../development/specifications.rst:89 -#: 4c655095b4604350aa841523a41c4348 +#: da647706baa940dfa731737e72fbde3d msgid ":rfc:`/.search <7644#section-3.4.3>` (POST)" msgstr "" #: ../development/specifications.rst:91 #: ../features.rst:9 -#: 4dea5b56a6ec48afae05125727963784 -#: 1b231f864de64cd09a31f512403251ab +#: 4fd36fc269d4430cabd6d522edf0b8de +#: 82bdfece012540ef9692bf15a8892ecf msgid "Features" msgstr "" #: ../development/specifications.rst:93 -#: 7ff8653a3197418db449707910c19fd3 +#: 04c25b4d8ca34ae994b4562f60262504 msgid ":rfc:`filtering <7644#section-3.4.2.2>`" msgstr "" #: ../development/specifications.rst:94 -#: 314956b2a82041a3804e9c7a040c8f49 +#: 181a161cb3404b3da483eb64b510c267 msgid ":rfc:`sorting <7644#section-3.4.2.3>`" msgstr "" #: ../development/specifications.rst:95 -#: 23743ebcfad54ad192d679fe7cb3d471 +#: 6d9fe18f59c54e2a913250323142d5d7 msgid ":rfc:`attributes selection <7644#section-3.4.2.5>`" msgstr "" #: ../development/specifications.rst:96 -#: 76d5cdd44ba146feaf31c6f2eaf8df18 +#: d4ea6d723316408b8285b6886e76a21e msgid ":rfc:`ETags <7644#section-3.14>`" msgstr "" #: ../development/specifications.rst:99 -#: 1338ec9997cd47e1ad4009ca0a2195f7 +#: 316876044a484c958dfe5caae8e183d8 msgid "Comparison with other providers" msgstr "" #: ../development/specifications.rst:101 -#: 515a34ef854042a6b307b1b6579d7a1d +#: 2f795da1bda44ab1a9c9f1bca55dd3b9 msgid "Here is a feature comparison with other OpenID Connect server software." msgstr "" #: ../development/specifications.rst:103 -#: 7487f688beb644a0b0abb0119254ea85 +#: 9275708c917345928518c68e82dfe4ca msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple." msgstr "" #: ../development/specifications.rst:106 -#: d890ade07ba145f1874483d46e5d4dc5 +#: 288829330ec741ebbcbf220861b2218e msgid "Software" msgstr "" #: ../development/specifications.rst:106 -#: 80fe90dd3d604564843a1251b7f863cc +#: d15646e4fb95434c97c89d791fc97f04 msgid "Project" msgstr "" #: ../development/specifications.rst:106 -#: 550be9612c6b458b83c374dfc579a917 +#: d71fb97084d9494ea9aacaa86a6944e7 msgid "Protocols implementations" msgstr "" #: ../development/specifications.rst:108 -#: 6c9ac28132984c0585a6815b5de6cd9d +#: 02b24e0fb6a841cbbca2900ccd75d28b msgid "FLOSS" msgstr "" #: ../development/specifications.rst:108 -#: f40f2e6d15b24d89895f7aedae7d659f +#: fb08b0a688284094b84aec9394eab37c msgid "Language" msgstr "" #: ../development/specifications.rst:108 -#: 3016646474e74c079062369813fbd779 +#: 0336f1ef48604d07a837bde8179b25a0 msgid "LOC" msgstr "" #: ../development/specifications.rst:108 #: ../references/templates.rst:48 -#: a02f1ccf0d57420b84723b5df2f99d7f -#: 64dc33457e364e04b2089f5c62308bb5 +#: e0606aab7875458fb4bf4b2e35902785 +#: e7b502e8c1af415fbf415f23272c20a8 msgid "OIDC" msgstr "" #: ../development/specifications.rst:108 -#: 9033cca9097645f99accd539211445fd +#: 11dac6fb8c7f42f78dcf72373a9c5b19 msgid "SAML" msgstr "" #: ../development/specifications.rst:108 -#: 350a722d4f7b4aeeac6ee7fc1e594a9e +#: ce283240e3c443c2b71f0c1b4e9d19f3 msgid "CAS" msgstr "" #: ../development/specifications.rst:110 -#: 06778f932c7944d283b4386f1e4fbfb2 +#: 6b459cdbe9d74113a716ebfd0199286c msgid "Canaille" msgstr "" @@ -2814,81 +2826,81 @@ msgstr "" #: ../development/specifications.rst:128 #: ../development/specifications.rst:130 #: ../development/specifications.rst:132 -#: a672eed68a6648b8b07b86ee9c951fdd -#: 4c5fa19de9b74b798eca3a78e74e2b05 -#: 37948ea3090e4ae38d3e65ea942fa4fe -#: 3a995d8bdf184b6fb7d82d8a763b6a73 -#: 1b2b5e968ab74adc8cf95499509f57b9 -#: 789c60c41e5a4542b87d3ab5676f3e2f -#: 0d8246d63067403999883e117128bddb -#: 2eb7a82eff1f4548bf6700b210e68ae2 -#: 1afe81b9fb5a44af90eb06d3c1f63312 -#: a48683cad89f4014b068efea03c4e4b1 -#: d63aaf9793ee432fa181808f72cbb446 -#: 4f5d3a01c4624fd79ae3547e0843bd17 -#: 656d0a8fdb284eb9823a9cbf2fac3e8d -#: 86e6017ccc704a2a8dde6790d38e8ad9 -#: 3ccff499913f492ca3c23dc94b13fd3d -#: b79c197a1bb54f91a03db3e2b086d263 -#: aa891c2058f9486d8b86b5c02a0f3156 -#: 98f184d7054b43cdaf01fc516918ebf2 -#: 14ad83e612e543439451e9a04d6c8701 -#: fab25508de414c56b1ae87ae5798bcd5 -#: c56cb501b3864fa8b7c8093f6cc5659e -#: 4b5c465453764a24b0340a622d913043 -#: d5afee46770140c2a6e6631f01fbce41 -#: 8b0c2846c24d419596c58ae527744c85 -#: 2c940ae8af5a400b9684fa99f9c637d1 -#: 6cc418c423d14d00b418bf8de236863f -#: 5e1f056f06394fcd991271cd7fc991a7 -#: 3f125792956e43648cf09275025e7b7c -#: 0b84a8de1ace45c08c2366f5fedc81e1 -#: 58661a5db5e94727b58ccd2d04dd9af8 -#: d56ca3faaa9a49c1ba78a22d4235ca50 -#: c5e479f769fc47d7bd3bbbefa3700271 -#: 3e527c54b6754156a2a78ee1da07a80d -#: f3bf6fdb60754d2192304ab9dd025db4 -#: edae6bff28d140f0a5b67553e3f02073 -#: 7cea25d8e45f445b8550bce14ecc5578 -#: a85372d608684b3e897f0b6671982b4e -#: d1493ff6d4994e49aceb08a2b15a9e43 -#: 4b9ab0f31ade418f80906984df1630ff -#: 11e8874c14f745d99d9e3f0fe63c94f7 -#: 33def661112142e3bda4020f695375d8 -#: 325f7cb312514602b477595b7c289b97 -#: 24e073e6895644acb5b1c31167f5dd52 -#: a9c1ff99aeaf4584afe45f468226ad4d -#: d4a55313b74a4bb38c5a3f3fafd23ad9 -#: 78bdde668a344d84903dcf74c6174aad -#: 761a9b1507824f108e6dcac21aa21f72 -#: 75aca48f4cb94e98bfe44d711ae7ac65 -#: cabb024aa18746b79d78ed93bd11d30b -#: 48442dfcc93b40a481008fdc9471b065 -#: f95983c94bc94095b7c98283e7cb1cc5 -#: 0e43735511ba407aafd676a3b45ec4cf -#: 764aa440e449431f9ab59f365b5abfe9 -#: 105fd695133c4d8e87119588166e7e49 -#: 9adafe4ec8954d7e94cd3bed435bb079 -#: 4dec75f067724b5da975f318f81bc19b -#: c2cc5c0c4b1e4411b8f5047f9770c0e5 -#: 5235c409053b4fc7821bf1dcc49d39f6 -#: fbb298ba34bf4aa093deb2cf7951570b -#: da6ae05ac7184b08ab6aad3792914a94 -#: ba3fe82f35c24eb39e415a70e94c39f8 -#: 37f0c761157f448eac5bf8192bf6fe21 -#: 3f81cb8629bc48a0aa4e48e2d8cb4491 +#: 7a6ba5b2c0cc436a8266b9730350697b +#: b208c74c31c6499bb73b1baf9db085da +#: 9068d56a59e24776a8dd2fe9736d781e +#: c200384f58a144cbbdbf8b92e1b5bbad +#: b390e3c1f14f472f9ec685ebc71362e3 +#: 1481c51c40994c4bbe2cba76f56b7c61 +#: 6d800f7231254f6f9ff6c5a771b86e0b +#: 7aebe94dde1a45ee925d5549adb75a0e +#: 71938789900d4cec9a8d46e03f8dca07 +#: c7e1f7b496d9460c8ec47aafa4b90744 +#: bf1e212a73dd4687915638e7ddb78ca3 +#: ebf18223754e491e9930042d58a77729 +#: 360b41438293478b96696e1ea95af26f +#: 15eee6a4cd374d42b5665f394704c622 +#: d1fcd54e504b493cb31337fb3ced92db +#: 86853c9ad55b4ed983ca0e935c45a607 +#: 69c0270ebd764bd683d552cfe020a98b +#: e282048b59ac49928c9903febccf7757 +#: d6d667c39ce94289935b51e639dda6b9 +#: 2bc508949dc64b61a5f958a2df473e13 +#: d5e16c698fee430486ae3aeb2018b08a +#: 616bb1aff7a34305aea2bba72206d5ef +#: c4589d4dead04396981a10d9ff467cfb +#: 84a2ce4991c8403384ac5aeea2af5c95 +#: b972381b1f8f4e57b3c36a57c4bead7a +#: f949121f499e40f2a72c260ebae07104 +#: 31922277c74d49c2bcecefc6abda46be +#: 65c44eb91692486eb8921321a33c3e74 +#: fb7ca96e30db43f89c6432af8ef48e2c +#: 95d9ccc387c548e9b2ee113e5f069f18 +#: 445999f5918a48cda642f6a08ccdd386 +#: f578194f4c994dfda367a848611fb311 +#: e3633082fba2422398e7d6e03a756f6a +#: 3321ae63a00b43f6a3dfc2e66c4cd2b7 +#: bd58cfb4fb354fecbd8be7e6de821d9d +#: 055843b5715e4699959e10142ce9ac72 +#: 414f48fcd3de4c4e830659e9964d0d45 +#: b9b0d89ceaf44043b23a4df14882d543 +#: e4fb0deeb2c74056a5f764d57204aeab +#: 4aae64cf3db94e7881f89fc8c2cd6d2f +#: 06e65cce697a448185e466e67e07dbaa +#: 2e8f55f3d1804c6781e723897df2decd +#: 2124ba1fdfea47b9b8504c0bda7336cd +#: 2afbad3ef17c4baca1e3864bccecb8dc +#: 5dd8fbd0f47644f4b57f7af0f66c179d +#: a026402ea70b432186ee2e356ed55a91 +#: 6bc37123e33f414fac05e2bdbefaf8ca +#: d18a3946641449798497b6b4377024d1 +#: 1d98d51cd12d4438907ded644ffb4796 +#: 3a9c7bc5133e42e2931b67d9e4c47595 +#: 25ac8d8a7d1741bf9dad21379d8ca743 +#: 38a6fc1ff2354d77ab61309e3dd7e15f +#: b29a8355829342a1a8191116f0f9719b +#: 82e045f855d345a281cfa607399679cd +#: edc19f5a4e244bee9ea87640e8172400 +#: 771d0d47e9f64f36860330b4db8a4c9a +#: 67aab6eb588e4879a1e2d794b874e62a +#: 7a38b36f33bd46fb97e320599f4997b3 +#: 4a82199137ec46bc98a6d52f8b41bb88 +#: cde0fed6b34149cdb1e4e35cb72f3c06 +#: 6c801467bb334652a50bd220104dd7d2 +#: 2d39ac234a884155bb9e72ddb54e1d42 +#: 71d38e8d523b485f8997ebc4247178ba msgid "✅" msgstr "" #: ../development/specifications.rst:110 #: ../development/specifications.rst:116 -#: bbedeb7ebd3e490a931aab03afeccc19 -#: 37cb8fbca2ca4ae8a237e10939056082 +#: b95bd3288bc24d0486a6df9ccd0efa0f +#: 298df03f69ba426a9796099cb44b62df msgid "Python" msgstr "" #: ../development/specifications.rst:110 -#: bc9db4e4268142d69adf3941fb2d8ecb +#: 57df16b94b194cccb803bf86d95c6ade msgid "10k" msgstr "" @@ -2902,34 +2914,34 @@ msgstr "" #: ../development/specifications.rst:126 #: ../development/specifications.rst:130 #: ../development/specifications.rst:132 -#: 4e73a42d55484ee7a0c5a8982efe20c5 -#: ebc4052eb711482fb0edb937a69f7e47 -#: 262dce25243b4c499355bfec0017fdff -#: 4edb7ba40afe4e04b190eed2ccbd79d5 -#: f22e48982000455686d09301e9ba211c -#: a06e151ad20f48058d5dcf2c08e4f4c1 -#: af7cf7c7a8c24e4293d1947963cfedf0 -#: 29203f5eba0642148f36be563c82f69a -#: 44dba9661d0b425ea2a4533f9064feee -#: f36b795fd7f34ada96ba236e2cfb98c3 -#: 17c78642db534858bef7d333200a2faa -#: e82db07a9ae34ea7afe5ee682eee6384 -#: 21b4feb3d0cb4c6f96e9301a679a3cdd -#: 3546882678a94ebfb42c4a90a2baa6ba -#: 785d5c75717646bf988a880b2cb776cc -#: 2358b583ba8c4a28992f34b0c8ec0828 -#: fe01031edbb64bbe955b1e25951e6dd0 -#: 1a026032e1754866a1a7cf2b355bdadb +#: 42d9508312f646f6bfcef6f39a8801b7 +#: 3971451194014cc9bf1d0bd21506cbb7 +#: 3e8f320cdb8344f99547c1da2c08e67a +#: c1ef434a84a54f0a9bc23dc634016fa6 +#: 6978f18c9f094afa8e0491b965877538 +#: 6ca9af32670c47449f80bf350bc9cc52 +#: a57ee5942aca4770b2b9029e9760206a +#: 2c2dd0fd1c0f43f39b06105673ebdff2 +#: 4a88b7b5b14b43c89b0970ee274cd886 +#: 5dfbb67cd80643c8ab55000b5ed30738 +#: 70669ed94b174e248d47114700a63d69 +#: 67e7799d66df412b8151d18c2dd71536 +#: fa150dc5f87a4733aee3274974173111 +#: 85551b06f9b0470b86937e526b7c4aa4 +#: b9f6949b94ea4116b788a387da3573b9 +#: 45c5d7bc3cf74bb8a9bdfaab3f262114 +#: 2c57f943eb324dd88916d638d075e167 +#: a29158da97d04f5c8e8fe08288f72f49 msgid "❌" msgstr "" #: ../development/specifications.rst:110 -#: 2a08462402e5483083ad1e22cdbc82b4 +#: 8406dff2c0724f0bab8d8083d0eea01d msgid "🟠" msgstr "" #: ../development/specifications.rst:112 -#: 09f099120e8443e5ad6b0b232ddfb0dd +#: 82ccaceeff2f4c8a816c9cc6f86ee632 msgid "`Auth0`_" msgstr "" @@ -2937,204 +2949,204 @@ msgstr "" #: ../development/specifications.rst:122 #: ../development/specifications.rst:124 #: ../development/specifications.rst:132 -#: 45cb05072cd74220871d60b125fe5872 -#: f4544cfcd8554bad913d681ac4e53844 -#: 70eb109de72940238086dbe4e5bce782 -#: 79199870cafe4d77ba07171caa40a275 -#: f359aaa780ac43e6a9dbf6ab5f285671 -#: e968215dd82742aca6b4c6b8f8bcb9fe -#: 7fb4bb8627e14101b795b89819b9e56b -#: 063247ea2af9464899cc30e6b42b30f4 -#: 1a37339d128d47b696af14e0720741ca +#: df42b35b96f84b5684212c65fce4ebc9 +#: 2b1d89df4f104040a607e0a67e63f659 +#: 71d53fcd7c6741b1b6f010a93dd24aab +#: e70b71350b734b9eacccab4240b36fec +#: 831951bf505e4537837ef1b0c544de52 +#: b3a5c98f9a104c69a3123493976eb1a9 +#: 13e378ec661d4ff4993ee7f02a6b90a6 +#: 2e00e210d16b4fdd990e8c36b7d97247 +#: 9a8e41cfda7840f08c7357bd8d89d2dd msgid "❔" msgstr "" #: ../development/specifications.rst:114 -#: b6f53966c3784bcb8af9af52df850cc3 +#: 80abd56f8c1a48ee9fbd9459e97d4d08 msgid "`Authelia`_" msgstr "" #: ../development/specifications.rst:114 #: ../development/specifications.rst:118 #: ../development/specifications.rst:126 -#: 8acd1a6d306643e39826d55b0ef04779 -#: b41b7a61c1ba4548888c63c9da4723a8 -#: 43926f987bce425982631ce46f3120ee +#: af2dc894fb664779bdb24c04fe60be3b +#: 3630e5dd1cc342169c40e52f164cc2aa +#: b64c33f65e0d47d6bbb062ac4754f91f msgid "Go" msgstr "" #: ../development/specifications.rst:114 #: ../development/specifications.rst:126 -#: 1818ae5074094a3f8ae3f7d56a4c4ab0 -#: 3114225edad64055a2cfad51d18ba1a9 +#: 49eee60eee3641e5a20b18b82895525f +#: 5cb30cb0ed1649ccb117c4d56be445bb msgid "50k" msgstr "" #: ../development/specifications.rst:116 -#: 7754b994a6d5492fa81d217196a5641b +#: 9ebc7a285db24a59b0f7d0c058075837 msgid "`Authentic2`_" msgstr "" #: ../development/specifications.rst:116 -#: 330afc91f0e84b88ad46e8b403c06472 +#: 1959a87a3ce94fe6bde179ac95f4c24b msgid "65k" msgstr "" #: ../development/specifications.rst:118 -#: cade88c56a7a436aa0e2df01485818f6 +#: bfc14ca4230e4b208e862b717132013a msgid "`Authentik`_" msgstr "" #: ../development/specifications.rst:118 -#: 09df77787415419291917d1eae8b9878 +#: 1cda05a418c7414fbda91d1737663a52 msgid "55k" msgstr "" #: ../development/specifications.rst:120 -#: 610a4f66fd80466095f52758cdda98bd +#: 8a72bf84e124493eb181b267e1e9ef25 msgid "`CAS`_" msgstr "" #: ../development/specifications.rst:120 #: ../development/specifications.rst:124 #: ../development/specifications.rst:128 -#: 49c4791786af470583bff8185554c2c8 -#: 8f44c07e64364f6abe334f5ec12795d2 -#: b7980664af534861b31853976d0ba357 +#: af64aae3898846d3bf50300d01a487c2 +#: 611398b4c84c432883ecdc092df64d26 +#: 791ee06245c24b50a5bf91ac1994767a msgid "Java" msgstr "" #: ../development/specifications.rst:120 -#: affa5518e11c44fda71ba25827089643 +#: 2238afad1e00483a95db77df241a474a msgid "360k" msgstr "" #: ../development/specifications.rst:122 -#: 64e73163683b420c9b5076a5c74839a9 +#: d45c1cd2e7cc4bb3a2f0b669c415232d msgid "`Connect2id`_" msgstr "" #: ../development/specifications.rst:124 -#: d1735fc5ce3c4d32af95a90848eac188 +#: b526a69bf62d44c2965aac65f9a8d5ea msgid "`Gluu`_" msgstr "" #: ../development/specifications.rst:126 -#: 0c664c7071d7456abeb63d9bb113ccb9 +#: 0b690da696cd4f1ab15fd1646ddd9f0c msgid "`Hydra`_" msgstr "" #: ../development/specifications.rst:128 -#: 16c2a3b3db894b158992d282b4220d64 +#: 3df183abcbf748e5b2eed75d08fd5359 msgid "`Keycloak`_" msgstr "" #: ../development/specifications.rst:128 -#: cc7d56159ba649c5b42245a7a5835486 +#: 01f52f027ed243428cb3f1ee4290fe94 msgid "600k" msgstr "" #: ../development/specifications.rst:130 -#: 94ce0df518c74bb4b9a32f42ebe575a5 +#: 6e9018524c46446f8a5ed2d3ccde266f msgid "`LemonLDAP`_" msgstr "" #: ../development/specifications.rst:130 -#: c191daa793364f1f8de1fb18409640c5 +#: 0ef79fa2bcf8412f894624cb60fd3d47 msgid "Perl" msgstr "" #: ../development/specifications.rst:130 -#: 6ad90d3508f241fabb425daadb5e7fea +#: 51e1cbd71f5a4db2a66b1120b02bef26 msgid "130k" msgstr "" #: ../development/specifications.rst:132 -#: 9c06388eb49149ab85a5be3353e1bcb0 +#: 0952744600ee4450b4c3c20876d8952e msgid "`Okta`_" msgstr "" #: ../features.rst:11 -#: b00cdb3bdfb84ad491c729610a32b4b5 +#: 1299ecc229a74f3a9dd5ddfe6610288b msgid "Here are the different features that Canaille provides. You can enable any of those features with the :doc:`configuration ` to fit any :doc:`use cases ` you may meet. Check our :ref:`roadmap ` to see what is coming next." msgstr "" #: ../features.rst:15 -#: 321b7bc753a143dd99aa7fd25ebdb1a8 +#: 85918888ae72465fab29e0ec5da979f1 msgid "Users can interact with Canaille through its :ref:`web interface ` and administrators can also use its :ref:`command line interface `. Canaille can handle data stored in different :ref:`database backends `." msgstr "" #: ../features.rst:19 -#: 357f520c0ccb4a4c8cec638c6100ccc0 +#: 87cf2680f657445ea0f97676dadd5cd0 msgid "User and group management" msgstr "" #: ../features.rst:21 -#: 871609f028004920a41280d80f25b73e +#: 382a078d2fd8407a834f24a0b0d76449 msgid "Canaille web interface can be used either in :doc:`production environments ` or locally for development purposes." msgstr "" #: ../features.rst:26 #: ../index.rst:27 -#: 36385c0fefa640b2b9f53203e81c2b48 -#: 08fe5f80205f4c35b6865ba5ec03fe1d +#: aa8d3ac37c27488486ba0f5f0089542f +#: 1594e4e443d94e06bc5a0611b517bb9a msgid "Profile management" msgstr "" #: ../features.rst:33 #: ../../:1 -#: 211dcd93dc134368981692f42dead96b -#: 7446657a51b64fc3a6bb972e24ebb78b +#: b02dcdead86a467ea54349c6b03fb4ab +#: 36404114eb5d4cee8ead572d812cddd4 msgid "The user profile edition page." msgstr "" #: ../features.rst:35 -#: 5eb83a6a1c4a4523ae96e3c1849c0b10 +#: 7cfd0aa2a34d49f8bcd6a5b46782ab21 msgid "Canaille provides an interface to manage user profiles." msgstr "" #: ../features.rst:37 -#: c08ce6836b964ce987d789de32f35fcb +#: 64af63d2497d49149d9886e3c88911a5 msgid "The exact list of displayed fields, and whether they are :attr:`writable ` or :attr:`read-only ` depends on the user :class:`Access Control List settings (ACL) `." msgstr "" #: ../features.rst:39 -#: 2a26d9ef8f6e41cd9d786f7768d82160 +#: 767873f049ae4622b9056293d7626a0c 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:44 -#: 327d87f881454393be4bd52813d7a59b +#: 5aecd0954a17435aae3dab7df2ac5a1b msgid "Email confirmation" msgstr "" #: ../features.rst:46 -#: ec28fa5f2d3a4dd0abbb1585770e0145 +#: 881bde9cdafd48d6b63e6273975353c5 msgid "If the :attr:`email confirmation feature ` is enabled, any modification or addition of a profile email will send a confirmation mail to the new address. The mail will contain a link that users will need to click on to confirm their email address." msgstr "" #: ../features.rst:48 -#: 17c35c752d904d85b6d69f3b3fe1dcae +#: 712e6936260e45f6859e7e8e5b73f0f8 msgid "Users with :attr:`user management permission ` can set user emails without confirmation though." msgstr "" #: ../features.rst:53 -#: 4c067bb7b7fe499c81a2637752b0de35 +#: b9ffc8db30164af28978b4982a24ec9c msgid "Group management" msgstr "" #: ../features.rst:60 -#: ea54e4418dc44c19bf436fbb4dab4404 +#: 1644b54cef5745b1a581065ba51e0969 msgid "Group edition" msgstr "" #: ../features.rst:62 -#: e1982e21585c4c85ab022d91547be64b +#: 0b4c9a7da63540bd8105cd1f78a6ce49 msgid "In a similar fashion than :ref:`profile management ` Canaille provides an interface to manage user groups." msgstr "" #: ../features.rst:64 -#: 8e52bde2e38644ab8f5cc95fbb80a4b7 +#: 4b238303f6f84fc0ae1196cebb9a3d84 msgid "The group management is quite simple at the moment and consists in a group name and description, and the list of its members. Group membership can be use as :attr:`ACL Filter ` to define user permissions." msgstr "" @@ -3142,774 +3154,774 @@ msgstr "" #: ../features.rst:87 #: ../features.rst:162 #: ../tutorial/provisioning.rst:9 -#: 2d1a147625e74ddaa016cf5ae1849bed -#: 249606d0ef5a411ab2b9299cd20d096e -#: 3a069d9711e844aa8b7b7d9b09626dc6 -#: aa96b400f6284bc9ae0ba757136554ee +#: 735bc797a0fe4ba98742999895a18b86 +#: b2a2a756d3224b9cb3b6d8a727bf936b +#: 024d61cbebb14d83b6893fe8debb4ccd +#: cb293a06bb4142b4b6e0a07dd5fef3b4 msgid "Todo" msgstr "" #: ../features.rst:68 -#: 0b6214d19a84442288b147236aaba96b +#: 48d910bfd7124145b745516d6104a6fa 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:70 -#: 310e3dafd6db410f99c5000b8df11140 +#: 7047c87a748641548cec6614d43a2f2e msgid "Group management can be enable with a :attr:`dedicated user permission `." msgstr "" #: ../features.rst:73 -#: bd793a2911304161b6fb437aebfa9b65 +#: 57e56305f7e84ebfa99d89ca312e11cf 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:79 #: ../index.rst:34 -#: 5a607c7750b34512b28b761c40921b12 -#: 00282392ca254f4c958eb26c736bf73e +#: 5f4b8c17064749a8b0b4e5b66faab39f +#: ca5d38027b174df38db0d726496cb560 msgid "User authentication" msgstr "" #: ../features.rst:81 -#: 8b00e6da89aa4638b82ebb20cd24603f +#: 730c0ccdd9d543b7ac3a5ef958b0fba7 msgid "Unless their account is :ref:`locked `, users can authenticate with a login and a password." msgstr "" #: ../features.rst:85 -#: b9a491fe6e814c1fa5c6dbc7f0fc813f +#: 54c06db509a64e4bac7130858fcce314 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:87 -#: e2a7649cad4648f3b9c65c5e9b2dd574 +#: 7c8c160ae635478e9b4774b2873d32c9 msgid ":ref:`LDAP backend ` users can define which :class:`user field ` should be used as the login (such as :attr:`~canaille.core.models.User.user_name` or :attr:`~canaille.core.models.User.emails`) using a :attr:`configuration parameter `, but other backends can only login using :attr:`~canaille.core.models.User.user_name`. We are :issue:`working to improve this <196>`." msgstr "" #: ../features.rst:92 -#: 8a648e8464e44d14913c37197a2af14f +#: eeea1d3be23f42d99589da11208d156a msgid "User registration" msgstr "" #: ../features.rst:98 -#: fe054c0ebf474310b19a412a3c7139d1 +#: 167ac2909e6640e9997ac2ee0261d6a0 msgid "The registration page." msgstr "" #: ../features.rst:100 -#: 4b390819f53a4cdab00311bda2ddd08e +#: cb501b37b79a427285d6d21c6ef60158 msgid "Users can create accounts on Canaille if the :attr:`registration feature ` is enabled. They will be able to fill a registration form with the fields detailed in the default :class:`ACL settings `." msgstr "" #: ../features.rst:102 -#: eaa17e005f724a52acdac10918d32ca0 +#: 672effa5dbee48208ade68c5b690fdc0 msgid "If :attr:`email confirmation ` is also enabled, users will be sent a confirmation link to their email address, on which they will need to click in order to finalize their registration." msgstr "" #: ../features.rst:107 -#: ff70004a9d394774b41a36b78d74b3ad +#: 07681f997d064659a4291495c6e7f578 msgid "User invitation" msgstr "" #: ../features.rst:114 #: ../../:1 -#: b020c83510584c988a9b01fe9eafa9e3 -#: b219d15a0f9a41a98bc1ddee55a95f9d -#: 4293bc29504d4805b4ab1190e798511b +#: e47236331fd64f78adbe529acbb4aa3d +#: 7fb360b06c0846228fb44e86abbd7f73 +#: a9326e8a3e1b4c43bc5e566e55d0e893 msgid "The invitation form page." msgstr "" #: ../features.rst:116 -#: 348ca0941d62426282c187a35abc1f83 +#: 80784c631014421da6b3d6d2d30678a9 msgid "If a :class:`mail server ` is configured, users with :attr:`user management permission ` can create an invitation link for one user." msgstr "" #: ../features.rst:118 -#: 24b7fc54a0b74c35810715b7df620c08 +#: fdb21770faef4882936b381acc5cd594 msgid "The link goes to a registration form, even if regular :ref:`user registration ` is disabled." msgstr "" #: ../features.rst:120 -#: 67be6270e7d04227bf16002addbff09e +#: 1eee283dffb845808f93ffe07a1b99f0 msgid "It can be automatically sent by email to the new user." msgstr "" #: ../features.rst:125 -#: 5961e2f5ae654238b85ed38395a39a36 +#: 10ca05c9a97842bb86ccd48abd0e6340 msgid "Account locking" msgstr "" #: ../features.rst:127 -#: 0f5c05f04d68414585e283564441c63d +#: 064d03b7e43c4d3281672dee73480dde msgid "If Canaille is plugged to a :ref:`backend ` that supports it, user accounts can be locked by users with :attr:`user management permission `. The lock date can be set instantly or at a given date in the future." msgstr "" #: ../features.rst:130 -#: da66e4a5609b45d7bff0fd32355cf52c +#: b3e6c8cf27994518afd58584a2fd27c3 msgid "At the moment a user account is locked:" msgstr "" #: ../features.rst:132 -#: 1a6aa341dd124ddebf35d7194310a8d5 +#: 6dc6fe293fb9425e8bd877a7bc03ee7a msgid "their open sessions will be closed;" msgstr "" #: ../features.rst:133 -#: 2679f959d90e4ef3977973f23ded1b04 +#: f60dd82272ef4b1c82221bbf0d8dbafc msgid "they won't be able to sign in again;" msgstr "" #: ../features.rst:134 -#: 2d4742a545804f6c9b7ac5e152957b06 +#: d881acc4623d41369db7d1c9ab7b177a msgid "no new OIDC token will be issued;" msgstr "" #: ../features.rst:136 -#: ee9ecc04f5704e40ac69a87d7543ffdf +#: adf62371ae0d40458220fb82fe9d9dfa msgid "User accounts must be manually unlocked by an administrator for the users to regain access to those actions." msgstr "" #: ../features.rst:141 -#: ea475e3d10254724995b7aedf75204b6 +#: 077a8945d5be45d2b98549ba519df03f msgid "Account deletion" msgstr "" #: ../features.rst:143 -#: 2d33e437db214f34a1bbb0dab2461abf +#: 122296809a684bc4878fb4e17a24d9c4 msgid "Users with the :attr:`account deletion permission ` are allowed to delete their own account." msgstr "" #: ../features.rst:145 -#: a2525a8923f342cabbad7ca01203ffef +#: 1ec92531f64b4282a384807b7c0cc298 msgid "Users that also have the :attr:`user management permission ` are also allowed to delete other users accounts." msgstr "" #: ../features.rst:150 -#: 82a3a183a2e84c9d8dc29302665f9866 +#: 88b80212110a48a7afd05a726b15b700 msgid "Password recovery" msgstr "" #: ../features.rst:156 #: ../../:1 -#: 90497151dcb24dd283a43d39de1f4e5e -#: cd901e62414a4243a2e654cd625d62d3 +#: 442e3d5640ea4bfbbbf7c77180d61566 +#: 62359f0871dc4119801d0f1d8e992590 msgid "The password reset page." msgstr "" #: ../features.rst:158 -#: d441d47664dd422eb9fe8c083c2f1851 +#: 32ecdae0caaa453a9a6b3093f607994e msgid "If a :class:`mail server ` is configured and the :attr:`password recovery feature ` is enabled, then users can ask for a password reset email if they cannot remember their password." msgstr "" #: ../features.rst:160 -#: fa728c2604854daf8cef4f705abe4e1c +#: 91e460781f624279a80ad2e300eadf15 msgid "The email will be sent to the email addresses filled in their profile, and will contain a link that will allow them to choose a new password. ." msgstr "" #: ../features.rst:164 -#: be7c207357584e2aab75a99d4d28e5bc +#: 384d87c6ea3245c4bad6a2f94430bace msgid "Check that password recovery is disabled on locked accounts." msgstr "" #: ../features.rst:169 -#: 855c6e5b489e4ec1915fdd85fc0a86d1 +#: 9a668380dcdf4ab8893ca4787b565115 msgid "Password reset" msgstr "" #: ../features.rst:171 -#: da02c32126da485c86a31eedc7b492a2 +#: 7bf01205445d47fcb8adfed6720c9030 msgid "If a :class:`mail server ` is configured, :attr:`user management permission ` can send password reset mails to users. The mails contains a link that allow users to choose a new password without having to retrieve the old one." msgstr "" #: ../features.rst:177 -#: a7c91da58c2a43c5bbf4b5afe1140d91 +#: 2e4c44ed759946649c63232445d1bde6 msgid "Password initialization" msgstr "" #: ../features.rst:184 #: ../../:1 -#: 3d6bd620d30b4ba5baaddecf4bdefa51 -#: d669f7cfd46343f8ae1f2f491a8211dd -#: c7b7507b1cad4ead91a5c2a9baae1bb8 +#: ea223e0ccc36474487597f68dbbab192 +#: c47e6ab6b8e442b9ac2e07caa59c4a34 +#: b3a0bf4f225f411b968ccbf1b1d528e4 msgid "The first login page." msgstr "" #: ../features.rst:186 -#: 29e1ebdc09614a8ca81f8ef272b41295 +#: c4db7f433a964e0eaa2e56926b236eb8 msgid "User :attr:`passwords ` are optional. If a :class:`mail server ` is configured, when users with no password attempt to sign in, they are invited to click a button that will send them a password initialization mail. The mail contains a link that leads to a form that allows users to choose a password." msgstr "" #: ../features.rst:193 -#: e2bec66d371849d29329752cbfffb605 +#: f39d0d7d34014a7b88047889bfe04b76 msgid "Password compromission check" msgstr "" #: ../features.rst:195 -#: 2181d787cecd466b8616484b8744fbd7 +#: 63eee1347a7249199272426682f8a080 msgid "If :attr:`password compromission check feature ` is enabled, Canaille will check for password compromise on HIBP (https://haveibeenpwned.com/) every time a new password is register. You will need to set an :attr:`admin email `." msgstr "" #: ../features.rst:200 -#: cc0f21eefba64f1686b96a1e9f5124f2 +#: 007c1076b96b47429b59b506c18a5639 msgid "Multi-factor authentication" msgstr "" #: ../features.rst:202 -#: 49db4bb755a54c06a623d17b09105331 +#: 8d91bd93597147e9bd00d4941887daa5 msgid "If the :attr:`one-time password feature ` is set, then users will need to authenticate themselves using a one-time password via an authenticator app. Two options are supported : \"TOTP\" for time one-time password, and \"HOTP\" for HMAC-based one-time password. In case of lost token, TOTP/HOTP authentication can be reset by users with :attr:`user management permission `. If a :class:`mail server ` is configured and the :attr:`email one-time password feature ` is enabled, then users will need to authenticate themselves via a one-time password sent to their primary email address. If a :class:`smpp server ` is configured and the :attr:`sms one-time password feature ` is enabled, then users will need to authenticate themselves via a one-time password sent to their primary phone number." msgstr "" #: ../features.rst:211 -#: 8a9638b267d740bdaaf307149fd075f4 +#: c955d2e5379047fa860a054e22d7ecd9 msgid "Intruder lockout" msgstr "" #: ../features.rst:213 -#: 0fa31d3e3f6b44e2b22471007aeeddb1 +#: 466bb908ddda41c9b66b28d603088f5d msgid "If the :attr:`intruder lockout feature ` is enabled, then users will have to wait for an increasingly long time between each failed login attempt." msgstr "" #: ../features.rst:216 -#: 99c6338c1ed944c3a72f03d4fed345c3 +#: b9411d8a5fdf45d4858cc7dfb3635a4b msgid "Web interface" msgstr "" #: ../features.rst:221 -#: 6f287ad3458c488bb6925636094771bd +#: 550e6d9c0c7742fb9fd1f9aead59e7e2 msgid "Internationalization" msgstr "" #: ../features.rst:223 -#: f0f4e0cdc36a473ea598f9e96fc44268 +#: 2d29ab8d21884a36bc96c9973d836273 msgid "Translation state" msgstr "" #: ../features.rst:228 -#: 98ba055e95584bf1a568ca6d7d192023 +#: 478a236ac6854fac992be16a0415a397 msgid "Canaile will display in your :attr:`preferred language ` if available, or your browser language if available (and if it is not you can :ref:`help us with the translation `). If you prefer, you can also :attr:`force a language ` for every users." msgstr "" #: ../features.rst:234 -#: 86b0c199f9514c73bd97552ece93f8b1 +#: 710747940c5347bc9ea03785cc67843e msgid "Lightweight" msgstr "" #: ../features.rst:236 -#: 1a29be033be24d8b954437bcef1b8a8b +#: 7eddc33387c448abb9ce2ad194498c49 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:240 -#: 1cbaf3a30eec4cc98cae7dc4556ed297 +#: 832059971a124c0a8cd4c1fbb85c5353 msgid "Customizable" msgstr "" #: ../features.rst:242 -#: e265e6fdad3f426c8294e944a9046e62 +#: d9dc5f22ae1a4357a06751a5a287f2dc msgid "The default theme should be good enough for most usages. It has a dark theme, display well on mobile, and let you choose a :attr:`logo ` and a :attr:`favicon `." msgstr "" #: ../features.rst:245 -#: e24ba166039d473884c02b8f3ae894b5 +#: 680bbfa7c20641b38301f1f550ca1292 msgid "If you need more you can also use a :attr:`custom theme `." msgstr "" #: ../features.rst:252 -#: 1949756a07c64c668242d913904ccb03 +#: a302508666d74dd7832283f8c8b95d69 msgid "Canaille implements a :ref:`subset` of the OAuth2/OpenID Connect specifications . This allows to provide :abbr:`SSO (Single Sign-On)` and :abbr:`SLO (Single Log-On)` to applications plugged to Canaille." msgstr "" #: ../features.rst:256 -#: a3380e88e072461aae6801f982b2717e +#: 245b2a1686ca4c2bba3295bae58ba562 msgid "Consent management" msgstr "" #: ../features.rst:263 #: ../../:1 -#: eaf503b5c97f4b69931615660edb88c1 -#: 506bc8016b55424784e2d949c6bfbb2c +#: 0595f465de224d4aac6db84347176788 +#: c80c20228a4e441f859bd3c2c4dca3fd msgid "The consent request dialog." msgstr "" #: ../features.rst:265 -#: 39bb2a3f489648548a7812b485020109 +#: c5bad422e0794648b655b2570a0f166f 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:269 -#: ed9ea22cd0594c5993e39e7d0cc37bb9 +#: 9ef5761272c14e7595d282c0d256843d msgid "Application management" msgstr "" #: ../features.rst:276 #: ../../:1 -#: 14c9dd167ae641d18aafb066349807b4 -#: e0d92ec5824e4da7a5e94a1a67b1f137 -#: 02f22e20d6de43508e0ac8918318e62d +#: 5323ffe4d101447d99b325498a26cf10 +#: ea9b25fddd984b18a16c638926e39091 +#: 3fc0328cf3084b5384f6be4bf0e42fc0 msgid "The client addition page." msgstr "" #: ../features.rst:278 -#: 94e240e0ceb5413d9f5f41f9d2616bea +#: 224f4942c0b84db2b69b434c03a44953 msgid "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." msgstr "" #: ../features.rst:280 -#: 43a6a9b3492943be9533399f6bf88add +#: e6a69423a2844a3bad6401a12f111e93 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:283 -#: 4cee7d542f424dfab520c3e204a59dc7 +#: 6726d23e95a24812892d3b9642edfa2b msgid "Discovery" msgstr "" #: ../features.rst:285 -#: ec3feaf3e20f43988d4b5c1fe7a4328e +#: 785dc556a9124816a9ba1a8bc8ee57b0 msgid "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-configure themselves." msgstr "" #: ../features.rst:288 -#: 482bb803dab249bd8ccaf82cf73bbb50 +#: 5220435d47284a17ad3a08b9a2b72286 msgid "Dynamic Client Registration" msgstr "" #: ../features.rst:290 -#: afb513f719724df8b05af3ea812c0a60 +#: 7be8ef3292734f059a6b29e3bf70b8c9 msgid "Canaille implements the :doc:`Dynamic Client Registration specifications `, so when the :attr:`feature is enabled `, clients can register themselves on Canaille without an administrator intervention." msgstr "" #: ../features.rst:293 -#: c7e30d88736247e6a3294a0f6aa51704 +#: b9d0e13ffc244db8a032799fbe45fd39 msgid "System administration" msgstr "" #: ../features.rst:298 #: ../references/commands.rst:2 -#: dd69cb2167cd4226a9cc97157ea6681e -#: e794f2e0ba0f4777bc2350c21f44d829 +#: a909a55bbe1140449e782f452a0f9742 +#: 977d73c67d6944a4abd39f4bd0c41b57 msgid "Command Line Interface" msgstr "" #: ../features.rst:300 -#: 9fb53f5a48a249d48f7f30082cfb6026 +#: 3475469739374d0eaee6508fdeb70519 msgid "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help administrators in hosting and management." msgstr "" #: ../features.rst:302 -#: 07bb602c50344092bf6c8afd8db5b1d3 +#: 4cd2ec0f5963483f8eeb23c29e646162 msgid "There are tools to :ref:`check your configuration ` or to :ref:`install missing parts `. You can use the CLI to :ref:`create `, :ref:`read `, :ref:`update ` and :ref:`delete ` models such as :class:`users `, :class:`groups ` or :class:`OIDC clients `." msgstr "" #: ../features.rst:305 -#: c51b231187334eae802aa8ac0ffbef81 +#: d801f49d97824edea14f495338790ac8 msgid "There are also tools to :ref:`fill your database ` with random objects, for tests purpose for instance." msgstr "" #: ../features.rst:310 #: ../tutorial/databases.rst:2 -#: f4429e3a5e9849e196abc2557b94e915 -#: 95ed23b74999459b8662f69c6984e0b0 +#: 8b0dc3c449d64df19d6112ff1d2ff0d5 +#: 6f318e2b087e4da2807cb61b3683ed51 msgid "Databases" msgstr "" #: ../features.rst:312 -#: 781b6d35cf794727a382d1b0983430f0 +#: daf622d0375a448d98d8132ea3110ec5 msgid "Canaille can handle data from the most :ref:`common SQL databases ` such as PostgreSQL, MariaDB or SQLite, as well as :ref:`OpenLDAP `. It also comes with a no-dependency :ref:`in-memory database ` that can be used in unit tests suites." msgstr "" #: ../features.rst:318 -#: 18cff0793eed44e59bb087e3954f7152 +#: 8ab4ce13b0d04c41a55cf8ff81c88c1b msgid "Logging" msgstr "" #: ../features.rst:320 -#: 9c818374a46f477c8aeea4a8c322ac1e +#: 1e0404a7e32e4bbda5c30237b2ea6749 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:322 -#: b43f32ab31dd47cfa07898c4b2381687 +#: a38d22c88c4f468392536f193c04e326 msgid "The following security events are logged with the log level \"security\" for easy retrieval :" msgstr "" #: ../features.rst:324 -#: a0912ee8af89471088e3b7b7f5e6169e +#: b1017ba709e6497e94ed82bc293cf93b msgid "Authentication attempt" msgstr "" #: ../features.rst:325 -#: 41c85267e9534da993d110a89d4abf07 +#: 9abfecc689ee48f889979a400b2c1a9e msgid "Password update" msgstr "" #: ../features.rst:326 -#: 5743def7ba5547908a52b3c169fc5201 +#: 4d941058b25449888b6eed7145075172 msgid "Email update" msgstr "" #: ../features.rst:327 -#: e51a860c6f7e4986823dbc65ec76920d +#: 208955a438a24d39a53e592d5a3e0326 msgid "Forgotten password mail sent to user" msgstr "" #: ../features.rst:328 -#: 21893a981da0468198eb7c7cac8d4ac5 +#: 03be64e842374dd0afb3a4bdad03509a msgid "One-time password mail sent to user" msgstr "" #: ../features.rst:329 -#: 61602254ec384139bc10cdab3d803d07 +#: 1dd9dc6877a04a2e90e246d066e5ff3f msgid "Multi-factor authentication reset" msgstr "" #: ../features.rst:330 -#: 06727a56c87d4f9996344e94bcd149ae +#: 7fae91a6ef2140709d39b5a3bd3d319b msgid "Token emission" msgstr "" #: ../features.rst:331 -#: b8924f28b7f84c9980f3186c91ca527a +#: 18bf8f2d79fc4a019fccc59f497676f9 msgid "Token refresh" msgstr "" #: ../features.rst:332 -#: 1d7b1b3d661e4d7394f1a707f0d4959b +#: 9699d6142750444390f0c5b9ff7d3738 msgid "Token revokation" msgstr "" #: ../features.rst:333 -#: e44dd5840dd44a399d3efe22b552f764 +#: e3d6c0d2c0454b96a5111a39c8b6a154 msgid "New consent given for client application" msgstr "" #: ../features.rst:334 -#: 0e35f71b003543e29f1c435bb1f08c4c +#: 8ea555681c36454794d8a071781ad2b9 msgid "Consent revokation" msgstr "" #: ../features.rst:339 -#: 42b9f27cc440472e99755f9c1bc6aaf2 +#: 434b77231c614b1fb3b161e99021d572 msgid "Development and testing tool" msgstr "" #: ../features.rst:344 -#: 638d8f09755a4e08ab3adb78a736a998 +#: b1db9a65185243cf8fa11da971727f71 msgid "Unit-testing tool" msgstr "" #: ../features.rst:346 -#: cb58f997a1f14a54be4f9f8812750172 +#: a39b24bddebb4fcb819e18fae1cde97c msgid "Thanks to its lightweight :ref:`in-memory database ` and its curated :ref:`dependency list `, Canaille can be used in the unit test suite of your application, so you can check how it behaves against a real world OpenID Connect server. If you work with python you might want to check :doc:`pytest-iam:index`." msgstr "" #: ../features.rst:349 -#: aa55cf9ddd854e81a50994dbb14357ce +#: a36d0541d66447beb50200fcafe7c028 msgid "Development server" msgstr "" #: ../features.rst:351 -#: 7bad4ab4b5364d15a86f39f7aa979a2c +#: 945a5dcb056040dbb9b1f5ecba940ed7 msgid "It can also being launched in your development environment, if you find that launching a Keycloak in a Docker container is too heavy for your little web application." msgstr "" #: ../features.rst:356 -#: 152c454f105d4a8bb42f29615735a23a +#: ef006716e8a541759cc65be8819b8795 msgid "Continuous Integration tools" msgstr "" #: ../features.rst:358 -#: e11acdd07ba0417195a3954abfeeabb7 +#: b30ba03064a84611818d4f6cac0f9674 msgid "It also fits well in continuous integration scenarios. Thanks to its :ref:`CLI `, you can prepare data in Canaille, let your application interact with it, and then check the side effects." msgstr "" #: ../features.rst:361 -#: e42dc17164e6499d86617a39026a35a2 +#: c626937df7834136abb4999efa2e706e msgid "Roadmap" msgstr "" #: ../features.rst:364 -#: 6b56c6f71a6d4fbcbd7ab43b81d9af16 +#: d888feb396024248ae7b4b7c0c00840d msgid "Stable version" msgstr "" #: ../features.rst:366 -#: 47a2e73df93e48e2b6f522e4ad46ae6d +#: aef62ae429b64af88a422b3ef09d5b44 msgid "Before we push Canaille in stable version we want to achieve the following tasks:" msgstr "" #: ../features.rst:369 -#: 893b30e3c96048ac98398ec62896fad4 +#: ec2567bd551a495fb1a052f3a84029cc msgid "Packaging" msgstr "" #: ../features.rst:371 -#: 228a0fd642a94e09b6a5614bdd1050ad +#: a6b1e2d2873a4521b69241ee8ac0098f msgid ":issue:`Nix package <190>`" msgstr "" #: ../features.rst:372 -#: e9affcba762241a48beb3284688b79d0 +#: 9f5ec88ef4e745b0b3d92b8ed649be01 msgid ":issue:`Docker / OCI package <59>`" msgstr "" #: ../features.rst:375 -#: c74e33e1f40c45588a16a728638365cc +#: 8968093a056b46dc99ea5aa01d7db8b1 msgid "And beyond" msgstr "" #: ../features.rst:377 -#: cfcf349cbcff41e593d5697e64a3fba5 +#: 2fc7a4a02b8143758bc2228b3d0bfebb msgid ":issue:`OpenID Connect certification <182>`" msgstr "" #: ../features.rst:378 -#: 59d483713ab4492884c41bfb7a3db590 +#: b1a79ce7035342c18c9b02aa1f5c001b msgid ":issue:`SCIM support <116>`" msgstr "" #: ../index.rst:15 -#: 93dc9f4610624102989c949b50fb078e +#: 373429f0b70947b6aced960793a91cfb msgid "Lightweight Identity and Authorization Management" msgstr "" #: ../index.rst:19 -#: faeb7c497fad4a8fabd31e6eb9abb43c +#: a509fd3097534ec7bf9c919c7d119003 msgid "**Canaille** is a French word meaning *rascal*. It is roughly pronounced **Can I?**, as in *Can I access your data?* Canaille is a lightweight identity and authorization management software. It aims to be very light, simple to install and simple to maintain. Its main features are :" msgstr "" #: ../index.rst:31 -#: a3d1859683444e669eafa3e6d8e6da63 +#: fb6bbf82fb5a4d2fb468d7cbd26d0e60 msgid "User profile and groups management, Basic permissions" msgstr "" #: ../index.rst:38 -#: 96bfb5a5766640568384817c3a29c7bd +#: 8aba3840e58149738df35482726060a4 msgid "Authentication, registration, email confirmation, \"I forgot my password\" emails" msgstr "" #: ../index.rst:40 -#: de3120b5578a415d9962c905cbeb29ed +#: 032f820352744791856e78c687e30018 msgid "SSO" msgstr "" #: ../index.rst:44 -#: dd83f2c2fd5342a99cfa3363720f4f32 +#: c6001ddd826f43e28d1a11267db4c52c msgid "OpenID Connect identity provider" msgstr "" #: ../index.rst:46 -#: d1c3f504a33b48d7a6ddc7788dfa49d0 +#: aa41b1c8f06d4e3fbebe6e399c31bc54 msgid "Multi-database support" msgstr "" #: ../index.rst:50 -#: d55718aa98914d839eb78bbea5b53217 +#: d93c9ce64dd24e51ab7c3d5ccce13836 msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" msgstr "" #: ../index.rst:52 -#: 2af6659527784bfab00c4bd57023f1d9 +#: 166a22b982ae454988c778390210094b msgid "Customization" msgstr "" #: ../index.rst:56 -#: f0087de2659042d69f73bdc3f3a93318 +#: e603816374414de58a41946223b1621c msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" msgstr "" #: ../index.rst:58 -#: cb41f7b66bcb491d8cd3ee077581c493 +#: 3b8be791541d49bf822dd5e6238da24f msgid "Developers friendliness" msgstr "" #: ../index.rst:62 -#: 51062f9601974871ad644ee033347889 +#: 1891f7dc300b447981a357effb165677 msgid "Canaille can easily fit in your unit tests suite or in your Continuous Integration." msgstr "" #: ../index.rst:66 -#: a44c83b83f7945c1866414f3e156d2e3 +#: e08ccfad5ec9434992beab622bdfcbd2 msgid ":doc:`Full feature list ` :doc:`Common use cases `" msgstr "" #: ../references/commands.rst:4 -#: 21116c62d84047688a8188ecccab4720 +#: 11dcdb556e3b4aafb14876e242d750d6 msgid "Canaille provide several commands to help administrator manage their data." msgstr "" #: ../references/commands.rst:6 -#: fb50446715ba4226a087515182235983 +#: 138272fcbaad4cdebbe1e5468c31272a msgid "Generally, some configuration has to be loaded by `Canaille`. This can be achieved by :ref:`configuration loading method` available, but most of the time a ``CONFIG`` environment variable is used. For the sake of readability, it is omitted in the following examples." msgstr "" #: ../../canaille check:1 -#: 87ca1bdf716e428baf705bacf87f4c09 +#: 270aeb46f36445b697591220d7179833 msgid "Test the configuration file." msgstr "" #: ../../canaille check:1 -#: f8a49947764148aebb5a33d993153016 +#: 6eef2c09ded84cddace00271ec6243c5 msgid "Attempt to reach the database and the SMTP server with the provided credentials." msgstr "" #: ../../canaille run:1 -#: 4b8012b55d2e461ba5a62b8034f7ab55 +#: 8bd67cb32c0441ed8ff9e55a1fe3054a msgid "Run Canaille in a hypercorn application server." msgstr "" #: ../../canaille run:1 -#: f4804b7da8fe483ea42c2fc641615039 +#: cf377efd5dea41ddadee5b9579db467e msgid "Have a look at the :doc:`Hypercorn configuration documentation ` to find how to configure it." msgstr "" #: ../references/commands.rst:0 -#: 0ad07996b01040428bb26d4ac0f28a21 -#: 72377430688445c0be26fd6bd2060466 -#: b0dfaa6e4998431eb2fa7d68c735acbd -#: c91487111545445aa3b73c79ee100cd1 -#: ed369baa9d66404281a58565242d9cc8 -#: 89929851c33b4faaaa6868c81eb9fa84 -#: 993900c003f94ce6b830f9af1f0e36fc -#: ab710c8eece742c1b1584a3234ca12ca -#: 56069e3fa1e7427396a2e6e77b9d6665 -#: f5139fd1a07b43a5a257305d7f63480e -#: 544ae9f71813448098daa4df278a1eca -#: 5c3c98a0275d4a78a7e5674170147994 -#: 1c761ff91a7f431b8d0ce42795e7faee -#: 5bc53ee0e29445769ec0a2225b520799 -#: a237fe8f6736402494ecc51fb0418b00 -#: 04c0e5265c864371835fa2bd1baa870c -#: afa26d1bd51d4757ac0b19e99c1fdb78 -#: 1e755e412f354feea56c12ac5757949e -#: 326564127e694a18a98b150bde241e2e -#: 417f656311ff4adc90cbc8d38056e17d -#: 3f75a15663b44eb0b6ff3a7312443358 -#: 3d0c901df75a47cd81afef4cdea2f412 +#: 26125d207022430b917d30b50380c7ed +#: f672f5dba2df43548eae74a01220ba2a +#: d43eb67e11564cf2871782b09291b7f8 +#: bba8792588374e089614bcddc1375c7a +#: 95bbd87f0acf45fb84abb39d32e26ad2 +#: 08e1e94db81d48a9b56a00e70718fd35 +#: a16373e7104d443f9cf50b893673472c +#: d201ab0074e840d98a822fb783bede44 +#: 5708dec33ed84367a390f7225c893516 +#: 49612f7cf560489a940f3b662c2ef7fc +#: d2f73f1d90524cef842edbbeba1b6dd2 +#: 79768e69d41249afab666d6acef745d1 +#: c121e3114d3b445193ac3be44112b34d +#: 1fb20e3258dd4792a40bd11bda946296 +#: 38c191fca53e4deebe3e7dd138089c3b +#: 38a427e14d1f45309ffec99190c4854f +#: 73aa045a6f0f475f86a6469e75efd94d +#: 86e6e948fd8c47128dcca22d46d968ca +#: 6067b67c07ac44089c773b241c0da11d +#: 0d9c7c9ee6764cfb9f35a99a0cb7b24a +#: 1c8b41fe9ebd4fecae5a690b67ac3af2 +#: 243d0003ecbd497cb62accb7c0eba11b msgid "Options" msgstr "" #: ../../canaille run:1 -#: e99007c2d891492abb37f22484af69a6 +#: 28e9f67698f44d53858b967b9c01fb92 msgid "Path to a TOML hypercorn configuration file." msgstr "" #: ../../canaille clean:1 -#: 7145ee01567d44f497ae9cf89beb6b41 +#: 337e562e2bc04b6db29dd3a23282c1d0 msgid "Remove expired tokens and authorization codes." msgstr "" #: ../../canaille export-config:1 -#: 1084b0312c9440daa531505cf9136844 +#: 8b63bb245ffa40bdb16b13a02ef42400 msgid "Export the configuration in TOML format." msgstr "" #: ../../canaille export-config:1 -#: a8ef6c7fa5634a6984613bcbfe80612d +#: cfc4d280a52b469c96e732a94f7da00f msgid "The configuration is exported to the file path passed by ``--path`` if set, or the :envvar:`CONFIG` environment variable if set, or a ``config.toml`` file in the current directory." msgstr "" #: ../../canaille export-config:1 -#: 4adc441c929a49e490b64d68abab777f +#: 833ffc2ebf904886b6c22764b6848e10 msgid "The path to the config file" msgstr "" #: ../../canaille dump:1 -#: c9364b04f2e34ce3a048deb36fd99997 +#: 8444cc28c56b4775a91b7442685775b6 msgid "Dump all the available models." msgstr "" #: ../../canaille install:1 -#: eee3f5a7a5a243e389cfe2124bff2398 +#: 9957347534cf4ac689f350d0d4943eb5 msgid "Installs canaille elements from the configuration." msgstr "" #: ../../canaille install:1 -#: eceb085ce9674b75ad9a8801d2bcc248 +#: eb35a02e0881431ebc0b97686ea52918 msgid "For instance, depending on the configuration, this can generate OIDC keys or install LDAP schemas." msgstr "" #: ../../canaille populate:1 -#: 7de9ccda075349cdb605af11a90879b8 +#: 78a92f61c86a444d86d2fb78620cbec8 msgid "Populate the database with generated random data." msgstr "" #: ../../canaille populate:1 -#: 6356ff9447144399b725c41f135e0bfe +#: 0ca32205ecf64cedabb1cc157650bfba msgid "Number of items to create" msgstr "" #: ../../canaille populate groups:1 -#: 83264a0f27764ab0b9ba3a89d211d5bb +#: be76fd736b644f46973c1e36d0fe6a81 msgid "Populate the database with generated random groups." msgstr "" #: ../../canaille populate groups:1 -#: b7f1c0ef05bd4a078b529fe21eb98922 +#: 6c8e5438c8b44677b0209ee12d130807 msgid "The maximum number of users that will randomly be affected in the group" msgstr "" #: ../../canaille populate users:1 -#: d61bf8039d634c3e9e9e55fd1a709e1e +#: 4a0d670917064b2c8c369a97c7a8f384 msgid "Populate the database with generated random users." msgstr "" #: ../../canaille get authorizationcode:1 -#: 6ada5bb762bd4490a9a0d28f1143d494 +#: 3cb796b2c9fb4972aa4ebe15a3413272 msgid "Search for authorizationcodes and display the matching models as JSON." msgstr "" #: ../../canaille get client:1 -#: b059e5a24b3b41cabdc45682865c4a5d +#: 5415a734c7694f30bae9793c708f9d89 msgid "Search for clients and display the matching models as JSON." msgstr "" #: ../../canaille get consent:1 -#: d1ddca1b2069423f851be7fc8377e87b +#: 8fb050ba89e84a29a8cb406dd5310109 msgid "Search for consents and display the matching models as JSON." msgstr "" #: ../../canaille get group:1 -#: cdf0b7c7e546482d9c3f2e801e71b909 +#: b6ba448a1cfb40039be035b9f4eb9b11 msgid "Search for groups and display the matching models as JSON." msgstr "" #: ../../canaille get token:1 -#: bf9274c8f0ac4364a8ad738d3644750e +#: 61e7afe619bb4dc6a5d3fd57d7b4087d msgid "Search for tokens and display the matching models as JSON." msgstr "" #: ../../canaille get user:1 -#: c8ad65c2386d4a7a95934265d89e612e +#: 62989f4a504e462894c94501709474a2 msgid "Search for users and display the matching models as JSON." msgstr "" #: ../../canaille set authorizationcode:1 -#: a9075664312a4649a46650fd3cec0a4e +#: f830bcc11bfa475fa80fc9a3a565fc45 msgid "Update a authorizationcode and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete authorizationcode:1 #: ../../canaille set authorizationcode:1 -#: 688619d77250471f9984c9e464f9fc77 -#: f8fbb208cd19476d9dbacbb8a5cb36e6 +#: 7b69631044144b3d9b7513fb7f4f97bb +#: 03aa68fe01404a83adcc701e1534b58a msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" msgstr "" #: ../references/commands.rst:0 -#: 8718535542ba405baafe3145fe0ae3e9 -#: 5c5a7e35e7a34228bd76ab47b24d9b94 -#: e55e26ecbcc442d6ac052dfda5aefcf0 -#: e1f236ea04964dec985f58f5e2441b9f -#: 2eda0a55139e444585f8f9993e1b6fc0 -#: 890c0dc06e5444cd8b4d9994619787af -#: 26b3b2313cc74a86bb24eb710803759f -#: 8429a3e20fd145629a5e5995f7347720 -#: ccb8f3dd73b94a8caeddb573c3627446 -#: 17f3e3ef0f2c40ad89dcb20aef6a8994 -#: 563dccd8965446c5b49026e00262b8e4 -#: 711a7bb354bf4bf2b307f1c3230bb6ab -#: 0bbf3b7425ec4c9f9f145a5ee105d82d +#: e761af8082f14937b9f022777a4cd83b +#: 190b34955965459a857618d9e5df581e +#: ac053d30bdd14bcabdbce737be80568f +#: 0000c2245d55411fb3c977078b9a7435 +#: ec4fbc19ec87403ca963e9d5dfa44a81 +#: d4a6f23d066a48fc8382bc3f288d0cf2 +#: ceda09ef0ac94344a4923b4dd0ba231b +#: b1fa69c8bbb740ab847fc6dbdb0033bf +#: e0a3e325905840b3a4b5c338810a8467 +#: a83e6af5cf814b85918488f546e2cff7 +#: 290c1cd2f0fd42aab0044a1adca7d13c +#: a056e4c0af31402da9c93dbf79c61a78 +#: 85d7a216470a49339cacad8771a0fbab msgid "Arguments" msgstr "" @@ -3926,528 +3938,533 @@ msgstr "" #: ../../canaille set group:1 #: ../../canaille set token:1 #: ../../canaille set user:1 -#: 635723f9e6e34e9c82c5fcb4090b7099 -#: d9de1b2d1c5645059a3bd3d08daa73c2 -#: 5d6288b5c6b7452f922be67558cd9082 -#: ffa4885832484ef9bdddcef8f23d04b1 -#: 6a578bb2593e42a4852a92a7e90e9aee -#: 04d4c20636474e4b8c2cdd75babc1a31 -#: 849c71f8c41b4fdbad0e652c4f4c7cfa -#: 4b27c17413384530a282eb6254dcb518 -#: e9827397e3a2484babb8b70d0d845c8e -#: 359ac2b32751489cbd31d27203aca2f8 -#: 4a87273287464b5c8b97f3b9366fa9ac -#: ca78b985414b4742a045fefaee1eb3de -#: 10f59bdaca934170b02e06186102b31d +#: 2cdc47836228477398ceb59de2628ac6 +#: 6e5673ac2f364fc09b108b6e30194e87 +#: c8d7b13ec27740ea9234559ad605d2e3 +#: a9f5fb985b8e466eb65cbdfd701e4fa6 +#: 7f72dfc86fe64c86b7a44695132fcf10 +#: 7af31410e19b481090160b0b9fc21fc9 +#: c72b970a72204b40b7812fefb485302d +#: 9710fc35ffb0462a96d378248bde7cf8 +#: 4c6334e9a0ae46f6b731b36c39ee402f +#: 3851183c4ce74a31811371b610c0ccd8 +#: 3b4db68f88e046079bfaa2c7770e50f5 +#: 109186bfa97f41c1b35856c7b2fac28a +#: 3f27c211e13e4ad787e0734cf8f7fbbc msgid "Required argument" msgstr "" #: ../../canaille set client:1 -#: aa43e462ad9c47e096c3349eea2a8bf2 +#: 7c1a61da3c5c4165a518185a8f447877 msgid "Update a client and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete client:1 #: ../../canaille set client:1 -#: 61cc4eb65bc647679a71d1b46aa2a12f -#: 08712a0dc1c54e54a09b4f158c3211b2 +#: 3bf398e9d3ca46c8815fb3836f010ebd +#: c6d1ccfbd5d747a596b141b993bd7c03 msgid "IDENTIFIER should be a client id or client_id" msgstr "" #: ../../canaille set consent:1 -#: 87ce3c16afa547bf92aa000e0da6edb2 +#: 893e1cafccf2438898c745502335511e msgid "Update a consent and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete consent:1 #: ../../canaille set consent:1 -#: 6547c5db7f464272ae0a49862dd4c42b -#: 879cb9426de04938b6eaf30c21c1d340 +#: 12d420a9f5e54d009b9807d342351938 +#: 903dec90e3d24ccebdfedf74d79ea146 msgid "IDENTIFIER should be a consent id or consent_id" msgstr "" #: ../../canaille set group:1 -#: a44f355f9ddc408683b8e5cab0679e92 +#: 1573bb36e46543dbb1164ba853e72426 msgid "Update a group and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete group:1 #: ../../canaille set group:1 -#: dd443ac66b034254988e9870c8242a9b -#: a19c4006472a4b56aab5b645e4d2d16f +#: 4df0668cc364410eb92b8fd150325a26 +#: 81610f5df6b9444abed0e198e1bf2d41 msgid "IDENTIFIER should be a group id or display_name" msgstr "" #: ../../canaille set token:1 -#: c40eacba3e5b49cc98b654a9cd6c0470 +#: 034fccc3cc634fc9824edb50df8022af msgid "Update a token and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete token:1 #: ../../canaille set token:1 -#: 0ddfad83e6ba41e884d2986a790d34f3 -#: f54a8b1fbfba46b7a3c211279b9c6c01 +#: c012533d9a4c44928df76671f5d0d7f7 +#: 18b5f93a4d8d40469ae0939a30e21ee9 msgid "IDENTIFIER should be a token id or token_id" msgstr "" #: ../../canaille set user:1 -#: 49f6cf96d93c4941a6fcd3f8714e26b8 +#: 547be928281c45d4a9f8f82ebac847ef msgid "Update a user and display the edited model in JSON format in the standard output." msgstr "" #: ../../canaille delete user:1 #: ../../canaille reset-otp:1 #: ../../canaille set user:1 -#: acc6777d72cd417f913e290fff5aa49c -#: 21d686f7bea0474bb2401359819594f1 -#: 497c702a968a466489f59f2edc1343ae +#: 5e2af4196bd94692a41c1753fed63c35 +#: 667045ff12f04aa7950899bd9601c3c2 +#: 22810e4f12974769bd38133f954fcd32 msgid "IDENTIFIER should be a user id or user_name" msgstr "" #: ../../canaille create authorizationcode:1 -#: 68442cfda8fb4eb889065c2878227e38 +#: 34063503fc664437bc12ab0efde82ddd msgid "Create a new authorizationcode and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille create client:1 -#: 83477262af6a4c7da52e5389680664d2 +#: cdcf8f5dc070429e9424ba84d57b8e30 msgid "Create a new client and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille create consent:1 -#: 7eaa313648194cc785d658c26edb66fa +#: 2ec503167ac54db1b78ea343b2c4346d msgid "Create a new consent and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille create group:1 -#: e9f7976b4fc948fa82f0dcb33ecb11ed +#: c73873602b2b42e1a42810d14a25ff19 msgid "Create a new group and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille create token:1 -#: 2a673120b81a4e078f692344333938e0 +#: 7b21565791f5422e910f572d5672d0f2 msgid "Create a new token and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille create user:1 -#: 7f5fbc2a2bfa45198a8f289a34562e7e +#: f9bb0b5e3a7f4869a5898cc6b6a597e3 msgid "Create a new user and display the created model in JSON format in the standard output." msgstr "" #: ../../canaille delete authorizationcode:1 -#: cc82f9da37a944f3bf392ca5ce67e271 +#: 31862d0bd7df4d2e96d28b9eb1b22218 msgid "Delete a authorizationcode." msgstr "" #: ../../canaille delete client:1 -#: 98bbeefa24e244cab31c6fdeca8dce4d +#: 075a94a5b0284ca4a751711ed05e5ae4 msgid "Delete a client." msgstr "" #: ../../canaille delete consent:1 -#: 727f06bd8a4d438ba22cee2ae12247f5 +#: a1519609d1b4499d88770e24150c3c55 msgid "Delete a consent." msgstr "" #: ../../canaille delete group:1 -#: fbc3fcf83b97443687caa002b11f1a6a +#: cd76628d4b054c97b2f8a38656ac40f2 msgid "Delete a group." msgstr "" #: ../../canaille delete token:1 -#: b2cd4442e7b54d5db2ed9d83588fa0b8 +#: d979f90d864d4b9fb5d9829ce00c3907 msgid "Delete a token." msgstr "" #: ../../canaille delete user:1 -#: 4a62151eefe14a5d8d9a06b364ae7209 +#: 1dfbf7aa08b74167aa3d25bb2bb42e83 msgid "Delete a user." msgstr "" #: ../../canaille reset-otp:1 -#: 8b77a8fabb78473eb8eae4c9315a183b +#: 4a3108f159e14659937cdb63127e3d28 msgid "Reset one-time password authentication for a user and display the edited user in JSON format in the standard output." msgstr "" #: ../references/configuration.rst:2 #: ../tutorial/databases.rst:22 #: ../tutorial/provisioning.rst:18 -#: 5b22c3a9376c4ed3a94b40cf909e643e -#: 8e74be25dc9c4a87b22528703be06bf3 -#: 1f63f27a9eaa4a49856d421f34c6b22b +#: bb4470fbccd04e9e843add79a164bcce +#: caff29ef584348e6bbc7dd1905cfe27e +#: f9ec94a3ba7f4a6dbfcda93bfc9ff4b4 msgid "Configuration" msgstr "" #: ../references/configuration.rst:5 -#: 410c83fb14694132b6b045f949220d13 +#: 27ff67a4c51345779a2a5f6a517d3699 msgid "Load the configuration" msgstr "" #: ../references/configuration.rst:7 -#: cc551c22ff164ea88a6801573cdd9720 +#: 38ab35061b914078901d1ff8932d1698 msgid "Canaille can be configured either by a environment variables, environment file, or by a configuration file." msgstr "" #: ../references/configuration.rst:10 -#: 122a50ddecac4699bd779f657441a240 +#: accb02d4c2f7490687ec2e60263a8ff9 msgid "Configuration file" msgstr "" #: ../references/configuration.rst:14 -#: 54174f2bd69c46adb15b516711178bb0 +#: 456b6b0e57864f64b9984825124f8de5 msgid "The configuration can be written in `toml` configuration file which path is passed in the :envvar:`CONFIG` environment variable." msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:10 #: ../references/configuration.rst:16 -#: ../references/configuration.rst:98 +#: ../references/configuration.rst:99 #: ../tutorial/databases.rst:26 #: ../tutorial/databases.rst:50 #: ../tutorial/databases.rst:151 -#: 853f1bf7d5e141a18c1511338d72930c -#: efea6f6ad56a4531b4b614a418607f4e -#: d73d81a2406740cf89a917ffb13f4e74 -#: 9288e2008760423ea89a950810f5e92b -#: 4a278106d9ee49109c1d829f13c94aa1 -#: d6210204ae8d482d8ef63006b6c953b5 +#: 44c4197a0ba74a66a3a22d85c2d9821b +#: 331c10a28b4148c9bae2dc6b6aeb349a +#: aaf22fb68295485fac8613a9331368b4 +#: e6ce3ccdd3114ef192ebd453b4de0de3 +#: 5351bdf79f5e425f8a2c62870dc95a5b +#: 7d3a9a14eb4c4f538e62439454dab261 msgid "config.toml" msgstr "" #: ../references/configuration.rst:28 -#: 3b12dd3d6c474c69b010f555812bc4f0 +#: 93fc2809702b49a68bb42c3204bf1db5 msgid "You can have a look at the :ref:`example file ` for inspiration." msgstr "" #: ../references/configuration.rst:31 -#: ae9803c6014b44888c59dfceeeeeb9eb +#: db25459efcac4b48acfb9364c1a08d34 msgid "Environment variables" msgstr "" #: ../references/configuration.rst:33 -#: 6d82e8f0744348349949768689494432 +#: 9d0e0d83c73d45d69750be485fa756ff msgid "In addition, parameters that have not been set in the configuration file can be read from environment variables. The way environment variables are parsed can be read from the `pydantic-settings documentation `_." msgstr "" #: ../references/configuration.rst:38 -#: f17a4dff1eda43a3b99e703294f3b2aa +#: 545de30f452c4828b1bfe8ec3d90e066 msgid "For environment vars, the separator between sections and variables is a double underscore: ``__``. For instance, the ``NAME`` var in the ``CANAILLE`` section shown above is ``CANAILLE__NAME``." msgstr "" #: ../references/configuration.rst:42 -#: 294b313fc21040bab184baf0c140fdc5 +#: 08d966657c56401c9e61506fc719ed0d msgid "Environment file" msgstr "" #: ../references/configuration.rst:44 -#: 82390e1a45834b468d8c56dff1a69db4 +#: 01f074aa3aca466e84f2f798d10c9037 msgid "Any environment variable can also be written in an environment file, which path should be passed in the ``ENV_FILE`` environment variable. For instance, set ``ENV_FILE=.env`` to load a ``.env`` file." msgstr "" #: ../references/configuration.rst:47 #: ../tutorial/theming.rst:45 -#: f35d50c8710149a78e7ee8bf9ed62458 -#: 1b35b517afe44c27907e532b86c55459 +#: 5e64d03c8a6e4e66a132ad49e79542aa +#: 89410641eca940dd822749abb87175da msgid ".env" msgstr "" #: ../references/configuration.rst:65 -#: b5ef615c16384009829366f10dbc4f2e +#: 86a58bc7440f4552bf1d4a74db184d1d msgid "Configuration methods priority" msgstr "" #: ../references/configuration.rst:67 -#: a207e0b990c34dbbbbb2f43a35f0c6e9 +#: f7a8f161e3014f8e928432a148364c56 msgid "If a same configuration option is defined by different ways, here is how Canaille will choose which one to use:" msgstr "" #: ../references/configuration.rst:69 -#: 71d0865df0424753b08b8df62dac5f5a +#: 4c17ff9270194102ac609f16eccc3de0 msgid "environment vars have priority over the environment file and the configuration file;" msgstr "" #: ../references/configuration.rst:70 -#: a0f54ef6f6e2460fb39b23fbf8842310 -msgid "environment file will have priority over the configuration file." +#: 8efaaa3aedb448f0bcc99abdecf49644 +msgid "environment file will have priority over the configuration file;" +msgstr "" + +#: ../references/configuration.rst:71 +#: 9276c910e76f41a1b40e180eca3a7b70 +msgid "if no configuration method is used, Canaille will look for a ``canaille.toml`` configuration file in the current working directory." msgstr "" -#: ../references/configuration.rst:73 +#: ../references/configuration.rst:74 #: ../references/templates.rst:0 -#: 6a3446b4c6694da39e1d3618548dd53e -#: 440ce29a571e4f42acc8779effdc206f -#: d9d48249b6e2443e96869191be03e921 -#: ff7a366903ef434e9728c051b5118ad3 -#: 725b4e8754404f0480f0116b96ea554a -#: c184ae17385845648880a62cee65dbcb -#: d2874b540c034ae484e47dcaac60d059 -#: accc8b1c520649ad8320ec7a33b483f7 -#: 3c3c7497ba1142cba22973fde6c0f115 -#: b16444ee5bfd4bc1b1061f900a2f3a1c -#: 12b08c0667624bd399a9a311ffb9a464 -#: 2285fc0d58214d2ca1e2b09c8a174ed1 -#: 073d015a3ee64ba394ad5e9cfa4ad7d5 -#: 70d118d53d3942f394b39453830532ae -#: 128579b1523e4c90a4b7eaeb97cfd338 -#: 593779af1c044711a9551c84f31e3306 -#: afb689ca8a5d45cfb2392f5df1c77043 -#: ab05c410e6824e96b145fa8a0a17c6c3 -#: ef4a8306366e4daebf5009acec4ff74c -#: 92890b3b0b2d441a908135a604d3eab1 -#: bdd5fb77382341678e5746eae20b5a45 -#: 33fb2540ca1e4966b2d18b78a95bc091 -#: 998a83c731b04499bfeff82e695c39cf -#: b44a199dbfcd4f699a2a388e37c267e0 -#: ec883e9f14e645578d908746873a03d2 -#: 5808b8736e14441f99a39fe6168daf5a -#: 0e4a8b1f665b4cf69fca22c0d663c050 +#: 278f57190a784eabbdde4f1fa84f45d4 +#: 464ea12e8a3c4b32821ea62c42a0f1f8 +#: e9d5f0c16bf4435bbae19084633b8d4c +#: d61783cb613b4468971254a465af44a3 +#: 04b5a667b0414db2b52273eaafec68a6 +#: 0a28f1a8d9294a879201df7f54c33e98 +#: 57c12d8493d14a6a8a6b9226e4a8c564 +#: b7ddc466810547de956f42c2924c6c03 +#: 1088606a8e6840399584e044e69c3074 +#: 2d8bb36033514b489d98cad01be9326a +#: 1037325897104a9683c540c29bbd7de4 +#: 41e3107b842d4eab9314182ddf53c504 +#: 65640c76b5fe4d0388f779167bc6fdf8 +#: 09dc722bc43148d196536560749b88d5 +#: 3772f0e623454481b5c890d276e8304b +#: 0d6125051100436f87f8ae4bcf4c6e3c +#: be355a580b6b44c385532808a2342e58 +#: 6905dda2361c49a8b6da0397b0f50167 +#: 98ad3fe6b6414b3ca752def71108373e +#: b1d4820a96e643aab125fac52d8748e0 +#: 83bbd03ee7e44628b783ae461c315c46 +#: adabeed46606413485344a0badb55132 +#: aeb42a0a68b04dbda946b9d120beb9ab +#: 9943d3bc62f844238058a083eac102ad +#: 6f73a6bfb5b04b82bda62bf91cf70822 +#: 09cc17dfdcdb4445a3f9b71c3ebd2f80 +#: f31e44fe42fd4efb9ceecd513982474d msgid "Parameters" msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:1 -#: 7fca72198fee4a8aacf97ac3e7cf7be8 +#: cd790c82c0e94e2e990119dd593c8de2 msgid "The top-level namespace contains the configuration settings unrelated to Canaille." msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:3 -#: d8365bca93194518a5f103e9a4f6fbeb +#: 9f065febaa2d423b816094ffdff8cb27 msgid "The configuration parameters from the following libraries can be used:" msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:5 -#: c947a3a6b2674deda677a307c5d14981 +#: a2c42d228e064f7b8ae80499ab3bbebb msgid ":doc:`Flask `" msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:6 -#: 316dae915a8b41b0abc8745b2743174b +#: 025ad5d1a39b445385ba80a3226e657f msgid ":doc:`Flask-WTF `" msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:7 -#: 97c217abb05e4cde85387a511cd1a46f +#: 08247eca2abb4279bb8ac9e126b9cdab msgid ":doc:`Flask-Babel `" msgstr "" #: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:8 -#: d941d2abea0b4c58b7ea5c72675957ed +#: b707f3811bd84f16a10579fc4b60b03a msgid ":doc:`Authlib `" msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: 84f165f20924476096b2f1ad6c8fa1e1 -#: 0a84383d9fe74253b64f3acf00a5f78b +#: 203f5736bb824303be4e1658aa08efe7 +#: 61c9dab34a9846d7a5dcd16febfa3b1f msgid "The Flask :external:py:data:`DEBUG` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: e06f6f812a9c41428615863584f12097 -#: 47188df4948c4bd9bd5b8e6c04adb62d +#: 89dcbf0927a54ee2a7edb788bbd43e4e +#: 15ef0ac8cb854e9dbba66fe48db285d1 msgid "This enables debug options." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 #: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: 546217327e9b45fdaecfd1f6f45ae49e -#: ca713bed7ae0443a9dd9749fd36807e9 +#: 286e89970f52437aa1779cd0a68c1b56 +#: 7461cdeb1a7b402e950af5d16b34435c msgid "This is useful for development but should be absolutely avoided in production environments." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 -#: aee25128b00c4ec98ec1409498999502 -#: 3cec2b4f1f9e494e91eddc6550def435 +#: 41286848e49c41a2800d06eac83ae667 +#: f098fbd39d754f6996067fdf7ea35f21 msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 #: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: c2a6cbc088fe40ef978aab97375c64e0 -#: e025a0dd7a8848afb702bb4daa81b767 +#: 7cf014af903b470e9e9b5b1ba8682259 +#: 7b29dbfce4474eefa376c6ded8c72291 msgid "This sets the url scheme by which canaille will be served." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: a38c3e9ca7214ba3ab334738ead62827 +#: 666a2ee7ec1a42d2b10a763b44743638 msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: 214b35ce98d5496a878f9bbcab222052 +#: cddfd6e386bb43ffaddb2b6c390a3b80 msgid "You MUST set a value before deploying in production." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 4483460fe1794710b5272b5967611260 +#: 781d63b25a4c49b3989ddd8da1c1b5cc msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." msgstr "" #: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: 04a39057f0764137815fa41e6e5ac16a +#: 82837959cbf548a3890e117abe47d0c2 msgid "This sets domain name on which canaille will be served." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:1 -#: a7c8d2fd06fc44159ae8b54e761ea432 +#: 2483199ee94442fd86e4acfb8ec0e654 msgid "The settings from the ``CANAILLE`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:3 -#: 28dd9a9bf3b8460d9df52db458736a58 +#: 3e5db5a5d2664500b3d39fb856fbc5f1 msgid "Those are all the configuration parameters that controls the behavior of Canaille." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 61ad119dfa7a4eb487729a660d21d3c1 -#: d300bd2f51104f699125d21c41c77e7f +#: 7a4339d94966490fbba066a6ec56eecc +#: bbbbd387b9814cc9b2125f6e2b015480 msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 #: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 82e252ae715a4e129f3c382d0bc41ba2 -#: a6b6a0e010f54b59a07be5d9fb1b9032 +#: 4dee021613d04573a5f2c20f01598237 +#: 83150a34be0c4c628abcb6dd002ffd0d msgid "The ACL name can be freely chosen. For example:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: af876312b5ae4e5983da250e6e1d2ad3 -#: 8ec31698928c4d99a01d62bd28edeb50 +#: 76ad56562858460a9cd17a5f68501126 +#: b22cb20fbe4f4a44a8fc43bda38cbb2c msgid "Administration email contact." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 #: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 099a15ef8cfb4c639e6cb6a17055f72a -#: 1642f5b2ab6d4374a57cb4e29cff83c1 +#: f93ffae96a3e4f5fafc3b85160952d8d +#: 51dae64cb89843ae9a95c996ba0d8b38 msgid "In certain special cases (example : questioning about password corruption), it is necessary to provide an administration contact email." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 -#: 0eec3a1e225d4a1b8d1c8fdd18513cc4 -#: 63ae0c22ff8341a0a12f1c1d0021794c +#: caa4cc440a484d9ab0bf737432e352a6 +#: 9aa86908541a44ec80c82eb033488f03 msgid "If :py:data:`True`, users will need to click on a confirmation link sent by email when they want to add a new email." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 -#: c145ba924f42484c95fec74d450abc9d -#: 6a45d5a18e5d4426925067f7ae06b8c3 +#: 20daebf2a8354022b44b30352ef1c712 +#: c3d7a902e9bc4223974646f30917d35c msgid "By default, this is true if ``SMTP`` is configured, else this is false. If explicitly set to true and ``SMTP`` is disabled, the email field will be read-only." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_OTP:1 -#: 84ccb5ece635485f817679d85d17602a -#: c7e38afcd4174c7385bb63a0e40f1cbf +#: 3e9b6b1d1858434095330fcf6b2fb19a +#: 90779957170b44e8b6d240d435c34a33 msgid "If :py:data:`True`, then users will need to authenticate themselves via a one-time password sent to their primary email address." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT:1 -#: bc218be2af174a36bf747ef6debf1ae8 -#: cd8cfd5ed795459aa3a81d72b1d18a74 +#: ea0f1236a1aa438c9cddc320b324e69c +#: c43ed41588484291b0aeef71e6e464bb msgid "If :py:data:`True`, then users will have to wait for an increasingly long time between each failed login attempt." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: 650236f37c9641678a7eb0cb34a26efc -#: 9073f33dba2e4c828176bbe1c487ddc6 +#: 5a8514511fc747a593a137296b2f03f5 +#: f093bfd3395b4f26aec053f52971017c msgid "If :py:data:`True`, Canaille will check if passwords appears in compromission databases such as `HIBP `_ when users choose a new one." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 -#: 6b7f126936a44a9d8bb482d50a9c3366 -#: 6a130e77467e40c8bb5e417e6b1b07e3 +#: 727626bfd5aa4cff9ba86c806f16bf19 +#: 9e2d4021c5d34242b7c11601d3b16719 msgid "If :py:data:`False`, then users cannot ask for a password recovery link by email." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 -#: 4db56db9b1ee4986b8fc8fbae4f015f4 -#: 3170d425a441414abb10a0f705ecd483 +#: 215ee262f185424abd196464391ece49 +#: bf23d761aa2546cfa7580c874a3cf1be msgid "If :py:data:`True`, then users can freely create an account at this instance." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 #: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: e7b8a6c9c7744398bb0532bcd591cf2a -#: b57241612c9e4a33b8203cb75aa4bdb6 +#: 1a48551dedbd4ae1ad4eb3486a5306d0 +#: efcb822575614206a4cc6f9660c24574 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 -#: 6909de371f214e6ea0d26e1a1883b51a +#: 1a56fa89009649b2919ef0fe2a5508d2 msgid "You favicon." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: 7b7f02ce23da499086e2eb309094d7fc +#: 4bb49925d0584f64b5e1f47fcd7d797e 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 -#: 32d2c9aa9f6d4fd3b70c26845c1dfab0 -#: 3eb2ea4eb05a41a9aff61bb3074a0159 +#: 7c1a773611754719b17adbcb1fc787db +#: 045ecd5205154a93b4983bb78aded71f msgid "If :py:data:`True`, when users try to sign in with an invalid login, a message is shown indicating that the password is wrong, but does not give a clue whether the login exists or not." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 #: ../../docstring of canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 -#: 8d56099d6ae046ecbc77d04d447afd5f -#: 57721922dd76423aa2beb9f6d6c908c0 +#: 842c54bf784d4da1aa7e6dddc5d68b1d +#: 7c13234d8d6c4b65ac2e1cb98eac28f0 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 -#: 1f8ad30c250743c689bab834eb961ca4 +#: 007251abe5844febbd61bf66219c86ee msgid "Accelerates webpages loading with asynchronous requests." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: 656b0389acad44f7bd52c97ee67cab1e +#: cbfd987fb9dd43839f4fdc92123eb2ec msgid "The validity duration of registration invitations, in seconds." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: d5012d7777a54a37b6c6058098788936 +#: 45fdb00bb8c74854a94015a54616dba1 msgid "Defaults to 2 days." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: e22e10e9d3a4420391fcb6b7dda3d29d +#: 8c7b0c61c7124b63bae28adf83ad2761 msgid "Enables Javascript to smooth the user experience." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 2a90f4d898b94e9e872569ddcba44c01 +#: 76256074521746a9a92a162e8adca14a msgid "If a language code is set, it will be used for every user." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: c9f8b2d89717451e8d05542eb4ca202a +#: a28dd7c00e0344929e11e3e937d0bb0d msgid "If unset, the language is guessed according to the users browser." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: 0fb3a90aba334539b4678abccc956d6f -#: 8f087b9ec20b4034978e7477ecc63e2d +#: de3909bd23a34078a395998705352c29 +#: 1b974636090b43a49a336f9c9491c92f msgid "Configures the logging output using the python logging configuration format:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: c70b15811b884b298aab6f8b26b7d85e -#: 57c67a3c067a43af8d154ae573e1c4c1 +#: 842f67e643e44c6895f3ac200eb35e9d +#: e90dfb3253754a9296d9a61f14390add msgid "If :data:`None`, everything is logged in the standard error output. The log level is :data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:`~logging.INFO`." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 0302b4f98d9940b3b0c381a42e1d8ed9 -#: 36a63bcae4074c25af9343d74abb695e +#: 01153376e84f4edd96497a759eef678f +#: dcce9ff027fc471aa3ea19a232798fdd msgid "If this is a :class:`dict`, it is passed to :func:`logging.config.dictConfig`:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: fde60db6a79740febcfa1a9b01c9264a -#: 3fc4f29d13ac47a39add7238cbfee7c5 +#: 4f7d808cd5f446f0b6194f17a352690f +#: acc316089e2e48bc9746fb309a7237b2 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 "" @@ -4455,671 +4472,671 @@ msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4 #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 #: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 -#: 6493419c92434b8488b64a91bbdfb99d -#: c26d5211384b4aec90a371a36943c834 -#: d4a8a6027eef4041ba46580d7b6b22d9 -#: fbda1c37a833498590ba1a5151cbab74 +#: 41270aee013746238af2e769d124d0a1 +#: 08aecff626284c439eeeede9e67bc58d +#: a54b5944b0bc4bb99626db0028c3d553 +#: e6ca1d0935634afcac41c3655f7636d3 msgid "For example:" msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: 10d7080d848f4d5caf0f66ef0af1dd4d -#: 98204392a515405fb4ae1c89859da6c4 +#: 6456464f4e834643973084b4b9b344f9 +#: d9ba46902b314ae29ea9491ed55d327e msgid "The logo of your organization, this is useful to make your organization recognizable on login screens." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 -#: c062b04880af4f919de85b8b4ca8c0a0 -#: ed80e25605ce45cf9e2e6ea87af81a41 +#: a8dd03382af64ea5a896ceecb07b3f9c +#: 241d875a71514413aaa184f6098e6c37 msgid "User password maximum length." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 #: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 453671e1d9bb484788e34f1004331db4 -#: 6c37249369514618b3825d01798e2f3b +#: 3766c45940bd4fc688cdb15eb5a491e0 +#: 424c9e85ae204da98934cb85c908e9ea msgid "There is a technical of 4096 characters with the SQL backend. If the value is 0, :data:`None`, or greater than 4096, then 4096 will be retained." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: d2051022c5524efa922d7f67ba0c42f5 +#: f4e41aee8131435b9e3d9892e1815c91 msgid "User password minimum length." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 9aa0076743f24bdca89da1add8672e8a +#: 8f83aeabeb7347209573daa1f201705c msgid "If 0 or :data:`None`, password won't have a minimum length." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: 9cf8aee7078843c493d3311e83847916 +#: 7415529e2230480897b21f776b48ace2 msgid "Your organization name." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: d26b30d77ba34bdc981c96644b33aec0 +#: ced6fc0e89cd43eea4c1e6436bd698f6 msgid "Used for display purpose." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.OTP_METHOD:1 -#: 77534bdea13a417ba9aa79832bb9ac04 -#: cf7dc9cbb18c43dabadbbef9ec3592da +#: ee1486f6c3444dc0af92e1c35e62dab4 +#: d819fc00f62d482abd91f329627b4393 msgid "If OTP_METHOD is defined, then users will need to authenticate themselves using a one-time password (OTP) via an authenticator app. If set to ``TOTP``, the application will use time one-time passwords, If set to ``HOTP``, the application will use HMAC-based one-time passwords." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 6a8fe70c3d10407daf063517f6ebe61b +#: 3e21093daf434763b54edd71bd5b112c msgid "Have i been pwned api url for compromission checks." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:1 -#: b9dcd34433a34a78a315706e60300ebf -#: 2a9d5b3988ac4402bb36a13d4c6359b6 +#: 523a4db96fb4486c94583d3943213eeb +#: 478ae4be26c249458cb9a5ac3b5dc038 msgid "Password validity duration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:1 #: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:3 -#: d633d157b8ba45db8ca653e122479607 -#: 7f9d793f479d42148fa9f8b3bf60d048 +#: 79a34de44251453d8653e4343ee5d11d +#: f041c231d95a47a6b6c77d845b851b32 msgid "If set, user passwords expire after this delay. Users are forced to change their password when the lifetime of the password is over. The duration value is expressed in `ISO8601 format `_. For example, delay of 60 days is written \"P60D\"." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: b2c2d55c3a6f48eb95cd36b5a79ebc59 +#: d7e5f92e271148fcaeb966430774408b msgid "A `Sentry `_ DSN to collect the exceptions." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: bde8f379ff004988ab5a8675f3c58dbd +#: 3db90fc929dd4853a6ff5405b5d80d53 msgid "This is useful for tracking errors in test and production environments." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1 -#: aaaf96c9caa84ce58e9d24ab2762e9bc -#: 9c3c3b72207f497289429e8e5c772ca7 +#: 951683bb430d4748a73fcdee3a5f5f74 +#: 1e51bf76c4724a4199d520284e252aed msgid "The settings related to SMPP configuration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1 #: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:3 -#: bf01c28a5de041068e41a9438da09b17 -#: 647147a345214d60a95064beb055748e +#: ef1189a12f154e9882e2405c12e68683 +#: 42b0c720d00a441ca0be889ec4b0fe88 msgid "If unset, sms-related features like sms one-time passwords won't be enabled." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMS_OTP:1 -#: f1ea72c5b2a44bb695133e406900fe9a -#: 9abddaa5a7f44c909f1b435c74fc99d2 +#: ef13d2529cea4149b3e903c087a72a3e +#: af87c4c2a5604a1c921d7210dc4be62e msgid "If :py:data:`True`, then users will need to authenticate themselves via a one-time password sent to their primary phone number." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 82107b7446b64360a1c47cd2fd96b8b1 -#: 656f624c84ca4cecbc6679cd1663fca0 +#: 73b3140741d44f249a115c10967a4fe7 +#: 20c814b7ca8e459886816d39fb24da1f msgid "The settings related to SMTP and mail configuration." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 #: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 777430db5c1c4df6943977862d057e20 -#: abafb46c8aa146aeaabf9edf33b410d3 +#: 8613f57bcfeb4500a90433d361c08dd7 +#: a22869c1ca6045fda36aa79452878dd3 msgid "If unset, mail-related features like password recovery won't be enabled." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: f0ed4653f87e4b08980cb218a6d6fb59 +#: 6641656aaeaa41b798c6e6347a30f3d0 msgid "A path to a theme." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 -#: a2e18c53bd49441da8eb694e1df5e25b +#: c21a8a84dbf64ace9e2c8b7aa38af0f4 msgid "See the :doc:`theming documentation ` for more details." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 147697ef34424d54841aa597fbbaf5b8 -#: be9126b696c8428da6fb619e936119e6 +#: 62422f73a6d64ce999b1407ffd58935f +#: 914b17d007c24ee0b21b1c0999fa583c msgid "The timezone in which datetimes will be displayed to the users (e.g. ``CEST``)." msgstr "" #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 #: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: 5997ce2b92194558b869e566c28f2529 -#: 23ab6eaec94b41108dc7b19e9090e34d +#: 2e0da6aa82c2452da2f8393cc38d415a +#: 62e7676dffc64995a7f1746618496c1f msgid "If unset, the server timezone will be used." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:1 -#: 045ad72693904d22b324e4626632655e +#: d1ae82b91aea43b3bbc9eeca7dbefd28 msgid "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:3 -#: 9b94743fb5b34061b0c33cbe2e958143 +#: 49ef24b20eae4f0cbba3f6a67e39ad5a msgid "If unset, mail related features will be disabled, such as mail verification or password recovery emails." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:6 -#: a4525289200a4f10a9af9d5ba69f3880 +#: a637e7fc3df6474da298d23c81e3a47c msgid "By default, Canaille will try to send mails from localhost without authentication." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 598388830a1d4cca81a15634cec4cba9 +#: 533625af22ae449e8ea66107fbd651b4 msgid "The sender for Canaille mails." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: b10167f6c5e9458dafce1f72919bb83b +#: 8125bc9493f949ed909fd2d63202ceb8 msgid "Some mail provider might require a valid sender address." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: 27812ce8ad194ae9a0cba662364638e5 +#: d6141451e3274664997031392cdc0b17 msgid "The SMTP host." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: f97573284e5a4c59b8091d1fb7ac8e5e +#: d48b3096408d411bb9e1b0556a60b028 msgid "The SMTP login." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: a87dde83daa44da09cc16f7638e4f275 +#: a6a021d399934548a6e59b69d57fc8db msgid "The SMTP password." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 634d9529b3994735a45188da3c86539e +#: c0e4c61824de4d1498579643f5cd2910 msgid "The SMTP port." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: 2cf35191072647fca28be0ede2a908e8 +#: 357a76e750ef4961b151d036c6ce16a2 msgid "Whether to use SSL to connect to the SMTP server." msgstr "" #: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: 7688620453a2448c96b82c5b245ef431 +#: 50ad814605e14507a9a5e78ada22908e msgid "Whether to use TLS to connect to the SMTP server." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMPPSettings:1 -#: cedeb3cd11624d9dadf5b2d60f1476f9 +#: cf0833a324bb410d81783ec2c338d78b msgid "The SMPP configuration. Belong in the ``CANAILLE.SMPP`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMPPSettings:3 -#: cb1b922e45f5406187db47018fc88fb5 +#: 2a6e3f4540e74ffe8d852fccd432b592 msgid "If not set, sms related features such as sms one-time passwords will be disabled." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.HOST:1 -#: 54af6961bfb6432188564801221712bf +#: 912d42adce7b4a7eae55320be90e9400 msgid "The SMPP host." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.LOGIN:1 -#: f6b4c745fdd84823b2c324b737c0f427 +#: af2bd53890314d39afc92af8f69e1e30 msgid "The SMPP login." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.PASSWORD:1 -#: ecfd59f9089f4bc1895854ea8ceb423b +#: 5a5ed96175a343e484b2c63747ac201d msgid "The SMPP password." msgstr "" #: ../../docstring of canaille.core.configuration.SMPPSettings.PORT:1 -#: 7a6a193d96f74e4b92bbe00bebffc1cb +#: 0208f3b8fc8a44d5af91ca0aa060b845 msgid "The SMPP port. Use 8775 for SMPP over TLS (recommended)." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:1 -#: 80870ced9b8745cfb2b07dbbda8be4f4 +#: 1e39a80619be49afb648eac22f577293 msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:3 -#: 2eb69eb6cff445ff95b506979de54b27 +#: a68f58a4e0734ff8922416949c0d0ca1 msgid "You can define access controls that define what users can do on canaille. An access control consists in a :attr:`FILTER` to match users, a list of :attr:`PERMISSIONS` matched users will be able to perform, and fields users will be able to :attr:`READ` and :attr:`WRITE`. Users matching several filters will cumulate permissions." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 -#: b307f1e18c3547289deff38999e4c4c9 -#: b64a283fff05476d9234311a577773d0 +#: 9f5b0b37968f4ca1bdd68462ce8d5e3c +#: 4ad484e939b84a219e382bf7a0ea1946 msgid ":attr:`FILTER` can be:" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: e061999693e34aebb9809171159f4b91 -#: 99bbafe6e8f24daa8bbca1a929a73824 +#: 7a5d60dd052f4652b7d8ec3839675fa9 +#: a60f06de92b74b969afeff8b650227f4 msgid ":py:data:`None`, in which case all the users will match this access control" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: 45d7e878377b4bafbbef377708a447f4 -#: c416198c1a9747799852955bc707bf7d +#: 01babcd3f3a54e4fb5701ea4b58c26ed +#: e60c7aee13354eb6b8031f4dcb44f5b6 msgid "a mapping where keys are user attributes name and the values those user attribute values. All the values must be matched for the user to be part of the access control." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1 #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: 64ca2a4cd2334b639bbd59fb53ad7224 -#: 57427c04866744669551a2d687175212 +#: 5a6b6cf4f5df4f9c99a004c36ff81ed3 +#: f8a62335f12c483aba353d4f5f0eb508 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:1 #: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 57057c8ba7b747f185fa5aebc563d953 -#: a454ff3b16344d9da1c97e6a932b2c36 +#: 9831310c05b7421499987b44004e89a0 +#: f481fa40b50f45c38b9b1fbcd04d20fa msgid "Here are some examples:" msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: 6553f07484cc4a459236397b3466bf31 -#: d1da7f07b9db45d5908e5de9298a986f +#: 7bc4a54567f649df862ea842b385727b +#: 04bfdc38910c4aaeaae1a442a362fcaa msgid "A list of :class:`Permission` users in the access control will be able to manage." msgstr "" #: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: fa6181ec0bc94392ad6835999a22e406 -#: e7491fa4f94e41f7b48b749e70efafe2 +#: 0da7df9bebbd4f67a5cf4ab445fef766 +#: 9975b6bfdfd1493aa1f38e15a3e32d9c 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 -#: c06ab16ce70c409b9c90e4dbdcb2f3bd -#: f94b175e5fce4091a935a62f667cce63 +#: 566f5344e0a74714acac4134c2bed9c2 +#: d5a8ffc832214c61b55dfd5bc54eb91f 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 -#: 640da213074940ec9d5a14368bc0586a +#: b1c9cee927344513ae75f613ca2cf7c7 msgid "The permissions that can be assigned to users." msgstr "" #: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:3 -#: 7eb1544484ba47eaa73333032fa8b1c2 +#: 12eae3ff51a34daaa456f0e21dad1d29 msgid "The permissions are intended to be used in :attr:`ACLSettings `." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: ac849af76d0c4743a688032071c244f6 +#: 161cd775ad67446dab2a52c76e7cd486 msgid "Allows users to delete their account." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: 32399c7549da45e2b8a06a21969c7f72 +#: d241483a4be0477ca9b7125ae795b2fd 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 -#: ad335abe14a04a8c953ed293254f005d +#: 8369f1b0bbd8420fb8e39e577a92ac83 msgid "Allows users to edit their own profile." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: 7b3232366d174cdb888da6a77a1a1eaa +#: 4dae7ac5e0ca4e149af0c17f2ae010a0 msgid "Allows users to take the identity of another user." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: d43d0f1318de4dc2921b63e8413e98f2 +#: ba256e75bb124cef8291fc2213f21909 msgid "Allows group edition and creation." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 3b03834c9ded403e92bcf42d98996b7a +#: 5c67ccf51fc349fc867815ababf42ed6 msgid "Allows OpenID Connect client managements." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: 301d3baeda98402d8108f66d34003e05 +#: ac510a189bdf4f45b3fe6c4f986744ae msgid "Allows other users management." msgstr "" #: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: 5b1bb4b871b14c189f55b602728e01b8 +#: 19ed8a911d654b348ba5047382a192d5 msgid "Allows OpenID Connect authentication." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:1 -#: 35fa8bc902344832982e5b7ca3aaa46e +#: 853249ab178a4b0a8b60223d38024da5 msgid "OpenID Connect settings." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:3 -#: a553cca7a3b54546a0fa6516e3528ad2 +#: 7ec763185ce2486b97fcda21ebc250e3 msgid "Belong in the ``CANAILLE_OIDC`` namespace." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: e123b23ac80e42c48e7269db63603b14 -#: 55cbd71e92a84fe3b5e91b54ae4239b2 +#: 42651689565a4f659595b76a6acfcdf9 +#: b5bb6e4c1b91458992ad5cc6aa45b65b msgid "Whether a token is needed for the RFC7591 dynamical client registration." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 #: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 3b3bdd5aa6314cfcb7b9cfb77b483f15 -#: 7ec330c59cce4470a3f3931802f8ec6c +#: 74c82ecf0d26483d95602831ea80d317 +#: 1a5d76c5f0bf449ca2f10eb09d763133 msgid "If :py:data:`True`, no token is needed to register a client. If :py:data:`False`, dynamical client registration needs a token defined in :attr:`DYNAMIC_CLIENT_REGISTRATION_TOKENS`." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 -#: fd976782671744fb8998468a68d6f1d5 +#: 9cc1f719627f4fa9877c6d71ebee8cfb msgid "A list of tokens that can be used for dynamic client registration." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: 9f91cd9c4da74e76aac7c9f57ea9aeb7 +#: 4977ce912d574ba0ad7bb2277bac0f8b msgid "JSON Web Token settings." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: b6f400144f3743ff8c353f415cfae652 +#: 2a0ccf72ff4544c8a5312dc53072e9a8 msgid "Force the nonce exchange during the authentication flows." msgstr "" #: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: b8733cedfcba4de59e70355c374f1b77 +#: 454542d908e54f0b9656bae3be66b460 msgid "This adds security but may not be supported by all clients." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:1 -#: 0b6f5510096547fb8ff268094660f39d +#: 519544e915d749bb96e4805892a2d025 msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:3 -#: 658450cea27b4d55b7140950da041350 +#: 360190dde8d4438383eae53c2bcb6e01 msgid "You can generate a RSA keypair with:" msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: 712ca0ac33fb47ad9ca53e93b716b407 +#: 4ba1436c88f94682b79f81767c1c327d msgid "The key algorithm." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: f18ef7f2a052494a8c4f0d3d9c1219f0 +#: ec5ef325c43844a0b38aa232a2e4b00a msgid "The time the JWT will be valid, in seconds." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: 594a93b7b29e4639ac9a3109bbe1a193 +#: 2aad78ce32cd49e1a8712c73435bd201 msgid "The URI of the identity provider." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 14627eb13de143f2b882965d84ef7d90 +#: e23b721b88d64f7c891f019ef378ed94 msgid "The key type." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 1adfe3a4acfb4edcacf7f81f407cb3c8 +#: 064c3025c8a3474e858d4acc00a82628 msgid "The private key." msgstr "" #: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 #: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 28eed500e3c3488587dff2b27ed5f1d4 -#: 359765d616494bd2b3112277f4ad46e2 +#: eda7d0b15cb6453684e5fc73b7c9c050 +#: 2b68f08791664f8fa01919140483ef28 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 -#: 44d71531b8b3470096d4a67d0473e0b5 +#: d541b5f7bd5e4621a9a368758fa2ee7b msgid "The public key." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:1 -#: 493599f720634669a2d3915f539c886a +#: 62df54c7ec2545228fa779976128efd3 msgid "Mapping between the user model and the JWT fields." msgstr "" #: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:3 -#: bb5aac8b43484f8d80d4897d9c6fcbce +#: fe45b2eacd8e4d85ae74091574ea78d4 msgid "Fields are evaluated with jinja. A ``user`` var is available." msgstr "" #: ../../canaille/scim/configuration.py:docstring of canaille.scim.configuration.SCIMSettings:1 -#: e1011b91262441b591888e3141a656c2 +#: 5c551771ac8f4526b1e10cbd263497ed msgid "SCIM settings." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:1 -#: 92d2dc92ffa74589b25aee4f5755709f +#: 5d5cd8d5ceae44ad9f9418b68385a053 msgid "Settings related to the SQL backend." msgstr "" #: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:3 -#: c101475e5aa041dfa6d28d163249ce96 +#: ff1f02cc3b1c4f87bf478bbff06c9d1c msgid "Belong in the ``CANAILLE_SQL`` namespace." msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:1 -#: b3f32d0290cc464eba21274a9d6adee7 -#: d16a0bb267524300b322d799a4c4e625 +#: 183b468db0b64939af2bed5605cd1717 +#: a5e6af0a8a494ee587152fde58a5d4a0 msgid "Whether to automatically apply database migrations." msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:1 #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:3 -#: d7b93753c34544649009223213e32646 -#: f3bf12200cab439492211280b2f8ab39 +#: cec792543e2f47d0b714286530b0fe60 +#: 26834aea0d17481baa7f69e02cf3f593 msgid "If :data:`True`, database migrations will be automatically applied when Canaille web application is launched. If :data:`False`, migrations must be applied manually with ``canaille db upgrade``." msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:1 #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE:8 -#: 1ee1bebd3892435980098de1b3dfee84 -#: 8a05dbaf90814ba6857c3639c0307e6f +#: 738612e28f2b463f93e7226e3d20fd10 +#: 7fed2cd172db4c04812a0abb93976b39 msgid "When running the CLI, migrations will never be applied." msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: 92cb84e4c0f841cebc369295a7fdda02 -#: d45720cbcca84971a478582cac375c57 +#: bd0750774c93430cae29e0d8e4787254 +#: 0ef1272a46d44a22a30797115f0af02a msgid "The SQL server URI. For example:" msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:1 -#: 0b2cc1fda83445a0a64f7679c77a23e7 -#: 65d40bc41fa74a14a5c9e68bd271cd73 +#: 03ed990b897646f2a0765c3a229e739b +#: a138b0a767ca4cd5a5a23d19cdca4710 msgid "Password hashing scheme." msgstr "" #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:1 #: ../../docstring of canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:3 -#: 0941340b46e34fc9b0441364684bef69 -#: e9fd6f968ce34492983c5700c66e30ab +#: a43ed062c85a40e9b08981b5ab416ead +#: b0027e93b1a34cc9b02520be466232d6 msgid "Defines password hashing scheme in SQL database. examples : \"mssql2000\", \"ldap_salted_sha1\", \"pbkdf2_sha512\"" msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:1 -#: 4bd95c42d0464678b236b83a5b15ce28 +#: 128fbb38bfa540a994f6f201beaee82e msgid "Settings related to the LDAP backend." msgstr "" #: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:3 -#: 2918e6fcbd604d07b4fe749b802a5497 +#: 100a9e252be8493e8d1d48eb38a8e135 msgid "Belong in the ``CANAILLE_LDAP`` namespace." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: 94872d97f39e4585b113d8c9a0e7bc3b +#: 47b3f748e77748f68bd8ba5c354a9d86 msgid "The LDAP bind DN." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: ecc904b43450420283ad28aa97262533 +#: 2f92b735514e4c34b9db597c73383442 msgid "The LDAP bind password." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: b5874dd01e1d48728717c46f1b18aff4 +#: 8d0dd0856df74d2d99b2eed985b3c0ca msgid "The LDAP node under which groups will be looked for and saved." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 2900a3f68b294d53bf586c784b38ef6c +#: 08c36b2d3370456b84ae868449165d01 msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 351ec3e1fa654b7dbb0bab587e7342aa +#: 513dd769ce3146a48ed59eea4c50b4bc msgid "The object class to use for creating new groups." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: 3a9b2571aa514ed1acb651f3f3f275cb +#: 31c53d21e57349bf8c91d0cda788f2d1 msgid "The attribute to use to identify a group." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: f6f3aa5efe654eb58a8fa9fed074c3e5 +#: f7b3ff8b2f3245248f8d60d7d7ac5c01 msgid "The attribute to identify an object in the Group DN." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: ea4b753865704bff95cdd42cc36e747e +#: a256c048763843cba0f28de6cfd67b5e msgid "The LDAP root DN." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: 85e66e695c894649bf8ee632f2b13288 +#: c9b6e77a26524127a95b02e2bb3909d9 msgid "The LDAP connection timeout." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: 2d6ac8e4ca29476299bc724591c2bb08 +#: 3875f8c8bff14f26bcf7785a2be0807b msgid "The LDAP server URI." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: d38953bd73ff44849d2c89c7a331866b +#: c43f2e3c144b4c88926fc87f4c2c1dd5 msgid "The LDAP node under which users will be looked for and saved." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: eccfba5ea42049468d3c2ecd56873d3d +#: 9abbfa9584664b5a806e9aaebb9cd85e msgid "For instance `ou=users,dc=mydomain,dc=tld`." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 10373e7c9a7247189e882f65712029a5 +#: 6ad15321a63546959822826fc2736bf9 msgid "The object class to use for creating new users." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 0f532108ff3744a68169ac7844333eb1 -#: 11675e92ebe64a0e9744fe5a139e3d7c +#: 4fd51e2ffb454e1c9cff561fef1f5838 +#: d90bbe2fb831484bad57736e0d3981ff msgid "Filter to match users on sign in." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: 8292ca6daf2a4f41ae77bde2a9e3149d -#: 0e5f0e82d468426cb5bb0e72c7375baf +#: 998a7080c0d3430cb4762e26f230c8e1 +#: ba1a5d345ddf4bb188aff4134709679e msgid "For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is supported and a ``login`` variable is available, containing the value passed in the login field." msgstr "" #: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 -#: 487f702b2d0346368d0a723ed1ece547 +#: a35fd5683c774b5bbe016b1f413cfd81 msgid "The attribute to identify an object in the User DN." msgstr "" -#: ../references/configuration.rst:94 -#: e085eece136643b4a7485f9b3e75d66c +#: ../references/configuration.rst:95 +#: 7d9bc732be3c4c9bbb6388b70cbdfdac msgid "Example file" msgstr "" -#: ../references/configuration.rst:96 -#: c3740d7202614680bf913fffa7b1cd02 +#: ../references/configuration.rst:97 +#: 1fcbc6c40e264bc4ac8df9278d0fa093 msgid "Here is a configuration file example that can be generated with the :ref:`canaille export-config ` command:" msgstr "" #: ../references/index.rst:2 -#: 157440efba2144bdbc65e8486d4a0662 +#: 2c8050c391844d79bc82d9808c18a805 msgid "References" msgstr "" #: ../references/models.rst:2 -#: 7210140f1b6c4340936c05dcede9d329 +#: 9464b3d1dc7144b5a7d466844b846534 msgid "Data models" msgstr "" #: ../references/models.rst:4 -#: 2e89b9fed4d641e38d3ecad3e76b52ce +#: cffa2a640cd840b0aed95ec13cd4133c msgid "This reference details the data models used by Canaille. This is mostly useful for developers." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features:1 #: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 #: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1 -#: 00d63b8f178149178c5a366039477dbf -#: 527b8051ce384bf992114ef74fad2ed1 -#: 97568960eccd42499d453c295ae1b1e5 +#: cc58acd1fb7e41d0bcd05376c31eddc5 +#: 20ee53ed74154d27b5c00beb2d6c52ad +#: 7bbbf49e872d4872b96eb6392464f8ad msgid "Bases: :py:class:`object`" msgstr "" #: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 -#: f78877079ac54a03a90452a66b306f69 +#: 64c59c2e65054982be6b01d856a81edc msgid "The backend model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:3 -#: b8c30fed7cc540b2892d6486b84b6cbb +#: ea89cfadc19d451b8cd511111db7ada4 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 -#: 2abfa5d8c54f40b0925977afbd9cdc3f +#: 60578dac9f584794b54b165567f7e9f1 msgid "The model abstract class." msgstr "" #: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:3 -#: 229c1de2dade4148a0b2ec5dcea6cd84 +#: 80da9eaca74d458aadef9c6bcb7f65fd msgid "It details all the common attributes shared by every models." msgstr "" #: ../../docstring of canaille.backends.models.Model.created:1 -#: 07de51ddd7b94538842107f6801beaf3 +#: 9b0bc742c9b6467eac050a4a9361e9fa msgid "The :class:`~datetime.datetime` that the resource was added to the service provider." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:1 -#: 94ae8f933b144751b32f70273d2ca2aa +#: 6e8614b76835497da53c65584d024b9f msgid "A unique identifier for a SCIM resource as defined by the service provider. Id will be :data:`None` until the ``Backend.save`` method is called." msgstr "" #: ../../docstring of canaille.backends.models.Model.id:5 -#: d7d88b9dcb7348b0a756560c059f426c +#: 22b32dfa360b48b2a8e8a2bd1deb8363 msgid "Each representation of the resource MUST include a non-empty \"id\" value. This identifier MUST be unique across the SCIM service provider's entire set of resources. It MUST be a stable, non- reassignable identifier that does not change when the same resource is returned in subsequent requests. The value of the \"id\" attribute is always issued by the service provider and MUST NOT be specified by the client. The string \"bulkId\" is a reserved keyword and MUST NOT be used within any unique identifier value. The attribute characteristics are \"caseExact\" as \"true\", a mutability of \"readOnly\", and a \"returned\" characteristic of \"always\". See Section 9 for additional considerations regarding privacy." msgstr "" #: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:1 -#: 59412a9f8ba344259fe18360f8ad0e0e +#: 22045de5cdec4f3ea08b7bcdcfc3f489 msgid "Return a unique value that will be used to identify the model instance." msgstr "" #: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:3 -#: 215be5ff439c4d518a0137484b629d30 +#: 957decf291e34f2ea255de72c99360d7 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 -#: a2e04b5c9a1a4e109f35224f6c270ac8 +#: 20b202c7411b4e969c280703a8d66820 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 -#: 0de081d4894541c08e41ca7a0c216ebb +#: a0587e79966247689eb50878c9844855 msgid "If this resource has never been modified since its initial creation, the value MUST be the same as the value of :attr:`~canaille.backends.models.Model.created`." msgstr "" @@ -5129,1136 +5146,1136 @@ msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1 #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Consent:1 #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1 -#: 95200556e5fd4c3e96a87ae0988d5b90 -#: a92931b1930143479ac485a7bf75a7cf -#: d74ca2c73cb44eabae1708db23965ff1 -#: 42003b2470a84211bf09d6f2d8c91f33 -#: 6b258f9477dc43d695c9afca43d0b593 -#: 135ee9d65b5d4f6ebcb73d824a667ee8 +#: d4072ebbca6b49f1aab088fe911ecb54 +#: feb1d6df7f5440de814e6be97b7b06f1 +#: 8601bc8f9cc144149b1964245b1fc830 +#: 97c5c48873c34a64854c5a7c63c9fa2d +#: 4448c842b1c741c39661c051d82284df +#: 64f5158668d94f15a5ef4077fd75c284 msgid "Bases: :py:class:`~canaille.backends.models.Model`" msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: 2b0aae9a8175418d93f6f8505bb091b8 +#: 2b1ea8bed0444f5593163e8ade711d80 msgid "Group model." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.Group:3 -#: 84497510e2fd417380cb63553c62568b +#: eeb292ab4d1a4c6295c26f9652c502b5 msgid "Based on the `SCIM Group schema `_." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:1 -#: e1ce9925d4d14d8dbecf563f1f87448d +#: 2f54f10b629b43afa4ea26bbf0824462 msgid "A human-readable name for the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.display_name:3 #: ../../docstring of canaille.oidc.basemodels.Client.client_id:1 -#: a1031b26340e47f6b7ef1971fbdcd3ee -#: bbd11ee7687c49749c15d1306329cfd2 +#: 7f8c8468479248bea8b5d3b7063dbaad +#: 4d83e8505cd846239d2a731ab1578655 msgid "REQUIRED." msgstr "" #: ../../docstring of canaille.core.models.Group.members:1 -#: 15bda8a2196b4fbf87535cb0806e4e5a +#: e53a160f69084a20bdb9cae1e6462545 msgid "A list of members of the Group." msgstr "" #: ../../docstring of canaille.core.models.Group.members:3 -#: b98032fa58b44475afdd07c312c67a88 +#: ea6f637bfe234839a9407750e7effc93 msgid "While values MAY be added or removed, sub-attributes of members are \"immutable\". The \"value\" sub-attribute contains the value of an \"id\" attribute of a SCIM resource, and the \"$ref\" sub-attribute must be the URI of a SCIM resource such as a \"User\", or a \"Group\". The intention of the \"Group\" type is to allow the service provider to support nested groups. Service providers MAY require clients to provide a non-empty value by setting the \"required\" attribute characteristic of a sub-attribute of the \"members\" attribute in the \"Group\" resource schema." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: ce0580952f5d49ddba641f0ef001a3c3 +#: af4b8d15bdd745fe9b3944f45769457d msgid "User model." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User:3 -#: 39c68fec027b46d984e9a5bc32be88ab +#: 84c6a533b09c4382a2ff46731dfe4a07 msgid "Based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password Management Extension `_ draft. Attribute description is based on SCIM and put there for information purpose. The description may not fit the current implementation in Canaille." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 -#: 64119a0ec622449f85ee4921ed51266e +#: f10dcedbf76c4f9da0463564c9dd3a2a msgid "Whether or not the user has the :class:`~canaille.core.configuration.Permission` according to the :class:`configuration `." msgstr "" #: ../../docstring of canaille.core.models.User.department:1 -#: 607d5d0137244fbbb510753353082440 +#: 9dca2b48f92640fc8aea0354a5bba562 msgid "Identifies the name of a department." msgstr "" #: ../../docstring of canaille.core.models.User.display_name:1 -#: 42d6ba387caa457b88ef9d50a0e3ffff +#: a4f5120a04d640d1b8438986987d9ce5 msgid "The name of the user, suitable for display to end-users." msgstr "" #: ../../docstring of canaille.core.models.User.display_name:3 -#: 666e96e0fbcf4e92bfa213ed7d28476f +#: b38b9de57bfc4e0fb665f8637ed2a479 msgid "Each user returned MAY include a non-empty displayName value. The name SHOULD be the full name of the User being described, if known (e.g., \"Babs Jensen\" or \"Ms. Barbara J Jensen, III\") but MAY be a username or handle, if that is all that is available (e.g., \"bjensen\"). The value provided SHOULD be the primary textual label by which this User is normally displayed by the service provider when presenting it to end-users." msgstr "" #: ../../docstring of canaille.core.models.User.emails:1 -#: 172bbafdb8fd42d59e6159bdd3f72ecd +#: a28d68f5db494aa3a86cd08d49eb2bca msgid "Email addresses for the User." msgstr "" #: ../../docstring of canaille.core.models.User.emails:3 -#: e19d3c13b7df4249bb535b10e3d41e33 +#: 2e8dc6ba169d4fc3af504718f08942b2 msgid "The value SHOULD be specified according to [RFC5321]. Service providers SHOULD canonicalize the value according to [RFC5321], e.g., \"bjensen@example.com\" instead of \"bjensen@EXAMPLE.COM\". The \"display\" sub-attribute MAY be used to return the canonicalized representation of the email value. The \"type\" sub-attribute is used to provide a classification meaningful to the (human) user. The user interface should encourage the use of basic values of \"work\", \"home\", and \"other\" and MAY allow additional type values to be used at the discretion of SCIM clients." msgstr "" #: ../../docstring of canaille.core.models.User.employee_number:1 -#: b93e824239894d9eaac871e81356b778 +#: 79841b5d90014511b7ecc880231478b2 msgid "A string identifier, typically numeric or alphanumeric, assigned to a person, typically based on order of hire or association with an organization." msgstr "" #: ../../docstring of canaille.core.models.User.family_name:1 -#: cadcfbbb37f547919399fed280028a42 +#: 16aa48af560141d1bd06702c26ba9ecf msgid "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\")." msgstr "" #: ../../docstring of canaille.core.models.User.formatted_address:1 -#: 60803382bacf49a2a54a15a4aab178bd +#: 58e928fc03c64534a1df21f73e808396 msgid "The full mailing address, formatted for display or use with a mailing label." msgstr "" #: ../../docstring of canaille.core.models.User.formatted_address:4 -#: bcb3b50c5efd4e298a54ffa073a34d68 +#: 675ca9b7c733474380dd65fe0c7516ce msgid "This attribute MAY contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.formatted_name:1 -#: 5749d237e39b420dbd2997e41232bc18 +#: 37bab37d795f4acca955351abb94622a msgid "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")." msgstr "" #: ../../docstring of canaille.core.models.User.given_name:1 -#: e1a376b510324d6a8bf6984df29e7369 +#: c5179f2ecbc14223a722b7aa06218469 msgid "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\")." msgstr "" #: ../../docstring of canaille.core.models.User.groups:1 -#: 7ed382b7951d44259b3f9f7c5a449c62 +#: 061d50984f5249ea9c5aaf4856121c6c msgid "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated." msgstr "" #: ../../docstring of canaille.core.models.User.groups:4 -#: 30ddf554ac7e4506844c99c532d96517 +#: 0a5e7201370d49fd9b47293aa2fce21d msgid "The values are meant to enable expression of common group-based or role-based access control models, although no explicit authorization model is defined. It is intended that the semantics of group membership and any behavior or authorization granted as a result of membership are defined by the service provider. The canonical types \"direct\" and \"indirect\" are defined to describe how the group membership was derived. Direct group membership indicates that the user is directly associated with the group and SHOULD indicate that clients may modify membership through the \"Group\" resource. Indirect membership indicates that user membership is transitive or dynamic and implies that clients cannot modify indirect group membership through the \"Group\" resource but MAY modify direct group membership through the \"Group\" resource, which may influence indirect memberships. If the SCIM service provider exposes a \"Group\" resource, the \"value\" sub-attribute MUST be the \"id\", and the \"$ref\" sub-attribute must be the URI of the corresponding \"Group\" resources to which the user belongs. Since this attribute has a mutability of \"readOnly\", group membership changes MUST be applied via the \"Group\" Resource (Section 4.2). This attribute has a mutability of \"readOnly\"." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.has_password:1 -#: ce6123edcdac45dcb609f9a4b0200d1d +#: e827385c8d30474098b4ccf3bb1d8596 msgid "Check whether a password has been set for the user." msgstr "" #: ../../docstring of canaille.core.models.User.hotp_counter:1 -#: 670076e413414d568ca78130bcb720a8 +#: a3b5352b584240058b0b3afef1536d32 msgid "HMAC-based One Time Password counter, used for multi-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.last_otp_login:1 -#: f05f16c792be40c1b0cd7820a98dcd31 +#: 1363af9c832b4366bd4700ddf91a2222 msgid "A DateTime indicating when the user last logged in with a one-time password. This attribute is currently used to check whether the user has activated one-time password authentication or not." msgstr "" #: ../../docstring of canaille.core.models.User.locality:1 -#: deb02a93273541b9bf4b867edc73dcbe +#: bbd41a294ed84acd8c582b71b1871ba6 msgid "The city or locality component." msgstr "" #: ../../docstring of canaille.core.models.User.lock_date:1 -#: 778413c818774492b85e0b1ccb53d7f9 +#: e4314eb3e9b0411d9438bd3d7bfb739c msgid "A DateTime indicating when the resource was locked." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.locked:1 -#: aa9f2ed249ea4af1b153b101bb06a521 +#: 5954628c9b1a44f3aeb6e15c9a83316e msgid "Whether the user account has been locked or has expired." msgstr "" #: ../../docstring of canaille.core.models.User.one_time_password:1 -#: bc10e12fd60b46a1a475640ca7c68dee +#: e69f35fb54964d9995c07db211dc4af3 msgid "One time password used for email or sms multi-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.one_time_password_emission_date:1 -#: 07378af7ec4f49c2aefa68de64112301 +#: 3b1cd9ff988c4dfd8ca3d64f64bcef55 msgid "A DateTime indicating when the user last emitted an email or sms one-time password." msgstr "" #: ../../docstring of canaille.core.models.User.organization:1 -#: f72cda3d7c6e42d79bdf58e50aef2bac +#: 542b3d8fb91d447a832341150cffa46e msgid "Identifies the name of an organization." msgstr "" #: ../../docstring of canaille.core.models.User.password:1 -#: 3ca4ed99c7ae4aeab0b58cbeab0f1669 +#: 8ca7680b9800497b87d568d74f6093ec msgid "This attribute is intended to be used as a means to set, replace, or compare (i.e., filter for equality) a password. The cleartext value or the hashed value of a password SHALL NOT be returnable by a service provider. If a service provider holds the value locally, the value SHOULD be hashed. When a password is set or changed by the client, the cleartext password SHOULD be processed by the service provider as follows:" msgstr "" #: ../../docstring of canaille.core.models.User.password:9 -#: ff011b671753412baa58e61f60ad3006 +#: 377a9e3668464ee6a12b413d55f1f225 msgid "Prepare the cleartext value for international language comparison. See Section 7.8 of [RFC7644]." msgstr "" #: ../../docstring of canaille.core.models.User.password:12 -#: 57c0f3073b1140c99d3b7367369634c1 +#: 7f501d06a84143afb12cfaf75387c58d msgid "Validate the value against server password policy. Note: The definition and enforcement of password policy are beyond the scope of this document." msgstr "" #: ../../docstring of canaille.core.models.User.password:16 -#: d95f5c65b1d14efda4c6b69929444096 +#: 80f760f1504b45e4ace50bd3fc208f85 msgid "Ensure that the value is encrypted (e.g., hashed). See Section 9.2 for acceptable hashing and encryption handling when storing or persisting for provisioning workflow reasons." msgstr "" #: ../../docstring of canaille.core.models.User.password:20 -#: 3374d686e1ce48a9a514259b6156e193 +#: 694572a4b0bb47b38cf1932c7640f08f msgid "A service provider that immediately passes the cleartext value on to another system or programming interface MUST pass the value directly over a secured connection (e.g., Transport Layer Security (TLS)). If the value needs to be temporarily persisted for a period of time (e.g., because of a workflow) before provisioning, then the value MUST be protected by some method, such as encryption." msgstr "" #: ../../docstring of canaille.core.models.User.password:28 -#: b7d74209fbaa4119b8ad3b0fc6077dde +#: d15538e7582346cb9c46e0e8b397796c msgid "Testing for an equality match MAY be supported if there is an existing stored hashed value. When testing for equality, the service provider:" msgstr "" #: ../../docstring of canaille.core.models.User.password:32 -#: f55b25b39d9346778bafa147c2b61f40 +#: 45c0566525f342c4997959ed64b82887 msgid "Prepares the filter value for international language comparison. See Section 7.8 of [RFC7644]." msgstr "" #: ../../docstring of canaille.core.models.User.password:35 -#: 27cbda34ea6e4945b9d8fe6df9140a13 +#: 273c75a144bb42c69302ea8ef2087dca msgid "Generates the salted hash of the filter value and tests for a match with the locally held value." msgstr "" #: ../../docstring of canaille.core.models.User.password:38 -#: 359b1462ce544eaba8712b56b1107ab6 +#: 1d3759785d92470fa33d1cff7b450101 msgid "The mutability of the password attribute is \"writeOnly\", indicating that the value MUST NOT be returned by a service provider in any form (the attribute characteristic \"returned\" is \"never\")." msgstr "" #: ../../docstring of canaille.core.models.User.password_failure_timestamps:1 -#: b5ef52190fa044c18422df2b80c53823 +#: bfce99770b7546ba99745078eeb0fa7a msgid "This attribute stores the timestamps of the user's failed authentications." msgstr "" #: ../../docstring of canaille.core.models.User.password_failure_timestamps:4 -#: 6b3152d03da6471e8e723f99dc5f292c +#: 179d8373c9d74625be428b2e25eac43f msgid "It's currently used by the intruder lockout delay system." msgstr "" #: ../../docstring of canaille.core.models.User.password_last_update:1 -#: 0f95b6e0b63c4c67bf70550ba293341c +#: af6ecc4fd8584acdb22f59c53f6bab11 msgid "Specifies the last time the user password was changed. By default, the date of creation of the password is retained." msgstr "" #: ../../docstring of canaille.core.models.User.phone_numbers:1 -#: 00c3dbc1e0cc4d7e8c5f923edd7b7701 +#: acfa10e9ab0a47ca9092858e13a7647f msgid "Phone numbers for the user." msgstr "" #: ../../docstring of canaille.core.models.User.phone_numbers:3 -#: bbdff0028bc14a7e89b08ed710c67df9 +#: c9281ebd867643f0a903162746d24a51 msgid "The value SHOULD be specified according to the format defined in [RFC3966], e.g., 'tel:+1-201-555-0123'. Service providers SHOULD canonicalize the value according to [RFC3966] format, when appropriate. The \"display\" sub-attribute MAY be used to return the canonicalized representation of the phone number value. The sub- attribute \"type\" often has typical values of \"work\", \"home\", \"mobile\", \"fax\", \"pager\", and \"other\" and MAY allow more types to be defined by the SCIM clients." msgstr "" #: ../../docstring of canaille.core.models.User.photo:1 -#: 03120de98afd4f9c9fb4bb94afc61192 +#: 50f9e6b0306d4b7fabfdf2cc61772ba7 msgid "A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) that points to a resource location representing the user's image." msgstr "" #: ../../docstring of canaille.core.models.User.photo:5 -#: 1c2bc89142be4000ab81d78d7b7b4955 +#: 82a54ed56e5b4567b0e3eb739ca1d2da msgid "The resource MUST be a file (e.g., a GIF, JPEG, or PNG image file) rather than a web page containing an image. Service providers MAY return the same image in different sizes, although it is recognized that no standard for describing images of various sizes currently exists. Note that this attribute SHOULD NOT be used to send down arbitrary photos taken by this user; instead, profile photos of the user that are suitable for display when describing the user should be sent. Instead of the standard canonical values for type, this attribute defines the following canonical values to represent popular photo sizes: \"photo\" and \"thumbnail\"." msgstr "" #: ../../docstring of canaille.core.models.User.postal_code:1 -#: 436b0c1d18ee4d63af393161ef8b20ad +#: cd0aaccd13a146688997b42c5f9ab525 msgid "The zip code or postal code component." msgstr "" #: ../../docstring of canaille.core.models.User.preferred_language:1 -#: b2bef1e62ca040cb9d2f2c4785355396 +#: 9d901e4273814a669eeb0700e14e3840 msgid "Indicates the user's preferred written or spoken languages and is generally used for selecting a localized user interface." msgstr "" #: ../../docstring of canaille.core.models.User.preferred_language:4 -#: 6fe3d7b6ebf3486aab27b83b033ad5c2 +#: be00827bdfa148acbe6954cdad70e44a msgid "The value indicates the set of natural languages that are preferred. The format of the value is the same as the HTTP Accept-Language header field (not including \"Accept-Language:\") and is specified in Section 5.3.5 of [RFC7231]. The intent of this value is to enable cloud applications to perform matching of language tags [RFC4647] to the user's language preferences, regardless of what may be indicated by a user agent (which might be shared), or in an interaction that does not involve a user (such as in a delegated OAuth 2.0 [RFC6749] style interaction) where normal HTTP Accept-Language header negotiation cannot take place." msgstr "" #: ../../docstring of canaille.core.models.User.profile_url:1 -#: 6d2215d6d30044f1b29aa3e288971016 +#: 6b26a1d701b04f4d88be374a9def7afc msgid "A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) and that points to a location representing the user's online profile (e.g., a web page)." msgstr "" #: ../../docstring of canaille.core.models.User.profile_url:5 -#: addc0da91e3f4ff68e8ae29d4e8e982b +#: 809b601249c541bd87cf7892ad42f202 msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:1 -#: 46988c082377468293f23749349f1271 +#: 527f545745314e98ba52923ab3a5fb60 msgid "The fields the user can read according to the :class:`configuration ` configuration." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:3 -#: ff7a177c13bf443ba841f0dbafc95502 +#: bcd0425779c443cfa1ae301964dd9811 msgid "This does not include the :attr:`writable ` fields." msgstr "" #: ../../docstring of canaille.core.models.User.region:1 -#: 54d476c86d714028b890dcbfa9b126a0 +#: 898b2bb8269e48e2b4da7484a9816d88 msgid "The state or region component." msgstr "" #: ../../docstring of canaille.core.models.User.secret_token:1 -#: affd7f3bcfd84b53a67b399c3484b58d +#: 308e634d8b9d4e13bdba8195c19912ff msgid "Unique token generated for each user, used for multi-factor authentication." msgstr "" #: ../../docstring of canaille.core.models.User.street:1 -#: adb33520f7b54d90af1d653ddc084565 +#: 6eb073166db74e1bbcd5cff339b4966c msgid "The full street address component, which may include house number, street name, P.O." msgstr "" #: ../../docstring of canaille.core.models.User.street:4 -#: 570e93159d0d4e0f9f097773ee6d4fd5 +#: bc0b73d2ef4c4b9f8295d509bd202bbd msgid "box, and multi-line extended street address information. This attribute MAY contain newlines." msgstr "" #: ../../docstring of canaille.core.models.User.title:1 -#: ab30e52b685448c5bb055d08dbb863b0 +#: fd0ea22df37d48bebd1a68040d625e81 msgid "The user's title, such as \"Vice President\"." msgstr "" #: ../../docstring of canaille.core.models.User.user_name:1 -#: 7e4796c7cd6549b4b43044620ae3b9dd +#: 9c46e6e6221b47b89a68a15ab6dbe025 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 -#: dd07e8d29dcd4ac097bc40b8a41c5136 +#: 36661c10c3644fc7a00e1717b03049c4 msgid "Often displayed to the user as their unique identifier within the system (as opposed to \"id\" or \"externalId\", which are generally opaque and not user-friendly identifiers). Each User MUST include a non-empty userName value. This identifier MUST be unique across the service provider's entire set of Users. This attribute is REQUIRED and is case insensitive." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.User.writable_fields:1 -#: 4c32ec8bab0d4f6c8188c00cef609f7a +#: 12b028d78a784694a7bdaeae786714b2 msgid "The fields the user can write according to the :class:`configuration `." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.string_code:1 -#: 5bde5956843849e0b7911b06ba9faf98 +#: cc6e07e16b474943b3de7804c1ff65ae msgid "Add leading 0 if the code length does not match the defined length." msgstr "" #: ../../canaille/core/models.py:docstring of canaille.core.models.string_code:3 -#: 9b4a55eb892843f3a5842da2f4935b49 +#: a41aeb872e114092bb4124cc2adc6843 msgid "For instance, parameter ``digit=6``, but ``code=123``, this method would return ``000123``:" msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 -#: d91d44c12bd748818ca97c9b0a0b1c8e +#: 5df1c59894cc4c059437d6de06df3cd0 msgid "OpenID Connect temporary authorization code definition." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1 -#: 3b2c7d49b9414925a62c4afbb39e2313 +#: 1a5df8a7705f4cd49e188e2e43379604 msgid "OpenID Connect client definition." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:3 -#: dd92ae944b54435b905590781f1bbb8d +#: 00a364cf2b5b47ec9f745d735ef46561 msgid "Based on the :rfc:`OAuth 2.0 Dynamic Client Registration protocols <7591>` and the `OpenID Connect RP-Initiated Logout `_ specifications." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 -#: 048bfc169ed94341bf34da60e516d7be +#: f4f729a3ad8f4b739e5dea893e822443 msgid "OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for any other registered client, though an authorization server MAY issue the same client identifier to multiple instances of a registered client at its discretion." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:1 #: ../../docstring of canaille.oidc.basemodels.Client.client_secret:1 #: ../../docstring of canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 -#: 17e65ad5e4ce47579bee4ceee958c952 -#: 6b693a176dc84542bf2db45c4aff08d5 -#: be4041d9abeb4b7c952d504c1891ce34 +#: e58f4bd6c62042aca5074e7a91a489e1 +#: f360d9fd56ce47a9b7ebd756a0572305 +#: a167a779064b452bb59772d74e9e8f92 msgid "OPTIONAL." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 -#: 5e9829ba1fc04ca5af260ab2fafeee63 +#: f94c03a3c86e41c6bbf7b1eea9404def msgid "Time at which the client identifier was issued. The time is represented as the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the date/time of issuance." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_name:1 -#: 4fc3f141eb104e41b529bde80cd3a427 +#: 70923c2c546640ef8be66699d2a865ff msgid "Human-readable string name of the client to be presented to the end-user during authorization." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_name:4 -#: 017cd3b82d3a40ceac39e67a2656c0eb +#: 453a1390935d46ef90afb2cd60f20428 msgid "If omitted, the authorization server MAY display the raw \"client_id\" value to the end-user instead. It is RECOMMENDED that clients always send this field. The value of this field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3 -#: c2303be9904b4493bb7bca8ab12d2a7b +#: 70ac0888cc574647bfdebbfc219d5966 msgid "OAuth 2.0 client secret string. If issued, this MUST be unique for each \"client_id\" and SHOULD be unique for multiple instances of a client using the same \"client_id\". This value is used by confidential clients to authenticate to the token endpoint, as described in OAuth 2.0 [RFC6749], Section 2.3.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:1 -#: b89ea457ff9d4b0294909ca110266550 +#: 126b8faed34e448bbe082f1d8154b28a msgid "REQUIRED if \"client_secret\" is issued." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:3 -#: 237306c7e2a44364958a03ca6ccb04b1 +#: 7fba17c9eac748a2bda97efbcea6b4ac msgid "Time at which the client secret will expire or 0 if it will not expire. The time is represented as the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the date/time of expiration." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1 -#: ed0ca4e0ddb744839c806f8b597dd7f6 +#: e4dd2aadee4648928ef3f98922b5f787 msgid "URL string of a web page providing information about the client." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 -#: 3bbb8923a97d4590a5c4b8dd26ffc5e6 +#: 0001183b9f134d2cbbab4a3daf3621bc msgid "If present, the server SHOULD display this URL to the end-user in a clickable fashion. It is RECOMMENDED that clients always send this field. The value of this field MUST point to a valid web page. The value of this field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.contacts:1 -#: 5443abe462314116a4f7c075368f6ed4 +#: 80527e50a9944ffa9651f3bba586a300 msgid "Array of strings representing ways to contact people responsible for this client, typically email addresses." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.contacts:4 -#: 2beba6b33cf14ff4a44fb0f2ec97819c +#: 5c1771b27f6449559a912e6cc8b48d34 msgid "The authorization server MAY make these contact addresses available to end-users for support requests for the client. See Section 6 for information on Privacy Considerations." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:1 -#: 87dfbb2783e4490bb638a56c0c7f1c09 +#: 154c49feda664287941441460ce57d18 msgid "Array of OAuth 2.0 grant type strings that the client can use at the token endpoint. These grant types are defined as follows:" msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:4 -#: 4b608ef3272148b99469251e89c18d0b +#: 440d6a7974fb4fc881624b94abcf5557 msgid "\"authorization_code\": The authorization code grant type defined in OAuth 2.0, Section 4.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:7 -#: bf93f753c3ec4f03a8612e3366a75042 +#: f3aaeee516904b0bb7f15ce193cae1d5 msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 -#: 1128337a2be744998649ca6a2dce39d4 +#: 9e92a9536aea4d0aaf7a642033f80d26 msgid "\"password\": The resource owner password credentials grant type defined in OAuth 2.0, Section 4.3." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:13 -#: 7cb3b56f443f4a18997c7dda782407f5 +#: b5fc3b5b6d334f138d6966d3267e888d msgid "\"client_credentials\": The client credentials grant type defined in OAuth 2.0, Section 4.4." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:16 -#: 878b969028264a34906a3c670f4b927c +#: d5fddc891cf14723b8a0d6e445fb0424 msgid "\"refresh_token\": The refresh token grant type defined in OAuth 2.0, Section 6." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:19 -#: fca67e110b4442aa89b458805c846b8d +#: d7c7c0fb272849a886dcac88f715bdd5 msgid "\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token Grant Type defined in OAuth JWT Bearer Token Profiles [RFC7523]." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:23 -#: e706fb67ffda464e89b1fa3a086ceab6 +#: bd337752b4b048b690cdabe4480a4ab8 msgid "\"urn:ietf:params:oauth:grant-type:saml2-bearer\": The SAML 2.0 Bearer Assertion Grant defined in OAuth SAML 2 Bearer Token Profiles [RFC7522]." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.grant_types:27 -#: 0162b596dbd84381a0bf48a27df149b2 +#: fb39c6cdf3d4470e8c16749c19b4164d msgid "If the token endpoint is used in the grant type, the value of this parameter MUST be the same as the value of the \"grant_type\" parameter passed to the token endpoint defined in the grant type definition. Authorization servers MAY allow for other values as defined in the grant type extension process described in OAuth 2.0, Section 4.5. If omitted, the default behavior is that the client will use only the \"authorization_code\" Grant Type." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwk:1 -#: 367b5f3c453e42eda87433036c1123f0 +#: 2aaa6a4667654030aa76db104f562f13 msgid "Client's JSON Web Key Set [RFC7517] document value, which contains the client's public keys." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwk:4 -#: 09fe12d929aa4a22a6fdb9720f1b1b65 +#: 39a54f4f07b84f3193c7c41af55c44aa msgid "The value of this field MUST be a JSON object containing a valid JWK Set. These keys can be used by higher-level protocols that use signing or encryption. This parameter is intended to be used by clients that cannot use the \"jwks_uri\" parameter, such as native clients that cannot host public URLs. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be present in the same request or response." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:1 -#: 11d710db01e24f2393a8899c239b52d5 +#: 0b0f1abca5144c3ea90a299c3af981e0 msgid "URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] document, which contains the client's public keys." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:4 -#: 1fc6ef40798643abbaa50de2ef5c3bc2 +#: 6abba8162c8844e2a3918ad4abe0282a msgid "The value of this field MUST point to a valid JWK Set document. These keys can be used by higher-level protocols that use signing or encryption. For instance, these keys might be used by some applications for validating signed requests made to the token endpoint when using JWTs for client authentication [RFC7523]. Use of this parameter is preferred over the \"jwks\" parameter, as it allows for easier key rotation. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be present in the same request or response." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:1 -#: 32895bd13fa645f59c7b7b0e60a1729a +#: 1eca81efdb744771b6f10560d141d2fa msgid "URL string that references a logo for the client." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 -#: b8f51780591e4af0ba663609baa4166f +#: 7b2541232f344c599233f58a60934525 msgid "If present, the server SHOULD display this image to the end-user during approval. The value of this field MUST point to a valid image file. The value of this field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1 -#: 3a81d76159734682b0c187d401ea1c19 +#: 5f7304508d924f3caae513252ef567ed msgid "URL string that points to a human-readable privacy policy document that describes how the deployment organization collects, uses, retains, and discloses personal data." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5 #: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:5 -#: 8b1d028666424ac693cf85f696cc16ef -#: c49fca04d832419d8e4115b3f700675d +#: d02ff08aeb2c46d7ba6719f2c0bebe45 +#: 0fab53d4e9d84aa1a5d7f9294f7020f7 msgid "The authorization server SHOULD display this URL to the end-user if it is provided. The value of this field MUST point to a valid web page. The value of this field MAY be internationalized, as described in Section 2.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.post_logout_redirect_uris:3 -#: e927673edf0e4e8c93e84e604143f2fc +#: 4c50ae8f6a864943ba7a714ba4ae7cc2 msgid "Array of URLs supplied by the RP to which it MAY request that the End-User's User Agent be redirected using the post_logout_redirect_uri parameter after a logout has been performed. These URLs SHOULD use the https scheme and MAY contain port, path, and query parameter components; however, they MAY use the http scheme, provided that the Client Type is confidential, as defined in Section 2.1 of OAuth 2.0 [RFC6749], and provided the OP allows the use of http RP URIs." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:1 -#: 2e9e4c6e3bc542e7812367ccc29c2be1 +#: 2ae52e795dfe4c1c95918660680b5d5a msgid "Array of redirection URI strings for use in redirect-based flows such as the authorization code and implicit flows." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:4 -#: d3e22ead2a9a47d798c5ae1e3631628f +#: 2ae51720090c47b48b1bee9bd806a92c msgid "As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with redirection MUST register their redirection URI values. Authorization servers that support dynamic registration for redirect-based flows MUST implement support for this metadata value." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:1 -#: 10a8f544adb7429cbd02a20165f8ba3f +#: 0b48edf5f4f04ee285377fbe9c0b4f7f msgid "Array of the OAuth 2.0 response type strings that the client can use at the authorization endpoint. These response types are defined as follows:" msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:5 -#: ba4c3f8968ac47d5a85fe1e85cef3d44 +#: 53429d4d045643cdb31a227f4fb4fcca msgid "\"code\": The authorization code response type defined in OAuth 2.0, Section 4.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:8 -#: 7b9ce889101a43b39e6406b4f9416db6 +#: 66578683514f4c96a8938bf440f7b5a3 msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 -#: f65f34bebb9a42559c866fdc77f10477 +#: d75456aa70c6406eb43711c89929d932 msgid "If the authorization endpoint is used by the grant type, the value of this parameter MUST be the same as the value of the \"response_type\" parameter passed to the authorization endpoint defined in the grant type definition. Authorization servers MAY allow for other values as defined in the grant type extension process is described in OAuth 2.0, Section 4.5. If omitted, the default is that the client will use only the \"code\" response type." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.scope:1 -#: a8210e214d144cc3be5abbb6f281111f +#: 68acbd54304b42eabc0a96a28a7d590c msgid "String containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.scope:5 -#: 17b4715bbd4d43ec8caa4c69cdfc2103 +#: 93a48c8763144e058db96e5571dcb9f4 msgid "The semantics of values in this list are service specific. If omitted, an authorization server MAY register a client with a default set of scopes." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_id:1 -#: 4bbb00d25b474a108e3e6197a042c74c +#: f0d25d0e92184fc1b0fb1aca38b657b1 msgid "A unique identifier string (e.g., a Universally Unique Identifier (UUID)) assigned by the client developer or software publisher used by registration endpoints to identify the client software to be dynamically registered." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_id:6 -#: 36b2ce75335a4e2da2ddc0f324d08b43 +#: 4ea489d04c954dfdaa964a94c2d3d3f8 msgid "Unlike \"client_id\", which is issued by the authorization server and SHOULD vary between instances, the \"software_id\" SHOULD remain the same for all instances of the client software. The \"software_id\" SHOULD remain the same across multiple updates or versions of the same piece of software. The value of this field is not intended to be human readable and is usually opaque to the client and authorization server." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_version:1 -#: d5d088a4791648809bbdda9a68970762 +#: a6f137efc7d24b4f90462ab1a19318ff msgid "A version identifier string for the client software identified by \"software_id\"." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 -#: d909fe3d91924eb3829ba3d3219a8cc6 +#: e9dcec2bb0734903b508d2483067e3fa msgid "The value of the \"software_version\" SHOULD change on any update to the client software identified by the same \"software_id\". The value of this field is intended to be compared using string equality matching and no other comparison semantics are defined by this specification. The value of this field is outside the scope of this specification, but it is not intended to be human readable and is usually opaque to the client and authorization server. The definition of what constitutes an update to client software that would trigger a change to this value is specific to the software itself and is outside the scope of this specification." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 -#: 3c3fe717ba7a40be87663915bb22fe95 +#: b2923ddcaac4412fae6839df5ac5ca10 msgid "String indicator of the requested authentication method for the token endpoint. Values defined by this specification are:" msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 -#: 6fea9206370145e2a8bb53284155a904 +#: ab41b9cd45324090bda324cc3c8a9386 msgid "\"none\": The client is a public client as defined in OAuth 2.0, Section 2.1, and does not have a client secret." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 -#: 3b9ad3c6cc74434d851565ef5604c788 +#: d33831b81c98405ab05939831f807669 msgid "\"client_secret_post\": The client uses the HTTP POST parameters as defined in OAuth 2.0, Section 2.3.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 -#: 376c6fd4e2be4675aca35b05b0b931ed +#: ae49a150966e4c80a1a3d173759c372b msgid "\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth 2.0, Section 2.3.1." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 -#: 12b2179009fc41eaaf9c5aa6fd9c6409 +#: 3b82ed9ad4e649e8a5366fc254658c70 msgid "Additional values can be defined via the IANA \"OAuth Token Endpoint Authentication Methods\" registry established in Section 4.2. Absolute URIs can also be used as values for this parameter without being registered. If unspecified or omitted, the default is \"client_secret_basic\", denoting the HTTP Basic authentication scheme as specified in Section 2.3.1 of OAuth 2.0." msgstr "" #: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:1 -#: f44244b370db4cb7a6b9853e524a015e +#: 8ec0be0ebe3d42259335bcc9dae46483 msgid "URL string that points to a human-readable terms of service document for the client that describes a contractual relationship between the end-user and the client that the end-user accepts when authorizing the client." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Consent:1 -#: fb2ac506b2f54a718c62be0d6ca260ca +#: a23642711de24c1c877263e46e42ea26 msgid "Long-term user consent to an application." msgstr "" #: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1 -#: c8a6275779c64467960a4eff8cf03b38 +#: d9ed07916fea45198e69ecc7fc43b6c6 msgid "OpenID Connect token definition." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_account_lockability:1 -#: 17deaf072d0b4366bb6d73ec8ea50e04 +#: d0b4e3ed61e24b579995862f9e9c5ffe msgid "Indicate whether the user accounts can be locked." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_account_lockability:3 -#: a115a9ccd71b4418b6688582729672d4 +#: 0103fb5f21244f3db1d9afb319860fdb msgid "It depends on the backend used by Canaille. This is only disabled for OpenLDAP versions under 2.6." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_email_confirmation:1 -#: cf9d3bba86e54eddb91faa5b314a28c8 +#: e576ecb50286497aa2b36ed263342abf msgid "Indicate whether the user email confirmation is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_email_confirmation:3 -#: 0a8940c08a164caab2ca5b4713b23318 +#: 65a1795a6772443d9f332a442199e93e msgid "It is controlled by the :attr:`CANAILLE.EMAIL_CONFIRMATION ` configuration parameter." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_email_otp:1 -#: bee0fa053e8f4979aeba42c67cc8d28c +#: a2ac4feba4a849579f48e52dcab0b40f msgid "Indicate whether the email OTP authentication factor is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_email_otp:3 -#: e0c889ba26f14396aeb0d0215c6928a7 +#: ec5cff7f18db4d7bb71ca1968424b98d msgid "It is controlled by the :attr:`CANAILLE.EMAIL_OTP ` configuration parameter." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_intruder_lockout:1 -#: 95486b29a1304b869c15d84a2f718e34 +#: 503a5454af8b4029aa833cae8fb03627 msgid "Indicate whether the intruder lockout feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_intruder_lockout:3 -#: 44af903f25d44c20887086b65ed8d27f +#: 8dd3002c51324b24984bd20201cc99bf msgid "It is controlled by the :attr:`CANAILLE.ENABLE_INTRUDER_LOCKOUT ` configuration parameter." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_oidc:1 -#: 1295133df2d9404a9d61d3c7e7f1669a +#: f3a9d778aa6e4cc6b73b6da8db85d29b msgid "Indicate whether the OIDC feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_oidc:3 -#: 12428defb4934cff94b55b8c54c8bc00 +#: a78c2a8e211447b0b5e13f475c8b24d5 msgid "This feature is required to make Canaille an authorization server for other applications and enable SSO. It is controlled by the :class:`CANAILLE_OIDC ` configuration parameter, and needs the ``oidc`` extra package to be installed." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_otp:1 -#: 69acc84d6c034bc79effb532bdb7c94b +#: 51cdea21743145c3ad121f2add90fe98 msgid "Indicate whether the OTP authentication factor is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_otp:3 -#: b4512d28ead344cbafc77907214f231b +#: b4b4f98cb55c492784c36f27a58027bc msgid "It is controlled by the :attr:`CANAILLE.OTP_METHOD ` configuration parameter, and needs the ``otp`` extra package to be installed." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_password_recovery:1 -#: 8b5c77e819e04a4c914e1272f5e0ad44 +#: 234fffdf7dc5451484c8e0022a6dc039 msgid "Indicate whether the password recovery feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_password_recovery:3 -#: ea8dff17157149218695b79055efa916 +#: ca9a8d5fa97242afb54e429831824d53 msgid "It is controlled by the :attr:`CANAILLE.ENABLE_PASSWORD_RECOVERY ` configuration parameter." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_registration:1 -#: 2ebc23045b914534947fc31935d4bed6 +#: e145044bb8a740bb82e9e4e7ce408124 msgid "Indicate whether the user account registration is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_registration:3 -#: 5b3466a0c5b44dbd8d7696ee28b2c6a9 +#: a3c421da12cd4c2bbb07742e0f1d88c1 msgid "It is controlled by the :attr:`CANAILLE.ENABLE_REGISTRATION ` configuration parameter." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_scim_server:1 -#: 2b7a1ee200ad43ecb995a70ce250491f +#: 1f38cd61772b46a7934868d4563b5783 msgid "Indicate whether the SCIM server feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_scim_server:3 -#: 8f3f72b2bfaf4f48a9ee32521376e2f1 +#: ffb20f41d3fc401cac013d001c1a229d msgid "This feature is required to make Canaille a provisioning server. It is controlled by the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter, and needs the ``scim`` extra package to be installed." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_sms_otp:1 -#: 9cd073a11846496ea6f8c71dab3c4061 +#: 9fc812224ca44b76be93c8130bfd67d8 msgid "Indicate whether the SMS OTP authentication factor is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_sms_otp:3 -#: 500515457dbf452d983f5768ee7dd587 +#: 870d0f1aad86431782c80176fb06ed17 msgid "It is controlled by the :attr:`CANAILLE.SMS_OTP ` configuration parameter, and needs the ``smpp`` extra package to be installed." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_smtp:1 -#: c18eb676ca0d49a18710ecf0072acd29 +#: 767f88f120134a108ef9f432a34251e5 msgid "Indicate whether the mail sending feature is enabled." msgstr "" #: ../../canaille/app/features.py:docstring of canaille.app.features.Features.has_smtp:3 -#: ae33413fc2ae4ebf853036b7ee7e18b2 +#: 8da4fc033f40409394f30912105b7a0c msgid "This feature is required to :attr:`validate user email addresses `, send email OTP passwords etc. It is controlled by the :attr:`CANAILLE.SMTP ` configuration parameter." msgstr "" #: ../references/templates.rst:2 -#: e02440995af94088b3027a6dbe328489 +#: 0316056861b546d2bb38fd1f2478dc68 msgid "Templates" msgstr "" #: ../references/templates.rst:4 -#: 852215054b5b4b3b87d875130c834415 +#: c7d13f68c59f439fa130ee4b5fe7360c msgid "This references the template files, their role and the variables available in their contexts. The intended audience for this reference is designers wishing to build their custom Canaille theme." msgstr "" #: ../references/templates.rst:8 -#: 52e04c07e78a40799d31f59a17ba6aaf +#: 2a32cb61d89e458285cc0d36cbb80e74 msgid "Base" msgstr "" #: ../references/templates.rst:10 -#: 9da532b30b1a4ff3b4a1d2f8a1bcb309 +#: 1b277eda62bc41c39eb92838f56b9492 msgid "Those templates are shared by all the pages rendered by Canaille." msgstr "" #: ../references/templates.rst:13 #: ../references/templates.rst:35 #: ../references/templates.rst:53 -#: 2907c83f238c4860bfde152f520f4310 -#: f1f90b6f3cbf4ea1ab125e9f7f67dedc -#: c2d7d4a2449140d1a0addd8abcf144aa +#: cf9dbf40e87641149d01c9221a605199 +#: a148ba7476f6466d97f8bef318e9ad1e +#: 72f4e82694ec479db2ae09b6e05a7fb8 msgid "Template files" msgstr "" #: ../../:1 -#: b283ff1ef06d4b6eab7f2da5e3cb3f39 +#: a646ebce5e7f47b98ab7f9e46b51afbd msgid "The main template inherited by almost every other templates." msgstr "" #: ../../:1 -#: b64b0352978c4a3fadaca60c12e02939 +#: 56d66838d03641acb2d083229e2c84f2 msgid "The current user, if logged in." msgstr "" #: ../../:1 -#: edce1f5dea104fc688ec91bd57406207 +#: f2a3503a82584b679348d2946ef72640 msgid "The features enabled and available in Canaille." msgstr "" #: ../../:1 -#: 930168ffd1eb421286ec98726f1b6b5b +#: 8fe867b14ee04969ac5b43bab6d3a821 msgid "The user locale." msgstr "" #: ../../:1 -#: 2a30773a1a5349639ce2595aa64ac113 +#: f92b191a8c3a4bd1a391aefb82f0c3a5 msgid "The Canaille instance defined in :attr:`~canaille.core.configuration.CoreSettings.NAME`." msgstr "" #: ../../:1 -#: 9cca63b5c2234c1f95d57d5c4b7bfb83 +#: 320f85196bd948208541671cb6d82d27 msgid "The URL of the instance logo defined in :attr:`~canaille.core.configuration.CoreSettings.LOGO`." msgstr "" #: ../../:1 -#: 9e8606bcbc5646b0882fcf489c4e76ee +#: 5f5319af88214979b1b181a84ebf312e msgid "The URL of the instance favicon defined in :attr:`~canaille.core.configuration.CoreSettings.FAVICON`." msgstr "" #: ../../:1 -#: 560cfc38c506475997a087777429f967 +#: e38d790b88d549d5bab15c80857b3cdf msgid "Whether the page is boosted by :attr:`~canaille.core.configuration.CoreSettings.HTMX`." msgstr "" #: ../../:1 -#: 0c709a7fd2784f98a51f1c2ee19d031f +#: 388c912ca6f14cd7b17c0e7105b0d041 msgid "Whether to display the menu or not." msgstr "" #: ../../:1 -#: b2429d98d36f42bf92691478245a41d3 +#: 52ca8e9a46d4434ab19e6920e608c790 msgid "Whether the app has been launched in debug mode." msgstr "" #: ../../:1 -#: 8aab3534d85349f4b7a138722a695f80 +#: 8df1b6d747e94fabb4da80b9c153db02 msgid "Whether a :attr:`~canaille.app.configuration.RootSettings.SECRET_KEY` has been defined." msgstr "" #: ../../:1 -#: 1f66a0f2698140b9af30aa4b69779a5c +#: c73be3a01c2546d1a8a645e5bc6aad4f msgid "The error page. Displayed for all kinds of errors (not found, internal server error etc.)." msgstr "" #: ../../:1 -#: 13b7071858a04402b6dce0f9d800f7af +#: a643648579374aff884f0957e62d7dad msgid "The code of the HTTP error (404, 500, etc.)" msgstr "" #: ../../:1 -#: a0e555349fb0471aa2711a673868cf33 +#: 42d432c5299d4ee48e431a93fac9ec7d msgid "The error code description." msgstr "" #: ../../:1 -#: 206ea4217db94f089c826f963becc2be +#: df67bcbc555141e1a5b62aa65b7d9f2c msgid "An optional Font Awesome icon reference." msgstr "" #: ../../:1 -#: 2d9109fb1c154018924ade600dcc4453 +#: 54d34a987e804794b60955f78251e32d msgid "Macros for Flask flash message rendering" msgstr "" #: ../../:1 -#: c1bde75d892b445aa28a7c45a12f4fcd +#: e8afd5733797483ca9363dc6b471f003 msgid "Macros for form and form field rendering." msgstr "" #: ../../:1 -#: 0d731b9f276b4b5ea747451aba0159e0 +#: 1cfe5875e08e4e0aaca972209c313173 msgid "Connects WTForms, Fomantic-UI and HTMX." msgstr "" #: ../../:1 -#: a35e463f9bb645d8bb7d8763ed9133e7 +#: 82ce34f4800e459daff036a14b577e32 msgid "Macros for rendering table paginated with HTMX." msgstr "" #: ../references/templates.rst:22 #: ../references/templates.rst:40 #: ../references/templates.rst:58 -#: 847b3c5f919f4eb096d5dd4e2513fff2 -#: 77a43205d177458aac6c53cc7b3cf4ce -#: b313cd1e3f04456a926952831ce64b8f +#: 55ae931c222e4f48812dff6d30df2fba +#: ea7a33eb1d0f46df8a4cc23c35bc862b +#: 9f61adae21b74007b8b88c9c93e1b962 msgid "Forms" msgstr "" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 14dacc5cf9204840a787eef96fd7eaec +#: 90d8e5da92f04480884c475a6ebcf4ed msgid "Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf.form.FlaskForm`" msgstr "" #: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1 -#: 5c4088c7a60d4ca9a183e7dc47db7b6d +#: 73d002679fc4404bb19faa829f04ab27 msgid "A form for table rendering of object collections." msgstr "" #: ../references/templates.rst:30 -#: affebe808f1943668796cd9dc206923c +#: 7e16bc6da813408fab6fc59b7253525d msgid "Core" msgstr "" #: ../references/templates.rst:32 -#: 15f6b7f4dc854adeb2c67fab78a4bb72 +#: 40dd3d7859314f85b745b62cf448c6f1 msgid "The core templates are displayed in the authentication and profile edition pages." msgstr "" #: ../../:1 -#: 6eec1779b4b64334800f8a09329df57d -#: 2f1af267a25d4b75bd0be079b1e93dd3 +#: edf2065927844547bb09ded075c85f16 +#: 028f4ba1bf41495cb089cef8c3dc27b4 msgid "The 'About' page." msgstr "" #: ../../:1 -#: b583067687344eb088d33fc23408bf6a +#: 0af12faeaee5469282c3ca5c4bdbd91f msgid "This is an informational page, displaying the project links." msgstr "" #: ../../:1 -#: 516365bf811242558497b60b11f3bae4 +#: 18afc962e5f545d5a22957dbd6018985 msgid "The current Canaille version." msgstr "" #: ../../:1 -#: bb929e60fcd444a0ac284a31878c4ec9 +#: 45ed51b308f04aebad271753ec804b71 msgid "This page is displayed to users who do not have set a password yet." msgstr "" #: ../../:1 -#: c34e0944e5db498780ec561c5743a10e +#: d909979320dd4e95a148d6de47cf397c msgid "The password reinitialization page." msgstr "" #: ../../:1 -#: 3ecc804375564279b542857c4b3db855 +#: 437a71e266d64a83be6f10c72319e124 msgid "Password forgotten page." msgstr "" #: ../../:1 -#: 30f378d582c043f5b6e74ce9fafcb8c7 +#: 389062d10a5e4bdfbfb14e71da45f09f msgid "This page displays a form asking for the email address of users who cannot remember their password." msgstr "" #: ../../:1 -#: 7a094d9940454f61832150f6679be5c9 +#: 4d1441fee92047b398bbcf6005ddd110 msgid "The group edition page." msgstr "" #: ../../:1 -#: 49c7716c63604643ae88086d75eec5a5 +#: 19ed27c990ba4430bc6d3938b270c10d msgid "Group edition page." msgstr "" #: ../../:1 -#: 73b2d1da9684476c83321b96ea6cb94a +#: 70146e2e919a4dcfa7ea8eab4b7ce6cf msgid "Displays the group edition or creation form." msgstr "" #: ../../:1 -#: 8810b0528b404501981897a99dfd3413 +#: f23038dcb9f747e395ef80c00dfe28ff msgid ":data:`None` in a creation context. In edition context this is the edited group." msgstr "" #: ../../:1 -#: 1d0eaf94d7ba47bfb28377085fd80340 +#: 1009daf183444425952c657c4501e02e msgid "The group edition/creation form." msgstr "" #: ../../:1 -#: a8c1b6730c9647e0b340e36eb8261357 -#: 0d6cc9c15aa54f3aba70537c8b0146ed +#: 03260efef0a74da4b8736e7bc01660d6 +#: ff1d16eb9bf44383bc3bfc2467596b42 msgid "The group list page." msgstr "" #: ../../:1 -#: 30a81b6561d040ef907cc7135d7e36ba +#: 2afbb247858b4cf6baef5ccf1abbcd9c msgid "A :class:`~canaille.core.models.Group` pagination form." msgstr "" #: ../../:1 -#: 60cbc4e8e9e546bc8c8f2bc58b7bb8d1 +#: f606060ba74d49b8ac6d6c8fce1cdc95 msgid "Displays the invitation form to users with the invitation permission." msgstr "" #: ../../:1 -#: 2941e4b24ede4cafafcd58dc86b730c2 +#: 0b37864e0abe4688b97eac46468e7502 msgid "The invitation form." msgstr "" #: ../../:1 -#: 165b9ddf809c457eb55fbdc377023733 +#: 1508d908b6044dea895d12368ddc03a6 msgid "The invitation acceptation page." msgstr "" #: ../../:1 -#: 9b501f8d37064b61861d542b9f2c59d6 +#: b60bdff53b164ccc8867f309e76b69fe msgid "This page is displayed to users who have clicked on invitation links sent by mail (or by other media). It displays a basic account creation form." msgstr "" #: ../../:1 -#: 3a43da28ca79402b969dc8b5eb5c7025 +#: a04fb904dbe246fc9f0afe86b0c85b4b msgid "The account creation form." msgstr "" #: ../../:1 -#: 0445631081c04d47b3f22cf6f5ffef2e -#: 571ee762e9884552802f5d4c1ee7409c +#: 313a4f9fc48545c4b6532bce21ffc2cc +#: ce9cd6f1328e473dbbdd37ad6b1829b1 msgid "The login page." msgstr "" #: ../../:1 -#: 54fe54bdfffa43be87f18dded4b139e0 +#: 9009344ce3eb4af6849bfc906d66d8f7 msgid "This page displays a form to get the user identifier." msgstr "" #: ../../:1 -#: 000ddaaea5374601809d1a87fe1b482d +#: cb5f4bb84d8b40be802177f1918eb24c msgid "The login form." msgstr "" #: ../../:1 -#: 4e1dc3db2d2041bcadc2302b56ce795d +#: 91647af27e644e8f8359ccc5ffc32b03 msgid "User account creation page." msgstr "" #: ../../:1 -#: 7b8e348201b44306a7cadf5164c6ccc2 +#: ca1e43fd200f4e68a50fcb0258238b61 msgid "This template displays an account creation form. It is used in the registration page, and in the manual account creation page available for users with *user management* permission." msgstr "" #: ../../:1 -#: 3d51fc9b74654cd89e29cb76cfe08140 +#: 28ac6161aeb54c53a504052a2b6f4817 msgid "The user creation form. Dynamically built according to the user :attr:`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core.configuration.ACLSettings.WRITE` permissions. The available fields are those appearing in *READ* and *WRITE*, those only appearing in *READ* are read-only." msgstr "" #: ../../:1 -#: 29bb54f0539b4e8d99613f1e75d4c8e1 +#: e7936db08da64d99ba5890cd53bd3636 msgid "The profile edition template." msgstr "" #: ../../:1 -#: 7540fd51dc0b40838e4388b5289ebbdb +#: d4d3d6c897a943a982a05210e61680ab msgid "Displays a user profile edition form." msgstr "" #: ../../:1 -#: 8fd118973e7a4917b275c056ebd7cf83 -#: f65e446ed2c7415f94640c61f5865dc0 +#: b98063877c3c4fc0b430249ef2085f8f +#: a286722a1ac94ba18453edee6cfe8267 msgid "The user that the form will edit." msgstr "" #: ../../:1 -#: f5e476203bb5470cae841a8efbcc1634 -#: 8646bcf7257a40c3847e12eaf86634fb +#: eb924a90901844bcad2d987c8de43f9f +#: 89a1f8ec62f0438d8f5f6834436dc5d5 msgid "The user profile edition form. Dynamically built according to the user :attr:`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core.configuration.ACLSettings.WRITE` permissions. The available fields are those appearing in *READ* and *WRITE*, those only appearing in *READ* are read-only." msgstr "" #: ../../:1 -#: dd550d24fffb444db4973c07432714e0 +#: 8c54c54bdbc24cf5900a0f446fce451b msgid "An email edition form. Used when the :attr:`~canaille.app.features.Features.has_email_confirmation` feature is enabled." msgstr "" #: ../../:1 -#: 9b2a61184dd4477eb7f1e5c726b17de9 +#: 05a6287f37eb4fc687c6a2e1a010e5a6 msgid "The user profile settings edition page." msgstr "" #: ../../:1 -#: 1ece6451339147eeb1593fdc6a4a4fb6 +#: 5fc977f3a8524addaadbde487f1ceb7f msgid "The profile settings template." msgstr "" #: ../../:1 -#: 7eebe1f9d1cb462d8f8d069d344cdd7a +#: 9a957e29340e4bd09c57db76c6b79b81 msgid "Displays the user settings edition form." msgstr "" #: ../../:1 -#: 256b0c3d732f4c58a320a2dbcdef7e6f +#: 8e5a04724797428dbec87632a112cb44 msgid "Whether the editor is allowed to delete the account of the edited user." msgstr "" #: ../../:1 -#: 8e7a584ee6f1434fa6dadd88be80e51e +#: 35e9c4dd80f44b89a9e104abf9b257cf msgid "The password reset template." msgstr "" #: ../../:1 -#: 70cd2013b8224088ab0c851edb9f8f97 +#: ed074a8aeed6426bb3ea5e3b162a4c15 msgid "Displays a password reset form." msgstr "" #: ../../:1 -#: 3a3886d8e10a4ed39d893804de2f5844 +#: 750118b8a23a4843a3db89240d699dd9 msgid "The password reset form." msgstr "" #: ../../:1 -#: 2e82a6df62a241d5a97b2e53d5415108 +#: d06d97833c3c4ecf9fad939795dfabc0 msgid "The user associated with the URL." msgstr "" #: ../../:1 -#: 2ede96fd92d548e6a70b9ad22a95b9f7 +#: fc1b368e9551427ca39df5a6f0517c6a msgid "The secret link hash." msgstr "" #: ../../:1 -#: 2c0d2937ac7f4dc5b0165a94169b0ee5 +#: 7a62fcf7e44a4ed491d89c0cca809f22 msgid "The multi-factor authentication initialization template." msgstr "" #: ../../:1 -#: 7884803c38a74bb18b44ef1af2d38f05 +#: 0eec5aa76a4944468c141bde4af85125 msgid "Display a QR-code and the OTP secret." msgstr "" #: ../../:1 -#: c850ac1882eb4670bdabfe01257997d2 +#: 17f1ab9be60c469887224d655877cc26 msgid "The user initializing the OTP." msgstr "" #: ../../:1 -#: d66efe8715f343118ed8c8e1b16c9971 +#: 12336fc51b2d43f29d7ac73ddf51a3f9 msgid "The OTP secret." msgstr "" #: ../../:1 -#: 736f9933974044e68963d59598c79db6 +#: 4484c2fc03cf40bcaa0e6cb1f3af959f msgid "A QR-code image representing the OTP secret." msgstr "" #: ../../:1 -#: 113a63950aa649249a1a19d2c067dcb7 +#: e0d802a8f3fa4d3693129689ec19d991 msgid "The users list." msgstr "" #: ../../:1 -#: 66ebcffe89aa470bb384736481802699 +#: abbb62c349cb48e9add80525637e5934 msgid "Displays a paginated list of :class:`~canaille.core.models.User`." msgstr "" #: ../../:1 -#: d7d1e72e62b34e4a89501a623408fa0f -#: 92cf9835454049b1927e6c3375a2d3f3 -#: 191d389a6a1a487db5d6498b5e2eb859 -#: fbddda191d1d45e3a315eae1e4cbaee1 +#: 42aa6c2cab084093b275fa5c98ed6379 +#: 2c78953bbbcc4fc687237aa851ee13c7 +#: d9eb1c5faf95421f9f55c75b66fe19e6 +#: c33e148800804cc5895d35a9cee49b97 msgid "The paginated list form." msgstr "" #: ../../:1 -#: 195eddc7cf3143c087f3a96829a768f4 +#: fa85c61140174dd695d6d15cc39dc01d msgid "The multi-factor authentication code verification template." msgstr "" #: ../../:1 -#: 398826b7b4d74da5b44924410adfaa02 +#: 4178070eff8844bdb8674edda879ad2e msgid "Displays a form that asks for the multi-factor authentication code." msgstr "" #: ../../:1 -#: a3ee833069a94ad6bed6a4420abcfb6b +#: 4d8e6a5be4c94c17997c611b6c31c67e msgid "The code verification form." msgstr "" #: ../../:1 -#: 83b98f3618f94a9096fb6876e49c37e3 +#: 6e72c25780574e12bd1db4242e1b46e4 msgid "The username of the user attempting to log-in." msgstr "" #: ../../:1 -#: 9e51396932fe4a1ebcadce8324158f7b +#: 95591d7a51214874ab8f7cf7b8fe6993 msgid "The authentication factor method." msgstr "" @@ -6278,1011 +6295,1011 @@ msgstr "" #: ../../canaille/oidc/endpoints/forms.py:docstring of canaille.oidc.endpoints.forms.ClientAddForm:1 #: ../../canaille/oidc/endpoints/forms.py:docstring of canaille.oidc.endpoints.forms.LogoutForm:1 #: ../../canaille/oidc/endpoints/forms.py:docstring of canaille.oidc.endpoints.forms.TokenRevokationForm:1 -#: 03a78e3476be48dfb1eb9998d620dd09 -#: 0ea89880cf6948cd9b24ed056c4c6163 -#: 4f899bf7a84f49eb8004f8de202d7291 -#: 0ed7687bd3f841379b8e35668813ff26 -#: ada53776d4f44210808f64f0cb89bcf2 -#: dbec636e447d48b5a4bf6e34eb3a940b -#: 29c1bffe80b54befa2d18b07a75e7a27 -#: 90cc3f35f85c4d6c8e384112cd7a8cb9 -#: ac92c66ad29b4fe8b0991f46515929b2 -#: 006b73ca25f04561acc83bda4d0a7be3 -#: 52d982e475644c4eaa6a80ddd9101a16 -#: 810557714cfb445fbeb43d2786bce6c9 -#: c6318118f4144f9db551e52c72660120 -#: 2c06249e4ad14c399b52d419d893ae3f -#: cdcb547f71994b7989f22067c6733373 -#: 8281fee7f2ea42bf884335f2724acf53 +#: de0c98ac68424d9db8ace1dec99fdf92 +#: 7d3ab796c36a42aeb53144de9cb3e4b4 +#: 5291b0108aa94fba9d93594559cb63ad +#: 93961439cdeb435cb8c88b82af98b371 +#: 9bb956acb41d4ae4a92e00e8cacc6063 +#: 0f229e94eba74de382da1be717234b87 +#: 67ae8b51da6b49e089f9a8fa7fb24f11 +#: 0cb79d732f1e47c5be4bf36a3d2ad462 +#: 11ba0d994caa41838c32e5e50424b594 +#: 45cf9c89f6c24ba183be7c9d9bb0c200 +#: 0513fa218b034586925be690060dba43 +#: 65c5d80bcc4e4677af805a334815f497 +#: a53dcc9ca1b44591a41c483465ab8150 +#: 9abc8c7d19fa4913948809e5809c52ff +#: 3c1d0a309707493c93cb0f1820505913 +#: d62ab667f66945f482920ba42f566311 msgid "Bases: :py:class:`~canaille.app.forms.Form`" msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of canaille.core.endpoints.forms.CreateGroupForm:1 -#: cdc45ecf950b41c488d97dc4d67df362 +#: 70723ed43a22468fbed57f00fe6111f4 msgid "The group creation form." msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of canaille.core.endpoints.forms.EditGroupForm:1 -#: a3415073e62246f8b811f992eb237c38 +#: e8239c01c838492fa0fc2598acf098b5 msgid "The group edition form." msgstr "" #: ../../canaille/core/endpoints/forms.py:docstring of canaille.core.endpoints.forms.InvitationForm:1 -#: 01772358149d431498eb2c834f7314c5 +#: af0227bf60ae419899b098f6601d8fea msgid "The user invitation form." msgstr "" #: ../references/templates.rst:50 -#: e124809b16d340869b71e92975114f54 +#: c86d3b35820049099b05913d667ea3dc msgid "The OIDC templates are displayed in the OIDC consent pages." msgstr "" #: ../../:1 -#: 9a22da62f5094c7ca9894caa0fbb039f -#: d343d85fe6e14ec5b6ed3783f726b3a1 +#: 2b8188d9f1b2462f964afeeeff14ef53 +#: 66a5cdce0bcb4731b33ba7934b08dd0f msgid "The list of authorizations." msgstr "" #: ../../:1 -#: 19afd1032b634a0faef45a0851b033a6 +#: 681d3c164195435398f4d96df2d700a9 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.AuthorizationCode`." msgstr "" #: ../../:1 -#: 8c987f551577429eb62cf178ce574991 +#: 691f3877540f4d0389a4dbf68c7d2ac9 msgid "Authorization details template." msgstr "" #: ../../:1 -#: 2deeb84746e342b29ce24e76b29e300f +#: 71d6bac06dce46fd8ed39a1a55395e43 msgid "Displays details about an :class:`~canaille.oidc.basemodels.AuthorizationCode`." msgstr "" #: ../../:1 -#: 25561747e84540df8887b0505df73fb2 +#: 9a93b257198a427188f15cd304f1dad3 msgid "The detailed authorization." msgstr "" #: ../../:1 -#: 97e677cb74bd4d2686dea67e693f444d +#: 4d7624eca3f843ffb909d197d573e41e msgid "Consent request template." msgstr "" #: ../../:1 -#: 133a74881a1c44b3a586ef6ac46436e7 +#: 6a178feeda904ab6858ff421ca28d261 msgid "This templates is displayed to users accessing a new application that requests to access to personal information. It lists the personal information requested by the application, and offers the user to accept or decline." msgstr "" #: ../../:1 -#: 6bb145cbf8a24c71af12b78ff841a3c2 +#: bf7055200a4f4780b98863f7422dcdd3 msgid "The user whose consent is asked." msgstr "" #: ../../:1 -#: 203e0a33991d421ba0d140e51406ec53 +#: 9ba4502db4074570b525ac21165bd476 msgid "The OIDC grant." msgstr "" #: ../../:1 -#: 29ff95568d7b419280ff8b4dbb9b98bd +#: a378b593bfe94eb68624c68402cd0b47 msgid "The client addition template." msgstr "" #: ../../:1 -#: 7c7d53f97860471f980fff2e58c84409 +#: fd310a6408f34ea6a81804881a69a197 msgid "Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`." msgstr "" #: ../../:1 -#: 386ebd1f05044568b324172e0627608c -#: f894009c71ff4255bc15c02cade9919a +#: fcc21c3a1bd648078144f5bfd364ca76 +#: f6cd72cbcb084e8fa5f5db6d3d92bf35 msgid "The client creation form." msgstr "" #: ../../:1 -#: aac136d4cf64457c90fcee0136dfec7d +#: a3e59a975edf4ee392a73eda4239d210 msgid "The client edition template." msgstr "" #: ../../:1 -#: 384f2e16a6ee4086aa23f43f45ea7bb3 +#: e6851b16b9b6409f83ffe276c2f7dd48 msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`." msgstr "" #: ../../:1 -#: ff1e9a1d320f4b5eb93197e224011ff6 +#: 1749825e2ba441a78f770cabfef0a3c3 msgid "The edited client." msgstr "" #: ../../:1 -#: 18673e61137644628385ab46ddb2f120 +#: ef42edeb9130426f9ede14790dd32c27 msgid "The list of OIDC clients." msgstr "" #: ../../:1 -#: 8e8508a7c19746f5beb3f1ac73777dcc +#: 0bdfbb26e8274a33a3f7effb1f513089 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`." msgstr "" #: ../../:1 -#: c1e022752d6b41ad89cd784b0c1a8d7b -#: 6bdb3a2b205b428e96212cad8b7f2c90 +#: a9ceb12267304181b2feffbe710d943a +#: 458fb271da7d4dd69cbbfbd8ecd66146 msgid "The consented applications list." msgstr "" #: ../../:1 -#: 998c07ee737b499980f573d603e8ff9f +#: 4aabc0ed9b5d46179e98511ebdb649e3 msgid "Display a list of clients for which users have given or revoked their consent." msgstr "" #: ../../:1 -#: 44fa94872775473b803a658541d2a140 -#: a5c727e4f0c84f15b8d9b15b817ae6d3 +#: 1e8eb1d3d14544cf91c93939a339f983 +#: fea81d80774543ad845682c1461f8c48 msgid "Description of the OIDC scopes." msgstr "" #: ../../:1 -#: e0fb5118f5ea493bae7e818189497a06 -#: ee9168089e574624b962d1dc49a6b295 +#: f04aa392700e47fe8d00fb7e21d59e1d +#: 0fb3b9b59e4649989c848e65802b040d msgid "The scopes to hide." msgstr "" #: ../../:1 -#: e11a167ff0d7415c94b263d013e2ef33 -#: 6bc6efb95d484cf6abaf077690759c44 +#: 50e2c6e9660a434c886325d0278bbf7f +#: 2015cc78e9844860af96f6648186450c msgid "The number of consents." msgstr "" #: ../../:1 -#: 3ced1415ec794c068f8872c7f181cf14 -#: 3870ed29ed474ea1bb1517ec2a20c51a +#: 54ca291777de4404a2e02daac5621fdd +#: 446661cc33374035b10aa2ed3a9d46ec msgid "The number of preconsented clients." msgstr "" #: ../../:1 -#: cf920f5880ac418db34e44b70510589b +#: 21ee622ad78e4613adec2a3227980139 msgid "The OIDC logout template." msgstr "" #: ../../:1 -#: fde00fd074c543259474440463838f85 +#: a500c9374ce44fedaf51662ff518b632 msgid "Used during OIDC RP-initiated logout, when an user confirmation is needed." msgstr "" #: ../../:1 -#: f85d8a915c3f41b88171e0905a301098 +#: 903aec639e87405194c8af82a2ce52a3 msgid "The logout form." msgstr "" #: ../../:1 -#: 49eef1a8bb3248c59b9c2b3aeeabc37a +#: 451a0b3609c146edab537ad39e297f2e msgid "The client requesting the logout." msgstr "" #: ../../:1 -#: dc14cc68c5ec4eab981cb1603dfed4fa -#: 1f1903594c4f4215b1775169c80740d4 +#: 968c125d5dca406fb76b65226954404d +#: 2702e1c73b664875928b1ccba2058bff msgid "The preconsented applications list." msgstr "" #: ../../:1 -#: 839b3a33b14d4773ae08101f6efb454c +#: 20a8b390b82941eea920e25d96f4c7c1 msgid "Display a list of trusted clients for which it is implied that users don't need to explicitly give their consent." msgstr "" #: ../../:1 -#: a5b1e9e1cb084b1f91315ba58722d84a +#: e20256103c1b45c0b7be601fdbb1465a msgid "The list of implicitly consented clients." msgstr "" #: ../../:1 -#: 6a795f04197546e5a4440a1aec37bf8f -#: 6452bcd48e864135bb8955c897d98086 +#: 3143810d170c40cb9a2a1c3760761dce +#: 900c5717a930458c9e1a48adaf90575e msgid "The list of tokens." msgstr "" #: ../../:1 -#: 7f4869bb7a5640159996587d19352d22 +#: a4b82ec2c7e24eefae9ea33f8f843399 msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`." msgstr "" #: ../../:1 -#: c61342ae1a804c9290502d6a4a098dff +#: 427ad98ee157452aabd8bc2ee9b4c892 msgid "The token view page." msgstr "" #: ../../:1 -#: b64c3e6f75034372b72fd0866d6ff5a1 +#: 75b5331fe41a47e5b0bdf49ea1cf9ca4 msgid "The token view template." msgstr "" #: ../../:1 -#: 27444ab465a7402097d02ab0e6908658 +#: 0351d150c560456abad9eb137db79793 msgid "Displays the details of a token :class:`~canaille.oidc.basemodels.Token`." msgstr "" #: ../../:1 -#: 460c3321a433493eb3db7146906c8c14 +#: ac5fe66b497c431ebcadf586442c8f8f msgid "A token revokation form." msgstr "" #: ../tutorial/databases.rst:4 -#: e0a22a66e1bd419197e9d80c5a493950 +#: fd811bd8cfc24018bf1c40dca6da6b1d msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:" msgstr "" #: ../tutorial/databases.rst:10 -#: 41bcb79885bd41399396a41774334b25 +#: 24668d10a94749c2bd6ef6fc9a455fe5 msgid "Canaille comes with a lightweight inmemory backend by default. It is used when no other backend has been configured." msgstr "" #: ../tutorial/databases.rst:13 -#: d6735b4147094101943300a0ee8f9031 +#: 7562a0f239434ea98c9796b2e1821d25 msgid "This backend is only for test purpose and should not be used in production environments." msgstr "" #: ../tutorial/databases.rst:18 -#: 0570af924a4d486f8bceebbb725f075c +#: 2718eb4c29f54fe8aa72179f56c22253 msgid "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." msgstr "" #: ../tutorial/databases.rst:24 -#: c119b12cb0f44f529ef300e178c97cfa +#: 8bb7b8d9eff8476aa078fb341d66d0a7 msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:" msgstr "" #: ../tutorial/databases.rst:32 -#: b64519add74d438cbfcf697e38acf5a0 +#: 747d3eac2c4e4abca810b3285302abb3 msgid "You can find more details on the SQL configuration in the :class:`dedicated section `." msgstr "" #: ../tutorial/databases.rst:35 -#: 6e673c577aca42a1b911b98ba88e3155 +#: a0f5544ee1fd4df982574519306b6d4f msgid "Migrations" msgstr "" #: ../tutorial/databases.rst:37 -#: 33890a2c059947698504e7d91fab937f +#: d3211a22fd15439dabca84a3ae7c3147 msgid "By default, migrations are applied when you run the web application. You can disable this behavior with the :attr:`~canaille.backends.sql.configuration.SQLSettings.AUTO_MIGRATE` setting. Migrations are not automatically applied with the use of the CLI though." msgstr "" #: ../tutorial/databases.rst:41 -#: c77daf1e3c2340749d6e3a13f5333693 +#: 4e0dddd07a63418cab088aa2fd5d7531 msgid "Migrations are done with :doc:`flask-alembic `, that provides a dedicated CLI to manually tune migrations. You can check the :doc:`flask-alembic documentation ` and the ``canaille db`` command line if you are in trouble." msgstr "" #: ../tutorial/databases.rst:47 -#: 21c0c24a9c424f3eb5bac842bdf490c0 +#: 495e3aec007f4c23a37468105f0aab1e 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:65 -#: be1479e7ae5542378aaf3283b5df8c0b +#: 1bf8e553aa274d2e82111fa37ee9d101 msgid "If you want to use TOTP/HOTP authentication, you will need to add the ``oathHOTPToken`` class to the user:" msgstr "" #: ../tutorial/databases.rst:71 -#: fbeb8c0250314fbabf2a1bcd5dbb482b +#: 065805698d664c60b0ed968e3c0cac0f msgid "You can find more details on the LDAP configuration in the :class:`dedicated section `." msgstr "" #: ../tutorial/databases.rst:74 -#: 0c4ab57ab00847e2bf167e754e2a662f +#: 9051e4398e654af78408ae9067bead83 msgid "Currently, only the ``inetOrgPerson``, ``oathHOTPToken`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome." msgstr "" #: ../tutorial/databases.rst:79 -#: ad51d6271f2f428ba8a86c87bbc4806b +#: 9438f374d7a645f6b1e14acdef239c48 msgid "OpenLDAP overlays integration" msgstr "" #: ../tutorial/databases.rst:81 -#: 0479d4e61e32458fac7205f3af1370d4 +#: 0fd24406bbe145ce97c6087f80b7d5fe msgid "Canaille can integrate with several OpenLDAP overlays:" msgstr "" #: ../tutorial/databases.rst:84 -#: 8d3dc52f6a89445e8f297b818cfa3d28 +#: b6a51e1d79684f168e60b5aee647b1a9 msgid "memberof / refint" msgstr "" #: ../tutorial/databases.rst:86 -#: 1f81a6b5ed7d49fabc25eb3bad3db90c +#: 49203875ca4a40deb4d39fae5eb3ee8e msgid "`memberof `_ and `refint `_ overlays are needed for the Canaille group membership to work correctly." msgstr "" #: ../tutorial/databases.rst:90 #: ../tutorial/databases.rst:113 #: ../tutorial/databases.rst:136 -#: d1be85ce13b045738cd09df3ce5155c2 -#: a81ffd73d93e4697961043afd4c33ebb -#: 06c9cbbb2e7c428a83b8fed9ee59f6fd +#: ce7d297efae8420f809ac9461a7c307f +#: c52280e13bea48e2a9f15564d425d1d4 +#: 017b0a8420ef4191b0fd5e063d3024ba msgid "Here is a configuration example compatible with canaille:" msgstr "" #: ../tutorial/databases.rst:92 -#: 3613d6e1b7b846fc99c14e30bcc79181 +#: 76cccb3bf67e48dc95db69863a558d0f msgid "memberof-config.ldif" msgstr "" #: ../tutorial/databases.rst:96 -#: eea7676f57ab4477b2c107d41e0c0b85 +#: c2abbcb8749b4c61a637e634b268258c msgid "refint-config.ldif" msgstr "" #: ../tutorial/databases.rst:100 #: ../tutorial/databases.rst:123 -#: 9205a4ce8dbb403b9698221ebf665e5f -#: 0d197c23f8464a8991fcd4d3cbfc4b0b +#: 513ff3f3ac6543ea9851d0c21ce0583c +#: 16ae282107734cc48ac4b36664c9ba6f msgid "You can adapt and load those configuration files with:" msgstr "" #: ../tutorial/databases.rst:109 -#: 8a17d0c51be0447f99c73cb75bfd95f7 +#: 58eaca8b20804f749dedc14929e66e7c msgid "ppolicy" msgstr "" #: ../tutorial/databases.rst:111 -#: 091a20650c304036800f5b6736c918f6 +#: ce27401c1d344339a0e6a3cde5c269d0 msgid "If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute." msgstr "" #: ../tutorial/databases.rst:115 -#: 10516ba926c04006ae393591f14a99d9 +#: 8b991b3f4b6749a2b495268153bec5e4 msgid "ppolicy-config.ldif" msgstr "" #: ../tutorial/databases.rst:119 -#: 2abd0c13924b414680f9b81679fb352d +#: 9e85604d9a214277a3e6e322cd114280 msgid "ppolicy.ldif" msgstr "" #: ../tutorial/databases.rst:132 -#: e0323e7986c7402ea4ff13e477dc8238 +#: 81c169a6e791492085fe13698d49c5a7 msgid "otp" msgstr "" #: ../tutorial/databases.rst:134 -#: 84823dcef202418fa040c663aa842fb4 +#: 520737b4e5384d4d96486ec83b0a2d4b msgid "If the `otp `_ overlay is configured, you will be able to add one-time password authentication in canaille." msgstr "" #: ../tutorial/databases.rst:138 -#: c4a32be9fcf94be3a638174c9f474592 +#: c8c4e24b65b040a3a2f83b1d5720cea6 msgid "otp-config.ldif" msgstr "" #: ../tutorial/databases.rst:142 -#: 680db589906049d4b0f872359b559693 +#: b2067c77466a40909c3fce934edb0d05 msgid "You can adapt and load this configuration file with:" msgstr "" #: ../tutorial/databases.rst:149 -#: 3f70e9c152c64b019ec603e08623ee2e +#: 76c326b63cf041cda2fd400cca4e88d0 msgid "You will also need to add the ``oathHOTPToken`` class to the user:" msgstr "" #: ../tutorial/deployment.rst:2 -#: 25c3f74fc22c4fb08f84803047837bb6 +#: ea6f1015a5d143f58553992276de9671 msgid "Deployment" msgstr "" #: ../tutorial/deployment.rst:4 -#: de82825935d0464f87b538b185ce867e +#: 4b17f01190764759ac07ec55db9bdc84 msgid "This page details what to install on your server to make a production-ready environment for Canaille." msgstr "" #: ../tutorial/deployment.rst:7 -#: aa98bb204ddc4cf8b97ed5a318e44437 +#: 8162145d08c54ce6aa124c1f863ef869 msgid "Application service" msgstr "" #: ../tutorial/deployment.rst:9 -#: 64b0cf5ef3654a4ca08eede0339ce8ca +#: 3f720c24075747398d4a50af2e2fa6b6 msgid "After having finished Canaille :doc:`installation ` you have to run it in a WSGI application server. Several application servers are available, like `Gunicorn`_, `uWSGI`_, `uvicorn`_ or `Hypercorn`_ for example." msgstr "" #: ../tutorial/deployment.rst:12 -#: 44f3f154ee524010b682f9cc6ba56511 +#: 820b66a6eedd444995a6c29e2ffa0c08 msgid "Canaille comes with a light Hypercorn integration but you can use it with any application server. The WSGI entry-point to configure in your server of choice is ``canaille:create_app``." msgstr "" #: ../tutorial/deployment.rst:16 -#: 21ec276d1b4b46d3ae0bb247785c020e +#: dc6eb203e3f9429995f886951dda6113 msgid "Hypercorn integration" msgstr "" #: ../tutorial/deployment.rst:18 -#: d5d997440e84499d90d9d10db082e9fa +#: 5c58fa002eb5423b92bc5d7a8c1e13ef msgid "To run the integrated Hypercorn application server, you can simply run the :ref:`cli_run` command. The hypercorn integration is embedded in the Canaille binaries. However if you use the Canaille Python package, you will need the ``[server]`` extra (for instance with ``pip install canaille[server]`` for Hypercorn to be available." msgstr "" #: ../tutorial/deployment.rst:22 -#: b7eda0515c574daf836f4b35404679dd +#: 4d67c09bf4754a808cdd6079a208d9ff msgid "Running the Canaille run command" msgstr "" #: ../tutorial/deployment.rst:29 -#: 9839de6380a946138d53adc855a20f76 +#: d15d6a9e57ec4e928e750f913a090835 msgid "By default it runs on the port `8000` of localhost, this could be enough but you might want to customize it a little bit more. Fortunately Hypercorn provides a :doc:`configuration documentation ` to adjust it to your needs. You can write a TOML Hypercorn configuration file and pass it in parameter." msgstr "" #: ../tutorial/deployment.rst:33 -#: d1400e44f7924445bf1cb8f928e9bfbe +#: 4788cd6dd3e74ecd955196c5d5ce9ef3 msgid "Running the Canaille run command with a configuration file" msgstr "" #: ../tutorial/deployment.rst:38 -#: 23a4fe451e234eaba0df197b7ecb18ea +#: 36a992a3747d44e4885139d52c40502a msgid "Here is a basic Hypercorn configuration file that you can tune:" msgstr "" #: ../tutorial/deployment.rst:40 -#: 0ca2b82e32b644f6911d07cde2a266fe +#: 6e002e199f61461996a6df53383111b5 msgid "Hypercorn toml configuration example" msgstr "" #: ../tutorial/deployment.rst:50 -#: 359916d2dd014c3a94887f1c02a1be69 +#: 938b8437faeb4c08baaddfbb64b3622e msgid "Webserver" msgstr "" #: ../tutorial/deployment.rst:52 -#: d2e0a52d279e439ea758ef96069b2ec9 +#: 4169e17e580249d2960fd2dbca06b8c4 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:56 -#: 71e3fa008cac4484a1604fdb994d802c +#: cdbbb8bb81434a328b073fd1637bcc48 msgid "Nginx" msgstr "" #: ../tutorial/deployment.rst:58 -#: b670a74ba2af4b79af030e18a2244ec3 +#: 323d4995a1a04c3f8a86e85d4c5179ad msgid "Nginx configuration example for Canaille" msgstr "" #: ../tutorial/deployment.rst:126 -#: dad03d2880da4c1281ca3740d42908a0 +#: 6d38835bc33b47b49dc82c3811b98fc7 msgid "Apache" msgstr "" #: ../tutorial/deployment.rst:128 -#: 09fe7ea93aad420c97b6c5779c9d9bae +#: 11a9729174064638aa84122a2ae5b462 msgid "Apache configuration example for Canaille" msgstr "" #: ../tutorial/deployment.rst:166 -#: c199ebcd13a7461bb864b44f60449553 +#: 7711be2a14fb4b75b9b0a4a384d3cd95 msgid "Recurrent jobs" msgstr "" #: ../tutorial/deployment.rst:168 -#: 6ac851414c3e468ea383a3b3d84b0109 +#: 02a24ad0b49f4389bf438a8339716170 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:177 -#: 5b6f2d8fa56049b9a245f4fe57c50b78 +#: 7c2e516ea2e14270b7ba87911963f018 msgid "Webfinger" msgstr "" #: ../tutorial/deployment.rst:179 -#: bc883e0a5aa04c9b833a5aa0a22faaa6 +#: 54f6a7476fac4427ab0cd652aaf1d809 msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page." msgstr "" #: ../tutorial/deployment.rst:181 -#: bb65fc4920234c1d9f704c10ed621b38 +#: 0765b0d1215e499c9cc44ecde6bc786c msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path." msgstr "" #: ../tutorial/deployment.rst:183 -#: f13a3328672b4eef91b90c48bf3b0fc4 +#: 5dac91eb4b4a40e1a5a4a20cd72eebe6 msgid "Here are configuration examples for Nginx or Apache:" msgstr "" #: ../tutorial/deployment.rst:185 -#: 8f02f89531464f118693c2f6ecc019e4 +#: c29de58d081048858e90253053b40b23 msgid "Nginx webfinger configuration for a top level domain" msgstr "" #: ../tutorial/deployment.rst:194 -#: 8efa00ba7379447991bdc076483b86f3 +#: 8b5b5d8d26654c3e9ff130b86a696d1b msgid "Apache webfinger configuration for a top level domain" msgstr "" #: ../tutorial/index.rst:2 -#: dd9ad343824c4482866da7b6fe9ccfae +#: e2957edbae30497bb732c02d3a10ab26 msgid "Tutorial" msgstr "" #: ../tutorial/install.rst:2 -#: f21934ff7ff84b58ae4c6785600526ad +#: 017ed3fcd2404d50aeec80ef08a36190 msgid "Installation" msgstr "" #: ../tutorial/install.rst:4 -#: 11b48f7fcecf4275adaa48840f4e3cac +#: 71b81a0372ba4b4c9f0883c6f8a3fa45 msgid "This page describes how to get and set-up Canaille." msgstr "" #: ../tutorial/install.rst:6 -#: 4029a8ed97d040aabd33f370edbf72db +#: 30a8dd104fd04889a84f05bc75b854fa msgid "*I have no time, spare me the details !*" msgstr "" #: ../tutorial/install.rst:20 -#: e403dd5817594e70bd556f2fbdaaa4a0 +#: a1205dcb082d4069b728e3b0049448f6 msgid "Get the code" msgstr "" #: ../tutorial/install.rst:23 -#: cc01dbe9a55641a4a69ad0682f902224 +#: f1260221bff54742aeff4fc9403d7024 msgid "Binaries" msgstr "" #: ../tutorial/install.rst:25 -#: b5da438311a4490e9a067410b712fe46 +#: 5670a0bbbcfd4365bef8e70bae113831 msgid "Canaille provides a ready-to-use single file executable for Linux. The binary installation is the easiest way to get a production-ready Canaille release, though this is not the most customizable. This is generally the recommended method to use Canaille in production." msgstr "" #: ../tutorial/install.rst:36 -#: 8b420431aa774f26ab33447f739e045e +#: 98e219509de54d86b58273167cade69a msgid "Canaille binaries comes with lesser performances than other installation methods on startup. This is generally not an issue, since Canaille is used as a long-running service, but if this is important for you, you might want to choose another installation method." msgstr "" #: ../tutorial/install.rst:41 -#: 7e44046739a7494b85e53635680ef232 +#: dd4eff328031455a8cf2ff177e1be6cc msgid "Linux packages" msgstr "" #: ../tutorial/install.rst:43 -#: 2a3a1a09f6864996a9e248a8cdac015d +#: d10794fa76ed4107a2def7a1542524ca msgid "At the moment, only NixOS provides a `Canaille package `_. For other distros, you must use a different way to install Canaille." msgstr "" #: ../tutorial/install.rst:51 -#: 13ce34f760384b47a0813bfb6c580a9b +#: 86ff2fc6a4a64104a6f35e2eef3f5f60 msgid "Canaille provides a `Python package `_ that you can install with package managers like ``uv`` or ``pip``. This is the recommended method if you want fast CLI performances, if you need to customize the dependencies, or if you want to use Canaille in a development environment." msgstr "" #: ../tutorial/install.rst:54 -#: 85f17405754745069639109aec55b43d +#: 491c47f89c9d479e808949303b9b96f2 msgid "In the following example, we use a custom virtualenv to install Canaille. Note that you should customize the ``EXTRAS`` packages, depending on your needs." msgstr "" #: ../tutorial/install.rst:57 -#: 9efaa0b138a0486ab8b758b00d8307d3 +#: 5d8d8b62a37d412c84c8d813ef326aa4 msgid "Canaille installation using a Python virtualenv" msgstr "" #: ../tutorial/install.rst:70 -#: 018bee5ee8924df99594d0de720c0171 +#: 793b2f46d3ed4f4a82048fdc3cc5e4fa msgid "In the rest of the documentation, we consider that your virtualenv is activated, and that the ``canaille`` command is available." msgstr "" #: ../tutorial/install.rst:74 -#: 47e5df43b1d947548a402af2136a0418 +#: 2c85440c3d924cfaa870ef2babe2f39f msgid "Extras" msgstr "" #: ../tutorial/install.rst:76 -#: 4d4bf6f5c7114953acd3bd0e5d7c9779 +#: 6c19b53f086746689c5d7b3c37e0f434 msgid "Canaille provides different package options:" msgstr "" #: ../tutorial/install.rst:78 -#: f4a78e6da110474f8fff3b30e437194e +#: 229dd7f533cb46e18af2766996870934 msgid "`front` provides all the things needed to produce the user interface;" msgstr "" #: ../tutorial/install.rst:79 -#: 4a8b8c6458454f74aabf3c7c8c9a5b59 +#: f57a8116e3ea412c8df522e13df73dc5 msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" msgstr "" #: ../tutorial/install.rst:80 -#: 17d0d5ea517b49dea50e4b2f7f416a30 +#: 34da15bb00fc4ea588541e281cc3a251 msgid "`ldap` provides the dependencies to enable the LDAP backend;" msgstr "" #: ../tutorial/install.rst:81 -#: a61309e7082145dc82322d9ef0b92363 +#: e53b3463ae8949d3ac333ee0d38a9bd8 msgid "`sqlite` provides the dependencies to enable the SQLite backend;" msgstr "" #: ../tutorial/install.rst:82 -#: 0ecee8fba5d04223af3a059f56606908 +#: 0d236f23064d4edba37b1cf73ce41f35 msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" msgstr "" #: ../tutorial/install.rst:83 -#: 34abe8b8a0974a72971e50638ff8517e +#: 126f4cbeac114c2dafed383cbaf24e46 msgid "`mysql` provides the dependencies to enable the MySQL backend;" msgstr "" #: ../tutorial/install.rst:84 -#: e25cc189f3164424b91993aff41a4132 +#: b0ed4c2557a94505b73aae8496b487f6 msgid "`sentry` provides sentry integration to watch Canaille exceptions;" msgstr "" #: ../tutorial/install.rst:85 -#: efd222133d4c4ae6be3b9b1fa1fa1468 +#: 978a0559669247c984aa3bb3d8100cdc msgid "`otp` provides the dependencies to enable one-time password authentication;" msgstr "" #: ../tutorial/install.rst:86 -#: 552acd79d186478185733b8237110cd1 +#: 20fbcea8941449bd82a305de581b14cc msgid "`sms` provides the dependencies to enable sms sending;" msgstr "" #: ../tutorial/install.rst:87 -#: 4e42b21b5ef448afbb2d1723ebd498ea +#: e6f4445a4d0943139afe260d46264bc4 msgid "`server` provides the dependencies to run a production server." msgstr "" #: ../tutorial/install.rst:89 -#: d6027880c43d4a9eb8cd78395c178a99 +#: 1da6220fcb654e529a29abe11c927ab5 msgid "They can be installed with:" msgstr "" #: ../tutorial/install.rst:96 -#: 9ea85ec5b3af4c878779884556fb989f +#: 04e7deb14c32481fb77b221472324f11 msgid "Configure" msgstr "" #: ../tutorial/install.rst:98 -#: 8fa50b64fb404b7ca96726cb87aca39a +#: 15ce26ae57e74d3dbb7f3fa8ae109c56 msgid "The :doc:`configuration documentation<../references/configuration>` describe several ways to configure Canaille, however the most common is to use a TOML configuration file and pass its path with the :envvar:`CONFIG` environment variable. A configuration file with default values can be initialized with the :ref:`export-config ` command." msgstr "" #: ../tutorial/install.rst:102 -#: 1513e2cc4065497dbfd92d1f9b920774 +#: 6f0f263c63ed4a0da63963c3b5f6aec9 msgid "Initialize a configuration file." msgstr "" #: ../tutorial/install.rst:108 -#: dfae411e71c347ebaaf30f34af410d71 +#: a2ab7ccce4b9486c9dcae9a3585e13d0 msgid "You can then edit your configuration file and tune its values. Have a look at the :ref:`reference ` to know the exhaustive list of available parameters." msgstr "" #: ../tutorial/install.rst:113 -#: 3cfdba669533427aad6a648d6b060244 +#: 1b866d8fc90345a997f8d40ef62fdde8 msgid "In the rest of the documentation, we consider that your Canaille instance is configured by one of the available methods (either with a :envvar:`CONFIG` environment var, either with ``.env`` files etc.)." msgstr "" #: ../tutorial/install.rst:116 -#: 054e4bf3b4c9465284097d7500d3228b +#: 2936fa3cfc1c42da9d494bde1ab54fe2 msgid "Install" msgstr "" #: ../tutorial/install.rst:118 -#: beae74bf4f154a32a619fe571bc05331 +#: d4812653b1444b13ad313b50c44c0041 msgid "The :ref:`install command ` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database ` it will create the SQL tables, or install the LDAP schemas for instance." msgstr "" #: ../tutorial/install.rst:126 -#: 61683cab735149cba1e75c814eb21ab2 +#: 14361698257b4cba9f8aa6c50ec89017 msgid "Check" msgstr "" #: ../tutorial/install.rst:128 -#: a3ac73ceacfd4b1094eddddc3c6db17a +#: 117abe7eb0034cd5bcdd5bbcf8e6e9a9 msgid "After a manual installation, you can check your configuration file using the :ref:`check command `:" msgstr "" #: ../tutorial/install.rst:135 -#: 1ee2a32a0cd342b8abb212d6cfe4cb4d +#: 6eaae463f2d54117835efc16aa5f538e msgid "Create the first user" msgstr "" #: ../tutorial/install.rst:137 -#: 15d31e7c0ac74a139bf75b1f0b1a298d +#: 9f8bf2ab05904bf0a6e7471f36a64006 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/provisioning.rst:2 -#: b501a4006a6f4b35912e6f75c9cba45f +#: f733d4419dcf4cc9a22b29d001f0c710 msgid "Provisioning" msgstr "" #: ../tutorial/provisioning.rst:4 -#: 0167def5562a4064978f33d1c3699cb3 +#: d7bbec771c3d4ddeac348c6fbabf4835 msgid "Canaille partially implement the :rfc:`SCIM <7642>` provisioning protocol at the ``/scim/v2`` endpoint." msgstr "" #: ../tutorial/provisioning.rst:6 -#: 4daebc68e5744568aeed24ba58e8bb0d +#: a1032842981d4682ad321779d93acefa msgid "At the moment, only the server part is implemented. It allows client applications to manage user profiles directly in Canaille." msgstr "" #: ../tutorial/provisioning.rst:11 -#: d7ed870ad03b4e14aa46a317a1bf2ffa +#: 71b1edf53caa424197a3487d7faf3365 msgid "Some SCIM :ref:`features and endpoints ` are not implemented. In addition to these, Canaille will implement in the future:" msgstr "" #: ../tutorial/provisioning.rst:14 -#: 675fb497ac0c4a14b5865c32a85ce576 +#: b6927be20866432fb2775ad5ea5ff5a9 msgid "Access control for clients on the SCIM API endpoint, to finely manage permissions depending on clients." msgstr "" #: ../tutorial/provisioning.rst:15 -#: 059f6f7f50da44eb8e736968e9d28f11 +#: 06caf30d70884c58a5850991594c4d86 msgid "Client-side implementation, to broadcast user and groups modifications among all the clients." msgstr "" #: ../tutorial/provisioning.rst:20 -#: 8e94b63c4aa54fe9bf9c54333babde1c +#: 4df4973d19064f82acbade473261582c msgid "To allow clients to access the SCIM API, the client must have the ``client_credentials`` grant type configured. This allows clients to ask an authentication token on their own behalf and use this token to perform queries. Currently, user tokens are not supported." msgstr "" #: ../tutorial/provisioning.rst:24 -#: d374f6c3f3734aa19ee4310657ae3770 +#: c370759454ac4669b266f56f94991e66 msgid "Then the :attr:`CANAILLE_SCIM.ENABLE_SERVER ` configuration parameter must be enabled." msgstr "" #: ../tutorial/provisioning.rst:33 -#: 436b530af0e14d1c9668ef5b54848368 +#: e9f70c34f9ae4a73b7f97dc29b9fdb49 msgid "Implementation details" msgstr "" #: ../tutorial/provisioning.rst:35 -#: 668a89228a0c4d4593fbc34c17f3c15b +#: cef7e760cf3a42f3a062c3b21fc66547 msgid "Due to technical reasons, the Canaille *User* and *Group* resources implementation subtly differs from the :rfc:`RFC7643 <7643>` definitions:" msgstr "" #: ../tutorial/provisioning.rst:37 -#: f85d7d2ce9f4488bbbfd834e7ca27ae6 +#: 1f91427eae9f495a847f4ef86648f2f2 msgid "``User.userName`` is immutable (while it is read-write in RFC7643)." msgstr "" #: ../tutorial/provisioning.rst:38 -#: 6540a6953dbb4984baf02fc3362fe551 +#: 1310a3d09ca94b00a6c6ccb0d4a0ab0d msgid "``User.name.familyName`` is required (while it is optional in RFC7643)." msgstr "" #: ../tutorial/provisioning.rst:39 -#: 250608d95fc84e2ba6d1da0685c01242 +#: dde989f76a494d41af58032968acedb0 msgid "``Group.displayName`` is required (while it is optional in RFC7643)." msgstr "" #: ../tutorial/provisioning.rst:40 -#: 7639f2e8df5f43d690b733f679fadfad +#: 94f92124a0514ae2974b6c439d498daf msgid "``Group.members`` is required (while it is optional in RFC7643), i.e. groups cannot be empty." msgstr "" #: ../tutorial/provisioning.rst:43 -#: 9b5529924c7b46f49453f3cdd9e799f3 +#: 5c6ec443e9df497897a4f8d611c1d3ed msgid "Debugging" msgstr "" #: ../tutorial/provisioning.rst:45 -#: d56f4b70bd4644a7a362c99d5895884c +#: b37e680a6e20491f917cfecda6f27c48 msgid "To check what data are exposed through the Canaille SCIM API, you need a *client token* and a SCIM client application. To generate a client token, you can simply manually create a token from the button on the client administration page. Then, we recommend the use of :doc:`scim2-cli:index` to interact with the API:" msgstr "" #: ../tutorial/provisioning.rst:49 -#: 569933bc1a994c79a7c99d6414cee0f8 +#: 9b720d930bab453aada1e93fabaa3e9d msgid "scim2-cli usage example" msgstr "" #: ../tutorial/theming.rst:2 -#: 21eea26ccfa142dd841d01e65368ce04 +#: 0ce77615b8f6467b8b5b1d2beab5d5ee msgid "Theming" msgstr "" #: ../tutorial/theming.rst:4 -#: 009cabfbfa1546fe91a965589128a16f +#: ef3f47ef1b44486ea99a7bb494802774 msgid "Canaille comes with a default theme based on `Fomantic UI `__ but any part of the UI can be slightly modified or even entierely rewritten if needed." msgstr "" #: ../tutorial/theming.rst:7 -#: 6529dc12f1a34c8da2b1bc9ee8c99d87 +#: 4518cb9f35ab4023b0c425a21458f872 msgid "Custom templates" msgstr "" #: ../tutorial/theming.rst:9 -#: d7e07e55ce2a4d4baa2d19c388b3a5fb +#: b48ff8ebc109440a842f6fc1aace5924 msgid "To use a custom theme, set the :attr:`~canaille.core.configuration.CoreSettings.THEME` to a path to a directory where you will host your custom templates." msgstr "" #: ../tutorial/theming.rst:11 -#: f1e3de3a967342ec8825ecba2a3a7ec9 +#: 1addab37d94248838d4feceb2901004a msgid "Then in this directory, create new files for templates you want to override. The exhaustive list of templates is available in the :doc:`reference <../references/templates>`. You must respect the template file paths. So for instance if you want to customize the *about page*, you need to do it in a ``core/about.html`` file. You can inherit from the origin template by using the Jinja ``extend`` directive." msgstr "" #: ../tutorial/theming.rst:15 -#: 4110b976cb024f2c801461fce3975171 +#: c47d259fa58242e9b8a079ae07d8d133 msgid "core/about.html" msgstr "" #: ../tutorial/theming.rst:26 -#: 9a4e88880820496eb3bdf17304e6a60f +#: 444c2a66c1b54dce8a5ba424b27c1c78 msgid "Custom style sheets" msgstr "" #: ../tutorial/theming.rst:28 -#: 006f38b8d7134983a9abb31be53da9b3 +#: f78bf83b5d734d5f9c8dc2e4d72146d0 msgid "If you simply want to put your custom style sheets in the default theme, you can just push it in the ``base.html`` template. Put your file in a ``static`` subdirectory of your theme, for instance ``static/css/custom.css`` and reference it with ``theme_static``." msgstr "" #: ../tutorial/theming.rst:31 -#: 3707773bd8ed4a6e93db62c66c367778 +#: 03b922cab93140dc964586e2ba4ed7a3 msgid "base.html" msgstr "" #: ../tutorial/theming.rst:43 -#: 91b616f5431447c2bedf949d493b7afe +#: 1e6907d97f5244e2886412ac353075bb msgid "To write your custom theme and check how it is rendered, you can put the path to your theme in a ``.env`` file and run the Canaille demo instance, as described in the :ref:`contributing guide `" msgstr "" #: ../tutorial/theming.rst:50 -#: c8256e13d58b4a0188ef8b93d442d68a +#: 35a9ce3f4d9640cabdcb40249d5f0ebd msgid "Run the demo instance" msgstr "" #: ../tutorial/troubleshooting.rst:2 -#: 955e593824aa4c7090cc7fa276d7cdcd +#: 017c5bd842bd45b58a6bdc9e2c1ff7fc msgid "Troubleshooting" msgstr "" #: ../tutorial/troubleshooting.rst:5 -#: e60c3dedaa504800a85a55b45544556e +#: a7fbe5e6decf4358ab321d0b92306724 msgid "The web interface throws useless error messages" msgstr "" #: ../tutorial/troubleshooting.rst:7 -#: aa21024a9aa24f678fc5b818f12a4562 +#: f693601ef7274b8abe307eabe484bd09 msgid "Unless the current user has admin :class:`permissions `, or the installation is in :attr:`~canaille.app.configuration.RootSettings.DEBUG` mode, error messages won't be too technical. For instance, you can see *The request you made is invalid*. To enable detailed error messages, you can **temporarily** enable the :attr:`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter." msgstr "" #: ../tutorial/troubleshooting.rst:12 -#: 542490c086ef4e3789f4081ff79782d7 +#: e4c8866f3f1f41c29e153f703a653b60 msgid "How to manually install LDAP schemas?" msgstr "" #: ../tutorial/troubleshooting.rst:16 -#: 608fb03b87284a6b9f3b9d6bc3ad610b +#: 14fa4a7e9aa345d88cfe9292cb8556f1 msgid "Schema installation can be automatically done using the :ref:`install command `." msgstr "" #: ../tutorial/troubleshooting.rst:18 -#: 82a41cbf22dd4dcf9e2f2e931f99e9c8 +#: ca24d373d54d4e1fb4b7d64068176aed msgid "As of OpenLDAP 2.4, two configuration methods are available:" msgstr "" #: ../tutorial/troubleshooting.rst:20 -#: 01fb65df953d4def94cf81ae1a67a24b +#: 0692584b3dcd4503be4a87b8195b71ed msgid "The `deprecated `_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" msgstr "" #: ../tutorial/troubleshooting.rst:21 -#: 44a136d1d76b4650beeb3184c87ed94c +#: 1e7b4b9019204007b155e88d5b38fc88 msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)." msgstr "" #: ../tutorial/troubleshooting.rst:23 -#: 955879705e0e4784b31b9f931fa4893a +#: facd90a94b244a69b345eb86085ecc46 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 -#: ac5093049a0b4b05acca07e86b8a2b39 +#: 39abba8b3dd247eeb14b9a56901e6e52 msgid "Old fashion: Copy the schemas in your filesystem" msgstr "" #: ../tutorial/troubleshooting.rst:35 -#: 45b34ecb1537428a8d30a236a262dc0a +#: 5a998c4224314be1854d47a73d179663 msgid "New fashion: Use slapadd to add the schemas" msgstr "" #: ../tutorial/troubleshooting.rst:37 -#: 4a6c996d561549e090f28ba9eab66dbc +#: a3607b6009784f4ab3319447567230dc msgid "Be careful to stop your ldap server before running ``slapadd``" msgstr "" #: ../tutorial/troubleshooting.rst:46 -#: b8757460259947359a75fe279494b2fe +#: 4c097da4ef5742d9afe3311b8a9a9624 msgid "How to manually generate the OIDC keypair?" msgstr "" #: ../tutorial/troubleshooting.rst:50 -#: 835ec41b108a473ea694d379578884d5 +#: cd2d564a1fbe4cdbb5599ff0995b90f3 msgid "The keypair generation can be automatically done using the :ref:`install command `." msgstr "" #: ../tutorial/troubleshooting.rst:52 -#: af917b7ad5e841f68f412cc0ec2265df +#: 683c9af183bd4858818c447c2089aac2 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 "" #: ../tutorial/troubleshooting.rst:61 -#: 66d0e1d129294ebfb9cda4396c5017b7 +#: 5b654c3f6c1e412da23a057cac74d656 msgid "My application return errors with the Canaille connection" msgstr "" #: ../tutorial/troubleshooting.rst:63 -#: 453e55500dd34ffcae8f34c67c79a466 +#: c40ed2ce88924c568982213c582a5bfa msgid "If your Canaille client is misconfigured, you can get error messages in your application logs such as ``{\"error\": \"invalid_client\"}``. If this happens, check you application documentation to find what is the expected configuration. A common misconfiguration is to use ``client_secret_basic`` instead of ``client_secret_post`` as client authentication method." msgstr "" #: ../usecases.rst:2 -#: 353a595ae3b0486b8b8523422c3fb5b9 +#: 261a4559725c4081bbbf16852414481f msgid "Use cases" msgstr "" #: ../usecases.rst:4 -#: 6f2be30b7cd74b159a267ced7a643cd5 +#: 4d12e6a1689044be9b281dbf91158d65 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:8 -#: b7f5938ea2cb4f84bd084705e737221e +#: 7fd29c39667f4e87aca3f139b2755033 msgid "OpenID Connect provider on top of a LDAP directory" msgstr "" #: ../usecases.rst:10 -#: 3042d8c2aa024220b7a91c875bf5dc95 +#: 45a520df4cd54a33a9311c513da77cea 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:13 -#: d3eef6bf95cf4359927c23372aabe0f1 +#: d950baa83ebe4f5297fe0497bb8a3c32 msgid "Profile edition of LDAP users" msgstr "" #: ../usecases.rst:15 -#: eebdfda4073640ac87fa4284dd884651 +#: 3085f8165e484207bf4659b43862670d 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:18 -#: 6a3c93dbedf9437aa31edaa3545fcd0a +#: 7dde73271b77406d97bdcd3fa3531b98 msgid "Password recovery with a LDAP directory" msgstr "" #: ../usecases.rst:20 -#: 14ad8300985e42969d8390a9346c86b9 +#: 45e8874804454fae8093b9467af08d7c 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:23 -#: 4f9c42cdca254770aab3a7c1e3e62d26 +#: 7d266d74683a41ebba6c0a25305ce761 msgid "A lightweight IAM for unit testing" msgstr "" #: ../usecases.rst:25 -#: 6216ebd7f02047ddb9ce69e23a23f4c3 +#: 0c8f0e5e9c4e41a78902c67db8311eb0 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:28 -#: 1c8298dce1dd4be29c7a43214ed45128 +#: e973e8477b5e476eae47432daabe9813 msgid "A lightweight IAM for developing" msgstr "" #: ../usecases.rst:30 -#: d436ba2f416d413c982cbc173943563d +#: a638d446cf0f4ea48c4e047449605160 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:33 -#: 85e00fd0fda040aa9048fa68d9e59043 +#: 4a822053840741f7b560be6d2a59a767 msgid "A lightweight IAM for CIs" msgstr "" #: ../usecases.rst:35 -#: 0401241ae1ca4ed9bf05ddcf6bf70273 +#: 875c095e55944ee4817a0c73a9800c44 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:38 -#: 4e0f48b2eb3043a1b7a268fab5842247 +#: a2f6f3e4416c42d8a47db447cd21710e msgid "A CLI to quickly edit LDAP directory users" msgstr "" #: ../usecases.rst:40 -#: 3b644ff8f5bf4a5ea8eea18e94d29d02 +#: 8d06e1d10a634e968c974fa0990d972a 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 "" diff --git a/doc/references/configuration.rst b/doc/references/configuration.rst index 7baae616..5f0aaf73 100644 --- a/doc/references/configuration.rst +++ b/doc/references/configuration.rst @@ -96,6 +96,6 @@ Example file Here is a configuration file example that can be generated with the :ref:`canaille export-config ` command: -.. literalinclude :: ../config.toml +.. literalinclude :: ../config.sample.toml :language: toml :caption: config.toml