From 1e30c535024a99603194f13ce885c57e64f493e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Rivard?= Date: Fri, 22 Nov 2024 17:45:06 +0100 Subject: [PATCH] doc: use compact gettext catalogs --- CONTRIBUTING.rst | 4 +- doc/conf.py | 2 +- doc/gettext/.gitignore | 3 - doc/gettext/development.pot | 2622 -------- doc/gettext/development/changelog.pot | 1712 ------ doc/gettext/development/contributing.pot | 400 -- doc/gettext/development/index.pot | 22 - doc/gettext/development/specifications.pot | 542 -- doc/gettext/features.pot | 597 -- doc/gettext/index.pot | 97 - doc/gettext/locales.pot | 52 - doc/gettext/locales/readme.pot | 52 - doc/gettext/references.pot | 1712 ------ doc/gettext/references/commands.pot | 366 -- doc/gettext/references/configuration.pot | 743 --- doc/gettext/references/index.pot | 22 - doc/gettext/references/models.pot | 632 -- doc/gettext/tutorial.pot | 453 -- doc/gettext/tutorial/databases.pot | 153 - doc/gettext/tutorial/deployment.pot | 122 - doc/gettext/tutorial/index.pot | 22 - doc/gettext/tutorial/install.pot | 132 - doc/gettext/tutorial/troubleshooting.pot | 92 - doc/locales/doc.pot | 5397 ++++++++++++++++ doc/locales/fr/LC_MESSAGES/development.po | 2152 ------- .../fr/LC_MESSAGES/development/changelog.po | 1392 ----- .../LC_MESSAGES/development/contributing.po | 406 -- .../fr/LC_MESSAGES/development/index.po | 25 - .../LC_MESSAGES/development/specifications.po | 491 -- doc/locales/fr/LC_MESSAGES/doc.po | 5433 +++++++++++++++++ doc/locales/fr/LC_MESSAGES/features.po | 649 -- doc/locales/fr/LC_MESSAGES/index.po | 93 - doc/locales/fr/LC_MESSAGES/references.po | 2092 ------- .../fr/LC_MESSAGES/references/commands.po | 311 - .../LC_MESSAGES/references/configuration.po | 836 --- .../fr/LC_MESSAGES/references/index.po | 25 - .../fr/LC_MESSAGES/references/models.po | 948 --- doc/locales/fr/LC_MESSAGES/tutorial.po | 461 -- .../fr/LC_MESSAGES/tutorial/databases.po | 161 - .../fr/LC_MESSAGES/tutorial/deployment.po | 134 - doc/locales/fr/LC_MESSAGES/tutorial/index.po | 25 - .../fr/LC_MESSAGES/tutorial/install.po | 131 - .../LC_MESSAGES/tutorial/troubleshooting.po | 102 - doc/locales/readme.rst | 6 +- 44 files changed, 10836 insertions(+), 20988 deletions(-) delete mode 100644 doc/gettext/.gitignore delete mode 100644 doc/gettext/development.pot delete mode 100644 doc/gettext/development/changelog.pot delete mode 100644 doc/gettext/development/contributing.pot delete mode 100644 doc/gettext/development/index.pot delete mode 100644 doc/gettext/development/specifications.pot delete mode 100644 doc/gettext/features.pot delete mode 100644 doc/gettext/index.pot delete mode 100644 doc/gettext/locales.pot delete mode 100644 doc/gettext/locales/readme.pot delete mode 100644 doc/gettext/references.pot delete mode 100644 doc/gettext/references/commands.pot delete mode 100644 doc/gettext/references/configuration.pot delete mode 100644 doc/gettext/references/index.pot delete mode 100644 doc/gettext/references/models.pot delete mode 100644 doc/gettext/tutorial.pot delete mode 100644 doc/gettext/tutorial/databases.pot delete mode 100644 doc/gettext/tutorial/deployment.pot delete mode 100644 doc/gettext/tutorial/index.pot delete mode 100644 doc/gettext/tutorial/install.pot delete mode 100644 doc/gettext/tutorial/troubleshooting.pot create mode 100644 doc/locales/doc.pot delete mode 100644 doc/locales/fr/LC_MESSAGES/development.po delete mode 100644 doc/locales/fr/LC_MESSAGES/development/changelog.po delete mode 100644 doc/locales/fr/LC_MESSAGES/development/contributing.po delete mode 100644 doc/locales/fr/LC_MESSAGES/development/index.po delete mode 100644 doc/locales/fr/LC_MESSAGES/development/specifications.po create mode 100644 doc/locales/fr/LC_MESSAGES/doc.po delete mode 100644 doc/locales/fr/LC_MESSAGES/features.po delete mode 100644 doc/locales/fr/LC_MESSAGES/index.po delete mode 100644 doc/locales/fr/LC_MESSAGES/references.po delete mode 100644 doc/locales/fr/LC_MESSAGES/references/commands.po delete mode 100644 doc/locales/fr/LC_MESSAGES/references/configuration.po delete mode 100644 doc/locales/fr/LC_MESSAGES/references/index.po delete mode 100644 doc/locales/fr/LC_MESSAGES/references/models.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial/databases.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial/deployment.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial/index.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial/install.po delete mode 100644 doc/locales/fr/LC_MESSAGES/tutorial/troubleshooting.po diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index ac77b84b..7073a483 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -170,9 +170,9 @@ You can also run sphinx by hand, that should be faster since it avoids the tox e .. code-block:: bash - sphinx-build doc build/sphinx/html + sphinx-build doc build/sphinx/html/en -The generated documentation is located at ``build/sphinx/html``. +The generated documentation is located at ``build/sphinx/html/en``. Code translation ---------------- diff --git a/doc/conf.py b/doc/conf.py index 56eccd50..38a75a86 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -167,4 +167,4 @@ autodoc_pydantic_field_list_validators = False # -- Translation options ------------------------------------------------------ # Advised by https://docs.readthedocs.io/en/latest/guides/manage-translations-sphinx.html#create-translatable-files gettext_uuid = True -gettext_compact = False +gettext_compact = "doc" diff --git a/doc/gettext/.gitignore b/doc/gettext/.gitignore deleted file mode 100644 index 0d2cccb7..00000000 --- a/doc/gettext/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!.gitignore -!*.pot diff --git a/doc/gettext/development.pot b/doc/gettext/development.pot deleted file mode 100644 index 8393a466..00000000 --- a/doc/gettext/development.pot +++ /dev/null @@ -1,2622 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../development/changelog.rst:2 -#: 2321f3b3acf14287bec3b91e374b7a4e -msgid "Release notes" -msgstr "" - -#: ../development/changelog.rst:4 -#: ce54249c983b474c8e0fea402ee7db08 -msgid "All notable changes to this project will be documented in there." -msgstr "" - -#: ../development/changelog.rst:6 -#: a3295c678f074c63a2a73028fa0cdb24 -msgid "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." -msgstr "" - -#: ../../CHANGES.rst:2 -#: e5fa6b4fbd7440ea8c9d4c81ee723400 -msgid "[0.0.57] - Unreleased" -msgstr "" - -#: ../../CHANGES.rst:5 -#: ../../CHANGES.rst:20 -#: ../../CHANGES.rst:48 -#: ../../CHANGES.rst:67 -#: ../../CHANGES.rst:74 -#: ../../CHANGES.rst:93 -#: ../../CHANGES.rst:151 -#: ../../CHANGES.rst:177 -#: ../../CHANGES.rst:192 -#: ../../CHANGES.rst:241 -#: ../../CHANGES.rst:267 -#: ../../CHANGES.rst:286 -#: ../../CHANGES.rst:294 -#: ../../CHANGES.rst:303 -#: ../../CHANGES.rst:327 -#: ../../CHANGES.rst:360 -#: ../../CHANGES.rst:386 -#: ../../CHANGES.rst:433 -#: ../../CHANGES.rst:461 -#: ../../CHANGES.rst:491 -#: ../../CHANGES.rst:547 -#: ../../CHANGES.rst:580 -#: ../../CHANGES.rst:601 -#: ../../CHANGES.rst:611 -#: ../../CHANGES.rst:634 -#: ../../CHANGES.rst:701 -#: ../../CHANGES.rst:739 -#: ../../CHANGES.rst:756 -#: ../../CHANGES.rst:792 -#: 68d7c354e87a417cb210174cdf0caf03 -#: 3db0c002c2764afbaee00eb85f608618 -#: bcd37e5f6d1c4cd4afd82eadf5d23bce -#: 89fc5c0226a445f49244caf1e62d080f -#: 19f1711026114064a5bb8d49031510c3 -#: 2e29ff42691149fa969ca9fdeb3a4e39 -#: 239be472848d430098630a890fe77b5e -#: 7e8bb2e384ff418f954ff6dfc16b929b -#: 43bc9bb8e77143369f5fc7b14c1abcb9 -#: 4aa7554114624a25ab488d3ae36c0081 -#: eb81cce526c34574b68be0ae49958436 -#: d57353f495f2404ca80a5302e2a33579 -#: 864a98b7bc754beea56f6deecd06400f -#: 1243783fe4cf470d96f1d99848565ea9 -#: da5ebf8438f647868f53e84cc5fa1980 -#: 6ad9f25517b34d1e974a37479774c59c -#: 182d965a1dde4d95bdbb9617607c588a -#: 37a62b2eb4aa4c378f4961b0a96a694c -#: ae83441c7d7440ce9bcba1dab44b9e17 -#: dc487d8fc4ad4c919b576678475e3579 -#: b2a149dbf92b4a269ef3ba3a58d58894 -#: 8073c3471b8d4b19a344155e1c8bc7fb -#: 0a8ca3f4481e4a48bd29fc5a69fa803c -#: 6f1a10debe3e49ebafb5d35d5b582935 -#: dff770d00b5c43feb6abe259a6f62233 -#: 1ffcab7dcb044a768fec8cec5b4079e9 -#: 18a9b586f7924b6b9506fb40695c6f52 -#: 536fa76ec5b74cfea65f706328cf399d -#: 34242a231a08460183bc15c10ad62416 -msgid "Added" -msgstr "" - -#: ../../CHANGES.rst:6 -#: 76511a0335094c85885bcba9209552fb -msgid "Password compromission check :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:7 -#: 7a7920f8d7a841c185fe3f051f5c9ea8 -msgid ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:13 -#: a8d81bff320f4897acde83bf6b46304f -msgid "[0.0.56] - 2024-11-07" -msgstr "" - -#: ../../CHANGES.rst:16 -#: ../../CHANGES.rst:58 -#: ../../CHANGES.rst:97 -#: ../../CHANGES.rst:105 -#: ../../CHANGES.rst:113 -#: ../../CHANGES.rst:120 -#: ../../CHANGES.rst:127 -#: ../../CHANGES.rst:141 -#: ../../CHANGES.rst:169 -#: ../../CHANGES.rst:182 -#: ../../CHANGES.rst:200 -#: ../../CHANGES.rst:219 -#: ../../CHANGES.rst:227 -#: ../../CHANGES.rst:253 -#: ../../CHANGES.rst:261 -#: ../../CHANGES.rst:281 -#: ../../CHANGES.rst:311 -#: ../../CHANGES.rst:341 -#: ../../CHANGES.rst:349 -#: ../../CHANGES.rst:373 -#: ../../CHANGES.rst:393 -#: ../../CHANGES.rst:415 -#: ../../CHANGES.rst:425 -#: ../../CHANGES.rst:446 -#: ../../CHANGES.rst:454 -#: ../../CHANGES.rst:477 -#: ../../CHANGES.rst:500 -#: ../../CHANGES.rst:512 -#: ../../CHANGES.rst:521 -#: ../../CHANGES.rst:530 -#: ../../CHANGES.rst:539 -#: ../../CHANGES.rst:559 -#: ../../CHANGES.rst:566 -#: ../../CHANGES.rst:616 -#: ../../CHANGES.rst:624 -#: ../../CHANGES.rst:649 -#: ../../CHANGES.rst:657 -#: ../../CHANGES.rst:665 -#: ../../CHANGES.rst:678 -#: ../../CHANGES.rst:692 -#: ../../CHANGES.rst:724 -#: ../../CHANGES.rst:747 -#: ../../CHANGES.rst:778 -#: c6436e97687f47059a0cee1d524a47e9 -#: 9c0f6431917f4a028953286eca0c0cfe -#: 93f90bed1a674784a7f5acaeba3f604c -#: 106b8093407848da93d18cf1159549d8 -#: 9b3353616c1845f7a528a3dd4f29e788 -#: c82a0ef7ede341fdaefe086516ddcfa6 -#: 0622c64030ba4be4b2f7d4b6868d5cea -#: 375079958ff14b0aaca6745e79ae2415 -#: 0c43788b676c4e3ea67950a078f16108 -#: 1af4b96af7c74d9cb407d9c3d25f22c6 -#: 8cb332e78e8b43e3bdfb2ee17391b95f -#: 0fd2668c4a06415a82e24ceadbef42d9 -#: 767b2db5c1dc40ba9099f108c8892931 -#: 9b0c1776d1424188b18a4981e37f503f -#: d5ce5edfaa79499d86f18818d1128662 -#: 6f01d2ff547b4a7da75fba7505f0c928 -#: 5516287260254aaf8546be4b15f813ae -#: f560d39a9ab14fcf97370016363e00b9 -#: f53f69e009534f16be2d83ae976a4d50 -#: 100a1287150746fda66d2d20d86ae28d -#: 59be91b9f20d4db2b773253f2af92205 -#: 7b414594484a496fa9dc0f900b944fc3 -#: c550c697f9f24ccabd597743b065a194 -#: 809c6b26372b4afc806bd4cc764ea8c2 -#: 9a1154c00a494a8f9faf52e6a321b480 -#: c4839a2d52fb4da3aba2021e69a806d9 -#: d90b0e85882045c6a7e6775ddaa87320 -#: fc28d39c9a564152a86cec53b829168f -#: 6414599939fb46b1a93445c2711b3eb3 -#: 22d8d9f8912540d3a53620b47668d9f1 -#: cc737544941c4404b62295cb26228988 -#: 2e6e142a7bae44528009159bf8b912de -#: 0b74f6c12571422e8038c272f6786431 -#: 48fd64a65440420cb4abddfb33e1960d -#: 3d2164df801a46f39778ce191498d823 -#: 40564ad34a6d4c2eabfcfc91c14021b1 -#: 434aa98010b840a59f0ac1b20d805a36 -#: 5a752d2d6a874724b55bfae88cd6b5e1 -#: feaaddf40ade4bfdaa734fa4d6867bd6 -#: 0f12030c10e348af8002f79e38131c89 -#: 50a0c42fe2864a1b82ad62d57c69115e -#: 30aecc67e5874f67958c3ad4e590689d -#: ca11980027b74148bb955b294b904aed -msgid "Fixed" -msgstr "" - -#: ../../CHANGES.rst:17 -#: f75ed82ec3464069afb11e411860a098 -msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`" -msgstr "" - -#: ../../CHANGES.rst:21 -#: fa2bfd3a364b42eb819e00e3b6cfe8f6 -msgid ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` configuration options :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:23 -#: c04207e5c1014abc81ac33e46044be68 -msgid "Password strength visual indicator :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:24 -#: 76c8b3dc402144e6b76f4f15c4a1dce0 -msgid "Security events logs :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:25 -#: 66c0285ecc324619b90ee9580787b42b -msgid "Support for Python 3.13 :pr:`186`" -msgstr "" - -#: ../../CHANGES.rst:28 -#: ../../CHANGES.rst:41 -#: ../../CHANGES.rst:53 -#: ../../CHANGES.rst:78 -#: ../../CHANGES.rst:86 -#: ../../CHANGES.rst:134 -#: ../../CHANGES.rst:158 -#: ../../CHANGES.rst:210 -#: ../../CHANGES.rst:247 -#: ../../CHANGES.rst:316 -#: ../../CHANGES.rst:332 -#: ../../CHANGES.rst:368 -#: ../../CHANGES.rst:405 -#: ../../CHANGES.rst:440 -#: ../../CHANGES.rst:483 -#: ../../CHANGES.rst:587 -#: ../../CHANGES.rst:641 -#: ../../CHANGES.rst:673 -#: ../../CHANGES.rst:687 -#: 17c200d74dc94e618f5a8f1a4c737892 -#: ccb630d62929451d86cfe50c5e9d3b0c -#: 90945415d6ba49e2949e6843e363aa54 -#: 7e9a9e0fbd27415e911f4d0229e89ce5 -#: 5308306c6a9848db85d209a93bf73f10 -#: fea433e54cb745aa951c32c5ebf2902b -#: 79a0c2512c9b41c4aae6f0242f8cf3ec -#: 34ba73a5ce4c471e85dbd5935079eb1b -#: 256bc9a8adbb4b908412109831aa2965 -#: 6e213464c100494ebfd7cc02300d0a6c -#: 9ab07efdabae43da9c5a5f48a49a6eed -#: d2b7338ef0cc46e19a020852536f8136 -#: 66443c36a4c34c2384b3e053978f305e -#: 6eb2ae5f5d0747d6bd769409b69a5df3 -#: f16408e600fb4a41a0baca3c45764151 -#: 63be612c208b45a4a3456c07bc33480e -#: 2def5c51796844b0b6a242eb3161d389 -#: 808861ca6acb43c0bb39ebcda59434b7 -#: 3525164111a4470c911c4d92538c7891 -msgid "Changed" -msgstr "" - -#: ../../CHANGES.rst:29 -#: f6dd0f6bfafd4d2b904ed4e6269a101d -msgid "Update to HTMX 2.0.3 :pr:`184`" -msgstr "" - -#: ../../CHANGES.rst:30 -#: 5483fcfcc96949a5913fcc4fd14977f2 -msgid "Migrate from poetry to uv :pr:`187`" -msgstr "" - -#: ../../CHANGES.rst:31 -#: 8258ddbb1640406d8f6739a37e94875b -msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``." -msgstr "" - -#: ../../CHANGES.rst:34 -#: ../../CHANGES.rst:378 -#: ../../CHANGES.rst:784 -#: ff210a53b34e45e2b91b13a776999d67 -#: 93a0b2853b2644c3bd42d00d854d614b -#: 52a78299c19c4677a74dc0cb2f50c670 -msgid "Removed" -msgstr "" - -#: ../../CHANGES.rst:35 -#: 740852cc46ee478eb5f3aeb2613acf95 -msgid "End support for python 3.9. :pr:`179`" -msgstr "" - -#: ../../CHANGES.rst:38 -#: 482c536c76fa4d94b2b30dcc8ee6b541 -msgid "[0.0.55] - 2024-08-30" -msgstr "" - -#: ../../CHANGES.rst:42 -#: a198bc7ecca541c695b52bc3279f5d31 -msgid "Use poetry-core build backend. :pr:`178`" -msgstr "" - -#: ../../CHANGES.rst:45 -#: 68fb373964584f1e830fbef217f942e9 -msgid "[0.0.54] - 2024-07-25" -msgstr "" - -#: ../../CHANGES.rst:49 -#: 5e73dc86053a4be98fc43f61b56ae307 -msgid "Group member removal can be achieved from the group edition page :issue:`192`" -msgstr "" - -#: ../../CHANGES.rst:50 -#: ebd2fe8625fa4c44bb2f057528712d25 -msgid "Model management commands :issue:`117` :issue:`54`" -msgstr "" - -#: ../../CHANGES.rst:54 -#: cf2dd6aef9684a878412b58ce961688d -msgid "Model `identifier_attributes` are fixed." -msgstr "" - -#: ../../CHANGES.rst:55 -#: 03a7ad9d623c408296b6a88abd0ba9ce -msgid "Bump to htmx 1.9.12 :pr:`172`" -msgstr "" - -#: ../../CHANGES.rst:60 -#: 4df3c65b91dc4ecba3c44d142963c276 -msgid "Dark theme colors for better readability" -msgstr "" - -#: ../../CHANGES.rst:61 -#: 91c0ae975e544d0ca32cfdaee2fb0e27 -msgid "Crash for passwordless users at login when no SMTP server was configured." -msgstr "" - -#: ../../CHANGES.rst:64 -#: d8ada9c57f4b44ed815b070924f0937b -msgid "[0.0.53] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:68 -#: cf9cefa8bf3541a782d9762e069e7ccf -msgid "`env_prefix` create_app variable can select the environment var prefix." -msgstr "" - -#: ../../CHANGES.rst:71 -#: 1f6cfb92fd364d57b8ed7522c42fc076 -msgid "[0.0.52] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:75 -#: 1f4573a94d0a421ea02c9d09b66db2c9 -msgid "`env_file` create_app variable can customize/disable the .env file" -msgstr "" - -#: ../../CHANGES.rst:79 -#: 066410eaab1540eab2776a5fc87504cc -msgid "Locked users cannot be impersonated anymore." -msgstr "" - -#: ../../CHANGES.rst:80 -#: ace6053c00b74772b52f849bbbae2e31 -msgid "Minimum python requirement is 3.9." -msgstr "" - -#: ../../CHANGES.rst:83 -#: 22ea6460d2e34b6eb367f3a4e4e3d17b -msgid "[0.0.51] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:87 -#: 1b7d91a9d02f4cabbef111079d39b344 -msgid "Display the menu bar on error pages." -msgstr "" - -#: ../../CHANGES.rst:90 -#: 78fed34f5122433bbe6021b31638194e -msgid "[0.0.50] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:94 -#: f7cb34791e1e4380a57e373b1b087925 -msgid "Sign in/out events are logged in :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:98 -#: 45c11baa1194416dbc2d41264b74a2e5 -msgid "HTMX and JAVASCRIPT configuration settings." -msgstr "" - -#: ../../CHANGES.rst:99 -#: 8deccea079c84b3bae3f56912bc22ce6 -msgid "Compatibility with old sessions IDs." -msgstr "" - -#: ../../CHANGES.rst:102 -#: 54b31975f2074e42a3e408198c5dcfaa -msgid "[0.0.49] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:106 -#: 2540f82b704b458a8d36f0e4315c7dfc -msgid "LDAP user group removal." -msgstr "" - -#: ../../CHANGES.rst:107 -#: fd4408f9b27d423d89bef78c94129312 -msgid "Display an error message when trying to remove the last user from a group." -msgstr "" - -#: ../../CHANGES.rst:110 -#: 78661756213542da9bfc0d1f0132699b -msgid "[0.0.48] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:114 -#: 1e0516ca6b0749f5b1d9607cc7a25d36 -msgid "LDAP objectClass guessing exception." -msgstr "" - -#: ../../CHANGES.rst:117 -#: 1fcba77b03424826a405e4ea54fff663 -msgid "[0.0.47] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:121 -#: 82668bcaf18a44128f17457d5362ba4f -msgid "Lazy permission loading exception." -msgstr "" - -#: ../../CHANGES.rst:124 -#: 4fb3b475ce0c4cec9e20ce04636b6b3c -msgid "[0.0.46] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:128 -#: dd7382397fe542578854431f6e6bbf89 -msgid "Saving an object with the LDAP backend keeps the objectClass un-managed by Canaille. :pr:`171`" -msgstr "" - -#: ../../CHANGES.rst:131 -#: ee059b69e1a9440abadc77ec40e25d80 -msgid "[0.0.45] - 2024-04-04" -msgstr "" - -#: ../../CHANGES.rst:135 -#: 9d61e5909fd643d592725db933b4912b -msgid "Internal indexation mechanism of :class:`~canaille.backends.memory.model.MemoryModel`" -msgstr "" - -#: ../../CHANGES.rst:138 -#: 39bf7adeb4194a858226346c50be08d6 -msgid "[0.0.44] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:142 -#: ea00e8ce44a64df9b11922ddfc6ccc3c -msgid "Fix the default LDAP USER_FILTER value" -msgstr "" - -#: ../../CHANGES.rst:143 -#: 0f88fd65e349426396cb3c052bd83db1 -msgid "Fix the OIDC feature detection" -msgstr "" - -#: ../../CHANGES.rst:146 -#: 9bd6a349d9d9490ca91a4f56d46b0078 -msgid "[0.0.43] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:148 -#: 11358334470d4f3bb392389cf9748f48 -msgid "🚨Configuration files must be updated.🚨" -msgstr "" - -#: ../../CHANGES.rst:153 -#: 33ac5da8d5a1410997fd6155fa994f3d -msgid "Add `created` and `last_modified` datetime for all models" -msgstr "" - -#: ../../CHANGES.rst:154 -#: c5ed8ff0b9544920a0fb9a99488d6d0b -msgid "Sitemap to the documentation :pr:`169`" -msgstr "" - -#: ../../CHANGES.rst:155 -#: 3fc68ed436e9488a87dab37f5bfcb326 -msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" -msgstr "" - -#: ../../CHANGES.rst:160 -#: e7cd01ae7a064316b55271464c73cdbb -msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" -msgstr "" - -#: ../../CHANGES.rst:161 -#: f8080d1def124e02a5ebd401743bcc53 -msgid "Bump to htmx 1.99.11 :pr:`166`" -msgstr "" - -#: ../../CHANGES.rst:162 -#: 76e9e2d0d2de4f39a3f6e0408f91b393 -msgid "Use the standard tomllib python module instead of `toml` starting from python 3.11 :pr:`167`" -msgstr "" - -#: ../../CHANGES.rst:163 -#: 72c0df8635b84899b60dbb2d65aaf1f6 -msgid "Use shibuya as the documentation theme :pr:`168`" -msgstr "" - -#: ../../CHANGES.rst:166 -#: 412f31b588a24d38908f57d0ce04f22c -msgid "[0.0.42] - 2023-12-29" -msgstr "" - -#: ../../CHANGES.rst:171 -#: 0db77ffe1665459c916b8cff8ea6fc17 -msgid "Avoid to fail on imports if ``cryptography`` is missing." -msgstr "" - -#: ../../CHANGES.rst:174 -#: 83e78090be5f4b408da07f6bd3214e08 -msgid "[0.0.41] - 2023-12-25" -msgstr "" - -#: ../../CHANGES.rst:179 -#: cd301be9e1344aa6ba52861605f2752e -msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" -msgstr "" - -#: ../../CHANGES.rst:184 -#: 8edd4079d06045c58f5dd79b88abb9c1 -msgid "Correctly set up Client audience during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:185 -#: 7f3a5c2a265e400b86e4e7d7114702f1 -msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:186 -#: 4deda78d230841f7a8c54af66d2338a9 -msgid "Group field error prevented the registration form validation." -msgstr "" - -#: ../../CHANGES.rst:189 -#: 1608e0d53771494eaa24bd709cee852a -msgid "[0.0.40] - 2023-12-22" -msgstr "" - -#: ../../CHANGES.rst:194 -#: 17f8d278ee504c86b62b04a6f6c82d57 -msgid "``THEME`` can be a relative path" -msgstr "" - -#: ../../CHANGES.rst:197 -#: f76c25c375504e1d9595c39a74f0596f -msgid "[0.0.39] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:202 -#: ddaa080da0944c8eba445e035d9bbeee -msgid "Crash when no ACL were defined" -msgstr "" - -#: ../../CHANGES.rst:203 -#: 96df0449be4a45d88e16244d6d67524d -msgid "OIDC Userinfo endpoint is also available in POST" -msgstr "" - -#: ../../CHANGES.rst:204 -#: 85178af1d47b4994b59cdc3fe012cd67 -msgid "Fix redirection after password reset :issue:`159`" -msgstr "" - -#: ../../CHANGES.rst:207 -#: 8177fe55aa064e5da95528c84c136865 -msgid "[0.0.38] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:212 -#: 9a79b773e59941fb8e77b7ac348d168a -msgid "Convert all the png in webp. :pr:`162`" -msgstr "" - -#: ../../CHANGES.rst:213 -#: 0fcf3cc59cdc49ba829f0c017026a353 -msgid "Update to flask 3 :issue:`161` :pr:`163`" -msgstr "" - -#: ../../CHANGES.rst:216 -#: 7f12675bc88c462e8700ab4dcf575e1b -msgid "[0.0.37] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:221 -#: 285b8426823745eaaa2ea95a1c9a65c6 -msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" -msgstr "" - -#: ../../CHANGES.rst:224 -#: bca127d497be434ba465b05314a3adb4 -msgid "[0.0.36] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:229 -#: fe53a804255549689149c731033fcdbf -msgid "Avoid crashing when LDAP groups references unexisting users." -msgstr "" - -#: ../../CHANGES.rst:230 -#: 46a4aca17d94478793eb940b1253146d -msgid "Password reset and initialization mails were only sent to the preferred user email address." -msgstr "" - -#: ../../CHANGES.rst:232 -#: 72414136fedd43d48ab641e9a2ba5135 -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:234 -#: f5e9a14265cc469b98047dda5a5940ae -msgid "Password comparison was too permissive on login." -msgstr "" - -#: ../../CHANGES.rst:235 -#: 96a3afb6e07e4265905bfff45f16fca1 -msgid "Encrypt passwords in the SQL backend." -msgstr "" - -#: ../../CHANGES.rst:238 -#: d8b0b1f939ac4cfabfe856f124668efa -msgid "[0.0.35] - 2023-11-25" -msgstr "" - -#: ../../CHANGES.rst:243 -#: 4c4a1aaa53c84089bbdbacfdd7a93cd7 -msgid "Refresh token grant supports other client authentication methods. :pr:`157`" -msgstr "" - -#: ../../CHANGES.rst:244 -#: d38a9d2c989f477b830453bb91a3ce30 -msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" -msgstr "" - -#: ../../CHANGES.rst:249 -#: e07fa26da7c04af284538253149c5c8e -msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:250 -#: ac6b644acebb4bbb8144ee39178bb7e0 -msgid "Bump to htmx 1.9.9 :pr:`159`" -msgstr "" - -#: ../../CHANGES.rst:255 -#: 36303be4013a4ab98ca76c352237b480 -msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" -msgstr "" - -#: ../../CHANGES.rst:258 -#: c99e8701c9234a63bdd47ef72f94de9e -msgid "[0.0.34] - 2023-10-02" -msgstr "" - -#: ../../CHANGES.rst:263 -#: f47eb19208d840ed8759e38a8d22776c -msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`" -msgstr "" - -#: ../../CHANGES.rst:269 -#: 9b398e268d54490a9837a541ae6acd11 -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:272 -#: 5ca22758e22842fd9eadaba370538cf3 -msgid "flask-babel and pytz are now part of the `front` extras" -msgstr "" - -#: ../../CHANGES.rst:273 -#: 54883b5b1e4c4c82a6ff40eddec5d876 -msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" -msgstr "" - -#: ../../CHANGES.rst:274 -#: eeef63797d064f27a336fdae4df02eb2 -msgid "Bump to htmx 1.9.6 :pr:`154`" -msgstr "" - -#: ../../CHANGES.rst:275 -#: 728d7adbfc804d69b74b855aa7a94506 -msgid "Add support for python 3.12 :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:278 -#: 6e3906ced8b443b98f63ace838a7c6d7 -msgid "[0.0.33] - 2023-08-26" -msgstr "" - -#: ../../CHANGES.rst:283 -#: e53d000ae77e40cd9e2424921f2a408b -msgid "OIDC jwks endpoint do not return empty kid claim" -msgstr "" - -#: ../../CHANGES.rst:288 -#: f9abbef1c06546c69c1cea00a196ba97 -msgid "Documentation details on the canaille models." -msgstr "" - -#: ../../CHANGES.rst:291 -#: 6cf47b850381418993ea52a424e5b5d7 -msgid "[0.0.32] - 2023-08-17" -msgstr "" - -#: ../../CHANGES.rst:296 -#: beae54bdce4542878dc63551a2b70c12 -msgid "Additional inmemory backend :issue:`30` :pr:`149`" -msgstr "" - -#: ../../CHANGES.rst:297 -#: 9f9ba3da7310492ca4a75f838efacc32 -msgid "Installation extras :issue:`167` :pr:`150`" -msgstr "" - -#: ../../CHANGES.rst:300 -#: 61e8ad0f797e40d2bf74c865be912ced -msgid "[0.0.31] - 2023-08-15" -msgstr "" - -#: ../../CHANGES.rst:305 -#: 0a701d5de457451c84ef900cc3fef867 -msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" -msgstr "" - -#: ../../CHANGES.rst:306 -#: 09976b3b14dd47fcb0b95ac50ee964b9 -msgid "Validate phone numbers with a regex :pr:`146`" -msgstr "" - -#: ../../CHANGES.rst:307 -#: f422b0b42b6b41b69437d02988f560aa -msgid "Email verification :issue:`41` :pr:`147`" -msgstr "" - -#: ../../CHANGES.rst:308 -#: c4949bfe2646408f88520bb34ab3ba7c -msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" -msgstr "" - -#: ../../CHANGES.rst:313 -#: 222752c19a884c7c8e7526f6aae81387 -msgid "The `check` command uses the default configuration values." -msgstr "" - -#: ../../CHANGES.rst:318 -#: 0295613b5cec412e8bbd5bd720e09665 -msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" -msgstr "" - -#: ../../CHANGES.rst:321 -#: 35f7f7fc88ab4085bc98cbda4c158655 -msgid "[0.0.30] - 2023-07-06" -msgstr "" - -#: ../../CHANGES.rst:323 -#: 8497fb120e46418489f5966c89260726 -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:329 -#: e3c929900cb94378ace985c675b00426 -msgid "Configuration option to disable javascript :pr:`141`" -msgstr "" - -#: ../../CHANGES.rst:334 -#: 1654a3c769454610bad6c45c115842d9 -msgid "Configuration ``USER_FILTER`` is parsed with jinja." -msgstr "" - -#: ../../CHANGES.rst:335 -#: 1d9fa53b5d924c899ab9a2de17293f28 -msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" -msgstr "" - -#: ../../CHANGES.rst:338 -#: a9ee235c196d4cc382336efdbfcbcd32 -msgid "[0.0.29] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:343 -#: 7dc80b4f731d45ed82edfef699eea179 -msgid "Disabled HTMX boosting on OIDC forms to avoid errors." -msgstr "" - -#: ../../CHANGES.rst:346 -#: 75d600b0d9cb4fe080fff1f600081680 -msgid "[0.0.28] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:351 -#: 082f3fec66aa4026ae6b035f0d3930f0 -msgid "A template variable was misnamed." -msgstr "" - -#: ../../CHANGES.rst:354 -#: 2d4a7bf5eb5b43e8bec63408fcf193f0 -msgid "[0.0.27] - 2023-06-29" -msgstr "" - -#: ../../CHANGES.rst:356 -#: 131f26c6b3e8454c8daf2492788a1843 -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:362 -#: c0a5ffd3ca674178b3f611def9fe24e1 -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:364 -#: 7cdfeadd260443ba93aa4316a058a132 -msgid "Field list support. :issue:`115` :pr:`136`" -msgstr "" - -#: ../../CHANGES.rst:365 -#: 9f460259932a4e4fae39173cda01de2a -msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" -msgstr "" - -#: ../../CHANGES.rst:370 -#: 400513d9b1dc4753be195a1dd668cc3b -msgid "Bump to jquery 3.7.0 :pr:`138`" -msgstr "" - -#: ../../CHANGES.rst:375 -#: c06348c1f8dd487889aadf81e232d5aa -msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" -msgstr "" - -#: ../../CHANGES.rst:380 -#: af226ed2ac794de1b28df7b8346e9721 -msgid "Stop support for python 3.7 :pr:`131`" -msgstr "" - -#: ../../CHANGES.rst:383 -#: 84673f0a17654b8b8e27a2a549b81593 -msgid "[0.0.26] - 2023-06-03" -msgstr "" - -#: ../../CHANGES.rst:388 -#: 8b12e95f472e4feebf4f25a0c8c4aca7 -msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+ :issue:`13` :pr:`118`" -msgstr "" - -#: ../../CHANGES.rst:390 -#: eac835587147487481476bc01c17ada9 -msgid "Timezone configuration entry. :issue:`137` :pr:`130`" -msgstr "" - -#: ../../CHANGES.rst:395 -#: 15c83d445e564f4ba4e3a63e0be4d43b -msgid "Avoid setting ``None`` in JWT claims when they have no value." -msgstr "" - -#: ../../CHANGES.rst:396 -#: eaffa225744b4840a42da427162e2785 -msgid "Display password recovery button on OIDC login page. :pr:`129`" -msgstr "" - -#: ../../CHANGES.rst:399 -#: addc305664094b5481aea4773d1e0fed -msgid "[0.0.25] - 2023-05-05" -msgstr "" - -#: ../../CHANGES.rst:401 -#: cfe53ed735fa4fc28795a364755afacc -msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" -msgstr "" - -#: ../../CHANGES.rst:407 -#: 3cb07e6c5be34134be6b573c5f576f3f -msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" -msgstr "" - -#: ../../CHANGES.rst:408 -#: 40cafb901cfa48e2b60eb3c5aeb640ea -msgid "Moved OIDC related configuration entries in ``OIDC``" -msgstr "" - -#: ../../CHANGES.rst:409 -#: d7d52425e9ef4ffa888ecbb06496ec24 -msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" -msgstr "" - -#: ../../CHANGES.rst:410 -#: e024da00819b46b996d269415e8d171d -msgid "Bumped to htmx 1.9.0 :pr:`124`" -msgstr "" - -#: ../../CHANGES.rst:411 -#: 9d8b7a6a251043389403b53f9090e709 -msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:412 -#: 2c35b0cb84dd4334857ec96f44faeeeb -msgid "Bumped to htmx 1.9.2 :pr:`127`" -msgstr "" - -#: ../../CHANGES.rst:417 -#: 01e98f5b734046e5ad238fdf6c329b65 -msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." -msgstr "" - -#: ../../CHANGES.rst:418 -#: 58b8d01fb9ce4f8caf84c7d54867f8f3 -msgid "Fixed empty model attributes registration :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:419 -#: 54425718a4fd43aba3c78e6762d5e9c4 -msgid "Password initialization mails were not correctly sent. :pr:`128`" -msgstr "" - -#: ../../CHANGES.rst:422 -#: 301adcf1323a448db7436b7556b819c8 -msgid "[0.0.24] - 2023-04-07" -msgstr "" - -#: ../../CHANGES.rst:427 -#: 0901c7eb5ef7455db93d0336cf16300b -msgid "Fixed avatar update. :pr:`122`" -msgstr "" - -#: ../../CHANGES.rst:430 -#: 11388c0443524dbc9baa843f713e82c7 -msgid "[0.0.23] - 2023-04-05" -msgstr "" - -#: ../../CHANGES.rst:435 -#: 0c2bdb0a35b348309be8da2460dda465 -msgid "Organization field. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:436 -#: 52afa1e2c6814f9881128dedeec00414 -msgid "ETag and Last-Modified headers on user photos. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:437 -#: d7493b75d8284eadb201a0d1fba5dcbb -msgid "Dynamic form validation :pr:`120`" -msgstr "" - -#: ../../CHANGES.rst:442 -#: 8b45c11bf3864bbca2cb34e0a7a2d069 -msgid "UX rework. Submenu addition. :pr:`114`" -msgstr "" - -#: ../../CHANGES.rst:443 -#: d8888dcbb64144c597042aec7db36e4d -msgid "Properly handle LDAP date timezones. :pr:`117`" -msgstr "" - -#: ../../CHANGES.rst:448 -#: abf36244db5b4f8cb0192e8a9ca322f9 -msgid "CSRF protection on every forms. :pr:`119`" -msgstr "" - -#: ../../CHANGES.rst:451 -#: c685cf95e47e43e39eb275d9e7615973 -msgid "[0.0.22] - 2023-03-13" -msgstr "" - -#: ../../CHANGES.rst:455 -#: 25623d11da5b4fd4be340036135cae8c -msgid "faker is not imported anymore when the `clean` command is called." -msgstr "" - -#: ../../CHANGES.rst:458 -#: d63a34b4a08b4537807f53540edcd101 -msgid "[0.0.21] - 2023-03-12" -msgstr "" - -#: ../../CHANGES.rst:463 -#: 31fc708ea1be424eb6cc3145abb99d31 -msgid "Display TOS and policy URI on the consent list page. :pr:`102`" -msgstr "" - -#: ../../CHANGES.rst:464 -#: af78e647f0424db38b885b41592c3370 -msgid "Admin token deletion :pr:`100` :pr:`101`" -msgstr "" - -#: ../../CHANGES.rst:465 -#: f4d5fda7ea8e4c2ba7377125e2aefd5a -msgid "Revoked consents can be restored. :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:466 -#: 64879f34805f48f69bbf6f5012176265 -msgid "Pre-consented clients are displayed in the user consent list, and their consents can be revoked. :issue:`69` :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:468 -#: b2f9b8bb74ff47daa8010a6472ce0c30 -msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`" -msgstr "" - -#: ../../CHANGES.rst:470 -#: b2b5fef1ac5c44178d2d2894645593f5 -msgid "SMTP SSL support. :pr:`108`" -msgstr "" - -#: ../../CHANGES.rst:471 -#: ad6af1ee42184abd8ea3351628c1cac9 -msgid "Server side pagination. :issue:`114` :pr:`111`" -msgstr "" - -#: ../../CHANGES.rst:472 -#: 4c3ef76329084cacb999daf99b1076fe -msgid "Department number support. :issue:`129`" -msgstr "" - -#: ../../CHANGES.rst:473 -#: 434a6690f72a4115ae3237559db0f2c4 -msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" -msgstr "" - -#: ../../CHANGES.rst:474 -#: d930165b44bb4fe28a40469d96d4de65 -msgid "Title edition support :pr:`113`" -msgstr "" - -#: ../../CHANGES.rst:479 -#: 49519ddcfb26488cb1803f9e59c03174 -msgid "Client deletion also deletes related Consent, Token and AuthorizationCode objects. :issue:`126` :pr:`98`" -msgstr "" - -#: ../../CHANGES.rst:485 -#: 9591b382aab04b44bb72da8480fcf25f -msgid "Removed datatables." -msgstr "" - -#: ../../CHANGES.rst:488 -#: 47ffac05b2734f7599c60f70fe9326a4 -msgid "[0.0.20] - 2023-01-28" -msgstr "" - -#: ../../CHANGES.rst:493 -#: 10d42ae681614ea488e6d07e75bb7cc7 -msgid "Spanish translation. :pr:`85` :pr:`88`" -msgstr "" - -#: ../../CHANGES.rst:494 -#: 9891ff9d9ed34685aebfd5d3acc4bae1 -msgid "Dedicated connectivity test email :pr:`89`" -msgstr "" - -#: ../../CHANGES.rst:495 -#: 80ce05f77ae74909890f9eb358b44c5a -msgid "Update to jquery 3.6.3 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:496 -#: ff21da5bd61e4f0ab07afc31e56b73dc -msgid "Update to fomantic-ui 2.9.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:497 -#: aca0aabe64db4f4db27f0ca9949b404e -msgid "Update to datatables 1.13.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:502 -#: 88382a6314864edd81ec2353f1450de9 -msgid "Fix typos and grammar errors. :pr:`84`" -msgstr "" - -#: ../../CHANGES.rst:503 -#: 6f56cda577ea46d98288f1585490bfe3 -msgid "Fix wording and punctuations. :pr:`86`" -msgstr "" - -#: ../../CHANGES.rst:504 -#: ef731975e4e24d3eb3bafa2f59e71c21 -msgid "Fix HTML lang tag :issue:`122` :pr:`87`" -msgstr "" - -#: ../../CHANGES.rst:505 -#: eff8d1037e2d4c29961afac8c1c4da52 -msgid "Automatically trims the HTML translated strings. :pr:`91`" -msgstr "" - -#: ../../CHANGES.rst:506 -#: cf3bed5229a043939a25fc83821619f0 -msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" -msgstr "" - -#: ../../CHANGES.rst:509 -#: 1bb3628281ec4cc18bb2eef33ec3f9e8 -msgid "[0.0.19] - 2023-01-14" -msgstr "" - -#: ../../CHANGES.rst:514 -#: 8a630089323d42c782a476765cb05d21 -msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`" -msgstr "" - -#: ../../CHANGES.rst:518 -#: 7ce903b7fb5d49bda0fcc61d112d9cb7 -msgid "[0.0.18] - 2022-12-28" -msgstr "" - -#: ../../CHANGES.rst:523 -#: eb598fdbf703465986707e080da6827a -msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri`` :pr:`82`" -msgstr "" - -#: ../../CHANGES.rst:527 -#: 34a5a8d6d7e340c39fbd2851284a276d -msgid "[0.0.17] - 2022-12-26" -msgstr "" - -#: ../../CHANGES.rst:532 -#: cdd95cfd920948abb2984275e8cf87d3 -msgid "Fixed group deletion button. :pr:`80`" -msgstr "" - -#: ../../CHANGES.rst:533 -#: 1ce782b5fdc64ea4952ad1de9bec9af8 -msgid "Fixed post requests in oidc clients views. :pr:`81`" -msgstr "" - -#: ../../CHANGES.rst:536 -#: b19cb6e6a9234875bb24b074d6e32fa8 -msgid "[0.0.16] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:541 -#: 4026b49aaec14d04a1b9c94c62dba1f7 -msgid "Fixed LDAP operational attributes handling." -msgstr "" - -#: ../../CHANGES.rst:544 -#: 82d7e4549e994e9f9a269601d1b31186 -msgid "[0.0.15] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:549 -#: 7a91366f4d7c4644a253118355c864e6 -msgid "User can chose their favourite display name. :pr:`77`" -msgstr "" - -#: ../../CHANGES.rst:550 -#: c3c588c0740443209e5d30dd9e4b63e7 -msgid "Bumped to authlib 1.2. :pr:`78`" -msgstr "" - -#: ../../CHANGES.rst:551 -#: e52e34bd7e8a45cb8c3440bb94e71328 -msgid "Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management Protocol :pr:`79`" -msgstr "" - -#: ../../CHANGES.rst:553 -#: b048668f98924027963eb5fa4759651f -msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." -msgstr "" - -#: ../../CHANGES.rst:556 -#: 7ad90b4df3dc4bcdad973cca13ca9062 -msgid "[0.0.14] - 2022-11-29" -msgstr "" - -#: ../../CHANGES.rst:560 -#: 664ba7b255d94ffcae4c68c5f332f019 -msgid "Fixed translation mo files packaging." -msgstr "" - -#: ../../CHANGES.rst:563 -#: cb4f5961889c489f95a63f7c5f191724 -msgid "[0.0.13] - 2022-11-21" -msgstr "" - -#: ../../CHANGES.rst:568 -#: c973b03b1f1647d98a55cac09ff4a241 -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:570 -#: a91b692f8ae3406cbbee8bee881bb31b -msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined." -msgstr "" - -#: ../../CHANGES.rst:572 -#: 1475c8ca3ada44bf95bff4eaa5402da4 -msgid "Gitlab CI fix. :pr:`64`" -msgstr "" - -#: ../../CHANGES.rst:573 -#: 4a86a86df8f74804b63df8facf898bbc -msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" -msgstr "" - -#: ../../CHANGES.rst:574 -#: 05ff5ac4d43041d99bc9801914626146 -msgid "Fixed non-square logo CSS. :pr:`67`" -msgstr "" - -#: ../../CHANGES.rst:575 -#: 0cf118c440984c16bcd3b74fc7658d64 -msgid "Fixed schema path on installation. :pr:`68`" -msgstr "" - -#: ../../CHANGES.rst:576 -#: 1655349340a84da0a86f706168109afa -msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" -msgstr "" - -#: ../../CHANGES.rst:577 -#: 1762cb46c3e24b9bb642d9461bc511f2 -msgid "Fixed client preconsent disabling. :pr:`72`" -msgstr "" - -#: ../../CHANGES.rst:582 -#: 5731227ecd8046408abefb000ea360fe -msgid "Python 3.11 support. :pr:`61`" -msgstr "" - -#: ../../CHANGES.rst:583 -#: 184a123e682c4ec9bc45b936911c6acf -msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" -msgstr "" - -#: ../../CHANGES.rst:584 -#: 4daf2684781545aa96f935a1858f2c3e -msgid "``preferredLanguage`` attribute support. :pr:`75`" -msgstr "" - -#: ../../CHANGES.rst:589 -#: 251bc4ce0edc47839f696c9825ca0c43 -msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`." -msgstr "" - -#: ../../CHANGES.rst:591 -#: 5830f58321214ac58998c8d20106e9d2 -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:594 -#: 05b9d38cee1148e4baec3a188e7f75ac -msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" -msgstr "" - -#: ../../CHANGES.rst:595 -#: 04bda2d6ee5546c29707443f2a7a39b4 -msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" -msgstr "" - -#: ../../CHANGES.rst:598 -#: 05081a69d8af4084a61ee02ec11581c0 -msgid "[0.0.12] - 2022-10-24" -msgstr "" - -#: ../../CHANGES.rst:603 -#: 83d06351d66349b9b57fc8db923e9a5c -msgid "Basic WebFinger endpoint. :pr:`59`" -msgstr "" - -#: ../../CHANGES.rst:604 -#: 1b70c118e9d449bea624c26f24030e0c -msgid "Bumped to FomanticUI 2.9.0 00ffffee" -msgstr "" - -#: ../../CHANGES.rst:605 -#: 88662a0575d342f89102c38df931fa42 -msgid "Implemented Dynamic Client Registration :pr:`60`" -msgstr "" - -#: ../../CHANGES.rst:608 -#: e6c3c80259be4e9293d0fcadeafd6033 -msgid "[0.0.11] - 2022-08-11" -msgstr "" - -#: ../../CHANGES.rst:613 -#: 57c516c14a5e497bb8e13783ab9f42e6 -msgid "Default theme has a dark variant. :pr:`57`" -msgstr "" - -#: ../../CHANGES.rst:618 -#: bc085ca856774801b82edcaf328b0e1f -msgid "Fixed missing ``canaille`` binary. :pr:`58`" -msgstr "" - -#: ../../CHANGES.rst:621 -#: f80c6ab803b244eab18e4aacccddeee1 -msgid "[0.0.10] - 2022-07-07" -msgstr "" - -#: ../../CHANGES.rst:626 -#: d9e4b647949749a49bbc7343242b9b41 -msgid "Online demo. :pr:`55`" -msgstr "" - -#: ../../CHANGES.rst:627 -#: fb7efb3fe5b7456e823bbf848c007896 -msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" -msgstr "" - -#: ../../CHANGES.rst:628 -#: fca7e3fb7b814e37b3ba80d19b3620b6 -msgid "Fixed end session when user are already disconnected." -msgstr "" - -#: ../../CHANGES.rst:631 -#: 6cd8971baffc448f8189240cc374230a -msgid "[0.0.9] - 2022-06-05" -msgstr "" - -#: ../../CHANGES.rst:636 -#: 03ffc28964ef4b2a9cc0c910005d9979 -msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`" -msgstr "" - -#: ../../CHANGES.rst:637 -#: 77f1cd9392c0410491ad63481e8a2e8c -msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" -msgstr "" - -#: ../../CHANGES.rst:638 -#: 6ca2d27bbd27411b8c7155b57c27731a -msgid "Implemented RP-initiated logout :pr:`54`" -msgstr "" - -#: ../../CHANGES.rst:643 -#: 95719f2ea2b04cadb7cd1630d6d49de6 -msgid "Bumped to authlib 1 :pr:`48`" -msgstr "" - -#: ../../CHANGES.rst:644 -#: 01a07986d875439b9276e4d0de60e339 -msgid "documentation improvements :pr:`50`" -msgstr "" - -#: ../../CHANGES.rst:645 -#: a2b5f7c068ba4dc3a911965618c22cd8 -msgid "use poetry instead of setuptools :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:646 -#: 920f0d2bce9f4f3d85c74bfef8c885a4 -msgid "additional nonce tests :pr:`52`" -msgstr "" - -#: ../../CHANGES.rst:650 -#: 8ba476078ac4416d95a411a1b4d1976e -msgid "``HIDE_INVALID_LOGIN`` behavior and default value." -msgstr "" - -#: ../../CHANGES.rst:651 -#: 07fc00fb5c7e4fa68dee7bff41a07844 -msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" -msgstr "" - -#: ../../CHANGES.rst:654 -#: 7409c517a40242758fb842e3c9a6979e -msgid "[0.0.8] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:659 -#: 19d18c6e16584de6bc806ec34ef82058 -msgid "Fixed dependencies" -msgstr "" - -#: ../../CHANGES.rst:662 -#: 9075246858474ee49863fad1312bff7c -msgid "[0.0.7] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:667 -#: 50597942f5ff417381901c71bf212921 -msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:670 -#: 265c9312eadc4367a5fad31823c13be8 -msgid "[0.0.6] - 2022-03-08" -msgstr "" - -#: ../../CHANGES.rst:675 -#: 74bb45783f604adab39a6daa8a68c07b -msgid "Access token are JWT. :pr:`38`" -msgstr "" - -#: ../../CHANGES.rst:680 -#: 7c78939d39714062bb566b06eed6322a -msgid "Default groups on invitations :pr:`41`" -msgstr "" - -#: ../../CHANGES.rst:681 -#: 3ab0b04f916146a6ba07569fcbf80f06 -msgid "Schemas are shipped within the canaille package :pr:`42`" -msgstr "" - -#: ../../CHANGES.rst:684 -#: 404fe378c656443e9a940effffda0d9b -msgid "[0.0.5] - 2022-02-17" -msgstr "" - -#: ../../CHANGES.rst:689 -#: 243745dfae5d420fa946947187ef45bf -msgid "LDAP model objects have new identifiers :pr:`37`" -msgstr "" - -#: ../../CHANGES.rst:694 -#: f6239bf49b6145baa47891fece92dbfb -msgid "Admin menu dropdown display :pr:`39`" -msgstr "" - -#: ../../CHANGES.rst:695 -#: b9eab772697f40f1be8dc5c3f49f7b3e -msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" -msgstr "" - -#: ../../CHANGES.rst:698 -#: 6679140780cf46f8b2cb119fc729a4c4 -msgid "[0.0.4] - 2022-02-16" -msgstr "" - -#: ../../CHANGES.rst:703 -#: 28738ebc19fd41289eebbc340cb22ae5 -msgid "Client preauthorization :pr:`11`" -msgstr "" - -#: ../../CHANGES.rst:704 -#: d93800386a8a45bc8954d9a2b799bd2e -msgid "LDAP permissions check with the check command :pr:`12`" -msgstr "" - -#: ../../CHANGES.rst:705 -#: 48b173e7814447329956ae5325cbe4a9 -msgid "Update consents when a scope required is larger than the scope of an already given consent :pr:`13`" -msgstr "" - -#: ../../CHANGES.rst:707 -#: 2a22e4ebf75d488b86579bf9245a7918 -msgid "Theme customization :pr:`15`" -msgstr "" - -#: ../../CHANGES.rst:708 -#: 4ab0ce6231e34f43847ca9c52f0e8a00 -msgid "Logging configuration :pr:`16`" -msgstr "" - -#: ../../CHANGES.rst:709 -#: 0adf2f9e1fe840559a89d27bba714be6 -msgid "Installation command :pr:`17`" -msgstr "" - -#: ../../CHANGES.rst:710 -#: e48cd76fc5f54e0985a73480181de48e -msgid "Invitation links :pr:`18`" -msgstr "" - -#: ../../CHANGES.rst:711 -#: 8523a2c6487045ee9daf4fe03f1b1864 -msgid "Advanced permissions :pr:`20`" -msgstr "" - -#: ../../CHANGES.rst:712 -#: 2cbc27b2a4e44ff7a84bd225de7812aa -msgid "An option to not use OIDC :pr:`23`" -msgstr "" - -#: ../../CHANGES.rst:713 -#: 6150ad67b8c647cf8abe23fbd5bd1a3c -msgid "Disable some features when no SMTP server is configured :pr:`24`" -msgstr "" - -#: ../../CHANGES.rst:714 -#: 1fda569eaea34091a33c2abb6baae3c7 -msgid "Login placeholder dynamically generated according to the configuration :pr:`25`" -msgstr "" - -#: ../../CHANGES.rst:715 -#: 72aa5848b59040108136006daaec2101 -msgid "Added an option to tune object IDs :pr:`26`" -msgstr "" - -#: ../../CHANGES.rst:716 -#: 2990ba053f114121be6ea682c14d6adc -msgid "Avatar support :pr:`27`" -msgstr "" - -#: ../../CHANGES.rst:717 -#: 90a86eb3918d41e0a6cbe3c45efb742f -msgid "Dynamical and configurable JWT claims :pr:`28`" -msgstr "" - -#: ../../CHANGES.rst:718 -#: d382d05f220d4536aeed6f7b8093e812 -msgid "UI improvements :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:719 -#: 495f574fb38d421290e3e7dfb6c5debe -msgid "Invitation links expiration :pr:`30`" -msgstr "" - -#: ../../CHANGES.rst:720 -#: fb3f02b5847e4b97a43fa5fbb31bb2d0 -msgid "Invitees can choose their IDs :pr:`31`" -msgstr "" - -#: ../../CHANGES.rst:721 -#: 7bb61e62ab3845dd81fd927761bb3301 -msgid "LDAP backend refactoring :pr:`35`" -msgstr "" - -#: ../../CHANGES.rst:726 -#: e166b0bf05c546a8a93653e1085db081 -msgid "Fixed ghost members in a group :pr:`14`" -msgstr "" - -#: ../../CHANGES.rst:727 -#: 3996da1c77e7442a9576d3e98db2e88c -msgid "Fixed email sender names :pr:`19`" -msgstr "" - -#: ../../CHANGES.rst:728 -#: 4d211784dc8a45a58fc3fd0e242e9c50 -msgid "Fixed filter being not escaped :pr:`21`" -msgstr "" - -#: ../../CHANGES.rst:729 -#: 7c75824660e5452aa129914f3e8cf70e -msgid "Demo script good practices :pr:`32`" -msgstr "" - -#: ../../CHANGES.rst:730 -#: fbfcb0d4f1294b58984b4511b74c7bb8 -msgid "Binary path for Debian :pr:`33`" -msgstr "" - -#: ../../CHANGES.rst:731 -#: 53e781db9c264064976ab2f2264595bc -msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server :pr:`34`" -msgstr "" - -#: ../../CHANGES.rst:733 -#: 877309cbeef3453ea72937ff59a4e190 -msgid "Spelling typos :pr:`36`" -msgstr "" - -#: ../../CHANGES.rst:736 -#: a0810d6200ff40e7aaab87b0fd4c5b1c -msgid "[0.0.3] - 2021-10-13" -msgstr "" - -#: ../../CHANGES.rst:741 -#: b25d2d17718a4da0a50596da63a80790 -msgid "Two-steps sign-in :issue:`49`" -msgstr "" - -#: ../../CHANGES.rst:742 -#: 16af3b95f59249b4b7ab0604de8ff57b -msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" -msgstr "" - -#: ../../CHANGES.rst:743 -#: a6cd22462a9a4c9dba4d3423ae8af46c -msgid "Configuration check command. :issue:`66` :pr:`8`" -msgstr "" - -#: ../../CHANGES.rst:744 -#: effde2fb59c34a4e93c948bbd84f8625 -msgid "Groups management. :issue:`12` :pr:`6`" -msgstr "" - -#: ../../CHANGES.rst:749 -#: e267aaaa01164e30ad004e0db2c9e953 -msgid "Introspection access bugfix. :issue:`63` :pr:`10`" -msgstr "" - -#: ../../CHANGES.rst:750 -#: d33d63ae3afe491d96e56180999e8479 -msgid "Introspection sub claim. :issue:`64` :pr:`7`" -msgstr "" - -#: ../../CHANGES.rst:753 -#: ac2acd0f69b04804b20b7c20ab3cfd7d -msgid "[0.0.2] - 2021-01-06" -msgstr "" - -#: ../../CHANGES.rst:758 -#: 98e7bceb7233465eaaaf0c2605f8d283 -msgid "Login page is responsive. :issue:`1`" -msgstr "" - -#: ../../CHANGES.rst:759 -#: 2d37025a8dc543fb9e3a95ccc4f7592e -msgid "Adapt mobile keyboards to login page fields. :issue:`2`" -msgstr "" - -#: ../../CHANGES.rst:760 -#: 638c79954a124360b4bf7353fade3dc3 -msgid "Password recovery interface. :issue:`3`" -msgstr "" - -#: ../../CHANGES.rst:761 -#: 2c6d9b46b9a74b1b9348c1cceb97847d -msgid "User profile interface. :issue:`4`" -msgstr "" - -#: ../../CHANGES.rst:762 -#: 2873b90329a34f46828dfb0ed02780d8 -msgid "Renamed the project *canaille*. :issue:`5`" -msgstr "" - -#: ../../CHANGES.rst:763 -#: 628bd6758ae74f3693a18cedaca47a71 -msgid "Command to remove old tokens. :issue:`17`" -msgstr "" - -#: ../../CHANGES.rst:764 -#: 5e92758f84a8435b92f659ce415b2c98 -msgid "Improved password recovery email. :issue:`14` :issue:`26`" -msgstr "" - -#: ../../CHANGES.rst:765 -#: 233732a2490b43d285a83e241b0dd9de -msgid "Use flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" -msgstr "" - -#: ../../CHANGES.rst:766 -#: 329ff5fb95e3449ebb4e6f992211aa03 -msgid "Improved consents page. :issue:`27`" -msgstr "" - -#: ../../CHANGES.rst:767 -#: 4937c978609442d7ab89f8b4c65e536f -msgid "Admin user page. :issue:`8`" -msgstr "" - -#: ../../CHANGES.rst:768 -#: 8eb4d59649cc41e68728dffbd6c347f4 -msgid "Project logo. :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:769 -#: 25d6314cfb974a908d408f72f9c34452 -msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`" -msgstr "" - -#: ../../CHANGES.rst:770 -#: f5e58832ecca4755b6ff543105e451a4 -msgid "Admins can impersonate users. :issue:`39`" -msgstr "" - -#: ../../CHANGES.rst:771 -#: 3e5148fff5304784be64879d67c3dc6f -msgid "Forgotten page UX improvement. :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:772 -#: b515e759936b453ca7a329c0b5dfef04 -msgid "Admins can remove clients. :pr:`45`" -msgstr "" - -#: ../../CHANGES.rst:773 -#: c8733f9bd02d49ebb5878ca7cd12c9ce -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:775 -#: e217efed56d94b52a33bd7529710e544 -msgid "Password initialization mail. :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:780 -#: 38b3bf4f13be473189acfdf51c885b60 -msgid "Form translations. :issue:`19` :issue:`23`" -msgstr "" - -#: ../../CHANGES.rst:781 -#: 21d73002dfde40469a6954ba1f3af488 -msgid "Avoid to use Google Fonts. :issue:`21`" -msgstr "" - -#: ../../CHANGES.rst:786 -#: da8460512c19411188cf666741f1ae84 -msgid "'My tokens' page. :issue:`22`" -msgstr "" - -#: ../../CHANGES.rst:789 -#: cfdc703525ef4404b81a134fc7c87ea8 -msgid "[0.0.1] - 2020-10-21" -msgstr "" - -#: ../../CHANGES.rst:794 -#: e59159518b3a4358824f7d8414aa671b -msgid "Initial release." -msgstr "" - -#: ../../CONTRIBUTING.rst:2 -#: db9f3c148acb45cda676a534529e8589 -msgid "Contributions" -msgstr "" - -#: ../../CONTRIBUTING.rst:4 -#: ea0fa8d3ac0d4799a10afd6f37e05d41 -msgid "Contributions are welcome!" -msgstr "" - -#: ../../CONTRIBUTING.rst:6 -#: ba17c0c13c114915adc43e5639bf088c -msgid "The repository is hosted at `gitlab.com/yaal/canaille `_." -msgstr "" - -#: ../../CONTRIBUTING.rst:9 -#: 701cbef5f1f547729633a993e3622c09 -msgid "Discuss" -msgstr "" - -#: ../../CONTRIBUTING.rst:11 -#: 3d3467217204457eae495ce9c7597a30 -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 -#: c88320c4d0d34620b655788e1c9fa658 -msgid "Development environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:18 -#: d9611e56c0f04f4099d6abb8bc2be28d -msgid "You can either run the demo locally or with Docker." -msgstr "" - -#: ../../CONTRIBUTING.rst:20 -#: 16ed6d496d4a451382ea864560d8fe9d -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 -#: 5ec56d5524574bca8128f6dac3176d0e -msgid "Initialize your development environment with: - ``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``. - ``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``. - ``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``. - ``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:31 -#: 4d99057f1b0b42048a0a0ea8d094182a -msgid "After having launched the demo you have access to several services:" -msgstr "" - -#: ../../CONTRIBUTING.rst:33 -#: 7c17294c7b994de58363e4e72838185c -msgid "A canaille server at `localhost:5000 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:34 -#: e91a134548c54960b39cdf0e58390b1d -msgid "A dummy client at `localhost:5001 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:35 -#: 83c30705c35e4f62b2a2a284b08c8c2b -msgid "Another dummy client at `localhost:5002 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:37 -#: 2cb674d059a04dee9b746a7baaeecd17 -msgid "The canaille server has some default users:" -msgstr "" - -#: ../../CONTRIBUTING.rst:39 -#: 2ac5d11cb40b4bffbc127225b286ccd9 -msgid "A regular user which login and password are **user**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:40 -#: 9646c01bc0e04c4792ff402b86595705 -msgid "A moderator user which login and password are **moderator**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:41 -#: 7b5a9e12d296447aaca3f29ea4be3f47 -msgid "An admin user which admin and password are **admin**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:42 -#: 3dbee7f7f26a43be90d535679c0a66e1 -msgid "A new user which login is **james**. This user has no password yet, and his first attempt to log-in would result in sending a password initialization email (if a smtp server is configured)." -msgstr "" - -#: ../development/specifications.rst:62 -#: ../../CONTRIBUTING.rst:47 -#: 6a80df408d77487e873a79468c27a761 -#: 6ad725c101e64176a7848199cc032cea -msgid "Backends" -msgstr "" - -#: ../../CONTRIBUTING.rst:49 -#: ed793c84780c4431b4a0f5174b77e863 -msgid "Canaille comes with several backends:" -msgstr "" - -#: ../../CONTRIBUTING.rst:51 -#: 61e91cbb3e1b449d8c578142e0745e64 -msgid "a lightweight test purpose `memory` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:52 -#: e167dd64b4f0429890295f6cd030e35f -msgid "a `sql` backend, based on sqlalchemy" -msgstr "" - -#: ../../CONTRIBUTING.rst:53 -#: 1a65f2eac34342be8835945125ede8a6 -msgid "a production-ready `LDAP` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:56 -#: 409d19a554034d76ba2135fe2e1a740c -msgid "Docker environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:58 -#: fdeee3e754e843eba8b76ad705e60587 -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:63 -#: e30b205d85524074aeeb5a7d13c26965 -msgid "To do that, you can add the following line to your `/etc/hosts`:" -msgstr "" - -#: ../../CONTRIBUTING.rst:69 -#: d7a9e2ab1a734dfd93cfadb72e9d9561 -msgid "To launch containers, use:" -msgstr "" - -#: ../../CONTRIBUTING.rst:84 -#: 99a2e010018c4ab18f689adbd17949d2 -msgid "Local environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:98 -#: 4c63d4d9d6bc4be79415a7f0a921f3e8 -msgid "If you want to run the demo locally with the LDAP backend, you need to have `OpenLDAP `_ installed on your system. It is generally shipped under the ``slapd`` or ``openldap`` package name." -msgstr "" - -#: ../../CONTRIBUTING.rst:103 -#: b6350782b583407f804ee9a125cc1f4c -msgid "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor, and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions on `slapd`." -msgstr "" - -#: ../../CONTRIBUTING.rst:113 -#: ddfc0afccdf849bfacf69a734948945c -msgid "Populate the database" -msgstr "" - -#: ../../CONTRIBUTING.rst:115 -#: 0d809af195c54c1db4a049349ec0701b -msgid "The demo database comes populated with some random users and groups. If you need more, you can generate users and groups with the ``populate`` command:" -msgstr "" - -#: ../../CONTRIBUTING.rst:126 -#: 191e9f1df4d845ccab01dcb93de8d944 -msgid "Adapt to use either the `ldap` or the `sql` configuration file. Note that this will not work with the memory backend." -msgstr "" - -#: ../../CONTRIBUTING.rst:129 -#: e15be9bc7ad44cf5852e7b819f3083f0 -msgid "Unit tests" -msgstr "" - -#: ../../CONTRIBUTING.rst:131 -#: 6db086cc47f34d91bd3d33524b2a64a1 -msgid "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to test all the supported python environments. Everything must be green before patches get merged." -msgstr "" - -#: ../../CONTRIBUTING.rst:134 -#: 00e18c0ced044c949ee1a18d593da4d2 -msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox." -msgstr "" - -#: ../../CONTRIBUTING.rst:136 -#: 41a97534fd4640bd9586f352647f57e6 -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:141 -#: 8f210b646ca84be2b83b9509b35e3f39 -msgid "Code style" -msgstr "" - -#: ../../CONTRIBUTING.rst:143 -#: e28cd3b679db45d4a4dee24039a28335 -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:149 -#: 1213a35a573741f487d16ab7f3017048 -msgid "Front" -msgstr "" - -#: ../../CONTRIBUTING.rst:151 -#: ee73e266b48643f3b0d811fc3dba45de -msgid "The interface is built upon the `Fomantic UI `_ CSS framework. The dynamical parts of the interface use `htmx `_." -msgstr "" - -#: ../../CONTRIBUTING.rst:154 -#: f5998a63a3a8473ebdace062b9e4125f -msgid "Using Javascript in the interface is tolerated, but the whole website MUST be accessible for browsers without Javascript support, and without any feature loss." -msgstr "" - -#: ../../CONTRIBUTING.rst:156 -#: 156c5f0058a44a83a5ef7fc0276a0e79 -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 "" - -#: ../../CONTRIBUTING.rst:161 -#: d2222852829b41e39d47b5ee4e2f35da -msgid "Documentation" -msgstr "" - -#: ../../CONTRIBUTING.rst:163 -#: 56ec493dc9c54b30ae012bce43edc8ac -msgid "The documentation is generated when the tests run:" -msgstr "" - -#: ../../CONTRIBUTING.rst:169 -#: c724f6040e8e41dfaa0bd61783b3f75e -msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:" -msgstr "" - -#: ../../CONTRIBUTING.rst:175 -#: c870557153b74096afeabcfb31d16a6d -msgid "The generated documentation is located at ``build/sphinx/html``." -msgstr "" - -#: ../../CONTRIBUTING.rst:178 -#: 69fc6bf00fe54884879b2d2a41877f66 -msgid "Code translation" -msgstr "" - -#: ../../canaille/translations/README.rst:1 -#: cc50847556774dac9ce087a24bae715d -msgid "Translations are done with `Weblate `_." -msgstr "" - -#: ../../canaille/translations/README.rst:3 -#: 3d831a3a927d456f834248caaef471aa -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 "" - -#: ../../canaille/translations/README.rst:8 -#: ../locales/readme.rst:7 -#: e5788bab9bea4b62896cea4130da2b22 -#: 78bc50b888bb49aeadc7a04a79426545 -msgid "Message extraction" -msgstr "" - -#: ../../canaille/translations/README.rst:10 -#: ../locales/readme.rst:9 -#: cdf33fd9d8ba4540aa843a236a424596 -#: 2c8e0e2054654b20a3b49db40f60601d -msgid "After you have edited translatable strings, you should extract the messages with:" -msgstr "" - -#: ../../canaille/translations/README.rst:17 -#: ../locales/readme.rst:16 -#: 98d3fdec177b4519bd4d9efcd5cd827c -#: 1555b90dada547ce9112c0d5664c618f -msgid "Language addition" -msgstr "" - -#: ../../canaille/translations/README.rst:19 -#: ../locales/readme.rst:18 -#: 32f431c9d9f9418292e69d27236af062 -#: 762c9254a1b04b71aeb43923910b130e -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 -#: 797cc0492f974a1e806df493b216c5f8 -msgid "Catalog update" -msgstr "" - -#: ../../canaille/translations/README.rst:28 -#: a40f65b9a07e48d88f88e08096d31299 -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 -#: c3f0a5e6753c4c21ab3997c39d57800f -msgid "Catalog compilation" -msgstr "" - -#: ../../canaille/translations/README.rst:38 -#: 614a641d465649e7a779a9d4ef49cbd9 -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:184 -#: add6d5220923488a82e49359ce7a0d55 -msgid "Documentation translation" -msgstr "" - -#: ../locales/readme.rst:1 -#: a2cfb06dfde7462fb3382c20183342a0 -msgid "Documentation translation Translations are done with `Weblate `_." -msgstr "" - -#: ../locales/readme.rst:4 -#: 113485680b744151a4e88e903b33f63c -msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." -msgstr "" - -#: ../locales/readme.rst:25 -#: e4baf07e2a99407a8a96e0574a012091 -msgid "Build the documentation in another language" -msgstr "" - -#: ../../CONTRIBUTING.rst:189 -#: 515603cf888740aa9a3dd3dd230e3352 -msgid "Publish a new release" -msgstr "" - -#: ../../CONTRIBUTING.rst:191 -#: e657f8e780dd4674a90bf0dde7decbe1 -msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;" -msgstr "" - -#: ../../CONTRIBUTING.rst:192 -#: 391ef00613ed4d8ca5538c617ed4e9ac -msgid "Check that tests are still green for every supported python version, and that coverage is still at 100%, by running ``uv run tox``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:193 -#: 57694c4f22574e50bff25cab27182f2d -msgid "Check that the demo environments are still working, both the local and the Docker one;" -msgstr "" - -#: ../../CONTRIBUTING.rst:194 -#: 3c03facaea6646948faf4531c2474b8f -msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;" -msgstr "" - -#: ../../CONTRIBUTING.rst:195 -#: ab7667b315734c5b9a4222006d86b173 -msgid "Increase the version number in ``pyproject.toml``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:196 -#: d65334bb5a78403eab57f3b17995ca3f -msgid "Commit with ``git commit``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:197 -#: dee8dcd9aa344228b9f5cd8b9142a630 -msgid "Build with ``uv build``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:198 -#: 7782721ef59e4196aca0b8e3b4eee781 -msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:199 -#: 1c23cb30798d4f06a418c61e6c7a998f -msgid "Install the test package somewhere with ``pip install --extra-index-url https://test.pypi.org/simple --upgrade canaille``. Check that everything looks fine;" -msgstr "" - -#: ../../CONTRIBUTING.rst:200 -#: 14eccb7318524fb2af7e0d75bdb59e19 -msgid "Publish on production PyPI ``uv publish``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:201 -#: 7776d49a05bc4399a09fa9ff7a08fc65 -msgid "Tag the commit with ``git tag XX.YY.ZZ``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:202 -#: 69b763c261ce43478f815696e7762162 -msgid "Push the release commit and the new tag on the repository with ``git push --tags``." -msgstr "" - -#: ../development/index.rst:2 -#: 06473fb59658463eac64f549d1978fed -msgid "Development" -msgstr "" - -#: ../development/specifications.rst:2 -#: 2383ea673b75451188733db5862b135b -msgid "Specifications" -msgstr "" - -#: ../development/specifications.rst:4 -#: 2ef6b8c589164db4bc70d90e406547f4 -msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers." -msgstr "" - -#: ../development/specifications.rst:7 -#: ce5d7ed671a84146a75c86236a435bcb -msgid "State of the specs in Canaille" -msgstr "" - -#: ../development/specifications.rst:10 -#: e1579bc3332e4a63b0aac21055d366ea -msgid "OAuth2" -msgstr "" - -#: ../development/specifications.rst:12 -#: bce2b9f1363a4897b649cbf8b1ab312f -msgid "✅ `RFC6749: OAuth 2.0 Framework `_" -msgstr "" - -#: ../development/specifications.rst:13 -#: 0f16ff4617e249448a680965b8e27053 -msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" -msgstr "" - -#: ../development/specifications.rst:14 -#: a872f28da388479784536ba3a86e19b6 -msgid "✅ `RFC7009: OAuth 2.0 Token Revocation `_" -msgstr "" - -#: ../development/specifications.rst:15 -#: 94e2bc5630a44815b4c93c4e807778cb -msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants `_" -msgstr "" - -#: ../development/specifications.rst:16 -#: 76e315ea5f684fb79290e26d57859f7e -msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" -msgstr "" - -#: ../development/specifications.rst:17 -#: 9eae7bb9c29847a8a5a3eb28789e46b1 -msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol `_" -msgstr "" - -#: ../development/specifications.rst:18 -#: 7f0334835508449085c14802ab6f72af -msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" -msgstr "" - -#: ../development/specifications.rst:19 -#: fbb4c383d63a46efb860728150f24ac4 -msgid "✅ `RFC7662: OAuth 2.0 Token Introspection `_" -msgstr "" - -#: ../development/specifications.rst:20 -#: 653ac730c45d4631a1198df2fb4e2ec5 -msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" -msgstr "" - -#: ../development/specifications.rst:21 -#: c7d59a380e4a4de1b92c107f1b2c539b -msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" -msgstr "" - -#: ../development/specifications.rst:22 -#: c075e766a7d446dd9c13344c3f86a2c2 -msgid "❌ `RFC8693: OAuth 2.0 Token Exchange `_" -msgstr "" - -#: ../development/specifications.rst:23 -#: 28a936713f9948b6a3764a19c027f6bb -msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens `_" -msgstr "" - -#: ../development/specifications.rst:24 -#: e6919e11c0e947d1b6e423a655a74d5a -msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" -msgstr "" - -#: ../development/specifications.rst:25 -#: dcf39ac39c8c4504aa5286585795a804 -msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens `_" -msgstr "" - -#: ../development/specifications.rst:26 -#: e9c618050694440babc431d81eaea941 -msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" -msgstr "" - -#: ../development/specifications.rst:27 -#: 5245d41ffe9e4ed5a05bf5dff10724cc -msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" -msgstr "" - -#: ../development/specifications.rst:28 -#: e82805a9bb934a61a36bff17697d6119 -msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" -msgstr "" - -#: ../development/specifications.rst:29 -#: 13d5af1c63134be28a9c8f12925952f9 -msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" -msgstr "" - -#: ../development/specifications.rst:30 -#: e2440df8c0bc43a393e9f29fb658c080 -msgid "❌ `OAuth2 Multiple Response Types `_" -msgstr "" - -#: ../development/specifications.rst:31 -#: aceb377eee7f4b8d813edd4d649eea45 -msgid "❌ `OAuth2 Form Post Response Mode `_" -msgstr "" - -#: ../development/specifications.rst:34 -#: 536cc3c67db14ed4a20bd172e2f02c2d -msgid "OpenID Connect" -msgstr "" - -#: ../development/specifications.rst:36 -#: 501bfe9938d44b21bc9a29e3ee3f1ccd -msgid "✅ `OpenID Connect Core `_" -msgstr "" - -#: ../development/specifications.rst:37 -#: 940a4a7b20da4c57ab910c3952941bab -msgid "✅ `OpenID Connect Discovery `_" -msgstr "" - -#: ../development/specifications.rst:38 -#: e9243ed2cb5843debd7864bacd3615bf -msgid "✅ `OpenID Connect Dynamic Client Registration `_" -msgstr "" - -#: ../development/specifications.rst:39 -#: 260e55b2265f449da141e7b231859956 -msgid "✅ `OpenID Connect RP Initiated Logout `_" -msgstr "" - -#: ../development/specifications.rst:40 -#: 206d7fc552224c9ebbee3572273c82eb -msgid "❌ `OpenID Connect Session Management `_" -msgstr "" - -#: ../development/specifications.rst:41 -#: 8c4191636e1a462b8c8078918a753008 -msgid "❌ `OpenID Connect Front Channel Logout `_" -msgstr "" - -#: ../development/specifications.rst:42 -#: 163e00dec72e474d89c739d92f25b42c -msgid "❌ `OpenID Connect Back Channel Logout `_" -msgstr "" - -#: ../development/specifications.rst:43 -#: debeca055bdc4633b649b5fd9baf4346 -msgid "❌ `OpenID Connect Back Channel Authentication Flow `_" -msgstr "" - -#: ../development/specifications.rst:44 -#: 96e17c4d073f403889ba175279c8a621 -msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements `_" -msgstr "" - -#: ../development/specifications.rst:45 -#: f3d5d91958dc4dea9b3a3e359c2e8ace -msgid "✅ `Initiating User Registration via OpenID Connect 1.0 `_" -msgstr "" - -#: ../development/specifications.rst:48 -#: ../development/specifications.rst:64 -#: 3d08369fd6424b71b7a1714928df5b24 -#: ec31988387b144b5a71a8ff448bd57cf -msgid "SCIM" -msgstr "" - -#: ../development/specifications.rst:50 -#: 55efb939c7424dd7b0a458e4536a9a56 -msgid "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements `_" -msgstr "" - -#: ../development/specifications.rst:51 -#: 0777963266124280b73cd65111298a6b -msgid "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema `_" -msgstr "" - -#: ../development/specifications.rst:52 -#: 1413af49b35e43f394a69a91a9fb9254 -msgid "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" -msgstr "" - -#: ../development/specifications.rst:55 -#: 958bc79cc19548f5bfee6e20a9f4971d -msgid "Comparison with other providers" -msgstr "" - -#: ../development/specifications.rst:57 -#: aad219093f2243f68e8678886460e50f -msgid "Here is a feature comparison with other OpenID Connect server software." -msgstr "" - -#: ../development/specifications.rst:59 -#: 74f4c92786fb42cc8c9865d6791e8f2e -msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple." -msgstr "" - -#: ../development/specifications.rst:62 -#: 28474b61dca1437a8ba4d9e8fbc4fafe -msgid "Software" -msgstr "" - -#: ../development/specifications.rst:62 -#: 90e531639a8048ad836cb2510bb4b4a1 -msgid "Project" -msgstr "" - -#: ../development/specifications.rst:62 -#: 2016be5359144e6fac7ae582cdfb3095 -msgid "Protocols implementations" -msgstr "" - -#: ../development/specifications.rst:64 -#: b15c641b913b4ac9a29ea3308555e9c9 -msgid "FLOSS" -msgstr "" - -#: ../development/specifications.rst:64 -#: 73626dca03614498bf386d2b3bfc9123 -msgid "Language" -msgstr "" - -#: ../development/specifications.rst:64 -#: c29f145e63714ccaa8a03cca4e3f22f4 -msgid "LOC" -msgstr "" - -#: ../development/specifications.rst:64 -#: 23ca5dbb097e4839a136bb799bf80f55 -msgid "OIDC" -msgstr "" - -#: ../development/specifications.rst:64 -#: 11ecae1c29784130b88825b48252f35c -msgid "SAML" -msgstr "" - -#: ../development/specifications.rst:64 -#: f08202ef5e9b483a80b28050363813e7 -msgid "CAS" -msgstr "" - -#: ../development/specifications.rst:64 -#: c15a06d0987b4617b1a27f63c6ea8bbb -msgid "LDAP" -msgstr "" - -#: ../development/specifications.rst:64 -#: 88d8a0776138423baadcac6030b6b58f -msgid "SQL" -msgstr "" - -#: ../development/specifications.rst:66 -#: 36b09d27feb3464a9390fefff5a7fe93 -msgid "Canaille" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:82 -#: ../development/specifications.rst:84 -#: ../development/specifications.rst:86 -#: ../development/specifications.rst:88 -#: 0f4aa33ba6584e98a9eaa297d0c94bb0 -#: fadd2afadd834cedbd90bb5bb9a9014b -#: 43eebe1b471c4101a0c92ea3b2a581f5 -#: d271fc21b16c4ffcbe345c6468f2b0a9 -#: e8ba0239a4b749e7a25fb8c635f589e7 -#: 1e47f1133b4e4a0e9c831cd5e1a13698 -#: 9805c61499404f379aa38b4b66c11b39 -#: 35600f8ae23c41fcac1e4cedaf78db99 -#: e33c8e80263d4fbfab0ff58fc214cb8f -#: 58988f1bd01f49bcb8a3bfe088ed011b -#: 8766d871a0274f0b971c264c78120d26 -#: 349c74fb53ea407d84d2956ccdbc46fa -#: 6cb5dea79610432e9dfdea8c2c626097 -#: 9bfd6602bb454ea39e137608d521e34b -#: 454f0ee660ee499283215360375fb802 -#: 1c6ed99217124047bb586e7a891759db -#: 2c9b0c967eec4506bfcd5dbbf52afb38 -#: 7dbecc531d094e4484f22e5060f83a37 -#: 77a7e78473cc48099cbd2d1ffe9428f2 -#: c74de60c04914a7f9e2c06e43bbe7781 -#: 14417de9256e420ead7cef2967be4a6d -#: 2ab94593a8e9419492ec2920eda40d75 -#: a439c4a58ee84802b941c9286bd22bbf -#: 0a50f3e6a3e14a5ca080519a2387f1a8 -#: 6e21519d3fe840b1a8511a46ea29feb0 -#: e257e70630c746189e0f3dcbe80680ad -#: 1b7eb2933228484ba7be3939e85199bb -#: fbe1ad750c384be994f6785667e04d64 -#: b8e790defcfd4060831916e10e35eb51 -#: 596178c6b8d14a7393e0bbed037c744f -#: 4c78c1fffa8b4568ab0d592a101f960f -#: 5c8f704976a94119a86e8699f0a4e81f -#: 2d8ea8069a934b38ab843b8a5f973a39 -#: 7befcce958644063930aa1408d04e00f -#: 765ee0d0ceec4a0eb9cfe961c9f58d39 -#: 7a7f0093c2c84333b30b2812477b47b1 -#: 0f611501e77e4cb29d60d5c669f1e24b -#: 9444fb2a3e0740dd9d5ec6a5f2a616d2 -#: 092db271989440aa80041a75259a11f4 -#: 5caa2e5cb2c941128d3693c1cbc24002 -#: 4e8ed6d107234a949ffeb1030a62936d -#: a5079ead19194736849e33ae37800cde -#: caf9f4e107af45fc81a8805315b76ba2 -#: a0f1e032b5b649db88c6d424e0201c77 -#: e33c9d06ce5e474c9e52b4d92a3e9667 -#: 86593813ccdb456ebd0d83b27eeb01cf -#: 8f8b3d4f54864fa48122dc593a86518c -#: d4498551e8d94e2a9eec0b40ef44a7f7 -#: cfa66105b6d34120918736d616c1a03e -#: df7e4d13d307478da90f47c6a25967f2 -#: 3028033c8ed04f13ac3bc5d429512376 -#: c534146a75ab423b9dd3eeaec1086f86 -#: a531b5e1ae8d4f08b3ab64fb41b95eac -#: 0f0ed37cd7f1417ea714b6a26e0aa821 -#: 2f74de566e7f4bb6953d723937fdcfbb -#: d2402eff2aa54c4ba72167030aad1624 -#: 2de2fb6bb0ac465185d04c363810a287 -#: 8c9f23f2ec144bc091870e216866bfd5 -#: 778477d68681415cb697a3f5fbecb407 -#: d4f477480a384c0fa7cc6e04c24fdb0c -#: 300ec52ae51f48118892ad89eaae110c -#: d764f65e2aa64f8abc37a03e435864eb -#: deddbee4686d4593bd8f25a94403c496 -msgid "✅" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: 01dff9df020340d3b54406638f8ade39 -#: 9b3140d0523c4308bc9134ef0b429d2c -#: 4b1e5e8fc53c45d78490dc275918de15 -msgid "Python" -msgstr "" - -#: ../development/specifications.rst:66 -#: 96c10219b0b14aa19ce8a108a7ae7535 -msgid "10k" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:82 -#: ../development/specifications.rst:86 -#: ../development/specifications.rst:88 -#: 3ebd793a1a814a59ac86d95ac10d5df2 -#: c5f6dca104ff4b96b3e2efd62193fe07 -#: 90a7b98bef2444de873bccf36b6945fe -#: d50482bdbeaf4df3a1e96da071973245 -#: c9b9adb75109471296e228d204cba052 -#: 46582f2fe84c49cd8c0cb4c8aadc9901 -#: be741254f47f40a3a8184bc4e9d1da25 -#: dd27269b4d13497db74735e450ebca2f -#: 9eadd8b5840940bb87c3549722814f48 -#: 3608cbf9d76e443187d5aa737fbad466 -#: 15fa182a79c14d169755cec6b57208e2 -#: 62636f44d520479ab343eff200e99fa1 -#: ae0edbc27c7f49b3bea30ed31fbe1911 -#: eb691511657747a499a83d4fa93e5e82 -#: 54c00360d6eb4809a8109defc6b2b87b -#: 8fdc4d649f4a4e6e8dc05bb9d04d87b9 -#: dfd6b6d189254825bb6ef6a6d7e8aeb2 -#: 7457ad39b3694ed6b9f55e066e84368b -#: 27fa0f65ca344c619c008634c795839c -msgid "❌" -msgstr "" - -#: ../development/specifications.rst:68 -#: 176177908d034923b2aee29868ef6796 -msgid "`Auth0`_" -msgstr "" - -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:88 -#: 34ea26174ce84747a3098db253c053d2 -#: 2197b1423cf24880bd48984365df26ca -#: 343c98b7aae64c4b9b13401296895ea2 -#: 0aed1e6f1ed140fcaa16586bfe983023 -#: 437f53f33fe94e928888c9611c8e96e3 -#: ca5b6032265d45c9b26dc476f4631586 -#: cda04abd7d0f49598c1e5847a0e46893 -#: c9771ac23ed44441bd5bb7f6634ede8d -#: 522c4a868dc84cf3b0d349a7b83e1044 -msgid "❔" -msgstr "" - -#: ../development/specifications.rst:70 -#: 3de4a343d96b4a699f2b3a28ebfbb76f -msgid "`Authelia`_" -msgstr "" - -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:82 -#: b0f9a8ac302047428af718460e7e46d6 -#: 40010ae725194f3799a9740e20c4ae84 -msgid "Go" -msgstr "" - -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:82 -#: 3b23b5c9fc4242d4af838dfdeba90474 -#: bb830e5335294f36ba951698d814e713 -msgid "50k" -msgstr "" - -#: ../development/specifications.rst:72 -#: 93151babd6a84e208a8cb864acb445a0 -msgid "`Authentic2`_" -msgstr "" - -#: ../development/specifications.rst:72 -#: 7d26a37f8f2d490ca5c464422d2da857 -msgid "65k" -msgstr "" - -#: ../development/specifications.rst:74 -#: c79b04fe99584a4183258a9bb56afff6 -msgid "`Authentik`_" -msgstr "" - -#: ../development/specifications.rst:74 -#: 34c65fd0b72146b1bdb2392653fbd7bf -msgid "55k" -msgstr "" - -#: ../development/specifications.rst:76 -#: 2dd361f5df204f2197da5976329b8bee -msgid "`CAS`_" -msgstr "" - -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:84 -#: d1431df43a0844e592a30e479cb711d7 -#: 4e12564f864e4fcca5c59a70971b197e -#: 0e395d011cea454080b706263976c5a8 -msgid "Java" -msgstr "" - -#: ../development/specifications.rst:76 -#: 3c237a5d63994ccabf80d364775f6bd2 -msgid "360k" -msgstr "" - -#: ../development/specifications.rst:78 -#: 1a3be2d069ee4442b7fa71ac5cb4c245 -msgid "`Connect2id`_" -msgstr "" - -#: ../development/specifications.rst:80 -#: 8cb2733860b640ae9bcd9aa2b972f8c1 -msgid "`Gluu`_" -msgstr "" - -#: ../development/specifications.rst:82 -#: 55764f0dc4bd4f9195fd8a68024f9ccf -msgid "`Hydra`_" -msgstr "" - -#: ../development/specifications.rst:84 -#: 7532697da47043a9995922fd436fac5d -msgid "`Keycloak`_" -msgstr "" - -#: ../development/specifications.rst:84 -#: 38a63029234442cf8a45a3eaf5e4c5af -msgid "600k" -msgstr "" - -#: ../development/specifications.rst:86 -#: 6960f54d48a84e7389e1e733a107fc06 -msgid "`LemonLDAP`_" -msgstr "" - -#: ../development/specifications.rst:86 -#: 12c8306ec42e41ca83f5ea529d87f797 -msgid "Perl" -msgstr "" - -#: ../development/specifications.rst:86 -#: 5edc7bd6be844833a7c456f9bec02b10 -msgid "130k" -msgstr "" - -#: ../development/specifications.rst:88 -#: beae02477d7d4c768d483db955ebd314 -msgid "`Okta`_" -msgstr "" diff --git a/doc/gettext/development/changelog.pot b/doc/gettext/development/changelog.pot deleted file mode 100644 index 01d905e1..00000000 --- a/doc/gettext/development/changelog.pot +++ /dev/null @@ -1,1712 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../development/changelog.rst:2 -#: 2321f3b3acf14287bec3b91e374b7a4e -msgid "Release notes" -msgstr "" - -#: ../development/changelog.rst:4 -#: ce54249c983b474c8e0fea402ee7db08 -msgid "All notable changes to this project will be documented in there." -msgstr "" - -#: ../development/changelog.rst:6 -#: a3295c678f074c63a2a73028fa0cdb24 -msgid "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." -msgstr "" - -#: ../../CHANGES.rst:2 -#: e5fa6b4fbd7440ea8c9d4c81ee723400 -msgid "[0.0.57] - Unreleased" -msgstr "" - -#: ../../CHANGES.rst:5 -#: ../../CHANGES.rst:20 -#: ../../CHANGES.rst:48 -#: ../../CHANGES.rst:67 -#: ../../CHANGES.rst:74 -#: ../../CHANGES.rst:93 -#: ../../CHANGES.rst:151 -#: ../../CHANGES.rst:177 -#: ../../CHANGES.rst:192 -#: ../../CHANGES.rst:241 -#: ../../CHANGES.rst:267 -#: ../../CHANGES.rst:286 -#: ../../CHANGES.rst:294 -#: ../../CHANGES.rst:303 -#: ../../CHANGES.rst:327 -#: ../../CHANGES.rst:360 -#: ../../CHANGES.rst:386 -#: ../../CHANGES.rst:433 -#: ../../CHANGES.rst:461 -#: ../../CHANGES.rst:491 -#: ../../CHANGES.rst:547 -#: ../../CHANGES.rst:580 -#: ../../CHANGES.rst:601 -#: ../../CHANGES.rst:611 -#: ../../CHANGES.rst:634 -#: ../../CHANGES.rst:701 -#: ../../CHANGES.rst:739 -#: ../../CHANGES.rst:756 -#: ../../CHANGES.rst:792 -#: 68d7c354e87a417cb210174cdf0caf03 -#: 3db0c002c2764afbaee00eb85f608618 -#: bcd37e5f6d1c4cd4afd82eadf5d23bce -#: 89fc5c0226a445f49244caf1e62d080f -#: 19f1711026114064a5bb8d49031510c3 -#: 2e29ff42691149fa969ca9fdeb3a4e39 -#: 239be472848d430098630a890fe77b5e -#: 7e8bb2e384ff418f954ff6dfc16b929b -#: 43bc9bb8e77143369f5fc7b14c1abcb9 -#: 4aa7554114624a25ab488d3ae36c0081 -#: eb81cce526c34574b68be0ae49958436 -#: d57353f495f2404ca80a5302e2a33579 -#: 864a98b7bc754beea56f6deecd06400f -#: 1243783fe4cf470d96f1d99848565ea9 -#: da5ebf8438f647868f53e84cc5fa1980 -#: 6ad9f25517b34d1e974a37479774c59c -#: 182d965a1dde4d95bdbb9617607c588a -#: 37a62b2eb4aa4c378f4961b0a96a694c -#: ae83441c7d7440ce9bcba1dab44b9e17 -#: dc487d8fc4ad4c919b576678475e3579 -#: b2a149dbf92b4a269ef3ba3a58d58894 -#: 8073c3471b8d4b19a344155e1c8bc7fb -#: 0a8ca3f4481e4a48bd29fc5a69fa803c -#: 6f1a10debe3e49ebafb5d35d5b582935 -#: dff770d00b5c43feb6abe259a6f62233 -#: 1ffcab7dcb044a768fec8cec5b4079e9 -#: 18a9b586f7924b6b9506fb40695c6f52 -#: 536fa76ec5b74cfea65f706328cf399d -#: 34242a231a08460183bc15c10ad62416 -msgid "Added" -msgstr "" - -#: ../../CHANGES.rst:6 -#: 76511a0335094c85885bcba9209552fb -msgid "Password compromission check :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:7 -#: 7a7920f8d7a841c185fe3f051f5c9ea8 -msgid ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:13 -#: a8d81bff320f4897acde83bf6b46304f -msgid "[0.0.56] - 2024-11-07" -msgstr "" - -#: ../../CHANGES.rst:16 -#: ../../CHANGES.rst:58 -#: ../../CHANGES.rst:97 -#: ../../CHANGES.rst:105 -#: ../../CHANGES.rst:113 -#: ../../CHANGES.rst:120 -#: ../../CHANGES.rst:127 -#: ../../CHANGES.rst:141 -#: ../../CHANGES.rst:169 -#: ../../CHANGES.rst:182 -#: ../../CHANGES.rst:200 -#: ../../CHANGES.rst:219 -#: ../../CHANGES.rst:227 -#: ../../CHANGES.rst:253 -#: ../../CHANGES.rst:261 -#: ../../CHANGES.rst:281 -#: ../../CHANGES.rst:311 -#: ../../CHANGES.rst:341 -#: ../../CHANGES.rst:349 -#: ../../CHANGES.rst:373 -#: ../../CHANGES.rst:393 -#: ../../CHANGES.rst:415 -#: ../../CHANGES.rst:425 -#: ../../CHANGES.rst:446 -#: ../../CHANGES.rst:454 -#: ../../CHANGES.rst:477 -#: ../../CHANGES.rst:500 -#: ../../CHANGES.rst:512 -#: ../../CHANGES.rst:521 -#: ../../CHANGES.rst:530 -#: ../../CHANGES.rst:539 -#: ../../CHANGES.rst:559 -#: ../../CHANGES.rst:566 -#: ../../CHANGES.rst:616 -#: ../../CHANGES.rst:624 -#: ../../CHANGES.rst:649 -#: ../../CHANGES.rst:657 -#: ../../CHANGES.rst:665 -#: ../../CHANGES.rst:678 -#: ../../CHANGES.rst:692 -#: ../../CHANGES.rst:724 -#: ../../CHANGES.rst:747 -#: ../../CHANGES.rst:778 -#: c6436e97687f47059a0cee1d524a47e9 -#: 9c0f6431917f4a028953286eca0c0cfe -#: 93f90bed1a674784a7f5acaeba3f604c -#: 106b8093407848da93d18cf1159549d8 -#: 9b3353616c1845f7a528a3dd4f29e788 -#: c82a0ef7ede341fdaefe086516ddcfa6 -#: 0622c64030ba4be4b2f7d4b6868d5cea -#: 375079958ff14b0aaca6745e79ae2415 -#: 0c43788b676c4e3ea67950a078f16108 -#: 1af4b96af7c74d9cb407d9c3d25f22c6 -#: 8cb332e78e8b43e3bdfb2ee17391b95f -#: 0fd2668c4a06415a82e24ceadbef42d9 -#: 767b2db5c1dc40ba9099f108c8892931 -#: 9b0c1776d1424188b18a4981e37f503f -#: d5ce5edfaa79499d86f18818d1128662 -#: 6f01d2ff547b4a7da75fba7505f0c928 -#: 5516287260254aaf8546be4b15f813ae -#: f560d39a9ab14fcf97370016363e00b9 -#: f53f69e009534f16be2d83ae976a4d50 -#: 100a1287150746fda66d2d20d86ae28d -#: 59be91b9f20d4db2b773253f2af92205 -#: 7b414594484a496fa9dc0f900b944fc3 -#: c550c697f9f24ccabd597743b065a194 -#: 809c6b26372b4afc806bd4cc764ea8c2 -#: 9a1154c00a494a8f9faf52e6a321b480 -#: c4839a2d52fb4da3aba2021e69a806d9 -#: d90b0e85882045c6a7e6775ddaa87320 -#: fc28d39c9a564152a86cec53b829168f -#: 6414599939fb46b1a93445c2711b3eb3 -#: 22d8d9f8912540d3a53620b47668d9f1 -#: cc737544941c4404b62295cb26228988 -#: 2e6e142a7bae44528009159bf8b912de -#: 0b74f6c12571422e8038c272f6786431 -#: 48fd64a65440420cb4abddfb33e1960d -#: 3d2164df801a46f39778ce191498d823 -#: 40564ad34a6d4c2eabfcfc91c14021b1 -#: 434aa98010b840a59f0ac1b20d805a36 -#: 5a752d2d6a874724b55bfae88cd6b5e1 -#: feaaddf40ade4bfdaa734fa4d6867bd6 -#: 0f12030c10e348af8002f79e38131c89 -#: 50a0c42fe2864a1b82ad62d57c69115e -#: 30aecc67e5874f67958c3ad4e590689d -#: ca11980027b74148bb955b294b904aed -msgid "Fixed" -msgstr "" - -#: ../../CHANGES.rst:17 -#: f75ed82ec3464069afb11e411860a098 -msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`" -msgstr "" - -#: ../../CHANGES.rst:21 -#: fa2bfd3a364b42eb819e00e3b6cfe8f6 -msgid ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` configuration options :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:23 -#: c04207e5c1014abc81ac33e46044be68 -msgid "Password strength visual indicator :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:24 -#: 76c8b3dc402144e6b76f4f15c4a1dce0 -msgid "Security events logs :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:25 -#: 66c0285ecc324619b90ee9580787b42b -msgid "Support for Python 3.13 :pr:`186`" -msgstr "" - -#: ../../CHANGES.rst:28 -#: ../../CHANGES.rst:41 -#: ../../CHANGES.rst:53 -#: ../../CHANGES.rst:78 -#: ../../CHANGES.rst:86 -#: ../../CHANGES.rst:134 -#: ../../CHANGES.rst:158 -#: ../../CHANGES.rst:210 -#: ../../CHANGES.rst:247 -#: ../../CHANGES.rst:316 -#: ../../CHANGES.rst:332 -#: ../../CHANGES.rst:368 -#: ../../CHANGES.rst:405 -#: ../../CHANGES.rst:440 -#: ../../CHANGES.rst:483 -#: ../../CHANGES.rst:587 -#: ../../CHANGES.rst:641 -#: ../../CHANGES.rst:673 -#: ../../CHANGES.rst:687 -#: 17c200d74dc94e618f5a8f1a4c737892 -#: ccb630d62929451d86cfe50c5e9d3b0c -#: 90945415d6ba49e2949e6843e363aa54 -#: 7e9a9e0fbd27415e911f4d0229e89ce5 -#: 5308306c6a9848db85d209a93bf73f10 -#: fea433e54cb745aa951c32c5ebf2902b -#: 79a0c2512c9b41c4aae6f0242f8cf3ec -#: 34ba73a5ce4c471e85dbd5935079eb1b -#: 256bc9a8adbb4b908412109831aa2965 -#: 6e213464c100494ebfd7cc02300d0a6c -#: 9ab07efdabae43da9c5a5f48a49a6eed -#: d2b7338ef0cc46e19a020852536f8136 -#: 66443c36a4c34c2384b3e053978f305e -#: 6eb2ae5f5d0747d6bd769409b69a5df3 -#: f16408e600fb4a41a0baca3c45764151 -#: 63be612c208b45a4a3456c07bc33480e -#: 2def5c51796844b0b6a242eb3161d389 -#: 808861ca6acb43c0bb39ebcda59434b7 -#: 3525164111a4470c911c4d92538c7891 -msgid "Changed" -msgstr "" - -#: ../../CHANGES.rst:29 -#: f6dd0f6bfafd4d2b904ed4e6269a101d -msgid "Update to HTMX 2.0.3 :pr:`184`" -msgstr "" - -#: ../../CHANGES.rst:30 -#: 5483fcfcc96949a5913fcc4fd14977f2 -msgid "Migrate from poetry to uv :pr:`187`" -msgstr "" - -#: ../../CHANGES.rst:31 -#: 8258ddbb1640406d8f6739a37e94875b -msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``." -msgstr "" - -#: ../../CHANGES.rst:34 -#: ../../CHANGES.rst:378 -#: ../../CHANGES.rst:784 -#: ff210a53b34e45e2b91b13a776999d67 -#: 93a0b2853b2644c3bd42d00d854d614b -#: 52a78299c19c4677a74dc0cb2f50c670 -msgid "Removed" -msgstr "" - -#: ../../CHANGES.rst:35 -#: 740852cc46ee478eb5f3aeb2613acf95 -msgid "End support for python 3.9. :pr:`179`" -msgstr "" - -#: ../../CHANGES.rst:38 -#: 482c536c76fa4d94b2b30dcc8ee6b541 -msgid "[0.0.55] - 2024-08-30" -msgstr "" - -#: ../../CHANGES.rst:42 -#: a198bc7ecca541c695b52bc3279f5d31 -msgid "Use poetry-core build backend. :pr:`178`" -msgstr "" - -#: ../../CHANGES.rst:45 -#: 68fb373964584f1e830fbef217f942e9 -msgid "[0.0.54] - 2024-07-25" -msgstr "" - -#: ../../CHANGES.rst:49 -#: 5e73dc86053a4be98fc43f61b56ae307 -msgid "Group member removal can be achieved from the group edition page :issue:`192`" -msgstr "" - -#: ../../CHANGES.rst:50 -#: ebd2fe8625fa4c44bb2f057528712d25 -msgid "Model management commands :issue:`117` :issue:`54`" -msgstr "" - -#: ../../CHANGES.rst:54 -#: cf2dd6aef9684a878412b58ce961688d -msgid "Model `identifier_attributes` are fixed." -msgstr "" - -#: ../../CHANGES.rst:55 -#: 03a7ad9d623c408296b6a88abd0ba9ce -msgid "Bump to htmx 1.9.12 :pr:`172`" -msgstr "" - -#: ../../CHANGES.rst:60 -#: 4df3c65b91dc4ecba3c44d142963c276 -msgid "Dark theme colors for better readability" -msgstr "" - -#: ../../CHANGES.rst:61 -#: 91c0ae975e544d0ca32cfdaee2fb0e27 -msgid "Crash for passwordless users at login when no SMTP server was configured." -msgstr "" - -#: ../../CHANGES.rst:64 -#: d8ada9c57f4b44ed815b070924f0937b -msgid "[0.0.53] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:68 -#: cf9cefa8bf3541a782d9762e069e7ccf -msgid "`env_prefix` create_app variable can select the environment var prefix." -msgstr "" - -#: ../../CHANGES.rst:71 -#: 1f6cfb92fd364d57b8ed7522c42fc076 -msgid "[0.0.52] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:75 -#: 1f4573a94d0a421ea02c9d09b66db2c9 -msgid "`env_file` create_app variable can customize/disable the .env file" -msgstr "" - -#: ../../CHANGES.rst:79 -#: 066410eaab1540eab2776a5fc87504cc -msgid "Locked users cannot be impersonated anymore." -msgstr "" - -#: ../../CHANGES.rst:80 -#: ace6053c00b74772b52f849bbbae2e31 -msgid "Minimum python requirement is 3.9." -msgstr "" - -#: ../../CHANGES.rst:83 -#: 22ea6460d2e34b6eb367f3a4e4e3d17b -msgid "[0.0.51] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:87 -#: 1b7d91a9d02f4cabbef111079d39b344 -msgid "Display the menu bar on error pages." -msgstr "" - -#: ../../CHANGES.rst:90 -#: 78fed34f5122433bbe6021b31638194e -msgid "[0.0.50] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:94 -#: f7cb34791e1e4380a57e373b1b087925 -msgid "Sign in/out events are logged in :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:98 -#: 45c11baa1194416dbc2d41264b74a2e5 -msgid "HTMX and JAVASCRIPT configuration settings." -msgstr "" - -#: ../../CHANGES.rst:99 -#: 8deccea079c84b3bae3f56912bc22ce6 -msgid "Compatibility with old sessions IDs." -msgstr "" - -#: ../../CHANGES.rst:102 -#: 54b31975f2074e42a3e408198c5dcfaa -msgid "[0.0.49] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:106 -#: 2540f82b704b458a8d36f0e4315c7dfc -msgid "LDAP user group removal." -msgstr "" - -#: ../../CHANGES.rst:107 -#: fd4408f9b27d423d89bef78c94129312 -msgid "Display an error message when trying to remove the last user from a group." -msgstr "" - -#: ../../CHANGES.rst:110 -#: 78661756213542da9bfc0d1f0132699b -msgid "[0.0.48] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:114 -#: 1e0516ca6b0749f5b1d9607cc7a25d36 -msgid "LDAP objectClass guessing exception." -msgstr "" - -#: ../../CHANGES.rst:117 -#: 1fcba77b03424826a405e4ea54fff663 -msgid "[0.0.47] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:121 -#: 82668bcaf18a44128f17457d5362ba4f -msgid "Lazy permission loading exception." -msgstr "" - -#: ../../CHANGES.rst:124 -#: 4fb3b475ce0c4cec9e20ce04636b6b3c -msgid "[0.0.46] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:128 -#: dd7382397fe542578854431f6e6bbf89 -msgid "Saving an object with the LDAP backend keeps the objectClass un-managed by Canaille. :pr:`171`" -msgstr "" - -#: ../../CHANGES.rst:131 -#: ee059b69e1a9440abadc77ec40e25d80 -msgid "[0.0.45] - 2024-04-04" -msgstr "" - -#: ../../CHANGES.rst:135 -#: 9d61e5909fd643d592725db933b4912b -msgid "Internal indexation mechanism of :class:`~canaille.backends.memory.model.MemoryModel`" -msgstr "" - -#: ../../CHANGES.rst:138 -#: 39bf7adeb4194a858226346c50be08d6 -msgid "[0.0.44] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:142 -#: ea00e8ce44a64df9b11922ddfc6ccc3c -msgid "Fix the default LDAP USER_FILTER value" -msgstr "" - -#: ../../CHANGES.rst:143 -#: 0f88fd65e349426396cb3c052bd83db1 -msgid "Fix the OIDC feature detection" -msgstr "" - -#: ../../CHANGES.rst:146 -#: 9bd6a349d9d9490ca91a4f56d46b0078 -msgid "[0.0.43] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:148 -#: 11358334470d4f3bb392389cf9748f48 -msgid "🚨Configuration files must be updated.🚨" -msgstr "" - -#: ../../CHANGES.rst:153 -#: 33ac5da8d5a1410997fd6155fa994f3d -msgid "Add `created` and `last_modified` datetime for all models" -msgstr "" - -#: ../../CHANGES.rst:154 -#: c5ed8ff0b9544920a0fb9a99488d6d0b -msgid "Sitemap to the documentation :pr:`169`" -msgstr "" - -#: ../../CHANGES.rst:155 -#: 3fc68ed436e9488a87dab37f5bfcb326 -msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" -msgstr "" - -#: ../../CHANGES.rst:160 -#: e7cd01ae7a064316b55271464c73cdbb -msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" -msgstr "" - -#: ../../CHANGES.rst:161 -#: f8080d1def124e02a5ebd401743bcc53 -msgid "Bump to htmx 1.99.11 :pr:`166`" -msgstr "" - -#: ../../CHANGES.rst:162 -#: 76e9e2d0d2de4f39a3f6e0408f91b393 -msgid "Use the standard tomllib python module instead of `toml` starting from python 3.11 :pr:`167`" -msgstr "" - -#: ../../CHANGES.rst:163 -#: 72c0df8635b84899b60dbb2d65aaf1f6 -msgid "Use shibuya as the documentation theme :pr:`168`" -msgstr "" - -#: ../../CHANGES.rst:166 -#: 412f31b588a24d38908f57d0ce04f22c -msgid "[0.0.42] - 2023-12-29" -msgstr "" - -#: ../../CHANGES.rst:171 -#: 0db77ffe1665459c916b8cff8ea6fc17 -msgid "Avoid to fail on imports if ``cryptography`` is missing." -msgstr "" - -#: ../../CHANGES.rst:174 -#: 83e78090be5f4b408da07f6bd3214e08 -msgid "[0.0.41] - 2023-12-25" -msgstr "" - -#: ../../CHANGES.rst:179 -#: cd301be9e1344aa6ba52861605f2752e -msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" -msgstr "" - -#: ../../CHANGES.rst:184 -#: 8edd4079d06045c58f5dd79b88abb9c1 -msgid "Correctly set up Client audience during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:185 -#: 7f3a5c2a265e400b86e4e7d7114702f1 -msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:186 -#: 4deda78d230841f7a8c54af66d2338a9 -msgid "Group field error prevented the registration form validation." -msgstr "" - -#: ../../CHANGES.rst:189 -#: 1608e0d53771494eaa24bd709cee852a -msgid "[0.0.40] - 2023-12-22" -msgstr "" - -#: ../../CHANGES.rst:194 -#: 17f8d278ee504c86b62b04a6f6c82d57 -msgid "``THEME`` can be a relative path" -msgstr "" - -#: ../../CHANGES.rst:197 -#: f76c25c375504e1d9595c39a74f0596f -msgid "[0.0.39] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:202 -#: ddaa080da0944c8eba445e035d9bbeee -msgid "Crash when no ACL were defined" -msgstr "" - -#: ../../CHANGES.rst:203 -#: 96df0449be4a45d88e16244d6d67524d -msgid "OIDC Userinfo endpoint is also available in POST" -msgstr "" - -#: ../../CHANGES.rst:204 -#: 85178af1d47b4994b59cdc3fe012cd67 -msgid "Fix redirection after password reset :issue:`159`" -msgstr "" - -#: ../../CHANGES.rst:207 -#: 8177fe55aa064e5da95528c84c136865 -msgid "[0.0.38] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:212 -#: 9a79b773e59941fb8e77b7ac348d168a -msgid "Convert all the png in webp. :pr:`162`" -msgstr "" - -#: ../../CHANGES.rst:213 -#: 0fcf3cc59cdc49ba829f0c017026a353 -msgid "Update to flask 3 :issue:`161` :pr:`163`" -msgstr "" - -#: ../../CHANGES.rst:216 -#: 7f12675bc88c462e8700ab4dcf575e1b -msgid "[0.0.37] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:221 -#: 285b8426823745eaaa2ea95a1c9a65c6 -msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" -msgstr "" - -#: ../../CHANGES.rst:224 -#: bca127d497be434ba465b05314a3adb4 -msgid "[0.0.36] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:229 -#: fe53a804255549689149c731033fcdbf -msgid "Avoid crashing when LDAP groups references unexisting users." -msgstr "" - -#: ../../CHANGES.rst:230 -#: 46a4aca17d94478793eb940b1253146d -msgid "Password reset and initialization mails were only sent to the preferred user email address." -msgstr "" - -#: ../../CHANGES.rst:232 -#: 72414136fedd43d48ab641e9a2ba5135 -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:234 -#: f5e9a14265cc469b98047dda5a5940ae -msgid "Password comparison was too permissive on login." -msgstr "" - -#: ../../CHANGES.rst:235 -#: 96a3afb6e07e4265905bfff45f16fca1 -msgid "Encrypt passwords in the SQL backend." -msgstr "" - -#: ../../CHANGES.rst:238 -#: d8b0b1f939ac4cfabfe856f124668efa -msgid "[0.0.35] - 2023-11-25" -msgstr "" - -#: ../../CHANGES.rst:243 -#: 4c4a1aaa53c84089bbdbacfdd7a93cd7 -msgid "Refresh token grant supports other client authentication methods. :pr:`157`" -msgstr "" - -#: ../../CHANGES.rst:244 -#: d38a9d2c989f477b830453bb91a3ce30 -msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" -msgstr "" - -#: ../../CHANGES.rst:249 -#: e07fa26da7c04af284538253149c5c8e -msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:250 -#: ac6b644acebb4bbb8144ee39178bb7e0 -msgid "Bump to htmx 1.9.9 :pr:`159`" -msgstr "" - -#: ../../CHANGES.rst:255 -#: 36303be4013a4ab98ca76c352237b480 -msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" -msgstr "" - -#: ../../CHANGES.rst:258 -#: c99e8701c9234a63bdd47ef72f94de9e -msgid "[0.0.34] - 2023-10-02" -msgstr "" - -#: ../../CHANGES.rst:263 -#: f47eb19208d840ed8759e38a8d22776c -msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`" -msgstr "" - -#: ../../CHANGES.rst:269 -#: 9b398e268d54490a9837a541ae6acd11 -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:272 -#: 5ca22758e22842fd9eadaba370538cf3 -msgid "flask-babel and pytz are now part of the `front` extras" -msgstr "" - -#: ../../CHANGES.rst:273 -#: 54883b5b1e4c4c82a6ff40eddec5d876 -msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" -msgstr "" - -#: ../../CHANGES.rst:274 -#: eeef63797d064f27a336fdae4df02eb2 -msgid "Bump to htmx 1.9.6 :pr:`154`" -msgstr "" - -#: ../../CHANGES.rst:275 -#: 728d7adbfc804d69b74b855aa7a94506 -msgid "Add support for python 3.12 :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:278 -#: 6e3906ced8b443b98f63ace838a7c6d7 -msgid "[0.0.33] - 2023-08-26" -msgstr "" - -#: ../../CHANGES.rst:283 -#: e53d000ae77e40cd9e2424921f2a408b -msgid "OIDC jwks endpoint do not return empty kid claim" -msgstr "" - -#: ../../CHANGES.rst:288 -#: f9abbef1c06546c69c1cea00a196ba97 -msgid "Documentation details on the canaille models." -msgstr "" - -#: ../../CHANGES.rst:291 -#: 6cf47b850381418993ea52a424e5b5d7 -msgid "[0.0.32] - 2023-08-17" -msgstr "" - -#: ../../CHANGES.rst:296 -#: beae54bdce4542878dc63551a2b70c12 -msgid "Additional inmemory backend :issue:`30` :pr:`149`" -msgstr "" - -#: ../../CHANGES.rst:297 -#: 9f9ba3da7310492ca4a75f838efacc32 -msgid "Installation extras :issue:`167` :pr:`150`" -msgstr "" - -#: ../../CHANGES.rst:300 -#: 61e8ad0f797e40d2bf74c865be912ced -msgid "[0.0.31] - 2023-08-15" -msgstr "" - -#: ../../CHANGES.rst:305 -#: 0a701d5de457451c84ef900cc3fef867 -msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" -msgstr "" - -#: ../../CHANGES.rst:306 -#: 09976b3b14dd47fcb0b95ac50ee964b9 -msgid "Validate phone numbers with a regex :pr:`146`" -msgstr "" - -#: ../../CHANGES.rst:307 -#: f422b0b42b6b41b69437d02988f560aa -msgid "Email verification :issue:`41` :pr:`147`" -msgstr "" - -#: ../../CHANGES.rst:308 -#: c4949bfe2646408f88520bb34ab3ba7c -msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" -msgstr "" - -#: ../../CHANGES.rst:313 -#: 222752c19a884c7c8e7526f6aae81387 -msgid "The `check` command uses the default configuration values." -msgstr "" - -#: ../../CHANGES.rst:318 -#: 0295613b5cec412e8bbd5bd720e09665 -msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" -msgstr "" - -#: ../../CHANGES.rst:321 -#: 35f7f7fc88ab4085bc98cbda4c158655 -msgid "[0.0.30] - 2023-07-06" -msgstr "" - -#: ../../CHANGES.rst:323 -#: 8497fb120e46418489f5966c89260726 -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:329 -#: e3c929900cb94378ace985c675b00426 -msgid "Configuration option to disable javascript :pr:`141`" -msgstr "" - -#: ../../CHANGES.rst:334 -#: 1654a3c769454610bad6c45c115842d9 -msgid "Configuration ``USER_FILTER`` is parsed with jinja." -msgstr "" - -#: ../../CHANGES.rst:335 -#: 1d9fa53b5d924c899ab9a2de17293f28 -msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" -msgstr "" - -#: ../../CHANGES.rst:338 -#: a9ee235c196d4cc382336efdbfcbcd32 -msgid "[0.0.29] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:343 -#: 7dc80b4f731d45ed82edfef699eea179 -msgid "Disabled HTMX boosting on OIDC forms to avoid errors." -msgstr "" - -#: ../../CHANGES.rst:346 -#: 75d600b0d9cb4fe080fff1f600081680 -msgid "[0.0.28] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:351 -#: 082f3fec66aa4026ae6b035f0d3930f0 -msgid "A template variable was misnamed." -msgstr "" - -#: ../../CHANGES.rst:354 -#: 2d4a7bf5eb5b43e8bec63408fcf193f0 -msgid "[0.0.27] - 2023-06-29" -msgstr "" - -#: ../../CHANGES.rst:356 -#: 131f26c6b3e8454c8daf2492788a1843 -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:362 -#: c0a5ffd3ca674178b3f611def9fe24e1 -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:364 -#: 7cdfeadd260443ba93aa4316a058a132 -msgid "Field list support. :issue:`115` :pr:`136`" -msgstr "" - -#: ../../CHANGES.rst:365 -#: 9f460259932a4e4fae39173cda01de2a -msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" -msgstr "" - -#: ../../CHANGES.rst:370 -#: 400513d9b1dc4753be195a1dd668cc3b -msgid "Bump to jquery 3.7.0 :pr:`138`" -msgstr "" - -#: ../../CHANGES.rst:375 -#: c06348c1f8dd487889aadf81e232d5aa -msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" -msgstr "" - -#: ../../CHANGES.rst:380 -#: af226ed2ac794de1b28df7b8346e9721 -msgid "Stop support for python 3.7 :pr:`131`" -msgstr "" - -#: ../../CHANGES.rst:383 -#: 84673f0a17654b8b8e27a2a549b81593 -msgid "[0.0.26] - 2023-06-03" -msgstr "" - -#: ../../CHANGES.rst:388 -#: 8b12e95f472e4feebf4f25a0c8c4aca7 -msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+ :issue:`13` :pr:`118`" -msgstr "" - -#: ../../CHANGES.rst:390 -#: eac835587147487481476bc01c17ada9 -msgid "Timezone configuration entry. :issue:`137` :pr:`130`" -msgstr "" - -#: ../../CHANGES.rst:395 -#: 15c83d445e564f4ba4e3a63e0be4d43b -msgid "Avoid setting ``None`` in JWT claims when they have no value." -msgstr "" - -#: ../../CHANGES.rst:396 -#: eaffa225744b4840a42da427162e2785 -msgid "Display password recovery button on OIDC login page. :pr:`129`" -msgstr "" - -#: ../../CHANGES.rst:399 -#: addc305664094b5481aea4773d1e0fed -msgid "[0.0.25] - 2023-05-05" -msgstr "" - -#: ../../CHANGES.rst:401 -#: cfe53ed735fa4fc28795a364755afacc -msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" -msgstr "" - -#: ../../CHANGES.rst:407 -#: 3cb07e6c5be34134be6b573c5f576f3f -msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" -msgstr "" - -#: ../../CHANGES.rst:408 -#: 40cafb901cfa48e2b60eb3c5aeb640ea -msgid "Moved OIDC related configuration entries in ``OIDC``" -msgstr "" - -#: ../../CHANGES.rst:409 -#: d7d52425e9ef4ffa888ecbb06496ec24 -msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" -msgstr "" - -#: ../../CHANGES.rst:410 -#: e024da00819b46b996d269415e8d171d -msgid "Bumped to htmx 1.9.0 :pr:`124`" -msgstr "" - -#: ../../CHANGES.rst:411 -#: 9d8b7a6a251043389403b53f9090e709 -msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:412 -#: 2c35b0cb84dd4334857ec96f44faeeeb -msgid "Bumped to htmx 1.9.2 :pr:`127`" -msgstr "" - -#: ../../CHANGES.rst:417 -#: 01e98f5b734046e5ad238fdf6c329b65 -msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." -msgstr "" - -#: ../../CHANGES.rst:418 -#: 58b8d01fb9ce4f8caf84c7d54867f8f3 -msgid "Fixed empty model attributes registration :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:419 -#: 54425718a4fd43aba3c78e6762d5e9c4 -msgid "Password initialization mails were not correctly sent. :pr:`128`" -msgstr "" - -#: ../../CHANGES.rst:422 -#: 301adcf1323a448db7436b7556b819c8 -msgid "[0.0.24] - 2023-04-07" -msgstr "" - -#: ../../CHANGES.rst:427 -#: 0901c7eb5ef7455db93d0336cf16300b -msgid "Fixed avatar update. :pr:`122`" -msgstr "" - -#: ../../CHANGES.rst:430 -#: 11388c0443524dbc9baa843f713e82c7 -msgid "[0.0.23] - 2023-04-05" -msgstr "" - -#: ../../CHANGES.rst:435 -#: 0c2bdb0a35b348309be8da2460dda465 -msgid "Organization field. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:436 -#: 52afa1e2c6814f9881128dedeec00414 -msgid "ETag and Last-Modified headers on user photos. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:437 -#: d7493b75d8284eadb201a0d1fba5dcbb -msgid "Dynamic form validation :pr:`120`" -msgstr "" - -#: ../../CHANGES.rst:442 -#: 8b45c11bf3864bbca2cb34e0a7a2d069 -msgid "UX rework. Submenu addition. :pr:`114`" -msgstr "" - -#: ../../CHANGES.rst:443 -#: d8888dcbb64144c597042aec7db36e4d -msgid "Properly handle LDAP date timezones. :pr:`117`" -msgstr "" - -#: ../../CHANGES.rst:448 -#: abf36244db5b4f8cb0192e8a9ca322f9 -msgid "CSRF protection on every forms. :pr:`119`" -msgstr "" - -#: ../../CHANGES.rst:451 -#: c685cf95e47e43e39eb275d9e7615973 -msgid "[0.0.22] - 2023-03-13" -msgstr "" - -#: ../../CHANGES.rst:455 -#: 25623d11da5b4fd4be340036135cae8c -msgid "faker is not imported anymore when the `clean` command is called." -msgstr "" - -#: ../../CHANGES.rst:458 -#: d63a34b4a08b4537807f53540edcd101 -msgid "[0.0.21] - 2023-03-12" -msgstr "" - -#: ../../CHANGES.rst:463 -#: 31fc708ea1be424eb6cc3145abb99d31 -msgid "Display TOS and policy URI on the consent list page. :pr:`102`" -msgstr "" - -#: ../../CHANGES.rst:464 -#: af78e647f0424db38b885b41592c3370 -msgid "Admin token deletion :pr:`100` :pr:`101`" -msgstr "" - -#: ../../CHANGES.rst:465 -#: f4d5fda7ea8e4c2ba7377125e2aefd5a -msgid "Revoked consents can be restored. :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:466 -#: 64879f34805f48f69bbf6f5012176265 -msgid "Pre-consented clients are displayed in the user consent list, and their consents can be revoked. :issue:`69` :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:468 -#: b2f9b8bb74ff47daa8010a6472ce0c30 -msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`" -msgstr "" - -#: ../../CHANGES.rst:470 -#: b2b5fef1ac5c44178d2d2894645593f5 -msgid "SMTP SSL support. :pr:`108`" -msgstr "" - -#: ../../CHANGES.rst:471 -#: ad6af1ee42184abd8ea3351628c1cac9 -msgid "Server side pagination. :issue:`114` :pr:`111`" -msgstr "" - -#: ../../CHANGES.rst:472 -#: 4c3ef76329084cacb999daf99b1076fe -msgid "Department number support. :issue:`129`" -msgstr "" - -#: ../../CHANGES.rst:473 -#: 434a6690f72a4115ae3237559db0f2c4 -msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" -msgstr "" - -#: ../../CHANGES.rst:474 -#: d930165b44bb4fe28a40469d96d4de65 -msgid "Title edition support :pr:`113`" -msgstr "" - -#: ../../CHANGES.rst:479 -#: 49519ddcfb26488cb1803f9e59c03174 -msgid "Client deletion also deletes related Consent, Token and AuthorizationCode objects. :issue:`126` :pr:`98`" -msgstr "" - -#: ../../CHANGES.rst:485 -#: 9591b382aab04b44bb72da8480fcf25f -msgid "Removed datatables." -msgstr "" - -#: ../../CHANGES.rst:488 -#: 47ffac05b2734f7599c60f70fe9326a4 -msgid "[0.0.20] - 2023-01-28" -msgstr "" - -#: ../../CHANGES.rst:493 -#: 10d42ae681614ea488e6d07e75bb7cc7 -msgid "Spanish translation. :pr:`85` :pr:`88`" -msgstr "" - -#: ../../CHANGES.rst:494 -#: 9891ff9d9ed34685aebfd5d3acc4bae1 -msgid "Dedicated connectivity test email :pr:`89`" -msgstr "" - -#: ../../CHANGES.rst:495 -#: 80ce05f77ae74909890f9eb358b44c5a -msgid "Update to jquery 3.6.3 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:496 -#: ff21da5bd61e4f0ab07afc31e56b73dc -msgid "Update to fomantic-ui 2.9.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:497 -#: aca0aabe64db4f4db27f0ca9949b404e -msgid "Update to datatables 1.13.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:502 -#: 88382a6314864edd81ec2353f1450de9 -msgid "Fix typos and grammar errors. :pr:`84`" -msgstr "" - -#: ../../CHANGES.rst:503 -#: 6f56cda577ea46d98288f1585490bfe3 -msgid "Fix wording and punctuations. :pr:`86`" -msgstr "" - -#: ../../CHANGES.rst:504 -#: ef731975e4e24d3eb3bafa2f59e71c21 -msgid "Fix HTML lang tag :issue:`122` :pr:`87`" -msgstr "" - -#: ../../CHANGES.rst:505 -#: eff8d1037e2d4c29961afac8c1c4da52 -msgid "Automatically trims the HTML translated strings. :pr:`91`" -msgstr "" - -#: ../../CHANGES.rst:506 -#: cf3bed5229a043939a25fc83821619f0 -msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" -msgstr "" - -#: ../../CHANGES.rst:509 -#: 1bb3628281ec4cc18bb2eef33ec3f9e8 -msgid "[0.0.19] - 2023-01-14" -msgstr "" - -#: ../../CHANGES.rst:514 -#: 8a630089323d42c782a476765cb05d21 -msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`" -msgstr "" - -#: ../../CHANGES.rst:518 -#: 7ce903b7fb5d49bda0fcc61d112d9cb7 -msgid "[0.0.18] - 2022-12-28" -msgstr "" - -#: ../../CHANGES.rst:523 -#: eb598fdbf703465986707e080da6827a -msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri`` :pr:`82`" -msgstr "" - -#: ../../CHANGES.rst:527 -#: 34a5a8d6d7e340c39fbd2851284a276d -msgid "[0.0.17] - 2022-12-26" -msgstr "" - -#: ../../CHANGES.rst:532 -#: cdd95cfd920948abb2984275e8cf87d3 -msgid "Fixed group deletion button. :pr:`80`" -msgstr "" - -#: ../../CHANGES.rst:533 -#: 1ce782b5fdc64ea4952ad1de9bec9af8 -msgid "Fixed post requests in oidc clients views. :pr:`81`" -msgstr "" - -#: ../../CHANGES.rst:536 -#: b19cb6e6a9234875bb24b074d6e32fa8 -msgid "[0.0.16] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:541 -#: 4026b49aaec14d04a1b9c94c62dba1f7 -msgid "Fixed LDAP operational attributes handling." -msgstr "" - -#: ../../CHANGES.rst:544 -#: 82d7e4549e994e9f9a269601d1b31186 -msgid "[0.0.15] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:549 -#: 7a91366f4d7c4644a253118355c864e6 -msgid "User can chose their favourite display name. :pr:`77`" -msgstr "" - -#: ../../CHANGES.rst:550 -#: c3c588c0740443209e5d30dd9e4b63e7 -msgid "Bumped to authlib 1.2. :pr:`78`" -msgstr "" - -#: ../../CHANGES.rst:551 -#: e52e34bd7e8a45cb8c3440bb94e71328 -msgid "Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management Protocol :pr:`79`" -msgstr "" - -#: ../../CHANGES.rst:553 -#: b048668f98924027963eb5fa4759651f -msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." -msgstr "" - -#: ../../CHANGES.rst:556 -#: 7ad90b4df3dc4bcdad973cca13ca9062 -msgid "[0.0.14] - 2022-11-29" -msgstr "" - -#: ../../CHANGES.rst:560 -#: 664ba7b255d94ffcae4c68c5f332f019 -msgid "Fixed translation mo files packaging." -msgstr "" - -#: ../../CHANGES.rst:563 -#: cb4f5961889c489f95a63f7c5f191724 -msgid "[0.0.13] - 2022-11-21" -msgstr "" - -#: ../../CHANGES.rst:568 -#: c973b03b1f1647d98a55cac09ff4a241 -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:570 -#: a91b692f8ae3406cbbee8bee881bb31b -msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined." -msgstr "" - -#: ../../CHANGES.rst:572 -#: 1475c8ca3ada44bf95bff4eaa5402da4 -msgid "Gitlab CI fix. :pr:`64`" -msgstr "" - -#: ../../CHANGES.rst:573 -#: 4a86a86df8f74804b63df8facf898bbc -msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" -msgstr "" - -#: ../../CHANGES.rst:574 -#: 05ff5ac4d43041d99bc9801914626146 -msgid "Fixed non-square logo CSS. :pr:`67`" -msgstr "" - -#: ../../CHANGES.rst:575 -#: 0cf118c440984c16bcd3b74fc7658d64 -msgid "Fixed schema path on installation. :pr:`68`" -msgstr "" - -#: ../../CHANGES.rst:576 -#: 1655349340a84da0a86f706168109afa -msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" -msgstr "" - -#: ../../CHANGES.rst:577 -#: 1762cb46c3e24b9bb642d9461bc511f2 -msgid "Fixed client preconsent disabling. :pr:`72`" -msgstr "" - -#: ../../CHANGES.rst:582 -#: 5731227ecd8046408abefb000ea360fe -msgid "Python 3.11 support. :pr:`61`" -msgstr "" - -#: ../../CHANGES.rst:583 -#: 184a123e682c4ec9bc45b936911c6acf -msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" -msgstr "" - -#: ../../CHANGES.rst:584 -#: 4daf2684781545aa96f935a1858f2c3e -msgid "``preferredLanguage`` attribute support. :pr:`75`" -msgstr "" - -#: ../../CHANGES.rst:589 -#: 251bc4ce0edc47839f696c9825ca0c43 -msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`." -msgstr "" - -#: ../../CHANGES.rst:591 -#: 5830f58321214ac58998c8d20106e9d2 -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:594 -#: 05b9d38cee1148e4baec3a188e7f75ac -msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" -msgstr "" - -#: ../../CHANGES.rst:595 -#: 04bda2d6ee5546c29707443f2a7a39b4 -msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" -msgstr "" - -#: ../../CHANGES.rst:598 -#: 05081a69d8af4084a61ee02ec11581c0 -msgid "[0.0.12] - 2022-10-24" -msgstr "" - -#: ../../CHANGES.rst:603 -#: 83d06351d66349b9b57fc8db923e9a5c -msgid "Basic WebFinger endpoint. :pr:`59`" -msgstr "" - -#: ../../CHANGES.rst:604 -#: 1b70c118e9d449bea624c26f24030e0c -msgid "Bumped to FomanticUI 2.9.0 00ffffee" -msgstr "" - -#: ../../CHANGES.rst:605 -#: 88662a0575d342f89102c38df931fa42 -msgid "Implemented Dynamic Client Registration :pr:`60`" -msgstr "" - -#: ../../CHANGES.rst:608 -#: e6c3c80259be4e9293d0fcadeafd6033 -msgid "[0.0.11] - 2022-08-11" -msgstr "" - -#: ../../CHANGES.rst:613 -#: 57c516c14a5e497bb8e13783ab9f42e6 -msgid "Default theme has a dark variant. :pr:`57`" -msgstr "" - -#: ../../CHANGES.rst:618 -#: bc085ca856774801b82edcaf328b0e1f -msgid "Fixed missing ``canaille`` binary. :pr:`58`" -msgstr "" - -#: ../../CHANGES.rst:621 -#: f80c6ab803b244eab18e4aacccddeee1 -msgid "[0.0.10] - 2022-07-07" -msgstr "" - -#: ../../CHANGES.rst:626 -#: d9e4b647949749a49bbc7343242b9b41 -msgid "Online demo. :pr:`55`" -msgstr "" - -#: ../../CHANGES.rst:627 -#: fb7efb3fe5b7456e823bbf848c007896 -msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" -msgstr "" - -#: ../../CHANGES.rst:628 -#: fca7e3fb7b814e37b3ba80d19b3620b6 -msgid "Fixed end session when user are already disconnected." -msgstr "" - -#: ../../CHANGES.rst:631 -#: 6cd8971baffc448f8189240cc374230a -msgid "[0.0.9] - 2022-06-05" -msgstr "" - -#: ../../CHANGES.rst:636 -#: 03ffc28964ef4b2a9cc0c910005d9979 -msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`" -msgstr "" - -#: ../../CHANGES.rst:637 -#: 77f1cd9392c0410491ad63481e8a2e8c -msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" -msgstr "" - -#: ../../CHANGES.rst:638 -#: 6ca2d27bbd27411b8c7155b57c27731a -msgid "Implemented RP-initiated logout :pr:`54`" -msgstr "" - -#: ../../CHANGES.rst:643 -#: 95719f2ea2b04cadb7cd1630d6d49de6 -msgid "Bumped to authlib 1 :pr:`48`" -msgstr "" - -#: ../../CHANGES.rst:644 -#: 01a07986d875439b9276e4d0de60e339 -msgid "documentation improvements :pr:`50`" -msgstr "" - -#: ../../CHANGES.rst:645 -#: a2b5f7c068ba4dc3a911965618c22cd8 -msgid "use poetry instead of setuptools :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:646 -#: 920f0d2bce9f4f3d85c74bfef8c885a4 -msgid "additional nonce tests :pr:`52`" -msgstr "" - -#: ../../CHANGES.rst:650 -#: 8ba476078ac4416d95a411a1b4d1976e -msgid "``HIDE_INVALID_LOGIN`` behavior and default value." -msgstr "" - -#: ../../CHANGES.rst:651 -#: 07fc00fb5c7e4fa68dee7bff41a07844 -msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" -msgstr "" - -#: ../../CHANGES.rst:654 -#: 7409c517a40242758fb842e3c9a6979e -msgid "[0.0.8] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:659 -#: 19d18c6e16584de6bc806ec34ef82058 -msgid "Fixed dependencies" -msgstr "" - -#: ../../CHANGES.rst:662 -#: 9075246858474ee49863fad1312bff7c -msgid "[0.0.7] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:667 -#: 50597942f5ff417381901c71bf212921 -msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:670 -#: 265c9312eadc4367a5fad31823c13be8 -msgid "[0.0.6] - 2022-03-08" -msgstr "" - -#: ../../CHANGES.rst:675 -#: 74bb45783f604adab39a6daa8a68c07b -msgid "Access token are JWT. :pr:`38`" -msgstr "" - -#: ../../CHANGES.rst:680 -#: 7c78939d39714062bb566b06eed6322a -msgid "Default groups on invitations :pr:`41`" -msgstr "" - -#: ../../CHANGES.rst:681 -#: 3ab0b04f916146a6ba07569fcbf80f06 -msgid "Schemas are shipped within the canaille package :pr:`42`" -msgstr "" - -#: ../../CHANGES.rst:684 -#: 404fe378c656443e9a940effffda0d9b -msgid "[0.0.5] - 2022-02-17" -msgstr "" - -#: ../../CHANGES.rst:689 -#: 243745dfae5d420fa946947187ef45bf -msgid "LDAP model objects have new identifiers :pr:`37`" -msgstr "" - -#: ../../CHANGES.rst:694 -#: f6239bf49b6145baa47891fece92dbfb -msgid "Admin menu dropdown display :pr:`39`" -msgstr "" - -#: ../../CHANGES.rst:695 -#: b9eab772697f40f1be8dc5c3f49f7b3e -msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" -msgstr "" - -#: ../../CHANGES.rst:698 -#: 6679140780cf46f8b2cb119fc729a4c4 -msgid "[0.0.4] - 2022-02-16" -msgstr "" - -#: ../../CHANGES.rst:703 -#: 28738ebc19fd41289eebbc340cb22ae5 -msgid "Client preauthorization :pr:`11`" -msgstr "" - -#: ../../CHANGES.rst:704 -#: d93800386a8a45bc8954d9a2b799bd2e -msgid "LDAP permissions check with the check command :pr:`12`" -msgstr "" - -#: ../../CHANGES.rst:705 -#: 48b173e7814447329956ae5325cbe4a9 -msgid "Update consents when a scope required is larger than the scope of an already given consent :pr:`13`" -msgstr "" - -#: ../../CHANGES.rst:707 -#: 2a22e4ebf75d488b86579bf9245a7918 -msgid "Theme customization :pr:`15`" -msgstr "" - -#: ../../CHANGES.rst:708 -#: 4ab0ce6231e34f43847ca9c52f0e8a00 -msgid "Logging configuration :pr:`16`" -msgstr "" - -#: ../../CHANGES.rst:709 -#: 0adf2f9e1fe840559a89d27bba714be6 -msgid "Installation command :pr:`17`" -msgstr "" - -#: ../../CHANGES.rst:710 -#: e48cd76fc5f54e0985a73480181de48e -msgid "Invitation links :pr:`18`" -msgstr "" - -#: ../../CHANGES.rst:711 -#: 8523a2c6487045ee9daf4fe03f1b1864 -msgid "Advanced permissions :pr:`20`" -msgstr "" - -#: ../../CHANGES.rst:712 -#: 2cbc27b2a4e44ff7a84bd225de7812aa -msgid "An option to not use OIDC :pr:`23`" -msgstr "" - -#: ../../CHANGES.rst:713 -#: 6150ad67b8c647cf8abe23fbd5bd1a3c -msgid "Disable some features when no SMTP server is configured :pr:`24`" -msgstr "" - -#: ../../CHANGES.rst:714 -#: 1fda569eaea34091a33c2abb6baae3c7 -msgid "Login placeholder dynamically generated according to the configuration :pr:`25`" -msgstr "" - -#: ../../CHANGES.rst:715 -#: 72aa5848b59040108136006daaec2101 -msgid "Added an option to tune object IDs :pr:`26`" -msgstr "" - -#: ../../CHANGES.rst:716 -#: 2990ba053f114121be6ea682c14d6adc -msgid "Avatar support :pr:`27`" -msgstr "" - -#: ../../CHANGES.rst:717 -#: 90a86eb3918d41e0a6cbe3c45efb742f -msgid "Dynamical and configurable JWT claims :pr:`28`" -msgstr "" - -#: ../../CHANGES.rst:718 -#: d382d05f220d4536aeed6f7b8093e812 -msgid "UI improvements :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:719 -#: 495f574fb38d421290e3e7dfb6c5debe -msgid "Invitation links expiration :pr:`30`" -msgstr "" - -#: ../../CHANGES.rst:720 -#: fb3f02b5847e4b97a43fa5fbb31bb2d0 -msgid "Invitees can choose their IDs :pr:`31`" -msgstr "" - -#: ../../CHANGES.rst:721 -#: 7bb61e62ab3845dd81fd927761bb3301 -msgid "LDAP backend refactoring :pr:`35`" -msgstr "" - -#: ../../CHANGES.rst:726 -#: e166b0bf05c546a8a93653e1085db081 -msgid "Fixed ghost members in a group :pr:`14`" -msgstr "" - -#: ../../CHANGES.rst:727 -#: 3996da1c77e7442a9576d3e98db2e88c -msgid "Fixed email sender names :pr:`19`" -msgstr "" - -#: ../../CHANGES.rst:728 -#: 4d211784dc8a45a58fc3fd0e242e9c50 -msgid "Fixed filter being not escaped :pr:`21`" -msgstr "" - -#: ../../CHANGES.rst:729 -#: 7c75824660e5452aa129914f3e8cf70e -msgid "Demo script good practices :pr:`32`" -msgstr "" - -#: ../../CHANGES.rst:730 -#: fbfcb0d4f1294b58984b4511b74c7bb8 -msgid "Binary path for Debian :pr:`33`" -msgstr "" - -#: ../../CHANGES.rst:731 -#: 53e781db9c264064976ab2f2264595bc -msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server :pr:`34`" -msgstr "" - -#: ../../CHANGES.rst:733 -#: 877309cbeef3453ea72937ff59a4e190 -msgid "Spelling typos :pr:`36`" -msgstr "" - -#: ../../CHANGES.rst:736 -#: a0810d6200ff40e7aaab87b0fd4c5b1c -msgid "[0.0.3] - 2021-10-13" -msgstr "" - -#: ../../CHANGES.rst:741 -#: b25d2d17718a4da0a50596da63a80790 -msgid "Two-steps sign-in :issue:`49`" -msgstr "" - -#: ../../CHANGES.rst:742 -#: 16af3b95f59249b4b7ab0604de8ff57b -msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" -msgstr "" - -#: ../../CHANGES.rst:743 -#: a6cd22462a9a4c9dba4d3423ae8af46c -msgid "Configuration check command. :issue:`66` :pr:`8`" -msgstr "" - -#: ../../CHANGES.rst:744 -#: effde2fb59c34a4e93c948bbd84f8625 -msgid "Groups management. :issue:`12` :pr:`6`" -msgstr "" - -#: ../../CHANGES.rst:749 -#: e267aaaa01164e30ad004e0db2c9e953 -msgid "Introspection access bugfix. :issue:`63` :pr:`10`" -msgstr "" - -#: ../../CHANGES.rst:750 -#: d33d63ae3afe491d96e56180999e8479 -msgid "Introspection sub claim. :issue:`64` :pr:`7`" -msgstr "" - -#: ../../CHANGES.rst:753 -#: ac2acd0f69b04804b20b7c20ab3cfd7d -msgid "[0.0.2] - 2021-01-06" -msgstr "" - -#: ../../CHANGES.rst:758 -#: 98e7bceb7233465eaaaf0c2605f8d283 -msgid "Login page is responsive. :issue:`1`" -msgstr "" - -#: ../../CHANGES.rst:759 -#: 2d37025a8dc543fb9e3a95ccc4f7592e -msgid "Adapt mobile keyboards to login page fields. :issue:`2`" -msgstr "" - -#: ../../CHANGES.rst:760 -#: 638c79954a124360b4bf7353fade3dc3 -msgid "Password recovery interface. :issue:`3`" -msgstr "" - -#: ../../CHANGES.rst:761 -#: 2c6d9b46b9a74b1b9348c1cceb97847d -msgid "User profile interface. :issue:`4`" -msgstr "" - -#: ../../CHANGES.rst:762 -#: 2873b90329a34f46828dfb0ed02780d8 -msgid "Renamed the project *canaille*. :issue:`5`" -msgstr "" - -#: ../../CHANGES.rst:763 -#: 628bd6758ae74f3693a18cedaca47a71 -msgid "Command to remove old tokens. :issue:`17`" -msgstr "" - -#: ../../CHANGES.rst:764 -#: 5e92758f84a8435b92f659ce415b2c98 -msgid "Improved password recovery email. :issue:`14` :issue:`26`" -msgstr "" - -#: ../../CHANGES.rst:765 -#: 233732a2490b43d285a83e241b0dd9de -msgid "Use flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" -msgstr "" - -#: ../../CHANGES.rst:766 -#: 329ff5fb95e3449ebb4e6f992211aa03 -msgid "Improved consents page. :issue:`27`" -msgstr "" - -#: ../../CHANGES.rst:767 -#: 4937c978609442d7ab89f8b4c65e536f -msgid "Admin user page. :issue:`8`" -msgstr "" - -#: ../../CHANGES.rst:768 -#: 8eb4d59649cc41e68728dffbd6c347f4 -msgid "Project logo. :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:769 -#: 25d6314cfb974a908d408f72f9c34452 -msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`" -msgstr "" - -#: ../../CHANGES.rst:770 -#: f5e58832ecca4755b6ff543105e451a4 -msgid "Admins can impersonate users. :issue:`39`" -msgstr "" - -#: ../../CHANGES.rst:771 -#: 3e5148fff5304784be64879d67c3dc6f -msgid "Forgotten page UX improvement. :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:772 -#: b515e759936b453ca7a329c0b5dfef04 -msgid "Admins can remove clients. :pr:`45`" -msgstr "" - -#: ../../CHANGES.rst:773 -#: c8733f9bd02d49ebb5878ca7cd12c9ce -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:775 -#: e217efed56d94b52a33bd7529710e544 -msgid "Password initialization mail. :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:780 -#: 38b3bf4f13be473189acfdf51c885b60 -msgid "Form translations. :issue:`19` :issue:`23`" -msgstr "" - -#: ../../CHANGES.rst:781 -#: 21d73002dfde40469a6954ba1f3af488 -msgid "Avoid to use Google Fonts. :issue:`21`" -msgstr "" - -#: ../../CHANGES.rst:786 -#: da8460512c19411188cf666741f1ae84 -msgid "'My tokens' page. :issue:`22`" -msgstr "" - -#: ../../CHANGES.rst:789 -#: cfdc703525ef4404b81a134fc7c87ea8 -msgid "[0.0.1] - 2020-10-21" -msgstr "" - -#: ../../CHANGES.rst:794 -#: e59159518b3a4358824f7d8414aa671b -msgid "Initial release." -msgstr "" diff --git a/doc/gettext/development/contributing.pot b/doc/gettext/development/contributing.pot deleted file mode 100644 index 4d297907..00000000 --- a/doc/gettext/development/contributing.pot +++ /dev/null @@ -1,400 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../CONTRIBUTING.rst:2 -#: db9f3c148acb45cda676a534529e8589 -msgid "Contributions" -msgstr "" - -#: ../../CONTRIBUTING.rst:4 -#: ea0fa8d3ac0d4799a10afd6f37e05d41 -msgid "Contributions are welcome!" -msgstr "" - -#: ../../CONTRIBUTING.rst:6 -#: ba17c0c13c114915adc43e5639bf088c -msgid "The repository is hosted at `gitlab.com/yaal/canaille `_." -msgstr "" - -#: ../../CONTRIBUTING.rst:9 -#: 701cbef5f1f547729633a993e3622c09 -msgid "Discuss" -msgstr "" - -#: ../../CONTRIBUTING.rst:11 -#: 3d3467217204457eae495ce9c7597a30 -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 -#: c88320c4d0d34620b655788e1c9fa658 -msgid "Development environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:18 -#: d9611e56c0f04f4099d6abb8bc2be28d -msgid "You can either run the demo locally or with Docker." -msgstr "" - -#: ../../CONTRIBUTING.rst:20 -#: 16ed6d496d4a451382ea864560d8fe9d -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 -#: 5ec56d5524574bca8128f6dac3176d0e -msgid "Initialize your development environment with: - ``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``. - ``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``. - ``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``. - ``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:31 -#: 4d99057f1b0b42048a0a0ea8d094182a -msgid "After having launched the demo you have access to several services:" -msgstr "" - -#: ../../CONTRIBUTING.rst:33 -#: 7c17294c7b994de58363e4e72838185c -msgid "A canaille server at `localhost:5000 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:34 -#: e91a134548c54960b39cdf0e58390b1d -msgid "A dummy client at `localhost:5001 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:35 -#: 83c30705c35e4f62b2a2a284b08c8c2b -msgid "Another dummy client at `localhost:5002 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:37 -#: 2cb674d059a04dee9b746a7baaeecd17 -msgid "The canaille server has some default users:" -msgstr "" - -#: ../../CONTRIBUTING.rst:39 -#: 2ac5d11cb40b4bffbc127225b286ccd9 -msgid "A regular user which login and password are **user**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:40 -#: 9646c01bc0e04c4792ff402b86595705 -msgid "A moderator user which login and password are **moderator**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:41 -#: 7b5a9e12d296447aaca3f29ea4be3f47 -msgid "An admin user which admin and password are **admin**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:42 -#: 3dbee7f7f26a43be90d535679c0a66e1 -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 "" - -#: ../../CONTRIBUTING.rst:47 -#: 6a80df408d77487e873a79468c27a761 -msgid "Backends" -msgstr "" - -#: ../../CONTRIBUTING.rst:49 -#: ed793c84780c4431b4a0f5174b77e863 -msgid "Canaille comes with several backends:" -msgstr "" - -#: ../../CONTRIBUTING.rst:51 -#: 61e91cbb3e1b449d8c578142e0745e64 -msgid "a lightweight test purpose `memory` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:52 -#: e167dd64b4f0429890295f6cd030e35f -msgid "a `sql` backend, based on sqlalchemy" -msgstr "" - -#: ../../CONTRIBUTING.rst:53 -#: 1a65f2eac34342be8835945125ede8a6 -msgid "a production-ready `LDAP` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:56 -#: 409d19a554034d76ba2135fe2e1a740c -msgid "Docker environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:58 -#: fdeee3e754e843eba8b76ad705e60587 -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:63 -#: e30b205d85524074aeeb5a7d13c26965 -msgid "To do that, you can add the following line to your `/etc/hosts`:" -msgstr "" - -#: ../../CONTRIBUTING.rst:69 -#: d7a9e2ab1a734dfd93cfadb72e9d9561 -msgid "To launch containers, use:" -msgstr "" - -#: ../../CONTRIBUTING.rst:84 -#: 99a2e010018c4ab18f689adbd17949d2 -msgid "Local environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:98 -#: 4c63d4d9d6bc4be79415a7f0a921f3e8 -msgid "If you want to run the demo locally with the LDAP backend, you need to have `OpenLDAP `_ installed on your system. It is generally shipped under the ``slapd`` or ``openldap`` package name." -msgstr "" - -#: ../../CONTRIBUTING.rst:103 -#: b6350782b583407f804ee9a125cc1f4c -msgid "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor, and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions on `slapd`." -msgstr "" - -#: ../../CONTRIBUTING.rst:113 -#: ddfc0afccdf849bfacf69a734948945c -msgid "Populate the database" -msgstr "" - -#: ../../CONTRIBUTING.rst:115 -#: 0d809af195c54c1db4a049349ec0701b -msgid "The demo database comes populated with some random users and groups. If you need more, you can generate users and groups with the ``populate`` command:" -msgstr "" - -#: ../../CONTRIBUTING.rst:126 -#: 191e9f1df4d845ccab01dcb93de8d944 -msgid "Adapt to use either the `ldap` or the `sql` configuration file. Note that this will not work with the memory backend." -msgstr "" - -#: ../../CONTRIBUTING.rst:129 -#: e15be9bc7ad44cf5852e7b819f3083f0 -msgid "Unit tests" -msgstr "" - -#: ../../CONTRIBUTING.rst:131 -#: 6db086cc47f34d91bd3d33524b2a64a1 -msgid "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to test all the supported python environments. Everything must be green before patches get merged." -msgstr "" - -#: ../../CONTRIBUTING.rst:134 -#: 00e18c0ced044c949ee1a18d593da4d2 -msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox." -msgstr "" - -#: ../../CONTRIBUTING.rst:136 -#: 41a97534fd4640bd9586f352647f57e6 -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:141 -#: 8f210b646ca84be2b83b9509b35e3f39 -msgid "Code style" -msgstr "" - -#: ../../CONTRIBUTING.rst:143 -#: e28cd3b679db45d4a4dee24039a28335 -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:149 -#: 1213a35a573741f487d16ab7f3017048 -msgid "Front" -msgstr "" - -#: ../../CONTRIBUTING.rst:151 -#: ee73e266b48643f3b0d811fc3dba45de -msgid "The interface is built upon the `Fomantic UI `_ CSS framework. The dynamical parts of the interface use `htmx `_." -msgstr "" - -#: ../../CONTRIBUTING.rst:154 -#: f5998a63a3a8473ebdace062b9e4125f -msgid "Using Javascript in the interface is tolerated, but the whole website MUST be accessible for browsers without Javascript support, and without any feature loss." -msgstr "" - -#: ../../CONTRIBUTING.rst:156 -#: 156c5f0058a44a83a5ef7fc0276a0e79 -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 "" - -#: ../../CONTRIBUTING.rst:161 -#: d2222852829b41e39d47b5ee4e2f35da -msgid "Documentation" -msgstr "" - -#: ../../CONTRIBUTING.rst:163 -#: 56ec493dc9c54b30ae012bce43edc8ac -msgid "The documentation is generated when the tests run:" -msgstr "" - -#: ../../CONTRIBUTING.rst:169 -#: c724f6040e8e41dfaa0bd61783b3f75e -msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:" -msgstr "" - -#: ../../CONTRIBUTING.rst:175 -#: c870557153b74096afeabcfb31d16a6d -msgid "The generated documentation is located at ``build/sphinx/html``." -msgstr "" - -#: ../../CONTRIBUTING.rst:178 -#: 69fc6bf00fe54884879b2d2a41877f66 -msgid "Code translation" -msgstr "" - -#: ../../canaille/translations/README.rst:1 -#: cc50847556774dac9ce087a24bae715d -msgid "Translations are done with `Weblate `_." -msgstr "" - -#: ../../canaille/translations/README.rst:3 -#: 3d831a3a927d456f834248caaef471aa -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 "" - -#: ../../canaille/translations/README.rst:8 -#: ../locales/readme.rst:7 -#: e5788bab9bea4b62896cea4130da2b22 -#: 78bc50b888bb49aeadc7a04a79426545 -msgid "Message extraction" -msgstr "" - -#: ../../canaille/translations/README.rst:10 -#: ../locales/readme.rst:9 -#: cdf33fd9d8ba4540aa843a236a424596 -#: 2c8e0e2054654b20a3b49db40f60601d -msgid "After you have edited translatable strings, you should extract the messages with:" -msgstr "" - -#: ../../canaille/translations/README.rst:17 -#: ../locales/readme.rst:16 -#: 98d3fdec177b4519bd4d9efcd5cd827c -#: 1555b90dada547ce9112c0d5664c618f -msgid "Language addition" -msgstr "" - -#: ../../canaille/translations/README.rst:19 -#: ../locales/readme.rst:18 -#: 32f431c9d9f9418292e69d27236af062 -#: 762c9254a1b04b71aeb43923910b130e -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 -#: 797cc0492f974a1e806df493b216c5f8 -msgid "Catalog update" -msgstr "" - -#: ../../canaille/translations/README.rst:28 -#: a40f65b9a07e48d88f88e08096d31299 -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 -#: c3f0a5e6753c4c21ab3997c39d57800f -msgid "Catalog compilation" -msgstr "" - -#: ../../canaille/translations/README.rst:38 -#: 614a641d465649e7a779a9d4ef49cbd9 -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:184 -#: add6d5220923488a82e49359ce7a0d55 -msgid "Documentation translation" -msgstr "" - -#: ../locales/readme.rst:1 -#: a2cfb06dfde7462fb3382c20183342a0 -msgid "Documentation translation Translations are done with `Weblate `_." -msgstr "" - -#: ../locales/readme.rst:4 -#: 113485680b744151a4e88e903b33f63c -msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." -msgstr "" - -#: ../locales/readme.rst:25 -#: e4baf07e2a99407a8a96e0574a012091 -msgid "Build the documentation in another language" -msgstr "" - -#: ../../CONTRIBUTING.rst:189 -#: 515603cf888740aa9a3dd3dd230e3352 -msgid "Publish a new release" -msgstr "" - -#: ../../CONTRIBUTING.rst:191 -#: e657f8e780dd4674a90bf0dde7decbe1 -msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;" -msgstr "" - -#: ../../CONTRIBUTING.rst:192 -#: 391ef00613ed4d8ca5538c617ed4e9ac -msgid "Check that tests are still green for every supported python version, and that coverage is still at 100%, by running ``uv run tox``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:193 -#: 57694c4f22574e50bff25cab27182f2d -msgid "Check that the demo environments are still working, both the local and the Docker one;" -msgstr "" - -#: ../../CONTRIBUTING.rst:194 -#: 3c03facaea6646948faf4531c2474b8f -msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;" -msgstr "" - -#: ../../CONTRIBUTING.rst:195 -#: ab7667b315734c5b9a4222006d86b173 -msgid "Increase the version number in ``pyproject.toml``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:196 -#: d65334bb5a78403eab57f3b17995ca3f -msgid "Commit with ``git commit``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:197 -#: dee8dcd9aa344228b9f5cd8b9142a630 -msgid "Build with ``uv build``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:198 -#: 7782721ef59e4196aca0b8e3b4eee781 -msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:199 -#: 1c23cb30798d4f06a418c61e6c7a998f -msgid "Install the test package somewhere with ``pip install --extra-index-url https://test.pypi.org/simple --upgrade canaille``. Check that everything looks fine;" -msgstr "" - -#: ../../CONTRIBUTING.rst:200 -#: 14eccb7318524fb2af7e0d75bdb59e19 -msgid "Publish on production PyPI ``uv publish``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:201 -#: 7776d49a05bc4399a09fa9ff7a08fc65 -msgid "Tag the commit with ``git tag XX.YY.ZZ``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:202 -#: 69b763c261ce43478f815696e7762162 -msgid "Push the release commit and the new tag on the repository with ``git push --tags``." -msgstr "" diff --git a/doc/gettext/development/index.pot b/doc/gettext/development/index.pot deleted file mode 100644 index 0e3fc69b..00000000 --- a/doc/gettext/development/index.pot +++ /dev/null @@ -1,22 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../development/index.rst:2 -#: 06473fb59658463eac64f549d1978fed -msgid "Development" -msgstr "" diff --git a/doc/gettext/development/specifications.pot b/doc/gettext/development/specifications.pot deleted file mode 100644 index 4cb9f7a8..00000000 --- a/doc/gettext/development/specifications.pot +++ /dev/null @@ -1,542 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../development/specifications.rst:2 -#: 2383ea673b75451188733db5862b135b -msgid "Specifications" -msgstr "" - -#: ../development/specifications.rst:4 -#: 2ef6b8c589164db4bc70d90e406547f4 -msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers." -msgstr "" - -#: ../development/specifications.rst:7 -#: ce5d7ed671a84146a75c86236a435bcb -msgid "State of the specs in Canaille" -msgstr "" - -#: ../development/specifications.rst:10 -#: e1579bc3332e4a63b0aac21055d366ea -msgid "OAuth2" -msgstr "" - -#: ../development/specifications.rst:12 -#: bce2b9f1363a4897b649cbf8b1ab312f -msgid "✅ `RFC6749: OAuth 2.0 Framework `_" -msgstr "" - -#: ../development/specifications.rst:13 -#: 0f16ff4617e249448a680965b8e27053 -msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" -msgstr "" - -#: ../development/specifications.rst:14 -#: a872f28da388479784536ba3a86e19b6 -msgid "✅ `RFC7009: OAuth 2.0 Token Revocation `_" -msgstr "" - -#: ../development/specifications.rst:15 -#: 94e2bc5630a44815b4c93c4e807778cb -msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants `_" -msgstr "" - -#: ../development/specifications.rst:16 -#: 76e315ea5f684fb79290e26d57859f7e -msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" -msgstr "" - -#: ../development/specifications.rst:17 -#: 9eae7bb9c29847a8a5a3eb28789e46b1 -msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol `_" -msgstr "" - -#: ../development/specifications.rst:18 -#: 7f0334835508449085c14802ab6f72af -msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" -msgstr "" - -#: ../development/specifications.rst:19 -#: fbb4c383d63a46efb860728150f24ac4 -msgid "✅ `RFC7662: OAuth 2.0 Token Introspection `_" -msgstr "" - -#: ../development/specifications.rst:20 -#: 653ac730c45d4631a1198df2fb4e2ec5 -msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" -msgstr "" - -#: ../development/specifications.rst:21 -#: c7d59a380e4a4de1b92c107f1b2c539b -msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" -msgstr "" - -#: ../development/specifications.rst:22 -#: c075e766a7d446dd9c13344c3f86a2c2 -msgid "❌ `RFC8693: OAuth 2.0 Token Exchange `_" -msgstr "" - -#: ../development/specifications.rst:23 -#: 28a936713f9948b6a3764a19c027f6bb -msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens `_" -msgstr "" - -#: ../development/specifications.rst:24 -#: e6919e11c0e947d1b6e423a655a74d5a -msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" -msgstr "" - -#: ../development/specifications.rst:25 -#: dcf39ac39c8c4504aa5286585795a804 -msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens `_" -msgstr "" - -#: ../development/specifications.rst:26 -#: e9c618050694440babc431d81eaea941 -msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" -msgstr "" - -#: ../development/specifications.rst:27 -#: 5245d41ffe9e4ed5a05bf5dff10724cc -msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" -msgstr "" - -#: ../development/specifications.rst:28 -#: e82805a9bb934a61a36bff17697d6119 -msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" -msgstr "" - -#: ../development/specifications.rst:29 -#: 13d5af1c63134be28a9c8f12925952f9 -msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" -msgstr "" - -#: ../development/specifications.rst:30 -#: e2440df8c0bc43a393e9f29fb658c080 -msgid "❌ `OAuth2 Multiple Response Types `_" -msgstr "" - -#: ../development/specifications.rst:31 -#: aceb377eee7f4b8d813edd4d649eea45 -msgid "❌ `OAuth2 Form Post Response Mode `_" -msgstr "" - -#: ../development/specifications.rst:34 -#: 536cc3c67db14ed4a20bd172e2f02c2d -msgid "OpenID Connect" -msgstr "" - -#: ../development/specifications.rst:36 -#: 501bfe9938d44b21bc9a29e3ee3f1ccd -msgid "✅ `OpenID Connect Core `_" -msgstr "" - -#: ../development/specifications.rst:37 -#: 940a4a7b20da4c57ab910c3952941bab -msgid "✅ `OpenID Connect Discovery `_" -msgstr "" - -#: ../development/specifications.rst:38 -#: e9243ed2cb5843debd7864bacd3615bf -msgid "✅ `OpenID Connect Dynamic Client Registration `_" -msgstr "" - -#: ../development/specifications.rst:39 -#: 260e55b2265f449da141e7b231859956 -msgid "✅ `OpenID Connect RP Initiated Logout `_" -msgstr "" - -#: ../development/specifications.rst:40 -#: 206d7fc552224c9ebbee3572273c82eb -msgid "❌ `OpenID Connect Session Management `_" -msgstr "" - -#: ../development/specifications.rst:41 -#: 8c4191636e1a462b8c8078918a753008 -msgid "❌ `OpenID Connect Front Channel Logout `_" -msgstr "" - -#: ../development/specifications.rst:42 -#: 163e00dec72e474d89c739d92f25b42c -msgid "❌ `OpenID Connect Back Channel Logout `_" -msgstr "" - -#: ../development/specifications.rst:43 -#: debeca055bdc4633b649b5fd9baf4346 -msgid "❌ `OpenID Connect Back Channel Authentication Flow `_" -msgstr "" - -#: ../development/specifications.rst:44 -#: 96e17c4d073f403889ba175279c8a621 -msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements `_" -msgstr "" - -#: ../development/specifications.rst:45 -#: f3d5d91958dc4dea9b3a3e359c2e8ace -msgid "✅ `Initiating User Registration via OpenID Connect 1.0 `_" -msgstr "" - -#: ../development/specifications.rst:48 -#: ../development/specifications.rst:64 -#: 3d08369fd6424b71b7a1714928df5b24 -#: ec31988387b144b5a71a8ff448bd57cf -msgid "SCIM" -msgstr "" - -#: ../development/specifications.rst:50 -#: 55efb939c7424dd7b0a458e4536a9a56 -msgid "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements `_" -msgstr "" - -#: ../development/specifications.rst:51 -#: 0777963266124280b73cd65111298a6b -msgid "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema `_" -msgstr "" - -#: ../development/specifications.rst:52 -#: 1413af49b35e43f394a69a91a9fb9254 -msgid "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" -msgstr "" - -#: ../development/specifications.rst:55 -#: 958bc79cc19548f5bfee6e20a9f4971d -msgid "Comparison with other providers" -msgstr "" - -#: ../development/specifications.rst:57 -#: aad219093f2243f68e8678886460e50f -msgid "Here is a feature comparison with other OpenID Connect server software." -msgstr "" - -#: ../development/specifications.rst:59 -#: 74f4c92786fb42cc8c9865d6791e8f2e -msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple." -msgstr "" - -#: ../development/specifications.rst:62 -#: 28474b61dca1437a8ba4d9e8fbc4fafe -msgid "Software" -msgstr "" - -#: ../development/specifications.rst:62 -#: 90e531639a8048ad836cb2510bb4b4a1 -msgid "Project" -msgstr "" - -#: ../development/specifications.rst:62 -#: 2016be5359144e6fac7ae582cdfb3095 -msgid "Protocols implementations" -msgstr "" - -#: ../development/specifications.rst:62 -#: 6ad725c101e64176a7848199cc032cea -msgid "Backends" -msgstr "" - -#: ../development/specifications.rst:64 -#: b15c641b913b4ac9a29ea3308555e9c9 -msgid "FLOSS" -msgstr "" - -#: ../development/specifications.rst:64 -#: 73626dca03614498bf386d2b3bfc9123 -msgid "Language" -msgstr "" - -#: ../development/specifications.rst:64 -#: c29f145e63714ccaa8a03cca4e3f22f4 -msgid "LOC" -msgstr "" - -#: ../development/specifications.rst:64 -#: 23ca5dbb097e4839a136bb799bf80f55 -msgid "OIDC" -msgstr "" - -#: ../development/specifications.rst:64 -#: 11ecae1c29784130b88825b48252f35c -msgid "SAML" -msgstr "" - -#: ../development/specifications.rst:64 -#: f08202ef5e9b483a80b28050363813e7 -msgid "CAS" -msgstr "" - -#: ../development/specifications.rst:64 -#: c15a06d0987b4617b1a27f63c6ea8bbb -msgid "LDAP" -msgstr "" - -#: ../development/specifications.rst:64 -#: 88d8a0776138423baadcac6030b6b58f -msgid "SQL" -msgstr "" - -#: ../development/specifications.rst:66 -#: 36b09d27feb3464a9390fefff5a7fe93 -msgid "Canaille" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:82 -#: ../development/specifications.rst:84 -#: ../development/specifications.rst:86 -#: ../development/specifications.rst:88 -#: 0f4aa33ba6584e98a9eaa297d0c94bb0 -#: fadd2afadd834cedbd90bb5bb9a9014b -#: 43eebe1b471c4101a0c92ea3b2a581f5 -#: d271fc21b16c4ffcbe345c6468f2b0a9 -#: e8ba0239a4b749e7a25fb8c635f589e7 -#: 1e47f1133b4e4a0e9c831cd5e1a13698 -#: 9805c61499404f379aa38b4b66c11b39 -#: 35600f8ae23c41fcac1e4cedaf78db99 -#: e33c8e80263d4fbfab0ff58fc214cb8f -#: 58988f1bd01f49bcb8a3bfe088ed011b -#: 8766d871a0274f0b971c264c78120d26 -#: 349c74fb53ea407d84d2956ccdbc46fa -#: 6cb5dea79610432e9dfdea8c2c626097 -#: 9bfd6602bb454ea39e137608d521e34b -#: 454f0ee660ee499283215360375fb802 -#: 1c6ed99217124047bb586e7a891759db -#: 2c9b0c967eec4506bfcd5dbbf52afb38 -#: 7dbecc531d094e4484f22e5060f83a37 -#: 77a7e78473cc48099cbd2d1ffe9428f2 -#: c74de60c04914a7f9e2c06e43bbe7781 -#: 14417de9256e420ead7cef2967be4a6d -#: 2ab94593a8e9419492ec2920eda40d75 -#: a439c4a58ee84802b941c9286bd22bbf -#: 0a50f3e6a3e14a5ca080519a2387f1a8 -#: 6e21519d3fe840b1a8511a46ea29feb0 -#: e257e70630c746189e0f3dcbe80680ad -#: 1b7eb2933228484ba7be3939e85199bb -#: fbe1ad750c384be994f6785667e04d64 -#: b8e790defcfd4060831916e10e35eb51 -#: 596178c6b8d14a7393e0bbed037c744f -#: 4c78c1fffa8b4568ab0d592a101f960f -#: 5c8f704976a94119a86e8699f0a4e81f -#: 2d8ea8069a934b38ab843b8a5f973a39 -#: 7befcce958644063930aa1408d04e00f -#: 765ee0d0ceec4a0eb9cfe961c9f58d39 -#: 7a7f0093c2c84333b30b2812477b47b1 -#: 0f611501e77e4cb29d60d5c669f1e24b -#: 9444fb2a3e0740dd9d5ec6a5f2a616d2 -#: 092db271989440aa80041a75259a11f4 -#: 5caa2e5cb2c941128d3693c1cbc24002 -#: 4e8ed6d107234a949ffeb1030a62936d -#: a5079ead19194736849e33ae37800cde -#: caf9f4e107af45fc81a8805315b76ba2 -#: a0f1e032b5b649db88c6d424e0201c77 -#: e33c9d06ce5e474c9e52b4d92a3e9667 -#: 86593813ccdb456ebd0d83b27eeb01cf -#: 8f8b3d4f54864fa48122dc593a86518c -#: d4498551e8d94e2a9eec0b40ef44a7f7 -#: cfa66105b6d34120918736d616c1a03e -#: df7e4d13d307478da90f47c6a25967f2 -#: 3028033c8ed04f13ac3bc5d429512376 -#: c534146a75ab423b9dd3eeaec1086f86 -#: a531b5e1ae8d4f08b3ab64fb41b95eac -#: 0f0ed37cd7f1417ea714b6a26e0aa821 -#: 2f74de566e7f4bb6953d723937fdcfbb -#: d2402eff2aa54c4ba72167030aad1624 -#: 2de2fb6bb0ac465185d04c363810a287 -#: 8c9f23f2ec144bc091870e216866bfd5 -#: 778477d68681415cb697a3f5fbecb407 -#: d4f477480a384c0fa7cc6e04c24fdb0c -#: 300ec52ae51f48118892ad89eaae110c -#: d764f65e2aa64f8abc37a03e435864eb -#: deddbee4686d4593bd8f25a94403c496 -msgid "✅" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: 01dff9df020340d3b54406638f8ade39 -#: 9b3140d0523c4308bc9134ef0b429d2c -#: 4b1e5e8fc53c45d78490dc275918de15 -msgid "Python" -msgstr "" - -#: ../development/specifications.rst:66 -#: 96c10219b0b14aa19ce8a108a7ae7535 -msgid "10k" -msgstr "" - -#: ../development/specifications.rst:66 -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:72 -#: ../development/specifications.rst:74 -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:82 -#: ../development/specifications.rst:86 -#: ../development/specifications.rst:88 -#: 3ebd793a1a814a59ac86d95ac10d5df2 -#: c5f6dca104ff4b96b3e2efd62193fe07 -#: 90a7b98bef2444de873bccf36b6945fe -#: d50482bdbeaf4df3a1e96da071973245 -#: c9b9adb75109471296e228d204cba052 -#: 46582f2fe84c49cd8c0cb4c8aadc9901 -#: be741254f47f40a3a8184bc4e9d1da25 -#: dd27269b4d13497db74735e450ebca2f -#: 9eadd8b5840940bb87c3549722814f48 -#: 3608cbf9d76e443187d5aa737fbad466 -#: 15fa182a79c14d169755cec6b57208e2 -#: 62636f44d520479ab343eff200e99fa1 -#: ae0edbc27c7f49b3bea30ed31fbe1911 -#: eb691511657747a499a83d4fa93e5e82 -#: 54c00360d6eb4809a8109defc6b2b87b -#: 8fdc4d649f4a4e6e8dc05bb9d04d87b9 -#: dfd6b6d189254825bb6ef6a6d7e8aeb2 -#: 7457ad39b3694ed6b9f55e066e84368b -#: 27fa0f65ca344c619c008634c795839c -msgid "❌" -msgstr "" - -#: ../development/specifications.rst:68 -#: 176177908d034923b2aee29868ef6796 -msgid "`Auth0`_" -msgstr "" - -#: ../development/specifications.rst:68 -#: ../development/specifications.rst:78 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:88 -#: 34ea26174ce84747a3098db253c053d2 -#: 2197b1423cf24880bd48984365df26ca -#: 343c98b7aae64c4b9b13401296895ea2 -#: 0aed1e6f1ed140fcaa16586bfe983023 -#: 437f53f33fe94e928888c9611c8e96e3 -#: ca5b6032265d45c9b26dc476f4631586 -#: cda04abd7d0f49598c1e5847a0e46893 -#: c9771ac23ed44441bd5bb7f6634ede8d -#: 522c4a868dc84cf3b0d349a7b83e1044 -msgid "❔" -msgstr "" - -#: ../development/specifications.rst:70 -#: 3de4a343d96b4a699f2b3a28ebfbb76f -msgid "`Authelia`_" -msgstr "" - -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:82 -#: b0f9a8ac302047428af718460e7e46d6 -#: 40010ae725194f3799a9740e20c4ae84 -msgid "Go" -msgstr "" - -#: ../development/specifications.rst:70 -#: ../development/specifications.rst:82 -#: 3b23b5c9fc4242d4af838dfdeba90474 -#: bb830e5335294f36ba951698d814e713 -msgid "50k" -msgstr "" - -#: ../development/specifications.rst:72 -#: 93151babd6a84e208a8cb864acb445a0 -msgid "`Authentic2`_" -msgstr "" - -#: ../development/specifications.rst:72 -#: 7d26a37f8f2d490ca5c464422d2da857 -msgid "65k" -msgstr "" - -#: ../development/specifications.rst:74 -#: c79b04fe99584a4183258a9bb56afff6 -msgid "`Authentik`_" -msgstr "" - -#: ../development/specifications.rst:74 -#: 34c65fd0b72146b1bdb2392653fbd7bf -msgid "55k" -msgstr "" - -#: ../development/specifications.rst:76 -#: 2dd361f5df204f2197da5976329b8bee -msgid "`CAS`_" -msgstr "" - -#: ../development/specifications.rst:76 -#: ../development/specifications.rst:80 -#: ../development/specifications.rst:84 -#: d1431df43a0844e592a30e479cb711d7 -#: 4e12564f864e4fcca5c59a70971b197e -#: 0e395d011cea454080b706263976c5a8 -msgid "Java" -msgstr "" - -#: ../development/specifications.rst:76 -#: 3c237a5d63994ccabf80d364775f6bd2 -msgid "360k" -msgstr "" - -#: ../development/specifications.rst:78 -#: 1a3be2d069ee4442b7fa71ac5cb4c245 -msgid "`Connect2id`_" -msgstr "" - -#: ../development/specifications.rst:80 -#: 8cb2733860b640ae9bcd9aa2b972f8c1 -msgid "`Gluu`_" -msgstr "" - -#: ../development/specifications.rst:82 -#: 55764f0dc4bd4f9195fd8a68024f9ccf -msgid "`Hydra`_" -msgstr "" - -#: ../development/specifications.rst:84 -#: 7532697da47043a9995922fd436fac5d -msgid "`Keycloak`_" -msgstr "" - -#: ../development/specifications.rst:84 -#: 38a63029234442cf8a45a3eaf5e4c5af -msgid "600k" -msgstr "" - -#: ../development/specifications.rst:86 -#: 6960f54d48a84e7389e1e733a107fc06 -msgid "`LemonLDAP`_" -msgstr "" - -#: ../development/specifications.rst:86 -#: 12c8306ec42e41ca83f5ea529d87f797 -msgid "Perl" -msgstr "" - -#: ../development/specifications.rst:86 -#: 5edc7bd6be844833a7c456f9bec02b10 -msgid "130k" -msgstr "" - -#: ../development/specifications.rst:88 -#: beae02477d7d4c768d483db955ebd314 -msgid "`Okta`_" -msgstr "" diff --git a/doc/gettext/features.pot b/doc/gettext/features.pot deleted file mode 100644 index c2d15ca0..00000000 --- a/doc/gettext/features.pot +++ /dev/null @@ -1,597 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../features.rst:9 -#: 3a39687e5bb049d585c3109447fa1161 -msgid "Features" -msgstr "" - -#: ../features.rst:11 -#: ec85227d7e8a415b9d94c7e8a290495d -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 -#: 1d01709835b447ffb8daf9945e64d9c4 -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 -#: 446f2f01004a4f3c828b318afd18bcfe -msgid "Web interface" -msgstr "" - -#: ../features.rst:21 -#: 297d50ea1e8f4b90928ff18dc836cfde -msgid "Canaille web interface can be used either in :doc:`production environments ` or locally for development purposes." -msgstr "" - -#: ../features.rst:26 -#: 2a5db38617a44ed596d35c10bc540bd8 -msgid "Profile management" -msgstr "" - -#: ../features.rst:28 -#: ../features.rst:217 -#: 9d832867dc5e4b0285f6b185b0ee547b -#: 581a25e539814b12a1c252f0242be431 -msgid "Profile" -msgstr "" - -#: ../features.rst:33 -#: 877ea17f9ff844119de7ba5e5e5cd0a5 -msgid "Canaille provides an interface to manage user profiles." -msgstr "" - -#: ../features.rst:35 -#: 45d88de9e4524c44a5e80daf0b1357b1 -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:37 -#: 74f24b0d610a49bf84dd6c96ff53146e -msgid "Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit any user profile, or do nothing at all." -msgstr "" - -#: ../features.rst:42 -#: 087ae1a46d26413ea42ce44662933f0b -msgid "Email confirmation" -msgstr "" - -#: ../features.rst:44 -#: 82810b7b19d94141b8547b43bd9d8ce8 -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:46 -#: 80defdc6c0aa4920a5fa8577acaf6fa6 -msgid "Users with :attr:`user management permission ` can set user emails without confirmation though." -msgstr "" - -#: ../features.rst:51 -#: 351ea71b5b1a4827a53592645bb8a80c -msgid "Group management" -msgstr "" - -#: ../features.rst:53 -#: ../features.rst:140 -#: e4a31dade59b407a9d8df7a0314d1cf2 -#: 54541ece476c4d408288f0337784a03c -msgid "Group edition" -msgstr "" - -#: ../features.rst:58 -#: a2cfe7269999424bb8748a13a95a10da -msgid "In a similar fashion than :ref:`profile management ` Canaille provides an interface to manage user groups." -msgstr "" - -#: ../features.rst:60 -#: fbb7991d7a63424c9ae6e0fc89f8242c -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 "" - -#: ../features.rst:63 -#: ../features.rst:83 -#: ../features.rst:149 -#: 7b47c38d02644c89a065a8cfb094e012 -#: 766b52d4eab245d2b3f3aa8aa7e0c282 -#: e0236e78322244a3841b0724694a48d3 -msgid "Todo" -msgstr "" - -#: ../features.rst:64 -#: 39c58580da09403bbb22cfe1d5598ce3 -msgid "At the moment adding an user to a group can only be achieved by the user settings page, but we are :issue:`working to improve this <192>`." -msgstr "" - -#: ../features.rst:66 -#: c60fc3e5961e42758063d4367d906411 -msgid "Group management can be enable with a :attr:`dedicated user permission `." -msgstr "" - -#: ../features.rst:69 -#: a78a3715d55844b0900f9916b6f2e7b2 -msgid "Due to limitations in the :ref:`LDAP backend `, groups must have at least one member. Thus it is not possible to remove the last user of a group without removing the group." -msgstr "" - -#: ../features.rst:75 -#: 8f7758bdc0ac4769a31161c485c1ec8e -msgid "User authentication" -msgstr "" - -#: ../features.rst:77 -#: 4b2d976568b14c4688f875adf9ccc562 -msgid "Unless their account is :ref:`locked `, users can authenticate with a login and a password." -msgstr "" - -#: ../features.rst:81 -#: e682b2ba5dd74bdd9ffaa86d2abc9f3f -msgid "For security reasons, it won't be told to users if they try to sign in with an unexisting logging, unless explicitly :attr:`set in the configuration `." -msgstr "" - -#: ../features.rst:83 -#: dfc328ffe1af4b918e2192b2ed14c637 -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:88 -#: 3fefd07ff8c24b16a00c2120e46e291a -msgid "User registration" -msgstr "" - -#: ../features.rst:90 -#: b18b55ebc00a442db9a09ea5a58f1a9a -msgid "Users can create accounts on Canaille if the feature :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:92 -#: 517379413a544000b36f09ab035a2f4b -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:97 -#: ../features.rst:99 -#: ba38afb338ce43c39b44dd7678121504 -#: 037e813626fc424fa2cc303b6de32626 -msgid "User invitation" -msgstr "" - -#: ../features.rst:104 -#: 67a415dce2ce449ca0f56e5feb2361d0 -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:106 -#: d591d5398e774b3197cef2e740c83efd -msgid "The link goes to a registration form, even if regular :ref:`user registration ` is disabled." -msgstr "" - -#: ../features.rst:108 -#: aefa9516cd6d42dd8a736bc06a34fa39 -msgid "It can be automatically sent by email to the new user." -msgstr "" - -#: ../features.rst:113 -#: 7c82637f2cc94bbb9d331b0f22869ed0 -msgid "Account locking" -msgstr "" - -#: ../features.rst:115 -#: 358a5fa4e02744ed91fa6a8826130611 -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:118 -#: 712ea6e2257f4ba482b7e89f2ff5c19a -msgid "At the moment a user account is locked:" -msgstr "" - -#: ../features.rst:120 -#: d681a46a4db2457cba4192322da21184 -msgid "their open sessions will be closed;" -msgstr "" - -#: ../features.rst:121 -#: fdc693b1bf024fb2a7bbf3097f24d022 -msgid "they won't be able to sign in again;" -msgstr "" - -#: ../features.rst:122 -#: 23cd8877517d4f3c908e8ea1092dc9a6 -msgid "no new OIDC token will be issued;" -msgstr "" - -#: ../features.rst:124 -#: 9882d29f0007492aae9caf2506288533 -msgid "User accounts must be manually unlocked by an administrator for the users to regain access to those actions." -msgstr "" - -#: ../features.rst:129 -#: e712f4f9b0a2427b8dccd43a4b4544d8 -msgid "Account deletion" -msgstr "" - -#: ../features.rst:131 -#: 81f0498b175a421da02ae969416b916f -msgid "Users with the :attr:`account deletion permission ` are allowed to delete their own account." -msgstr "" - -#: ../features.rst:133 -#: 2d5535359306451d834db61758cbe926 -msgid "Users that also have the :attr:`user management permission ` are also allowed to delete other users accounts." -msgstr "" - -#: ../features.rst:138 -#: f6e498c86dbd4e17b624c321fecf54d1 -msgid "Password recovery" -msgstr "" - -#: ../features.rst:145 -#: 61f35c72876242e8bf43e9eb0d75995b -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:147 -#: d4555d16bbe249b7979cbb34c57f7055 -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:151 -#: 297ffc93f03d4d43b6c47646eca19f13 -msgid "Check that password recovery is disabled on locked accounts." -msgstr "" - -#: ../features.rst:156 -#: 2ddc03cfab5c4c31881424d5944c493c -msgid "Password reset" -msgstr "" - -#: ../features.rst:158 -#: 9049c1cbc2f84041b403c388f29ad854 -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:164 -#: 53795873eea346f2b2daab2be04d8fd3 -msgid "Password initialization" -msgstr "" - -#: ../features.rst:166 -#: 22da6b0b0f9a477098237bf75b5ffc4b -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:173 -#: 2426c9af237c4b3ea3edf39378ee2058 -msgid "Password compromission check" -msgstr "" - -#: ../features.rst:175 -#: a154a903f2f0465da6ba9cb8444bbdac -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:180 -#: 91a7eae46075432fab0f6529e0ead921 -msgid "Internationalization" -msgstr "" - -#: ../features.rst:182 -#: 3793ed670fe140729604efbd86ea8865 -msgid "Translation state" -msgstr "" - -#: ../features.rst:187 -#: a482d12153c5462eab6e6ef518bb541e -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:193 -#: 64f68b0347c643d28ca265fa7577c95c -msgid "Lightweight" -msgstr "" - -#: ../features.rst:195 -#: c3559f4e91a74373b92d046a875eac79 -msgid "The web interface is lightweight, so everything should load quickly. There is a few Javascript here and there to smooth the experience, but no Javascript at all is needed to use Canaille." -msgstr "" - -#: ../features.rst:199 -#: 21b1a787a1074ddc8ae6fe66545a181a -msgid "Customizable" -msgstr "" - -#: ../features.rst:201 -#: d7748aa3f91b475ebed5edb2d35f759b -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:204 -#: 5fe5c111cd0f4d3ca2a8e7ca01ef43c6 -msgid "If you need more you can also use a :attr:`custom theme `." -msgstr "" - -#: ../features.rst:209 -#: 6fb933f34307459880de26e3d0f76c6a -msgid "OpenID Connect" -msgstr "" - -#: ../features.rst:211 -#: bd2005e331d64c979880b847a8fa5a6f -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:215 -#: 3235a6f44bd444d38fd7581ffdeadd6a -msgid "Consent management" -msgstr "" - -#: ../features.rst:223 -#: 168e125d08c041a79098cb1bfa3d13e9 -msgid "Users can give their consent to application requesting access to their personal information, and then revoke those consent at their will." -msgstr "" - -#: ../features.rst:227 -#: aa606f0a64b84ebdb4e29bee96f4b414 -msgid "Application management" -msgstr "" - -#: ../features.rst:229 -#: eaa719c553584eb6954da4d45778454b -msgid "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." -msgstr "" - -#: ../features.rst:231 -#: 9256e6eaf7174fa8a4e7347cd03b6ac8 -msgid "In some cases, it might be useful to avoid the consent page for some trusted applications, so clients can be pre-consented." -msgstr "" - -#: ../features.rst:234 -#: 3faf6b2661f3434bbca8b2aaa9b7d6d7 -msgid "Discovery" -msgstr "" - -#: ../features.rst:236 -#: e935be55bc964a48a582e36f9791c15a -msgid "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-configure themselves." -msgstr "" - -#: ../features.rst:239 -#: 695ba3a2a77640908c9f4d2f02a4f8b2 -msgid "Dynamic Client Registration" -msgstr "" - -#: ../features.rst:241 -#: 43c52faa27c84af18f3ada9bffe6d19d -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:246 -#: f8ce532f519349f48429c1b170cdb484 -msgid "Command Line Interface" -msgstr "" - -#: ../features.rst:248 -#: 2f40208e5c1347a48420317d62aaa74d -msgid "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help administrators in hosting and management." -msgstr "" - -#: ../features.rst:250 -#: f29e92c5ddaf47ce9483715190c894bb -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:253 -#: 22885696b0da40219dbbabf940320082 -msgid "There are also tools to :ref:`fill your database ` with random objects, for tests purpose for instance." -msgstr "" - -#: ../features.rst:258 -#: a094d21d84254528a930c248f4a593b4 -msgid "Backends" -msgstr "" - -#: ../features.rst:260 -#: 7fb43b7df88a4baea1dfda09d24dffcd -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:264 -#: df7ac02ac2a945069ee389b77b9b5a6b -msgid "Miscellaneous" -msgstr "" - -#: ../features.rst:269 -#: bf688d8476c643a68687292de9336a89 -msgid "Logging" -msgstr "" - -#: ../features.rst:271 -#: 38d1832a542446019b042e1f939b488f -msgid "Canaille writes :attr:`logs ` for every important event happening, to help administrators understand what is going on and debug funky situations." -msgstr "" - -#: ../features.rst:273 -#: 42a168890026463880fcc0464d7e681a -msgid "The following security events are logged with the tag [SECURITY] for easy retrieval :" -msgstr "" - -#: ../features.rst:275 -#: 7876d69b9324404c8b5d6b8211f22a38 -msgid "Authentication attempt" -msgstr "" - -#: ../features.rst:276 -#: 5fc6499706b74b38a3bcc4d328a4267f -msgid "Password update" -msgstr "" - -#: ../features.rst:277 -#: 59baea279a0444c7a03276f643a9a546 -msgid "Email update" -msgstr "" - -#: ../features.rst:278 -#: 316b8f1a64d0492a89a3a3165985ad5b -msgid "Forgotten password mail sent to user" -msgstr "" - -#: ../features.rst:279 -#: d7b3795158de483783e4c7ee82348b46 -msgid "Token emission" -msgstr "" - -#: ../features.rst:280 -#: 5e4175d55093488c8125b636c395129c -msgid "Token refresh" -msgstr "" - -#: ../features.rst:281 -#: 6dbf275ffef842c1bc6f3bb0989af951 -msgid "Token revokation" -msgstr "" - -#: ../features.rst:282 -#: aefb033cc70946629968cda2c5659143 -msgid "New consent given for client application" -msgstr "" - -#: ../features.rst:283 -#: bdd21f6ee436441db570665db0c47242 -msgid "Consent revokation" -msgstr "" - -#: ../features.rst:288 -#: 1665d88722ec4f1bb7686957622bb5d1 -msgid "A tool for your development and tests" -msgstr "" - -#: ../features.rst:290 -#: 1bdff890d0da4b7aa3b3df7a1270068e -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:292 -#: 466b386bf92b499696f22cf6f9889b22 -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:294 -#: 02bd7bfe0c194ca2a4ed5b305d64174d -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:297 -#: e0c00b45559342139b38b56d45c12df5 -msgid "Roadmap" -msgstr "" - -#: ../features.rst:300 -#: 889eb75d6c2f4c2fb2491c38b16c2cd5 -msgid "Bêta version" -msgstr "" - -#: ../features.rst:302 -#: e4634fcad59b43549f2ac5d023fe25da -msgid "To go out of the current Alpha version we want to achieve the following tasks:" -msgstr "" - -#: ../features.rst:304 -#: c24037d78a274d81a945064251654805 -msgid ":issue:`Configuration validation using pydantic <138>`" -msgstr "" - -#: ../features.rst:307 -#: 1a8941a892c041c98e2bdfe731944341 -msgid "Stable version" -msgstr "" - -#: ../features.rst:309 -#: 8bcca1796eb34ea39311fadde971e5df -msgid "Before we push Canaille in stable version we want to achieve the following tasks:" -msgstr "" - -#: ../features.rst:312 -#: 429e891c2c4a41d9882840e8901807c2 -msgid "Security" -msgstr "" - -#: ../features.rst:314 -#: 99812b3d9e054b92829a1d06207fd56f -msgid ":issue:`Password hashing configuration <175>`" -msgstr "" - -#: ../features.rst:315 -#: 5fc38e63289c4376aafefbdae1d08ad1 -msgid ":issue:`Authentication logging policy <177>`" -msgstr "" - -#: ../features.rst:316 -#: 172f15d0a07a475495af94228857aa19 -msgid ":issue:`Intruder lockout <173>`" -msgstr "" - -#: ../features.rst:317 -#: 7413890a044d4860a69e304c463b2075 -msgid ":issue:`Password expiry policy <176>`" -msgstr "" - -#: ../features.rst:318 -#: 1af8ce062a2f49dea0719295031dac36 -msgid ":issue:`Multi-factor authentication: Email <47>`" -msgstr "" - -#: ../features.rst:319 -#: 559b8aac8ec1464e9de0fc12d7cef1e3 -msgid ":issue:`Multi-factor authentication: SMS <47>`" -msgstr "" - -#: ../features.rst:320 -#: 0fa5c83275464d2daef9a61ff962068f -msgid ":issue:`Multi-factor authentication: OTP <47>`" -msgstr "" - -#: ../features.rst:323 -#: 80a148a15619443f96604259f8ce7936 -msgid "Packaging" -msgstr "" - -#: ../features.rst:325 -#: 783c51aa863f4dc694f5e51d8a364d62 -msgid ":issue:`Nix package <190>`" -msgstr "" - -#: ../features.rst:326 -#: 22df588b38954d95ba47de753196bbbd -msgid ":issue:`Docker / OCI package <59>`" -msgstr "" - -#: ../features.rst:329 -#: 4e6d78ec6bcf49e3aebeae146bd874b1 -msgid "And beyond" -msgstr "" - -#: ../features.rst:331 -#: 851c474a5f55472bb69e0980e85d2c53 -msgid ":issue:`OpenID Connect certification <182>`" -msgstr "" - -#: ../features.rst:332 -#: ea230b81c9854692a1fe56d26fe831ba -msgid ":issue:`SCIM support <116>`" -msgstr "" diff --git a/doc/gettext/index.pot b/doc/gettext/index.pot deleted file mode 100644 index 0e40d216..00000000 --- a/doc/gettext/index.pot +++ /dev/null @@ -1,97 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../index.rst:15 -#: 0cf850c7764c4ea080c90ebee6f4533c -msgid "Lightweight Identity and Authorization Management" -msgstr "" - -#: ../index.rst:19 -#: 1338b157cf784cd889fa4ace488ddb96 -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:27 -#: 16e9d4e4d06842c5b1a23c2b08331358 -msgid "Profile management" -msgstr "" - -#: ../index.rst:31 -#: 4b479564eb7c4aabb771ee7b40f0e08e -msgid "User profile and groups management, Basic permissions" -msgstr "" - -#: ../index.rst:34 -#: 5b1feeaf9e0f4710921b997bc1abd3d5 -msgid "User authentication" -msgstr "" - -#: ../index.rst:38 -#: 1082fe3d9fff4d129db9a0980d26e226 -msgid "Authentication, registration, email confirmation, \"I forgot my password\" emails" -msgstr "" - -#: ../index.rst:40 -#: 995f722c196141daa60e0e933ed089bd -msgid "SSO" -msgstr "" - -#: ../index.rst:44 -#: 55d4a30004944c9cb61e5e5884f5969c -msgid "OpenID Connect identity provider" -msgstr "" - -#: ../index.rst:46 -#: 9403ad26bf834e9db41bde03bf2d8702 -msgid "Multi-database support" -msgstr "" - -#: ../index.rst:50 -#: ee69524e6e864eb1ae021d3e02542d16 -msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" -msgstr "" - -#: ../index.rst:52 -#: c81e71449a65404babd46d6c4379f245 -msgid "Customization" -msgstr "" - -#: ../index.rst:56 -#: 7022a73e8835420f9cdd806cf126995b -msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" -msgstr "" - -#: ../index.rst:58 -#: d30dd41a85c44eab8c406674cb8974f8 -msgid "Developers friendliness" -msgstr "" - -#: ../index.rst:62 -#: ed2d7b64d2404396aaf1de85663efb21 -msgid "Canaille can easily fit in your unit tests suite or in your Continuous Integration." -msgstr "" - -#: ../index.rst:66 -#: d943209ad3bc4482a00c93b31a4217e6 -msgid ":doc:`Full feature list `" -msgstr "" - -#: ../index.rst:70 -#: 1633f4ed1d4a4549be7889af72a41c8f -msgid "Documentation" -msgstr "" diff --git a/doc/gettext/locales.pot b/doc/gettext/locales.pot deleted file mode 100644 index 362bfee7..00000000 --- a/doc/gettext/locales.pot +++ /dev/null @@ -1,52 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../locales/readme.rst:1 -#: 02ccf5595dd84a2eae281bdeb632d803 -msgid "Documentation translation Translations are done with `Weblate `_." -msgstr "" - -#: ../locales/readme.rst:4 -#: a797e59e891644e8b6bd76f7a07b6957 -msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." -msgstr "" - -#: ../locales/readme.rst:7 -#: 2923c202b26a4670a7dea6bfd9d415c4 -msgid "Message extraction" -msgstr "" - -#: ../locales/readme.rst:9 -#: 2fcfe9cf337b488aafe381e9a157855f -msgid "After you have edited translatable strings, you should extract the messages with:" -msgstr "" - -#: ../locales/readme.rst:16 -#: 60e70e7f68a745caa90c25e0c6f24cef -msgid "Language addition" -msgstr "" - -#: ../locales/readme.rst:18 -#: ba639ac789b04cea9fdf415793aecd02 -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 "" - -#: ../locales/readme.rst:25 -#: 2dcd8880d66e48ef84f6aa8ed559dcca -msgid "Build the documentation in another language" -msgstr "" diff --git a/doc/gettext/locales/readme.pot b/doc/gettext/locales/readme.pot deleted file mode 100644 index a7972bd6..00000000 --- a/doc/gettext/locales/readme.pot +++ /dev/null @@ -1,52 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../locales/readme.rst:1 -#: 02ccf5595dd84a2eae281bdeb632d803 -msgid "Documentation translation Translations are done with `Weblate `_." -msgstr "" - -#: ../locales/readme.rst:4 -#: a797e59e891644e8b6bd76f7a07b6957 -msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." -msgstr "" - -#: ../locales/readme.rst:7 -#: 2923c202b26a4670a7dea6bfd9d415c4 -msgid "Message extraction" -msgstr "" - -#: ../locales/readme.rst:9 -#: 2fcfe9cf337b488aafe381e9a157855f -msgid "After you have edited translatable strings, you should extract the messages with:" -msgstr "" - -#: ../locales/readme.rst:16 -#: 60e70e7f68a745caa90c25e0c6f24cef -msgid "Language addition" -msgstr "" - -#: ../locales/readme.rst:18 -#: ba639ac789b04cea9fdf415793aecd02 -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 "" - -#: ../locales/readme.rst:25 -#: 2dcd8880d66e48ef84f6aa8ed559dcca -msgid "Build the documentation in another language" -msgstr "" diff --git a/doc/gettext/references.pot b/doc/gettext/references.pot deleted file mode 100644 index 4a512b03..00000000 --- a/doc/gettext/references.pot +++ /dev/null @@ -1,1712 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../references/commands.rst:2 -#: 952e9de33f1146bb9c629b25406d5980 -msgid "Command Line Interface" -msgstr "" - -#: ../references/commands.rst:4 -#: 194fc88dbebc4a6083904a2cd0fdece1 -msgid "Canaille provide several commands to help administrator manage their data." -msgstr "" - -#: ../references/commands.rst:6 -#: af944605783345eb930f7e39d8cb2206 -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 -#: da3dade2207449f8ab1f5c8cd6df0b59 -msgid "Test the configuration file." -msgstr "" - -#: ../../canaille check:1 -#: 107826c804894ffbaf6be5108735e8bd -msgid "Attempt to reach the database and the SMTP server with the provided credentials." -msgstr "" - -#: ../../canaille clean:1 -#: a75c02957679475c88a5bf48c43b54df -msgid "Remove expired tokens and authorization codes." -msgstr "" - -#: ../../canaille install:1 -#: 226b4c7446b04bc4826250bfa6d83978 -msgid "Installs canaille elements from the configuration." -msgstr "" - -#: ../../canaille install:1 -#: 87ed406dcb7b4335b8d4cd75a68b65dd -msgid "For instance, depending on the configuration, this can generate OIDC keys or install LDAP schemas." -msgstr "" - -#: ../../canaille populate:1 -#: d3168620868447108806d14d13dd47c6 -msgid "Populate the database with generated random data." -msgstr "" - -#: ../references/commands.rst:0 -#: e7127155eec846ed9792494143cca743 -#: 53e6c68a54434bf587a1dca8b81d3b74 -#: a42086af15bf4297904cf39c2b4df7c7 -#: c043029fc2fb47fbb2bd318d1a4b08ca -#: 8a09860a6b1c4ad8b08bb9fb44e6982b -#: 396565c1408a45bf9880d2e4d306d416 -#: e657b473cd7743f9bfc6aeef3aac4935 -#: 082b69dc7add4bddb93489557fa9a6a2 -#: ba9576b3bf70496fb522695af86f0169 -#: 032f8d3e26dc4bbd9d4660836afb1f75 -#: fe2abe123e9e41bf996d8f88ce42df12 -#: 98063029b2d444d69399c4c4fb1266bb -#: c67517b916f44f7689513efa4606b20d -#: a3aaff84e9ca4ccba1f7f50ee8508b1c -#: e69fc539c5df4426894fd9203c84f432 -#: f354375bb4e242d6818715ff5956b716 -#: 0e2c24d22a3a4ee288c1c3fc86808d61 -#: ca9251891c7e45109894c356eb0f4a00 -#: ea573076e79447deb9b69c44f0b08970 -#: cb20ee676a1748ddadbe90a97f25ceba -msgid "Options" -msgstr "" - -#: ../../canaille populate:1 -#: 3b6d5755e8de425b91874a9cf6018dca -msgid "Number of items to create" -msgstr "" - -#: ../../canaille populate groups:1 -#: 859c9d120bba4152b20f456cd307473d -msgid "Populate the database with generated random groups." -msgstr "" - -#: ../../canaille populate groups:1 -#: cd243a1399bb4a3f8ea0704869d34375 -msgid "The maximum number of users that will randomly be affected in the group" -msgstr "" - -#: ../../canaille populate users:1 -#: 7670817be64a430aadf12b14d6ffc338 -msgid "Populate the database with generated random users." -msgstr "" - -#: ../../canaille get:1 -#: 459ab849c8d748c498f5a73cbcae971b -msgid "Read information about models." -msgstr "" - -#: ../../canaille get:1 -#: 8805aa3801d74e04978bde21d18ab711 -msgid "Options can be used to filter models::" -msgstr "" - -#: ../../canaille get:1 -#: 8cd027c62978471494b3b89bfa9bdcd4 -msgid "Displays the matching models in JSON format in the standard output." -msgstr "" - -#: ../../canaille get authorizationcode:1 -#: e4374f3cf425474197f3c4b15912e986 -msgid "Search for authorizationcodes and display the matching models as JSON." -msgstr "" - -#: ../../canaille get client:1 -#: 1c20673de33e4126adcba9bccd53285b -msgid "Search for clients and display the matching models as JSON." -msgstr "" - -#: ../../canaille get consent:1 -#: f66367e5fa9d42d9b3bdc8dcadb54f71 -msgid "Search for consents and display the matching models as JSON." -msgstr "" - -#: ../../canaille get group:1 -#: abf63bec613349b59c927bd749a6e121 -msgid "Search for groups and display the matching models as JSON." -msgstr "" - -#: ../../canaille get token:1 -#: b974b4eb0d394694b5faae2a0c04f38a -msgid "Search for tokens and display the matching models as JSON." -msgstr "" - -#: ../../canaille get user:1 -#: bb9a27c5a07f42908658a281836ff323 -msgid "Search for users and display the matching models as JSON." -msgstr "" - -#: ../../canaille set:1 -#: fb364298ebb14aed9d991b46d2f69e26 -msgid "Update models." -msgstr "" - -#: ../../canaille set:1 -#: 45f0840d682f42e0b83984f17e352b6e -msgid "The command takes an model ID and edit one or several attributes::" -msgstr "" - -#: ../../canaille set:1 -#: 1fbb909df2f44fb8b6a50695ce0e782e -msgid "Displays the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille set authorizationcode:1 -#: 52fee42193e14ca0bd1803ad566d909b -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 -#: be7a57837f08444da95b3fa3ad885966 -#: 5261952836ed436ab47a4342386bf1c2 -msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" -msgstr "" - -#: ../references/commands.rst:0 -#: d563c42b2df141478656723031367503 -#: 6c67221152cc4edf9830b2460f20959f -#: bf627fa413024a309608bde86595a56a -#: e18a29eaecc941aeacc574e5cf09d18a -#: a673745e74254db99f2005aaf7f94071 -#: 4e28ecd386fd453ca21742afb29a2d7f -#: 08bc45830f29458d80fcb6116855abdb -#: 6e2726cc252a49d8bf7c0ac7dd9e5edc -#: d2733aa168284d6d9af70ac1b1605e2d -#: 5886f8e598e74ad5b102a9143d68218c -#: 95c785769ca14c3b9317997071900fbc -#: 70b189a9f8ab4a29801e20dcfdfea66f -msgid "Arguments" -msgstr "" - -#: ../../canaille delete authorizationcode:1 -#: ../../canaille delete client:1 -#: ../../canaille delete consent:1 -#: ../../canaille delete group:1 -#: ../../canaille delete token:1 -#: ../../canaille delete user:1 -#: ../../canaille set authorizationcode:1 -#: ../../canaille set client:1 -#: ../../canaille set consent:1 -#: ../../canaille set group:1 -#: ../../canaille set token:1 -#: ../../canaille set user:1 -#: 1f9548e4636448588b046b89b13f06fa -#: 7498b2d09e9e4a60be65295d16a2a1b2 -#: 885dbff91b984704aaea33821b4886e0 -#: 56949230a767406baa8c3012598ad874 -#: dff59d31ec68436c8ea934fb4552d92e -#: 8a56d543cfad4505b73ceea0a3653206 -#: fe4ce93cffc4483688d43a05aeab42c8 -#: a44fcccdfd8b4aaf8d246598391965ca -#: 82b9d081f97b4256bb060e62306dfce3 -#: fd1b9c6fb27343c7bf2ea1f2be5b193a -#: 14277de1064f428e87212628d366a212 -#: ad6cdeab44c64cf4bc87bbbe0c5e3a83 -msgid "Required argument" -msgstr "" - -#: ../../canaille set client:1 -#: a109d961bdbe41b481db9ee1add815df -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 -#: f3f79ebe2f674e4bb49f075096b5912f -#: 24749d9fb8e34ed793cdd18066897e64 -msgid "IDENTIFIER should be a client id or client_id" -msgstr "" - -#: ../../canaille set consent:1 -#: f3e30b461fef4b0d90cd10eedc0fa6c1 -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 -#: aac283fa3c174e55977327d4bc1dda14 -#: f5c31a271cf147fdb38b9c051d7c1c58 -msgid "IDENTIFIER should be a consent id or consent_id" -msgstr "" - -#: ../../canaille set group:1 -#: 406840fc8dd84d029b49ecf2b9b3700e -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 -#: 05ab1dbdf30947ef983a983cce57e09b -#: 989cc201be1c47aaaee1b0207becb31f -msgid "IDENTIFIER should be a group id or display_name" -msgstr "" - -#: ../../canaille set token:1 -#: 623a2682695c4ed3840eda6790dd89b8 -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 -#: 968c3abd396a4b32ab3d264406a29ab0 -#: 617d8bdf4b934db0b05284196d21fc1b -msgid "IDENTIFIER should be a token id or token_id" -msgstr "" - -#: ../../canaille set user:1 -#: c461b718f10d4f74af31074086fe33d4 -msgid "Update a user and display the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille delete user:1 -#: ../../canaille set user:1 -#: 6a3dcdb5ec744db69979ea803522f613 -#: f1f1d1b029644f529c7691615b5316c3 -msgid "IDENTIFIER should be a user id or user_name" -msgstr "" - -#: ../../canaille create:1 -#: dea54ad432f64871887f81e03116d3be -msgid "Create models." -msgstr "" - -#: ../../canaille create:1 -#: 3a821969460649af99c84c9963924e3c -msgid "The model attributes can be passed as command options::" -msgstr "" - -#: ../../canaille create:1 -#: f437609088d74a1db4e7f895990fe794 -msgid "Displays the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create authorizationcode:1 -#: e8b4745d5c7d4ef895ba1686b9612132 -msgid "Create a new authorizationcode and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create client:1 -#: f65cec57e4e3459f809a8b5b2d1671c0 -msgid "Create a new client and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create consent:1 -#: 9e42b40acaa14367af9e2f63eff68adc -msgid "Create a new consent and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create group:1 -#: af50ef69d61c4733a9f4c544b1501349 -msgid "Create a new group and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create token:1 -#: 818461fc081a4f158dbca7303aa71193 -msgid "Create a new token and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create user:1 -#: 418c85b7a33a40da88d914c0801d419d -msgid "Create a new user and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille delete:1 -#: 917309f374fe4e6b9ad7960e932116d5 -msgid "Delete models." -msgstr "" - -#: ../../canaille delete:1 -#: 57d37b3ed7de43a28e08cde8eb20fde9 -msgid "The command takes a model ID and deletes it::" -msgstr "" - -#: ../../canaille delete authorizationcode:1 -#: 1a572edd3e66418ebad7a8d9f9e3eef9 -msgid "Delete a authorizationcode." -msgstr "" - -#: ../../canaille delete client:1 -#: 9815eae4699d46fea1d4445e29e46e25 -msgid "Delete a client." -msgstr "" - -#: ../../canaille delete consent:1 -#: 7df50d8fbec94e33874223bcae810618 -msgid "Delete a consent." -msgstr "" - -#: ../../canaille delete group:1 -#: 58b8c923bf784729b69540c863d69ee5 -msgid "Delete a group." -msgstr "" - -#: ../../canaille delete token:1 -#: 53e0d81e98484c4ab1f10c3e2b36763b -msgid "Delete a token." -msgstr "" - -#: ../../canaille delete user:1 -#: f854b40ae54045bd89e19a03173a8a57 -msgid "Delete a user." -msgstr "" - -#: ../references/configuration.rst:2 -#: f352927b3e674164b4ee528d290e1ba3 -msgid "Configuration" -msgstr "" - -#: ../references/configuration.rst:5 -#: 449fdd3866354144a1df0b0541208b76 -msgid "Load the configuration" -msgstr "" - -#: ../references/configuration.rst:7 -#: 1e797371bae94f50b7037acaf549b6fa -msgid "Canaille can be configured either by a environment variables, environment file, or by a configuration file." -msgstr "" - -#: ../references/configuration.rst:10 -#: 0377b9dd81fd41c79cdf3f8a8245de59 -msgid "Configuration file" -msgstr "" - -#: ../references/configuration.rst:12 -#: 9023a7e764a54abda473435fb2c67556 -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:11 -#: ../references/configuration.rst:14 -#: ../references/configuration.rst:85 -#: 275d6238f6de4292bc8fa82eace110b7 -#: 954a70d4151143f4af9f3e509533dd69 -#: ff44591b60384f37b0094fbe5883142d -msgid "config.toml" -msgstr "" - -#: ../references/configuration.rst:26 -#: 7ffbc024b9f44c4092065cff332026b3 -msgid "You can have a look at the :ref:`example file ` for inspiration." -msgstr "" - -#: ../references/configuration.rst:29 -#: be2150038b8a47e0971dd82518455d15 -msgid "Environment variables" -msgstr "" - -#: ../references/configuration.rst:31 -#: 7b656666c8b64597b79511e46faa57a1 -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:36 -#: 0379beff48534aa59770a545033aedf7 -msgid "For environment vars, the separator between sections and variables is a double underscore: ``__``. For instance, the ``NAME`` var in the ``CANAILLE`` section shown above is ``CANAILLE__NAME``." -msgstr "" - -#: ../references/configuration.rst:40 -#: 2505d4af33c547ef93f09be4282e8aec -msgid "Environment file" -msgstr "" - -#: ../references/configuration.rst:42 -#: a8a58f82f61b4fc0b28434e743ed6de6 -msgid "Any environment variable can also be written in a ``.env``, and will be read if present." -msgstr "" - -#: ../references/configuration.rst:44 -#: de874bfbe8b74294a9418700556580ec -msgid ".env" -msgstr "" - -#: ../references/configuration.rst:62 -#: 66e3119e3a3649b6829112cc1d41e11b -msgid "Parameters" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:1 -#: 5b109da5244d4dfbabb218e4c6bc5d47 -msgid "The top-level namespace contains holds the configuration settings unrelated to Canaille." -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:4 -#: 0cf177f44bba4097827a16b1a2f1d6c0 -msgid "The configuration paramateres from the following libraries can be used:" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:6 -#: d6bc590bfed047e8b86af354be80fe03 -msgid ":doc:`Flask `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:7 -#: 855b6f96105a43b094b402a616bbae30 -msgid ":doc:`Flask-WTF `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:8 -#: 3c35731764054bff9285d6bfb79a7785 -msgid ":doc:`Flask-Babel `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:9 -#: ac4465974e9f44c7b879303fdb40fc4f -msgid ":doc:`Authlib `" -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: a2761715a159492ca4c5180c65189c58 -msgid "The Flask :external:py:data:`DEBUG` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: 5b40ae56684347e0a6f369b4f2896691 -msgid "This enables debug options." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: ab54e5fb83cc40c6a1867ec701bb051b -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 -#: c66f04b99f7649b49ad45b30d2e25aa9 -msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: d13d3b6ef4c0498bbfbe74ede138249f -msgid "This sets the url scheme by which canaille will be served." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: d5dcfdec96404860acab981f826562ba -msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: 7e8c4487ab1446039177843b912da108 -msgid "You MUST change this." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 7d62d0ae8c664a048ef164ff8efef75e -msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: 965334877d854795a264b6ceedcac212 -msgid "This sets domain name on which canaille will be served." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:1 -#: 0a4a605e6a1940fab498c34200639e5c -msgid "The settings from the ``CANAILLE`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:3 -#: 5a95511f181a4890bb8b9083a862ccd3 -msgid "Those are all the configuration parameters that controls the behavior of Canaille." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 5d0ddaed2d734874b3e0a61dfda14559 -msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 539d67c478024eda83b002c329156ba3 -msgid "The ACL name can be freely chosen. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: 8703a060664b4b93b202ae8a55c9ab90 -msgid "Administration email contact." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 8956b1369e7546a39b76b74940e3fcce -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 -#: 8670b9d62d284afd847234da2ee795ae -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:4 -#: 0eda2a2a767649dc980c8e065d9169a6 -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.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: f4b1659c97c9420c9e67025ec44f290d -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 -#: b2576eba8d9d41bfadecc6d10f66cb83 -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 -#: 57f195e48f3d4105b171b26b22801fe0 -msgid "If :py:data:`True`, then users can freely create an account at this instance." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: 1fe396b30d184f76ab35cf310d689ba8 -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 -#: 8c747e3998e148b397f3b3afaedfc251 -msgid "You favicon." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: c71c1dc15e314542924691141e9ceba0 -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 -#: 91fdf12a588442899a9e93f1a13edbb2 -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:5 -#: 7f6526364ecf44d0a6ea4f83b986cd99 -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 -#: 64629144df814d019eed25c5b1130301 -msgid "Accelerates webpages loading with asynchronous requests." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: 239e3d72e0aa42c996215debaa36a92f -msgid "The validity duration of registration invitations, in seconds." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: 41669e4af29b45ed9dab09dabe5858aa -msgid "Defaults to 2 days." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 4c4ae3815e5542dc995f90e1f33a79f3 -msgid "Enables Javascript to smooth the user experience." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 176ff367a4bc455c89f33b252c723ac9 -msgid "If a language code is set, it will be used for every user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: 63976f2340fd417f94c5efc2f31768db -msgid "If unset, the language is guessed according to the users browser." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: cbef5d40655e4b309a1dbce7f4b59cc6 -msgid "Configures the logging output using the python logging configuration format:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: e7b83b790b52476891f49f70cc2c3d03 -msgid "if :py:data:`None`, everything is logged in the standard error output the log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:`~logging.INFO`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 52803036df304a2d91104ff033694988 -msgid "if this is a :class:`dict`, it is passed to :func:`logging.config.dictConfig`:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 3ba83792d3ec409694c435cbe06ddab2 -msgid "if this is a :class:`str`, it is expected to be a file path that will be passed to :func:`logging.config.fileConfig`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 -#: 289ee5ab24bd4ef68b17b81cbaa7c233 -msgid "For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: c7e469fe99bb4b71b0328349e72f0a61 -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 -#: 91a871ab33f4451a9caf95ed0da63833 -msgid "Maximum length for user password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 1c25d71de99d4d46aa496c9df6a08c33 -msgid "There is a technical limit with passlib used by sql database of 4096 characters. If the value entered is 0 or None, or greater than 4096, then 4096 will be retained." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: c8c3307fa58e4c45afb5ac1e24626972 -msgid "Minimum length for user password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 4d73f4bca2984046b3efb3ba322cdf34 -msgid "It is possible not to set a minimum, by entering None or 0." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: 8452d4d220b24f408a3418bbf451c672 -msgid "Your organization name." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: 458bb630ef124d75ba2bbce3b58c4782 -msgid "Used for display purpose." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 7e49f44fa7ad43f6924d762afcb43cf6 -msgid "Have i been pwned api url for compromission checks." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 6daac624f580441ea0f641df0e7d18ad -msgid "A `Sentry `_ DSN to collect the exceptions." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: f7d352de8d494044a75175ce2c34be3e -msgid "This is useful for tracking errors in test and production environments." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 4918c3baa9ff4a7ea370ae99df22f450 -msgid "The settings related to SMTP and mail configuration." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 35153331cf064d90b4d8051c4363a935 -msgid "If unset, mail-related features like password recovery won't be enabled." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: 5df367ed5d3f4a53b537e6c50b677c3b -msgid "The name of a theme in the 'theme' directory, or a path to a theme." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 -#: 34d6f2a3091c4a7cb5099e15bb92ca5f -msgid "Defaults to ``default``. Theming is done with `flask-themer `_." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 7be8c0ebcee24c42bad6e4a1abecbaad -msgid "The timezone in which datetimes will be displayed to the users (e.g. ``CEST``)." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: 9f062ba2827b4837971d4c34ff74a252 -msgid "If unset, the server timezone will be used." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:1 -#: da9f430a60ed4b5e871bae9218bc2b1b -msgid "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, mail related features will be disabled, such as mail verification or password recovery emails." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:5 -#: e0bad81478534132be5d8de19ba8c05e -msgid "By default, Canaille will try to send mails from localhost without authentication." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 6d0e7e6a931c4f568695d714da824c78 -msgid "The sender for Canaille mails." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: 083e072e2ef24f02955bf40dca897f7d -msgid "Some mail provider might require a valid sender address." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: bf8d6260946747cd8d9db422a2977980 -msgid "The SMTP host." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 432b9e9f148c4b79a07af984139b8b90 -msgid "The SMTP login." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: 42fab7de34b9418bb1422c74e5f9af1f -msgid "The SMTP password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 42d65ebe36c2450f9532a587ea0a8de2 -msgid "The SMTP port." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: 208db0a1482b42b29a2f582ff3c308d4 -msgid "Whether to use SSL to connect to the SMTP server." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: aebe44192def402f9c370ac7dd2386f1 -msgid "Whether to use TLS to connect to the SMTP server." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:1 -#: 04870aa4e9c046219085be74456ef180 -msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:3 -#: beaf3f3f98b14cf9862ee2505dfa97db -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 -#: ebf8c5195c7d413aa4328754379e55df -msgid ":attr:`FILTER` can be:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: d566cef633ee456c9fad89396dea8224 -msgid ":py:data:`None`, in which case all the users will match this access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: a9b6fbe00f7a45b6af6430d5277888a1 -msgid "a mapping where keys are user attributes name and the values those user attribute values. All the values must be matched for the user to be part of the access control." -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: eb050efec86e47a7b93376503248375a -msgid "a list of those mappings. If a user values match at least one mapping, then the user will be part of the access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 5c41147889134281bfd429b0c09aaa92 -msgid "Here are some examples::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: e847d17ac0da4f4bb5752a6edf12611d -msgid "A list of :class:`Permission` users in the access control will be able to manage. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: 1f9de4fcf01040369e7a21aadfa1118e -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 -#: ab6304cad7d147b0b839335c84652984 -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 -#: fcf4d41879b3400ba4c61ca8eeaec499 -msgid "The permissions that can be assigned to users." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:3 -#: 3a9f55ac1eca45e5bbb75a3c3bd3e84c -msgid "The permissions are intended to be used in :attr:`ACLSettings `." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: d5ef98541f8b4e1588bda2eeeaacbc5d -msgid "Allows users to delete their account." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: de8f02efc06246d1bc91e9d34c78e259 -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 -#: a2816996936a4eb292c7d9a510f41355 -msgid "Allows users to edit their own profile." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: de9bf735cb24406fba3aad34f3f87c7b -msgid "Allows users to take the identity of another user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: ee8abccc752e4019a4bf8be9c1da1198 -msgid "Allows group edition and creation." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 5e3b60a516ab41278a1a3818393050ee -msgid "Allows OpenID Connect client managements." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: b71ed1ac778a4c0eb6a0e92043fac7d4 -msgid "Allows other users management." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: 2b580919de714c50beeea005d433c658 -msgid "Allows OpenID Connect authentication." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:1 -#: 211693e2da0f432bb430898384f8a38f -msgid "OpenID Connect settings." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:3 -#: 399b3ba31a2a4ab593437d5ff09b3704 -msgid "Belong in the ``CANAILLE_OIDC`` namespace." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 078d27ab0c25471ba020cd50959953e3 -msgid "Whether a token is needed for the RFC7591 dynamical client registration." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 982ecc53005e44c3af1329467f67b67c -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 -#: 8bb7098d11e5459fb0fb10fcfd92cb0e -msgid "A list of tokens that can be used for dynamic client registration." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: cebac57da84f472b9724ea2b19a88b8b -msgid "JSON Web Token settings." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: 36dd306abec64312ba0c875fc801e5e0 -msgid "Force the nonce exchange during the authentication flows." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: 6221bc8bd6ba40b8868633965a26f252 -msgid "This adds security but may not be supported by all clients." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:1 -#: 1766de0ffc354f91a26f1694fc6071f0 -msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:3 -#: 009bf269cd6b4ae09467ace27f3fb76d -msgid "You can generate a RSA keypair with::" -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: a08072b1d25443b1b844772f4ff7c190 -msgid "The key algorithm." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: b954e7767c754e6baeab30f362326666 -msgid "The time the JWT will be valid, in seconds." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: c9e63d5813b04b92bd8a4a0b585b33a5 -msgid "The URI of the identity provider." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 63966bfbb60749b884bceb1bc350a50f -msgid "The key type." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 083732255e954482a089c695f47ef978 -msgid "The private key." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 8cadbc77074442fdb0cc24103fb67271 -#: c0c5f1e3e26f412f83daf672905d3fdb -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 -#: 9fcee133520d489783c254d774af74a9 -msgid "The public key." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:1 -#: b300de02031f4663bd151e4cdcbc617a -msgid "Mapping between the user model and the JWT fields." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:3 -#: 8dd4c6823ac84e149a02efe65e217b33 -msgid "Fields are evaluated with jinja. A ``user`` var is available." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:1 -#: 970f05f5fcb04f4f87ef2aa2b7c436bf -msgid "Settings related to the SQL backend." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:3 -#: d36c2f4f3c424297b123c782251ea5b1 -msgid "Belong in the ``CANAILLE_SQL`` namespace." -msgstr "" - -#: ../../docstring of canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: f7ef728d7d5c479485f07a29067bc859 -msgid "The SQL server URI. For example::" -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:1 -#: 76b7ccaf6b2c4331b5bbd89dab99e2ef -msgid "Settings related to the LDAP backend." -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:3 -#: b7c638b46d6f48e2a582cd52a429e21b -msgid "Belong in the ``CANAILLE_LDAP`` namespace." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: f58def90f0ff4c6a9f0808da3b22f1f8 -msgid "The LDAP bind DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: bce683900aa34e788f1048c23cac2ebc -msgid "The LDAP bind password." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 6a505bac6a524976bb673d0a5fd63f7c -msgid "The LDAP node under which groups will be looked for and saved." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 42031d1720714c0fb5b570d03c559465 -msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 2c26c317c3c641f2bd78deff9be4a3cc -msgid "The object class to use for creating new groups." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: db3ddf6effa14ec38baebd99dc50e5b2 -msgid "The attribute to use to identify a group." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: dbb54871450e4c7e96d40454f3e29880 -msgid "The attribute to identify an object in the Group DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: c410c0b67b0043048e2063397ea4a07c -msgid "The LDAP root DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: dc829580b65647098bde180a8681398f -msgid "The LDAP connection timeout." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: bf2bc54274ec49ab9532e43f9db7dfea -msgid "The LDAP server URI." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: 8417a756a71f4d57b9179bce44c738fd -msgid "The LDAP node under which users will be looked for and saved." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: d8c7de846fd54c1683622862a57ee7cd -msgid "For instance `ou=users,dc=mydomain,dc=tld`." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 016c6da2807146d8b336efc419545973 -msgid "The object class to use for creating new users." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 14d6048df0344b1497539f9179bd28dc -msgid "Filter to match users on sign in." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: 15d58563699e4d05b4394f603a2aa7d2 -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 -#: 7dc67476e9a241959631d0cb75a01d94 -msgid "The attribute to identify an object in the User DN." -msgstr "" - -#: ../references/configuration.rst:81 -#: 9ad50ee44eed4db98c81f6750d174085 -msgid "Example file" -msgstr "" - -#: ../references/configuration.rst:83 -#: 97c604b45a2041c991b43cab19fd784d -msgid "Here is a configuration file example:" -msgstr "" - -#: ../references/index.rst:2 -#: 983008b557cf40dab35f71a21049eac4 -msgid "References" -msgstr "" - -#: ../references/models.rst:2 -#: 022e1b3cf73440848f54dcfa34e42ba7 -msgid "Data models" -msgstr "" - -#: ../references/models.rst:4 -#: d149fff6a989475a8be86c904d978f4c -msgid "This reference details the data models used by Canaille. This is mostly useful for developers." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1 -#: 89ef1d33d7924bfdb5e279d1103bbcad -#: a462c61f57f44ad08f0a8e562830af68 -msgid "Bases: :py:class:`object`" -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 -#: b3c50358d06640a7a9fe4e59e7fd9827 -msgid "The backend model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:3 -#: a930a4499fef45d1b0942fc6c1e36b56 -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 -#: 455dfc35495747599564cc0de69b6204 -msgid "The model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:3 -#: d3d24c3cf53649fa9952d0acd46baaec -msgid "It details all the common attributes shared by every models." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.created:1 -#: 0b9f08586ec4479f95610436345a2df4 -msgid "The :class:`~datetime.datetime` that the resource was added to the service provider." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:1 -#: 73ab147ab6f44612a5d639fc060bbaaf -msgid "A unique identifier for a SCIM resource as defined by the service provider. Id will be :py:data:`None` until the :meth:`~canaille.backends.models.BackendModel.save` method is called." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:5 -#: 04db3a45228d44168cbb27c89577d6dc -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 -#: 2ea5fc24d36f4c83b49bc6509fc30f36 -msgid "Returns a unique value that will be used to identify the model instance." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:4 -#: 8de478a9d8f44e5ebf9ffd959187d3e7 -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 -#: 9b5885a4658141839d61820edf411982 -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 -#: 659528401e8e404ca22250d8a132a8af -msgid "If this resource has never been modified since its initial creation, the value MUST be the same as the value of :attr:`~canaille.backends.models.Model.created`." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 -#: ../../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 -#: b0cbb8436a2e4726a04c452b6464b07c -#: a46cf872f3124dfebe8074d928294b37 -#: 490030c82e9f4ca7a39b4dd4e47c6da1 -#: 9593236b11104e0782a0ec1d2422f081 -#: c26fabc7468147da80b51e22269685ff -#: 3266b57754fd4ab3ad8752c56797ec3f -msgid "Bases: :py:class:`~canaille.backends.models.Model`" -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: b508bfbf52f549b0a2e7036942e5ae2e -msgid "User model, based on the `SCIM Group schema `_." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.display_name:1 -#: 18d85d6d4d3647f1a2ec4e540fd71f0c -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 -#: 732a62dcb7c14d6ebe0cbb87a056506b -#: eeba3149bca04af9b37b5b8a6942a31a -msgid "REQUIRED." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:1 -#: d3c1eb7c79cd4c329aa5889db10437c4 -msgid "A list of members of the Group." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:3 -#: 84f35590c5e343d794d68c66b238dc99 -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 -#: 693317bbc24b4bb38a0c34eabe8c27a6 -msgid "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password Management Extension `_ draft. Attribute description is based on SCIM and put there for information purpose. The description may not fit the current implementation in Canaille." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 -#: d512cb33bc1b4f34910c1f3d20b00415 -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 -#: a85b1f762528426fb7c866f8acff33a7 -msgid "Identifies the name of a department." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:1 -#: ccac75608a514817bc2657221c84c8d4 -msgid "The name of the user, suitable for display to end-users." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:3 -#: 12cb2626a8b8428386ab833d1a57a44c -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 -#: 1d01bb2833434fefbd8e26282f88c2b5 -msgid "Email addresses for the User." -msgstr "" - -#: ../../docstring of canaille.core.models.User.emails:3 -#: 2c83d0f48a2c4b20b11e0f59a8fd1015 -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 -#: 221bb9f4d412453e8aab759ea9b8e9b1 -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 -#: 2bc5c5485b0e472383061267c89b9843 -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 -#: 1a46356c5b514ef39560fc6bf3e37a1f -msgid "The full mailing address, formatted for display or use with a mailing label." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_address:4 -#: f52de344799e4ceeb276ed4f02955181 -msgid "This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_name:1 -#: 5c155ee534eb441fba949e3d9607c7ce -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 -#: b045a3658e1d46aaa2be9115e8412458 -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 -#: 3ac337f269234f93a9adee6541ae355f -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 -#: 63c40fd148cf4a49b7e68d521d7e6489 -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 -#: bf9ca86e1fdf4aec978ae51efe4493c3 -msgid "Check whether a password has been set for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.locality:1 -#: 0d4cf2a502c74826bf7403b6740b9982 -msgid "The city or locality component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.lock_date:1 -#: 0b6933781a174c2bad8d274d52dcc8d0 -msgid "A DateTime indicating when the resource was locked." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.locked:1 -#: 1cbdffaaae3d46a885a2cc92bcf846f7 -msgid "Whether the user account has been locked or has expired." -msgstr "" - -#: ../../docstring of canaille.core.models.User.organization:1 -#: 92976f5262824ee9b3e0a65fb798b8b4 -msgid "Identifies the name of an organization." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:1 -#: 2cb2af496f3042c3966013ea767e5406 -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 -#: 48b6e0f8a7164393abc72168bccfa18c -msgid "Prepare the cleartext value for international language comparison. See Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:12 -#: ddd96221e9c2438eb6c1d0a9dca2da76 -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 -#: d76e3ac607d140bc951e00ad3392ea2f -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 -#: 873d9d6bed204708a8d85cfe4d9d9eaa -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 -#: 43840faf65d749eba3318ec708692933 -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 -#: 88ef2343a00a4cf2ab352ac63d38dfc9 -msgid "Prepares the filter value for international language comparison. See Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:35 -#: 2ca8f00a08984448bfcdd17b066e8742 -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 -#: c3f9a3035bdf47e6917199ac4358c006 -msgid "The mutability of the password attribute is \"writeOnly\", indicating that the value MUST NOT be returned by a service provider in any form (the attribute characteristic \"returned\" is \"never\")." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:1 -#: 97901cdb7c7a48248f43e9d3172a6aef -msgid "Phone numbers for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:3 -#: 06c2bdfccac54d558c5f0996124cf0e7 -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 -#: 1b1f45abe24f408896ad3f11cc6808c7 -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 -#: 9d5908c5c4c943009e34f83028518e5c -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 -#: be3a35536d93497eb6d9d585837b2283 -msgid "The zip code or postal code component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.preferred_language:1 -#: c128776195cd492f9ad3d7949bbc3b54 -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 -#: 2f1af307075f44638377fff8773edfba -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 -#: aed0249175b44f0b9f2feb1aa515c775 -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 -#: daa70d8170444df5a30410cc87f393db -msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:1 -#: debf78051e654f52af684f36c1629415 -msgid "The fields the user can read according to the :class:`configuration ` configuration." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:4 -#: 797042e3224245dbb82b8e2c6c7882be -msgid "This does not include the :attr:`writable ` fields." -msgstr "" - -#: ../../docstring of canaille.core.models.User.region:1 -#: adca0f9fe25e411e8e82b9fd9a78b778 -msgid "The state or region component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:1 -#: 3a12008e383748b9a68f380f06740b99 -msgid "The full street address component, which may include house number, street name, P.O." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:4 -#: 28be3cbf04994e0f84565569a0cab6db -msgid "box, and multi-line extended street address information. This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.title:1 -#: bc37ec09dcf441b18e6a7a14f4fa032b -msgid "The user's title, such as \"Vice President\"." -msgstr "" - -#: ../../docstring of canaille.core.models.User.user_name:1 -#: f3748083c91b42a3a188413f1c0b9003 -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 -#: 5fb20fd2207e4f00941d6491626145fc -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 -#: 118f89cc1cbd40e1904344299ec0ff2f -msgid "The fields the user can write according to the :class:`configuration `." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 -#: 9facc36af225404d9779eaf6bf2bfab7 -msgid "OpenID Connect temporary authorization code definition." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1 -#: 3bdc94d169f4438894bf0425d195e506 -msgid "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 -#: 9c71570390a0463e962bce31ea5088b3 -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 -#: 3c32fe5a481b412bb1e1b937ee4869ec -#: 044bd6e4946b410198e0d298277e7dd4 -#: 6c48ff3f31a641aa937776cb3fae89b3 -msgid "OPTIONAL." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 -#: 2f4229be751d4e5caa1b9069d15f33b8 -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 -#: 956366c2776548e6a62315bcb4247b8e -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 -#: 4d83c77c154048298477394cfcb5fc9a -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 -#: dce117516b124deab7b810b6c54fa0ac -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 -#: b85460cc7e254321ac121e50eaffbd3a -msgid "REQUIRED if \"client_secret\" is issued." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:3 -#: a760adab225b4b7f8569ac1aedcd0fe4 -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 -#: 368fa31181994524b25de364044e969d -msgid "URL string of a web page providing information about the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 -#: 0a20833287484008ac3e4a7377b83fae -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 -#: 9b6834ade33a4cd6941bb4ce4fbbe533 -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 -#: af5b08bc89ec4d77b081ecb7134fa27f -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 -#: a98a93fb09664916a5e87eb824142864 -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 -#: 5b3b26e17f8b4debb5f24b1f09741112 -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 -#: 2e3fc7ab9197457a9cb841b2ad5db74c -msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 -#: 4b0a5a3917a1404489a1c35523b3101e -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 -#: 857eea7248a341aa921cd8fd5b724fbe -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 -#: f5f2816191814d21bfec694ca69ff1d1 -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 -#: c541d54100d34722acd417b25e98bd5c -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 -#: 2ea0af9e26be4d2db3d332e953e8ca8b -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 -#: 57292fb5f1634d3bba1da0262c280fcb -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 -#: d4b452db75264d40be92a7a921f87428 -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 -#: bf3972f670c941ad85e0478d1808ff37 -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 -#: 268c5ebb6d01426daf157137967ceb71 -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 -#: 7fc031400ba5483787d3755a50404f52 -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 -#: 2e7ce4c75ee742bca61f56435df8c8ba -msgid "URL string that references a logo for the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 -#: 9b60b488494740178fa0eb696a830276 -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 -#: 6196df903f044a869d63d7bfe59029ec -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 -#: 4a2485a600f84752af39a53edb626de6 -#: 7107cb606a41467ba4620b8833bce409 -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 -#: c72d1bb71dd94b548279d1efbc710585 -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 -#: 2e06e42021994d9880933a147f75ac42 -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 -#: d620c8983f004e97b068e92227d397ca -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 -#: 0199d813ba7048eab35fcd268b27bfcc -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 -#: 4bab6b2fed8a4f1ab9108994d6fb98e0 -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 -#: 00457e11ffec4ca3b872fb7f97e43510 -msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 -#: 7fd3e01f1e3e4a3e98a4a71071fde775 -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 -#: 8b411c3c4d744e66a74e7e4bf52e621c -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 -#: 953f41806c6e4932b7c4edf6f0ddd507 -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 -#: 4fc9f0306c584316aa4c1b3c2d844099 -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 -#: 2125d1eb4c6b4718b6c4331052fe7faa -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 -#: 40e1b0990ec746bf8c9d05c246211b2f -msgid "A version identifier string for the client software identified by \"software_id\"." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 -#: 34d17136e48a479b9fe5b56d79bae90b -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 -#: 4c0d764f9b464300b91cb575bec81042 -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 -#: 06c9b086f72f4839b8e624dafa032e65 -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 -#: f0c62329f807478fba3956bb2b215eff -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 -#: 6aae16f0c1f44fbca7c2cf890999a8d7 -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 -#: 93316ec1de384670bee6411eeeee736a -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 -#: 688470bc69ac41dcbde0543cf71e5479 -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 -#: fbc25995a4954ad89cf6363836c086b9 -msgid "Long-term user consent to an application." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1 -#: c24dba2ff5d047d18e4c44c48289f2dc -msgid "OpenID Connect token definition." -msgstr "" diff --git a/doc/gettext/references/commands.pot b/doc/gettext/references/commands.pot deleted file mode 100644 index a552387a..00000000 --- a/doc/gettext/references/commands.pot +++ /dev/null @@ -1,366 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../references/commands.rst:2 -#: 952e9de33f1146bb9c629b25406d5980 -msgid "Command Line Interface" -msgstr "" - -#: ../references/commands.rst:4 -#: 194fc88dbebc4a6083904a2cd0fdece1 -msgid "Canaille provide several commands to help administrator manage their data." -msgstr "" - -#: ../references/commands.rst:6 -#: af944605783345eb930f7e39d8cb2206 -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 -#: da3dade2207449f8ab1f5c8cd6df0b59 -msgid "Test the configuration file." -msgstr "" - -#: ../../canaille check:1 -#: 107826c804894ffbaf6be5108735e8bd -msgid "Attempt to reach the database and the SMTP server with the provided credentials." -msgstr "" - -#: ../../canaille clean:1 -#: a75c02957679475c88a5bf48c43b54df -msgid "Remove expired tokens and authorization codes." -msgstr "" - -#: ../../canaille install:1 -#: 226b4c7446b04bc4826250bfa6d83978 -msgid "Installs canaille elements from the configuration." -msgstr "" - -#: ../../canaille install:1 -#: 87ed406dcb7b4335b8d4cd75a68b65dd -msgid "For instance, depending on the configuration, this can generate OIDC keys or install LDAP schemas." -msgstr "" - -#: ../../canaille populate:1 -#: d3168620868447108806d14d13dd47c6 -msgid "Populate the database with generated random data." -msgstr "" - -#: ../references/commands.rst:0 -#: e7127155eec846ed9792494143cca743 -#: 53e6c68a54434bf587a1dca8b81d3b74 -#: a42086af15bf4297904cf39c2b4df7c7 -#: c043029fc2fb47fbb2bd318d1a4b08ca -#: 8a09860a6b1c4ad8b08bb9fb44e6982b -#: 396565c1408a45bf9880d2e4d306d416 -#: e657b473cd7743f9bfc6aeef3aac4935 -#: 082b69dc7add4bddb93489557fa9a6a2 -#: ba9576b3bf70496fb522695af86f0169 -#: 032f8d3e26dc4bbd9d4660836afb1f75 -#: fe2abe123e9e41bf996d8f88ce42df12 -#: 98063029b2d444d69399c4c4fb1266bb -#: c67517b916f44f7689513efa4606b20d -#: a3aaff84e9ca4ccba1f7f50ee8508b1c -#: e69fc539c5df4426894fd9203c84f432 -#: f354375bb4e242d6818715ff5956b716 -#: 0e2c24d22a3a4ee288c1c3fc86808d61 -#: ca9251891c7e45109894c356eb0f4a00 -#: ea573076e79447deb9b69c44f0b08970 -#: cb20ee676a1748ddadbe90a97f25ceba -msgid "Options" -msgstr "" - -#: ../../canaille populate:1 -#: 3b6d5755e8de425b91874a9cf6018dca -msgid "Number of items to create" -msgstr "" - -#: ../../canaille populate groups:1 -#: 859c9d120bba4152b20f456cd307473d -msgid "Populate the database with generated random groups." -msgstr "" - -#: ../../canaille populate groups:1 -#: cd243a1399bb4a3f8ea0704869d34375 -msgid "The maximum number of users that will randomly be affected in the group" -msgstr "" - -#: ../../canaille populate users:1 -#: 7670817be64a430aadf12b14d6ffc338 -msgid "Populate the database with generated random users." -msgstr "" - -#: ../../canaille get:1 -#: 459ab849c8d748c498f5a73cbcae971b -msgid "Read information about models." -msgstr "" - -#: ../../canaille get:1 -#: 8805aa3801d74e04978bde21d18ab711 -msgid "Options can be used to filter models::" -msgstr "" - -#: ../../canaille get:1 -#: 8cd027c62978471494b3b89bfa9bdcd4 -msgid "Displays the matching models in JSON format in the standard output." -msgstr "" - -#: ../../canaille get authorizationcode:1 -#: e4374f3cf425474197f3c4b15912e986 -msgid "Search for authorizationcodes and display the matching models as JSON." -msgstr "" - -#: ../../canaille get client:1 -#: 1c20673de33e4126adcba9bccd53285b -msgid "Search for clients and display the matching models as JSON." -msgstr "" - -#: ../../canaille get consent:1 -#: f66367e5fa9d42d9b3bdc8dcadb54f71 -msgid "Search for consents and display the matching models as JSON." -msgstr "" - -#: ../../canaille get group:1 -#: abf63bec613349b59c927bd749a6e121 -msgid "Search for groups and display the matching models as JSON." -msgstr "" - -#: ../../canaille get token:1 -#: b974b4eb0d394694b5faae2a0c04f38a -msgid "Search for tokens and display the matching models as JSON." -msgstr "" - -#: ../../canaille get user:1 -#: bb9a27c5a07f42908658a281836ff323 -msgid "Search for users and display the matching models as JSON." -msgstr "" - -#: ../../canaille set:1 -#: fb364298ebb14aed9d991b46d2f69e26 -msgid "Update models." -msgstr "" - -#: ../../canaille set:1 -#: 45f0840d682f42e0b83984f17e352b6e -msgid "The command takes an model ID and edit one or several attributes::" -msgstr "" - -#: ../../canaille set:1 -#: 1fbb909df2f44fb8b6a50695ce0e782e -msgid "Displays the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille set authorizationcode:1 -#: 52fee42193e14ca0bd1803ad566d909b -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 -#: be7a57837f08444da95b3fa3ad885966 -#: 5261952836ed436ab47a4342386bf1c2 -msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" -msgstr "" - -#: ../references/commands.rst:0 -#: d563c42b2df141478656723031367503 -#: 6c67221152cc4edf9830b2460f20959f -#: bf627fa413024a309608bde86595a56a -#: e18a29eaecc941aeacc574e5cf09d18a -#: a673745e74254db99f2005aaf7f94071 -#: 4e28ecd386fd453ca21742afb29a2d7f -#: 08bc45830f29458d80fcb6116855abdb -#: 6e2726cc252a49d8bf7c0ac7dd9e5edc -#: d2733aa168284d6d9af70ac1b1605e2d -#: 5886f8e598e74ad5b102a9143d68218c -#: 95c785769ca14c3b9317997071900fbc -#: 70b189a9f8ab4a29801e20dcfdfea66f -msgid "Arguments" -msgstr "" - -#: ../../canaille delete authorizationcode:1 -#: ../../canaille delete client:1 -#: ../../canaille delete consent:1 -#: ../../canaille delete group:1 -#: ../../canaille delete token:1 -#: ../../canaille delete user:1 -#: ../../canaille set authorizationcode:1 -#: ../../canaille set client:1 -#: ../../canaille set consent:1 -#: ../../canaille set group:1 -#: ../../canaille set token:1 -#: ../../canaille set user:1 -#: 1f9548e4636448588b046b89b13f06fa -#: 7498b2d09e9e4a60be65295d16a2a1b2 -#: 885dbff91b984704aaea33821b4886e0 -#: 56949230a767406baa8c3012598ad874 -#: dff59d31ec68436c8ea934fb4552d92e -#: 8a56d543cfad4505b73ceea0a3653206 -#: fe4ce93cffc4483688d43a05aeab42c8 -#: a44fcccdfd8b4aaf8d246598391965ca -#: 82b9d081f97b4256bb060e62306dfce3 -#: fd1b9c6fb27343c7bf2ea1f2be5b193a -#: 14277de1064f428e87212628d366a212 -#: ad6cdeab44c64cf4bc87bbbe0c5e3a83 -msgid "Required argument" -msgstr "" - -#: ../../canaille set client:1 -#: a109d961bdbe41b481db9ee1add815df -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 -#: f3f79ebe2f674e4bb49f075096b5912f -#: 24749d9fb8e34ed793cdd18066897e64 -msgid "IDENTIFIER should be a client id or client_id" -msgstr "" - -#: ../../canaille set consent:1 -#: f3e30b461fef4b0d90cd10eedc0fa6c1 -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 -#: aac283fa3c174e55977327d4bc1dda14 -#: f5c31a271cf147fdb38b9c051d7c1c58 -msgid "IDENTIFIER should be a consent id or consent_id" -msgstr "" - -#: ../../canaille set group:1 -#: 406840fc8dd84d029b49ecf2b9b3700e -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 -#: 05ab1dbdf30947ef983a983cce57e09b -#: 989cc201be1c47aaaee1b0207becb31f -msgid "IDENTIFIER should be a group id or display_name" -msgstr "" - -#: ../../canaille set token:1 -#: 623a2682695c4ed3840eda6790dd89b8 -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 -#: 968c3abd396a4b32ab3d264406a29ab0 -#: 617d8bdf4b934db0b05284196d21fc1b -msgid "IDENTIFIER should be a token id or token_id" -msgstr "" - -#: ../../canaille set user:1 -#: c461b718f10d4f74af31074086fe33d4 -msgid "Update a user and display the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille delete user:1 -#: ../../canaille set user:1 -#: 6a3dcdb5ec744db69979ea803522f613 -#: f1f1d1b029644f529c7691615b5316c3 -msgid "IDENTIFIER should be a user id or user_name" -msgstr "" - -#: ../../canaille create:1 -#: dea54ad432f64871887f81e03116d3be -msgid "Create models." -msgstr "" - -#: ../../canaille create:1 -#: 3a821969460649af99c84c9963924e3c -msgid "The model attributes can be passed as command options::" -msgstr "" - -#: ../../canaille create:1 -#: f437609088d74a1db4e7f895990fe794 -msgid "Displays the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create authorizationcode:1 -#: e8b4745d5c7d4ef895ba1686b9612132 -msgid "Create a new authorizationcode and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create client:1 -#: f65cec57e4e3459f809a8b5b2d1671c0 -msgid "Create a new client and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create consent:1 -#: 9e42b40acaa14367af9e2f63eff68adc -msgid "Create a new consent and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create group:1 -#: af50ef69d61c4733a9f4c544b1501349 -msgid "Create a new group and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create token:1 -#: 818461fc081a4f158dbca7303aa71193 -msgid "Create a new token and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create user:1 -#: 418c85b7a33a40da88d914c0801d419d -msgid "Create a new user and display the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille delete:1 -#: 917309f374fe4e6b9ad7960e932116d5 -msgid "Delete models." -msgstr "" - -#: ../../canaille delete:1 -#: 57d37b3ed7de43a28e08cde8eb20fde9 -msgid "The command takes a model ID and deletes it::" -msgstr "" - -#: ../../canaille delete authorizationcode:1 -#: 1a572edd3e66418ebad7a8d9f9e3eef9 -msgid "Delete a authorizationcode." -msgstr "" - -#: ../../canaille delete client:1 -#: 9815eae4699d46fea1d4445e29e46e25 -msgid "Delete a client." -msgstr "" - -#: ../../canaille delete consent:1 -#: 7df50d8fbec94e33874223bcae810618 -msgid "Delete a consent." -msgstr "" - -#: ../../canaille delete group:1 -#: 58b8c923bf784729b69540c863d69ee5 -msgid "Delete a group." -msgstr "" - -#: ../../canaille delete token:1 -#: 53e0d81e98484c4ab1f10c3e2b36763b -msgid "Delete a token." -msgstr "" - -#: ../../canaille delete user:1 -#: f854b40ae54045bd89e19a03173a8a57 -msgid "Delete a user." -msgstr "" diff --git a/doc/gettext/references/configuration.pot b/doc/gettext/references/configuration.pot deleted file mode 100644 index 72873667..00000000 --- a/doc/gettext/references/configuration.pot +++ /dev/null @@ -1,743 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../references/configuration.rst:2 -#: f352927b3e674164b4ee528d290e1ba3 -msgid "Configuration" -msgstr "" - -#: ../references/configuration.rst:5 -#: 449fdd3866354144a1df0b0541208b76 -msgid "Load the configuration" -msgstr "" - -#: ../references/configuration.rst:7 -#: 1e797371bae94f50b7037acaf549b6fa -msgid "Canaille can be configured either by a environment variables, environment file, or by a configuration file." -msgstr "" - -#: ../references/configuration.rst:10 -#: 0377b9dd81fd41c79cdf3f8a8245de59 -msgid "Configuration file" -msgstr "" - -#: ../references/configuration.rst:12 -#: 9023a7e764a54abda473435fb2c67556 -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:11 -#: ../references/configuration.rst:14 -#: ../references/configuration.rst:85 -#: 275d6238f6de4292bc8fa82eace110b7 -#: 954a70d4151143f4af9f3e509533dd69 -#: ff44591b60384f37b0094fbe5883142d -msgid "config.toml" -msgstr "" - -#: ../references/configuration.rst:26 -#: 7ffbc024b9f44c4092065cff332026b3 -msgid "You can have a look at the :ref:`example file ` for inspiration." -msgstr "" - -#: ../references/configuration.rst:29 -#: be2150038b8a47e0971dd82518455d15 -msgid "Environment variables" -msgstr "" - -#: ../references/configuration.rst:31 -#: 7b656666c8b64597b79511e46faa57a1 -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:36 -#: 0379beff48534aa59770a545033aedf7 -msgid "For environment vars, the separator between sections and variables is a double underscore: ``__``. For instance, the ``NAME`` var in the ``CANAILLE`` section shown above is ``CANAILLE__NAME``." -msgstr "" - -#: ../references/configuration.rst:40 -#: 2505d4af33c547ef93f09be4282e8aec -msgid "Environment file" -msgstr "" - -#: ../references/configuration.rst:42 -#: a8a58f82f61b4fc0b28434e743ed6de6 -msgid "Any environment variable can also be written in a ``.env``, and will be read if present." -msgstr "" - -#: ../references/configuration.rst:44 -#: de874bfbe8b74294a9418700556580ec -msgid ".env" -msgstr "" - -#: ../references/configuration.rst:62 -#: 66e3119e3a3649b6829112cc1d41e11b -msgid "Parameters" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:1 -#: 5b109da5244d4dfbabb218e4c6bc5d47 -msgid "The top-level namespace contains holds the configuration settings unrelated to Canaille." -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:4 -#: 0cf177f44bba4097827a16b1a2f1d6c0 -msgid "The configuration paramateres from the following libraries can be used:" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:6 -#: d6bc590bfed047e8b86af354be80fe03 -msgid ":doc:`Flask `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:7 -#: 855b6f96105a43b094b402a616bbae30 -msgid ":doc:`Flask-WTF `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:8 -#: 3c35731764054bff9285d6bfb79a7785 -msgid ":doc:`Flask-Babel `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:9 -#: ac4465974e9f44c7b879303fdb40fc4f -msgid ":doc:`Authlib `" -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: a2761715a159492ca4c5180c65189c58 -msgid "The Flask :external:py:data:`DEBUG` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: 5b40ae56684347e0a6f369b4f2896691 -msgid "This enables debug options." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: ab54e5fb83cc40c6a1867ec701bb051b -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 -#: c66f04b99f7649b49ad45b30d2e25aa9 -msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: d13d3b6ef4c0498bbfbe74ede138249f -msgid "This sets the url scheme by which canaille will be served." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: d5dcfdec96404860acab981f826562ba -msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: 7e8c4487ab1446039177843b912da108 -msgid "You MUST change this." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 7d62d0ae8c664a048ef164ff8efef75e -msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: 965334877d854795a264b6ceedcac212 -msgid "This sets domain name on which canaille will be served." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:1 -#: 0a4a605e6a1940fab498c34200639e5c -msgid "The settings from the ``CANAILLE`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:3 -#: 5a95511f181a4890bb8b9083a862ccd3 -msgid "Those are all the configuration parameters that controls the behavior of Canaille." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 5d0ddaed2d734874b3e0a61dfda14559 -msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 539d67c478024eda83b002c329156ba3 -msgid "The ACL name can be freely chosen. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: 8703a060664b4b93b202ae8a55c9ab90 -msgid "Administration email contact." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 8956b1369e7546a39b76b74940e3fcce -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 -#: 8670b9d62d284afd847234da2ee795ae -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:4 -#: 0eda2a2a767649dc980c8e065d9169a6 -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.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: f4b1659c97c9420c9e67025ec44f290d -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 -#: b2576eba8d9d41bfadecc6d10f66cb83 -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 -#: 57f195e48f3d4105b171b26b22801fe0 -msgid "If :py:data:`True`, then users can freely create an account at this instance." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: 1fe396b30d184f76ab35cf310d689ba8 -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 -#: 8c747e3998e148b397f3b3afaedfc251 -msgid "You favicon." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: c71c1dc15e314542924691141e9ceba0 -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 -#: 91fdf12a588442899a9e93f1a13edbb2 -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:5 -#: 7f6526364ecf44d0a6ea4f83b986cd99 -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 -#: 64629144df814d019eed25c5b1130301 -msgid "Accelerates webpages loading with asynchronous requests." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: 239e3d72e0aa42c996215debaa36a92f -msgid "The validity duration of registration invitations, in seconds." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: 41669e4af29b45ed9dab09dabe5858aa -msgid "Defaults to 2 days." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 4c4ae3815e5542dc995f90e1f33a79f3 -msgid "Enables Javascript to smooth the user experience." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 176ff367a4bc455c89f33b252c723ac9 -msgid "If a language code is set, it will be used for every user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: 63976f2340fd417f94c5efc2f31768db -msgid "If unset, the language is guessed according to the users browser." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: cbef5d40655e4b309a1dbce7f4b59cc6 -msgid "Configures the logging output using the python logging configuration format:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: e7b83b790b52476891f49f70cc2c3d03 -msgid "if :py:data:`None`, everything is logged in the standard error output the log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:`~logging.INFO`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 52803036df304a2d91104ff033694988 -msgid "if this is a :class:`dict`, it is passed to :func:`logging.config.dictConfig`:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 3ba83792d3ec409694c435cbe06ddab2 -msgid "if this is a :class:`str`, it is expected to be a file path that will be passed to :func:`logging.config.fileConfig`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 -#: 289ee5ab24bd4ef68b17b81cbaa7c233 -msgid "For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: c7e469fe99bb4b71b0328349e72f0a61 -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 -#: 91a871ab33f4451a9caf95ed0da63833 -msgid "Maximum length for user password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 1c25d71de99d4d46aa496c9df6a08c33 -msgid "There is a technical limit with passlib used by sql database of 4096 characters. If the value entered is 0 or None, or greater than 4096, then 4096 will be retained." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: c8c3307fa58e4c45afb5ac1e24626972 -msgid "Minimum length for user password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 4d73f4bca2984046b3efb3ba322cdf34 -msgid "It is possible not to set a minimum, by entering None or 0." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: 8452d4d220b24f408a3418bbf451c672 -msgid "Your organization name." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: 458bb630ef124d75ba2bbce3b58c4782 -msgid "Used for display purpose." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 7e49f44fa7ad43f6924d762afcb43cf6 -msgid "Have i been pwned api url for compromission checks." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 6daac624f580441ea0f641df0e7d18ad -msgid "A `Sentry `_ DSN to collect the exceptions." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: f7d352de8d494044a75175ce2c34be3e -msgid "This is useful for tracking errors in test and production environments." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 4918c3baa9ff4a7ea370ae99df22f450 -msgid "The settings related to SMTP and mail configuration." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 35153331cf064d90b4d8051c4363a935 -msgid "If unset, mail-related features like password recovery won't be enabled." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: 5df367ed5d3f4a53b537e6c50b677c3b -msgid "The name of a theme in the 'theme' directory, or a path to a theme." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 -#: 34d6f2a3091c4a7cb5099e15bb92ca5f -msgid "Defaults to ``default``. Theming is done with `flask-themer `_." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 7be8c0ebcee24c42bad6e4a1abecbaad -msgid "The timezone in which datetimes will be displayed to the users (e.g. ``CEST``)." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: 9f062ba2827b4837971d4c34ff74a252 -msgid "If unset, the server timezone will be used." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:1 -#: da9f430a60ed4b5e871bae9218bc2b1b -msgid "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, mail related features will be disabled, such as mail verification or password recovery emails." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:5 -#: e0bad81478534132be5d8de19ba8c05e -msgid "By default, Canaille will try to send mails from localhost without authentication." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 6d0e7e6a931c4f568695d714da824c78 -msgid "The sender for Canaille mails." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: 083e072e2ef24f02955bf40dca897f7d -msgid "Some mail provider might require a valid sender address." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: bf8d6260946747cd8d9db422a2977980 -msgid "The SMTP host." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 432b9e9f148c4b79a07af984139b8b90 -msgid "The SMTP login." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: 42fab7de34b9418bb1422c74e5f9af1f -msgid "The SMTP password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 42d65ebe36c2450f9532a587ea0a8de2 -msgid "The SMTP port." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: 208db0a1482b42b29a2f582ff3c308d4 -msgid "Whether to use SSL to connect to the SMTP server." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: aebe44192def402f9c370ac7dd2386f1 -msgid "Whether to use TLS to connect to the SMTP server." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:1 -#: 04870aa4e9c046219085be74456ef180 -msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:3 -#: beaf3f3f98b14cf9862ee2505dfa97db -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 -#: ebf8c5195c7d413aa4328754379e55df -msgid ":attr:`FILTER` can be:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: d566cef633ee456c9fad89396dea8224 -msgid ":py:data:`None`, in which case all the users will match this access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: a9b6fbe00f7a45b6af6430d5277888a1 -msgid "a mapping where keys are user attributes name and the values those user attribute values. All the values must be matched for the user to be part of the access control." -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: eb050efec86e47a7b93376503248375a -msgid "a list of those mappings. If a user values match at least one mapping, then the user will be part of the access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 5c41147889134281bfd429b0c09aaa92 -msgid "Here are some examples::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: e847d17ac0da4f4bb5752a6edf12611d -msgid "A list of :class:`Permission` users in the access control will be able to manage. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: 1f9de4fcf01040369e7a21aadfa1118e -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 -#: ab6304cad7d147b0b839335c84652984 -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 -#: fcf4d41879b3400ba4c61ca8eeaec499 -msgid "The permissions that can be assigned to users." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:3 -#: 3a9f55ac1eca45e5bbb75a3c3bd3e84c -msgid "The permissions are intended to be used in :attr:`ACLSettings `." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: d5ef98541f8b4e1588bda2eeeaacbc5d -msgid "Allows users to delete their account." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: de8f02efc06246d1bc91e9d34c78e259 -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 -#: a2816996936a4eb292c7d9a510f41355 -msgid "Allows users to edit their own profile." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: de9bf735cb24406fba3aad34f3f87c7b -msgid "Allows users to take the identity of another user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: ee8abccc752e4019a4bf8be9c1da1198 -msgid "Allows group edition and creation." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 5e3b60a516ab41278a1a3818393050ee -msgid "Allows OpenID Connect client managements." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: b71ed1ac778a4c0eb6a0e92043fac7d4 -msgid "Allows other users management." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: 2b580919de714c50beeea005d433c658 -msgid "Allows OpenID Connect authentication." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:1 -#: 211693e2da0f432bb430898384f8a38f -msgid "OpenID Connect settings." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:3 -#: 399b3ba31a2a4ab593437d5ff09b3704 -msgid "Belong in the ``CANAILLE_OIDC`` namespace." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 078d27ab0c25471ba020cd50959953e3 -msgid "Whether a token is needed for the RFC7591 dynamical client registration." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 982ecc53005e44c3af1329467f67b67c -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 -#: 8bb7098d11e5459fb0fb10fcfd92cb0e -msgid "A list of tokens that can be used for dynamic client registration." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: cebac57da84f472b9724ea2b19a88b8b -msgid "JSON Web Token settings." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: 36dd306abec64312ba0c875fc801e5e0 -msgid "Force the nonce exchange during the authentication flows." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: 6221bc8bd6ba40b8868633965a26f252 -msgid "This adds security but may not be supported by all clients." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:1 -#: 1766de0ffc354f91a26f1694fc6071f0 -msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:3 -#: 009bf269cd6b4ae09467ace27f3fb76d -msgid "You can generate a RSA keypair with::" -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: a08072b1d25443b1b844772f4ff7c190 -msgid "The key algorithm." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: b954e7767c754e6baeab30f362326666 -msgid "The time the JWT will be valid, in seconds." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: c9e63d5813b04b92bd8a4a0b585b33a5 -msgid "The URI of the identity provider." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 63966bfbb60749b884bceb1bc350a50f -msgid "The key type." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 083732255e954482a089c695f47ef978 -msgid "The private key." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 8cadbc77074442fdb0cc24103fb67271 -#: c0c5f1e3e26f412f83daf672905d3fdb -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 -#: 9fcee133520d489783c254d774af74a9 -msgid "The public key." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:1 -#: b300de02031f4663bd151e4cdcbc617a -msgid "Mapping between the user model and the JWT fields." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:3 -#: 8dd4c6823ac84e149a02efe65e217b33 -msgid "Fields are evaluated with jinja. A ``user`` var is available." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:1 -#: 970f05f5fcb04f4f87ef2aa2b7c436bf -msgid "Settings related to the SQL backend." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:3 -#: d36c2f4f3c424297b123c782251ea5b1 -msgid "Belong in the ``CANAILLE_SQL`` namespace." -msgstr "" - -#: ../../docstring of canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: f7ef728d7d5c479485f07a29067bc859 -msgid "The SQL server URI. For example::" -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:1 -#: 76b7ccaf6b2c4331b5bbd89dab99e2ef -msgid "Settings related to the LDAP backend." -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:3 -#: b7c638b46d6f48e2a582cd52a429e21b -msgid "Belong in the ``CANAILLE_LDAP`` namespace." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: f58def90f0ff4c6a9f0808da3b22f1f8 -msgid "The LDAP bind DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: bce683900aa34e788f1048c23cac2ebc -msgid "The LDAP bind password." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 6a505bac6a524976bb673d0a5fd63f7c -msgid "The LDAP node under which groups will be looked for and saved." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 42031d1720714c0fb5b570d03c559465 -msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 2c26c317c3c641f2bd78deff9be4a3cc -msgid "The object class to use for creating new groups." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: db3ddf6effa14ec38baebd99dc50e5b2 -msgid "The attribute to use to identify a group." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: dbb54871450e4c7e96d40454f3e29880 -msgid "The attribute to identify an object in the Group DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: c410c0b67b0043048e2063397ea4a07c -msgid "The LDAP root DN." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: dc829580b65647098bde180a8681398f -msgid "The LDAP connection timeout." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: bf2bc54274ec49ab9532e43f9db7dfea -msgid "The LDAP server URI." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: 8417a756a71f4d57b9179bce44c738fd -msgid "The LDAP node under which users will be looked for and saved." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: d8c7de846fd54c1683622862a57ee7cd -msgid "For instance `ou=users,dc=mydomain,dc=tld`." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 016c6da2807146d8b336efc419545973 -msgid "The object class to use for creating new users." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 14d6048df0344b1497539f9179bd28dc -msgid "Filter to match users on sign in." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: 15d58563699e4d05b4394f603a2aa7d2 -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 -#: 7dc67476e9a241959631d0cb75a01d94 -msgid "The attribute to identify an object in the User DN." -msgstr "" - -#: ../references/configuration.rst:81 -#: 9ad50ee44eed4db98c81f6750d174085 -msgid "Example file" -msgstr "" - -#: ../references/configuration.rst:83 -#: 97c604b45a2041c991b43cab19fd784d -msgid "Here is a configuration file example:" -msgstr "" diff --git a/doc/gettext/references/index.pot b/doc/gettext/references/index.pot deleted file mode 100644 index 3089c39b..00000000 --- a/doc/gettext/references/index.pot +++ /dev/null @@ -1,22 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../references/index.rst:2 -#: 983008b557cf40dab35f71a21049eac4 -msgid "References" -msgstr "" diff --git a/doc/gettext/references/models.pot b/doc/gettext/references/models.pot deleted file mode 100644 index 4d5792ef..00000000 --- a/doc/gettext/references/models.pot +++ /dev/null @@ -1,632 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../references/models.rst:2 -#: 022e1b3cf73440848f54dcfa34e42ba7 -msgid "Data models" -msgstr "" - -#: ../references/models.rst:4 -#: d149fff6a989475a8be86c904d978f4c -msgid "This reference details the data models used by Canaille. This is mostly useful for developers." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1 -#: 89ef1d33d7924bfdb5e279d1103bbcad -#: a462c61f57f44ad08f0a8e562830af68 -msgid "Bases: :py:class:`object`" -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 -#: b3c50358d06640a7a9fe4e59e7fd9827 -msgid "The backend model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:3 -#: a930a4499fef45d1b0942fc6c1e36b56 -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 -#: 455dfc35495747599564cc0de69b6204 -msgid "The model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:3 -#: d3d24c3cf53649fa9952d0acd46baaec -msgid "It details all the common attributes shared by every models." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.created:1 -#: 0b9f08586ec4479f95610436345a2df4 -msgid "The :class:`~datetime.datetime` that the resource was added to the service provider." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:1 -#: 73ab147ab6f44612a5d639fc060bbaaf -msgid "A unique identifier for a SCIM resource as defined by the service provider. Id will be :py:data:`None` until the :meth:`~canaille.backends.models.BackendModel.save` method is called." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:5 -#: 04db3a45228d44168cbb27c89577d6dc -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 -#: 2ea5fc24d36f4c83b49bc6509fc30f36 -msgid "Returns a unique value that will be used to identify the model instance." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:4 -#: 8de478a9d8f44e5ebf9ffd959187d3e7 -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 -#: 9b5885a4658141839d61820edf411982 -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 -#: 659528401e8e404ca22250d8a132a8af -msgid "If this resource has never been modified since its initial creation, the value MUST be the same as the value of :attr:`~canaille.backends.models.Model.created`." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 -#: ../../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 -#: b0cbb8436a2e4726a04c452b6464b07c -#: a46cf872f3124dfebe8074d928294b37 -#: 490030c82e9f4ca7a39b4dd4e47c6da1 -#: 9593236b11104e0782a0ec1d2422f081 -#: c26fabc7468147da80b51e22269685ff -#: 3266b57754fd4ab3ad8752c56797ec3f -msgid "Bases: :py:class:`~canaille.backends.models.Model`" -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: b508bfbf52f549b0a2e7036942e5ae2e -msgid "User model, based on the `SCIM Group schema `_." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.display_name:1 -#: 18d85d6d4d3647f1a2ec4e540fd71f0c -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 -#: 732a62dcb7c14d6ebe0cbb87a056506b -#: eeba3149bca04af9b37b5b8a6942a31a -msgid "REQUIRED." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:1 -#: d3c1eb7c79cd4c329aa5889db10437c4 -msgid "A list of members of the Group." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:3 -#: 84f35590c5e343d794d68c66b238dc99 -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 -#: 693317bbc24b4bb38a0c34eabe8c27a6 -msgid "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password Management Extension `_ draft. Attribute description is based on SCIM and put there for information purpose. The description may not fit the current implementation in Canaille." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 -#: d512cb33bc1b4f34910c1f3d20b00415 -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 -#: a85b1f762528426fb7c866f8acff33a7 -msgid "Identifies the name of a department." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:1 -#: ccac75608a514817bc2657221c84c8d4 -msgid "The name of the user, suitable for display to end-users." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:3 -#: 12cb2626a8b8428386ab833d1a57a44c -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 -#: 1d01bb2833434fefbd8e26282f88c2b5 -msgid "Email addresses for the User." -msgstr "" - -#: ../../docstring of canaille.core.models.User.emails:3 -#: 2c83d0f48a2c4b20b11e0f59a8fd1015 -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 -#: 221bb9f4d412453e8aab759ea9b8e9b1 -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 -#: 2bc5c5485b0e472383061267c89b9843 -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 -#: 1a46356c5b514ef39560fc6bf3e37a1f -msgid "The full mailing address, formatted for display or use with a mailing label." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_address:4 -#: f52de344799e4ceeb276ed4f02955181 -msgid "This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_name:1 -#: 5c155ee534eb441fba949e3d9607c7ce -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 -#: b045a3658e1d46aaa2be9115e8412458 -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 -#: 3ac337f269234f93a9adee6541ae355f -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 -#: 63c40fd148cf4a49b7e68d521d7e6489 -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 -#: bf9ca86e1fdf4aec978ae51efe4493c3 -msgid "Check whether a password has been set for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.locality:1 -#: 0d4cf2a502c74826bf7403b6740b9982 -msgid "The city or locality component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.lock_date:1 -#: 0b6933781a174c2bad8d274d52dcc8d0 -msgid "A DateTime indicating when the resource was locked." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.locked:1 -#: 1cbdffaaae3d46a885a2cc92bcf846f7 -msgid "Whether the user account has been locked or has expired." -msgstr "" - -#: ../../docstring of canaille.core.models.User.organization:1 -#: 92976f5262824ee9b3e0a65fb798b8b4 -msgid "Identifies the name of an organization." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:1 -#: 2cb2af496f3042c3966013ea767e5406 -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 -#: 48b6e0f8a7164393abc72168bccfa18c -msgid "Prepare the cleartext value for international language comparison. See Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:12 -#: ddd96221e9c2438eb6c1d0a9dca2da76 -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 -#: d76e3ac607d140bc951e00ad3392ea2f -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 -#: 873d9d6bed204708a8d85cfe4d9d9eaa -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 -#: 43840faf65d749eba3318ec708692933 -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 -#: 88ef2343a00a4cf2ab352ac63d38dfc9 -msgid "Prepares the filter value for international language comparison. See Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:35 -#: 2ca8f00a08984448bfcdd17b066e8742 -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 -#: c3f9a3035bdf47e6917199ac4358c006 -msgid "The mutability of the password attribute is \"writeOnly\", indicating that the value MUST NOT be returned by a service provider in any form (the attribute characteristic \"returned\" is \"never\")." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:1 -#: 97901cdb7c7a48248f43e9d3172a6aef -msgid "Phone numbers for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:3 -#: 06c2bdfccac54d558c5f0996124cf0e7 -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 -#: 1b1f45abe24f408896ad3f11cc6808c7 -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 -#: 9d5908c5c4c943009e34f83028518e5c -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 -#: be3a35536d93497eb6d9d585837b2283 -msgid "The zip code or postal code component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.preferred_language:1 -#: c128776195cd492f9ad3d7949bbc3b54 -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 -#: 2f1af307075f44638377fff8773edfba -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 -#: aed0249175b44f0b9f2feb1aa515c775 -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 -#: daa70d8170444df5a30410cc87f393db -msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:1 -#: debf78051e654f52af684f36c1629415 -msgid "The fields the user can read according to the :class:`configuration ` configuration." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:4 -#: 797042e3224245dbb82b8e2c6c7882be -msgid "This does not include the :attr:`writable ` fields." -msgstr "" - -#: ../../docstring of canaille.core.models.User.region:1 -#: adca0f9fe25e411e8e82b9fd9a78b778 -msgid "The state or region component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:1 -#: 3a12008e383748b9a68f380f06740b99 -msgid "The full street address component, which may include house number, street name, P.O." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:4 -#: 28be3cbf04994e0f84565569a0cab6db -msgid "box, and multi-line extended street address information. This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.title:1 -#: bc37ec09dcf441b18e6a7a14f4fa032b -msgid "The user's title, such as \"Vice President\"." -msgstr "" - -#: ../../docstring of canaille.core.models.User.user_name:1 -#: f3748083c91b42a3a188413f1c0b9003 -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 -#: 5fb20fd2207e4f00941d6491626145fc -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 -#: 118f89cc1cbd40e1904344299ec0ff2f -msgid "The fields the user can write according to the :class:`configuration `." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 -#: 9facc36af225404d9779eaf6bf2bfab7 -msgid "OpenID Connect temporary authorization code definition." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1 -#: 3bdc94d169f4438894bf0425d195e506 -msgid "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 -#: 9c71570390a0463e962bce31ea5088b3 -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 -#: 3c32fe5a481b412bb1e1b937ee4869ec -#: 044bd6e4946b410198e0d298277e7dd4 -#: 6c48ff3f31a641aa937776cb3fae89b3 -msgid "OPTIONAL." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 -#: 2f4229be751d4e5caa1b9069d15f33b8 -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 -#: 956366c2776548e6a62315bcb4247b8e -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 -#: 4d83c77c154048298477394cfcb5fc9a -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 -#: dce117516b124deab7b810b6c54fa0ac -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 -#: b85460cc7e254321ac121e50eaffbd3a -msgid "REQUIRED if \"client_secret\" is issued." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:3 -#: a760adab225b4b7f8569ac1aedcd0fe4 -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 -#: 368fa31181994524b25de364044e969d -msgid "URL string of a web page providing information about the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 -#: 0a20833287484008ac3e4a7377b83fae -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 -#: 9b6834ade33a4cd6941bb4ce4fbbe533 -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 -#: af5b08bc89ec4d77b081ecb7134fa27f -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 -#: a98a93fb09664916a5e87eb824142864 -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 -#: 5b3b26e17f8b4debb5f24b1f09741112 -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 -#: 2e3fc7ab9197457a9cb841b2ad5db74c -msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 -#: 4b0a5a3917a1404489a1c35523b3101e -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 -#: 857eea7248a341aa921cd8fd5b724fbe -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 -#: f5f2816191814d21bfec694ca69ff1d1 -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 -#: c541d54100d34722acd417b25e98bd5c -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 -#: 2ea0af9e26be4d2db3d332e953e8ca8b -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 -#: 57292fb5f1634d3bba1da0262c280fcb -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 -#: d4b452db75264d40be92a7a921f87428 -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 -#: bf3972f670c941ad85e0478d1808ff37 -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 -#: 268c5ebb6d01426daf157137967ceb71 -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 -#: 7fc031400ba5483787d3755a50404f52 -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 -#: 2e7ce4c75ee742bca61f56435df8c8ba -msgid "URL string that references a logo for the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 -#: 9b60b488494740178fa0eb696a830276 -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 -#: 6196df903f044a869d63d7bfe59029ec -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 -#: 4a2485a600f84752af39a53edb626de6 -#: 7107cb606a41467ba4620b8833bce409 -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 -#: c72d1bb71dd94b548279d1efbc710585 -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 -#: 2e06e42021994d9880933a147f75ac42 -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 -#: d620c8983f004e97b068e92227d397ca -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 -#: 0199d813ba7048eab35fcd268b27bfcc -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 -#: 4bab6b2fed8a4f1ab9108994d6fb98e0 -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 -#: 00457e11ffec4ca3b872fb7f97e43510 -msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 -#: 7fd3e01f1e3e4a3e98a4a71071fde775 -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 -#: 8b411c3c4d744e66a74e7e4bf52e621c -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 -#: 953f41806c6e4932b7c4edf6f0ddd507 -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 -#: 4fc9f0306c584316aa4c1b3c2d844099 -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 -#: 2125d1eb4c6b4718b6c4331052fe7faa -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 -#: 40e1b0990ec746bf8c9d05c246211b2f -msgid "A version identifier string for the client software identified by \"software_id\"." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 -#: 34d17136e48a479b9fe5b56d79bae90b -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 -#: 4c0d764f9b464300b91cb575bec81042 -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 -#: 06c9b086f72f4839b8e624dafa032e65 -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 -#: f0c62329f807478fba3956bb2b215eff -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 -#: 6aae16f0c1f44fbca7c2cf890999a8d7 -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 -#: 93316ec1de384670bee6411eeeee736a -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 -#: 688470bc69ac41dcbde0543cf71e5479 -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 -#: fbc25995a4954ad89cf6363836c086b9 -msgid "Long-term user consent to an application." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1 -#: c24dba2ff5d047d18e4c44c48289f2dc -msgid "OpenID Connect token definition." -msgstr "" diff --git a/doc/gettext/tutorial.pot b/doc/gettext/tutorial.pot deleted file mode 100644 index 2e9743d3..00000000 --- a/doc/gettext/tutorial.pot +++ /dev/null @@ -1,453 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/databases.rst:2 -#: 34b6a5df315e4629b9710884e3f5be9e -msgid "Databases" -msgstr "" - -#: ../tutorial/databases.rst:4 -#: 31f93a60c87648478dfe7a6c74d5f36a -msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:" -msgstr "" - -#: ../tutorial/databases.rst:8 -#: 8dc081315c7a4eea8be2e81b8a049162 -msgid "Memory" -msgstr "" - -#: ../tutorial/databases.rst:10 -#: 08608b21b52a4a22ac26b3a2a2d29f6a -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 -#: dbb9009fcf724d6290135aa1d6a32026 -msgid "This backend is only for test purpose and should not be used in production environments." -msgstr "" - -#: ../tutorial/databases.rst:16 -#: 06113268bf4a49d0880cdae75f961fc5 -msgid "SQL" -msgstr "" - -#: ../tutorial/databases.rst:18 -#: 2bb9cb1d3c4f4e4f93d649960bca123d -msgid "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." -msgstr "" - -#: ../tutorial/databases.rst:21 -#: bb4ec73e439d430aa8dbdddb0301bf5b -msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../tutorial/databases.rst:23 -#: ../tutorial/databases.rst:37 -#: 7de375f96b054244a9fb0c7c60663f32 -#: ebab073f2f894dfb87705d06ebb870af -msgid "config.toml" -msgstr "" - -#: ../tutorial/databases.rst:29 -#: 6e78f6be25cb4151951a1bc6994643a9 -msgid "You can find more details on the SQL configuration in the :class:`dedicated section `." -msgstr "" - -#: ../tutorial/databases.rst:32 -#: bcfa707ba3b2494ab1af853bcdc7673f -msgid "LDAP" -msgstr "" - -#: ../tutorial/databases.rst:34 -#: 426e632fa07a44369bdadb8a290672bf -msgid "Canaille can use OpenLDAP as its main database. It is used when the ``CANAILLE_LDAP`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../tutorial/databases.rst:52 -#: 0c319bcdd3b649569745572bb2944fec -msgid "You can find more details on the LDAP configuration in the :class:`dedicated section `." -msgstr "" - -#: ../tutorial/databases.rst:55 -#: ebc6e35e9a6049be8bc66eb127adf882 -msgid "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome." -msgstr "" - -#: ../tutorial/databases.rst:60 -#: 6a9ec2b8bf724122b5752c753bdaea7a -msgid "OpenLDAP overlays integration" -msgstr "" - -#: ../tutorial/databases.rst:62 -#: ce6daa0ac4974084990221c2806a5549 -msgid "Canaille can integrate with several OpenLDAP overlays:" -msgstr "" - -#: ../tutorial/databases.rst:65 -#: 24a7dc4d61504545ac841910fbaca48b -msgid "memberof / refint" -msgstr "" - -#: ../tutorial/databases.rst:67 -#: d24183e3349f42bfbbecde663f03f846 -msgid "`memberof `_ and `refint `_ overlays are needed for the Canaille group membership to work correctly." -msgstr "" - -#: ../tutorial/databases.rst:71 -#: ../tutorial/databases.rst:94 -#: 65357e9c96e341128f9448507ce02f1b -#: 692bdeebfc9c40999c9b09c8d9371e52 -msgid "Here is a configuration example compatible with canaille:" -msgstr "" - -#: ../tutorial/databases.rst:73 -#: 511312387435410987a190cf7b68f2ab -msgid "memberof-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:77 -#: c95e78d9dde84102b1a97c2399430c23 -msgid "refint-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:81 -#: ../tutorial/databases.rst:104 -#: 2e0fddced7e949f8a66653530c8a120b -#: 8686380cd79949259b48f68fe6c4d3b8 -msgid "You can adapt and load those configuration files with:" -msgstr "" - -#: ../tutorial/databases.rst:90 -#: af864ca7a8ef4d128d3fbe54749a944c -msgid "ppolicy" -msgstr "" - -#: ../tutorial/databases.rst:92 -#: fc8d77f8ca4d48de9eba6c408a9f5fc2 -msgid "If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute." -msgstr "" - -#: ../tutorial/databases.rst:96 -#: 15e6cfdc691149efbbdc2f3834c7a3d0 -msgid "ppolicy-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:100 -#: ef7f7bd8dd0445be8596864cb1b50fa5 -msgid "ppolicy.ldif" -msgstr "" - -#: ../tutorial/deployment.rst:2 -#: a7ef8cd4696b4e53a1ffdb87fb18c375 -msgid "Deployment" -msgstr "" - -#: ../tutorial/deployment.rst:5 -#: 0f1f7c0caa8a4dfcb659c15bedda5aae -msgid "Application service" -msgstr "" - -#: ../tutorial/deployment.rst:7 -#: b93527ef33ad4a65af273da09bb780f3 -msgid "After having finished Canaille installation you have to run it in a WSGI application server. Here are some WSGI server configuration examples you can pick. Do not forget to update the paths." -msgstr "" - -#: ../tutorial/deployment.rst:11 -#: 1ffbe89a8ff744fc9686484ce526e541 -msgid "gunicorn" -msgstr "" - -#: ../tutorial/deployment.rst:13 -#: 418a0ab3603442f2b0a515962f003029 -msgid "Todo" -msgstr "" - -#: ../tutorial/deployment.rst:15 -#: c40ad558fd584c01a6c564f8f72d12f3 -msgid "Write a gunicorn configuration sample file." -msgstr "" - -#: ../tutorial/deployment.rst:18 -#: ec3a0c7c05b74be6b1640ff6a4090aec -msgid "uwsgi" -msgstr "" - -#: ../tutorial/deployment.rst:42 -#: 5c4862bc3810432195a2e9a353f60b54 -msgid "Webserver" -msgstr "" - -#: ../tutorial/deployment.rst:44 -#: 94e56452db9741f0a3eee45f672e73a8 -msgid "Now you have to plug your WSGI application server to your webserver so it is accessible on the internet. Here are some webserver configuration examples you can pick:" -msgstr "" - -#: ../tutorial/deployment.rst:48 -#: 7c4ae615fbd44c3f8ab3ece2d0201ed7 -msgid "Nginx" -msgstr "" - -#: ../tutorial/deployment.rst:114 -#: ac66da9f7d1342bdad81dbdf97218b4e -msgid "Apache" -msgstr "" - -#: ../tutorial/deployment.rst:153 -#: ad13e4fdf804422facdde8b1b619e9a2 -msgid "Recurrent jobs" -msgstr "" - -#: ../tutorial/deployment.rst:155 -#: b9ba07959e7f4d57846b44490735d913 -msgid "You might want to clean up your database to avoid it growing too much. You can regularly delete expired tokens and authorization codes with:" -msgstr "" - -#: ../tutorial/deployment.rst:164 -#: 4a9929824eba46a883f1147dcdaa526e -msgid "Webfinger" -msgstr "" - -#: ../tutorial/deployment.rst:166 -#: cbd15001d4a043e5a0ec93a5eff80b9f -msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page." -msgstr "" - -#: ../tutorial/deployment.rst:168 -#: e515d97f8d8248f98081746a9b723611 -msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path." -msgstr "" - -#: ../tutorial/deployment.rst:170 -#: 3c7cb4cd4a2d498098fe4387a5ae3b2a -msgid "Here are configuration examples for Nginx or Apache:" -msgstr "" - -#: ../tutorial/deployment.rst:172 -#: a11ff6002ffc46b7b401b29c222cb984 -msgid "Nginx webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:181 -#: cc81b2ca58b842bab2583d46cd8ac1dc -msgid "Apache webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:191 -#: b9b3713c6f724e5cb3cad50756e8211c -msgid "Create the first user" -msgstr "" - -#: ../tutorial/deployment.rst:193 -#: 02df7f55e6df4452ac60d899b5a98cc2 -msgid "Once canaille is installed, soon enough you will need to add users. To create your first user you can use the :ref:`canaille create ` CLI." -msgstr "" - -#: ../tutorial/index.rst:2 -#: 3deeb02f520e41b4a510d72bdd446046 -msgid "Tutorial" -msgstr "" - -#: ../tutorial/install.rst:2 -#: 36b529fead5242468a36bdbbbdd28544 -msgid "Installation" -msgstr "" - -#: ../tutorial/install.rst:6 -#: c717982f410e46a28e3f97a9a1096146 -msgid "Canaille is under heavy development and may not fit a production environment yet." -msgstr "" - -#: ../tutorial/install.rst:8 -#: 6e7bc4fde5d74dceb03c1f03a95fa779 -msgid "The installation of canaille consist in several steps, some of which you can do manually or with command line tool:" -msgstr "" - -#: ../tutorial/install.rst:11 -#: 25f53875201f4538b26df4d537d355ea -msgid "Get the code" -msgstr "" - -#: ../tutorial/install.rst:13 -#: ac342d74e14244c4badfab8c1f829d94 -msgid "As the moment there is no distribution package for canaille. However, it can be installed with the ``pip`` package manager. Let us choose a place for the canaille environment, like ``/opt/canaille/env``." -msgstr "" - -#: ../tutorial/install.rst:24 -#: 15d4a0b372c44934a05f1ed6eb327a87 -msgid "Extras" -msgstr "" - -#: ../tutorial/install.rst:26 -#: 6c563bb9847e4766a5c3d0d461a35c2f -msgid "Canaille provides different package options:" -msgstr "" - -#: ../tutorial/install.rst:28 -#: 65dbf1cc88e14dcda675a7a20f71477b -msgid "`front` provides all the things needed to produce the user interface;" -msgstr "" - -#: ../tutorial/install.rst:29 -#: 932751ee90ac445f8271d5f0bf062139 -msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" -msgstr "" - -#: ../tutorial/install.rst:30 -#: 33ba6546cbf94064ab5290438b1120a8 -msgid "`ldap` provides the dependencies to enable the LDAP backend;" -msgstr "" - -#: ../tutorial/install.rst:31 -#: e65f505181e448e58b1aa158e8af5d42 -msgid "`sqlite` provides the dependencies to enable the SQLite backend;" -msgstr "" - -#: ../tutorial/install.rst:32 -#: f3fa4d1a59674077b16bdc0e432f326e -msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" -msgstr "" - -#: ../tutorial/install.rst:33 -#: f914db4dca274ab9bc725faba6cc6e86 -msgid "`mysql` provides the dependencies to enable the MySQL backend;" -msgstr "" - -#: ../tutorial/install.rst:34 -#: 7dad7a35aea54e549ac3328577c8e3e1 -msgid "`sentry` provides sentry integration to watch Canaille exceptions;" -msgstr "" - -#: ../tutorial/install.rst:35 -#: 1cd7e38d50bd4f439e285c870a8b005c -msgid "`all` provides all the extras above." -msgstr "" - -#: ../tutorial/install.rst:37 -#: cf6a1f2144114c7abfe4177c427d72f8 -msgid "They can be installed with:" -msgstr "" - -#: ../tutorial/install.rst:44 -#: 51d6f24a101c4511aa3d49db1914fa3a -msgid "Configure" -msgstr "" - -#: ../tutorial/install.rst:46 -#: 4efc51c21f274c449ecdd33dcc439625 -msgid "Choose a path where to store your configuration file. You can pass any configuration path with the ``CONFIG`` environment variable." -msgstr "" - -#: ../tutorial/install.rst:54 -#: 90dd73339c3e43f18395eb80d9749456 -msgid "You should then edit your configuration file to adapt the values to your needs. Look at the configuration details in the :doc:`configuration <../references/configuration>` page." -msgstr "" - -#: ../tutorial/install.rst:57 -#: 3ff3b9dbf5904b3dbb2494ee61825d15 -msgid "Install" -msgstr "" - -#: ../tutorial/install.rst:59 -#: 56e161c2e2ed4ae7a7d55bcc024135a1 -msgid "The :ref:`install command ` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database ` it will create the SQL tables, or install the LDAP schemas for instance." -msgstr "" - -#: ../tutorial/install.rst:68 -#: e4b60f64108549189d9627699af12a91 -msgid "Check" -msgstr "" - -#: ../tutorial/install.rst:70 -#: 1a9056c774724a0491bcb5060e8903f2 -msgid "After a manual installation, you can check your configuration file using the :ref:`check command `:" -msgstr "" - -#: ../tutorial/troubleshooting.rst:2 -#: 8e2c5e7ea5f14416a11a2ec648a32593 -msgid "Troubleshooting" -msgstr "" - -#: ../tutorial/troubleshooting.rst:5 -#: d1d6667b4caa4506a5be55cc7c4df22a -msgid "The web interface throws useless error messages" -msgstr "" - -#: ../tutorial/troubleshooting.rst:7 -#: a71c850aa84d41e99550cc54f23e5441 -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 -#: cc846be11ca448ddb1c1913d1e41ccbf -msgid "How to manually install LDAP schemas?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:16 -#: c9a20d92290541c0b5536e5cd150999d -msgid "Schema installation can be automatically done using the :ref:`install command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:18 -#: 830b3a72844a44d386308540cc44f1e4 -msgid "As of OpenLDAP 2.4, two configuration methods are available:" -msgstr "" - -#: ../tutorial/troubleshooting.rst:20 -#: 02db4b758cfd40f7b64bfb79bea9f5c3 -msgid "The `deprecated `_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" -msgstr "" - -#: ../tutorial/troubleshooting.rst:21 -#: 0b24de0faa944ae3b1af5c604a71098f -msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)." -msgstr "" - -#: ../tutorial/troubleshooting.rst:23 -#: 7acd99c26fd7480e8733523fbd29db13 -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 -#: 3917d45c79604f16ba0aca4887ff6dac -msgid "Old fashion: Copy the schemas in your filesystem" -msgstr "" - -#: ../tutorial/troubleshooting.rst:35 -#: 430b74fa77a94624bcae8606289222a3 -msgid "New fashion: Use slapadd to add the schemas" -msgstr "" - -#: ../tutorial/troubleshooting.rst:37 -#: 9fdc2c09b2dc44b3b5e45ed1271b3e7c -msgid "Be careful to stop your ldap server before running ``slapadd``" -msgstr "" - -#: ../tutorial/troubleshooting.rst:46 -#: cc6bfd549bd541eead7a37af15a25aef -msgid "How to manually generate the OIDC keypair?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:50 -#: 6dc2d317536b41ff839d98287a84f358 -msgid "The keypair generation can be automatically done using the :ref:`install command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:52 -#: 31db4facc32b4691b3625065562ef5c3 -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 "" diff --git a/doc/gettext/tutorial/databases.pot b/doc/gettext/tutorial/databases.pot deleted file mode 100644 index 8d95c6d0..00000000 --- a/doc/gettext/tutorial/databases.pot +++ /dev/null @@ -1,153 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/databases.rst:2 -#: 34b6a5df315e4629b9710884e3f5be9e -msgid "Databases" -msgstr "" - -#: ../tutorial/databases.rst:4 -#: 31f93a60c87648478dfe7a6c74d5f36a -msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:" -msgstr "" - -#: ../tutorial/databases.rst:8 -#: 8dc081315c7a4eea8be2e81b8a049162 -msgid "Memory" -msgstr "" - -#: ../tutorial/databases.rst:10 -#: 08608b21b52a4a22ac26b3a2a2d29f6a -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 -#: dbb9009fcf724d6290135aa1d6a32026 -msgid "This backend is only for test purpose and should not be used in production environments." -msgstr "" - -#: ../tutorial/databases.rst:16 -#: 06113268bf4a49d0880cdae75f961fc5 -msgid "SQL" -msgstr "" - -#: ../tutorial/databases.rst:18 -#: 2bb9cb1d3c4f4e4f93d649960bca123d -msgid "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." -msgstr "" - -#: ../tutorial/databases.rst:21 -#: bb4ec73e439d430aa8dbdddb0301bf5b -msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../tutorial/databases.rst:23 -#: ../tutorial/databases.rst:37 -#: 7de375f96b054244a9fb0c7c60663f32 -#: ebab073f2f894dfb87705d06ebb870af -msgid "config.toml" -msgstr "" - -#: ../tutorial/databases.rst:29 -#: 6e78f6be25cb4151951a1bc6994643a9 -msgid "You can find more details on the SQL configuration in the :class:`dedicated section `." -msgstr "" - -#: ../tutorial/databases.rst:32 -#: bcfa707ba3b2494ab1af853bcdc7673f -msgid "LDAP" -msgstr "" - -#: ../tutorial/databases.rst:34 -#: 426e632fa07a44369bdadb8a290672bf -msgid "Canaille can use OpenLDAP as its main database. It is used when the ``CANAILLE_LDAP`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../tutorial/databases.rst:52 -#: 0c319bcdd3b649569745572bb2944fec -msgid "You can find more details on the LDAP configuration in the :class:`dedicated section `." -msgstr "" - -#: ../tutorial/databases.rst:55 -#: ebc6e35e9a6049be8bc66eb127adf882 -msgid "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome." -msgstr "" - -#: ../tutorial/databases.rst:60 -#: 6a9ec2b8bf724122b5752c753bdaea7a -msgid "OpenLDAP overlays integration" -msgstr "" - -#: ../tutorial/databases.rst:62 -#: ce6daa0ac4974084990221c2806a5549 -msgid "Canaille can integrate with several OpenLDAP overlays:" -msgstr "" - -#: ../tutorial/databases.rst:65 -#: 24a7dc4d61504545ac841910fbaca48b -msgid "memberof / refint" -msgstr "" - -#: ../tutorial/databases.rst:67 -#: d24183e3349f42bfbbecde663f03f846 -msgid "`memberof `_ and `refint `_ overlays are needed for the Canaille group membership to work correctly." -msgstr "" - -#: ../tutorial/databases.rst:71 -#: ../tutorial/databases.rst:94 -#: 65357e9c96e341128f9448507ce02f1b -#: 692bdeebfc9c40999c9b09c8d9371e52 -msgid "Here is a configuration example compatible with canaille:" -msgstr "" - -#: ../tutorial/databases.rst:73 -#: 511312387435410987a190cf7b68f2ab -msgid "memberof-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:77 -#: c95e78d9dde84102b1a97c2399430c23 -msgid "refint-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:81 -#: ../tutorial/databases.rst:104 -#: 2e0fddced7e949f8a66653530c8a120b -#: 8686380cd79949259b48f68fe6c4d3b8 -msgid "You can adapt and load those configuration files with:" -msgstr "" - -#: ../tutorial/databases.rst:90 -#: af864ca7a8ef4d128d3fbe54749a944c -msgid "ppolicy" -msgstr "" - -#: ../tutorial/databases.rst:92 -#: fc8d77f8ca4d48de9eba6c408a9f5fc2 -msgid "If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute." -msgstr "" - -#: ../tutorial/databases.rst:96 -#: 15e6cfdc691149efbbdc2f3834c7a3d0 -msgid "ppolicy-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:100 -#: ef7f7bd8dd0445be8596864cb1b50fa5 -msgid "ppolicy.ldif" -msgstr "" diff --git a/doc/gettext/tutorial/deployment.pot b/doc/gettext/tutorial/deployment.pot deleted file mode 100644 index f4f2b40d..00000000 --- a/doc/gettext/tutorial/deployment.pot +++ /dev/null @@ -1,122 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/deployment.rst:2 -#: a7ef8cd4696b4e53a1ffdb87fb18c375 -msgid "Deployment" -msgstr "" - -#: ../tutorial/deployment.rst:5 -#: 0f1f7c0caa8a4dfcb659c15bedda5aae -msgid "Application service" -msgstr "" - -#: ../tutorial/deployment.rst:7 -#: b93527ef33ad4a65af273da09bb780f3 -msgid "After having finished Canaille installation you have to run it in a WSGI application server. Here are some WSGI server configuration examples you can pick. Do not forget to update the paths." -msgstr "" - -#: ../tutorial/deployment.rst:11 -#: 1ffbe89a8ff744fc9686484ce526e541 -msgid "gunicorn" -msgstr "" - -#: ../tutorial/deployment.rst:13 -#: 418a0ab3603442f2b0a515962f003029 -msgid "Todo" -msgstr "" - -#: ../tutorial/deployment.rst:15 -#: c40ad558fd584c01a6c564f8f72d12f3 -msgid "Write a gunicorn configuration sample file." -msgstr "" - -#: ../tutorial/deployment.rst:18 -#: ec3a0c7c05b74be6b1640ff6a4090aec -msgid "uwsgi" -msgstr "" - -#: ../tutorial/deployment.rst:42 -#: 5c4862bc3810432195a2e9a353f60b54 -msgid "Webserver" -msgstr "" - -#: ../tutorial/deployment.rst:44 -#: 94e56452db9741f0a3eee45f672e73a8 -msgid "Now you have to plug your WSGI application server to your webserver so it is accessible on the internet. Here are some webserver configuration examples you can pick:" -msgstr "" - -#: ../tutorial/deployment.rst:48 -#: 7c4ae615fbd44c3f8ab3ece2d0201ed7 -msgid "Nginx" -msgstr "" - -#: ../tutorial/deployment.rst:114 -#: ac66da9f7d1342bdad81dbdf97218b4e -msgid "Apache" -msgstr "" - -#: ../tutorial/deployment.rst:153 -#: ad13e4fdf804422facdde8b1b619e9a2 -msgid "Recurrent jobs" -msgstr "" - -#: ../tutorial/deployment.rst:155 -#: b9ba07959e7f4d57846b44490735d913 -msgid "You might want to clean up your database to avoid it growing too much. You can regularly delete expired tokens and authorization codes with:" -msgstr "" - -#: ../tutorial/deployment.rst:164 -#: 4a9929824eba46a883f1147dcdaa526e -msgid "Webfinger" -msgstr "" - -#: ../tutorial/deployment.rst:166 -#: cbd15001d4a043e5a0ec93a5eff80b9f -msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page." -msgstr "" - -#: ../tutorial/deployment.rst:168 -#: e515d97f8d8248f98081746a9b723611 -msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path." -msgstr "" - -#: ../tutorial/deployment.rst:170 -#: 3c7cb4cd4a2d498098fe4387a5ae3b2a -msgid "Here are configuration examples for Nginx or Apache:" -msgstr "" - -#: ../tutorial/deployment.rst:172 -#: a11ff6002ffc46b7b401b29c222cb984 -msgid "Nginx webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:181 -#: cc81b2ca58b842bab2583d46cd8ac1dc -msgid "Apache webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:191 -#: b9b3713c6f724e5cb3cad50756e8211c -msgid "Create the first user" -msgstr "" - -#: ../tutorial/deployment.rst:193 -#: 02df7f55e6df4452ac60d899b5a98cc2 -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 "" diff --git a/doc/gettext/tutorial/index.pot b/doc/gettext/tutorial/index.pot deleted file mode 100644 index e090e873..00000000 --- a/doc/gettext/tutorial/index.pot +++ /dev/null @@ -1,22 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/index.rst:2 -#: 3deeb02f520e41b4a510d72bdd446046 -msgid "Tutorial" -msgstr "" diff --git a/doc/gettext/tutorial/install.pot b/doc/gettext/tutorial/install.pot deleted file mode 100644 index 035b8ef1..00000000 --- a/doc/gettext/tutorial/install.pot +++ /dev/null @@ -1,132 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/install.rst:2 -#: 36b529fead5242468a36bdbbbdd28544 -msgid "Installation" -msgstr "" - -#: ../tutorial/install.rst:6 -#: c717982f410e46a28e3f97a9a1096146 -msgid "Canaille is under heavy development and may not fit a production environment yet." -msgstr "" - -#: ../tutorial/install.rst:8 -#: 6e7bc4fde5d74dceb03c1f03a95fa779 -msgid "The installation of canaille consist in several steps, some of which you can do manually or with command line tool:" -msgstr "" - -#: ../tutorial/install.rst:11 -#: 25f53875201f4538b26df4d537d355ea -msgid "Get the code" -msgstr "" - -#: ../tutorial/install.rst:13 -#: ac342d74e14244c4badfab8c1f829d94 -msgid "As the moment there is no distribution package for canaille. However, it can be installed with the ``pip`` package manager. Let us choose a place for the canaille environment, like ``/opt/canaille/env``." -msgstr "" - -#: ../tutorial/install.rst:24 -#: 15d4a0b372c44934a05f1ed6eb327a87 -msgid "Extras" -msgstr "" - -#: ../tutorial/install.rst:26 -#: 6c563bb9847e4766a5c3d0d461a35c2f -msgid "Canaille provides different package options:" -msgstr "" - -#: ../tutorial/install.rst:28 -#: 65dbf1cc88e14dcda675a7a20f71477b -msgid "`front` provides all the things needed to produce the user interface;" -msgstr "" - -#: ../tutorial/install.rst:29 -#: 932751ee90ac445f8271d5f0bf062139 -msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" -msgstr "" - -#: ../tutorial/install.rst:30 -#: 33ba6546cbf94064ab5290438b1120a8 -msgid "`ldap` provides the dependencies to enable the LDAP backend;" -msgstr "" - -#: ../tutorial/install.rst:31 -#: e65f505181e448e58b1aa158e8af5d42 -msgid "`sqlite` provides the dependencies to enable the SQLite backend;" -msgstr "" - -#: ../tutorial/install.rst:32 -#: f3fa4d1a59674077b16bdc0e432f326e -msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" -msgstr "" - -#: ../tutorial/install.rst:33 -#: f914db4dca274ab9bc725faba6cc6e86 -msgid "`mysql` provides the dependencies to enable the MySQL backend;" -msgstr "" - -#: ../tutorial/install.rst:34 -#: 7dad7a35aea54e549ac3328577c8e3e1 -msgid "`sentry` provides sentry integration to watch Canaille exceptions;" -msgstr "" - -#: ../tutorial/install.rst:35 -#: 1cd7e38d50bd4f439e285c870a8b005c -msgid "`all` provides all the extras above." -msgstr "" - -#: ../tutorial/install.rst:37 -#: cf6a1f2144114c7abfe4177c427d72f8 -msgid "They can be installed with:" -msgstr "" - -#: ../tutorial/install.rst:44 -#: 51d6f24a101c4511aa3d49db1914fa3a -msgid "Configure" -msgstr "" - -#: ../tutorial/install.rst:46 -#: 4efc51c21f274c449ecdd33dcc439625 -msgid "Choose a path where to store your configuration file. You can pass any configuration path with the ``CONFIG`` environment variable." -msgstr "" - -#: ../tutorial/install.rst:54 -#: 90dd73339c3e43f18395eb80d9749456 -msgid "You should then edit your configuration file to adapt the values to your needs. Look at the configuration details in the :doc:`configuration <../references/configuration>` page." -msgstr "" - -#: ../tutorial/install.rst:57 -#: 3ff3b9dbf5904b3dbb2494ee61825d15 -msgid "Install" -msgstr "" - -#: ../tutorial/install.rst:59 -#: 56e161c2e2ed4ae7a7d55bcc024135a1 -msgid "The :ref:`install command ` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database ` it will create the SQL tables, or install the LDAP schemas for instance." -msgstr "" - -#: ../tutorial/install.rst:68 -#: e4b60f64108549189d9627699af12a91 -msgid "Check" -msgstr "" - -#: ../tutorial/install.rst:70 -#: 1a9056c774724a0491bcb5060e8903f2 -msgid "After a manual installation, you can check your configuration file using the :ref:`check command `:" -msgstr "" diff --git a/doc/gettext/tutorial/troubleshooting.pot b/doc/gettext/tutorial/troubleshooting.pot deleted file mode 100644 index 868b6113..00000000 --- a/doc/gettext/tutorial/troubleshooting.pot +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../tutorial/troubleshooting.rst:2 -#: 8e2c5e7ea5f14416a11a2ec648a32593 -msgid "Troubleshooting" -msgstr "" - -#: ../tutorial/troubleshooting.rst:5 -#: d1d6667b4caa4506a5be55cc7c4df22a -msgid "The web interface throws useless error messages" -msgstr "" - -#: ../tutorial/troubleshooting.rst:7 -#: a71c850aa84d41e99550cc54f23e5441 -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 -#: cc846be11ca448ddb1c1913d1e41ccbf -msgid "How to manually install LDAP schemas?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:16 -#: c9a20d92290541c0b5536e5cd150999d -msgid "Schema installation can be automatically done using the :ref:`install command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:18 -#: 830b3a72844a44d386308540cc44f1e4 -msgid "As of OpenLDAP 2.4, two configuration methods are available:" -msgstr "" - -#: ../tutorial/troubleshooting.rst:20 -#: 02db4b758cfd40f7b64bfb79bea9f5c3 -msgid "The `deprecated `_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" -msgstr "" - -#: ../tutorial/troubleshooting.rst:21 -#: 0b24de0faa944ae3b1af5c604a71098f -msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)." -msgstr "" - -#: ../tutorial/troubleshooting.rst:23 -#: 7acd99c26fd7480e8733523fbd29db13 -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 -#: 3917d45c79604f16ba0aca4887ff6dac -msgid "Old fashion: Copy the schemas in your filesystem" -msgstr "" - -#: ../tutorial/troubleshooting.rst:35 -#: 430b74fa77a94624bcae8606289222a3 -msgid "New fashion: Use slapadd to add the schemas" -msgstr "" - -#: ../tutorial/troubleshooting.rst:37 -#: 9fdc2c09b2dc44b3b5e45ed1271b3e7c -msgid "Be careful to stop your ldap server before running ``slapadd``" -msgstr "" - -#: ../tutorial/troubleshooting.rst:46 -#: cc6bfd549bd541eead7a37af15a25aef -msgid "How to manually generate the OIDC keypair?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:50 -#: 6dc2d317536b41ff839d98287a84f358 -msgid "The keypair generation can be automatically done using the :ref:`install command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:52 -#: 31db4facc32b4691b3625065562ef5c3 -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 "" diff --git a/doc/locales/doc.pot b/doc/locales/doc.pot new file mode 100644 index 00000000..82e1f1b2 --- /dev/null +++ b/doc/locales/doc.pot @@ -0,0 +1,5397 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2024, Yaal Coop +# This file is distributed under the same license as the canaille package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: canaille 0.0.56\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-22 17:40+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../development/changelog.rst:2 +#: 67cd3658cd614334a30f658b422f2404 +msgid "Release notes" +msgstr "" + +#: ../development/changelog.rst:4 +#: 3e481ceb031d44c598fdff3839fc2fa5 +msgid "All notable changes to this project will be documented in there." +msgstr "" + +#: ../development/changelog.rst:6 +#: 961f4990e9bc499fbb370a780a32fe87 +msgid "The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_." +msgstr "" + +#: ../../CHANGES.rst:2 +#: f50c0c44028e40ffa2feb0f9b2b3a2ab +msgid "[0.0.57] - Unreleased" +msgstr "" + +#: ../../CHANGES.rst:5 +#: ../../CHANGES.rst:20 +#: ../../CHANGES.rst:48 +#: ../../CHANGES.rst:67 +#: ../../CHANGES.rst:74 +#: ../../CHANGES.rst:93 +#: ../../CHANGES.rst:151 +#: ../../CHANGES.rst:177 +#: ../../CHANGES.rst:192 +#: ../../CHANGES.rst:241 +#: ../../CHANGES.rst:267 +#: ../../CHANGES.rst:286 +#: ../../CHANGES.rst:294 +#: ../../CHANGES.rst:303 +#: ../../CHANGES.rst:327 +#: ../../CHANGES.rst:360 +#: ../../CHANGES.rst:386 +#: ../../CHANGES.rst:433 +#: ../../CHANGES.rst:461 +#: ../../CHANGES.rst:491 +#: ../../CHANGES.rst:547 +#: ../../CHANGES.rst:580 +#: ../../CHANGES.rst:601 +#: ../../CHANGES.rst:611 +#: ../../CHANGES.rst:634 +#: ../../CHANGES.rst:701 +#: ../../CHANGES.rst:739 +#: ../../CHANGES.rst:756 +#: ../../CHANGES.rst:792 +#: ab5aa1f397154334946c24484c5207db +#: 987c1ee9744940a6ad2e3d92abc14f5a +#: 270885d95d534553b64478f0e0046dec +#: 55f98faca33845c0806b83f30472fb49 +#: 7b7dfc5dec75407d9bc52873a8a2dc16 +#: 578c69e38e8e4879b064a7d8ecc1613c +#: 5c719eed5f284875b81c868720fc429f +#: e90749e5ccdb4d26b84919858e7759aa +#: c1836f6086134cee8b1a6d42936d74df +#: d5fb53279eab428eb46a59bf9d88d259 +#: 791a6f8c8e2140b4b0920e1b66ae2fbf +#: 4873d84261654e5b85450dc24a06d459 +#: 8391cf668e094280bb1407b08d3d60d7 +#: 5bcc6ebb7907430cbf3b0904af4cf16a +#: 1a22660429954c62a520dcc5dcabb331 +#: f3e30fe98ddd43ec91b66ef13b4b8c24 +#: 31b20d31eada452f98cac078d960b7db +#: 391fece98d594f21b99afc42f81f769f +#: a44c70e258fb44e2be6b7eabeac57a26 +#: 80d77b86f90949ccbcb5bb75b27e0743 +#: 76e193e0c1bd46108fb01d3fbc3c9459 +#: 31885dc1d8214e11855ce6c39934215a +#: 24ee4cccf3764dcc9e95dd59c385cf07 +#: afe74fa2118f41bd9d429d1c42cb1d61 +#: 8aafc67fde50493a8f449723e5bfb5cd +#: 0b6929fd54ae473a911ad9dafff9e022 +#: 98cc8c05fcdc47ab8ff37567dbf1358f +#: e1d1622c457a4b0c89498b60c3c33654 +#: da95365e057541ea88dbf0b90de6746e +msgid "Added" +msgstr "" + +#: ../../CHANGES.rst:6 +#: d999b390f8524c928b1894427243548e +msgid "Password compromission check :issue:`179`" +msgstr "" + +#: ../../CHANGES.rst:7 +#: 6462dbba2e5a42ba8097d3f532479339 +msgid ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` :issue:`179`" +msgstr "" + +#: ../../CHANGES.rst:13 +#: dd5cac3a17584534b4d6f98352d17e43 +msgid "[0.0.56] - 2024-11-07" +msgstr "" + +#: ../../CHANGES.rst:16 +#: ../../CHANGES.rst:58 +#: ../../CHANGES.rst:97 +#: ../../CHANGES.rst:105 +#: ../../CHANGES.rst:113 +#: ../../CHANGES.rst:120 +#: ../../CHANGES.rst:127 +#: ../../CHANGES.rst:141 +#: ../../CHANGES.rst:169 +#: ../../CHANGES.rst:182 +#: ../../CHANGES.rst:200 +#: ../../CHANGES.rst:219 +#: ../../CHANGES.rst:227 +#: ../../CHANGES.rst:253 +#: ../../CHANGES.rst:261 +#: ../../CHANGES.rst:281 +#: ../../CHANGES.rst:311 +#: ../../CHANGES.rst:341 +#: ../../CHANGES.rst:349 +#: ../../CHANGES.rst:373 +#: ../../CHANGES.rst:393 +#: ../../CHANGES.rst:415 +#: ../../CHANGES.rst:425 +#: ../../CHANGES.rst:446 +#: ../../CHANGES.rst:454 +#: ../../CHANGES.rst:477 +#: ../../CHANGES.rst:500 +#: ../../CHANGES.rst:512 +#: ../../CHANGES.rst:521 +#: ../../CHANGES.rst:530 +#: ../../CHANGES.rst:539 +#: ../../CHANGES.rst:559 +#: ../../CHANGES.rst:566 +#: ../../CHANGES.rst:616 +#: ../../CHANGES.rst:624 +#: ../../CHANGES.rst:649 +#: ../../CHANGES.rst:657 +#: ../../CHANGES.rst:665 +#: ../../CHANGES.rst:678 +#: ../../CHANGES.rst:692 +#: ../../CHANGES.rst:724 +#: ../../CHANGES.rst:747 +#: ../../CHANGES.rst:778 +#: ab3f1f2d7da74fd390bd72d2c2555d46 +#: 6271c228dfed4fa49cc6e264cb72c27c +#: 4f439967ff3b460a8a3b83e83340f8d9 +#: 6baacc56a2cb4785b0cd7dfb5b38fdf8 +#: 7a4377bf54fa419e823f67f3c7f87e54 +#: abee9b741be34fe5b2f12526e4282942 +#: 9ec7d988b004481581bf9eed558b81f3 +#: 972e1ac3a4f24490a8d3479840e340cd +#: ffbf845171dc4c788394ac32057988b3 +#: 222acb03686541a2bde8cc653791ee4b +#: 5ced8330e1f84595a7976fd9c12fd827 +#: a8df1cc5739743078a2f1eda61d5cabe +#: aea8a815749a40648b0cfdfcec09c482 +#: 5dfcee70e03c471099b7d52e9e0000f1 +#: d947d9c255af46908f904cd495736c31 +#: f02c14b560e7436aa5e3e64361475949 +#: ad92c14fc4b346fa89c8384e34f444b6 +#: 477d4760f44944e398031dea3e25deed +#: 5b7de269e34a429cb8e89036a1a9cbfc +#: 86165f9a20374dc5a2f9fabb7357d074 +#: 423cedf221ab478c9a6de9df30a6c81b +#: 88b8ec3a072d4a0eb0d97d379a719248 +#: 40a3c8e81a6648b4ba51557af9c86ff2 +#: 408f57d0b94342f6891d16ac8ce0331f +#: b23fafeb1bd941dab95ab487940cef40 +#: 5d59ba8ccbb44b0d9d7d104edabf99b9 +#: 80ba9f67468f450087de87e55cdd4a45 +#: 490dd374db164c78a36f8a9ba0eabc79 +#: 07a02b9c7c5447319f5009e477b13d1a +#: bd0a6780aaad40d582494457a6e11e96 +#: f04e873a41b4484f80cf316e3af98f88 +#: 0b894d80fc864b2a8983a2edb309e3c9 +#: 5881793d805b46b98957183e86138253 +#: 8358e68914904e3ea9714ffadd98440b +#: fe9fc3ab9266488fa5d7ff3c6a116550 +#: b0e8696994bd426aacf9197b9893e792 +#: fdf28506150e440b83dff3b421509253 +#: 3c910fae907e42bf911b9ea6a94e01d2 +#: 9c531f1e246c49bbab5dc0bb54a61535 +#: ca94f59104aa48719be683ce49196ed9 +#: fbd38d6d33f74c06954ee8f37b647101 +#: 5e3e6de8ebbc4a158dcb6fa2d0872949 +#: 9c393de405d945ebb22f14fc82160d15 +msgid "Fixed" +msgstr "" + +#: ../../CHANGES.rst:17 +#: bc3381481b1547d685c56be207b19be0 +msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`" +msgstr "" + +#: ../../CHANGES.rst:21 +#: 8006f574ff2c44c7a025d270c8209674 +msgid ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` configuration options :issue:`174`" +msgstr "" + +#: ../../CHANGES.rst:23 +#: f26ec8caf7ab464c90624b789eb2a272 +msgid "Password strength visual indicator :issue:`174`" +msgstr "" + +#: ../../CHANGES.rst:24 +#: c432db47193b4396beca35d06fa98009 +msgid "Security events logs :issue:`177`" +msgstr "" + +#: ../../CHANGES.rst:25 +#: 63204ec365834e619949c03aabce298e +msgid "Support for Python 3.13 :pr:`186`" +msgstr "" + +#: ../../CHANGES.rst:28 +#: ../../CHANGES.rst:41 +#: ../../CHANGES.rst:53 +#: ../../CHANGES.rst:78 +#: ../../CHANGES.rst:86 +#: ../../CHANGES.rst:134 +#: ../../CHANGES.rst:158 +#: ../../CHANGES.rst:210 +#: ../../CHANGES.rst:247 +#: ../../CHANGES.rst:316 +#: ../../CHANGES.rst:332 +#: ../../CHANGES.rst:368 +#: ../../CHANGES.rst:405 +#: ../../CHANGES.rst:440 +#: ../../CHANGES.rst:483 +#: ../../CHANGES.rst:587 +#: ../../CHANGES.rst:641 +#: ../../CHANGES.rst:673 +#: ../../CHANGES.rst:687 +#: a1f0d7f6c1ec47d6a204ad9287a89e9a +#: f511a81ae64d49d3beca0311a05f6506 +#: d5c71b9db5364918b67f3fbecd0c98a0 +#: 2660c3be83544fd2b75efd31ef841b4b +#: e969ad72eb4f46f78d44add5a74d04e5 +#: 4a17bb23ba68435885c9ead313854c97 +#: a07ef9c714354188b5f14a8e06c92218 +#: e1aa10c7563b41459f78a0b289e5e74c +#: 5c25e29c3fbe4854bb196b2b7b7bcffd +#: 3ca72317f36f432b84b488d6b627b2ba +#: c36c838c3245430ab8e80467cad4493a +#: 20e6cab81af843709f5971457b7e2a9a +#: d7dc2bd5de644365aeb40d0dbec0d196 +#: 0d8f005a24614c829c50bbcb08fc3a55 +#: 1065ec7b5d194101bc6a26e1bc91d6e0 +#: 205ee486c99f45f980a8ec1333ab6840 +#: c093a9288c774441994eafd94d6d7c4a +#: 409cf18e41564685b1304826f83bb82e +#: f02cb5a0a71e449883c4b767b0d03f65 +msgid "Changed" +msgstr "" + +#: ../../CHANGES.rst:29 +#: 772b297a85d24919a7020f1801ef2d53 +msgid "Update to HTMX 2.0.3 :pr:`184`" +msgstr "" + +#: ../../CHANGES.rst:30 +#: 04fbacaeecca493a950405e7ccdb9b9e +msgid "Migrate from poetry to uv :pr:`187`" +msgstr "" + +#: ../../CHANGES.rst:31 +#: f5087c2835224603a98a4be790b6abf5 +msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``." +msgstr "" + +#: ../../CHANGES.rst:34 +#: ../../CHANGES.rst:378 +#: ../../CHANGES.rst:784 +#: 03965a024d1a4713ac9e7cd0aa777c2e +#: 11c684b9a5194d2cb0ebd9f9401ae1b9 +#: 52ad2462d9414e3db1dde9095d84f94b +msgid "Removed" +msgstr "" + +#: ../../CHANGES.rst:35 +#: c4ed2628b8dd4ecc887d0a695ed173f2 +msgid "End support for python 3.9. :pr:`179`" +msgstr "" + +#: ../../CHANGES.rst:38 +#: 4f318e1e657f471a8d0d8294b9acc9c9 +msgid "[0.0.55] - 2024-08-30" +msgstr "" + +#: ../../CHANGES.rst:42 +#: eb3a9d38860f40cebd255a348218bd62 +msgid "Use poetry-core build backend. :pr:`178`" +msgstr "" + +#: ../../CHANGES.rst:45 +#: 57daa02be9184f998cdff17e8a34e2a5 +msgid "[0.0.54] - 2024-07-25" +msgstr "" + +#: ../../CHANGES.rst:49 +#: b5c787c52c8d4bbb8fb68b84104780a9 +msgid "Group member removal can be achieved from the group edition page :issue:`192`" +msgstr "" + +#: ../../CHANGES.rst:50 +#: 7992eed042904424ac33cf866a27b04b +msgid "Model management commands :issue:`117` :issue:`54`" +msgstr "" + +#: ../../CHANGES.rst:54 +#: aaf3e30baa7b467ea98e1b52054fe7df +msgid "Model `identifier_attributes` are fixed." +msgstr "" + +#: ../../CHANGES.rst:55 +#: 30380f5332814aaba304c105d39a25b9 +msgid "Bump to htmx 1.9.12 :pr:`172`" +msgstr "" + +#: ../../CHANGES.rst:60 +#: 8341a10e300e4349a9f0c65283880008 +msgid "Dark theme colors for better readability" +msgstr "" + +#: ../../CHANGES.rst:61 +#: 12f80ed63946464c999dc123c1ef327d +msgid "Crash for passwordless users at login when no SMTP server was configured." +msgstr "" + +#: ../../CHANGES.rst:64 +#: 2ca835d7715645079cf9983da6e90f5d +msgid "[0.0.53] - 2024-04-22" +msgstr "" + +#: ../../CHANGES.rst:68 +#: c5e32fdab90943d9b2470c01da6f15bc +msgid "`env_prefix` create_app variable can select the environment var prefix." +msgstr "" + +#: ../../CHANGES.rst:71 +#: 3837079e13ad4b91812ba85098ae0f85 +msgid "[0.0.52] - 2024-04-22" +msgstr "" + +#: ../../CHANGES.rst:75 +#: 85c3b9d4b9784188ba7a2b77e5ba4367 +msgid "`env_file` create_app variable can customize/disable the .env file" +msgstr "" + +#: ../../CHANGES.rst:79 +#: 4e1c06838a964523a5f3152cff12c745 +msgid "Locked users cannot be impersonated anymore." +msgstr "" + +#: ../../CHANGES.rst:80 +#: 279ee70c54204bdeb774ad443da884b3 +msgid "Minimum python requirement is 3.9." +msgstr "" + +#: ../../CHANGES.rst:83 +#: 50150ebfa4ee46f89359c2ac24a23afa +msgid "[0.0.51] - 2024-04-09" +msgstr "" + +#: ../../CHANGES.rst:87 +#: cef19dd2bbe34a82ae327ae3ef555e64 +msgid "Display the menu bar on error pages." +msgstr "" + +#: ../../CHANGES.rst:90 +#: c2c4f10439aa46fca505b6d66dc12fe5 +msgid "[0.0.50] - 2024-04-09" +msgstr "" + +#: ../../CHANGES.rst:94 +#: 2d669c2640004f48a8a90b817e7102e6 +msgid "Sign in/out events are logged in :issue:`177`" +msgstr "" + +#: ../../CHANGES.rst:98 +#: d9f688dfcb194333b8c3f88e25414a12 +msgid "HTMX and JAVASCRIPT configuration settings." +msgstr "" + +#: ../../CHANGES.rst:99 +#: 1109da2610e54dce877fdaf7303ccb7c +msgid "Compatibility with old sessions IDs." +msgstr "" + +#: ../../CHANGES.rst:102 +#: 3594c96423614043905b1a659a2a5f75 +msgid "[0.0.49] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:106 +#: c3135f57d77e4af7ba16a158aa3940bd +msgid "LDAP user group removal." +msgstr "" + +#: ../../CHANGES.rst:107 +#: bbd2812d503c4219a82acab0da1eebe4 +msgid "Display an error message when trying to remove the last user from a group." +msgstr "" + +#: ../../CHANGES.rst:110 +#: 580674f1c6c84d43b9f2e36bcb63fd19 +msgid "[0.0.48] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:114 +#: b1e83de115e94004a0286ceb6fb0f43e +msgid "LDAP objectClass guessing exception." +msgstr "" + +#: ../../CHANGES.rst:117 +#: 5869129c770142f593d850e7769b53d7 +msgid "[0.0.47] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:121 +#: 672cd5d7429b4bf19e618b27f39b3bed +msgid "Lazy permission loading exception." +msgstr "" + +#: ../../CHANGES.rst:124 +#: 24c6fd1776144722b58f994f4897f31a +msgid "[0.0.46] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:128 +#: 45d2c205d12f4e4a8ef2c3dd3b260716 +msgid "Saving an object with the LDAP backend keeps the objectClass un-managed by Canaille. :pr:`171`" +msgstr "" + +#: ../../CHANGES.rst:131 +#: 8037692934c0458e9af204802119652e +msgid "[0.0.45] - 2024-04-04" +msgstr "" + +#: ../../CHANGES.rst:135 +#: 6c147cf1a17149f793621d4e849340d4 +msgid "Internal indexation mechanism of :class:`~canaille.backends.memory.model.MemoryModel`" +msgstr "" + +#: ../../CHANGES.rst:138 +#: 7a6e44921aed4e0d8853ed35180af7eb +msgid "[0.0.44] - 2024-03-29" +msgstr "" + +#: ../../CHANGES.rst:142 +#: 642b0bf28736445e9dc4bf118eb694c5 +msgid "Fix the default LDAP USER_FILTER value" +msgstr "" + +#: ../../CHANGES.rst:143 +#: 8102138696f442faa87e34a341b6a386 +msgid "Fix the OIDC feature detection" +msgstr "" + +#: ../../CHANGES.rst:146 +#: 176cf871ea17465483927093589a62bf +msgid "[0.0.43] - 2024-03-29" +msgstr "" + +#: ../../CHANGES.rst:148 +#: d202c6932dba459eb731d4f313e26ed6 +msgid "🚨Configuration files must be updated.🚨" +msgstr "" + +#: ../../CHANGES.rst:153 +#: 3418403c2c6c4b22ac95a1484edf0090 +msgid "Add `created` and `last_modified` datetime for all models" +msgstr "" + +#: ../../CHANGES.rst:154 +#: 2faf3c09645a47a389e7ee28401c1cc1 +msgid "Sitemap to the documentation :pr:`169`" +msgstr "" + +#: ../../CHANGES.rst:155 +#: 7dc819a2236242d59d0f0231995bf4db +msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" +msgstr "" + +#: ../../CHANGES.rst:160 +#: f966fcd0a59d4b8a84700f0c1fc7affb +msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" +msgstr "" + +#: ../../CHANGES.rst:161 +#: 0e54ffbaaa59428c9f70e646a34b589f +msgid "Bump to htmx 1.99.11 :pr:`166`" +msgstr "" + +#: ../../CHANGES.rst:162 +#: fa00a76a7cc640d8a4ab38aff4588754 +msgid "Use the standard tomllib python module instead of `toml` starting from python 3.11 :pr:`167`" +msgstr "" + +#: ../../CHANGES.rst:163 +#: 71da1b5d24524012b000cebfef9da015 +msgid "Use shibuya as the documentation theme :pr:`168`" +msgstr "" + +#: ../../CHANGES.rst:166 +#: 07e9974f609349f184d5352e95803c56 +msgid "[0.0.42] - 2023-12-29" +msgstr "" + +#: ../../CHANGES.rst:171 +#: 55826cff5ebf47e3a0fa65745076d338 +msgid "Avoid to fail on imports if ``cryptography`` is missing." +msgstr "" + +#: ../../CHANGES.rst:174 +#: 1bf1f3563cc74ca4bdadbb1d5e91e812 +msgid "[0.0.41] - 2023-12-25" +msgstr "" + +#: ../../CHANGES.rst:179 +#: 9b77b5fcd33e47769be00b04243124c3 +msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" +msgstr "" + +#: ../../CHANGES.rst:184 +#: 6209cf36283e4748a0ce92573c947e5c +msgid "Correctly set up Client audience during OIDC dynamic registration." +msgstr "" + +#: ../../CHANGES.rst:185 +#: 73cf49f960fc4cb59885f6a1842dbd1b +msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration." +msgstr "" + +#: ../../CHANGES.rst:186 +#: 6f9de7829cdf45408bac9c822831cc34 +msgid "Group field error prevented the registration form validation." +msgstr "" + +#: ../../CHANGES.rst:189 +#: 4666a556cec5416ea0a2fa82c6ac8774 +msgid "[0.0.40] - 2023-12-22" +msgstr "" + +#: ../../CHANGES.rst:194 +#: a9b7a9ae69d348249652eaebe584e684 +msgid "``THEME`` can be a relative path" +msgstr "" + +#: ../../CHANGES.rst:197 +#: 109c1ca0876a4c0e9c15bc2915eddbfb +msgid "[0.0.39] - 2023-12-15" +msgstr "" + +#: ../../CHANGES.rst:202 +#: f9008fb79f12470bb23cd30348b93d9a +msgid "Crash when no ACL were defined" +msgstr "" + +#: ../../CHANGES.rst:203 +#: 3310cde4950a4781b8b78cca6f57c3a7 +msgid "OIDC Userinfo endpoint is also available in POST" +msgstr "" + +#: ../../CHANGES.rst:204 +#: c0a168fd6568499cb6a2f3a620c0b089 +msgid "Fix redirection after password reset :issue:`159`" +msgstr "" + +#: ../../CHANGES.rst:207 +#: f97779b5f3a840bc8afe089f6e29aa71 +msgid "[0.0.38] - 2023-12-15" +msgstr "" + +#: ../../CHANGES.rst:212 +#: 122aa8a1b3754780b670922404886b17 +msgid "Convert all the png in webp. :pr:`162`" +msgstr "" + +#: ../../CHANGES.rst:213 +#: 5898c4a08c4d4f1f92fd2d4bff41a0f9 +msgid "Update to flask 3 :issue:`161` :pr:`163`" +msgstr "" + +#: ../../CHANGES.rst:216 +#: 47b92ff1907c44098c19285b348962df +msgid "[0.0.37] - 2023-12-01" +msgstr "" + +#: ../../CHANGES.rst:221 +#: 16ecd2c9e49841a08c45873e9ffc15a5 +msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" +msgstr "" + +#: ../../CHANGES.rst:224 +#: 025f7e23694c4a5a9e3e7b35f9398803 +msgid "[0.0.36] - 2023-12-01" +msgstr "" + +#: ../../CHANGES.rst:229 +#: 1e87982a9767434c93e77fe04ef6b732 +msgid "Avoid crashing when LDAP groups references unexisting users." +msgstr "" + +#: ../../CHANGES.rst:230 +#: 0c0c7a63d17c449d995f1a09e94e5ce5 +msgid "Password reset and initialization mails were only sent to the preferred user email address." +msgstr "" + +#: ../../CHANGES.rst:232 +#: 46093d04b37742d4aa6d6c833efb9169 +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:234 +#: aaa0ed1234884df4bd166fc3660940f6 +msgid "Password comparison was too permissive on login." +msgstr "" + +#: ../../CHANGES.rst:235 +#: f7923902c7b848c8b410734447def6be +msgid "Encrypt passwords in the SQL backend." +msgstr "" + +#: ../../CHANGES.rst:238 +#: 54117dbe4a9d4a3ab1122bbdd02e54cc +msgid "[0.0.35] - 2023-11-25" +msgstr "" + +#: ../../CHANGES.rst:243 +#: b270c023d5b24c7a9e36aa1604cba899 +msgid "Refresh token grant supports other client authentication methods. :pr:`157`" +msgstr "" + +#: ../../CHANGES.rst:244 +#: 1be4f2f6c6744ab48dc04db54e9ba156 +msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" +msgstr "" + +#: ../../CHANGES.rst:249 +#: fa13759d0fc34677a489f85c9272cdd8 +msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" +msgstr "" + +#: ../../CHANGES.rst:250 +#: cb188a2c909e4a9799665644315d9b7b +msgid "Bump to htmx 1.9.9 :pr:`159`" +msgstr "" + +#: ../../CHANGES.rst:255 +#: b04c65689fb543b7be31f7a0a2aaf0ea +msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" +msgstr "" + +#: ../../CHANGES.rst:258 +#: 5167fe4d3b5a436dabe0f4a02355f4ed +msgid "[0.0.34] - 2023-10-02" +msgstr "" + +#: ../../CHANGES.rst:263 +#: 3ee50efe016d4052907aef5c6102b484 +msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`" +msgstr "" + +#: ../../CHANGES.rst:269 +#: 38504ec51a164f3b98569149fec29ee4 +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:272 +#: e651c1a66dce44f39fad07fba2c1f291 +msgid "flask-babel and pytz are now part of the `front` extras" +msgstr "" + +#: ../../CHANGES.rst:273 +#: ffea0a5e9c3d4381afd56a9273bcf12e +msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" +msgstr "" + +#: ../../CHANGES.rst:274 +#: f11437acd1b741059f3daec3560a112d +msgid "Bump to htmx 1.9.6 :pr:`154`" +msgstr "" + +#: ../../CHANGES.rst:275 +#: 7feafc0715454e30bc4e8fd8a9cc309f +msgid "Add support for python 3.12 :pr:`155`" +msgstr "" + +#: ../../CHANGES.rst:278 +#: b96d712d22ab448db7e33cd686e11721 +msgid "[0.0.33] - 2023-08-26" +msgstr "" + +#: ../../CHANGES.rst:283 +#: 833955120d3a473c84983c46fe718b91 +msgid "OIDC jwks endpoint do not return empty kid claim" +msgstr "" + +#: ../../CHANGES.rst:288 +#: f5898ac6a32f4c499a4c5580a7c54966 +msgid "Documentation details on the canaille models." +msgstr "" + +#: ../../CHANGES.rst:291 +#: da7d4a30e26f4a5cb07a2f7dfe43fea2 +msgid "[0.0.32] - 2023-08-17" +msgstr "" + +#: ../../CHANGES.rst:296 +#: 316d70c2680d4a78ad27c3dc1aea14e0 +msgid "Additional inmemory backend :issue:`30` :pr:`149`" +msgstr "" + +#: ../../CHANGES.rst:297 +#: a65a596439904aefbb39f8b05fe30f30 +msgid "Installation extras :issue:`167` :pr:`150`" +msgstr "" + +#: ../../CHANGES.rst:300 +#: 9127245373594fca9b7a36e4848cdc10 +msgid "[0.0.31] - 2023-08-15" +msgstr "" + +#: ../../CHANGES.rst:305 +#: a5b07d1b747c49d4875b0d0860ff5d9d +msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" +msgstr "" + +#: ../../CHANGES.rst:306 +#: 9b93d35fa85d464ba8ff56e6a38a0427 +msgid "Validate phone numbers with a regex :pr:`146`" +msgstr "" + +#: ../../CHANGES.rst:307 +#: 59c4d6e85f8e43a5a4fcc4479ffd512e +msgid "Email verification :issue:`41` :pr:`147`" +msgstr "" + +#: ../../CHANGES.rst:308 +#: 59c116d74ac144fe844d61d9c74b0388 +msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" +msgstr "" + +#: ../../CHANGES.rst:313 +#: 62c1175ad9334e10b4b8d6830a988f34 +msgid "The `check` command uses the default configuration values." +msgstr "" + +#: ../../CHANGES.rst:318 +#: afc98e6a88ed40b39c8b7a58ec19ac83 +msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" +msgstr "" + +#: ../../CHANGES.rst:321 +#: 7fa3744f2d2245578bb1366b65c4b95d +msgid "[0.0.30] - 2023-07-06" +msgstr "" + +#: ../../CHANGES.rst:323 +#: 06acb9ecdeda40e6ab9779ac29a2683f +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:329 +#: 67ac5239414e4ba8afc8c1c79b68778b +msgid "Configuration option to disable javascript :pr:`141`" +msgstr "" + +#: ../../CHANGES.rst:334 +#: ee3585b455904ce290bfdb4510a5d263 +msgid "Configuration ``USER_FILTER`` is parsed with jinja." +msgstr "" + +#: ../../CHANGES.rst:335 +#: 197fa7a065954dc3b68b12e027896ffc +msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" +msgstr "" + +#: ../../CHANGES.rst:338 +#: 34ee8ce4f3084993be4d50e7eb00b49e +msgid "[0.0.29] - 2023-06-30" +msgstr "" + +#: ../../CHANGES.rst:343 +#: d631a992cd814dc5906f324cd2c5ce73 +msgid "Disabled HTMX boosting on OIDC forms to avoid errors." +msgstr "" + +#: ../../CHANGES.rst:346 +#: 200926f2c212448b80c7725f63519043 +msgid "[0.0.28] - 2023-06-30" +msgstr "" + +#: ../../CHANGES.rst:351 +#: 5223a0abf9b64396b5fa2418bd5751a8 +msgid "A template variable was misnamed." +msgstr "" + +#: ../../CHANGES.rst:354 +#: be7ee2a030cf43219aae50a4c5f0ab6a +msgid "[0.0.27] - 2023-06-29" +msgstr "" + +#: ../../CHANGES.rst:356 +#: 2666915938534406a320536bdbbd0554 +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:362 +#: 5f5b722aee9f4ba29479b672f35ccf7c +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:364 +#: 1371c61101714aafb244d8cd1e8253e3 +msgid "Field list support. :issue:`115` :pr:`136`" +msgstr "" + +#: ../../CHANGES.rst:365 +#: 6a2be3993ef94f059661f156a00d1998 +msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" +msgstr "" + +#: ../../CHANGES.rst:370 +#: 6a7eb394ccac4c1c861366a87abfca96 +msgid "Bump to jquery 3.7.0 :pr:`138`" +msgstr "" + +#: ../../CHANGES.rst:375 +#: 37e230a7a27b4edebb7d15cf8eac1ed3 +msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" +msgstr "" + +#: ../../CHANGES.rst:380 +#: 7b579ed05a6143ad8b71083558ad4886 +msgid "Stop support for python 3.7 :pr:`131`" +msgstr "" + +#: ../../CHANGES.rst:383 +#: 58a9bf28b3474e37890ba7d28b82ab30 +msgid "[0.0.26] - 2023-06-03" +msgstr "" + +#: ../../CHANGES.rst:388 +#: d8c168a1e8f949809571bff78a2bd99c +msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+ :issue:`13` :pr:`118`" +msgstr "" + +#: ../../CHANGES.rst:390 +#: d33a02c2d22b48deadb6a1fffffa3997 +msgid "Timezone configuration entry. :issue:`137` :pr:`130`" +msgstr "" + +#: ../../CHANGES.rst:395 +#: 4617a577ef234215b9353bad4f557134 +msgid "Avoid setting ``None`` in JWT claims when they have no value." +msgstr "" + +#: ../../CHANGES.rst:396 +#: 39881e258b72450389337909f09e6440 +msgid "Display password recovery button on OIDC login page. :pr:`129`" +msgstr "" + +#: ../../CHANGES.rst:399 +#: 63debedadfec46be9f414faff076a86c +msgid "[0.0.25] - 2023-05-05" +msgstr "" + +#: ../../CHANGES.rst:401 +#: a6e54c1befb64af68886d55fc7b6bfc4 +msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" +msgstr "" + +#: ../../CHANGES.rst:407 +#: bdf8599b7bf142c0bf114ba5ff3746c9 +msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" +msgstr "" + +#: ../../CHANGES.rst:408 +#: 0334473536484446a99dcc1b75e33ead +msgid "Moved OIDC related configuration entries in ``OIDC``" +msgstr "" + +#: ../../CHANGES.rst:409 +#: cddd4c4e432942cb8b461a086258701e +msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" +msgstr "" + +#: ../../CHANGES.rst:410 +#: 3d7f3d84aa8f48259eb46e977185c408 +msgid "Bumped to htmx 1.9.0 :pr:`124`" +msgstr "" + +#: ../../CHANGES.rst:411 +#: 543f6a2c0efa47f38c7399f5c05080c9 +msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`" +msgstr "" + +#: ../../CHANGES.rst:412 +#: 7a24cba4271641348073bcce9f541d7b +msgid "Bumped to htmx 1.9.2 :pr:`127`" +msgstr "" + +#: ../../CHANGES.rst:417 +#: 844ae11353a542cba52926d11be58a8f +msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." +msgstr "" + +#: ../../CHANGES.rst:418 +#: d32333109d8844b3851200fd42b32843 +msgid "Fixed empty model attributes registration :pr:`125`" +msgstr "" + +#: ../../CHANGES.rst:419 +#: 03d34520a30b4ac882cf036e16e38899 +msgid "Password initialization mails were not correctly sent. :pr:`128`" +msgstr "" + +#: ../../CHANGES.rst:422 +#: c2a78f890b3a427d9e9dc01262d5d5ea +msgid "[0.0.24] - 2023-04-07" +msgstr "" + +#: ../../CHANGES.rst:427 +#: 24f752a301b2496591f67fcffdeafe25 +msgid "Fixed avatar update. :pr:`122`" +msgstr "" + +#: ../../CHANGES.rst:430 +#: 3a298aaac36145feb91c222086bee8a4 +msgid "[0.0.23] - 2023-04-05" +msgstr "" + +#: ../../CHANGES.rst:435 +#: 5000bcfa626b414aa9ce51abbfbe7216 +msgid "Organization field. :pr:`116`" +msgstr "" + +#: ../../CHANGES.rst:436 +#: c8bed00e30b74ebeb69409b0c40df754 +msgid "ETag and Last-Modified headers on user photos. :pr:`116`" +msgstr "" + +#: ../../CHANGES.rst:437 +#: cafc105434e34a70b25c9e0b1020474d +msgid "Dynamic form validation :pr:`120`" +msgstr "" + +#: ../../CHANGES.rst:442 +#: 9dbaf487296d41708aee2a7e3675712d +msgid "UX rework. Submenu addition. :pr:`114`" +msgstr "" + +#: ../../CHANGES.rst:443 +#: 9bea6b30702b4bf0867cb65d2db2921e +msgid "Properly handle LDAP date timezones. :pr:`117`" +msgstr "" + +#: ../../CHANGES.rst:448 +#: 58b9bc8d6a1d49bcbe843f0dd6634119 +msgid "CSRF protection on every forms. :pr:`119`" +msgstr "" + +#: ../../CHANGES.rst:451 +#: 77840b152a3c43f691e7069af9126b79 +msgid "[0.0.22] - 2023-03-13" +msgstr "" + +#: ../../CHANGES.rst:455 +#: 820347a1b1904089be2bfdf7e5ecccb8 +msgid "faker is not imported anymore when the `clean` command is called." +msgstr "" + +#: ../../CHANGES.rst:458 +#: c370eda737bc49ad942e8e1352ed3fbc +msgid "[0.0.21] - 2023-03-12" +msgstr "" + +#: ../../CHANGES.rst:463 +#: f1a36d309e9d44fea5195d47bbfef221 +msgid "Display TOS and policy URI on the consent list page. :pr:`102`" +msgstr "" + +#: ../../CHANGES.rst:464 +#: 9ba464ef1e6f4d288c776cd5d8f4d92d +msgid "Admin token deletion :pr:`100` :pr:`101`" +msgstr "" + +#: ../../CHANGES.rst:465 +#: e2ef22ae1f5843e0a2ef673fa7f7c50c +msgid "Revoked consents can be restored. :pr:`103`" +msgstr "" + +#: ../../CHANGES.rst:466 +#: 60b5b8d41456436ab6dc5f94bd9fb25d +msgid "Pre-consented clients are displayed in the user consent list, and their consents can be revoked. :issue:`69` :pr:`103`" +msgstr "" + +#: ../../CHANGES.rst:468 +#: c855058215b74c03bf29bb17f52b44b3 +msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`" +msgstr "" + +#: ../../CHANGES.rst:470 +#: bcdc9b4284cf4d96ac95036837bd6cb8 +msgid "SMTP SSL support. :pr:`108`" +msgstr "" + +#: ../../CHANGES.rst:471 +#: 1c546550c9e44068a9f7ac2bd4dc24d9 +msgid "Server side pagination. :issue:`114` :pr:`111`" +msgstr "" + +#: ../../CHANGES.rst:472 +#: 274c2da3f10a4443af767d398c72caae +msgid "Department number support. :issue:`129`" +msgstr "" + +#: ../../CHANGES.rst:473 +#: d0025fabcf5748d7b84b989bca461f8d +msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" +msgstr "" + +#: ../../CHANGES.rst:474 +#: a66ab0cdc2704584a8e18bab7768fa51 +msgid "Title edition support :pr:`113`" +msgstr "" + +#: ../../CHANGES.rst:479 +#: 630e1bb97016446788f2729aab365de3 +msgid "Client deletion also deletes related Consent, Token and AuthorizationCode objects. :issue:`126` :pr:`98`" +msgstr "" + +#: ../../CHANGES.rst:485 +#: 09d7bf4a44e748859b8e8a1dcd6245fd +msgid "Removed datatables." +msgstr "" + +#: ../../CHANGES.rst:488 +#: d68570950096439c99d3e685956660fe +msgid "[0.0.20] - 2023-01-28" +msgstr "" + +#: ../../CHANGES.rst:493 +#: 79178006e2874f1393320079455156f6 +msgid "Spanish translation. :pr:`85` :pr:`88`" +msgstr "" + +#: ../../CHANGES.rst:494 +#: c7578b67e89e4d7e8479f0cb4f016e22 +msgid "Dedicated connectivity test email :pr:`89`" +msgstr "" + +#: ../../CHANGES.rst:495 +#: 8b1da3651919458da0895f6e8d6fb54f +msgid "Update to jquery 3.6.3 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:496 +#: 75423d75c9ed4f0fb527ab970e3478ee +msgid "Update to fomantic-ui 2.9.1 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:497 +#: 6f4d1b59e9044315bdc22634324f9473 +msgid "Update to datatables 1.13.1 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:502 +#: 7ac8e3c501f9420daa7493e80a88b25e +msgid "Fix typos and grammar errors. :pr:`84`" +msgstr "" + +#: ../../CHANGES.rst:503 +#: 978be82816ec4286ac1b5f42943c89c5 +msgid "Fix wording and punctuations. :pr:`86`" +msgstr "" + +#: ../../CHANGES.rst:504 +#: 396b9df072c9403082e80e55b46e1927 +msgid "Fix HTML lang tag :issue:`122` :pr:`87`" +msgstr "" + +#: ../../CHANGES.rst:505 +#: 7bb7722c07524ea8a2da66c6d5d0e8e0 +msgid "Automatically trims the HTML translated strings. :pr:`91`" +msgstr "" + +#: ../../CHANGES.rst:506 +#: 81e6ce27ee054614a99f2e35d793834b +msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" +msgstr "" + +#: ../../CHANGES.rst:509 +#: 81bd9cc8e92543cc9a5a7bb1e0bf3ba9 +msgid "[0.0.19] - 2023-01-14" +msgstr "" + +#: ../../CHANGES.rst:514 +#: 2fffaa8902364cb598b956febacab5a7 +msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`" +msgstr "" + +#: ../../CHANGES.rst:518 +#: d808dc60e83141ea8b4df96d7be0981e +msgid "[0.0.18] - 2022-12-28" +msgstr "" + +#: ../../CHANGES.rst:523 +#: fd9ec96bc77a4b48af2ef15435efd97a +msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri`` :pr:`82`" +msgstr "" + +#: ../../CHANGES.rst:527 +#: 00f55eac59fd40a8aac2e64639b338fb +msgid "[0.0.17] - 2022-12-26" +msgstr "" + +#: ../../CHANGES.rst:532 +#: de2d0bd26dcc4d9e85636b7aec93f477 +msgid "Fixed group deletion button. :pr:`80`" +msgstr "" + +#: ../../CHANGES.rst:533 +#: aca6ee4b724747fdbb2ff63faf9260a7 +msgid "Fixed post requests in oidc clients views. :pr:`81`" +msgstr "" + +#: ../../CHANGES.rst:536 +#: c681882951634cdc9642ad433c3b14e4 +msgid "[0.0.16] - 2022-12-15" +msgstr "" + +#: ../../CHANGES.rst:541 +#: d3b63fd6277c4505bb90ed30d63feb17 +msgid "Fixed LDAP operational attributes handling." +msgstr "" + +#: ../../CHANGES.rst:544 +#: 4eaed5f2828a460b8a6ab3c274dec8f9 +msgid "[0.0.15] - 2022-12-15" +msgstr "" + +#: ../../CHANGES.rst:549 +#: 32501311a27a44ce8f4ca4c70f217b9d +msgid "User can chose their favourite display name. :pr:`77`" +msgstr "" + +#: ../../CHANGES.rst:550 +#: c1a1bc1b748e45148aec5bc1698b6482 +msgid "Bumped to authlib 1.2. :pr:`78`" +msgstr "" + +#: ../../CHANGES.rst:551 +#: 73a75a1d074a416da3d9224262e47c4b +msgid "Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management Protocol :pr:`79`" +msgstr "" + +#: ../../CHANGES.rst:553 +#: 941cf9889d0945f2b6f7086ab74d6a0d +msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." +msgstr "" + +#: ../../CHANGES.rst:556 +#: 290bfbc5be994362a7c461bddae68239 +msgid "[0.0.14] - 2022-11-29" +msgstr "" + +#: ../../CHANGES.rst:560 +#: 938f721e12344e9eaa6339418089ac62 +msgid "Fixed translation mo files packaging." +msgstr "" + +#: ../../CHANGES.rst:563 +#: dc2b4309dac14824a6f762923e99ecb8 +msgid "[0.0.13] - 2022-11-21" +msgstr "" + +#: ../../CHANGES.rst:568 +#: 222a7bdf5ad147699be17b5b1d482795 +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:570 +#: 9bcceeb9b16c48aca35c3e24349b7eb2 +msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined." +msgstr "" + +#: ../../CHANGES.rst:572 +#: 159af058202743fcb0486353f1c74ece +msgid "Gitlab CI fix. :pr:`64`" +msgstr "" + +#: ../../CHANGES.rst:573 +#: 86dd1ccc54f64cea825b5905f5c7f345 +msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" +msgstr "" + +#: ../../CHANGES.rst:574 +#: 53ad61ce433e4fa594dca68529988d46 +msgid "Fixed non-square logo CSS. :pr:`67`" +msgstr "" + +#: ../../CHANGES.rst:575 +#: 40ee80b30fc84c889c7b5cd67d1c02c7 +msgid "Fixed schema path on installation. :pr:`68`" +msgstr "" + +#: ../../CHANGES.rst:576 +#: 64213050390145db906dd2609820855c +msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" +msgstr "" + +#: ../../CHANGES.rst:577 +#: a05884be9bd24638b5c33339363e4b51 +msgid "Fixed client preconsent disabling. :pr:`72`" +msgstr "" + +#: ../../CHANGES.rst:582 +#: 2574335adaa24f349ea52f684397d2ed +msgid "Python 3.11 support. :pr:`61`" +msgstr "" + +#: ../../CHANGES.rst:583 +#: 03878041c3014e518264e9edf1caa544 +msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" +msgstr "" + +#: ../../CHANGES.rst:584 +#: fb788ae2d8044a5487a78862d11d49fb +msgid "``preferredLanguage`` attribute support. :pr:`75`" +msgstr "" + +#: ../../CHANGES.rst:589 +#: b3b8433b408045f4ac2326f236b91445 +msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`." +msgstr "" + +#: ../../CHANGES.rst:591 +#: 981b5e2bdcc04694b51e784d25e8d046 +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:594 +#: 3b00ccf2444141cd8822d92b97ed6053 +msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" +msgstr "" + +#: ../../CHANGES.rst:595 +#: 94f401fe37d64a87a9c46e8444c320b0 +msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" +msgstr "" + +#: ../../CHANGES.rst:598 +#: 9f898ef7445a403c934afd0d8bdd7309 +msgid "[0.0.12] - 2022-10-24" +msgstr "" + +#: ../../CHANGES.rst:603 +#: a9ea99e80b5044489ac2776a6921bad2 +msgid "Basic WebFinger endpoint. :pr:`59`" +msgstr "" + +#: ../../CHANGES.rst:604 +#: 4407eb810f564c388ebacbc03d71909b +msgid "Bumped to FomanticUI 2.9.0 00ffffee" +msgstr "" + +#: ../../CHANGES.rst:605 +#: 874ed8b234184d08b196ccccddec7939 +msgid "Implemented Dynamic Client Registration :pr:`60`" +msgstr "" + +#: ../../CHANGES.rst:608 +#: 97f44d9b82ea4375abffbcc306c9d57a +msgid "[0.0.11] - 2022-08-11" +msgstr "" + +#: ../../CHANGES.rst:613 +#: 1f6b0b91546a4b1d8fe0d2a9a918aba1 +msgid "Default theme has a dark variant. :pr:`57`" +msgstr "" + +#: ../../CHANGES.rst:618 +#: fd0ec66c12da46659d54721b72996afc +msgid "Fixed missing ``canaille`` binary. :pr:`58`" +msgstr "" + +#: ../../CHANGES.rst:621 +#: 92b1d721a1fa4b8096b8e2798c16bff3 +msgid "[0.0.10] - 2022-07-07" +msgstr "" + +#: ../../CHANGES.rst:626 +#: d56498d4078e4192ad16b221a5063fb6 +msgid "Online demo. :pr:`55`" +msgstr "" + +#: ../../CHANGES.rst:627 +#: eeb4a3ccc4124e65a3ea654fc8984a62 +msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" +msgstr "" + +#: ../../CHANGES.rst:628 +#: 31b230fa246e43c7b94368e938c713f7 +msgid "Fixed end session when user are already disconnected." +msgstr "" + +#: ../../CHANGES.rst:631 +#: b28210e5c5eb4f8bbaf4e4d8d4367ca3 +msgid "[0.0.9] - 2022-06-05" +msgstr "" + +#: ../../CHANGES.rst:636 +#: d273331200ae4b2393ef57600cc5803c +msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`" +msgstr "" + +#: ../../CHANGES.rst:637 +#: cdc9a1acc7cd4e97b364b897c75bc7b7 +msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" +msgstr "" + +#: ../../CHANGES.rst:638 +#: 6cae26c486a9428e82ecab5871fe38c8 +msgid "Implemented RP-initiated logout :pr:`54`" +msgstr "" + +#: ../../CHANGES.rst:643 +#: b66d1dea48ea465fb1a24a681c9c42d4 +msgid "Bumped to authlib 1 :pr:`48`" +msgstr "" + +#: ../../CHANGES.rst:644 +#: c2572fb40b7c4b6c9046b27142efdfd0 +msgid "documentation improvements :pr:`50`" +msgstr "" + +#: ../../CHANGES.rst:645 +#: 6855cf1f37cf4323befaed034b4f6d6b +msgid "use poetry instead of setuptools :pr:`51`" +msgstr "" + +#: ../../CHANGES.rst:646 +#: f1290c925e174c7992384ccedef040b6 +msgid "additional nonce tests :pr:`52`" +msgstr "" + +#: ../../CHANGES.rst:650 +#: 59ef0ddc1bf14b0dad16ad22641c3386 +msgid "``HIDE_INVALID_LOGIN`` behavior and default value." +msgstr "" + +#: ../../CHANGES.rst:651 +#: c595d06befba47b8be48a357e02c3d27 +msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" +msgstr "" + +#: ../../CHANGES.rst:654 +#: c4902a72e08241479a3dd830495e1e21 +msgid "[0.0.8] - 2022-03-15" +msgstr "" + +#: ../../CHANGES.rst:659 +#: 96164d0e2a7e49bea54f2c428087908d +msgid "Fixed dependencies" +msgstr "" + +#: ../../CHANGES.rst:662 +#: 0c82079f96d647439755cddc37a06943 +msgid "[0.0.7] - 2022-03-15" +msgstr "" + +#: ../../CHANGES.rst:667 +#: 197a6ee29d77411f81c5bedc462a9699 +msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" +msgstr "" + +#: ../../CHANGES.rst:670 +#: ad07a539305344a99595ca0f3957f080 +msgid "[0.0.6] - 2022-03-08" +msgstr "" + +#: ../../CHANGES.rst:675 +#: 229628dd374e405eb938b9ded3ceb1a9 +msgid "Access token are JWT. :pr:`38`" +msgstr "" + +#: ../../CHANGES.rst:680 +#: b840a7dd1e5c49049e9c42a6dcc2cdd6 +msgid "Default groups on invitations :pr:`41`" +msgstr "" + +#: ../../CHANGES.rst:681 +#: 9bd87857eca846b5a7ce2eb78aa3b98a +msgid "Schemas are shipped within the canaille package :pr:`42`" +msgstr "" + +#: ../../CHANGES.rst:684 +#: 29e4efc1bc38404b98ed95a9bea98654 +msgid "[0.0.5] - 2022-02-17" +msgstr "" + +#: ../../CHANGES.rst:689 +#: b25170ebddba4781a06b71ea8c212411 +msgid "LDAP model objects have new identifiers :pr:`37`" +msgstr "" + +#: ../../CHANGES.rst:694 +#: 4fe23c23cb264a8a976be5984cfffccd +msgid "Admin menu dropdown display :pr:`39`" +msgstr "" + +#: ../../CHANGES.rst:695 +#: 311170f2960e462a8710c34e68e17f5e +msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" +msgstr "" + +#: ../../CHANGES.rst:698 +#: 2b26718a9b1341c787d0bf9be620a5d0 +msgid "[0.0.4] - 2022-02-16" +msgstr "" + +#: ../../CHANGES.rst:703 +#: edf0938d51834ee99b5ab70345fbf965 +msgid "Client preauthorization :pr:`11`" +msgstr "" + +#: ../../CHANGES.rst:704 +#: 1a40388976dc432e810b4d99937c9d44 +msgid "LDAP permissions check with the check command :pr:`12`" +msgstr "" + +#: ../../CHANGES.rst:705 +#: 89f59530fe4b458491ff240282d546af +msgid "Update consents when a scope required is larger than the scope of an already given consent :pr:`13`" +msgstr "" + +#: ../../CHANGES.rst:707 +#: 9c5fb554f5a24297a2b5427488413dd0 +msgid "Theme customization :pr:`15`" +msgstr "" + +#: ../../CHANGES.rst:708 +#: d14a00a5d6ec4e9db215fb6d68e3c65e +msgid "Logging configuration :pr:`16`" +msgstr "" + +#: ../../CHANGES.rst:709 +#: 0ca72541f86849f7b789e833c11cfd48 +msgid "Installation command :pr:`17`" +msgstr "" + +#: ../../CHANGES.rst:710 +#: c11b918827644f168592b76f423f7762 +msgid "Invitation links :pr:`18`" +msgstr "" + +#: ../../CHANGES.rst:711 +#: dc0e344ee1ac4d89841b404ac286cdbb +msgid "Advanced permissions :pr:`20`" +msgstr "" + +#: ../../CHANGES.rst:712 +#: 81c86c070a904d57be88f7c9d9b28895 +msgid "An option to not use OIDC :pr:`23`" +msgstr "" + +#: ../../CHANGES.rst:713 +#: 68011d12b1b2444da423776414eb9c58 +msgid "Disable some features when no SMTP server is configured :pr:`24`" +msgstr "" + +#: ../../CHANGES.rst:714 +#: acd6cedde2b34836ab29657171968453 +msgid "Login placeholder dynamically generated according to the configuration :pr:`25`" +msgstr "" + +#: ../../CHANGES.rst:715 +#: f9d1cc0bc3d34e469d512834b192b4b2 +msgid "Added an option to tune object IDs :pr:`26`" +msgstr "" + +#: ../../CHANGES.rst:716 +#: 3dc13715b3eb41c4a9c9ac8a8388d024 +msgid "Avatar support :pr:`27`" +msgstr "" + +#: ../../CHANGES.rst:717 +#: f73abd3a60014fb8a117a4eac6482a47 +msgid "Dynamical and configurable JWT claims :pr:`28`" +msgstr "" + +#: ../../CHANGES.rst:718 +#: 795843f468c946d0b282d39d69f491d8 +msgid "UI improvements :pr:`29`" +msgstr "" + +#: ../../CHANGES.rst:719 +#: 1a1cc1890a464ecd9e88038a2e3a948e +msgid "Invitation links expiration :pr:`30`" +msgstr "" + +#: ../../CHANGES.rst:720 +#: 82908f54c8464b60bc31e055769c27ab +msgid "Invitees can choose their IDs :pr:`31`" +msgstr "" + +#: ../../CHANGES.rst:721 +#: 99f351a2973748d0afd34d40d5bdb736 +msgid "LDAP backend refactoring :pr:`35`" +msgstr "" + +#: ../../CHANGES.rst:726 +#: d467678d501149308dadaf66191e539f +msgid "Fixed ghost members in a group :pr:`14`" +msgstr "" + +#: ../../CHANGES.rst:727 +#: 1fc764e3f7904f85bf16a0518a4dcae0 +msgid "Fixed email sender names :pr:`19`" +msgstr "" + +#: ../../CHANGES.rst:728 +#: 762cec2be7084103848f63f08c17ac78 +msgid "Fixed filter being not escaped :pr:`21`" +msgstr "" + +#: ../../CHANGES.rst:729 +#: 0bd6ef3db9a949b6a764366bc44473c8 +msgid "Demo script good practices :pr:`32`" +msgstr "" + +#: ../../CHANGES.rst:730 +#: d6390a77df244e1aab4395426bdf2a48 +msgid "Binary path for Debian :pr:`33`" +msgstr "" + +#: ../../CHANGES.rst:731 +#: 49392d82626245468db66609b164694e +msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server :pr:`34`" +msgstr "" + +#: ../../CHANGES.rst:733 +#: 4bd138b857ee46b0b20158863b90161d +msgid "Spelling typos :pr:`36`" +msgstr "" + +#: ../../CHANGES.rst:736 +#: 788bfaf9894445909c8158278ce15bd2 +msgid "[0.0.3] - 2021-10-13" +msgstr "" + +#: ../../CHANGES.rst:741 +#: 8fad9ca44d3b452f85b71d932cc31c19 +msgid "Two-steps sign-in :issue:`49`" +msgstr "" + +#: ../../CHANGES.rst:742 +#: 4eeef635dea440a08a2898b7eb3230a8 +msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" +msgstr "" + +#: ../../CHANGES.rst:743 +#: 0c8f51332d8e46d0986f570ff22e0ff1 +msgid "Configuration check command. :issue:`66` :pr:`8`" +msgstr "" + +#: ../../CHANGES.rst:744 +#: eacb7f4bd0f14a1cab39447065809e75 +msgid "Groups management. :issue:`12` :pr:`6`" +msgstr "" + +#: ../../CHANGES.rst:749 +#: f7439c841aa840888f0c083ec8adfe74 +msgid "Introspection access bugfix. :issue:`63` :pr:`10`" +msgstr "" + +#: ../../CHANGES.rst:750 +#: d1f0bc7e377343c09b18e6d8a63a5010 +msgid "Introspection sub claim. :issue:`64` :pr:`7`" +msgstr "" + +#: ../../CHANGES.rst:753 +#: dc5c8ef174484f35a42b31cd3f2a9f08 +msgid "[0.0.2] - 2021-01-06" +msgstr "" + +#: ../../CHANGES.rst:758 +#: d44afb15022f44959c9677ca62f14d2b +msgid "Login page is responsive. :issue:`1`" +msgstr "" + +#: ../../CHANGES.rst:759 +#: 4baa37708ab1438c971fb346cdd01e94 +msgid "Adapt mobile keyboards to login page fields. :issue:`2`" +msgstr "" + +#: ../../CHANGES.rst:760 +#: 99d9f04a69b4471eb1e70d2277c9205c +msgid "Password recovery interface. :issue:`3`" +msgstr "" + +#: ../../CHANGES.rst:761 +#: 87ee8c581db74c4e8f63cbc2697afb33 +msgid "User profile interface. :issue:`4`" +msgstr "" + +#: ../../CHANGES.rst:762 +#: e078cbb83f754d9eb59d944fe0a3578c +msgid "Renamed the project *canaille*. :issue:`5`" +msgstr "" + +#: ../../CHANGES.rst:763 +#: b857f069d51048058e186f728d743edd +msgid "Command to remove old tokens. :issue:`17`" +msgstr "" + +#: ../../CHANGES.rst:764 +#: ced480248bc3492e8e816a75e8218f25 +msgid "Improved password recovery email. :issue:`14` :issue:`26`" +msgstr "" + +#: ../../CHANGES.rst:765 +#: 245ec1976f2b4f63be97bbc1afe62454 +msgid "Use flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`" +msgstr "" + +#: ../../CHANGES.rst:766 +#: c56fe72201d349e0855ffb946909db00 +msgid "Improved consents page. :issue:`27`" +msgstr "" + +#: ../../CHANGES.rst:767 +#: b7059f4e5c70478bae9372e27a44836b +msgid "Admin user page. :issue:`8`" +msgstr "" + +#: ../../CHANGES.rst:768 +#: 4169f2f4a58c4f618de700da350aadad +msgid "Project logo. :pr:`29`" +msgstr "" + +#: ../../CHANGES.rst:769 +#: b39b14dad63d485b9870eca1f6d16c9e +msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`" +msgstr "" + +#: ../../CHANGES.rst:770 +#: 20abce934b714676b97e9b2a0745b7bd +msgid "Admins can impersonate users. :issue:`39`" +msgstr "" + +#: ../../CHANGES.rst:771 +#: 4f62f72e118348aeba0e31aca0ced22a +msgid "Forgotten page UX improvement. :pr:`43`" +msgstr "" + +#: ../../CHANGES.rst:772 +#: a76c7f3833c34952aec02584bcfa1039 +msgid "Admins can remove clients. :pr:`45`" +msgstr "" + +#: ../../CHANGES.rst:773 +#: 6be5896f77054ae39df134400b1870d9 +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:775 +#: 510877991b7d405dae6c77b61b31d71f +msgid "Password initialization mail. :pr:`51`" +msgstr "" + +#: ../../CHANGES.rst:780 +#: 6a3654cde6ee4927bee7a8aa0359c656 +msgid "Form translations. :issue:`19` :issue:`23`" +msgstr "" + +#: ../../CHANGES.rst:781 +#: ec324330dee34013ad82c1d00fe8c7c9 +msgid "Avoid to use Google Fonts. :issue:`21`" +msgstr "" + +#: ../../CHANGES.rst:786 +#: e5515578ce384bb5814068c9c9a70567 +msgid "'My tokens' page. :issue:`22`" +msgstr "" + +#: ../../CHANGES.rst:789 +#: 5f1ce59b42134ab296e053facb181b09 +msgid "[0.0.1] - 2020-10-21" +msgstr "" + +#: ../../CHANGES.rst:794 +#: 4ea47aa0a66c4cacbf10523af477f36a +msgid "Initial release." +msgstr "" + +#: ../../CONTRIBUTING.rst:2 +#: 0b841ff58ceb49d58df5854258f7f6e4 +msgid "Contributions" +msgstr "" + +#: ../../CONTRIBUTING.rst:4 +#: 3a228b3941b845fe9f97a98dda21b6c1 +msgid "Contributions are welcome!" +msgstr "" + +#: ../../CONTRIBUTING.rst:6 +#: 376791696837443799d15eaac3fece86 +msgid "The repository is hosted at `gitlab.com/yaal/canaille `_." +msgstr "" + +#: ../../CONTRIBUTING.rst:9 +#: cf4f8584594a4b14814becbcde09e445 +msgid "Discuss" +msgstr "" + +#: ../../CONTRIBUTING.rst:11 +#: 4d13d0df9201499c849d24523ae1bcd0 +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 +#: fa5c801973694e3a8b366eca8118e245 +msgid "Development environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:18 +#: f4955bb4916c4ef3aa872fd9d42e4280 +msgid "You can either run the demo locally or with Docker." +msgstr "" + +#: ../../CONTRIBUTING.rst:20 +#: c52b8ce6082d4254a73f64cdea1750c6 +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 +#: ec22edb478cc46a8b24ae8abab8a4075 +msgid "Initialize your development environment with: - ``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``. - ``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``. - ``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``. - ``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:31 +#: 85d3edc02ca447c2bc95484ee5b24366 +msgid "After having launched the demo you have access to several services:" +msgstr "" + +#: ../../CONTRIBUTING.rst:33 +#: 1f803759ce7c424f99c2b6379d78221e +msgid "A canaille server at `localhost:5000 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:34 +#: f35728db0c4c4c34a77e986a30d13b9b +msgid "A dummy client at `localhost:5001 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:35 +#: 1b3293f8aa8b4347a5e68fb8cd379dc9 +msgid "Another dummy client at `localhost:5002 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:37 +#: dc367e129b3c4a338790f50ee1c157d1 +msgid "The canaille server has some default users:" +msgstr "" + +#: ../../CONTRIBUTING.rst:39 +#: 917cd6e723084a88829205c5544100bb +msgid "A regular user which login and password are **user**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:40 +#: 9dcb660b7bcb4adc96e5497d248b08e6 +msgid "A moderator user which login and password are **moderator**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:41 +#: bd86721dd0704d62846642b06c6295ac +msgid "An admin user which admin and password are **admin**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:42 +#: 4d97d74c5e0e44b29ba6d2176066f3e2 +msgid "A new user which login is **james**. This user has no password yet, and his first attempt to log-in would result in sending a password initialization email (if a smtp server is configured)." +msgstr "" + +#: ../development/specifications.rst:62 +#: ../features.rst:258 +#: ../../CONTRIBUTING.rst:47 +#: 6680030625d24566b0ce617d85b05a09 +#: 8fc0509085aa46a1a6c157e63ececab3 +#: 5e1960df6cbc48ef8d4e518999525455 +msgid "Backends" +msgstr "" + +#: ../../CONTRIBUTING.rst:49 +#: 3acf5b56655c4e31877e624fbfe62ef7 +msgid "Canaille comes with several backends:" +msgstr "" + +#: ../../CONTRIBUTING.rst:51 +#: e74e335e14a948379ebcffcd2e179a83 +msgid "a lightweight test purpose `memory` backend" +msgstr "" + +#: ../../CONTRIBUTING.rst:52 +#: b75cb89dfc354a1582d8e3e27d358962 +msgid "a `sql` backend, based on sqlalchemy" +msgstr "" + +#: ../../CONTRIBUTING.rst:53 +#: 6bf1fa26de7c4e159c4f75f5afc0e05c +msgid "a production-ready `LDAP` backend" +msgstr "" + +#: ../../CONTRIBUTING.rst:56 +#: b16bac707a05428fa5bfed53f6a32db0 +msgid "Docker environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:58 +#: 742ff809c71a40c088c3f89eb73b2b93 +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:63 +#: be0d34c286ef4ab4ac7122eb6e9e65f5 +msgid "To do that, you can add the following line to your `/etc/hosts`:" +msgstr "" + +#: ../../CONTRIBUTING.rst:69 +#: 16faae905af04224adbc24373e4638b6 +msgid "To launch containers, use:" +msgstr "" + +#: ../../CONTRIBUTING.rst:84 +#: 5ade389862524550a35a0eeb916d1997 +msgid "Local environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:98 +#: 112bb71df28044c5ac80aad688c2e626 +msgid "If you want to run the demo locally with the LDAP backend, you need to have `OpenLDAP `_ installed on your system. It is generally shipped under the ``slapd`` or ``openldap`` package name." +msgstr "" + +#: ../../CONTRIBUTING.rst:103 +#: baa2b719fe074ed7b24161707a9c3ae5 +msgid "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor, and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions on `slapd`." +msgstr "" + +#: ../../CONTRIBUTING.rst:113 +#: 47f2c33951314a88983f4b9ba69c4859 +msgid "Populate the database" +msgstr "" + +#: ../../CONTRIBUTING.rst:115 +#: 0b3c84f80f704c37b09ef3777c9a455b +msgid "The demo database comes populated with some random users and groups. If you need more, you can generate users and groups with the ``populate`` command:" +msgstr "" + +#: ../../CONTRIBUTING.rst:126 +#: 417b21826b5a42d0b6a96b0189e048db +msgid "Adapt to use either the `ldap` or the `sql` configuration file. Note that this will not work with the memory backend." +msgstr "" + +#: ../../CONTRIBUTING.rst:129 +#: b65a089d8c04494897e62def00c3e8d0 +msgid "Unit tests" +msgstr "" + +#: ../../CONTRIBUTING.rst:131 +#: 4c0a14a03a96497b976695bb31de269a +msgid "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to test all the supported python environments. Everything must be green before patches get merged." +msgstr "" + +#: ../../CONTRIBUTING.rst:134 +#: bbc93760dbce46ed81fac989a27dffbe +msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox." +msgstr "" + +#: ../../CONTRIBUTING.rst:136 +#: 5d65f7f964fe4749af55ea833170718d +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:141 +#: 00c8610b432d42279b50f4886592ca4d +msgid "Code style" +msgstr "" + +#: ../../CONTRIBUTING.rst:143 +#: 065cd1c8fe3248cfa39fdbd5ddc971a6 +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:149 +#: b3c1556e731a47fb849c8241222bd055 +msgid "Front" +msgstr "" + +#: ../../CONTRIBUTING.rst:151 +#: b1a19093596c40bb8f8f2135549d1e09 +msgid "The interface is built upon the `Fomantic UI `_ CSS framework. The dynamical parts of the interface use `htmx `_." +msgstr "" + +#: ../../CONTRIBUTING.rst:154 +#: f869aeed650d483089c231afb5bbf53b +msgid "Using Javascript in the interface is tolerated, but the whole website MUST be accessible for browsers without Javascript support, and without any feature loss." +msgstr "" + +#: ../../CONTRIBUTING.rst:156 +#: a5dd1b880eff47448537cc901ee9e805 +msgid "Because of Fomantic UI we have a dependency to jQuery, however new contributions should not depend on jQuery at all. See the `related issue `_." +msgstr "" + +#: ../index.rst:70 +#: ../../CONTRIBUTING.rst:161 +#: b913aeba1ad5474fb1e44c894a5bfa90 +#: 41500af8731e4ba89744089904b7c0dc +msgid "Documentation" +msgstr "" + +#: ../../CONTRIBUTING.rst:163 +#: a1e7ca49e6ba469f808cea47212aaad1 +msgid "The documentation is generated when the tests run:" +msgstr "" + +#: ../../CONTRIBUTING.rst:169 +#: 5d14700fab344aac97b45d2355edd8cb +msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:" +msgstr "" + +#: ../../CONTRIBUTING.rst:175 +#: 281ffc8c56eb44a6902c1e433a2f06c1 +msgid "The generated documentation is located at ``build/sphinx/html``." +msgstr "" + +#: ../../CONTRIBUTING.rst:178 +#: 84d2b6e65e9844bba85242b5a1dbde0d +msgid "Code translation" +msgstr "" + +#: ../../canaille/translations/README.rst:1 +#: 17e0507823c7454aa4685f731f4a6a39 +msgid "Translations are done with `Weblate `_." +msgstr "" + +#: ../../canaille/translations/README.rst:3 +#: 98859d4a4cfb4e1099d9e41e0c0dc7ad +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:7 +#: ../../canaille/translations/README.rst:8 +#: readme.rst:7 +#: da9cbe0a91494687be53577e7ba0858b +#: 98940c0798314aa780b5900389189be1 +#: 8feb9440d14b454e81ddf182624d1e11 +msgid "Message extraction" +msgstr "" + +#: readme.rst:9 +#: ../../canaille/translations/README.rst:10 +#: readme.rst:9 +#: f4203275c2e54c12936bf1a4b21abeef +#: 614744bdefa745f28730c40f989b7991 +#: f6d23bb322dc4bd3a41ec61872b946d9 +msgid "After you have edited translatable strings, you should extract the messages with:" +msgstr "" + +#: readme.rst:16 +#: ../../canaille/translations/README.rst:17 +#: readme.rst:16 +#: 7a3f0bdd22e14dca8142ecd0c54feae1 +#: 896afe4ce83d4752adae753409df8c33 +#: d7b7d615e7624c7684b03f1a25460740 +msgid "Language addition" +msgstr "" + +#: readme.rst:18 +#: ../../canaille/translations/README.rst:19 +#: readme.rst:18 +#: ac14b64d752d4a0abe2546b275ff10d0 +#: 84be22f280a940ec9b76a9b71946e086 +#: 24fa92b04b464da48e956b12869393b2 +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 +#: af0d8d1b10944e9db96f3f4cefee66fb +msgid "Catalog update" +msgstr "" + +#: ../../canaille/translations/README.rst:28 +#: b5475c2944234984b620d6d91f8a2221 +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 +#: eeb2fd4d30b74eb4bcd9d441fa01605f +msgid "Catalog compilation" +msgstr "" + +#: ../../canaille/translations/README.rst:38 +#: 36c99b1985b547079944012018f0eb07 +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:184 +#: c074b1f74e174501a3f82e2f736a4a1d +msgid "Documentation translation" +msgstr "" + +#: readme.rst:1 +#: readme.rst:1 +#: 244b268047014a85b0176ab1c8faf3a6 +#: ade9f769db9e4cc9a997baaf4373a2ed +msgid "Documentation translation Translations are done with `Weblate `_." +msgstr "" + +#: readme.rst:4 +#: readme.rst:4 +#: 38e647d5a9464b878efff0dc35b0f653 +#: 440db8cf5e02467e9855c9851fbbf21e +msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors." +msgstr "" + +#: readme.rst:25 +#: readme.rst:25 +#: 831101c27e9c44c3a3b18a9ac292e1f3 +#: be0097273ba54257ba9fb2f693f2634b +msgid "Build the documentation in another language" +msgstr "" + +#: ../../CONTRIBUTING.rst:189 +#: 9291446656944a00b33c9fbdf1114940 +msgid "Publish a new release" +msgstr "" + +#: ../../CONTRIBUTING.rst:191 +#: 075d9467ced14c0ea318dc63f97a5dbf +msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;" +msgstr "" + +#: ../../CONTRIBUTING.rst:192 +#: e686349f49f841c78d74268faeb196a9 +msgid "Check that tests are still green for every supported python version, and that coverage is still at 100%, by running ``uv run tox``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:193 +#: 3cf6b2ec316847b58530da654eda9540 +msgid "Check that the demo environments are still working, both the local and the Docker one;" +msgstr "" + +#: ../../CONTRIBUTING.rst:194 +#: 173fc656e33848fd88eadf5bb585f2ae +msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;" +msgstr "" + +#: ../../CONTRIBUTING.rst:195 +#: d675a44fa1c243e8833393195118b668 +msgid "Increase the version number in ``pyproject.toml``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:196 +#: a370194bde174420b1624bea7fc03740 +msgid "Commit with ``git commit``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:197 +#: 38fdd454db454cc09194cdcb7eec0800 +msgid "Build with ``uv build``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:198 +#: 56d61d64dbd34871b51373eff47f1c17 +msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:199 +#: e5e02aeb2f9f427aabdb97e641225d4b +msgid "Install the test package somewhere with ``pip install --extra-index-url https://test.pypi.org/simple --upgrade canaille``. Check that everything looks fine;" +msgstr "" + +#: ../../CONTRIBUTING.rst:200 +#: 1f8fb7fc4f584453a55bc4ca71d6df58 +msgid "Publish on production PyPI ``uv publish``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:201 +#: 23a34ce733234745bbf20e30bc019787 +msgid "Tag the commit with ``git tag XX.YY.ZZ``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:202 +#: da5c48d7b95249ed9a1e27daadebda82 +msgid "Push the release commit and the new tag on the repository with ``git push --tags``." +msgstr "" + +#: ../development/index.rst:2 +#: 5805b71daf2c4d62b7a12e73891ac186 +msgid "Development" +msgstr "" + +#: ../development/specifications.rst:2 +#: 541a33a86701416aa6f6de99fa89a89f +msgid "Specifications" +msgstr "" + +#: ../development/specifications.rst:4 +#: 67840439174a4881931bc037fde8743c +msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers." +msgstr "" + +#: ../development/specifications.rst:7 +#: b4abbced46ae4d8a8b1c472b3136cf39 +msgid "State of the specs in Canaille" +msgstr "" + +#: ../development/specifications.rst:10 +#: 9a3397cff55841c19b9a57f7dfd88bcb +msgid "OAuth2" +msgstr "" + +#: ../development/specifications.rst:12 +#: 982fce2fb6334d98bbbc81472971a405 +msgid "✅ `RFC6749: OAuth 2.0 Framework `_" +msgstr "" + +#: ../development/specifications.rst:13 +#: 9c699279ecc14e5bb9d9f48e5710a9db +msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens `_" +msgstr "" + +#: ../development/specifications.rst:14 +#: f3f197758b264989884d266347d3ba8a +msgid "✅ `RFC7009: OAuth 2.0 Token Revocation `_" +msgstr "" + +#: ../development/specifications.rst:15 +#: f6956483bbeb4f35945627f5724bfc5c +msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants `_" +msgstr "" + +#: ../development/specifications.rst:16 +#: e42ed4cd37bb4409bcf1fe7871137dc1 +msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol `_" +msgstr "" + +#: ../development/specifications.rst:17 +#: be51ea22e68546c1a12b9dfa63a731ba +msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol `_" +msgstr "" + +#: ../development/specifications.rst:18 +#: 6c9ec9a5a87e4bdd96fff518d06e787e +msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients `_" +msgstr "" + +#: ../development/specifications.rst:19 +#: 9047e9898e4b49f98ce261d0a2fb4cbd +msgid "✅ `RFC7662: OAuth 2.0 Token Introspection `_" +msgstr "" + +#: ../development/specifications.rst:20 +#: 40f87de1a5224a99909a3218cd9fa4ab +msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata `_" +msgstr "" + +#: ../development/specifications.rst:21 +#: 810495f0829a4909997a3568b09009f3 +msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant `_" +msgstr "" + +#: ../development/specifications.rst:22 +#: 6e3b1b1a7e334b53b5433b0bbdd964be +msgid "❌ `RFC8693: OAuth 2.0 Token Exchange `_" +msgstr "" + +#: ../development/specifications.rst:23 +#: f63df281155c46e7b0ccb4d295b26afa +msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens `_" +msgstr "" + +#: ../development/specifications.rst:24 +#: f7f1714cd1fd4ebc8da4adcba61204bf +msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 `_" +msgstr "" + +#: ../development/specifications.rst:25 +#: 4c81ff0463f0459bb59988673f95ec7b +msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens `_" +msgstr "" + +#: ../development/specifications.rst:26 +#: d99715c092aa45368ee02279cb881b8c +msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) `_" +msgstr "" + +#: ../development/specifications.rst:27 +#: db841cabe8574440a5bd327392eae3ce +msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests `_" +msgstr "" + +#: ../development/specifications.rst:28 +#: 6089cd66288f469aad49dcb633c9ad8d +msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification `_" +msgstr "" + +#: ../development/specifications.rst:29 +#: bdcb5633d457472b9bfa4c20911cbe8e +msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" +msgstr "" + +#: ../development/specifications.rst:30 +#: 0733f63579444ccfb93581ec894cb572 +msgid "❌ `OAuth2 Multiple Response Types `_" +msgstr "" + +#: ../development/specifications.rst:31 +#: 2d58df0df7db40e78e17bcb7f2491b42 +msgid "❌ `OAuth2 Form Post Response Mode `_" +msgstr "" + +#: ../development/specifications.rst:34 +#: ../features.rst:209 +#: 2f59334003324960bba9d54c9f47216e +#: 0a20707e101e45afa3f82b62af246323 +msgid "OpenID Connect" +msgstr "" + +#: ../development/specifications.rst:36 +#: b40621335ff74dc9836d2c995a088af3 +msgid "✅ `OpenID Connect Core `_" +msgstr "" + +#: ../development/specifications.rst:37 +#: 5925bd07cffb47c788e8a75d56483c6d +msgid "✅ `OpenID Connect Discovery `_" +msgstr "" + +#: ../development/specifications.rst:38 +#: 12e8166baefa44a98f2b795f408704f8 +msgid "✅ `OpenID Connect Dynamic Client Registration `_" +msgstr "" + +#: ../development/specifications.rst:39 +#: 56b5e2a3193d449f9a061e3899d91992 +msgid "✅ `OpenID Connect RP Initiated Logout `_" +msgstr "" + +#: ../development/specifications.rst:40 +#: 906f18b7ff604da3ae72feade553ef4a +msgid "❌ `OpenID Connect Session Management `_" +msgstr "" + +#: ../development/specifications.rst:41 +#: 1c16150e6322426fb3155ecbf92125fd +msgid "❌ `OpenID Connect Front Channel Logout `_" +msgstr "" + +#: ../development/specifications.rst:42 +#: d42d494526544c7586ed231bb9e393aa +msgid "❌ `OpenID Connect Back Channel Logout `_" +msgstr "" + +#: ../development/specifications.rst:43 +#: 6461e3cb0d0b4256ad5d94fdfa2cc155 +msgid "❌ `OpenID Connect Back Channel Authentication Flow `_" +msgstr "" + +#: ../development/specifications.rst:44 +#: 68291985376c4a6db9c3ab6a46033253 +msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements `_" +msgstr "" + +#: ../development/specifications.rst:45 +#: a2240ab89c4f44b797b79e3d30c90abf +msgid "✅ `Initiating User Registration via OpenID Connect 1.0 `_" +msgstr "" + +#: ../development/specifications.rst:48 +#: ../development/specifications.rst:64 +#: 8cf876840eef4f91837d07a3eb9405e8 +#: a37c085fe15b465493dc56abef81e060 +msgid "SCIM" +msgstr "" + +#: ../development/specifications.rst:50 +#: 0be32dfe41d8496896234e5ff032ba40 +msgid "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements `_" +msgstr "" + +#: ../development/specifications.rst:51 +#: bee2f7d338c8450cb90adcf9c9f9281e +msgid "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema `_" +msgstr "" + +#: ../development/specifications.rst:52 +#: 6f91f5ed607e4cf39c2a8314400a2ee7 +msgid "❌ `RFC7644: System for Cross-domain Identity Management: Protocol `_" +msgstr "" + +#: ../development/specifications.rst:55 +#: 78ff63eb07e14723b41c4ca485b5fe13 +msgid "Comparison with other providers" +msgstr "" + +#: ../development/specifications.rst:57 +#: 772e1ea09b8340ee907752a6904b8cb8 +msgid "Here is a feature comparison with other OpenID Connect server software." +msgstr "" + +#: ../development/specifications.rst:59 +#: dee0ee93785246d6bc5cb709cfaf1969 +msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple." +msgstr "" + +#: ../development/specifications.rst:62 +#: 74858f3ddf8e4ae6a176fefccdf473fb +msgid "Software" +msgstr "" + +#: ../development/specifications.rst:62 +#: ba941f5487be4fb4a13f2d875f26777a +msgid "Project" +msgstr "" + +#: ../development/specifications.rst:62 +#: 2c0a3b118a2e4a94a5c056e36a49ce50 +msgid "Protocols implementations" +msgstr "" + +#: ../development/specifications.rst:64 +#: af3e8056a72344e3ac2aac9c686c08fc +msgid "FLOSS" +msgstr "" + +#: ../development/specifications.rst:64 +#: f0ea1551608e45c8b959de23db5fb272 +msgid "Language" +msgstr "" + +#: ../development/specifications.rst:64 +#: 16ed291530bb4083b085a20a1e3f3362 +msgid "LOC" +msgstr "" + +#: ../development/specifications.rst:64 +#: b9aba1af73ba42588efc6ca3124c3dea +msgid "OIDC" +msgstr "" + +#: ../development/specifications.rst:64 +#: 212283f1dc3b4f22a78d9f971c0af2cd +msgid "SAML" +msgstr "" + +#: ../development/specifications.rst:64 +#: 1fc558c88ce84195bb750b6c123f7a77 +msgid "CAS" +msgstr "" + +#: ../development/specifications.rst:64 +#: ../tutorial/databases.rst:32 +#: f3c208b0013342d4ba7fbbda4b19b2fa +#: 1ceef2c6fccc4464b60a6c5337c1cd4f +msgid "LDAP" +msgstr "" + +#: ../development/specifications.rst:64 +#: ../tutorial/databases.rst:16 +#: 7945ca3b0a7949a6a6a3a4ef16a7eab2 +#: c74ad1da8a0842e6be8402df2dd18a31 +msgid "SQL" +msgstr "" + +#: ../development/specifications.rst:66 +#: cbf6e8ae235146018da50b0114e86455 +msgid "Canaille" +msgstr "" + +#: ../development/specifications.rst:66 +#: ../development/specifications.rst:68 +#: ../development/specifications.rst:70 +#: ../development/specifications.rst:72 +#: ../development/specifications.rst:74 +#: ../development/specifications.rst:76 +#: ../development/specifications.rst:78 +#: ../development/specifications.rst:80 +#: ../development/specifications.rst:82 +#: ../development/specifications.rst:84 +#: ../development/specifications.rst:86 +#: ../development/specifications.rst:88 +#: cdca6833a8524c83ad2ebc80d0e42db9 +#: 2211ccf419b7434793ecdbd27bf26e97 +#: f81d7912337944ac8fa4c93af71266dd +#: a70652161ef1405cb55c5d6aa1415ae7 +#: 6933615888f646bdb1673f8f3b84ec0a +#: 0b399aa7b19e4bccba7876a778dfaccb +#: 0253cd2fe1324ddb948bd137e519f25b +#: 0d53b1d0888f48c0a763e67a137bfc77 +#: 070fdfaadf054697b41ed39126fabe32 +#: 38a888c2d1c549f7bb6783e081b81416 +#: aaf704f11a6a498eb0e005dfb7e1262f +#: d6b2a74aba90481fa6b0ce3af68a836a +#: e9a66b5cd10448ee891d2c05dfc75684 +#: 5ecdc4755da348cb94e4b70855703843 +#: 94569393487a4b72bc67d0dd07cabb38 +#: b433b602f0054b3991e0301fb2b67f33 +#: a696235fdb1a4a56a2c7eea1895ba684 +#: 70b52c3e7e844018bf36c4b751d9016a +#: 545841fc65b94e6aa84ada7e8511bd02 +#: 34abe08c17954ce1b3d4b1da442aa8f7 +#: 7eb0d20fbf7c4d65b3ba750aa3394a2e +#: 806372aabbb14464930fe2246de1c609 +#: 37d0a8ee8a2f4eafa2859641a6dc0980 +#: bfc4e623a0684e6598e9413702bd45c8 +#: a58510175a1045199e968b4805952548 +#: dabb11444a81435ea4eaa8955a10cc1e +#: 9640138d1a96401bad19b354f6fd9e7d +#: e200ca9d0acf461299c6b23179bdfe7d +#: dca9af08ed434f06809a8638aad8d561 +#: c04b57739c564f68bda88094930d8cbc +#: 989d885a2efb40deb3ad0a5f78a1b6d1 +#: 1e89e5fdc9c34ef288f1e0360118495b +#: 56b16b5ae3ab4d7c85755a05008086ff +#: 1a97db98eaea41888169721b95e3a886 +#: a245e2fb5a4d438fac669915f0f671ca +#: 393612fe9a3f4bbc8bca2d652979dcb3 +#: 6f8d532996b643b899c7cd09bc9b6b74 +#: 9e9a94718e7648658847d06dadfa8a55 +#: 2f36d181cc6f47b9aea3f96b450809eb +#: 38e06b09967246ba8cb5a1ada12bb166 +#: a29eb7d6aa8f451ba1a3513983821102 +#: a4d6dbf940c84ffda8daf7cce8c24415 +#: 08eed524f5304d86bb24c89ab0fe8807 +#: 40df4a5e0f4c4368b0415d35adf52e4b +#: 4215050f8a22420ba19f21acbed88833 +#: e3406ed721054ee68b01e898497c29c7 +#: 50f1e55288bd48f1af7433da3f1d54e6 +#: 41fb6ced67fa417a98a80584e517571d +#: f4b7ba2f313f482eb179f511c435101e +#: 4fdd524e3fbe47408fcb4f52c445e239 +#: a4d6cadb72fd4b80a15f112edb394810 +#: 610cdec2e1154438a7747ffd7735b566 +#: 582fda38e83e4443bb8aa7f6685b5ab7 +#: c80d88c4a6e04153a25389043fe8a712 +#: a00b4327bed6464588d29d2a0ea4f673 +#: d0a52c0e66db4e55a54123132630d181 +#: e2391b0c105b40f39bf01a41cc81fcae +#: 435444825399405e94dd7183b949f5fc +#: 07997ea45fed41529c2661ca8c161c3b +#: 79ba7ced015548468833c8911ef1bdb6 +#: 961891453d6e4fc99e9506c207a8b098 +#: b7cbb88134a243dba4be4a5c09cf37e3 +#: 8f4dd9278b6c4b1ca9d7dc1c2e566a59 +msgid "✅" +msgstr "" + +#: ../development/specifications.rst:66 +#: ../development/specifications.rst:72 +#: ../development/specifications.rst:74 +#: 67342b37165d46be81d107ecfc38aa2b +#: 6a530e4336fc4290900ca0c39a17a53c +#: 7c487169b35c4737ba5d1d77d47e1b18 +msgid "Python" +msgstr "" + +#: ../development/specifications.rst:66 +#: 4d3726bbaeeb43a29a12235898727667 +msgid "10k" +msgstr "" + +#: ../development/specifications.rst:66 +#: ../development/specifications.rst:68 +#: ../development/specifications.rst:70 +#: ../development/specifications.rst:72 +#: ../development/specifications.rst:74 +#: ../development/specifications.rst:76 +#: ../development/specifications.rst:78 +#: ../development/specifications.rst:82 +#: ../development/specifications.rst:86 +#: ../development/specifications.rst:88 +#: 8dfd4eb9b6334beaba470bc878bd06d2 +#: 228b07d3191142a496e67819b35c600b +#: 4ef1da3636bb4c35bb7aeb289a5db48c +#: 64662a1e93e7406ebc5a108f04f43a74 +#: 89cc6cda082b4025bb1d051f8fb8bbb0 +#: cc6b3813a41242d98e45acfbf5ca5c33 +#: 5823d390106f476ab3690d34b49ad05f +#: f3bd14a9b3d847018b0ddb16c031a737 +#: 83399675c77c4f41aee741a10312bd56 +#: 5436f07dce5c4c008e1066a384cf8f1a +#: a0d411055e1b466384c97be328c53777 +#: 741fcf98b5d946d4ba107d6b5c7f246b +#: 6b26f147fdfa45c9aac7f6bc8add7138 +#: af47b038140b4b37ac29615fe00cee92 +#: ecdbfc3910de4714bd0a77b9d6213e2a +#: e2529fb8470441b29c8b597bb73baae6 +#: 2d8217d4097c4ac8adac64b895ae33b2 +#: abaa385107d44946ad61332cb6fa1d12 +#: d9e1f9eb30244b29bf391b0d43e300e2 +msgid "❌" +msgstr "" + +#: ../development/specifications.rst:68 +#: 7f36d1d9dc62465d9eb255f75eba6398 +msgid "`Auth0`_" +msgstr "" + +#: ../development/specifications.rst:68 +#: ../development/specifications.rst:78 +#: ../development/specifications.rst:80 +#: ../development/specifications.rst:88 +#: 0f895c01b3ba4cb6818f1fc12bccda20 +#: 9336d1dc31c0499ab54d6b4f61626c42 +#: 599a5bd1bcec4bffbd532d872ce522b3 +#: b8031c3236a9445c906feba92cc228b7 +#: 0155612f74b44f23bfd8267127d92d67 +#: e65014a6ac324aeb80c7382e9aa70fb1 +#: 5ff33d26530e4037b70aa52c9e155b37 +#: b4fbad82bf084f42885d17fcb98a1b7f +#: 32e7c6db6c1b4de59f59376cf4176f63 +msgid "❔" +msgstr "" + +#: ../development/specifications.rst:70 +#: e0fe771a1a044537ad3204bc346e5a65 +msgid "`Authelia`_" +msgstr "" + +#: ../development/specifications.rst:70 +#: ../development/specifications.rst:82 +#: 4abb4f1183884001acc006d82f3acd68 +#: ca8775c15a854aa29d2dbbe4d9d34279 +msgid "Go" +msgstr "" + +#: ../development/specifications.rst:70 +#: ../development/specifications.rst:82 +#: 7df3b4133c77418b895fb20d7e18d810 +#: 94e079211f604613a0ae5454e10c5a77 +msgid "50k" +msgstr "" + +#: ../development/specifications.rst:72 +#: 9a9137c2f96740fa9c67fccc54a07f7c +msgid "`Authentic2`_" +msgstr "" + +#: ../development/specifications.rst:72 +#: fd0d5d325a434c698577c90859e43eea +msgid "65k" +msgstr "" + +#: ../development/specifications.rst:74 +#: cd260a7f246a432f957288beacf88feb +msgid "`Authentik`_" +msgstr "" + +#: ../development/specifications.rst:74 +#: e04f9a501a4d4d19843fb02dc5d3b5d0 +msgid "55k" +msgstr "" + +#: ../development/specifications.rst:76 +#: 4af38869fe9248bbb8a8356c71a0fe04 +msgid "`CAS`_" +msgstr "" + +#: ../development/specifications.rst:76 +#: ../development/specifications.rst:80 +#: ../development/specifications.rst:84 +#: 7099b6c2f67e4a53bda8973393a4cc09 +#: 999917716d4a428abf0d2fa39c685ef0 +#: 6424b80dfa3e453496467c6bf19860b6 +msgid "Java" +msgstr "" + +#: ../development/specifications.rst:76 +#: 8c53682aa6de4d97af8484288f105f75 +msgid "360k" +msgstr "" + +#: ../development/specifications.rst:78 +#: f034219704a64e408fb8a35fdf7d0f9e +msgid "`Connect2id`_" +msgstr "" + +#: ../development/specifications.rst:80 +#: 28eabbd3498447c7bf1b686b9df5eec1 +msgid "`Gluu`_" +msgstr "" + +#: ../development/specifications.rst:82 +#: 18179359c90c4306bd88fad4381c30ac +msgid "`Hydra`_" +msgstr "" + +#: ../development/specifications.rst:84 +#: bba652cb185946eba8c8c783379eb27d +msgid "`Keycloak`_" +msgstr "" + +#: ../development/specifications.rst:84 +#: 34ce6f8d73014ac797e8f4038cde782f +msgid "600k" +msgstr "" + +#: ../development/specifications.rst:86 +#: c4d8ef8479c74f0ba8014615a03b11bf +msgid "`LemonLDAP`_" +msgstr "" + +#: ../development/specifications.rst:86 +#: 8c2121ada16f4a35a2b4420dc0677205 +msgid "Perl" +msgstr "" + +#: ../development/specifications.rst:86 +#: 3464b118737442fd84b78b8250b4a41e +msgid "130k" +msgstr "" + +#: ../development/specifications.rst:88 +#: 0cfdb98c1ffe40ce8cbc11407ba449f3 +msgid "`Okta`_" +msgstr "" + +#: ../features.rst:9 +#: 8c6f27a19b0143e3a3f73f26be2fdad1 +msgid "Features" +msgstr "" + +#: ../features.rst:11 +#: f01fce00043842a8861a13cdea47d9bb +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 +#: e4cb789716264a95b49940e09a0f1ed8 +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 +#: 8e5eabb163034aa9b0dbca7607ad12b7 +msgid "Web interface" +msgstr "" + +#: ../features.rst:21 +#: 097fd226627540eda62043b78e47d2f2 +msgid "Canaille web interface can be used either in :doc:`production environments ` or locally for development purposes." +msgstr "" + +#: ../features.rst:26 +#: ../index.rst:27 +#: 011f08b4e11e4d63840a7387215410f3 +#: a626b8cba7e647c5ac789006e1c0fe4b +msgid "Profile management" +msgstr "" + +#: ../features.rst:28 +#: ../features.rst:217 +#: ebc71d5ce73c45ed98c8fd852dbc6641 +#: 0378e1a22862405b9b1b019b5dca8866 +msgid "Profile" +msgstr "" + +#: ../features.rst:33 +#: 1ef57a6d2c9a4236bc9289554bf8ccf1 +msgid "Canaille provides an interface to manage user profiles." +msgstr "" + +#: ../features.rst:35 +#: 7f324ac6e3444aa2ad9e122e8bb42efe +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:37 +#: 215efc9273a74fcbb4e2659609001c6a +msgid "Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit any user profile, or do nothing at all." +msgstr "" + +#: ../features.rst:42 +#: d5487afaa4c848c8bb7c9bd24d81bb96 +msgid "Email confirmation" +msgstr "" + +#: ../features.rst:44 +#: 33292ee96e984fbeb2093fa92d7d3575 +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:46 +#: ef14f974e7ff4e1296f90b0b8bc0e157 +msgid "Users with :attr:`user management permission ` can set user emails without confirmation though." +msgstr "" + +#: ../features.rst:51 +#: db83f0da80b04e81aa15c4fa11425422 +msgid "Group management" +msgstr "" + +#: ../features.rst:53 +#: ../features.rst:140 +#: e3dc5ad68c594a948a78ab36d9d8e316 +#: fa6296be5a994444a4df23ad4ea9565c +msgid "Group edition" +msgstr "" + +#: ../features.rst:58 +#: 82b3c76e2b374f8ebdfdedab4226c025 +msgid "In a similar fashion than :ref:`profile management ` Canaille provides an interface to manage user groups." +msgstr "" + +#: ../features.rst:60 +#: dfabecd9ab43469fb3849f1e7c35daf9 +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 "" + +#: ../features.rst:63 +#: ../features.rst:83 +#: ../features.rst:149 +#: ../tutorial/deployment.rst:13 +#: 4578f8d000284fe9b6f75541820b3496 +#: 38137b6c7d5c491c820ea1dfc8756344 +#: 92de75de0184485bb56f811648d3f99e +#: c2f67f4d44754b0aa9c78c106b1ca6ae +msgid "Todo" +msgstr "" + +#: ../features.rst:64 +#: 0e2be121eec5421c936dac23c0f1a7df +msgid "At the moment adding an user to a group can only be achieved by the user settings page, but we are :issue:`working to improve this <192>`." +msgstr "" + +#: ../features.rst:66 +#: 2b5e85bbb5c54361a1b5552ac23fb86a +msgid "Group management can be enable with a :attr:`dedicated user permission `." +msgstr "" + +#: ../features.rst:69 +#: 66b65881cc3a4405bbe68bb6aaf40062 +msgid "Due to limitations in the :ref:`LDAP backend `, groups must have at least one member. Thus it is not possible to remove the last user of a group without removing the group." +msgstr "" + +#: ../features.rst:75 +#: ../index.rst:34 +#: ea71d79aa29e4fe39fa0d3bf14f54543 +#: ae1b08e44f984e5c9ac45e11ba77ada3 +msgid "User authentication" +msgstr "" + +#: ../features.rst:77 +#: 8e696875cf8a453ea0a28a52658a661d +msgid "Unless their account is :ref:`locked `, users can authenticate with a login and a password." +msgstr "" + +#: ../features.rst:81 +#: fcee840ee53749b89b6d8262aa8fa8b0 +msgid "For security reasons, it won't be told to users if they try to sign in with an unexisting logging, unless explicitly :attr:`set in the configuration `." +msgstr "" + +#: ../features.rst:83 +#: c3c47dc180fb481d8da68e9b4604e880 +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:88 +#: 594eabf009f7494db771fa08fb9db18c +msgid "User registration" +msgstr "" + +#: ../features.rst:90 +#: 2f550e9df3914b9082e3826b0e5a810e +msgid "Users can create accounts on Canaille if the feature :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:92 +#: 2f4667bbe5da4680b68ab9f03422fa9a +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:97 +#: ../features.rst:99 +#: df01264bb889437e823a16dc82e5f041 +#: 5540b138288a46928a7e15b8cd620fce +msgid "User invitation" +msgstr "" + +#: ../features.rst:104 +#: ba8f14356d2f47e8a8c4f5770706f033 +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:106 +#: 15b51c64dd944a64ad31b262dcbee7f1 +msgid "The link goes to a registration form, even if regular :ref:`user registration ` is disabled." +msgstr "" + +#: ../features.rst:108 +#: e315be38469c4f67a7e34b66d8528ace +msgid "It can be automatically sent by email to the new user." +msgstr "" + +#: ../features.rst:113 +#: 622f876f79ee44d2a2d17656d798701c +msgid "Account locking" +msgstr "" + +#: ../features.rst:115 +#: 6cbed0d1e1c1450c97c3e29b0ce6fe4c +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:118 +#: e04a870ae8a94a8c8bf374ccde99aef5 +msgid "At the moment a user account is locked:" +msgstr "" + +#: ../features.rst:120 +#: c5860585c6584cd395cdd61d21bdbdac +msgid "their open sessions will be closed;" +msgstr "" + +#: ../features.rst:121 +#: 41f560bb4b5645b89f131bc3e98f5be2 +msgid "they won't be able to sign in again;" +msgstr "" + +#: ../features.rst:122 +#: c0f7c52078d24a1dad56ea0129a363e0 +msgid "no new OIDC token will be issued;" +msgstr "" + +#: ../features.rst:124 +#: 3fa952b37fa9400b886a8c28ced2c511 +msgid "User accounts must be manually unlocked by an administrator for the users to regain access to those actions." +msgstr "" + +#: ../features.rst:129 +#: 29c5e463d73c4fcaa0fa9a7545c2d002 +msgid "Account deletion" +msgstr "" + +#: ../features.rst:131 +#: 7333ea043bdb40c59b9ea021e9dd93c8 +msgid "Users with the :attr:`account deletion permission ` are allowed to delete their own account." +msgstr "" + +#: ../features.rst:133 +#: 7abe455f5058498d869a4d1126722af9 +msgid "Users that also have the :attr:`user management permission ` are also allowed to delete other users accounts." +msgstr "" + +#: ../features.rst:138 +#: c623f83c5d3b4188a139dd7fa6afb522 +msgid "Password recovery" +msgstr "" + +#: ../features.rst:145 +#: 9e5c9c5910e64abd9053787f7af4ffbe +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:147 +#: b04d879c3804492ca480b798aea8206b +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:151 +#: 2bfa064b1d9f4f19bc06e9f3b4a49434 +msgid "Check that password recovery is disabled on locked accounts." +msgstr "" + +#: ../features.rst:156 +#: 749c0cd6b3e447728e0b5a7a32ecd5ae +msgid "Password reset" +msgstr "" + +#: ../features.rst:158 +#: 161c7f1759084b0fae25682fb68ee789 +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:164 +#: b34780ff9a1d42408988b09c45e73790 +msgid "Password initialization" +msgstr "" + +#: ../features.rst:166 +#: 184926167dc149538673c832e5a6e8d9 +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:173 +#: cda3572a37f547b2a399d22faceb6139 +msgid "Password compromission check" +msgstr "" + +#: ../features.rst:175 +#: d4d014c8ebde4af2adec05ee77092d62 +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:180 +#: e9d336f4732f46deb4b3d7c10bf0ecdc +msgid "Internationalization" +msgstr "" + +#: ../features.rst:182 +#: d8f73db0cc4541f187532866889f1bbc +msgid "Translation state" +msgstr "" + +#: ../features.rst:187 +#: 6617c11399334a92a4ec4c23f1960786 +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:193 +#: ac391969b7934df6946f47c3531db86c +msgid "Lightweight" +msgstr "" + +#: ../features.rst:195 +#: 3d8eedb8a1174eef906a45ac046a256e +msgid "The web interface is lightweight, so everything should load quickly. There is a few Javascript here and there to smooth the experience, but no Javascript at all is needed to use Canaille." +msgstr "" + +#: ../features.rst:199 +#: bec04e5daaa842cabc697ea10dd76741 +msgid "Customizable" +msgstr "" + +#: ../features.rst:201 +#: 9faca91f5eb54469a96e1addf8e1ad53 +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:204 +#: 47e5ba6df7b14fbcb2a228efc3977510 +msgid "If you need more you can also use a :attr:`custom theme `." +msgstr "" + +#: ../features.rst:211 +#: 8ebcdacd997a4f6b84d5a94ff12b375b +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:215 +#: f5131ae01237415893ad7b82cad06eee +msgid "Consent management" +msgstr "" + +#: ../features.rst:223 +#: 5c1e30229f8342cca14a719154f13663 +msgid "Users can give their consent to application requesting access to their personal information, and then revoke those consent at their will." +msgstr "" + +#: ../features.rst:227 +#: 49cf0197632946e0b9075c7e2fdbd360 +msgid "Application management" +msgstr "" + +#: ../features.rst:229 +#: 8e68f1b6ed3d46d5aba2963cc622a2a4 +msgid "Users with the right :attr:`permission ` can manager OIDC clients through the web interface." +msgstr "" + +#: ../features.rst:231 +#: 0592389bab674f07a0841c1db605317e +msgid "In some cases, it might be useful to avoid the consent page for some trusted applications, so clients can be pre-consented." +msgstr "" + +#: ../features.rst:234 +#: 43de9225e8e64315852fa3be54e4e1ae +msgid "Discovery" +msgstr "" + +#: ../features.rst:236 +#: afe8b4de53b149768ed3844fb31bfb5d +msgid "Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-configure themselves." +msgstr "" + +#: ../features.rst:239 +#: 8fd3c2f8a6b34c4bb1856c7f7b2456aa +msgid "Dynamic Client Registration" +msgstr "" + +#: ../features.rst:241 +#: d654b7ab18ee4b248164694dccb45ee9 +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:246 +#: ../references/commands.rst:2 +#: 5bea804e7c634bfd848fa6b3fd6595b1 +#: 133164d3d2ba4f248487892419a54e0c +msgid "Command Line Interface" +msgstr "" + +#: ../features.rst:248 +#: e45d846ca75e48c58dfff6446ceef41b +msgid "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help administrators in hosting and management." +msgstr "" + +#: ../features.rst:250 +#: 6df8b5ff51934b40b28b0eb330ca006a +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:253 +#: 9530a59b347148dc878bbf85fa3f1cbf +msgid "There are also tools to :ref:`fill your database ` with random objects, for tests purpose for instance." +msgstr "" + +#: ../features.rst:260 +#: 1efac35545954eb68349bded2786425b +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:264 +#: 3975534728f14201b516fc1a9b900f60 +msgid "Miscellaneous" +msgstr "" + +#: ../features.rst:269 +#: 14fb617a136148219dd7eba89d44ba2b +msgid "Logging" +msgstr "" + +#: ../features.rst:271 +#: 0369d49b2bed40719bebba61c5942191 +msgid "Canaille writes :attr:`logs ` for every important event happening, to help administrators understand what is going on and debug funky situations." +msgstr "" + +#: ../features.rst:273 +#: 82ebb6275eaa49d493817762a000414c +msgid "The following security events are logged with the tag [SECURITY] for easy retrieval :" +msgstr "" + +#: ../features.rst:275 +#: cdf706a41edf42e69c1822865f0f07d7 +msgid "Authentication attempt" +msgstr "" + +#: ../features.rst:276 +#: 9a83b47ae2bd458fb963330e0d0d66c2 +msgid "Password update" +msgstr "" + +#: ../features.rst:277 +#: 38789ff5c505446c879e10dd6cd1a454 +msgid "Email update" +msgstr "" + +#: ../features.rst:278 +#: 1f7d74cb372340f5acba36ef1401b163 +msgid "Forgotten password mail sent to user" +msgstr "" + +#: ../features.rst:279 +#: b2734f0dd98e436484f4c1ca073bee72 +msgid "Token emission" +msgstr "" + +#: ../features.rst:280 +#: 2fc4d93991a947c884c2ea88df6cc198 +msgid "Token refresh" +msgstr "" + +#: ../features.rst:281 +#: d4a0043ab3ea4f40934ed11bbc3bc529 +msgid "Token revokation" +msgstr "" + +#: ../features.rst:282 +#: e3eb71ac04be4200bde8d2208314b110 +msgid "New consent given for client application" +msgstr "" + +#: ../features.rst:283 +#: e0b4b7bc1b8d491b8c9e0a318523faf6 +msgid "Consent revokation" +msgstr "" + +#: ../features.rst:288 +#: fc6769d46bd24576b571018b77c433c9 +msgid "A tool for your development and tests" +msgstr "" + +#: ../features.rst:290 +#: 5880d3d1142d427d94c6734b8281336b +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:292 +#: 6e7ddfd7b794434d8fc6c4d42e9f26f1 +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:294 +#: 50148b863e2e4e308ee5fb3fd687cf48 +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:297 +#: 0274ee651c5f490a92895314cc7cf60a +msgid "Roadmap" +msgstr "" + +#: ../features.rst:300 +#: aa5ee9c8a58a4b6aa10835ff6dacd0c1 +msgid "Bêta version" +msgstr "" + +#: ../features.rst:302 +#: b5f3738cf721475890fb246b0eacdf84 +msgid "To go out of the current Alpha version we want to achieve the following tasks:" +msgstr "" + +#: ../features.rst:304 +#: 8ff349dd7a4e40b0a89605752d03bf0a +msgid ":issue:`Configuration validation using pydantic <138>`" +msgstr "" + +#: ../features.rst:307 +#: 13f37196fd344e078d2054f1d29bed6f +msgid "Stable version" +msgstr "" + +#: ../features.rst:309 +#: 0204098590904172a9fa676986f8e0f9 +msgid "Before we push Canaille in stable version we want to achieve the following tasks:" +msgstr "" + +#: ../features.rst:312 +#: 0f1ac7382abb4404b122e637924dc261 +msgid "Security" +msgstr "" + +#: ../features.rst:314 +#: 48d9a102c5b146d09aa2b6c10ff73710 +msgid ":issue:`Password hashing configuration <175>`" +msgstr "" + +#: ../features.rst:315 +#: cd5537e26bfd48769d3c1f5eef4cc658 +msgid ":issue:`Authentication logging policy <177>`" +msgstr "" + +#: ../features.rst:316 +#: 9e9ac7840ae34e08946b89db09c6b4a3 +msgid ":issue:`Intruder lockout <173>`" +msgstr "" + +#: ../features.rst:317 +#: 1d4d9a14d3e247fe89f095eb9e17b88f +msgid ":issue:`Password expiry policy <176>`" +msgstr "" + +#: ../features.rst:318 +#: 016578f2cb3942bfaded36aa36d92d19 +msgid ":issue:`Multi-factor authentication: Email <47>`" +msgstr "" + +#: ../features.rst:319 +#: 31407f025f9040d2be345b0b4f0d04c4 +msgid ":issue:`Multi-factor authentication: SMS <47>`" +msgstr "" + +#: ../features.rst:320 +#: 3080c691cd6a4e988b3a0c45c383f08e +msgid ":issue:`Multi-factor authentication: OTP <47>`" +msgstr "" + +#: ../features.rst:323 +#: 4cf1cd4b94fc4c809e874d7c1e1a92ba +msgid "Packaging" +msgstr "" + +#: ../features.rst:325 +#: 60e7a1ce1d2a4a3497d58ddb5597cabe +msgid ":issue:`Nix package <190>`" +msgstr "" + +#: ../features.rst:326 +#: 2e0a824bc6c541ff8c9e5933a853e846 +msgid ":issue:`Docker / OCI package <59>`" +msgstr "" + +#: ../features.rst:329 +#: d450eec0b52144e799df185beb731b0c +msgid "And beyond" +msgstr "" + +#: ../features.rst:331 +#: 5b12f1e1eebc46a19e869d70adce3e2b +msgid ":issue:`OpenID Connect certification <182>`" +msgstr "" + +#: ../features.rst:332 +#: 72f4ad7970e84bd9bb1967004c12d872 +msgid ":issue:`SCIM support <116>`" +msgstr "" + +#: ../index.rst:15 +#: 9d15ef3adb8b43269f40f89704162113 +msgid "Lightweight Identity and Authorization Management" +msgstr "" + +#: ../index.rst:19 +#: 63555539d7ac4fd5be29f7ba12d17380 +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 +#: 482f66603f0d4d13967a03fc501a0a09 +msgid "User profile and groups management, Basic permissions" +msgstr "" + +#: ../index.rst:38 +#: a9ad6aad7cfa4964b08dcdcb5dca6e1f +msgid "Authentication, registration, email confirmation, \"I forgot my password\" emails" +msgstr "" + +#: ../index.rst:40 +#: 30091c4589b2418eb1c53d59451c665e +msgid "SSO" +msgstr "" + +#: ../index.rst:44 +#: 31751956680949df87d95d3ab9ec853a +msgid "OpenID Connect identity provider" +msgstr "" + +#: ../index.rst:46 +#: 7087c013714547e188dbc5914099ae87 +msgid "Multi-database support" +msgstr "" + +#: ../index.rst:50 +#: f15cd7b2a3f94e528e072166239a594a +msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" +msgstr "" + +#: ../index.rst:52 +#: 28db56c2471f4c7fa5a662aa213554df +msgid "Customization" +msgstr "" + +#: ../index.rst:56 +#: 018795356807421c9a9b32532bb82f54 +msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" +msgstr "" + +#: ../index.rst:58 +#: a0213d640faf44c0b73a7ad5a4eae0ba +msgid "Developers friendliness" +msgstr "" + +#: ../index.rst:62 +#: d5b04a5b5a0347b2b0f56cf042f08caa +msgid "Canaille can easily fit in your unit tests suite or in your Continuous Integration." +msgstr "" + +#: ../index.rst:66 +#: 71700aadcf074eeea1dc33b6fa0a059f +msgid ":doc:`Full feature list `" +msgstr "" + +#: ../references/commands.rst:4 +#: d805088752104171bfc1a0f9e85eaa9b +msgid "Canaille provide several commands to help administrator manage their data." +msgstr "" + +#: ../references/commands.rst:6 +#: 87f700343e984d5e8cb49e738ae4044e +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 +#: fbc424f5325d4a19a935352888f29d01 +msgid "Test the configuration file." +msgstr "" + +#: ../../canaille check:1 +#: 418ba385398646fd816f185a67ce8bd5 +msgid "Attempt to reach the database and the SMTP server with the provided credentials." +msgstr "" + +#: ../../canaille clean:1 +#: e90ccaeb4b6944c5ab88355200ae294f +msgid "Remove expired tokens and authorization codes." +msgstr "" + +#: ../../canaille install:1 +#: 2ec4bd237b8948aebcdf6c6bce095ab7 +msgid "Installs canaille elements from the configuration." +msgstr "" + +#: ../../canaille install:1 +#: a095355bc54247cb818c953fb63169c4 +msgid "For instance, depending on the configuration, this can generate OIDC keys or install LDAP schemas." +msgstr "" + +#: ../../canaille populate:1 +#: a1d4993f2c76448c8dcddcc82f39e525 +msgid "Populate the database with generated random data." +msgstr "" + +#: ../references/commands.rst:0 +#: 8b7038ef01b44dd4b5366c2779e68409 +#: 4e6beac30d774a23bff25e656347334d +#: 6a61086965b147438896840aea772f7c +#: d993ea825ac64ddea72e50b37b04a93f +#: ae2b21fd71364723884392241f3f7d5e +#: fc173744533e4dc189dc8f71cee2498e +#: 7a58ba1f625346689fbc48b3fd5b738c +#: 8d9591d2bbf9466abbdd0ebc2ee1ff0e +#: cc652d48991e4c229f22106de917297d +#: 40493b4962c142629e6b898af6718ec1 +#: 1f2230ba476f47a3b62222e86094ea81 +#: 1e9bb0588956405b84291437b0ebd836 +#: a978e7c83a7e4b4ea8e3d82feef85196 +#: 5aec26e8d4934e499f03163d0a8428a9 +#: 8bc6ee432f204f69b5353ed9175e843e +#: 335d1c72d63f40059afc88d0c509cd36 +#: 103d0ae97c71407b885b9a27c34ef565 +#: 1c203a2874544ca1adef912f2797495b +#: fa4e54d423b048b5aca69258f18b6f5f +#: 0563fd9db59544e08c7c7ab98765f774 +msgid "Options" +msgstr "" + +#: ../../canaille populate:1 +#: db62c80da08a4081a31776270318923b +msgid "Number of items to create" +msgstr "" + +#: ../../canaille populate groups:1 +#: b60de313ad704984b3690146652d0fc5 +msgid "Populate the database with generated random groups." +msgstr "" + +#: ../../canaille populate groups:1 +#: cd7a8c9df804436db29c41ef21a53088 +msgid "The maximum number of users that will randomly be affected in the group" +msgstr "" + +#: ../../canaille populate users:1 +#: 44049a2cdda740ce9f01ec0442ab14f3 +msgid "Populate the database with generated random users." +msgstr "" + +#: ../../canaille get:1 +#: 879cf6dbaeef4ece86ce21c77319c4a5 +msgid "Read information about models." +msgstr "" + +#: ../../canaille get:1 +#: 1f0a65cef38d4eb88baf5b79eef1f673 +msgid "Options can be used to filter models::" +msgstr "" + +#: ../../canaille get:1 +#: ab391b963923488d948397502e480ad4 +msgid "Displays the matching models in JSON format in the standard output." +msgstr "" + +#: ../../canaille get authorizationcode:1 +#: 9002873a53184c2a98b41e33688149b1 +msgid "Search for authorizationcodes and display the matching models as JSON." +msgstr "" + +#: ../../canaille get client:1 +#: 437b69d46c7f4695ac925220f7a371f1 +msgid "Search for clients and display the matching models as JSON." +msgstr "" + +#: ../../canaille get consent:1 +#: 1c763bdcba4f43cea24ca9aacfbff3e0 +msgid "Search for consents and display the matching models as JSON." +msgstr "" + +#: ../../canaille get group:1 +#: 17df630c95b04c0886ccaf36c9193b21 +msgid "Search for groups and display the matching models as JSON." +msgstr "" + +#: ../../canaille get token:1 +#: 7f17720ff40f42dd885d65fe9e8f59e2 +msgid "Search for tokens and display the matching models as JSON." +msgstr "" + +#: ../../canaille get user:1 +#: a151d938028c4003bebb5fcbb52a27c7 +msgid "Search for users and display the matching models as JSON." +msgstr "" + +#: ../../canaille set:1 +#: 91aadcb20b32470a88032277831ae077 +msgid "Update models." +msgstr "" + +#: ../../canaille set:1 +#: 90e11794fa3d4989afb3130e7cf30618 +msgid "The command takes an model ID and edit one or several attributes::" +msgstr "" + +#: ../../canaille set:1 +#: 4cc584efd3974a3ea8b30293c3db2d18 +msgid "Displays the edited model in JSON format in the standard output." +msgstr "" + +#: ../../canaille set authorizationcode:1 +#: 7a6ee7808f7a422093783368327042d3 +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 +#: 354ef9ea4a5341e3b874b16e532aef63 +#: 8aa17f992f704160aa8601cdd8237d98 +msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" +msgstr "" + +#: ../references/commands.rst:0 +#: b72b40bd26424adf9f3665c82fb585f0 +#: 00feef5ec9de4e849cce7e1c0f50dd1f +#: 1735973cfa0e459fae305d56a9643932 +#: bb2354e8862a4ffb98313a479813e8e9 +#: 432eab1fd2864846893937d0c2da8094 +#: f474780c65a44b5487f94be32b580bcc +#: 22496b37c86f4aedb422d18935a6fc92 +#: d637f778575549a7b67f5b2d0877ab72 +#: d8609a806ca041808309413fb078353f +#: 4442ffe83e874250af0d8f80c973723f +#: 700a076da8ad43a4836c710f7eda7935 +#: 63ffd951c7cc4d618683b6d052abf6ec +msgid "Arguments" +msgstr "" + +#: ../../canaille delete authorizationcode:1 +#: ../../canaille delete client:1 +#: ../../canaille delete consent:1 +#: ../../canaille delete group:1 +#: ../../canaille delete token:1 +#: ../../canaille delete user:1 +#: ../../canaille set authorizationcode:1 +#: ../../canaille set client:1 +#: ../../canaille set consent:1 +#: ../../canaille set group:1 +#: ../../canaille set token:1 +#: ../../canaille set user:1 +#: 2b83caf4ac07464fabf44420ccf70d73 +#: 5ff4a396400b40458ba83bf83f979e4c +#: ca2baf5dcc224c9098355799ea5242a6 +#: 9eaf4d054b6a4d6691a92ba0db22f3c6 +#: f533de7094834bcfa36dbb888a270fc2 +#: e4c2174472f5469c9135698f12ea9f2c +#: f9d4b3c0c9ed410ebb6616ecc417e5db +#: e0fd1547c43348d3a0f11cd017ae3006 +#: 684cf33f22ae44e8a7b20d277ce4c954 +#: c81126aae20544fc836702561e7190da +#: 7cdb8114feb144ebbba85e051a84deff +#: 5db4ae73eb0048508019d5db38ea43ba +msgid "Required argument" +msgstr "" + +#: ../../canaille set client:1 +#: fb8df7363a174f388b11fd17dc83a482 +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 +#: 9d6d48ba12eb45d9add164c653d20a26 +#: 69f381cf8ac749f8a128d37a776db296 +msgid "IDENTIFIER should be a client id or client_id" +msgstr "" + +#: ../../canaille set consent:1 +#: 066941918e6b49cda8d88d3ccb4e1776 +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 +#: 3e13ccf6b92b4142a78bdce4c662a8dd +#: 6303724f2f8642fc8dbd189856fc9b6e +msgid "IDENTIFIER should be a consent id or consent_id" +msgstr "" + +#: ../../canaille set group:1 +#: 6da3f9d8b33a4cd192d9217aa5e6922f +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 +#: 14fc59d743fe4246b7de3fd9193db735 +#: 1336819c19a94300bd98f00f3f785406 +msgid "IDENTIFIER should be a group id or display_name" +msgstr "" + +#: ../../canaille set token:1 +#: ae3f677991f44768a2a4006bfcc18484 +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 +#: 7ebbe0cb72c4420682f872fcfe0cdafe +#: 5c644649d9da4bb589d8ad6556addf45 +msgid "IDENTIFIER should be a token id or token_id" +msgstr "" + +#: ../../canaille set user:1 +#: b59ea0f88c9547318c3d2862564e4867 +msgid "Update a user and display the edited model in JSON format in the standard output." +msgstr "" + +#: ../../canaille delete user:1 +#: ../../canaille set user:1 +#: 18c9c485c1c441198da36260f364b52f +#: e4e3a473feaf43a583f7e8bba4f6183d +msgid "IDENTIFIER should be a user id or user_name" +msgstr "" + +#: ../../canaille create:1 +#: 605a14edddd54170be0c24a33f1021ac +msgid "Create models." +msgstr "" + +#: ../../canaille create:1 +#: b881b7a48af54c1b885442b7bed6cc75 +msgid "The model attributes can be passed as command options::" +msgstr "" + +#: ../../canaille create:1 +#: 07b0fbb5f9fb48d9ac0ad7cfd5b8e3bc +msgid "Displays the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create authorizationcode:1 +#: aec8c03feca04b74ab37ec107629a8b3 +msgid "Create a new authorizationcode and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create client:1 +#: c2e852f32065476bb808ea03d20e01ad +msgid "Create a new client and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create consent:1 +#: c1705c7f1e144847bd822b97fca76d28 +msgid "Create a new consent and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create group:1 +#: 0e19ea47c231433694b2b78701b94ee1 +msgid "Create a new group and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create token:1 +#: 843835b181304f8d9c304fff21970e8d +msgid "Create a new token and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille create user:1 +#: 8ef737ce1c904c118018fc2fd5c1ff99 +msgid "Create a new user and display the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille delete:1 +#: 0c2fb48446e0467f871e7394498efacd +msgid "Delete models." +msgstr "" + +#: ../../canaille delete:1 +#: 1243c16c71984aeb90044d9ac25900b4 +msgid "The command takes a model ID and deletes it::" +msgstr "" + +#: ../../canaille delete authorizationcode:1 +#: f782ac2a36364390be2c7f8575d9cd5d +msgid "Delete a authorizationcode." +msgstr "" + +#: ../../canaille delete client:1 +#: d52c590dbdd641fab6c315cbd5a52f4a +msgid "Delete a client." +msgstr "" + +#: ../../canaille delete consent:1 +#: 09754540ffbf4f55a9db2e06dcd7fa6e +msgid "Delete a consent." +msgstr "" + +#: ../../canaille delete group:1 +#: ff86522775314885af2377fe45c0d8f8 +msgid "Delete a group." +msgstr "" + +#: ../../canaille delete token:1 +#: 0cbb643004a24e0596e7dcc5b5edd1c3 +msgid "Delete a token." +msgstr "" + +#: ../../canaille delete user:1 +#: 76b2297ab6e3462091b01e2fe8a212bc +msgid "Delete a user." +msgstr "" + +#: ../references/configuration.rst:2 +#: 4717f2a001574ece8191c8c20b91924e +msgid "Configuration" +msgstr "" + +#: ../references/configuration.rst:5 +#: f480a4340d5a4430bc462e3b410e085d +msgid "Load the configuration" +msgstr "" + +#: ../references/configuration.rst:7 +#: a67085c57c054b57a5b9aef9551b7628 +msgid "Canaille can be configured either by a environment variables, environment file, or by a configuration file." +msgstr "" + +#: ../references/configuration.rst:10 +#: 130165a77f484778a09072c8aaf83ab9 +msgid "Configuration file" +msgstr "" + +#: ../references/configuration.rst:12 +#: 536370e596ec44e4ab0a16fda5cea46a +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:11 +#: ../references/configuration.rst:14 +#: ../references/configuration.rst:85 +#: ../tutorial/databases.rst:23 +#: ../tutorial/databases.rst:37 +#: 16d4d4bf27a747fa863261d22958587a +#: df84c415de8c410594a8894c06ad63aa +#: 5046e4d1a38e4be6b7be652c40bbf3e2 +#: d61bf716b6424de7b78afa84a56b8c9a +#: 6cdc5f8505ee4a1d8ef4d9dc30a4d899 +msgid "config.toml" +msgstr "" + +#: ../references/configuration.rst:26 +#: ad81171b6de546299da7cda72d9d81d9 +msgid "You can have a look at the :ref:`example file ` for inspiration." +msgstr "" + +#: ../references/configuration.rst:29 +#: bbe729efee2e425ba7bf63d0d795c024 +msgid "Environment variables" +msgstr "" + +#: ../references/configuration.rst:31 +#: 78bada65e24145408401a73abde6c115 +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:36 +#: 372d0840e9f44b6cb843873b606bf272 +msgid "For environment vars, the separator between sections and variables is a double underscore: ``__``. For instance, the ``NAME`` var in the ``CANAILLE`` section shown above is ``CANAILLE__NAME``." +msgstr "" + +#: ../references/configuration.rst:40 +#: 7155c45bef3148808457a02dfb189eb6 +msgid "Environment file" +msgstr "" + +#: ../references/configuration.rst:42 +#: f8483b8a71fa4402945e5de5c60a3a34 +msgid "Any environment variable can also be written in a ``.env``, and will be read if present." +msgstr "" + +#: ../references/configuration.rst:44 +#: 3ff74982d2c149a488ea79beb76b9016 +msgid ".env" +msgstr "" + +#: ../references/configuration.rst:62 +#: 6f339b9fcda24614a4c9d464fbe167cc +msgid "Parameters" +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:1 +#: ca3607a39ced4aa99c020fdbd129b60a +msgid "The top-level namespace contains holds the configuration settings unrelated to Canaille." +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:4 +#: b4cbd14086fa4ff9937bf36b1d166ccb +msgid "The configuration paramateres from the following libraries can be used:" +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:6 +#: 62dd8b4eb7e247f3921d292c36acf20a +msgid ":doc:`Flask `" +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:7 +#: a3c625fea06d4980b69eeb9c9fd37bea +msgid ":doc:`Flask-WTF `" +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:8 +#: 4e5f69ad21fa48d99a45d294bdb27006 +msgid ":doc:`Flask-Babel `" +msgstr "" + +#: ../../canaille/app/configuration.py:docstring of canaille.app.configuration.RootSettings:9 +#: 0d5858c06dca4739bfba193b2a9c47c5 +msgid ":doc:`Authlib `" +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 +#: ba3addc71f704dc4a647f7d04b43a433 +msgid "The Flask :external:py:data:`DEBUG` configuration setting." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 +#: 021751b062154dd89a16d10a064885e7 +msgid "This enables debug options." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 +#: 8246771c26b548bd88184af9ab15b474 +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 +#: 14ca7557e08646bc8f21e743f9fdf471 +msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 +#: fb085bd345a64cd3ab76141e055c1229 +msgid "This sets the url scheme by which canaille will be served." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 +#: 2413329e95cd45f28f8edf63e7e3578e +msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 +#: 8b329b5688944ab68544c7b072fa2846 +msgid "You MUST change this." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 +#: f951ac0955154ad28b6871274226716b +msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." +msgstr "" + +#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 +#: b085d221f26d47909f2cbc174e5cab2b +msgid "This sets domain name on which canaille will be served." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:1 +#: 0c13d8e65e484aca84620ac088f6c1e6 +msgid "The settings from the ``CANAILLE`` namespace." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.CoreSettings:3 +#: 1d62851d1e184a9aaf4fc175018b665e +msgid "Those are all the configuration parameters that controls the behavior of Canaille." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 +#: e7acb8d7152040f9a569147fe9f58390 +msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 +#: 354ac41600854e89a7dbec29e2dbdc4b +msgid "The ACL name can be freely chosen. For example::" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 +#: 8826d0c7c5a846538420fb4f6de5633c +msgid "Administration email contact." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 +#: 6fc562dc68404a0fafecc6f0f75b55d5 +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 +#: 2be02b3b84724c22a4dbafbdfdb74108 +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:4 +#: 23396b7657bb4f6598654f0aca9c7e0b +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.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 +#: ab71d8b5687e4ae0b5daf416aa111fea +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 +#: f9cc696903434a3c9f1f957244880a26 +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 +#: 8a7e8a6a8b944bb5b7f584a330c0474b +msgid "If :py:data:`True`, then users can freely create an account at this instance." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 +#: 534e391bfaca45fb9f92dd32813a7128 +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 +#: d701f8dcb04b48c0a6e3178707069f9e +msgid "You favicon." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 +#: 3f81e8b8a0b14ea29760b5f6cccb4f74 +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 +#: 53d18a038f154d11ac8802a8330d8a64 +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:5 +#: 439b41524c5440749de2ab91c1e75b22 +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 +#: 4f20d3e138434a77ba55d36978b094be +msgid "Accelerates webpages loading with asynchronous requests." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 +#: 1c1b0c138fb14880ac9a7d3310daac91 +msgid "The validity duration of registration invitations, in seconds." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 +#: 92f6e534420048079c73bef63a596f0e +msgid "Defaults to 2 days." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 +#: f892f17ef8b6441695fce46d31c8e757 +msgid "Enables Javascript to smooth the user experience." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 +#: d7fa71e9bca048d99305cadb433bc5f7 +msgid "If a language code is set, it will be used for every user." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 +#: ae18c7372a364452a54c1207e2e3c20b +msgid "If unset, the language is guessed according to the users browser." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 +#: 8652a5e948794d9ca1dfca0d7b3eb00f +msgid "Configures the logging output using the python logging configuration format:" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 +#: 24507175b32948a0a166b7a95fd2bbea +msgid "if :py:data:`None`, everything is logged in the standard error output the log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:`~logging.INFO`" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 +#: 2132cfdff1dd4ac48cc86437c60deedd +msgid "if this is a :class:`dict`, it is passed to :func:`logging.config.dictConfig`:" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 +#: f9e2edbbc1c0422483be175b3c89f681 +msgid "if this is a :class:`str`, it is expected to be a file path that will be passed to :func:`logging.config.fileConfig`" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 +#: 9f3feaf17bb04736af38c2c71dc850c3 +msgid "For example::" +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 +#: 706bb2a426fe47bfbff9eec1f8d3340a +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 +#: f7e1cfde263d4033ab5a072c2c8073f9 +msgid "Maximum length for user password." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 +#: ec4eff47c3414a0e95240588bbc7b96a +msgid "There is a technical limit with passlib used by sql database of 4096 characters. If the value entered is 0 or None, or greater than 4096, then 4096 will be retained." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 +#: 49a32046c38943479c91a6e26ad12885 +msgid "Minimum length for user password." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 +#: 5e3a17e0fe1f49c59af521f8bb4117e6 +msgid "It is possible not to set a minimum, by entering None or 0." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 +#: 79b379d0c00641c98bfd074cb7a5de8f +msgid "Your organization name." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 +#: 502d5daa195f4a069d5e01a8f17a32d7 +msgid "Used for display purpose." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 +#: d067d220d19b4e638975fc10825433fd +msgid "Have i been pwned api url for compromission checks." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 +#: 804df457dea74bc3b32a12fb5625d804 +msgid "A `Sentry `_ DSN to collect the exceptions." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 +#: 7f42487bcd384c839248df71986bd1e7 +msgid "This is useful for tracking errors in test and production environments." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 +#: 7486766d5efe42a69686be9a4be65935 +msgid "The settings related to SMTP and mail configuration." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 +#: b1e077f69a64495e93d1d91482278907 +msgid "If unset, mail-related features like password recovery won't be enabled." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 +#: 91d0533cabba48249953cc0b5f45d336 +msgid "The name of a theme in the 'theme' directory, or a path to a theme." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 +#: 17ea1b66ebf84b86b371ccc7e2d56f4b +msgid "Defaults to ``default``. Theming is done with `flask-themer `_." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 +#: 890ae4ec22a8402c8ae07fbd757c5c9a +msgid "The timezone in which datetimes will be displayed to the users (e.g. ``CEST``)." +msgstr "" + +#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 +#: f390001b96764212950188d49beeae62 +msgid "If unset, the server timezone will be used." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:1 +#: ec897111dca1408788e83869c017f25e +msgid "The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, mail related features will be disabled, such as mail verification or password recovery emails." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.SMTPSettings:5 +#: 46719e6acf4942c895c090b48d6b9949 +msgid "By default, Canaille will try to send mails from localhost without authentication." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 +#: 325edd30d50248b592b82685f4e00edd +msgid "The sender for Canaille mails." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 +#: 1574cd5eb1dd4e6893ba2e1f5d78e946 +msgid "Some mail provider might require a valid sender address." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 +#: f146f18cbf9a4b6a8e569002e35b33f3 +msgid "The SMTP host." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 +#: e92b851ae5764d2d96142d4c1ec4b2e0 +msgid "The SMTP login." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 +#: 49cbd4a29c174b05b60f619bc6f148f8 +msgid "The SMTP password." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 +#: db67a609bb1146bd924f4e883576a0e7 +msgid "The SMTP port." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 +#: 32ca0a0c5de04fd581707a9b0599f98b +msgid "Whether to use SSL to connect to the SMTP server." +msgstr "" + +#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 +#: 47a21d1aa3334dd498fc8a2f92cf87b9 +msgid "Whether to use TLS to connect to the SMTP server." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:1 +#: de42eb9a951e4074aa4384b708c54ec1 +msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.ACLSettings:3 +#: 96228ae9d24e43cf8cb0765cfe307061 +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 +#: a94f9d4825dd4cf6b51f6c08cdd05ed5 +msgid ":attr:`FILTER` can be:" +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 +#: 38b00d981c0745858bd5afee6e376a10 +msgid ":py:data:`None`, in which case all the users will match this access control" +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 +#: 8f65cf744a144dedaad8b87c1bf60aac +msgid "a mapping where keys are user attributes name and the values those user attribute values. All the values must be matched for the user to be part of the access control." +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 +#: 8127a4c682cf4ed6b49080ad7fdce3a4 +msgid "a list of those mappings. If a user values match at least one mapping, then the user will be part of the access control" +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 +#: 92de0b6919df4875b14a88a269aaf3d4 +msgid "Here are some examples::" +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 +#: 2c469868fe214b12b9c58e4dc69d2337 +msgid "A list of :class:`Permission` users in the access control will be able to manage. For example::" +msgstr "" + +#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 +#: d4c1573c24484da685264970beeab6ac +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 +#: 7ad86e8e1c2940c99c9d5122b8c240ea +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 +#: 4e2f14152dad42ff830a82653102d205 +msgid "The permissions that can be assigned to users." +msgstr "" + +#: ../../canaille/core/configuration.py:docstring of canaille.core.configuration.Permission:3 +#: f30678104bf14db99cf235c70fe4f306 +msgid "The permissions are intended to be used in :attr:`ACLSettings `." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 +#: 28b6407f946a4a9d86fb24c5e1134ee8 +msgid "Allows users to delete their account." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 +#: ccce0fde7b484a6aa630805d656c566d +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 +#: a848267e5289499799c80b360d319ee5 +msgid "Allows users to edit their own profile." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.IMPERSONATE_USERS:1 +#: 4c0db7f5fd9d482e8321158b3651e086 +msgid "Allows users to take the identity of another user." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 +#: 9cf40563d9d54237928b0e0fdd6720eb +msgid "Allows group edition and creation." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 +#: aaa7fee0b7514c6c924c96e822d6e994 +msgid "Allows OpenID Connect client managements." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 +#: 2f5b0b1b7bee480cbf903b58d6741db8 +msgid "Allows other users management." +msgstr "" + +#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 +#: 32cdb36f2e8c426296ce9fb22ae9af4f +msgid "Allows OpenID Connect authentication." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:1 +#: 7db6f94eb6ce4fd6ad6eb73de65f6168 +msgid "OpenID Connect settings." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.OIDCSettings:3 +#: ada0ce32653d45c4b9818161c6709d2d +msgid "Belong in the ``CANAILLE_OIDC`` namespace." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 +#: 4d0306630177446e9af4813cf6dc0442 +msgid "Whether a token is needed for the RFC7591 dynamical client registration." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 +#: 9b96e0f332ad46daa33d03de5a000425 +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 +#: 543b2a5f70a948fb8526e2a4991fb549 +msgid "A list of tokens that can be used for dynamic client registration." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 +#: 565aaf8210214a41b1dbb08139be8d97 +msgid "JSON Web Token settings." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 +#: 816df8d87e8d4526b01fc137e7bb5eb6 +msgid "Force the nonce exchange during the authentication flows." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 +#: 679b9c979e4742fcb5de316379514a2d +msgid "This adds security but may not be supported by all clients." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:1 +#: fdb2a1d51be14928b6edd8b3ea2f18e1 +msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTSettings:3 +#: 0ab3e97636744b9697532be502541752 +msgid "You can generate a RSA keypair with::" +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 +#: 7d783adb55c8412280608afa00d9e70c +msgid "The key algorithm." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 +#: 2e9a009538254743b34f0e7790a50a46 +msgid "The time the JWT will be valid, in seconds." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 +#: b23ca2745b5e4113be82cae0f38a3a1f +msgid "The URI of the identity provider." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 +#: 24cc64567a194e92b55107a516bc68ce +msgid "The key type." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 +#: cc7b13206d214456820761c3ad9b8672 +msgid "The private key." +msgstr "" + +#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 +#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 +#: a69ce459dfa84bd08ac906a80ebeb83a +#: f1c349cd7a364052afcbcf80dc11d193 +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 +#: db3cf3cf3d9142d1b0d53dd8781fbb7b +msgid "The public key." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:1 +#: a1801ef18fd142b79510e61399ebcdec +msgid "Mapping between the user model and the JWT fields." +msgstr "" + +#: ../../canaille/oidc/configuration.py:docstring of canaille.oidc.configuration.JWTMappingSettings:3 +#: 07be4f83902040b5a007c0e5bd384a54 +msgid "Fields are evaluated with jinja. A ``user`` var is available." +msgstr "" + +#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:1 +#: 45a1f89226a1491ea91db08de5b3d9a8 +msgid "Settings related to the SQL backend." +msgstr "" + +#: ../../canaille/backends/sql/configuration.py:docstring of canaille.backends.sql.configuration.SQLSettings:3 +#: c8c79789fa1e4d189d780e54c5eabf09 +msgid "Belong in the ``CANAILLE_SQL`` namespace." +msgstr "" + +#: ../../docstring of canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 +#: 7fc80f4433e94a3ca3edb04ee05141d6 +msgid "The SQL server URI. For example::" +msgstr "" + +#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:1 +#: 1facbb44bb7c447bb6021c7725909dc7 +msgid "Settings related to the LDAP backend." +msgstr "" + +#: ../../canaille/backends/ldap/configuration.py:docstring of canaille.backends.ldap.configuration.LDAPSettings:3 +#: d15577fbbe16479999f587861a8762c6 +msgid "Belong in the ``CANAILLE_LDAP`` namespace." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 +#: ef98c69f41e3460f978b3bded0f3c087 +msgid "The LDAP bind DN." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 +#: 509dc31fbf9f4b5681dec463406a6ffa +msgid "The LDAP bind password." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 +#: f3770af8c9d144e486ef530d9b314a7e +msgid "The LDAP node under which groups will be looked for and saved." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 +#: f769828768134b21b3f4883749a97b1e +msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 +#: 4ed53e9c8dc4469191c174372a2ff731 +msgid "The object class to use for creating new groups." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 +#: b3b7dc496aed41b49201db301f09445b +msgid "The attribute to use to identify a group." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 +#: 3e708b296a59452a8b4894ad1a6c5343 +msgid "The attribute to identify an object in the Group DN." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 +#: dfa7a6f410a541fdab5e1265483ffc8a +msgid "The LDAP root DN." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 +#: ddfd58d7e14442129a26fda35deefa60 +msgid "The LDAP connection timeout." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 +#: ba3913fb1d764fab9ddb72f0f1d336e6 +msgid "The LDAP server URI." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 +#: 47221563b06e4096a3eb964bfe4f70b2 +msgid "The LDAP node under which users will be looked for and saved." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 +#: af59e7749bcc4e92bad0573d3aef861b +msgid "For instance `ou=users,dc=mydomain,dc=tld`." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 +#: 17148b32db674420b2e17bd7bc4d64b7 +msgid "The object class to use for creating new users." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 +#: 9c0f28dd1ec547a2a2105c43a1ea8cb1 +msgid "Filter to match users on sign in." +msgstr "" + +#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 +#: 6dc2f7e50029421093cbb6605d5cd308 +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 +#: ed6628f1f92c48e79f4c04c45933ca49 +msgid "The attribute to identify an object in the User DN." +msgstr "" + +#: ../references/configuration.rst:81 +#: 36e85ca0b73141169e01878dc817bde1 +msgid "Example file" +msgstr "" + +#: ../references/configuration.rst:83 +#: 211faaedf62448aaa8b8313556464c28 +msgid "Here is a configuration file example:" +msgstr "" + +#: ../references/index.rst:2 +#: 1714dcd8524a4572bf33cf225306ae48 +msgid "References" +msgstr "" + +#: ../references/models.rst:2 +#: b3035bd19cc343468abaf3cbb88eacbc +msgid "Data models" +msgstr "" + +#: ../references/models.rst:4 +#: a1202312f9e44824958514224dd6d7ee +msgid "This reference details the data models used by Canaille. This is mostly useful for developers." +msgstr "" + +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1 +#: 6f4075b2615c4c5799703c8ee15fb71e +#: 461cc5d773ed46ddafdec33d26872246 +msgid "Bases: :py:class:`object`" +msgstr "" + +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:1 +#: 266d3c351347457882173839a5494304 +msgid "The backend model abstract class." +msgstr "" + +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.BackendModel:3 +#: ef3fa6cad04d49a3b1feecbe4cdd9ce6 +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 +#: aa2bf0341a1d4bc08c14e9e06532b515 +msgid "The model abstract class." +msgstr "" + +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:3 +#: e9a0f6f9d07542ffacc925102ab9b167 +msgid "It details all the common attributes shared by every models." +msgstr "" + +#: ../../docstring of canaille.backends.models.Model.created:1 +#: 26f896206d434c66af18e1554c2b39cf +msgid "The :class:`~datetime.datetime` that the resource was added to the service provider." +msgstr "" + +#: ../../docstring of canaille.backends.models.Model.id:1 +#: a8f940801e7f489ba20546301316692f +msgid "A unique identifier for a SCIM resource as defined by the service provider. Id will be :py:data:`None` until the :meth:`~canaille.backends.models.BackendModel.save` method is called." +msgstr "" + +#: ../../docstring of canaille.backends.models.Model.id:5 +#: 41caefe3a8144846b58b2bddff61d7ff +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 +#: c44ba47611ea4698af894455d44619fb +msgid "Returns a unique value that will be used to identify the model instance." +msgstr "" + +#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model.identifier:4 +#: 72da2a346972433780bc2e636e106d7b +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 +#: afaa2a0f154b4160b54eee630032e6f8 +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 +#: 2874d8a267c640548a423bdca56df111 +msgid "If this resource has never been modified since its initial creation, the value MUST be the same as the value of :attr:`~canaille.backends.models.Model.created`." +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 +#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1 +#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 +#: ../../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 +#: 30d0a769f9d840fdafcc398405631bf1 +#: 78cd110181444adf8891551c1927a7c9 +#: 02d1e4d034464e64bae8a9f5627df315 +#: 4991c2c94129405bb96a3dfe507108c5 +#: d8d3391e1d3d4c76bacd2799816a12b3 +#: 3b6e85588ce44d42b2ab8fc4afaf5396 +msgid "Bases: :py:class:`~canaille.backends.models.Model`" +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 +#: b108f7af66b24928910eb2657acab297 +msgid "User model, based on the `SCIM Group schema `_." +msgstr "" + +#: ../../docstring of canaille.core.models.Group.display_name:1 +#: 81ca9ec1c2e0433abc0d872911dfc3e9 +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 +#: 11d7ce5c28e749c6a6525d5007e0f95b +#: d6e6ff5ae1eb42bb84697629aa921407 +msgid "REQUIRED." +msgstr "" + +#: ../../docstring of canaille.core.models.Group.members:1 +#: a82069d01e4c4d2682b446c98505ca6e +msgid "A list of members of the Group." +msgstr "" + +#: ../../docstring of canaille.core.models.Group.members:3 +#: 665081b51e814449b2a29f7a56e1968b +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 +#: 62fa68900e434762bd85c5ade2cb2a00 +msgid "User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password Management Extension `_ draft. Attribute description is based on SCIM and put there for information purpose. The description may not fit the current implementation in Canaille." +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 +#: b248b2f62dfe4e68bddd63bec00966e4 +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 +#: 57dd6a9a0b8c4864a95af69346964dea +msgid "Identifies the name of a department." +msgstr "" + +#: ../../docstring of canaille.core.models.User.display_name:1 +#: 1d49d216d1b343d295dfdfa77e551b77 +msgid "The name of the user, suitable for display to end-users." +msgstr "" + +#: ../../docstring of canaille.core.models.User.display_name:3 +#: dd9d3ca768b642dfa17f5495f422fd8a +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 +#: 7ea26c780ca2493aafee136baf8ec9a2 +msgid "Email addresses for the User." +msgstr "" + +#: ../../docstring of canaille.core.models.User.emails:3 +#: d06efcedf29f45ddb8bd45ab1e754b09 +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 +#: 088e38d69f594804bbde39f7de054cfb +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 +#: e71992364a4b4d6ca7ff849be03fa98d +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 +#: 8d3a3acc6f51434f9bdc7a56166e8d2b +msgid "The full mailing address, formatted for display or use with a mailing label." +msgstr "" + +#: ../../docstring of canaille.core.models.User.formatted_address:4 +#: d02f4c440ff84c9b8e7859f1c2f8e437 +msgid "This attribute MAY contain newlines." +msgstr "" + +#: ../../docstring of canaille.core.models.User.formatted_name:1 +#: 13d24f362e354f1ca1f97bccb45f4d52 +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 +#: 89b59cdc575f4da4a95d5812c79a2d44 +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 +#: f93da1a83db14690a1319e00e75bc91a +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 +#: f8de4887ea8e4881852d8a2ddb6aefbb +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 +#: a3755516ad3d4a4e99d463daf04d0900 +msgid "Check whether a password has been set for the user." +msgstr "" + +#: ../../docstring of canaille.core.models.User.locality:1 +#: cc940278bc2a4693ba6fcbd7005d155a +msgid "The city or locality component." +msgstr "" + +#: ../../docstring of canaille.core.models.User.lock_date:1 +#: 54a5441c515f4520990822788d729733 +msgid "A DateTime indicating when the resource was locked." +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.User.locked:1 +#: 1ee89e8c473a47b09e2292ac7c153492 +msgid "Whether the user account has been locked or has expired." +msgstr "" + +#: ../../docstring of canaille.core.models.User.organization:1 +#: ac701d69d25a4388969ae1e0e9edbfa2 +msgid "Identifies the name of an organization." +msgstr "" + +#: ../../docstring of canaille.core.models.User.password:1 +#: 27b5210c75804a148814c2f4d8c42844 +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 +#: 6394c05116d44a0b81cf02b402587ef5 +msgid "Prepare the cleartext value for international language comparison. See Section 7.8 of [RFC7644]." +msgstr "" + +#: ../../docstring of canaille.core.models.User.password:12 +#: 62cb13571d0f4f338277a23d1b7f59cf +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 +#: e9565b52217d46068ab1e33cf70f3de8 +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 +#: 602d688e5a5d44eea1eeb90863b271d3 +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 +#: 725d3e55f8b140caadb1db419a887ff4 +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 +#: c7c0a12a3a2d4db3afb0a55a2721da5c +msgid "Prepares the filter value for international language comparison. See Section 7.8 of [RFC7644]." +msgstr "" + +#: ../../docstring of canaille.core.models.User.password:35 +#: b0ed5c3e41d847e8a79f87078a3a17ff +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 +#: b2d2eeb3c4a04b449fd372664c86b359 +msgid "The mutability of the password attribute is \"writeOnly\", indicating that the value MUST NOT be returned by a service provider in any form (the attribute characteristic \"returned\" is \"never\")." +msgstr "" + +#: ../../docstring of canaille.core.models.User.phone_numbers:1 +#: 4853bce35133497cae1a3b254bf8a8dc +msgid "Phone numbers for the user." +msgstr "" + +#: ../../docstring of canaille.core.models.User.phone_numbers:3 +#: 8979006771cb41f9ba3c56ae427fa8a5 +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 +#: 7a6291de70a4447485ba45c111f90be8 +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 +#: be028a013b384ca2807895828962c04e +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 +#: 40c51c5235f944bca20e65ec9f0177d4 +msgid "The zip code or postal code component." +msgstr "" + +#: ../../docstring of canaille.core.models.User.preferred_language:1 +#: 6a834d66c4e749e0a7c3a0b9ed517ba7 +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 +#: 64e8efd5ee21421f891b0238f90d182e +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 +#: fa9b1e7e37904969b4de73ff84cc9496 +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 +#: 332359d0d5e640aa93c3a27e4525fe7c +msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:1 +#: fe414ec9cf444092b3085cfc0afee6a4 +msgid "The fields the user can read according to the :class:`configuration ` configuration." +msgstr "" + +#: ../../canaille/core/models.py:docstring of canaille.core.models.User.readable_fields:4 +#: 5d4191b52d494aafb0d738e298cf7a18 +msgid "This does not include the :attr:`writable ` fields." +msgstr "" + +#: ../../docstring of canaille.core.models.User.region:1 +#: 8e9d9d348e0b499aa5c100d1d651a313 +msgid "The state or region component." +msgstr "" + +#: ../../docstring of canaille.core.models.User.street:1 +#: c4ef32cb99c34e7fa69f07785320e3d7 +msgid "The full street address component, which may include house number, street name, P.O." +msgstr "" + +#: ../../docstring of canaille.core.models.User.street:4 +#: 3c26b79f2ed1414a87524f8ec611dddf +msgid "box, and multi-line extended street address information. This attribute MAY contain newlines." +msgstr "" + +#: ../../docstring of canaille.core.models.User.title:1 +#: 755fa0dc5a0c4871becc12d9cffb60e8 +msgid "The user's title, such as \"Vice President\"." +msgstr "" + +#: ../../docstring of canaille.core.models.User.user_name:1 +#: a454c05e71764f9cbdf0071193616eb9 +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 +#: ff8b08db92cf4100bb12a40b25d77063 +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 +#: 2c92ce75a6e0498d9fe69da2b9ea1bdd +msgid "The fields the user can write according to the :class:`configuration `." +msgstr "" + +#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1 +#: febb3bfac0654b0b8e7d9ab0eba842ab +msgid "OpenID Connect temporary authorization code definition." +msgstr "" + +#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1 +#: dc9e974e3ac24619b2133e74cde093a5 +msgid "OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 +#: 58c086f6b9f4483fbccebdae8625a9a1 +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 +#: 6e3d1a288719499ba55a83dcdc05991f +#: da0dddd7ce6948c5acd4e8208e91d09e +#: 6d4d8773f22a4d00831ae8220b1299a8 +msgid "OPTIONAL." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 +#: 58a3537d7ac54fc08d00307052c5b70d +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 +#: a6cb1caecdc943869da758960df78317 +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 +#: 978a5c80bd8240a08b092fc06405aa60 +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 +#: 90d413e051f9438fa0c1703d8ccdff54 +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 +#: 74762eb67d8a475d80da339a3b63a8ed +msgid "REQUIRED if \"client_secret\" is issued." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.client_secret_expires_at:3 +#: 6d76b51fe1644041a8a0677567570b44 +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 +#: f4ab021f927b4563a070257c60a8f559 +msgid "URL string of a web page providing information about the client." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 +#: 663428e642c4466a86390083dade6126 +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 +#: b4e312f3e2444f468929113a44b0dea8 +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 +#: 5dc7df1445694544a1c57bcd9f761467 +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 +#: 85e0a62561344a348cb6deb5dd8a218c +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 +#: 294a968347e54e68818115f6d4368c47 +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 +#: d868b67264bd4b4bb96713fb8ade25fa +msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 +#: 7175000760ec4455b3c87aa38f9559e4 +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 +#: 812e9d7d2ac2411e92eb9ee9fb0a20a6 +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 +#: 1af63b16669d4631b071b96034202e28 +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 +#: 438cafec18834b8c8befa16ecfa98fa4 +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 +#: b572770632ac490ab9b3850fc9fb07e5 +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 +#: faf8a507ee9c481399137c43cf6c91dd +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 +#: 8512b3f0a754434ebc4aff8e329c1e6b +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 +#: b6f78d3c718c4fc4a0b2ba99b2e4e480 +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 +#: 02f4c953df3948d09f78ccd7ab5cedb1 +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 +#: 7f1548f2b6c145d785f3f1c43317df1b +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 +#: 2f0ad1518603470b8cd4fe2f265e6f85 +msgid "URL string that references a logo for the client." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 +#: ff7134b134b645a9a3156d42a980f08e +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 +#: f47d9200239d48d1ac74db6f323f9ce5 +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 +#: 1d5a279df85d4897bf38af1e0c3f13ea +#: c917b2d3bd2d481eb5c0eeb265eedb4e +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 +#: db13c682dc054c7080a82f49c47e45c8 +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 +#: 4c50516d7ce84dbc84e0e788dc2b1889 +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 +#: e9fe092e8543426e8253d4369f184a7c +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 +#: ec8ccaf66a7c4d418729d34c822db639 +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 +#: 4810215d814142339501c3e889df1062 +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 +#: 61fd38354038452c9503ca876a220cf3 +msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 +#: 9ca40a61a3094e45a8fd09ee68901d00 +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 +#: a536f9f5ebf048e0868b8cf753e95abe +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 +#: 517eb5ade29e4685af967e3e4ea061ef +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 +#: 10472d4f71fc4d6b89e31a7693238615 +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 +#: 41725941c0414bb5bf434777b6c2f028 +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 +#: 9eda381133c04d49b847dde1ca563f5d +msgid "A version identifier string for the client software identified by \"software_id\"." +msgstr "" + +#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 +#: 37e5f81fd7d04871b092880a4bf00185 +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 +#: ac49c352aeb24e19894497192955193d +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 +#: 66854b08d62a4a36a60d0ab4d4c4884f +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 +#: e1ef3f2f13bd4f4bac6eec072813ff0e +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 +#: 6ddcb23b2028416abec55125e12600e8 +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 +#: 9e65b281bf3d4bee9bf7be88f0b182de +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 +#: b587edfc8a414f71a53b8781b4c61cbe +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 +#: 233ce80e24414377b8b348cc25c9f546 +msgid "Long-term user consent to an application." +msgstr "" + +#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1 +#: 065b6fae2d0b4b978efc341415d5f9ce +msgid "OpenID Connect token definition." +msgstr "" + +#: ../tutorial/databases.rst:2 +#: c56d43f65c3c44dea55086004f87d424 +msgid "Databases" +msgstr "" + +#: ../tutorial/databases.rst:4 +#: ecfe588effe545d8ae53e3d1364a6a62 +msgid "Canaille can read and save data in different databases. This page presents the different database backends and their specificities:" +msgstr "" + +#: ../tutorial/databases.rst:8 +#: 3d861b0b33454ebcb8a100f03117f95c +msgid "Memory" +msgstr "" + +#: ../tutorial/databases.rst:10 +#: da5c1f33abc145e9a2f5f30bfa4cb4a5 +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 +#: 3dc9f8a6f72341d9afb9ad783b6cb6ff +msgid "This backend is only for test purpose and should not be used in production environments." +msgstr "" + +#: ../tutorial/databases.rst:18 +#: 50d41eb5fb044bcea6d2590d46430c93 +msgid "Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." +msgstr "" + +#: ../tutorial/databases.rst:21 +#: b764027163c7461bb9c7241427cbcf36 +msgid "It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For instance:" +msgstr "" + +#: ../tutorial/databases.rst:29 +#: 27782e5f5733401eaae184f758a9a573 +msgid "You can find more details on the SQL configuration in the :class:`dedicated section `." +msgstr "" + +#: ../tutorial/databases.rst:34 +#: d44cefd06b98488b805db56a0202c0bf +msgid "Canaille can use OpenLDAP as its main database. It is used when the ``CANAILLE_LDAP`` configuration parameter is defined. For instance:" +msgstr "" + +#: ../tutorial/databases.rst:52 +#: 3bd4bdee4fd4426a845056c5967226e8 +msgid "You can find more details on the LDAP configuration in the :class:`dedicated section `." +msgstr "" + +#: ../tutorial/databases.rst:55 +#: 93c8f6b8a1c745408a04056b0b032443 +msgid "Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been tested. If you want to use different schemas or LDAP servers, adaptations may be needed. Patches are welcome." +msgstr "" + +#: ../tutorial/databases.rst:60 +#: 5f8f1f384da142af9a3aea4af3137f8b +msgid "OpenLDAP overlays integration" +msgstr "" + +#: ../tutorial/databases.rst:62 +#: 33e4deac08f841e0ae82a2812a57898d +msgid "Canaille can integrate with several OpenLDAP overlays:" +msgstr "" + +#: ../tutorial/databases.rst:65 +#: 9952860e43ac44d58a4c0b238d99b594 +msgid "memberof / refint" +msgstr "" + +#: ../tutorial/databases.rst:67 +#: 6d93926918dd4d42ab6840e24d2f1280 +msgid "`memberof `_ and `refint `_ overlays are needed for the Canaille group membership to work correctly." +msgstr "" + +#: ../tutorial/databases.rst:71 +#: ../tutorial/databases.rst:94 +#: 1f3bd6033c794de89a2cecdb89da88d2 +#: e02bdcbeafd54699be7a7cc5620cc347 +msgid "Here is a configuration example compatible with canaille:" +msgstr "" + +#: ../tutorial/databases.rst:73 +#: 273efda248f449f0b9ccc2302162ffd6 +msgid "memberof-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:77 +#: 8635eb947c1044f5bf93a338216afe4d +msgid "refint-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:81 +#: ../tutorial/databases.rst:104 +#: 3313776d90f948c8bfc38f063fe4760f +#: d7bc0b31b5fa4710b03c9d7254b43205 +msgid "You can adapt and load those configuration files with:" +msgstr "" + +#: ../tutorial/databases.rst:90 +#: a7caeee53d6f49949063891052dff0cf +msgid "ppolicy" +msgstr "" + +#: ../tutorial/databases.rst:92 +#: 5eaa978aede642999fffec3b585e95eb +msgid "If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is available (since OpenLDAP 2.6), then account locking support will be enabled in canaille. To allow users to manage account expiration, they need to have a *write* permission on the :attr:`~canaille.core.models.User.lock_date` attribute." +msgstr "" + +#: ../tutorial/databases.rst:96 +#: 485205f101564fcc8466539600ea7230 +msgid "ppolicy-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:100 +#: 6c34e1f947e54eb6b88507cfe8cdbd85 +msgid "ppolicy.ldif" +msgstr "" + +#: ../tutorial/deployment.rst:2 +#: d116f5fdf1304552840b1293c3d042ae +msgid "Deployment" +msgstr "" + +#: ../tutorial/deployment.rst:5 +#: ddb242bd454340f5bd16124fd50dd495 +msgid "Application service" +msgstr "" + +#: ../tutorial/deployment.rst:7 +#: 7bc0484c925642c0827c7f565c3b688a +msgid "After having finished Canaille installation you have to run it in a WSGI application server. Here are some WSGI server configuration examples you can pick. Do not forget to update the paths." +msgstr "" + +#: ../tutorial/deployment.rst:11 +#: 50579a6360574db497f9a84c04177fe8 +msgid "gunicorn" +msgstr "" + +#: ../tutorial/deployment.rst:15 +#: 81137fb9e92544649b2adb45d64507de +msgid "Write a gunicorn configuration sample file." +msgstr "" + +#: ../tutorial/deployment.rst:18 +#: 879978c80d7f4f6181d9a70a95b6b153 +msgid "uwsgi" +msgstr "" + +#: ../tutorial/deployment.rst:42 +#: f91a46a6139c45628fcfc9ed127499e8 +msgid "Webserver" +msgstr "" + +#: ../tutorial/deployment.rst:44 +#: 762fa82b13ea4b35aa14aef41c9c81e9 +msgid "Now you have to plug your WSGI application server to your webserver so it is accessible on the internet. Here are some webserver configuration examples you can pick:" +msgstr "" + +#: ../tutorial/deployment.rst:48 +#: 8f95f4501bd144d784302880ddf5781f +msgid "Nginx" +msgstr "" + +#: ../tutorial/deployment.rst:114 +#: f66b50373add4f8080c502d00668b6d2 +msgid "Apache" +msgstr "" + +#: ../tutorial/deployment.rst:153 +#: fd41fc0986e44364a3ebf8d63f225377 +msgid "Recurrent jobs" +msgstr "" + +#: ../tutorial/deployment.rst:155 +#: 893232816cb34c5e91d4536bcaaf035d +msgid "You might want to clean up your database to avoid it growing too much. You can regularly delete expired tokens and authorization codes with:" +msgstr "" + +#: ../tutorial/deployment.rst:164 +#: d27e43638d824fcbb819dffbb1bb1117 +msgid "Webfinger" +msgstr "" + +#: ../tutorial/deployment.rst:166 +#: c77203551edd4f9a8ebff3d9e99a49e8 +msgid "You may want to configure a `WebFinger`_ endpoint on your main website to allow the automatic discovery of your Canaille installation based on the account name of one of your users. For instance, suppose your domain is ``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` and there is a user ``john.doe``. A third-party application could require to authenticate the user and ask them for a user account. The user would give their account ``john.doe@mydomain.example``, then the application would perform a WebFinger request at ``https://mydomain.example/.well-known/webfinger`` and the response would contain the address of the authentication server ``https://auth.mydomain.example``. With this information the third party application can redirect the user to the Canaille authentication page." +msgstr "" + +#: ../tutorial/deployment.rst:168 +#: 0b1886b7075141e9841779211fb3d839 +msgid "The difficulty here is that the WebFinger endpoint must be hosted at the top-level domain (i.e. ``mydomain.example``) while the authentication server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille provides a WebFinger endpoint, but if it is not hosted at the top-level domain, a web redirection is required on the ``/.well-known/webfinger`` path." +msgstr "" + +#: ../tutorial/deployment.rst:170 +#: da52dafa168c49d98f063ba08002235b +msgid "Here are configuration examples for Nginx or Apache:" +msgstr "" + +#: ../tutorial/deployment.rst:172 +#: d17492a36d764bae8cb689daab3bb03e +msgid "Nginx webfinger configuration for a top level domain" +msgstr "" + +#: ../tutorial/deployment.rst:181 +#: 3343c0ba522e427c80bcf7bbca5e36ba +msgid "Apache webfinger configuration for a top level domain" +msgstr "" + +#: ../tutorial/deployment.rst:191 +#: 05d1c340250345fc8a9d69ca3c82aa51 +msgid "Create the first user" +msgstr "" + +#: ../tutorial/deployment.rst:193 +#: 64922658d6454ed3b774c84a324aa79d +msgid "Once canaille is installed, soon enough you will need to add users. To create your first user you can use the :ref:`canaille create ` CLI." +msgstr "" + +#: ../tutorial/index.rst:2 +#: 29acce67ab35458f814960316dcc91c1 +msgid "Tutorial" +msgstr "" + +#: ../tutorial/install.rst:2 +#: 01c587979263466db551b80e89b4c413 +msgid "Installation" +msgstr "" + +#: ../tutorial/install.rst:6 +#: 55621e136b2b4cf3ab3893036899e351 +msgid "Canaille is under heavy development and may not fit a production environment yet." +msgstr "" + +#: ../tutorial/install.rst:8 +#: 74396a34870f4c62aaa0ca5ad1bdb3c8 +msgid "The installation of canaille consist in several steps, some of which you can do manually or with command line tool:" +msgstr "" + +#: ../tutorial/install.rst:11 +#: 4c999740fb044077afcdfedad103b7d3 +msgid "Get the code" +msgstr "" + +#: ../tutorial/install.rst:13 +#: 254ece36aab0456897d2ac5758d6d5c1 +msgid "As the moment there is no distribution package for canaille. However, it can be installed with the ``pip`` package manager. Let us choose a place for the canaille environment, like ``/opt/canaille/env``." +msgstr "" + +#: ../tutorial/install.rst:24 +#: 66b21bf62a734f80b42551f4c902cfb0 +msgid "Extras" +msgstr "" + +#: ../tutorial/install.rst:26 +#: e701f5586f66419d987c1c6e8174aeba +msgid "Canaille provides different package options:" +msgstr "" + +#: ../tutorial/install.rst:28 +#: d6c52c3add814cdd899bf03f0d6f3cc9 +msgid "`front` provides all the things needed to produce the user interface;" +msgstr "" + +#: ../tutorial/install.rst:29 +#: a3ae7076136c46de9b174a8981834b66 +msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" +msgstr "" + +#: ../tutorial/install.rst:30 +#: c756e602833e4b6caf6791f830ffe9df +msgid "`ldap` provides the dependencies to enable the LDAP backend;" +msgstr "" + +#: ../tutorial/install.rst:31 +#: 17bb2a8ba5dc4996a7aa0ca8814c2c55 +msgid "`sqlite` provides the dependencies to enable the SQLite backend;" +msgstr "" + +#: ../tutorial/install.rst:32 +#: f05ed507e190475da10c20469b153b27 +msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" +msgstr "" + +#: ../tutorial/install.rst:33 +#: 9027bab8a01a430483f86c718a1ce50e +msgid "`mysql` provides the dependencies to enable the MySQL backend;" +msgstr "" + +#: ../tutorial/install.rst:34 +#: 61298e4e91ab4e529451dd0d499579ce +msgid "`sentry` provides sentry integration to watch Canaille exceptions;" +msgstr "" + +#: ../tutorial/install.rst:35 +#: bd6441bbc1d64cc0b2b69403d1515acf +msgid "`all` provides all the extras above." +msgstr "" + +#: ../tutorial/install.rst:37 +#: da8e4e257b604589bb14e0b29a80e745 +msgid "They can be installed with:" +msgstr "" + +#: ../tutorial/install.rst:44 +#: f889916cd6b3493bbf9066a5df580354 +msgid "Configure" +msgstr "" + +#: ../tutorial/install.rst:46 +#: 9f549ce7c01b431890b3153e580d2c2c +msgid "Choose a path where to store your configuration file. You can pass any configuration path with the ``CONFIG`` environment variable." +msgstr "" + +#: ../tutorial/install.rst:54 +#: 9a40cf9c7a5947998256e361f20bf9a9 +msgid "You should then edit your configuration file to adapt the values to your needs. Look at the configuration details in the :doc:`configuration <../references/configuration>` page." +msgstr "" + +#: ../tutorial/install.rst:57 +#: da62c365141849c7a38413ed0c62c572 +msgid "Install" +msgstr "" + +#: ../tutorial/install.rst:59 +#: fba2798a50c747339fc1f5327717d998 +msgid "The :ref:`install command ` will apply most of the things needed to get Canaille working. Depending on the configured :doc:`database ` it will create the SQL tables, or install the LDAP schemas for instance." +msgstr "" + +#: ../tutorial/install.rst:68 +#: 40405f2e68734d9ab601f682dc194f69 +msgid "Check" +msgstr "" + +#: ../tutorial/install.rst:70 +#: b5ca9b39ad7a4111a92c0cb3f951c4ed +msgid "After a manual installation, you can check your configuration file using the :ref:`check command `:" +msgstr "" + +#: ../tutorial/troubleshooting.rst:2 +#: 9a695ffaea0e4a7488315b67eb88cf1f +msgid "Troubleshooting" +msgstr "" + +#: ../tutorial/troubleshooting.rst:5 +#: 15ff521e84d24e16999f0e82a052b184 +msgid "The web interface throws useless error messages" +msgstr "" + +#: ../tutorial/troubleshooting.rst:7 +#: cec2dc1cd8bd4a1b9b2b8027d260212a +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 +#: 9432afd575d14608a8d9b41b98aeab4a +msgid "How to manually install LDAP schemas?" +msgstr "" + +#: ../tutorial/troubleshooting.rst:16 +#: b590da23aad9437f853ad3ff608cec9e +msgid "Schema installation can be automatically done using the :ref:`install command `." +msgstr "" + +#: ../tutorial/troubleshooting.rst:18 +#: 62cc8bfce68f4b9abadf1d93bd4cd947 +msgid "As of OpenLDAP 2.4, two configuration methods are available:" +msgstr "" + +#: ../tutorial/troubleshooting.rst:20 +#: fee299f66bc944fdb8e6e116b4f57947 +msgid "The `deprecated `_ one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" +msgstr "" + +#: ../tutorial/troubleshooting.rst:21 +#: fe0e6259626c429d98cd16394b446ee3 +msgid "The new one, based on a configuration directory (generally ``/etc/ldap/slapd.d``)." +msgstr "" + +#: ../tutorial/troubleshooting.rst:23 +#: ce0dcdbce977446dac9bc6ab3e4e1157 +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 +#: c6a807a8f8e94e18a2d11ada0a12e313 +msgid "Old fashion: Copy the schemas in your filesystem" +msgstr "" + +#: ../tutorial/troubleshooting.rst:35 +#: f39d1bb4d7834a6ba529a16ab8921ed2 +msgid "New fashion: Use slapadd to add the schemas" +msgstr "" + +#: ../tutorial/troubleshooting.rst:37 +#: e8349577bee7420aac4743631a866e89 +msgid "Be careful to stop your ldap server before running ``slapadd``" +msgstr "" + +#: ../tutorial/troubleshooting.rst:46 +#: fc33c258f8374c7798e4a12514b0c1cc +msgid "How to manually generate the OIDC keypair?" +msgstr "" + +#: ../tutorial/troubleshooting.rst:50 +#: 66f74b4b66584e609d3835f218254761 +msgid "The keypair generation can be automatically done using the :ref:`install command `." +msgstr "" + +#: ../tutorial/troubleshooting.rst:52 +#: 11a4a2a8235a4d0ba8bb724d14003fd8 +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 "" diff --git a/doc/locales/fr/LC_MESSAGES/development.po b/doc/locales/fr/LC_MESSAGES/development.po deleted file mode 100644 index 0beb5462..00000000 --- a/doc/locales/fr/LC_MESSAGES/development.po +++ /dev/null @@ -1,2152 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:35+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/development/changelog.rst:2 -msgid "Release notes" -msgstr "" - -#: ../../doc/development/changelog.rst:4 -msgid "All notable changes to this project will be documented in there." -msgstr "" - -#: ../../doc/development/changelog.rst:6 -msgid "" -"The format is based on `Keep a Changelog " -"`_, and this project adheres to " -"`Semantic Versioning `_." -msgstr "" - -#: ../../CHANGES.rst:2 -msgid "[0.0.57] - Unreleased" -msgstr "" - -#: ../../CHANGES.rst:5 ../../CHANGES.rst:20 ../../CHANGES.rst:48 -#: ../../CHANGES.rst:67 ../../CHANGES.rst:74 ../../CHANGES.rst:93 -#: ../../CHANGES.rst:151 ../../CHANGES.rst:177 ../../CHANGES.rst:192 -#: ../../CHANGES.rst:241 ../../CHANGES.rst:267 ../../CHANGES.rst:286 -#: ../../CHANGES.rst:294 ../../CHANGES.rst:303 ../../CHANGES.rst:327 -#: ../../CHANGES.rst:360 ../../CHANGES.rst:386 ../../CHANGES.rst:433 -#: ../../CHANGES.rst:461 ../../CHANGES.rst:491 ../../CHANGES.rst:547 -#: ../../CHANGES.rst:580 ../../CHANGES.rst:601 ../../CHANGES.rst:611 -#: ../../CHANGES.rst:634 ../../CHANGES.rst:701 ../../CHANGES.rst:739 -#: ../../CHANGES.rst:756 ../../CHANGES.rst:792 -msgid "Added" -msgstr "" - -#: ../../CHANGES.rst:6 -msgid "Password compromission check :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:7 -msgid "" -":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and " -":attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK`" -" and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` " -":issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:13 -msgid "[0.0.56] - 2024-11-07" -msgstr "" - -#: ../../CHANGES.rst:16 ../../CHANGES.rst:58 ../../CHANGES.rst:97 -#: ../../CHANGES.rst:105 ../../CHANGES.rst:113 ../../CHANGES.rst:120 -#: ../../CHANGES.rst:127 ../../CHANGES.rst:141 ../../CHANGES.rst:169 -#: ../../CHANGES.rst:182 ../../CHANGES.rst:200 ../../CHANGES.rst:219 -#: ../../CHANGES.rst:227 ../../CHANGES.rst:253 ../../CHANGES.rst:261 -#: ../../CHANGES.rst:281 ../../CHANGES.rst:311 ../../CHANGES.rst:341 -#: ../../CHANGES.rst:349 ../../CHANGES.rst:373 ../../CHANGES.rst:393 -#: ../../CHANGES.rst:415 ../../CHANGES.rst:425 ../../CHANGES.rst:446 -#: ../../CHANGES.rst:454 ../../CHANGES.rst:477 ../../CHANGES.rst:500 -#: ../../CHANGES.rst:512 ../../CHANGES.rst:521 ../../CHANGES.rst:530 -#: ../../CHANGES.rst:539 ../../CHANGES.rst:559 ../../CHANGES.rst:566 -#: ../../CHANGES.rst:616 ../../CHANGES.rst:624 ../../CHANGES.rst:649 -#: ../../CHANGES.rst:657 ../../CHANGES.rst:665 ../../CHANGES.rst:678 -#: ../../CHANGES.rst:692 ../../CHANGES.rst:724 ../../CHANGES.rst:747 -#: ../../CHANGES.rst:778 -msgid "Fixed" -msgstr "" - -#: ../../CHANGES.rst:17 -msgid "" -"With LDAP backend, updating another user groups could result in a " -"permission lost for the editor. :issue:`202`" -msgstr "" - -#: ../../CHANGES.rst:21 -msgid "" -":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and" -" :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` " -"configuration options :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:23 -msgid "Password strength visual indicator :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:24 -msgid "Security events logs :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:25 -msgid "Support for Python 3.13 :pr:`186`" -msgstr "" - -#: ../../CHANGES.rst:28 ../../CHANGES.rst:41 ../../CHANGES.rst:53 -#: ../../CHANGES.rst:78 ../../CHANGES.rst:86 ../../CHANGES.rst:134 -#: ../../CHANGES.rst:158 ../../CHANGES.rst:210 ../../CHANGES.rst:247 -#: ../../CHANGES.rst:316 ../../CHANGES.rst:332 ../../CHANGES.rst:368 -#: ../../CHANGES.rst:405 ../../CHANGES.rst:440 ../../CHANGES.rst:483 -#: ../../CHANGES.rst:587 ../../CHANGES.rst:641 ../../CHANGES.rst:673 -#: ../../CHANGES.rst:687 -msgid "Changed" -msgstr "" - -#: ../../CHANGES.rst:29 -msgid "Update to HTMX 2.0.3 :pr:`184`" -msgstr "" - -#: ../../CHANGES.rst:30 -msgid "Migrate from poetry to uv :pr:`187`" -msgstr "" - -#: ../../CHANGES.rst:31 -msgid "" -"The ``sql`` package extra is now split between ``sqlite``, ``postgresql``" -" and ``mysql``." -msgstr "" - -#: ../../CHANGES.rst:34 ../../CHANGES.rst:378 ../../CHANGES.rst:784 -msgid "Removed" -msgstr "" - -#: ../../CHANGES.rst:35 -msgid "End support for python 3.9. :pr:`179`" -msgstr "" - -#: ../../CHANGES.rst:38 -msgid "[0.0.55] - 2024-08-30" -msgstr "" - -#: ../../CHANGES.rst:42 -msgid "Use poetry-core build backend. :pr:`178`" -msgstr "" - -#: ../../CHANGES.rst:45 -msgid "[0.0.54] - 2024-07-25" -msgstr "" - -#: ../../CHANGES.rst:49 -msgid "" -"Group member removal can be achieved from the group edition page " -":issue:`192`" -msgstr "" - -#: ../../CHANGES.rst:50 -msgid "Model management commands :issue:`117` :issue:`54`" -msgstr "" - -#: ../../CHANGES.rst:54 -msgid "Model `identifier_attributes` are fixed." -msgstr "" - -#: ../../CHANGES.rst:55 -msgid "Bump to htmx 1.9.12 :pr:`172`" -msgstr "" - -#: ../../CHANGES.rst:60 -msgid "Dark theme colors for better readability" -msgstr "" - -#: ../../CHANGES.rst:61 -msgid "Crash for passwordless users at login when no SMTP server was configured." -msgstr "" - -#: ../../CHANGES.rst:64 -msgid "[0.0.53] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:68 -msgid "`env_prefix` create_app variable can select the environment var prefix." -msgstr "" - -#: ../../CHANGES.rst:71 -msgid "[0.0.52] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:75 -msgid "`env_file` create_app variable can customize/disable the .env file" -msgstr "" - -#: ../../CHANGES.rst:79 -msgid "Locked users cannot be impersonated anymore." -msgstr "" - -#: ../../CHANGES.rst:80 -msgid "Minimum python requirement is 3.9." -msgstr "" - -#: ../../CHANGES.rst:83 -msgid "[0.0.51] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:87 -msgid "Display the menu bar on error pages." -msgstr "" - -#: ../../CHANGES.rst:90 -msgid "[0.0.50] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:94 -msgid "Sign in/out events are logged in :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:98 -msgid "HTMX and JAVASCRIPT configuration settings." -msgstr "" - -#: ../../CHANGES.rst:99 -msgid "Compatibility with old sessions IDs." -msgstr "" - -#: ../../CHANGES.rst:102 -msgid "[0.0.49] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:106 -msgid "LDAP user group removal." -msgstr "" - -#: ../../CHANGES.rst:107 -msgid "Display an error message when trying to remove the last user from a group." -msgstr "" - -#: ../../CHANGES.rst:110 -msgid "[0.0.48] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:114 -msgid "LDAP objectClass guessing exception." -msgstr "" - -#: ../../CHANGES.rst:117 -msgid "[0.0.47] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:121 -msgid "Lazy permission loading exception." -msgstr "" - -#: ../../CHANGES.rst:124 -msgid "[0.0.46] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:128 -msgid "" -"Saving an object with the LDAP backend keeps the objectClass un-managed " -"by Canaille. :pr:`171`" -msgstr "" - -#: ../../CHANGES.rst:131 -msgid "[0.0.45] - 2024-04-04" -msgstr "" - -#: ../../CHANGES.rst:135 -msgid "" -"Internal indexation mechanism of " -":class:`~canaille.backends.memory.model.MemoryModel`" -msgstr "" - -#: ../../CHANGES.rst:138 -msgid "[0.0.44] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:142 -msgid "Fix the default LDAP USER_FILTER value" -msgstr "" - -#: ../../CHANGES.rst:143 -msgid "Fix the OIDC feature detection" -msgstr "" - -#: ../../CHANGES.rst:146 -msgid "[0.0.43] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:148 -msgid "🚨Configuration files must be updated.🚨" -msgstr "" - -#: ../../CHANGES.rst:153 -msgid "Add `created` and `last_modified` datetime for all models" -msgstr "" - -#: ../../CHANGES.rst:154 -msgid "Sitemap to the documentation :pr:`169`" -msgstr "" - -#: ../../CHANGES.rst:155 -msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" -msgstr "" - -#: ../../CHANGES.rst:160 -msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" -msgstr "" - -#: ../../CHANGES.rst:161 -msgid "Bump to htmx 1.99.11 :pr:`166`" -msgstr "" - -#: ../../CHANGES.rst:162 -msgid "" -"Use the standard tomllib python module instead of `toml` starting from " -"python 3.11 :pr:`167`" -msgstr "" - -#: ../../CHANGES.rst:163 -msgid "Use shibuya as the documentation theme :pr:`168`" -msgstr "" - -#: ../../CHANGES.rst:166 -msgid "[0.0.42] - 2023-12-29" -msgstr "" - -#: ../../CHANGES.rst:171 -msgid "Avoid to fail on imports if ``cryptography`` is missing." -msgstr "" - -#: ../../CHANGES.rst:174 -msgid "[0.0.41] - 2023-12-25" -msgstr "" - -#: ../../CHANGES.rst:179 -msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" -msgstr "" - -#: ../../CHANGES.rst:184 -msgid "Correctly set up Client audience during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:185 -msgid "" -"``post_logout_redirect_uris`` was ignored during OIDC dynamic " -"registration." -msgstr "" - -#: ../../CHANGES.rst:186 -msgid "Group field error prevented the registration form validation." -msgstr "" - -#: ../../CHANGES.rst:189 -msgid "[0.0.40] - 2023-12-22" -msgstr "" - -#: ../../CHANGES.rst:194 -msgid "``THEME`` can be a relative path" -msgstr "" - -#: ../../CHANGES.rst:197 -msgid "[0.0.39] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:202 -msgid "Crash when no ACL were defined" -msgstr "" - -#: ../../CHANGES.rst:203 -msgid "OIDC Userinfo endpoint is also available in POST" -msgstr "" - -#: ../../CHANGES.rst:204 -msgid "Fix redirection after password reset :issue:`159`" -msgstr "" - -#: ../../CHANGES.rst:207 -msgid "[0.0.38] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:212 -msgid "Convert all the png in webp. :pr:`162`" -msgstr "" - -#: ../../CHANGES.rst:213 -msgid "Update to flask 3 :issue:`161` :pr:`163`" -msgstr "" - -#: ../../CHANGES.rst:216 -msgid "[0.0.37] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:221 -msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" -msgstr "" - -#: ../../CHANGES.rst:224 -msgid "[0.0.36] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:229 -msgid "Avoid crashing when LDAP groups references unexisting users." -msgstr "" - -#: ../../CHANGES.rst:230 -msgid "" -"Password reset and initialization mails were only sent to the preferred " -"user email address." -msgstr "" - -#: ../../CHANGES.rst:232 -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:234 -msgid "Password comparison was too permissive on login." -msgstr "" - -#: ../../CHANGES.rst:235 -msgid "Encrypt passwords in the SQL backend." -msgstr "" - -#: ../../CHANGES.rst:238 -msgid "[0.0.35] - 2023-11-25" -msgstr "" - -#: ../../CHANGES.rst:243 -msgid "" -"Refresh token grant supports other client authentication methods. " -":pr:`157`" -msgstr "" - -#: ../../CHANGES.rst:244 -msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" -msgstr "" - -#: ../../CHANGES.rst:249 -msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:250 -msgid "Bump to htmx 1.9.9 :pr:`159`" -msgstr "" - -#: ../../CHANGES.rst:255 -msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" -msgstr "" - -#: ../../CHANGES.rst:258 -msgid "[0.0.34] - 2023-10-02" -msgstr "" - -#: ../../CHANGES.rst:263 -msgid "" -"Canaille installations without account lockabilty could not delete users." -" :pr:`153`" -msgstr "" - -#: ../../CHANGES.rst:269 -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:272 -msgid "flask-babel and pytz are now part of the `front` extras" -msgstr "" - -#: ../../CHANGES.rst:273 -msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" -msgstr "" - -#: ../../CHANGES.rst:274 -msgid "Bump to htmx 1.9.6 :pr:`154`" -msgstr "" - -#: ../../CHANGES.rst:275 -msgid "Add support for python 3.12 :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:278 -msgid "[0.0.33] - 2023-08-26" -msgstr "" - -#: ../../CHANGES.rst:283 -msgid "OIDC jwks endpoint do not return empty kid claim" -msgstr "" - -#: ../../CHANGES.rst:288 -msgid "Documentation details on the canaille models." -msgstr "" - -#: ../../CHANGES.rst:291 -msgid "[0.0.32] - 2023-08-17" -msgstr "" - -#: ../../CHANGES.rst:296 -msgid "Additional inmemory backend :issue:`30` :pr:`149`" -msgstr "" - -#: ../../CHANGES.rst:297 -msgid "Installation extras :issue:`167` :pr:`150`" -msgstr "" - -#: ../../CHANGES.rst:300 -msgid "[0.0.31] - 2023-08-15" -msgstr "" - -#: ../../CHANGES.rst:305 -msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" -msgstr "" - -#: ../../CHANGES.rst:306 -msgid "Validate phone numbers with a regex :pr:`146`" -msgstr "" - -#: ../../CHANGES.rst:307 -msgid "Email verification :issue:`41` :pr:`147`" -msgstr "" - -#: ../../CHANGES.rst:308 -msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" -msgstr "" - -#: ../../CHANGES.rst:313 -msgid "The `check` command uses the default configuration values." -msgstr "" - -#: ../../CHANGES.rst:318 -msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" -msgstr "" - -#: ../../CHANGES.rst:321 -msgid "[0.0.30] - 2023-07-06" -msgstr "" - -#: ../../CHANGES.rst:323 -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:329 -msgid "Configuration option to disable javascript :pr:`141`" -msgstr "" - -#: ../../CHANGES.rst:334 -msgid "Configuration ``USER_FILTER`` is parsed with jinja." -msgstr "" - -#: ../../CHANGES.rst:335 -msgid "" -"Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " -"``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" -msgstr "" - -#: ../../CHANGES.rst:338 -msgid "[0.0.29] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:343 -msgid "Disabled HTMX boosting on OIDC forms to avoid errors." -msgstr "" - -#: ../../CHANGES.rst:346 -msgid "[0.0.28] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:351 -msgid "A template variable was misnamed." -msgstr "" - -#: ../../CHANGES.rst:354 -msgid "[0.0.27] - 2023-06-29" -msgstr "" - -#: ../../CHANGES.rst:356 -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:362 -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:364 -msgid "Field list support. :issue:`115` :pr:`136`" -msgstr "" - -#: ../../CHANGES.rst:365 -msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" -msgstr "" - -#: ../../CHANGES.rst:370 -msgid "Bump to jquery 3.7.0 :pr:`138`" -msgstr "" - -#: ../../CHANGES.rst:375 -msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" -msgstr "" - -#: ../../CHANGES.rst:380 -msgid "Stop support for python 3.7 :pr:`131`" -msgstr "" - -#: ../../CHANGES.rst:383 -msgid "[0.0.26] - 2023-06-03" -msgstr "" - -#: ../../CHANGES.rst:388 -msgid "" -"Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " -"OpenLDAP 2.5+ :issue:`13` :pr:`118`" -msgstr "" - -#: ../../CHANGES.rst:390 -msgid "Timezone configuration entry. :issue:`137` :pr:`130`" -msgstr "" - -#: ../../CHANGES.rst:395 -msgid "Avoid setting ``None`` in JWT claims when they have no value." -msgstr "" - -#: ../../CHANGES.rst:396 -msgid "Display password recovery button on OIDC login page. :pr:`129`" -msgstr "" - -#: ../../CHANGES.rst:399 -msgid "[0.0.25] - 2023-05-05" -msgstr "" - -#: ../../CHANGES.rst:401 -msgid "" -"🚨Configuration files must be updated.🚨 Check the new format with ``git " -"diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" -msgstr "" - -#: ../../CHANGES.rst:407 -msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" -msgstr "" - -#: ../../CHANGES.rst:408 -msgid "Moved OIDC related configuration entries in ``OIDC``" -msgstr "" - -#: ../../CHANGES.rst:409 -msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" -msgstr "" - -#: ../../CHANGES.rst:410 -msgid "Bumped to htmx 1.9.0 :pr:`124`" -msgstr "" - -#: ../../CHANGES.rst:411 -msgid "" -"ACL filters are no more LDAP filters but user attribute mappings. " -":pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:412 -msgid "Bumped to htmx 1.9.2 :pr:`127`" -msgstr "" - -#: ../../CHANGES.rst:417 -msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." -msgstr "" - -#: ../../CHANGES.rst:418 -msgid "Fixed empty model attributes registration :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:419 -msgid "Password initialization mails were not correctly sent. :pr:`128`" -msgstr "" - -#: ../../CHANGES.rst:422 -msgid "[0.0.24] - 2023-04-07" -msgstr "" - -#: ../../CHANGES.rst:427 -msgid "Fixed avatar update. :pr:`122`" -msgstr "" - -#: ../../CHANGES.rst:430 -msgid "[0.0.23] - 2023-04-05" -msgstr "" - -#: ../../CHANGES.rst:435 -msgid "Organization field. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:436 -msgid "ETag and Last-Modified headers on user photos. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:437 -msgid "Dynamic form validation :pr:`120`" -msgstr "" - -#: ../../CHANGES.rst:442 -msgid "UX rework. Submenu addition. :pr:`114`" -msgstr "" - -#: ../../CHANGES.rst:443 -msgid "Properly handle LDAP date timezones. :pr:`117`" -msgstr "" - -#: ../../CHANGES.rst:448 -msgid "CSRF protection on every forms. :pr:`119`" -msgstr "" - -#: ../../CHANGES.rst:451 -msgid "[0.0.22] - 2023-03-13" -msgstr "" - -#: ../../CHANGES.rst:455 -msgid "faker is not imported anymore when the `clean` command is called." -msgstr "" - -#: ../../CHANGES.rst:458 -msgid "[0.0.21] - 2023-03-12" -msgstr "" - -#: ../../CHANGES.rst:463 -msgid "Display TOS and policy URI on the consent list page. :pr:`102`" -msgstr "" - -#: ../../CHANGES.rst:464 -msgid "Admin token deletion :pr:`100` :pr:`101`" -msgstr "" - -#: ../../CHANGES.rst:465 -msgid "Revoked consents can be restored. :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:466 -msgid "" -"Pre-consented clients are displayed in the user consent list, and their " -"consents can be revoked. :issue:`69` :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:468 -msgid "" -"A ``populate`` command can be used to fill the database with random users" -" generated with faker. :pr:`105`" -msgstr "" - -#: ../../CHANGES.rst:470 -msgid "SMTP SSL support. :pr:`108`" -msgstr "" - -#: ../../CHANGES.rst:471 -msgid "Server side pagination. :issue:`114` :pr:`111`" -msgstr "" - -#: ../../CHANGES.rst:472 -msgid "Department number support. :issue:`129`" -msgstr "" - -#: ../../CHANGES.rst:473 -msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" -msgstr "" - -#: ../../CHANGES.rst:474 -msgid "Title edition support :pr:`113`" -msgstr "" - -#: ../../CHANGES.rst:479 -msgid "" -"Client deletion also deletes related Consent, Token and AuthorizationCode" -" objects. :issue:`126` :pr:`98`" -msgstr "" - -#: ../../CHANGES.rst:485 -msgid "Removed datatables." -msgstr "" - -#: ../../CHANGES.rst:488 -msgid "[0.0.20] - 2023-01-28" -msgstr "" - -#: ../../CHANGES.rst:493 -msgid "Spanish translation. :pr:`85` :pr:`88`" -msgstr "" - -#: ../../CHANGES.rst:494 -msgid "Dedicated connectivity test email :pr:`89`" -msgstr "" - -#: ../../CHANGES.rst:495 -msgid "Update to jquery 3.6.3 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:496 -msgid "Update to fomantic-ui 2.9.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:497 -msgid "Update to datatables 1.13.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:502 -msgid "Fix typos and grammar errors. :pr:`84`" -msgstr "" - -#: ../../CHANGES.rst:503 -msgid "Fix wording and punctuations. :pr:`86`" -msgstr "" - -#: ../../CHANGES.rst:504 -msgid "Fix HTML lang tag :issue:`122` :pr:`87`" -msgstr "" - -#: ../../CHANGES.rst:505 -msgid "Automatically trims the HTML translated strings. :pr:`91`" -msgstr "" - -#: ../../CHANGES.rst:506 -msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" -msgstr "" - -#: ../../CHANGES.rst:509 -msgid "[0.0.19] - 2023-01-14" -msgstr "" - -#: ../../CHANGES.rst:514 -msgid "" -"Ensures the token `expires_in` claim and the `access_token` `exp` claim " -"have the same value. :pr:`83`" -msgstr "" - -#: ../../CHANGES.rst:518 -msgid "[0.0.18] - 2022-12-28" -msgstr "" - -#: ../../CHANGES.rst:523 -msgid "" -"OIDC end_session was not returning the ``state`` parameter in the " -"``post_logout_redirect_uri`` :pr:`82`" -msgstr "" - -#: ../../CHANGES.rst:527 -msgid "[0.0.17] - 2022-12-26" -msgstr "" - -#: ../../CHANGES.rst:532 -msgid "Fixed group deletion button. :pr:`80`" -msgstr "" - -#: ../../CHANGES.rst:533 -msgid "Fixed post requests in oidc clients views. :pr:`81`" -msgstr "" - -#: ../../CHANGES.rst:536 -msgid "[0.0.16] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:541 -msgid "Fixed LDAP operational attributes handling." -msgstr "" - -#: ../../CHANGES.rst:544 -msgid "[0.0.15] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:549 -msgid "User can chose their favourite display name. :pr:`77`" -msgstr "" - -#: ../../CHANGES.rst:550 -msgid "Bumped to authlib 1.2. :pr:`78`" -msgstr "" - -#: ../../CHANGES.rst:551 -msgid "" -"Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management " -"Protocol :pr:`79`" -msgstr "" - -#: ../../CHANGES.rst:553 -msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." -msgstr "" - -#: ../../CHANGES.rst:556 -msgid "[0.0.14] - 2022-11-29" -msgstr "" - -#: ../../CHANGES.rst:560 -msgid "Fixed translation mo files packaging." -msgstr "" - -#: ../../CHANGES.rst:563 -msgid "[0.0.13] - 2022-11-21" -msgstr "" - -#: ../../CHANGES.rst:568 -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:570 -msgid "" -"Fixed a bug happening during RP initiated logout on clients without " -"`post_logout_redirect_uri` defined." -msgstr "" - -#: ../../CHANGES.rst:572 -msgid "Gitlab CI fix. :pr:`64`" -msgstr "" - -#: ../../CHANGES.rst:573 -msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" -msgstr "" - -#: ../../CHANGES.rst:574 -msgid "Fixed non-square logo CSS. :pr:`67`" -msgstr "" - -#: ../../CHANGES.rst:575 -msgid "Fixed schema path on installation. :pr:`68`" -msgstr "" - -#: ../../CHANGES.rst:576 -msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" -msgstr "" - -#: ../../CHANGES.rst:577 -msgid "Fixed client preconsent disabling. :pr:`72`" -msgstr "" - -#: ../../CHANGES.rst:582 -msgid "Python 3.11 support. :pr:`61`" -msgstr "" - -#: ../../CHANGES.rst:583 -msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" -msgstr "" - -#: ../../CHANGES.rst:584 -msgid "``preferredLanguage`` attribute support. :pr:`75`" -msgstr "" - -#: ../../CHANGES.rst:589 -msgid "" -"Replaced the use of the deprecated `FLASK_ENV` environment variable by " -"`FLASK_DEBUG`." -msgstr "" - -#: ../../CHANGES.rst:591 -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:594 -msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" -msgstr "" - -#: ../../CHANGES.rst:595 -msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" -msgstr "" - -#: ../../CHANGES.rst:598 -msgid "[0.0.12] - 2022-10-24" -msgstr "" - -#: ../../CHANGES.rst:603 -msgid "Basic WebFinger endpoint. :pr:`59`" -msgstr "" - -#: ../../CHANGES.rst:604 -msgid "Bumped to FomanticUI 2.9.0 00ffffee" -msgstr "" - -#: ../../CHANGES.rst:605 -msgid "Implemented Dynamic Client Registration :pr:`60`" -msgstr "" - -#: ../../CHANGES.rst:608 -msgid "[0.0.11] - 2022-08-11" -msgstr "" - -#: ../../CHANGES.rst:613 -msgid "Default theme has a dark variant. :pr:`57`" -msgstr "" - -#: ../../CHANGES.rst:618 -msgid "Fixed missing ``canaille`` binary. :pr:`58`" -msgstr "" - -#: ../../CHANGES.rst:621 -msgid "[0.0.10] - 2022-07-07" -msgstr "" - -#: ../../CHANGES.rst:626 -msgid "Online demo. :pr:`55`" -msgstr "" - -#: ../../CHANGES.rst:627 -msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" -msgstr "" - -#: ../../CHANGES.rst:628 -msgid "Fixed end session when user are already disconnected." -msgstr "" - -#: ../../CHANGES.rst:631 -msgid "[0.0.9] - 2022-06-05" -msgstr "" - -#: ../../CHANGES.rst:636 -msgid "" -"``DISABLE_PASSWORD_RESET`` configuration option to disable password " -"recovery. :pr:`46`" -msgstr "" - -#: ../../CHANGES.rst:637 -msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" -msgstr "" - -#: ../../CHANGES.rst:638 -msgid "Implemented RP-initiated logout :pr:`54`" -msgstr "" - -#: ../../CHANGES.rst:643 -msgid "Bumped to authlib 1 :pr:`48`" -msgstr "" - -#: ../../CHANGES.rst:644 -msgid "documentation improvements :pr:`50`" -msgstr "" - -#: ../../CHANGES.rst:645 -msgid "use poetry instead of setuptools :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:646 -msgid "additional nonce tests :pr:`52`" -msgstr "" - -#: ../../CHANGES.rst:650 -msgid "``HIDE_INVALID_LOGIN`` behavior and default value." -msgstr "" - -#: ../../CHANGES.rst:651 -msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" -msgstr "" - -#: ../../CHANGES.rst:654 -msgid "[0.0.8] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:659 -msgid "Fixed dependencies" -msgstr "" - -#: ../../CHANGES.rst:662 -msgid "[0.0.7] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:667 -msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:670 -msgid "[0.0.6] - 2022-03-08" -msgstr "" - -#: ../../CHANGES.rst:675 -msgid "Access token are JWT. :pr:`38`" -msgstr "" - -#: ../../CHANGES.rst:680 -msgid "Default groups on invitations :pr:`41`" -msgstr "" - -#: ../../CHANGES.rst:681 -msgid "Schemas are shipped within the canaille package :pr:`42`" -msgstr "" - -#: ../../CHANGES.rst:684 -msgid "[0.0.5] - 2022-02-17" -msgstr "" - -#: ../../CHANGES.rst:689 -msgid "LDAP model objects have new identifiers :pr:`37`" -msgstr "" - -#: ../../CHANGES.rst:694 -msgid "Admin menu dropdown display :pr:`39`" -msgstr "" - -#: ../../CHANGES.rst:695 -msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" -msgstr "" - -#: ../../CHANGES.rst:698 -msgid "[0.0.4] - 2022-02-16" -msgstr "" - -#: ../../CHANGES.rst:703 -msgid "Client preauthorization :pr:`11`" -msgstr "" - -#: ../../CHANGES.rst:704 -msgid "LDAP permissions check with the check command :pr:`12`" -msgstr "" - -#: ../../CHANGES.rst:705 -msgid "" -"Update consents when a scope required is larger than the scope of an " -"already given consent :pr:`13`" -msgstr "" - -#: ../../CHANGES.rst:707 -msgid "Theme customization :pr:`15`" -msgstr "" - -#: ../../CHANGES.rst:708 -msgid "Logging configuration :pr:`16`" -msgstr "" - -#: ../../CHANGES.rst:709 -msgid "Installation command :pr:`17`" -msgstr "" - -#: ../../CHANGES.rst:710 -msgid "Invitation links :pr:`18`" -msgstr "" - -#: ../../CHANGES.rst:711 -msgid "Advanced permissions :pr:`20`" -msgstr "" - -#: ../../CHANGES.rst:712 -msgid "An option to not use OIDC :pr:`23`" -msgstr "" - -#: ../../CHANGES.rst:713 -msgid "Disable some features when no SMTP server is configured :pr:`24`" -msgstr "" - -#: ../../CHANGES.rst:714 -msgid "" -"Login placeholder dynamically generated according to the configuration " -":pr:`25`" -msgstr "" - -#: ../../CHANGES.rst:715 -msgid "Added an option to tune object IDs :pr:`26`" -msgstr "" - -#: ../../CHANGES.rst:716 -msgid "Avatar support :pr:`27`" -msgstr "" - -#: ../../CHANGES.rst:717 -msgid "Dynamical and configurable JWT claims :pr:`28`" -msgstr "" - -#: ../../CHANGES.rst:718 -msgid "UI improvements :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:719 -msgid "Invitation links expiration :pr:`30`" -msgstr "" - -#: ../../CHANGES.rst:720 -msgid "Invitees can choose their IDs :pr:`31`" -msgstr "" - -#: ../../CHANGES.rst:721 -msgid "LDAP backend refactoring :pr:`35`" -msgstr "" - -#: ../../CHANGES.rst:726 -msgid "Fixed ghost members in a group :pr:`14`" -msgstr "" - -#: ../../CHANGES.rst:727 -msgid "Fixed email sender names :pr:`19`" -msgstr "" - -#: ../../CHANGES.rst:728 -msgid "Fixed filter being not escaped :pr:`21`" -msgstr "" - -#: ../../CHANGES.rst:729 -msgid "Demo script good practices :pr:`32`" -msgstr "" - -#: ../../CHANGES.rst:730 -msgid "Binary path for Debian :pr:`33`" -msgstr "" - -#: ../../CHANGES.rst:731 -msgid "" -"Last name was not mandatory in the forms while this was mandatory in the " -"LDAP server :pr:`34`" -msgstr "" - -#: ../../CHANGES.rst:733 -msgid "Spelling typos :pr:`36`" -msgstr "" - -#: ../../CHANGES.rst:736 -msgid "[0.0.3] - 2021-10-13" -msgstr "" - -#: ../../CHANGES.rst:741 -msgid "Two-steps sign-in :issue:`49`" -msgstr "" - -#: ../../CHANGES.rst:742 -msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" -msgstr "" - -#: ../../CHANGES.rst:743 -msgid "Configuration check command. :issue:`66` :pr:`8`" -msgstr "" - -#: ../../CHANGES.rst:744 -msgid "Groups management. :issue:`12` :pr:`6`" -msgstr "" - -#: ../../CHANGES.rst:749 -msgid "Introspection access bugfix. :issue:`63` :pr:`10`" -msgstr "" - -#: ../../CHANGES.rst:750 -msgid "Introspection sub claim. :issue:`64` :pr:`7`" -msgstr "" - -#: ../../CHANGES.rst:753 -msgid "[0.0.2] - 2021-01-06" -msgstr "" - -#: ../../CHANGES.rst:758 -msgid "Login page is responsive. :issue:`1`" -msgstr "" - -#: ../../CHANGES.rst:759 -msgid "Adapt mobile keyboards to login page fields. :issue:`2`" -msgstr "" - -#: ../../CHANGES.rst:760 -msgid "Password recovery interface. :issue:`3`" -msgstr "" - -#: ../../CHANGES.rst:761 -msgid "User profile interface. :issue:`4`" -msgstr "" - -#: ../../CHANGES.rst:762 -msgid "Renamed the project *canaille*. :issue:`5`" -msgstr "" - -#: ../../CHANGES.rst:763 -msgid "Command to remove old tokens. :issue:`17`" -msgstr "" - -#: ../../CHANGES.rst:764 -msgid "Improved password recovery email. :issue:`14` :issue:`26`" -msgstr "" - -#: ../../CHANGES.rst:765 -msgid "" -"Use flask `SERVER_NAME` configuration variable instead of `URL`. " -":issue:`24`" -msgstr "" - -#: ../../CHANGES.rst:766 -msgid "Improved consents page. :issue:`27`" -msgstr "" - -#: ../../CHANGES.rst:767 -msgid "Admin user page. :issue:`8`" -msgstr "" - -#: ../../CHANGES.rst:768 -msgid "Project logo. :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:769 -msgid "" -"User account self-deletion can be enabled in the configuration with " -"`SELF_DELETION`. :issue:`35`" -msgstr "" - -#: ../../CHANGES.rst:770 -msgid "Admins can impersonate users. :issue:`39`" -msgstr "" - -#: ../../CHANGES.rst:771 -msgid "Forgotten page UX improvement. :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:772 -msgid "Admins can remove clients. :pr:`45`" -msgstr "" - -#: ../../CHANGES.rst:773 -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:775 -msgid "Password initialization mail. :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:780 -msgid "Form translations. :issue:`19` :issue:`23`" -msgstr "" - -#: ../../CHANGES.rst:781 -msgid "Avoid to use Google Fonts. :issue:`21`" -msgstr "" - -#: ../../CHANGES.rst:786 -msgid "'My tokens' page. :issue:`22`" -msgstr "" - -#: ../../CHANGES.rst:789 -msgid "[0.0.1] - 2020-10-21" -msgstr "" - -#: ../../CHANGES.rst:794 -msgid "Initial release." -msgstr "" - -#: ../../CONTRIBUTING.rst:2 -msgid "Contributions" -msgstr "" - -#: ../../CONTRIBUTING.rst:4 -msgid "Contributions are welcome!" -msgstr "" - -#: ../../CONTRIBUTING.rst:6 -msgid "" -"The repository is hosted at `gitlab.com/yaal/canaille " -"`_." -msgstr "" - -#: ../../CONTRIBUTING.rst:9 -msgid "Discuss" -msgstr "" - -#: ../../CONTRIBUTING.rst:11 -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 -msgid "Development environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:18 -msgid "You can either run the demo locally or with Docker." -msgstr "" - -#: ../../CONTRIBUTING.rst:20 -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 -msgid "" -"Initialize your development environment with: - ``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``. - " -"``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``. - ``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``. - ``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:31 -msgid "After having launched the demo you have access to several services:" -msgstr "" - -#: ../../CONTRIBUTING.rst:33 -msgid "A canaille server at `localhost:5000 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:34 -msgid "A dummy client at `localhost:5001 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:35 -msgid "Another dummy client at `localhost:5002 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:37 -msgid "The canaille server has some default users:" -msgstr "" - -#: ../../CONTRIBUTING.rst:39 -msgid "A regular user which login and password are **user**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:40 -msgid "A moderator user which login and password are **moderator**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:41 -msgid "An admin user which admin and password are **admin**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:42 -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 "" - -#: ../../CONTRIBUTING.rst:47 ../../doc/development/specifications.rst:62 -msgid "Backends" -msgstr "" - -#: ../../CONTRIBUTING.rst:49 -msgid "Canaille comes with several backends:" -msgstr "" - -#: ../../CONTRIBUTING.rst:51 -msgid "a lightweight test purpose `memory` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:52 -msgid "a `sql` backend, based on sqlalchemy" -msgstr "" - -#: ../../CONTRIBUTING.rst:53 -msgid "a production-ready `LDAP` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:56 -msgid "Docker environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:58 -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:63 -msgid "To do that, you can add the following line to your `/etc/hosts`:" -msgstr "" - -#: ../../CONTRIBUTING.rst:69 -msgid "To launch containers, use:" -msgstr "" - -#: ../../CONTRIBUTING.rst:84 -msgid "Local environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:98 -msgid "" -"If you want to run the demo locally with the LDAP backend, you need to " -"have `OpenLDAP `_ installed on your system. It" -" is generally shipped under the ``slapd`` or ``openldap`` package name." -msgstr "" - -#: ../../CONTRIBUTING.rst:103 -msgid "" -"On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be " -"restricted by apparmor, and thus makes the tests and the demo fail. This " -"can be mitigated by removing apparmor restrictions on `slapd`." -msgstr "" - -#: ../../CONTRIBUTING.rst:113 -msgid "Populate the database" -msgstr "" - -#: ../../CONTRIBUTING.rst:115 -msgid "" -"The demo database comes populated with some random users and groups. If " -"you need more, you can generate users and groups with the ``populate`` " -"command:" -msgstr "" - -#: ../../CONTRIBUTING.rst:126 -msgid "" -"Adapt to use either the `ldap` or the `sql` configuration file. Note that" -" this will not work with the memory backend." -msgstr "" - -#: ../../CONTRIBUTING.rst:129 -msgid "Unit tests" -msgstr "" - -#: ../../CONTRIBUTING.rst:131 -msgid "" -"To run the tests, you just can run `uv run pytest` and/or `uv run tox` to" -" test all the supported python environments. Everything must be green " -"before patches get merged." -msgstr "" - -#: ../../CONTRIBUTING.rst:134 -msgid "" -"To test a specific backend you can pass ``--backend memory``, ``--backend" -" sql`` or ``--backend ldap`` to pytest and tox." -msgstr "" - -#: ../../CONTRIBUTING.rst:136 -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:141 -msgid "Code style" -msgstr "" - -#: ../../CONTRIBUTING.rst:143 -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:149 -msgid "Front" -msgstr "" - -#: ../../CONTRIBUTING.rst:151 -msgid "" -"The interface is built upon the `Fomantic UI `_" -" CSS framework. The dynamical parts of the interface use `htmx " -"`_." -msgstr "" - -#: ../../CONTRIBUTING.rst:154 -msgid "" -"Using Javascript in the interface is tolerated, but the whole website " -"MUST be accessible for browsers without Javascript support, and without " -"any feature loss." -msgstr "" - -#: ../../CONTRIBUTING.rst:156 -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 "" - -#: ../../CONTRIBUTING.rst:161 -msgid "Translations" -msgstr "" - -#: ../../canaille/translations/README.rst:1 -msgid "" -"Translations are done with `Weblate " -"`_." -msgstr "" - -#: ../../canaille/translations/README.rst:3 -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 "" - -#: ../../canaille/translations/README.rst:8 -msgid "Message extraction" -msgstr "" - -#: ../../canaille/translations/README.rst:10 -msgid "" -"After you have edited translatable strings, you should extract the " -"messages with:" -msgstr "" - -#: ../../canaille/translations/README.rst:17 -msgid "Language addition" -msgstr "" - -#: ../../canaille/translations/README.rst:19 -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 -msgid "Catalog update" -msgstr "" - -#: ../../canaille/translations/README.rst:28 -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 -msgid "Catalog compilation" -msgstr "" - -#: ../../canaille/translations/README.rst:38 -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:166 -msgid "Documentation" -msgstr "" - -#: ../../CONTRIBUTING.rst:168 -msgid "The documentation is generated when the tests run:" -msgstr "" - -#: ../../CONTRIBUTING.rst:174 -msgid "" -"You can also run sphinx by hand, that should be faster since it avoids " -"the tox environment initialization:" -msgstr "" - -#: ../../CONTRIBUTING.rst:180 -msgid "The generated documentation is located at ``build/sphinx/html``." -msgstr "" - -#: ../../CONTRIBUTING.rst:183 -msgid "Publish a new release" -msgstr "" - -#: ../../CONTRIBUTING.rst:185 -msgid "" -"Check that dependencies are up to date with ``uv sync --all-extras " -"--upgrade`` and update dependencies accordingly in separated commits;" -msgstr "" - -#: ../../CONTRIBUTING.rst:186 -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:187 -msgid "" -"Check that the demo environments are still working, both the local and " -"the Docker one;" -msgstr "" - -#: ../../CONTRIBUTING.rst:188 -msgid "" -"Check that the :ref:`development/changelog:Release notes` section is " -"correctly filled up;" -msgstr "" - -#: ../../CONTRIBUTING.rst:189 -msgid "Increase the version number in ``pyproject.toml``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:190 -msgid "Commit with ``git commit``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:191 -msgid "Build with ``uv build``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:192 -msgid "" -"Publish on test PyPI with ``uv publish --publish-url " -"https://test.pypi.org/legacy/``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:193 -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:194 -msgid "Publish on production PyPI ``uv publish``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:195 -msgid "Tag the commit with ``git tag XX.YY.ZZ``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:196 -msgid "" -"Push the release commit and the new tag on the repository with ``git push" -" --tags``." -msgstr "" - -#: ../../doc/development/index.rst:2 -msgid "Development" -msgstr "" - -#: ../../doc/development/specifications.rst:2 -msgid "Specifications" -msgstr "" - -#: ../../doc/development/specifications.rst:4 -msgid "" -"This page details which specifications are implemented in Canaille, and " -"compares Canaille with other well-known identity providers." -msgstr "" - -#: ../../doc/development/specifications.rst:7 -msgid "State of the specs in Canaille" -msgstr "" - -#: ../../doc/development/specifications.rst:10 -msgid "OAuth2" -msgstr "" - -#: ../../doc/development/specifications.rst:12 -msgid "✅ `RFC6749: OAuth 2.0 Framework `_" -msgstr "" - -#: ../../doc/development/specifications.rst:13 -msgid "" -"✅ `RFC6750: OAuth 2.0 Bearer Tokens " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:14 -msgid "" -"✅ `RFC7009: OAuth 2.0 Token Revocation " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:15 -msgid "" -"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " -"Authorization Grants `_" -msgstr "" - -#: ../../doc/development/specifications.rst:16 -msgid "" -"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:17 -msgid "" -"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:18 -msgid "" -"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:19 -msgid "" -"✅ `RFC7662: OAuth 2.0 Token Introspection " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:20 -msgid "" -"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:21 -msgid "" -"❌ `RFC8428: OAuth 2.0 Device Authorization Grant " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:22 -msgid "" -"❌ `RFC8693: OAuth 2.0 Token Exchange " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:23 -msgid "" -"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" -"Bound Access Tokens `_" -msgstr "" - -#: ../../doc/development/specifications.rst:24 -msgid "" -"❌ `RFC8707: Resource Indicators for OAuth 2.0 " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:25 -msgid "" -"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:26 -msgid "" -"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:27 -msgid "" -"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:28 -msgid "" -"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:29 -msgid "" -"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" -msgstr "" - -#: ../../doc/development/specifications.rst:30 -msgid "" -"❌ `OAuth2 Multiple Response Types `_" -msgstr "" - -#: ../../doc/development/specifications.rst:31 -msgid "" -"❌ `OAuth2 Form Post Response Mode `_" -msgstr "" - -#: ../../doc/development/specifications.rst:34 -msgid "OpenID Connect" -msgstr "" - -#: ../../doc/development/specifications.rst:36 -msgid "" -"✅ `OpenID Connect Core `_" -msgstr "" - -#: ../../doc/development/specifications.rst:37 -msgid "" -"✅ `OpenID Connect Discovery `_" -msgstr "" - -#: ../../doc/development/specifications.rst:38 -msgid "" -"✅ `OpenID Connect Dynamic Client Registration `_" -msgstr "" - -#: ../../doc/development/specifications.rst:39 -msgid "" -"✅ `OpenID Connect RP Initiated Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:40 -msgid "" -"❌ `OpenID Connect Session Management `_" -msgstr "" - -#: ../../doc/development/specifications.rst:41 -msgid "" -"❌ `OpenID Connect Front Channel Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:42 -msgid "" -"❌ `OpenID Connect Back Channel Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:43 -msgid "" -"❌ `OpenID Connect Back Channel Authentication Flow " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:44 -msgid "" -"❌ `OpenID Connect Core Error Code unmet_authentication_requirements " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:45 -msgid "" -"✅ `Initiating User Registration via OpenID Connect 1.0 " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:48 -#: ../../doc/development/specifications.rst:64 -msgid "SCIM" -msgstr "" - -#: ../../doc/development/specifications.rst:50 -msgid "" -"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, " -"Overview, Concepts, and Requirements `_" -msgstr "" - -#: ../../doc/development/specifications.rst:51 -msgid "" -"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:52 -msgid "" -"❌ `RFC7644: System for Cross-domain Identity Management: Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:55 -msgid "Comparison with other providers" -msgstr "" - -#: ../../doc/development/specifications.rst:57 -msgid "Here is a feature comparison with other OpenID Connect server software." -msgstr "" - -#: ../../doc/development/specifications.rst:59 -msgid "" -"Canaille voluntarily only implements the OpenID Connect protocol to keep " -"its codebase simple." -msgstr "" - -#: ../../doc/development/specifications.rst:62 -msgid "Software" -msgstr "" - -#: ../../doc/development/specifications.rst:62 -msgid "Project" -msgstr "" - -#: ../../doc/development/specifications.rst:62 -msgid "Protocols implementations" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "FLOSS" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "Language" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "LOC" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "OIDC" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "SAML" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "CAS" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "LDAP" -msgstr "" - -#: ../../doc/development/specifications.rst:64 -msgid "SQL" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -msgid "Canaille" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:82 -#: ../../doc/development/specifications.rst:84 -#: ../../doc/development/specifications.rst:86 -#: ../../doc/development/specifications.rst:88 -msgid "✅" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 -msgid "Python" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -msgid "10k" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:82 -#: ../../doc/development/specifications.rst:86 -#: ../../doc/development/specifications.rst:88 -msgid "❌" -msgstr "" - -#: ../../doc/development/specifications.rst:68 -msgid "`Auth0`_" -msgstr "" - -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:88 -msgid "❔" -msgstr "" - -#: ../../doc/development/specifications.rst:70 -msgid "`Authelia`_" -msgstr "" - -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:82 -msgid "Go" -msgstr "" - -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:82 -msgid "50k" -msgstr "" - -#: ../../doc/development/specifications.rst:72 -msgid "`Authentic2`_" -msgstr "" - -#: ../../doc/development/specifications.rst:72 -msgid "65k" -msgstr "" - -#: ../../doc/development/specifications.rst:74 -msgid "`Authentik`_" -msgstr "" - -#: ../../doc/development/specifications.rst:74 -msgid "55k" -msgstr "" - -#: ../../doc/development/specifications.rst:76 -msgid "`CAS`_" -msgstr "" - -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:84 -msgid "Java" -msgstr "" - -#: ../../doc/development/specifications.rst:76 -msgid "360k" -msgstr "" - -#: ../../doc/development/specifications.rst:78 -msgid "`Connect2id`_" -msgstr "" - -#: ../../doc/development/specifications.rst:80 -msgid "`Gluu`_" -msgstr "" - -#: ../../doc/development/specifications.rst:82 -msgid "`Hydra`_" -msgstr "" - -#: ../../doc/development/specifications.rst:84 -msgid "`Keycloak`_" -msgstr "" - -#: ../../doc/development/specifications.rst:84 -msgid "600k" -msgstr "" - -#: ../../doc/development/specifications.rst:86 -msgid "`LemonLDAP`_" -msgstr "" - -#: ../../doc/development/specifications.rst:86 -msgid "Perl" -msgstr "" - -#: ../../doc/development/specifications.rst:86 -msgid "130k" -msgstr "" - -#: ../../doc/development/specifications.rst:88 -msgid "`Okta`_" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/development/changelog.po b/doc/locales/fr/LC_MESSAGES/development/changelog.po deleted file mode 100644 index 30aa7757..00000000 --- a/doc/locales/fr/LC_MESSAGES/development/changelog.po +++ /dev/null @@ -1,1392 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/development/changelog.rst:2 b953fe737ee247f583dd6c9212acef59 -msgid "Release notes" -msgstr "" - -#: ../../doc/development/changelog.rst:4 40dbf3144baf490ab44d2f0f499b9b1e -msgid "All notable changes to this project will be documented in there." -msgstr "" - -#: ../../doc/development/changelog.rst:6 8c832c6f18f54d8bba77166a15f18c63 -msgid "" -"The format is based on `Keep a Changelog " -"`_, and this project adheres to " -"`Semantic Versioning `_." -msgstr "" - -#: ../../CHANGES.rst:2 8927273f210040ebbad5c6071b5006c2 -msgid "[0.0.57] - Unreleased" -msgstr "" - -#: ../../CHANGES.rst:5 ../../CHANGES.rst:20 ../../CHANGES.rst:48 -#: ../../CHANGES.rst:67 ../../CHANGES.rst:74 ../../CHANGES.rst:93 -#: ../../CHANGES.rst:151 ../../CHANGES.rst:177 ../../CHANGES.rst:192 -#: ../../CHANGES.rst:241 ../../CHANGES.rst:267 ../../CHANGES.rst:286 -#: ../../CHANGES.rst:294 ../../CHANGES.rst:303 ../../CHANGES.rst:327 -#: ../../CHANGES.rst:360 ../../CHANGES.rst:386 ../../CHANGES.rst:433 -#: ../../CHANGES.rst:461 ../../CHANGES.rst:491 ../../CHANGES.rst:547 -#: ../../CHANGES.rst:580 ../../CHANGES.rst:601 ../../CHANGES.rst:611 -#: ../../CHANGES.rst:634 ../../CHANGES.rst:701 ../../CHANGES.rst:739 -#: ../../CHANGES.rst:756 ../../CHANGES.rst:792 0125c583218243cd94ca0859ba8e8a3d -#: 03978660cd4b4c99a7145f52b82bcb27 051b1f61ec4c4fcf87fc2cfa31698a20 -#: 1316ff00915a48649c3b2598062dab41 2b24cede68ea4a7ab37483a2a3a2326d -#: 2cf6afabae70487db640141c4ceb399e 37617587803b4f4383375d882f13d0a1 -#: 4234c89cb14d4364931015ca8817b153 4e64a471c6214f42a1f4dfe262f2799e -#: 61a4e6fd45e34a939958f583cef6f230 6338d173211048ff9def65d83a72edfc -#: 68a4c23f628444bd96f96f57c39e4f23 68eeab3654994232b50ae3785a1490cd -#: 69df7421a9fd47aa8fee7f2d50d6a474 807b12dc61b2479a9e55dbc1d76660a5 -#: 8982b2425feb472ab36a0c0443eff5e1 8a44683142bb4cb683d38ccf17b25252 -#: 98b317b0afda4de591c4ca2542704cc1 a4835d93fc9548fe86a3cb3e66fe162c -#: b579d76d8b884c69a1e52a208019f69e bbfe28d18576409cb70b9dc2b2c61bf4 -#: be26a5b28a3546a19e7fc2a9ecbe4eb2 d11739187bc54daa9b6d8400d3590f0b -#: d22dbd6c80e644d0a9caa4d9ace64ca8 e3956055d373407394d165eae011cb4f -#: e41dbb00721a434aae8f93d3ff56483e f02e722cf8b942a7b5b49492c72bdaca -#: f286f296f1704be2a4858bbc27e1d644 fc5801109e2d485ab43e984382ad54a9 -msgid "Added" -msgstr "" - -#: ../../CHANGES.rst:6 49fa6dfcaf764f5bb6ae66591f201aae -msgid "Password compromission check :issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:7 17a4f3bd684041b5a2a1d78b8f01a550 -msgid "" -":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and " -":attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK`" -" and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` " -":issue:`179`" -msgstr "" - -#: ../../CHANGES.rst:13 a9b16de086804e25b67bf261e9464331 -msgid "[0.0.56] - 2024-11-07" -msgstr "" - -#: ../../CHANGES.rst:16 ../../CHANGES.rst:58 ../../CHANGES.rst:97 -#: ../../CHANGES.rst:105 ../../CHANGES.rst:113 ../../CHANGES.rst:120 -#: ../../CHANGES.rst:127 ../../CHANGES.rst:141 ../../CHANGES.rst:169 -#: ../../CHANGES.rst:182 ../../CHANGES.rst:200 ../../CHANGES.rst:219 -#: ../../CHANGES.rst:227 ../../CHANGES.rst:253 ../../CHANGES.rst:261 -#: ../../CHANGES.rst:281 ../../CHANGES.rst:311 ../../CHANGES.rst:341 -#: ../../CHANGES.rst:349 ../../CHANGES.rst:373 ../../CHANGES.rst:393 -#: ../../CHANGES.rst:415 ../../CHANGES.rst:425 ../../CHANGES.rst:446 -#: ../../CHANGES.rst:454 ../../CHANGES.rst:477 ../../CHANGES.rst:500 -#: ../../CHANGES.rst:512 ../../CHANGES.rst:521 ../../CHANGES.rst:530 -#: ../../CHANGES.rst:539 ../../CHANGES.rst:559 ../../CHANGES.rst:566 -#: ../../CHANGES.rst:616 ../../CHANGES.rst:624 ../../CHANGES.rst:649 -#: ../../CHANGES.rst:657 ../../CHANGES.rst:665 ../../CHANGES.rst:678 -#: ../../CHANGES.rst:692 ../../CHANGES.rst:724 ../../CHANGES.rst:747 -#: ../../CHANGES.rst:778 007bdc1185b34411a9989032def6e734 -#: 0487135731d04a3aa314ceea5915edb4 088404ba603e4fbc8b21a95de856436e -#: 0b05d07458664d0db19ed122dd1a8192 0e84f3d232f643f09baaeabe9354c988 -#: 10a8191daed24f1cab994480cc9c9967 23667c30b6bd4767a30b60942f8137b5 -#: 2e0624e4b4674f0394070c123f740c4b 3b079330d4e04813a1c0e70e8fb8087a -#: 3e326d57ad8d40309c34d461a0604e6d 4509ce4b8cb44db596393715aa3a478e -#: 45f00c89b1664977bdb1233ed3d8507a 4a0617fb05f7460480f47d292565de76 -#: 51b78297b8b54438aec1819d5b22d814 5969c0c275ad40628372a22803af272e -#: 5997f1b979e24ab09974b1fb77de5768 5a3b4a133f654c048b11d19445c95edb -#: 661d8dddba944038a5d780784f2d36b6 66897f90441343b8aaf02e321ca1c10f -#: 673a58291a8543f3a0a894e07b649384 6d138086a0c34278aa90ec27616ca9c0 -#: 6e81fa4e83924342aeae30e444d40ef7 6ed18713552a42ab8852cf086b724461 -#: 6f2945ce69f748e289da0447f96c2be6 722bd0a5308444df85d24f9f18bdcb6c -#: 83dc0e83285145c980a70e24660a16ea 85173bffae504994a975371bf96abd14 -#: ad7c89feb9d74c29afb5be9b6c9dd959 b325380f6ffc4fa7bf0cdbf98c21af99 -#: b5822b7da25e4772bdfdb1c821c02f6b b6f339b8b13c4b70a96bcc74500018b5 -#: c449dccd3424400d814861607e1c7f99 c6ff05030e01477c836d2c793e19f3e9 -#: ca0e632319334167b644a293ba3e8da4 ccfb26fdc8a242598b4846e994bdccde -#: d996fb33e1d3452d8aeace6959df8bec dfa42b4e8bea4b7b86ed46c4b91509f9 -#: e096bf03b4174cd4b92005c2a873e444 e5743e4b4647495a998c5dc6674f2d0d -#: f04e3cbb35c64a0f8eb5e73c81b9cc57 f32bfb230dc54a85bb934cd98c378aea -#: f77db81c82ff43acb59b840d3a785859 febfb86b50494ae28cc6f18fb3dc1764 -msgid "Fixed" -msgstr "" - -#: ../../CHANGES.rst:17 bdec2ee1aca34f16886bd18ac53a7644 -msgid "" -"With LDAP backend, updating another user groups could result in a " -"permission lost for the editor. :issue:`202`" -msgstr "" - -#: ../../CHANGES.rst:21 a83f3ed53e38436f860b2d4e4ee7a14f -msgid "" -":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and" -" :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` " -"configuration options :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:23 9e5501878fd049edb1c68e497d3461e8 -msgid "Password strength visual indicator :issue:`174`" -msgstr "" - -#: ../../CHANGES.rst:24 b8dfb3be3e7d46bbbd5f3e38d79d85a7 -msgid "Security events logs :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:25 170ac8c915d34af4b0be1427dfb94d4f -msgid "Support for Python 3.13 :pr:`186`" -msgstr "" - -#: ../../CHANGES.rst:28 ../../CHANGES.rst:41 ../../CHANGES.rst:53 -#: ../../CHANGES.rst:78 ../../CHANGES.rst:86 ../../CHANGES.rst:134 -#: ../../CHANGES.rst:158 ../../CHANGES.rst:210 ../../CHANGES.rst:247 -#: ../../CHANGES.rst:316 ../../CHANGES.rst:332 ../../CHANGES.rst:368 -#: ../../CHANGES.rst:405 ../../CHANGES.rst:440 ../../CHANGES.rst:483 -#: ../../CHANGES.rst:587 ../../CHANGES.rst:641 ../../CHANGES.rst:673 -#: ../../CHANGES.rst:687 05341edb23f9457ba7c9bd3987687183 -#: 1be6e9d75caa4ff0b6813f9ce5c8d5a2 1c6470a4e53e43f48208dc4111a4a2a8 -#: 243b09f2700544c1a75d41efb3b74bb7 2da78da44c2246eb9450e8397233b7d4 -#: 3d4b412e4e7f47e6a0cd06955509f3bd 3da1ec593e1e461ca0b282b90d913862 -#: 4c389d7dc8234fc5b31262a4e181b122 505c97bab1d548e195269d36b421a775 -#: 5b236db2a7de4154bdaf581fd2a24455 8566e6dfaaff4fd18c3e809d9265eba6 -#: 972d637bb6b649778d67f37a6a7a22a6 977e856b0a574461b0e8ed71f4ff4ffb -#: 9d3405c899ac498b80eb85fa2c4f4e64 a7ccc52ad3ac4b48a8be79849f611cb6 -#: b847d5e65bcf4e93b4ecbe282285a141 e64c59795a944dd28070b1f476581240 -#: e8f91fdee09a49eb8008f27774c7c5c9 f8f0417fc5b848fda8ec71068eda0393 -msgid "Changed" -msgstr "" - -#: ../../CHANGES.rst:29 dd048821567d4e49af30e67f4c47103c -msgid "Update to HTMX 2.0.3 :pr:`184`" -msgstr "" - -#: ../../CHANGES.rst:30 4084e27a86394f33867d7239e59e6bea -msgid "Migrate from poetry to uv :pr:`187`" -msgstr "" - -#: ../../CHANGES.rst:31 6a0cf89a022f4f5b8502d927d835951f -msgid "" -"The ``sql`` package extra is now split between ``sqlite``, ``postgresql``" -" and ``mysql``." -msgstr "" - -#: ../../CHANGES.rst:34 ../../CHANGES.rst:378 ../../CHANGES.rst:784 -#: 0ed515407ffc47c780b03fa4519b1ca7 12aaef7c56474ce48f52af0702cd178e -#: 6656baf3e85f4cfd96e9ed62fac5ae78 -msgid "Removed" -msgstr "" - -#: ../../CHANGES.rst:35 07953d82baf44f0db6cc2278ceaf269b -msgid "End support for python 3.9. :pr:`179`" -msgstr "" - -#: ../../CHANGES.rst:38 5fa95f977dbd4265865f64d7e42dec39 -msgid "[0.0.55] - 2024-08-30" -msgstr "" - -#: ../../CHANGES.rst:42 e9901054edc44653900edc69f8d6fde7 -msgid "Use poetry-core build backend. :pr:`178`" -msgstr "" - -#: ../../CHANGES.rst:45 f91a035f08fc4076ad9637ccd860abe2 -msgid "[0.0.54] - 2024-07-25" -msgstr "" - -#: ../../CHANGES.rst:49 2a7996d226fd493c826457882881f1f9 -msgid "" -"Group member removal can be achieved from the group edition page " -":issue:`192`" -msgstr "" - -#: ../../CHANGES.rst:50 cad21b9996ca424f83f01d8db016371f -msgid "Model management commands :issue:`117` :issue:`54`" -msgstr "" - -#: ../../CHANGES.rst:54 6b13d83d04764aba9f42401630e68939 -msgid "Model `identifier_attributes` are fixed." -msgstr "" - -#: ../../CHANGES.rst:55 c6040e83c46443189bf69d945b928fd8 -msgid "Bump to htmx 1.9.12 :pr:`172`" -msgstr "" - -#: ../../CHANGES.rst:60 6ca29c12340d4e4494ce6879b489eb28 -msgid "Dark theme colors for better readability" -msgstr "" - -#: ../../CHANGES.rst:61 de4774aefa8c4745809602f22d150c3d -msgid "Crash for passwordless users at login when no SMTP server was configured." -msgstr "" - -#: ../../CHANGES.rst:64 e3328c3129ea4dc3a1db531991c57d85 -msgid "[0.0.53] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:68 0d7fe02c47ea4e17b0ef72a288440bd1 -msgid "`env_prefix` create_app variable can select the environment var prefix." -msgstr "" - -#: ../../CHANGES.rst:71 8d9f6d0d35374b39ad83bf53251a14cc -msgid "[0.0.52] - 2024-04-22" -msgstr "" - -#: ../../CHANGES.rst:75 32199e42abcf4b23933031beffe769c0 -msgid "`env_file` create_app variable can customize/disable the .env file" -msgstr "" - -#: ../../CHANGES.rst:79 401111928fc34feb9272364166b105b2 -msgid "Locked users cannot be impersonated anymore." -msgstr "" - -#: ../../CHANGES.rst:80 a214f59b30c04a708ecef89514c7d46f -msgid "Minimum python requirement is 3.9." -msgstr "" - -#: ../../CHANGES.rst:83 8c14a591bdf84d82ae7aa30bee8d94a9 -msgid "[0.0.51] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:87 4bf1248127bb4cf8af69abf7df835658 -msgid "Display the menu bar on error pages." -msgstr "" - -#: ../../CHANGES.rst:90 541743d76fa64548901b83eabf825abb -msgid "[0.0.50] - 2024-04-09" -msgstr "" - -#: ../../CHANGES.rst:94 1827e805745947cdbbe7f9e67b90ea71 -msgid "Sign in/out events are logged in :issue:`177`" -msgstr "" - -#: ../../CHANGES.rst:98 167211a08f6c473f97a730a4128a0b38 -msgid "HTMX and JAVASCRIPT configuration settings." -msgstr "" - -#: ../../CHANGES.rst:99 dc4b4e101ae5484a96c92c90424d39e1 -msgid "Compatibility with old sessions IDs." -msgstr "" - -#: ../../CHANGES.rst:102 d0e1de26bdea41f2bc8aeff69bfcf386 -msgid "[0.0.49] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:106 d909a539577b4cddacd4c9abcde77d07 -msgid "LDAP user group removal." -msgstr "" - -#: ../../CHANGES.rst:107 9b033c0897f94c27880b5c1a02065273 -msgid "Display an error message when trying to remove the last user from a group." -msgstr "" - -#: ../../CHANGES.rst:110 9971fac7643f4e67b3f08a955f68ad2f -msgid "[0.0.48] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:114 bb813e98f6054468a4db1346adef2dbd -msgid "LDAP objectClass guessing exception." -msgstr "" - -#: ../../CHANGES.rst:117 39656a75074041628c38126830d285a4 -msgid "[0.0.47] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:121 933ff1cc04924324b1f18329f393ce53 -msgid "Lazy permission loading exception." -msgstr "" - -#: ../../CHANGES.rst:124 9f158cb712bf4035a680812921a75956 -msgid "[0.0.46] - 2024-04-08" -msgstr "" - -#: ../../CHANGES.rst:128 091f328b894c425eae39f1e645798d77 -msgid "" -"Saving an object with the LDAP backend keeps the objectClass un-managed " -"by Canaille. :pr:`171`" -msgstr "" - -#: ../../CHANGES.rst:131 366a30f8bbb64a55ba03347cf6c1ef14 -msgid "[0.0.45] - 2024-04-04" -msgstr "" - -#: ../../CHANGES.rst:135 212d52d0d8204396ba53062383a6591f -msgid "" -"Internal indexation mechanism of " -":class:`~canaille.backends.memory.model.MemoryModel`" -msgstr "" - -#: ../../CHANGES.rst:138 cdc31795a25b4667b879c856594b3219 -msgid "[0.0.44] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:142 a47297bb8f7a487da4be0f2c6714a508 -msgid "Fix the default LDAP USER_FILTER value" -msgstr "" - -#: ../../CHANGES.rst:143 7b60e45b9a114c7e8b596465811de32c -msgid "Fix the OIDC feature detection" -msgstr "" - -#: ../../CHANGES.rst:146 6fe2ccbf1a3c4a10a9027058a355a8d5 -msgid "[0.0.43] - 2024-03-29" -msgstr "" - -#: ../../CHANGES.rst:148 23cb4f6afc88442fb78da6cc01b72994 -msgid "🚨Configuration files must be updated.🚨" -msgstr "" - -#: ../../CHANGES.rst:153 eec7be14b382411780febe777f457fc2 -msgid "Add `created` and `last_modified` datetime for all models" -msgstr "" - -#: ../../CHANGES.rst:154 ae31112ef9cb4d99815847b3442fd989 -msgid "Sitemap to the documentation :pr:`169`" -msgstr "" - -#: ../../CHANGES.rst:155 f8a8944ee68c43e0b502f4e4586617c7 -msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" -msgstr "" - -#: ../../CHANGES.rst:160 b4db97cf152c42c1a7c0d8e4742ce3bf -msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" -msgstr "" - -#: ../../CHANGES.rst:161 3bad9d766b934e83904c8453837f4b56 -msgid "Bump to htmx 1.99.11 :pr:`166`" -msgstr "" - -#: ../../CHANGES.rst:162 567c0839f9c34d0c95fcc1f47c6c0959 -msgid "" -"Use the standard tomllib python module instead of `toml` starting from " -"python 3.11 :pr:`167`" -msgstr "" - -#: ../../CHANGES.rst:163 d3ecadf15f1348d6a4716f524043cc89 -msgid "Use shibuya as the documentation theme :pr:`168`" -msgstr "" - -#: ../../CHANGES.rst:166 2c46a90c1f994c21956cb9ae180ecfeb -msgid "[0.0.42] - 2023-12-29" -msgstr "" - -#: ../../CHANGES.rst:171 308f3903de604e6d9236bcf00d769b5e -msgid "Avoid to fail on imports if ``cryptography`` is missing." -msgstr "" - -#: ../../CHANGES.rst:174 1374d9b0ed624731bf674e0a8833a58c -msgid "[0.0.41] - 2023-12-25" -msgstr "" - -#: ../../CHANGES.rst:179 14963beceb7246c3a1b6342505f34998 -msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" -msgstr "" - -#: ../../CHANGES.rst:184 59218726e94a4c9ebcf6f10efb2f672c -msgid "Correctly set up Client audience during OIDC dynamic registration." -msgstr "" - -#: ../../CHANGES.rst:185 87ad3206d3fc4aa0b7d50387f402fe4e -msgid "" -"``post_logout_redirect_uris`` was ignored during OIDC dynamic " -"registration." -msgstr "" - -#: ../../CHANGES.rst:186 6e7c346de51b40d3b14644f4e0f3e5fc -msgid "Group field error prevented the registration form validation." -msgstr "" - -#: ../../CHANGES.rst:189 d6c7e10243be4b5b915e75f025dcb544 -msgid "[0.0.40] - 2023-12-22" -msgstr "" - -#: ../../CHANGES.rst:194 913ef14cd29843479a065fde1fdf056b -msgid "``THEME`` can be a relative path" -msgstr "" - -#: ../../CHANGES.rst:197 ec358936809d4d4ca1ea37efc4046638 -msgid "[0.0.39] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:202 d5ba2f04fb3244328141f0d34e78a83a -msgid "Crash when no ACL were defined" -msgstr "" - -#: ../../CHANGES.rst:203 d923912320f643df9861438d83f87a33 -msgid "OIDC Userinfo endpoint is also available in POST" -msgstr "" - -#: ../../CHANGES.rst:204 0c6600fdec4f4d90ad959a714191eed6 -msgid "Fix redirection after password reset :issue:`159`" -msgstr "" - -#: ../../CHANGES.rst:207 54dae082411a462ab86f892e84ec7d03 -msgid "[0.0.38] - 2023-12-15" -msgstr "" - -#: ../../CHANGES.rst:212 35a215464c9147118d8e2612056f114c -msgid "Convert all the png in webp. :pr:`162`" -msgstr "" - -#: ../../CHANGES.rst:213 b69015e35a2d4e32bbb0aeb7c5deb4b5 -msgid "Update to flask 3 :issue:`161` :pr:`163`" -msgstr "" - -#: ../../CHANGES.rst:216 cf38d0baf7384aa1bfc0a593041f3cc5 -msgid "[0.0.37] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:221 6013f95269f842eeab177eefbf7dc22b -msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" -msgstr "" - -#: ../../CHANGES.rst:224 654f86051b784d3cb6a50601907474cd -msgid "[0.0.36] - 2023-12-01" -msgstr "" - -#: ../../CHANGES.rst:229 fbdeab944a24477486321320b8632ad0 -msgid "Avoid crashing when LDAP groups references unexisting users." -msgstr "" - -#: ../../CHANGES.rst:230 89a4bf4e5f9546fe90560bc01f1b3114 -msgid "" -"Password reset and initialization mails were only sent to the preferred " -"user email address." -msgstr "" - -#: ../../CHANGES.rst:232 ac5160b2673e4323b53eef77fa3c6377 -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:234 bfe919707374471c8528f789f95f841d -msgid "Password comparison was too permissive on login." -msgstr "" - -#: ../../CHANGES.rst:235 91332f76075d4bcbabfacad3a0e06ac3 -msgid "Encrypt passwords in the SQL backend." -msgstr "" - -#: ../../CHANGES.rst:238 515b41fe279c4d169d8945be66a840bc -msgid "[0.0.35] - 2023-11-25" -msgstr "" - -#: ../../CHANGES.rst:243 cd9cc2a6d6b54601bd5083fd4a140050 -msgid "" -"Refresh token grant supports other client authentication methods. " -":pr:`157`" -msgstr "" - -#: ../../CHANGES.rst:244 5b7437d731d54a5999d354a8be5489ae -msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" -msgstr "" - -#: ../../CHANGES.rst:249 f0bf9b769b7b43ddbe427e8d5f28e6ae -msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:250 1ce41231913044f384a9de0f7f96ae22 -msgid "Bump to htmx 1.9.9 :pr:`159`" -msgstr "" - -#: ../../CHANGES.rst:255 8351661b912f48e39a72cb98a9068ca5 -msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" -msgstr "" - -#: ../../CHANGES.rst:258 ace5739415d846d7b00e6c8946636080 -msgid "[0.0.34] - 2023-10-02" -msgstr "" - -#: ../../CHANGES.rst:263 276aa40d06374cd6b9c554b30f1ec3bf -msgid "" -"Canaille installations without account lockabilty could not delete users." -" :pr:`153`" -msgstr "" - -#: ../../CHANGES.rst:269 f190522602804127b47b276cea07d314 -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:272 d94a556a500446e69f5e7daed22812be -msgid "flask-babel and pytz are now part of the `front` extras" -msgstr "" - -#: ../../CHANGES.rst:273 364cb001baac408a9b89782a2161aebe -msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" -msgstr "" - -#: ../../CHANGES.rst:274 9810cae84305458a8566e2fa477e3d0a -msgid "Bump to htmx 1.9.6 :pr:`154`" -msgstr "" - -#: ../../CHANGES.rst:275 86b075164fe24f9487437fec98102a80 -msgid "Add support for python 3.12 :pr:`155`" -msgstr "" - -#: ../../CHANGES.rst:278 a08b8fa3e5bb4635a8b9dde8f1394fed -msgid "[0.0.33] - 2023-08-26" -msgstr "" - -#: ../../CHANGES.rst:283 d004ef51361b4f239aad47bff5e3ac41 -msgid "OIDC jwks endpoint do not return empty kid claim" -msgstr "" - -#: ../../CHANGES.rst:288 923d07875a1d4848b57c2d9586ba992e -msgid "Documentation details on the canaille models." -msgstr "" - -#: ../../CHANGES.rst:291 92fa88da8da64ac0bea4e50961ee140c -msgid "[0.0.32] - 2023-08-17" -msgstr "" - -#: ../../CHANGES.rst:296 e209c6d3a5bb487a8a0b76258d6e9d60 -msgid "Additional inmemory backend :issue:`30` :pr:`149`" -msgstr "" - -#: ../../CHANGES.rst:297 bc4fbd86ddbc4b3880ea246fef1a0163 -msgid "Installation extras :issue:`167` :pr:`150`" -msgstr "" - -#: ../../CHANGES.rst:300 b9fa32026c05490e9c73fc5297f6ed61 -msgid "[0.0.31] - 2023-08-15" -msgstr "" - -#: ../../CHANGES.rst:305 94f1df8be04f4046b0fa3ca7651f6b8e -msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" -msgstr "" - -#: ../../CHANGES.rst:306 42fff4ae7f0349908683a9d511805869 -msgid "Validate phone numbers with a regex :pr:`146`" -msgstr "" - -#: ../../CHANGES.rst:307 3ed81e72ff7f4c409698c35ec91ad04d -msgid "Email verification :issue:`41` :pr:`147`" -msgstr "" - -#: ../../CHANGES.rst:308 774f017b2c314cec9685f6c85ce32108 -msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" -msgstr "" - -#: ../../CHANGES.rst:313 1d413d46cb92419f80e944e6aeb16333 -msgid "The `check` command uses the default configuration values." -msgstr "" - -#: ../../CHANGES.rst:318 d3b68d52c0964a3f9933749c5a209283 -msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" -msgstr "" - -#: ../../CHANGES.rst:321 a4c908dee0734b9ab3997f415639cf28 -msgid "[0.0.30] - 2023-07-06" -msgstr "" - -#: ../../CHANGES.rst:323 eb07e82a8fb34cebb6351252cd115c2b -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:329 b4bd90296d1d47af89aba539655f8f82 -msgid "Configuration option to disable javascript :pr:`141`" -msgstr "" - -#: ../../CHANGES.rst:334 72cc852826a247d5b06228a7c185c4b8 -msgid "Configuration ``USER_FILTER`` is parsed with jinja." -msgstr "" - -#: ../../CHANGES.rst:335 ec3775541c444b57b12b74bc5a96742f -msgid "" -"Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " -"``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" -msgstr "" - -#: ../../CHANGES.rst:338 94a54df320c1406ab44dab2824fcd953 -msgid "[0.0.29] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:343 8fc4dedd2b2543629eea185f7da6f42c -msgid "Disabled HTMX boosting on OIDC forms to avoid errors." -msgstr "" - -#: ../../CHANGES.rst:346 2d1c74ad63c0479cb1474fd7db4d0145 -msgid "[0.0.28] - 2023-06-30" -msgstr "" - -#: ../../CHANGES.rst:351 5631fc7eb7914b4bab2b5b6358e1d60a -msgid "A template variable was misnamed." -msgstr "" - -#: ../../CHANGES.rst:354 b0d8621a55644b419f22af6e811d58bd -msgid "[0.0.27] - 2023-06-29" -msgstr "" - -#: ../../CHANGES.rst:356 d0683d18c05b457a8cf22f754633d390 -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:362 34f99d193d834b98bbd4817fdb5af20f -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:364 196181fff8114b51a4dd6851dd20b92c -msgid "Field list support. :issue:`115` :pr:`136`" -msgstr "" - -#: ../../CHANGES.rst:365 0156b03aeb334f1aa8345cb270b48756 -msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" -msgstr "" - -#: ../../CHANGES.rst:370 3a74e9a4d66046779063b2592e045285 -msgid "Bump to jquery 3.7.0 :pr:`138`" -msgstr "" - -#: ../../CHANGES.rst:375 35f1d85e4cd9431aa96424bd25208d1b -msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" -msgstr "" - -#: ../../CHANGES.rst:380 8d0199c3a26b454a985ddb1082b5bdb1 -msgid "Stop support for python 3.7 :pr:`131`" -msgstr "" - -#: ../../CHANGES.rst:383 b54fbc48f5394d2ead7b5ec7315ecb80 -msgid "[0.0.26] - 2023-06-03" -msgstr "" - -#: ../../CHANGES.rst:388 85efd66bc5994ce687098c0503095fcf -msgid "" -"Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " -"OpenLDAP 2.5+ :issue:`13` :pr:`118`" -msgstr "" - -#: ../../CHANGES.rst:390 bc2b1d5ea9ab418bb6a8f9c661adebbc -msgid "Timezone configuration entry. :issue:`137` :pr:`130`" -msgstr "" - -#: ../../CHANGES.rst:395 171f3b2b12524bbc931afd1ea6db3e50 -msgid "Avoid setting ``None`` in JWT claims when they have no value." -msgstr "" - -#: ../../CHANGES.rst:396 79c76be5954045f8b53315616fe21675 -msgid "Display password recovery button on OIDC login page. :pr:`129`" -msgstr "" - -#: ../../CHANGES.rst:399 684dbc7af50949fa898caf64b6f035fe -msgid "[0.0.25] - 2023-05-05" -msgstr "" - -#: ../../CHANGES.rst:401 39a87402ccbe4dcbb8ec410338e9027c -msgid "" -"🚨Configuration files must be updated.🚨 Check the new format with ``git " -"diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" -msgstr "" - -#: ../../CHANGES.rst:407 551972a73a66474bb2f9dac1527250cf -msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" -msgstr "" - -#: ../../CHANGES.rst:408 3dc71347819447909160d063b9a7db59 -msgid "Moved OIDC related configuration entries in ``OIDC``" -msgstr "" - -#: ../../CHANGES.rst:409 c1d8c2c5084046f3b7bbe20fdf0557e7 -msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" -msgstr "" - -#: ../../CHANGES.rst:410 98f58ffce1014bb49f854597f95ee53e -msgid "Bumped to htmx 1.9.0 :pr:`124`" -msgstr "" - -#: ../../CHANGES.rst:411 3ce37ba19f54476b9d025653f843ec38 -msgid "" -"ACL filters are no more LDAP filters but user attribute mappings. " -":pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:412 2c65421b623544fcbf758af9798b687b -msgid "Bumped to htmx 1.9.2 :pr:`127`" -msgstr "" - -#: ../../CHANGES.rst:417 a401d129c5994222aec3dc8c7a81fb93 -msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." -msgstr "" - -#: ../../CHANGES.rst:418 4d7c22dba82c40a085052828baf362dc -msgid "Fixed empty model attributes registration :pr:`125`" -msgstr "" - -#: ../../CHANGES.rst:419 b3bc4785f19e487e995763c1e9eac55b -msgid "Password initialization mails were not correctly sent. :pr:`128`" -msgstr "" - -#: ../../CHANGES.rst:422 ddc0b07069bf449fb65b6c7024a02721 -msgid "[0.0.24] - 2023-04-07" -msgstr "" - -#: ../../CHANGES.rst:427 228ec0acb22e46f999fadf41accac34a -msgid "Fixed avatar update. :pr:`122`" -msgstr "" - -#: ../../CHANGES.rst:430 9f203b56717c498f8133d8dc6ad78fcc -msgid "[0.0.23] - 2023-04-05" -msgstr "" - -#: ../../CHANGES.rst:435 6ebaef9c1d5c453a8e02181222d3406d -msgid "Organization field. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:436 4c78eb5a32cc449b8b76683f5d15322b -msgid "ETag and Last-Modified headers on user photos. :pr:`116`" -msgstr "" - -#: ../../CHANGES.rst:437 6f6ebd50147a4714a4cd6e69e10af4f1 -msgid "Dynamic form validation :pr:`120`" -msgstr "" - -#: ../../CHANGES.rst:442 bfaeeb80d6ad41d5ab7c6eec94aa8d54 -msgid "UX rework. Submenu addition. :pr:`114`" -msgstr "" - -#: ../../CHANGES.rst:443 f9cd9a23ba6b48a0b7416432db4ee2b2 -msgid "Properly handle LDAP date timezones. :pr:`117`" -msgstr "" - -#: ../../CHANGES.rst:448 f3589fa4cdcf490b97bc1d94ad4b25a0 -msgid "CSRF protection on every forms. :pr:`119`" -msgstr "" - -#: ../../CHANGES.rst:451 a8d0b74b5a3a4f83b9588f078b139426 -msgid "[0.0.22] - 2023-03-13" -msgstr "" - -#: ../../CHANGES.rst:455 5dfb6cc3639f4dbabd82bc60c9f27063 -msgid "faker is not imported anymore when the `clean` command is called." -msgstr "" - -#: ../../CHANGES.rst:458 594169630346460cb9a1d47434d5bac1 -msgid "[0.0.21] - 2023-03-12" -msgstr "" - -#: ../../CHANGES.rst:463 b5dc191b86b84829acafdfb7158cbb65 -msgid "Display TOS and policy URI on the consent list page. :pr:`102`" -msgstr "" - -#: ../../CHANGES.rst:464 e7c598b0ebae43babfc3c336fb3fbf71 -msgid "Admin token deletion :pr:`100` :pr:`101`" -msgstr "" - -#: ../../CHANGES.rst:465 e6fcf26480ba43a9a40bb159f8bde348 -msgid "Revoked consents can be restored. :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:466 95a4a5e40ccc43e09a53e8a1b6276376 -msgid "" -"Pre-consented clients are displayed in the user consent list, and their " -"consents can be revoked. :issue:`69` :pr:`103`" -msgstr "" - -#: ../../CHANGES.rst:468 ddff6021ec63429c9c185fcdd93096fd -msgid "" -"A ``populate`` command can be used to fill the database with random users" -" generated with faker. :pr:`105`" -msgstr "" - -#: ../../CHANGES.rst:470 b3b272a9400044eaba8158f0daa0c0d5 -msgid "SMTP SSL support. :pr:`108`" -msgstr "" - -#: ../../CHANGES.rst:471 516eb7a492da400f95527c1419649eb3 -msgid "Server side pagination. :issue:`114` :pr:`111`" -msgstr "" - -#: ../../CHANGES.rst:472 32250cac90ec44618e330a516c33d9c6 -msgid "Department number support. :issue:`129`" -msgstr "" - -#: ../../CHANGES.rst:473 d950f5a579db48909072536d95e91c05 -msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" -msgstr "" - -#: ../../CHANGES.rst:474 913cf5b4f05047a0bc64bdce3c49255f -msgid "Title edition support :pr:`113`" -msgstr "" - -#: ../../CHANGES.rst:479 add34f76e10b4a2986005779334f3940 -msgid "" -"Client deletion also deletes related Consent, Token and AuthorizationCode" -" objects. :issue:`126` :pr:`98`" -msgstr "" - -#: ../../CHANGES.rst:485 215c34173f74444bb5f793b0fdc2d8bb -msgid "Removed datatables." -msgstr "" - -#: ../../CHANGES.rst:488 d244ef4a2d2e4fb4b87468dab9041ea2 -msgid "[0.0.20] - 2023-01-28" -msgstr "" - -#: ../../CHANGES.rst:493 6a15bbd7f57949bb828987afe18521ea -msgid "Spanish translation. :pr:`85` :pr:`88`" -msgstr "" - -#: ../../CHANGES.rst:494 99b1323d25b94195824650d9f1edc2f2 -msgid "Dedicated connectivity test email :pr:`89`" -msgstr "" - -#: ../../CHANGES.rst:495 cd74e88113ea4dd5b1bf52a0c7080260 -msgid "Update to jquery 3.6.3 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:496 61846539bdfa4149b6e2190ae4aeb785 -msgid "Update to fomantic-ui 2.9.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:497 25d836c7d71743649502f95c89eb1945 -msgid "Update to datatables 1.13.1 :pr:`90`" -msgstr "" - -#: ../../CHANGES.rst:502 6ac3c75c071a4beda3606aaf0549c422 -msgid "Fix typos and grammar errors. :pr:`84`" -msgstr "" - -#: ../../CHANGES.rst:503 130373c3d7d2468397a52197fe575885 -msgid "Fix wording and punctuations. :pr:`86`" -msgstr "" - -#: ../../CHANGES.rst:504 c891fa84f8344c829d0f12b22cb8c212 -msgid "Fix HTML lang tag :issue:`122` :pr:`87`" -msgstr "" - -#: ../../CHANGES.rst:505 9b760fbb3585400689b68d3bd29f9ff1 -msgid "Automatically trims the HTML translated strings. :pr:`91`" -msgstr "" - -#: ../../CHANGES.rst:506 e652821eae824b4888d8248bb84b5744 -msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" -msgstr "" - -#: ../../CHANGES.rst:509 2e4d232bc1dc4df9b422f293fa659100 -msgid "[0.0.19] - 2023-01-14" -msgstr "" - -#: ../../CHANGES.rst:514 7bda5c915ba9434b809397f5274a6de4 -msgid "" -"Ensures the token `expires_in` claim and the `access_token` `exp` claim " -"have the same value. :pr:`83`" -msgstr "" - -#: ../../CHANGES.rst:518 9143cf51154d45f28274bdda680886d4 -msgid "[0.0.18] - 2022-12-28" -msgstr "" - -#: ../../CHANGES.rst:523 83dc2033954045699ea53d7d2263b6c1 -msgid "" -"OIDC end_session was not returning the ``state`` parameter in the " -"``post_logout_redirect_uri`` :pr:`82`" -msgstr "" - -#: ../../CHANGES.rst:527 f61656a46d294a8fb91032254181c7e6 -msgid "[0.0.17] - 2022-12-26" -msgstr "" - -#: ../../CHANGES.rst:532 a64cd4f54327461da8921ffb21976acc -msgid "Fixed group deletion button. :pr:`80`" -msgstr "" - -#: ../../CHANGES.rst:533 9e3667cccf2b44939a318b8ebf7e93b9 -msgid "Fixed post requests in oidc clients views. :pr:`81`" -msgstr "" - -#: ../../CHANGES.rst:536 b91fa7c1ea6a4d01b722548add0639be -msgid "[0.0.16] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:541 6d65191c80314a0e94b4c6c05386e563 -msgid "Fixed LDAP operational attributes handling." -msgstr "" - -#: ../../CHANGES.rst:544 af14f518a45f424ead7a5df098258fc5 -msgid "[0.0.15] - 2022-12-15" -msgstr "" - -#: ../../CHANGES.rst:549 c54ff84eb6e544d1b3a864585e4f2be0 -msgid "User can chose their favourite display name. :pr:`77`" -msgstr "" - -#: ../../CHANGES.rst:550 48da4cb14c5c4dd29fadf0a0d75a0e72 -msgid "Bumped to authlib 1.2. :pr:`78`" -msgstr "" - -#: ../../CHANGES.rst:551 d84bbd0f614e4cd7b8a8a96996f309d9 -msgid "" -"Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management " -"Protocol :pr:`79`" -msgstr "" - -#: ../../CHANGES.rst:553 d15f082b4d544940a563d780f8bc1e08 -msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." -msgstr "" - -#: ../../CHANGES.rst:556 88dc1bd8ca5c4bb8a7f9bd52cdc75830 -msgid "[0.0.14] - 2022-11-29" -msgstr "" - -#: ../../CHANGES.rst:560 6d5d1d529eba4b15a456d64fd13e39a1 -msgid "Fixed translation mo files packaging." -msgstr "" - -#: ../../CHANGES.rst:563 4c1c3a24fd6c4d379d56069dbd99a08b -msgid "[0.0.13] - 2022-11-21" -msgstr "" - -#: ../../CHANGES.rst:568 61292635681d41bd8a0811165d589512 -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:570 681e8dd9afdb4f2e958b78bbfc4ed595 -msgid "" -"Fixed a bug happening during RP initiated logout on clients without " -"`post_logout_redirect_uri` defined." -msgstr "" - -#: ../../CHANGES.rst:572 e448157c32c243aeae3c13ccbbec1cd1 -msgid "Gitlab CI fix. :pr:`64`" -msgstr "" - -#: ../../CHANGES.rst:573 b7167e49350f44bf93df250bbf94b7bc -msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" -msgstr "" - -#: ../../CHANGES.rst:574 eb962d6e5bf645b7ab7fd89c05b29d04 -msgid "Fixed non-square logo CSS. :pr:`67`" -msgstr "" - -#: ../../CHANGES.rst:575 5d6456ea544442f09281af419d6bd9ce -msgid "Fixed schema path on installation. :pr:`68`" -msgstr "" - -#: ../../CHANGES.rst:576 2071fc0debdb4b2ab2eacb7ada57a027 -msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" -msgstr "" - -#: ../../CHANGES.rst:577 c63eef91b1b6400facb7ab15a2f7e33f -msgid "Fixed client preconsent disabling. :pr:`72`" -msgstr "" - -#: ../../CHANGES.rst:582 cfd3fd338517432c9b2e55d6da22d651 -msgid "Python 3.11 support. :pr:`61`" -msgstr "" - -#: ../../CHANGES.rst:583 544c46511d2c4bf2b567fca0f666022e -msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" -msgstr "" - -#: ../../CHANGES.rst:584 6c51bb0dce3d4d35af9247f9bac46f2c -msgid "``preferredLanguage`` attribute support. :pr:`75`" -msgstr "" - -#: ../../CHANGES.rst:589 9e52448d99194eb4ae9411a0c87e7b26 -msgid "" -"Replaced the use of the deprecated `FLASK_ENV` environment variable by " -"`FLASK_DEBUG`." -msgstr "" - -#: ../../CHANGES.rst:591 92aa84a20bce44098992a9bb2c03c6fa -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:594 8d805e80f7ab481e9d54828c09fe704d -msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" -msgstr "" - -#: ../../CHANGES.rst:595 512672f6749541e28c776052005debaa -msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" -msgstr "" - -#: ../../CHANGES.rst:598 719465d8df524d6aa66f1458157f57d5 -msgid "[0.0.12] - 2022-10-24" -msgstr "" - -#: ../../CHANGES.rst:603 4118a5125b4841a190cd4f857244dc22 -msgid "Basic WebFinger endpoint. :pr:`59`" -msgstr "" - -#: ../../CHANGES.rst:604 801ca69eff1f4540b54ca42b2dfaf866 -msgid "Bumped to FomanticUI 2.9.0 00ffffee" -msgstr "" - -#: ../../CHANGES.rst:605 00f2d1f75caa439aa8283e1a05d463aa -msgid "Implemented Dynamic Client Registration :pr:`60`" -msgstr "" - -#: ../../CHANGES.rst:608 f3edd3260cce435abc5a1930ff239e5a -msgid "[0.0.11] - 2022-08-11" -msgstr "" - -#: ../../CHANGES.rst:613 0d143febef754055a90791ec48a2574a -msgid "Default theme has a dark variant. :pr:`57`" -msgstr "" - -#: ../../CHANGES.rst:618 ac8fb78dd6754ffc829ab6f01315d2ba -msgid "Fixed missing ``canaille`` binary. :pr:`58`" -msgstr "" - -#: ../../CHANGES.rst:621 0533665fb4e945468fa03d4417985c07 -msgid "[0.0.10] - 2022-07-07" -msgstr "" - -#: ../../CHANGES.rst:626 8b5fd21d60c64ca68f79696fad57bfc8 -msgid "Online demo. :pr:`55`" -msgstr "" - -#: ../../CHANGES.rst:627 e36f295ed93e419fad2426e5e7856ea1 -msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" -msgstr "" - -#: ../../CHANGES.rst:628 72180e56a3034bf587e5d5278f41a28d -msgid "Fixed end session when user are already disconnected." -msgstr "" - -#: ../../CHANGES.rst:631 09398279ac44400da7f778c5d27cd8bf -msgid "[0.0.9] - 2022-06-05" -msgstr "" - -#: ../../CHANGES.rst:636 f4a57111a02546628456bbcbb9b10751 -msgid "" -"``DISABLE_PASSWORD_RESET`` configuration option to disable password " -"recovery. :pr:`46`" -msgstr "" - -#: ../../CHANGES.rst:637 371609f8181e47fbb90792b94f91d4fe -msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" -msgstr "" - -#: ../../CHANGES.rst:638 cc9a1f22935b4af3b84edfc356b8951d -msgid "Implemented RP-initiated logout :pr:`54`" -msgstr "" - -#: ../../CHANGES.rst:643 87b28a41b81749a0811c045563f968bf -msgid "Bumped to authlib 1 :pr:`48`" -msgstr "" - -#: ../../CHANGES.rst:644 0c004930bd594c7cb50f01eed19476e6 -msgid "documentation improvements :pr:`50`" -msgstr "" - -#: ../../CHANGES.rst:645 a7f6b2f166014b26b869d643a594b2cd -msgid "use poetry instead of setuptools :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:646 f64d736b7cd54dd49df64fef30d37a1c -msgid "additional nonce tests :pr:`52`" -msgstr "" - -#: ../../CHANGES.rst:650 d2bbdbfb81db485f8faa4204b0f1c746 -msgid "``HIDE_INVALID_LOGIN`` behavior and default value." -msgstr "" - -#: ../../CHANGES.rst:651 cc47b7e41f7f4319ae1bf87e29fd58bd -msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" -msgstr "" - -#: ../../CHANGES.rst:654 2eb795d5552d45f68359efb37ecdd3ee -msgid "[0.0.8] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:659 b178f8851ee34dbc9274c1e6db2d100f -msgid "Fixed dependencies" -msgstr "" - -#: ../../CHANGES.rst:662 6c8555c1480a47cb9f2b6f96498d2a84 -msgid "[0.0.7] - 2022-03-15" -msgstr "" - -#: ../../CHANGES.rst:667 f0a2de638e994ff49c903d11d4b9112d -msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:670 65dea365c33d4b0bb1c6fac9db148a39 -msgid "[0.0.6] - 2022-03-08" -msgstr "" - -#: ../../CHANGES.rst:675 88ac5497c1f2451ba95029292b3bea24 -msgid "Access token are JWT. :pr:`38`" -msgstr "" - -#: ../../CHANGES.rst:680 503af07edfd3447185935dc6e6f0e510 -msgid "Default groups on invitations :pr:`41`" -msgstr "" - -#: ../../CHANGES.rst:681 edd5b58b1dbb41dbb2c315fb1b2f2370 -msgid "Schemas are shipped within the canaille package :pr:`42`" -msgstr "" - -#: ../../CHANGES.rst:684 83039d3d01dc42ffbdd81d08d677fc46 -msgid "[0.0.5] - 2022-02-17" -msgstr "" - -#: ../../CHANGES.rst:689 4bc8cbfc22044525ac90dbca6bc2f9fc -msgid "LDAP model objects have new identifiers :pr:`37`" -msgstr "" - -#: ../../CHANGES.rst:694 46c43eba4bf34f96ac708b90493926d4 -msgid "Admin menu dropdown display :pr:`39`" -msgstr "" - -#: ../../CHANGES.rst:695 19df29bb500d46029a53bf88a3b49be8 -msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" -msgstr "" - -#: ../../CHANGES.rst:698 4c9b4d6a4016491a966aeabc0bcc1097 -msgid "[0.0.4] - 2022-02-16" -msgstr "" - -#: ../../CHANGES.rst:703 0bf19b3c295442caa42a71e7cedf78ab -msgid "Client preauthorization :pr:`11`" -msgstr "" - -#: ../../CHANGES.rst:704 6e96f08567764f97b7df3b6ac165ff5f -msgid "LDAP permissions check with the check command :pr:`12`" -msgstr "" - -#: ../../CHANGES.rst:705 f35445dc59084cd28fc850ac88ce5faf -msgid "" -"Update consents when a scope required is larger than the scope of an " -"already given consent :pr:`13`" -msgstr "" - -#: ../../CHANGES.rst:707 4f77fff113244c84910357f609823bf6 -msgid "Theme customization :pr:`15`" -msgstr "" - -#: ../../CHANGES.rst:708 a17e63a679c742c48be42b3eb0c619bc -msgid "Logging configuration :pr:`16`" -msgstr "" - -#: ../../CHANGES.rst:709 9cde02d9ce3544779a2ec03427b3ad91 -msgid "Installation command :pr:`17`" -msgstr "" - -#: ../../CHANGES.rst:710 d19d4b7176484d6e918acfc93bf0e2d3 -msgid "Invitation links :pr:`18`" -msgstr "" - -#: ../../CHANGES.rst:711 f2e504d792e54511a40a9c5cfab43d06 -msgid "Advanced permissions :pr:`20`" -msgstr "" - -#: ../../CHANGES.rst:712 f666c2446c044ee7a75246fd26b8533d -msgid "An option to not use OIDC :pr:`23`" -msgstr "" - -#: ../../CHANGES.rst:713 770117e57e384012943bf1b963ee57ed -msgid "Disable some features when no SMTP server is configured :pr:`24`" -msgstr "" - -#: ../../CHANGES.rst:714 450b7e3fb1a345a888fc22a71363b85f -msgid "" -"Login placeholder dynamically generated according to the configuration " -":pr:`25`" -msgstr "" - -#: ../../CHANGES.rst:715 c0a5164fc3f841099c3f38e28ccb59ba -msgid "Added an option to tune object IDs :pr:`26`" -msgstr "" - -#: ../../CHANGES.rst:716 50cbfe5b66ed41db8e48e7a93b611416 -msgid "Avatar support :pr:`27`" -msgstr "" - -#: ../../CHANGES.rst:717 e32c480c5b99469699d6c3e28116c1b7 -msgid "Dynamical and configurable JWT claims :pr:`28`" -msgstr "" - -#: ../../CHANGES.rst:718 63a7f081e0994aa9a4fb9aa38981d755 -msgid "UI improvements :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:719 7c2ab828372c4997a726eec9c0713579 -msgid "Invitation links expiration :pr:`30`" -msgstr "" - -#: ../../CHANGES.rst:720 38a72e0f5beb4718a059df0e7e308578 -msgid "Invitees can choose their IDs :pr:`31`" -msgstr "" - -#: ../../CHANGES.rst:721 ddbe74ed313649308b6ab98456198355 -msgid "LDAP backend refactoring :pr:`35`" -msgstr "" - -#: ../../CHANGES.rst:726 6e485e4e3b3741a9b269329a19237e29 -msgid "Fixed ghost members in a group :pr:`14`" -msgstr "" - -#: ../../CHANGES.rst:727 8ef055e72f514424901798fa202cef04 -msgid "Fixed email sender names :pr:`19`" -msgstr "" - -#: ../../CHANGES.rst:728 f0a07fe57b57478bb0678b48be12f462 -msgid "Fixed filter being not escaped :pr:`21`" -msgstr "" - -#: ../../CHANGES.rst:729 140a09fe8d424d41a39c335de5605516 -msgid "Demo script good practices :pr:`32`" -msgstr "" - -#: ../../CHANGES.rst:730 ecce3a2165a04c65acf4559f9fb7903c -msgid "Binary path for Debian :pr:`33`" -msgstr "" - -#: ../../CHANGES.rst:731 507756a0b9c54e27a73bca468b2d6374 -msgid "" -"Last name was not mandatory in the forms while this was mandatory in the " -"LDAP server :pr:`34`" -msgstr "" - -#: ../../CHANGES.rst:733 e0b1632741454dfc837ae57ee1d20540 -msgid "Spelling typos :pr:`36`" -msgstr "" - -#: ../../CHANGES.rst:736 c22c5d2bb72d4f24aa52e49c8d6705b1 -msgid "[0.0.3] - 2021-10-13" -msgstr "" - -#: ../../CHANGES.rst:741 2cc5d5ce32eb49e2894d1f1d88d41ae1 -msgid "Two-steps sign-in :issue:`49`" -msgstr "" - -#: ../../CHANGES.rst:742 f123282d6e1841008a8fc46e59fa6b73 -msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" -msgstr "" - -#: ../../CHANGES.rst:743 eb744023124d4e27bb95d97031dc772d -msgid "Configuration check command. :issue:`66` :pr:`8`" -msgstr "" - -#: ../../CHANGES.rst:744 9d4efea0eaa34978a7b8e1647140158d -msgid "Groups management. :issue:`12` :pr:`6`" -msgstr "" - -#: ../../CHANGES.rst:749 93e756795d784f93a5b146d8917f5986 -msgid "Introspection access bugfix. :issue:`63` :pr:`10`" -msgstr "" - -#: ../../CHANGES.rst:750 080a57bd199c409db86f03476f6ba14c -msgid "Introspection sub claim. :issue:`64` :pr:`7`" -msgstr "" - -#: ../../CHANGES.rst:753 0dc9fc1412334f54a2d88f930d399ded -msgid "[0.0.2] - 2021-01-06" -msgstr "" - -#: ../../CHANGES.rst:758 d8894f6cb5ba46069fb0fcf6d788281e -msgid "Login page is responsive. :issue:`1`" -msgstr "" - -#: ../../CHANGES.rst:759 bd8151871c7043e1ab23b9a329b97fa3 -msgid "Adapt mobile keyboards to login page fields. :issue:`2`" -msgstr "" - -#: ../../CHANGES.rst:760 900a77596f7f4f74aa6f7d92063d0313 -msgid "Password recovery interface. :issue:`3`" -msgstr "" - -#: ../../CHANGES.rst:761 dcb6f2dcc8b040c08054afe5aa25ac9f -msgid "User profile interface. :issue:`4`" -msgstr "" - -#: ../../CHANGES.rst:762 e19659ec5aa048fab31a47bab447c05f -msgid "Renamed the project *canaille*. :issue:`5`" -msgstr "" - -#: ../../CHANGES.rst:763 9b165231e7a1497a9b16f88cec603b64 -msgid "Command to remove old tokens. :issue:`17`" -msgstr "" - -#: ../../CHANGES.rst:764 9ddaf038c2b84f2a88748b749321b2a7 -msgid "Improved password recovery email. :issue:`14` :issue:`26`" -msgstr "" - -#: ../../CHANGES.rst:765 cdeb34db9b5d4f5598b2202dbd439179 -msgid "" -"Use flask `SERVER_NAME` configuration variable instead of `URL`. " -":issue:`24`" -msgstr "" - -#: ../../CHANGES.rst:766 8ad48575924e4b0c922baf7e23c3fd83 -msgid "Improved consents page. :issue:`27`" -msgstr "" - -#: ../../CHANGES.rst:767 ffd55065337140a6a90449c06717225a -msgid "Admin user page. :issue:`8`" -msgstr "" - -#: ../../CHANGES.rst:768 08806c4fa60f49ae88c1f4b7557b6c5f -msgid "Project logo. :pr:`29`" -msgstr "" - -#: ../../CHANGES.rst:769 5fe1184956d14f33a531bfc78f6aa844 -msgid "" -"User account self-deletion can be enabled in the configuration with " -"`SELF_DELETION`. :issue:`35`" -msgstr "" - -#: ../../CHANGES.rst:770 069ec9317ed340e9ba74cd3b99df96b0 -msgid "Admins can impersonate users. :issue:`39`" -msgstr "" - -#: ../../CHANGES.rst:771 bd69e0ad71714b9ebc9ee753e798285f -msgid "Forgotten page UX improvement. :pr:`43`" -msgstr "" - -#: ../../CHANGES.rst:772 f745abf4158843ce8f5a338c061326d4 -msgid "Admins can remove clients. :pr:`45`" -msgstr "" - -#: ../../CHANGES.rst:773 401588524d4f476d86f5da15088d03cd -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:775 60d6a76f041442888c5582b4a9ae8bef -msgid "Password initialization mail. :pr:`51`" -msgstr "" - -#: ../../CHANGES.rst:780 6aa2b2cbfc18468bb3218a76287422c1 -msgid "Form translations. :issue:`19` :issue:`23`" -msgstr "" - -#: ../../CHANGES.rst:781 34c7961d2a25459487fbe7f20081279f -msgid "Avoid to use Google Fonts. :issue:`21`" -msgstr "" - -#: ../../CHANGES.rst:786 aab08055fb7e413c90b6052a96377e3a -msgid "'My tokens' page. :issue:`22`" -msgstr "" - -#: ../../CHANGES.rst:789 3fda3f8a84304a3798f8e6ce4f7c85d2 -msgid "[0.0.1] - 2020-10-21" -msgstr "" - -#: ../../CHANGES.rst:794 f0395a6cd6704b9a8a7932926ae63489 -msgid "Initial release." -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/development/contributing.po b/doc/locales/fr/LC_MESSAGES/development/contributing.po deleted file mode 100644 index 4a2dd373..00000000 --- a/doc/locales/fr/LC_MESSAGES/development/contributing.po +++ /dev/null @@ -1,406 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../CONTRIBUTING.rst:2 7c1ab3305147436fb9421dffeac09375 -msgid "Contributions" -msgstr "" - -#: ../../CONTRIBUTING.rst:4 a73a38a924914b208c350201b99ade0c -msgid "Contributions are welcome!" -msgstr "" - -#: ../../CONTRIBUTING.rst:6 bb5639fbdf6c49bfa96bf0a26b42ee2a -msgid "" -"The repository is hosted at `gitlab.com/yaal/canaille " -"`_." -msgstr "" - -#: ../../CONTRIBUTING.rst:9 e35b3518080c4b3ea444a26c2b7d821f -msgid "Discuss" -msgstr "" - -#: ../../CONTRIBUTING.rst:11 ddfd8d963ac7421baad588afafd95029 -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 f13a93bafe4542cbbdfb561e66869288 -msgid "Development environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:18 146597b6b8d04f248ea98191137a6bcb -msgid "You can either run the demo locally or with Docker." -msgstr "" - -#: ../../CONTRIBUTING.rst:20 9b1b9c06d6f640d3baab2194d63c2ca6 -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 6b736387b592498d83c96dfef8a38832 -msgid "" -"Initialize your development environment with: - ``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``. - " -"``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``. - ``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``. - ``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:31 3ab70f5ffe36465a9be5ef3edfe0cb57 -msgid "After having launched the demo you have access to several services:" -msgstr "" - -#: ../../CONTRIBUTING.rst:33 eab681954d7a4656bbaec53d33c0ecd0 -msgid "A canaille server at `localhost:5000 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:34 f2dfbb5dbad74f6792f869598373fe7c -msgid "A dummy client at `localhost:5001 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:35 c26dbc13ffea4e578d5cbed572cf01f4 -msgid "Another dummy client at `localhost:5002 `_" -msgstr "" - -#: ../../CONTRIBUTING.rst:37 643fc1a38e8c482faf9bb03f95b2a62c -msgid "The canaille server has some default users:" -msgstr "" - -#: ../../CONTRIBUTING.rst:39 9eb743b3da3f4eb0903ae5ef0a992566 -msgid "A regular user which login and password are **user**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:40 c4143060eb304659ae704ec6cba281de -msgid "A moderator user which login and password are **moderator**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:41 411281aded7e464f87f1f8950e6c890c -msgid "An admin user which admin and password are **admin**;" -msgstr "" - -#: ../../CONTRIBUTING.rst:42 fe28d3c09b174c6fb5c9661c3bc6ca67 -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 "" - -#: ../../CONTRIBUTING.rst:47 b9f8753db1754411a6ddd40bee7fbffb -msgid "Backends" -msgstr "" - -#: ../../CONTRIBUTING.rst:49 881e10750d914144be34fb6f03ef7a9f -msgid "Canaille comes with several backends:" -msgstr "" - -#: ../../CONTRIBUTING.rst:51 285507e6da6b4af1a7b874ce68117d2e -msgid "a lightweight test purpose `memory` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:52 240e509e162041698e7f88044e704d04 -msgid "a `sql` backend, based on sqlalchemy" -msgstr "" - -#: ../../CONTRIBUTING.rst:53 3d2495a25cec49e3b62f2c5514b380a6 -msgid "a production-ready `LDAP` backend" -msgstr "" - -#: ../../CONTRIBUTING.rst:56 1637387b09f845958e4268668f7ce5a8 -msgid "Docker environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:58 5ce6e05911244aca97cc1405dc319d54 -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:63 23ce3f6f5ea44fe6ba4029203add5a27 -msgid "To do that, you can add the following line to your `/etc/hosts`:" -msgstr "" - -#: ../../CONTRIBUTING.rst:69 9cd73a71e5fa41a3a2f4f80c0408c4ba -msgid "To launch containers, use:" -msgstr "" - -#: ../../CONTRIBUTING.rst:84 8cb412e1ce584a78b6a16c189480ab98 -msgid "Local environment" -msgstr "" - -#: ../../CONTRIBUTING.rst:98 901a414c94e5400391f9dfe67b452e6f -msgid "" -"If you want to run the demo locally with the LDAP backend, you need to " -"have `OpenLDAP `_ installed on your system. It" -" is generally shipped under the ``slapd`` or ``openldap`` package name." -msgstr "" - -#: ../../CONTRIBUTING.rst:103 0c71c9d15abd4e128ecf38e66dccd052 -msgid "" -"On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be " -"restricted by apparmor, and thus makes the tests and the demo fail. This " -"can be mitigated by removing apparmor restrictions on `slapd`." -msgstr "" - -#: ../../CONTRIBUTING.rst:113 d78b3b0b3f3e49f1b2991c7f953bfd51 -msgid "Populate the database" -msgstr "" - -#: ../../CONTRIBUTING.rst:115 937755ec4cd44d28a300cfb31f4bdab0 -msgid "" -"The demo database comes populated with some random users and groups. If " -"you need more, you can generate users and groups with the ``populate`` " -"command:" -msgstr "" - -#: ../../CONTRIBUTING.rst:126 e6478d79102a420cb29373814615483c -msgid "" -"Adapt to use either the `ldap` or the `sql` configuration file. Note that" -" this will not work with the memory backend." -msgstr "" - -#: ../../CONTRIBUTING.rst:129 8388b3135a7744cc9395de2be0754b97 -msgid "Unit tests" -msgstr "" - -#: ../../CONTRIBUTING.rst:131 c0beac52adbd4f8cab1b1b2b3a685b5b -msgid "" -"To run the tests, you just can run `uv run pytest` and/or `uv run tox` to" -" test all the supported python environments. Everything must be green " -"before patches get merged." -msgstr "" - -#: ../../CONTRIBUTING.rst:134 087b9f6006f3453baffe1c6eb074925a -msgid "" -"To test a specific backend you can pass ``--backend memory``, ``--backend" -" sql`` or ``--backend ldap`` to pytest and tox." -msgstr "" - -#: ../../CONTRIBUTING.rst:136 fb19a1dd39b94166861307d05981764c -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:141 c529a55523124f2e89397fbc60ac0f7b -msgid "Code style" -msgstr "" - -#: ../../CONTRIBUTING.rst:143 925f6ac68525496584f01467bea4ad2d -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:149 db166a2976184377ab59ce537418ecbf -msgid "Front" -msgstr "" - -#: ../../CONTRIBUTING.rst:151 d25881c0189747eeabc777c2929c7008 -msgid "" -"The interface is built upon the `Fomantic UI `_" -" CSS framework. The dynamical parts of the interface use `htmx " -"`_." -msgstr "" - -#: ../../CONTRIBUTING.rst:154 86502939ce9d443c86df95720e667a91 -msgid "" -"Using Javascript in the interface is tolerated, but the whole website " -"MUST be accessible for browsers without Javascript support, and without " -"any feature loss." -msgstr "" - -#: ../../CONTRIBUTING.rst:156 1c42dcc54b6743a0821f42046438066b -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 "" - -#: ../../CONTRIBUTING.rst:161 52abf5adbe644c6b82b87f4e5d2c5ebb -msgid "Translations" -msgstr "" - -#: ../../canaille/translations/README.rst:1 b1a8c4be2efd43c1a4e2282711ffbb63 -msgid "" -"Translations are done with `Weblate " -"`_." -msgstr "" - -#: ../../canaille/translations/README.rst:3 1d4332b3eebd48fc98d28507c9be30a5 -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 "" - -#: ../../canaille/translations/README.rst:8 111a6826ce7d4666aebf19ee04e5750c -msgid "Message extraction" -msgstr "" - -#: ../../canaille/translations/README.rst:10 2bf701d1dcb441938142ee5e9b03bd31 -msgid "" -"After you have edited translatable strings, you should extract the " -"messages with:" -msgstr "" - -#: ../../canaille/translations/README.rst:17 424082dd69bc448bb50126f5e590f70c -msgid "Language addition" -msgstr "" - -#: ../../canaille/translations/README.rst:19 5be588cfe676499f8294cc593075c1ad -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 7db4259cd8504c73afa7b99db81efd41 -msgid "Catalog update" -msgstr "" - -#: ../../canaille/translations/README.rst:28 71bb011a076146f5baf4e3279f6c4b7e -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 a296f2a2cbf649299d5fec0f520614d3 -msgid "Catalog compilation" -msgstr "" - -#: ../../canaille/translations/README.rst:38 c13b3771cd5b45b4884744fad24b900f -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:166 39b97e4fee6749c79486c19e617657ef -msgid "Documentation" -msgstr "" - -#: ../../CONTRIBUTING.rst:168 0d41272738f94ced892295701150d998 -msgid "The documentation is generated when the tests run:" -msgstr "" - -#: ../../CONTRIBUTING.rst:174 3e7a8bb825c64e9291ef2d77b3932f98 -msgid "" -"You can also run sphinx by hand, that should be faster since it avoids " -"the tox environment initialization:" -msgstr "" - -#: ../../CONTRIBUTING.rst:180 1ea17b9131f04d71b48b7c3c61f50983 -msgid "The generated documentation is located at ``build/sphinx/html``." -msgstr "" - -#: ../../CONTRIBUTING.rst:183 79f5374feb714359a960e5cae638c231 -msgid "Publish a new release" -msgstr "" - -#: ../../CONTRIBUTING.rst:185 2be83e33a90a4c7aac1dc519fe172e51 -msgid "" -"Check that dependencies are up to date with ``uv sync --all-extras " -"--upgrade`` and update dependencies accordingly in separated commits;" -msgstr "" - -#: ../../CONTRIBUTING.rst:186 1abd3d600ac0411fb999b304cb13e51e -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:187 88370dc2d9c94d559e8abe1068bfeba6 -msgid "" -"Check that the demo environments are still working, both the local and " -"the Docker one;" -msgstr "" - -#: ../../CONTRIBUTING.rst:188 bd8ff970e1424dd38acf71ccfb62487c -msgid "" -"Check that the :ref:`development/changelog:Release notes` section is " -"correctly filled up;" -msgstr "" - -#: ../../CONTRIBUTING.rst:189 b04308c3c9df45e0b23f2da5c5dc3ef3 -msgid "Increase the version number in ``pyproject.toml``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:190 ebaff21b4fe04971885873f4401a38e9 -msgid "Commit with ``git commit``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:191 5e75ca58d33e45d8b0035b7f1a293346 -msgid "Build with ``uv build``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:192 3cc2fb6a7cc745cea14593e07ce87228 -msgid "" -"Publish on test PyPI with ``uv publish --publish-url " -"https://test.pypi.org/legacy/``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:193 7090fbe6930449f78048558eb4be201b -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:194 03da5714d2994f5ea82a0c7764e27d72 -msgid "Publish on production PyPI ``uv publish``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:195 8635aa0c6a154b02b4f1b5e4558433f0 -msgid "Tag the commit with ``git tag XX.YY.ZZ``;" -msgstr "" - -#: ../../CONTRIBUTING.rst:196 bce1c91d899e43858a763368a8877cfc -msgid "" -"Push the release commit and the new tag on the repository with ``git push" -" --tags``." -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/development/index.po b/doc/locales/fr/LC_MESSAGES/development/index.po deleted file mode 100644 index 1b03d4ef..00000000 --- a/doc/locales/fr/LC_MESSAGES/development/index.po +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/development/index.rst:2 15f05d4dbb7d48148dfddc6d8a44131c -msgid "Development" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/development/specifications.po b/doc/locales/fr/LC_MESSAGES/development/specifications.po deleted file mode 100644 index 739c88f9..00000000 --- a/doc/locales/fr/LC_MESSAGES/development/specifications.po +++ /dev/null @@ -1,491 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/development/specifications.rst:2 51c59cc44a2c41e5b41657630b0f0294 -msgid "Specifications" -msgstr "" - -#: ../../doc/development/specifications.rst:4 a7ce3c060d6843c58af29aa75bef3528 -msgid "" -"This page details which specifications are implemented in Canaille, and " -"compares Canaille with other well-known identity providers." -msgstr "" - -#: ../../doc/development/specifications.rst:7 9693a4b998134bc08184a485a6a85b08 -msgid "State of the specs in Canaille" -msgstr "" - -#: ../../doc/development/specifications.rst:10 f8563fa341304001ba3c2c550055a0e4 -msgid "OAuth2" -msgstr "" - -#: ../../doc/development/specifications.rst:12 b901b23486424b70ab53ad600c552405 -msgid "✅ `RFC6749: OAuth 2.0 Framework `_" -msgstr "" - -#: ../../doc/development/specifications.rst:13 93b26d88ddfb4c24a975c86fafdca3f9 -msgid "" -"✅ `RFC6750: OAuth 2.0 Bearer Tokens " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:14 8d4d4d01ff5843faa2bb7c6da2d5a43e -msgid "" -"✅ `RFC7009: OAuth 2.0 Token Revocation " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:15 3bf9581f076d491baa8e2c23f3e1d39c -msgid "" -"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " -"Authorization Grants `_" -msgstr "" - -#: ../../doc/development/specifications.rst:16 6ae1c3b70dfa4a10805ed2d7a7acda83 -msgid "" -"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:17 9ccadb41365c46cb815b73b88fdc8fc3 -msgid "" -"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:18 fbbef7cd04a04efe8daa71b13569dfd6 -msgid "" -"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:19 54a6ec4e30b94788a749bcfcd52149ab -msgid "" -"✅ `RFC7662: OAuth 2.0 Token Introspection " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:20 9829a6dc3aca4e2589ce52b529e26208 -msgid "" -"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:21 c4f9b42536a94adfab90da79ef7ec77e -msgid "" -"❌ `RFC8428: OAuth 2.0 Device Authorization Grant " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:22 b46f678389a140d28f571fa65ef508c0 -msgid "" -"❌ `RFC8693: OAuth 2.0 Token Exchange " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:23 762b143d7a3343ea96d19d65b5d20d33 -msgid "" -"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" -"Bound Access Tokens `_" -msgstr "" - -#: ../../doc/development/specifications.rst:24 b0149247e739412db12e27f13ff03105 -msgid "" -"❌ `RFC8707: Resource Indicators for OAuth 2.0 " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:25 343ed4b6215343d9a44d5807c6d6b1a7 -msgid "" -"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:26 a6e3b2cb30c94a5f9922b7a184a36847 -msgid "" -"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:27 f971ecf0bf144571891910d1f2437c6e -msgid "" -"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:28 fc3312ad72d24fbdbc4bc3bdc41f4975 -msgid "" -"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:29 6ea9045b875440f0b158c45cfbbb5da3 -msgid "" -"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" -msgstr "" - -#: ../../doc/development/specifications.rst:30 6e9ed12e1d5f4cee9063c63f16639809 -msgid "" -"❌ `OAuth2 Multiple Response Types `_" -msgstr "" - -#: ../../doc/development/specifications.rst:31 c179be51a4324be6b1822dc762c64017 -msgid "" -"❌ `OAuth2 Form Post Response Mode `_" -msgstr "" - -#: ../../doc/development/specifications.rst:34 c4536360f9c34e52bc7c196ca083864c -msgid "OpenID Connect" -msgstr "" - -#: ../../doc/development/specifications.rst:36 1bac333e62e748228f06d4cd4b3f79cd -msgid "" -"✅ `OpenID Connect Core `_" -msgstr "" - -#: ../../doc/development/specifications.rst:37 177f627cd2c844afab7f72adc78309fe -msgid "" -"✅ `OpenID Connect Discovery `_" -msgstr "" - -#: ../../doc/development/specifications.rst:38 46d6426d7eb845aea7af55e24b5cbfde -msgid "" -"✅ `OpenID Connect Dynamic Client Registration `_" -msgstr "" - -#: ../../doc/development/specifications.rst:39 a38ba47e2d234fc588e8515e052117d5 -msgid "" -"✅ `OpenID Connect RP Initiated Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:40 12b246f565674f6d8a709b119eaa077e -msgid "" -"❌ `OpenID Connect Session Management `_" -msgstr "" - -#: ../../doc/development/specifications.rst:41 244a1b92839c4b30b556b2d5eb88a8c4 -msgid "" -"❌ `OpenID Connect Front Channel Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:42 32210e35cc3644d88a7d6b8088b82665 -msgid "" -"❌ `OpenID Connect Back Channel Logout `_" -msgstr "" - -#: ../../doc/development/specifications.rst:43 9bb794d88635474291dd79ab7f85184c -msgid "" -"❌ `OpenID Connect Back Channel Authentication Flow " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:44 729d88fd26854bc8a0f1458669120be0 -msgid "" -"❌ `OpenID Connect Core Error Code unmet_authentication_requirements " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:45 e9353600371c470f8a92e7b50c324427 -msgid "" -"✅ `Initiating User Registration via OpenID Connect 1.0 " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:48 -#: ../../doc/development/specifications.rst:64 9786673925304d99b1e09ab9fb786761 -#: e5c086aeada14b3fbd12df6a3150ddf7 -msgid "SCIM" -msgstr "" - -#: ../../doc/development/specifications.rst:50 cdaeb22c0b254f32be04c950554ddcf2 -msgid "" -"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, " -"Overview, Concepts, and Requirements `_" -msgstr "" - -#: ../../doc/development/specifications.rst:51 1d65726f19194dcfb004e9d50c72164c -msgid "" -"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:52 fb0be7fecb5f467f9162dd9eec3f0e1a -msgid "" -"❌ `RFC7644: System for Cross-domain Identity Management: Protocol " -"`_" -msgstr "" - -#: ../../doc/development/specifications.rst:55 dc882e47451d47009071e021bce6d0ae -msgid "Comparison with other providers" -msgstr "" - -#: ../../doc/development/specifications.rst:57 367a086f3b274c379d00b9d3f7451c10 -msgid "Here is a feature comparison with other OpenID Connect server software." -msgstr "" - -#: ../../doc/development/specifications.rst:59 6d484ee0fa4f45e18d14992b444b5da4 -msgid "" -"Canaille voluntarily only implements the OpenID Connect protocol to keep " -"its codebase simple." -msgstr "" - -#: ../../doc/development/specifications.rst:62 4fdd66f3032141698f64213f7f9184ae -msgid "Software" -msgstr "" - -#: ../../doc/development/specifications.rst:62 5e6caeffa6a44dfebe3eaba4d692f509 -msgid "Project" -msgstr "" - -#: ../../doc/development/specifications.rst:62 5fb63fe0df34482fb1cf4148afb11b4e -msgid "Protocols implementations" -msgstr "" - -#: ../../doc/development/specifications.rst:62 b542f41780b54cddbcaa336caef7399b -msgid "Backends" -msgstr "" - -#: ../../doc/development/specifications.rst:64 355f58ee2ecb43ea94091562af7d74cd -msgid "FLOSS" -msgstr "" - -#: ../../doc/development/specifications.rst:64 86dc1e42e8ee4cbcacd8d8cb43b6a08a -msgid "Language" -msgstr "" - -#: ../../doc/development/specifications.rst:64 a1da5f980cb349e6b6d4ce525b8931cd -msgid "LOC" -msgstr "" - -#: ../../doc/development/specifications.rst:64 6860a212b6b040d889bc0e351071b7d4 -msgid "OIDC" -msgstr "" - -#: ../../doc/development/specifications.rst:64 ef9c2076ea46467aad1d9ca648f7f111 -msgid "SAML" -msgstr "" - -#: ../../doc/development/specifications.rst:64 01c4b6fc96cf430f8932876fca8122fc -msgid "CAS" -msgstr "" - -#: ../../doc/development/specifications.rst:64 ab7b125e263945e38b55ab23a5c48b03 -msgid "LDAP" -msgstr "" - -#: ../../doc/development/specifications.rst:64 eed21c65e10546848ea44ae9c158b17c -msgid "SQL" -msgstr "" - -#: ../../doc/development/specifications.rst:66 4646c46739f74295bb793fa497beac7f -msgid "Canaille" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:82 -#: ../../doc/development/specifications.rst:84 -#: ../../doc/development/specifications.rst:86 -#: ../../doc/development/specifications.rst:88 00293b6e57934791a96bb65ea530e7e3 -#: 01dbc5d8500441ae826f7bb6c44184ee 0e45c0b5fb8a455b825489ef91815aab -#: 1883b31912d845d780648dad9f2c7d5f 1b5972edea444b8f96e3c0e500ec6ed3 -#: 2357097a3ffd43a5857e088ea7621fd7 24962f9ba6f94d71a57951f93da5c6ab -#: 26a2bac48d6241d7b32da47d9cb0fd03 278244ffdee941dc805168676ef552c8 -#: 2e5c12b7d21547b8804d029415b457c8 2f277618e8ec414aa45d8106e488681a -#: 2fdeb6b4b44349ddb453bc46b19c83a6 36975ba3452146d1bc37fe93b1d60a06 -#: 3c6cbfc7fc814259b1a9e713d9a28fa2 440ad3e13b164b1283d4dddd77b8a83f -#: 4717b3efb8374abe81b40288d6723d91 4b4d576e661e470e925471981828e3f4 -#: 4de9003654ed4009a37269e47f9fc650 5157da20dfe7472d924b475d0bc6ef00 -#: 58462071871e4a508c73293cb88ddba0 5e8e224f803942c2b777233d3460002f -#: 6481d1cbfbda4977a528e311cdb6e45a 64b1ba5f02d949e18e5e50ba43a565cf -#: 680ea8f447ca46bbb03083506be230d3 6a2575788fbc4d8bb4401d564c8b29de -#: 6def3fc95d7749e68dee237357a6520d 6e247f54da384c19af348447c679a0a4 -#: 76a44c050d7f452088ec710c29f9468a 77dd41e02a5d4991ad02046266c3da94 -#: 7cabbe22b77e416aaa0ebaa6515d6826 7f43f9c1d41b4b47840621d27460386b -#: 80f4793cb22b4d498847a665504c28d4 87f39b103616430298baa9af6b1271bf -#: 8c1ee96d1d4d4f7881ecf966281e95df 8e6cbb670d1848cca11a08071f5506ad -#: 979bc49081c3450b810383be914dfa0f 98a3414fac4845c7855b49beaf1269b3 -#: a03168cd752049cbb5a68f0773c27829 a66547d346ad4979bc23767ec423f3ca -#: aa29a491f5f1472587243f1b902dfef1 abfe8861b9734fe7a0168ce8bcbe0747 -#: ac5d1add8dd2470298644d9d0fc90b71 b095dbb17ffb4397839efb52dbb87144 -#: b429c62a736943a4966d5ae9be588be0 b8ba6e7a47584a4e81a3f4329bbfad6d -#: b8d6c565a4334f2ea9a6bae0529571ea be6cb24ed08c40c485299d3ca1055164 -#: c51b21470fab4ab085f54916088046d1 c9e8569829e94b5781080d8ccb76dfaa -#: ce8c0c10adea474692578f0a43b0ce44 ce9ff7f88334402bbdf2209311c57ac0 -#: d3c8bf29f67348bda1b295eee5389554 d72946d0f55e40cc9114dd63fb5562ff -#: d8009cabba824e8a95aafa929a92f89f de9e4a16c0eb40139020df82932fc8e0 -#: e0047cbe13924a94aed567b6df998bcd e67ac152809e4b41904a0ace000bd468 -#: e7fb6b76aba4412d90acee023ea0dcad ee37067b5b034fe88895e5d4172fd357 -#: f4424c75ebf5412db2f9821ff0865a36 f5d1cd95ba594da083656eeb12708d54 -#: f681b918be214fd7ae82f55767672a84 f937b44ef8484c7d8b5343d6097e1827 -msgid "✅" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 3ccef219dd8c477b83d63ac89a4628e8 -#: 53af1c5800bf4065ae54d6d3fed76f74 e675a5e8ceb145cd95b802b537a7e503 -msgid "Python" -msgstr "" - -#: ../../doc/development/specifications.rst:66 55d8af1bbebd4ef9b87c918cbe6c63c0 -msgid "10k" -msgstr "" - -#: ../../doc/development/specifications.rst:66 -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:72 -#: ../../doc/development/specifications.rst:74 -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:82 -#: ../../doc/development/specifications.rst:86 -#: ../../doc/development/specifications.rst:88 0ca4ec4e0e36486597b620c01710ede2 -#: 0d8be7ed0dd04e7aacdab8c88bbde44f 10d4091b215047ec8ac2fe800c138bc2 -#: 23374fd3c7854a519ec633a63306212f 271a7490fdb548d2bed49a96984704ba -#: 28b95cc1d4b54403beb65719a6a0a44d 2d146d48e0b54a28ad1950749bd515b7 -#: 45a986934d4d492b9dfa18a4127d6ef9 4d851a9f3cbd43beb53c65b8ff05baee -#: 50f6ec62752848868fcb308ab63cc924 7af084bb69fa4edcaa102e20f361e23b -#: 833072d393d04be79950691b5f124d3f 8638185efb444679ab524a599085007e -#: 9deb93b33a6c4bf68fec09cfc0703a79 b1bd472561e14226bc0d15889e2ee0cf -#: b4668a65b4af46e198f3765ef1c43102 b5e6ca29e6334015bf61656c832464c2 -#: c0dece63fd6f49039a7a522f81d417c0 ec8938b15b76427eaf45b604c4e966ee -msgid "❌" -msgstr "" - -#: ../../doc/development/specifications.rst:68 174c40b07c47456cbfcecc5f1aaa7aa3 -msgid "`Auth0`_" -msgstr "" - -#: ../../doc/development/specifications.rst:68 -#: ../../doc/development/specifications.rst:78 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:88 10089c17dd034fdabaf398ab5d8b0dd4 -#: 15817ce6f87540a19809b41de19081e4 3cc58548a2c3408384b260f3ebc1f4b2 -#: 490c945f86a449019cb6426b6d6ef8ac 59a7c804697644d7aa483f4964bde66b -#: 7a560e268e94470387a5a260c87d709e 92e1fd71f69d44819434698949a46567 -#: 9fa9ffd2119844f085e9fa700f58be6c c15a675d112448f496bf71ad7d1cfcb5 -msgid "❔" -msgstr "" - -#: ../../doc/development/specifications.rst:70 697388cfa36a4b208c5a2099201b5452 -msgid "`Authelia`_" -msgstr "" - -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:82 3cbf4ade038d48d8bf888c2aa06bce50 -#: 4b4504f562e44862900606dbb8915b0c -msgid "Go" -msgstr "" - -#: ../../doc/development/specifications.rst:70 -#: ../../doc/development/specifications.rst:82 19b7f1f58631476c9cbbd616ab8ac70b -#: d493f60bd51c493b852256574a34b5f2 -msgid "50k" -msgstr "" - -#: ../../doc/development/specifications.rst:72 b836b3e6fd19456f956d1b547f0de413 -msgid "`Authentic2`_" -msgstr "" - -#: ../../doc/development/specifications.rst:72 f37a11dc4f5a40f78f60d69c27a0dc4d -msgid "65k" -msgstr "" - -#: ../../doc/development/specifications.rst:74 8a058ec3fd37473fb49a681ff210a6a2 -msgid "`Authentik`_" -msgstr "" - -#: ../../doc/development/specifications.rst:74 2bcb15a8634f49a9bd61534d212878b0 -msgid "55k" -msgstr "" - -#: ../../doc/development/specifications.rst:76 2210617edefe419f9cb47dc6b57920b6 -msgid "`CAS`_" -msgstr "" - -#: ../../doc/development/specifications.rst:76 -#: ../../doc/development/specifications.rst:80 -#: ../../doc/development/specifications.rst:84 4230943e8b00424ca185ec2dfc44a471 -#: 71af08dffe3e4b06ab43a5a7babb784b 9e72b5d3fb9640e2b5369ec4fa8d0a78 -msgid "Java" -msgstr "" - -#: ../../doc/development/specifications.rst:76 ff56d27fde11433b982d1a133c733e85 -msgid "360k" -msgstr "" - -#: ../../doc/development/specifications.rst:78 46b4a92a2c564ee6a3a1fc2487b23d1f -msgid "`Connect2id`_" -msgstr "" - -#: ../../doc/development/specifications.rst:80 b1faedc73a864d72b858c85a712322f0 -msgid "`Gluu`_" -msgstr "" - -#: ../../doc/development/specifications.rst:82 7f52b801d5dd4d4f8d9d62c18b595d47 -msgid "`Hydra`_" -msgstr "" - -#: ../../doc/development/specifications.rst:84 349f9919048b4d9da7a72a321c10f9f7 -msgid "`Keycloak`_" -msgstr "" - -#: ../../doc/development/specifications.rst:84 6aae961ac7d14623b453e34e0a3ec1f1 -msgid "600k" -msgstr "" - -#: ../../doc/development/specifications.rst:86 2d37d2699f7a4b63bc98b3ff41b0642e -msgid "`LemonLDAP`_" -msgstr "" - -#: ../../doc/development/specifications.rst:86 eb1b85f500ff47a3b20ec299df109168 -msgid "Perl" -msgstr "" - -#: ../../doc/development/specifications.rst:86 59be9d49572942058056ceb2588ce133 -msgid "130k" -msgstr "" - -#: ../../doc/development/specifications.rst:88 5350f918d9c54b7f87b2134183072fd7 -msgid "`Okta`_" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/doc.po b/doc/locales/fr/LC_MESSAGES/doc.po new file mode 100644 index 00000000..3dc73440 --- /dev/null +++ b/doc/locales/fr/LC_MESSAGES/doc.po @@ -0,0 +1,5433 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2024, Yaal Coop +# This file is distributed under the same license as the canaille package. +# FIRST AUTHOR , 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: canaille 0.0.56\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-22 17:40+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: fr\n" +"Language-Team: fr \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: ../development/changelog.rst:2 67cd3658cd614334a30f658b422f2404 +msgid "Release notes" +msgstr "" + +#: ../development/changelog.rst:4 3e481ceb031d44c598fdff3839fc2fa5 +msgid "All notable changes to this project will be documented in there." +msgstr "" + +#: ../development/changelog.rst:6 961f4990e9bc499fbb370a780a32fe87 +msgid "" +"The format is based on `Keep a Changelog " +"`_, and this project adheres to " +"`Semantic Versioning `_." +msgstr "" + +#: ../../CHANGES.rst:2 f50c0c44028e40ffa2feb0f9b2b3a2ab +msgid "[0.0.57] - Unreleased" +msgstr "" + +#: ../../CHANGES.rst:5 ../../CHANGES.rst:20 ../../CHANGES.rst:48 +#: ../../CHANGES.rst:67 ../../CHANGES.rst:74 ../../CHANGES.rst:93 +#: ../../CHANGES.rst:151 ../../CHANGES.rst:177 ../../CHANGES.rst:192 +#: ../../CHANGES.rst:241 ../../CHANGES.rst:267 ../../CHANGES.rst:286 +#: ../../CHANGES.rst:294 ../../CHANGES.rst:303 ../../CHANGES.rst:327 +#: ../../CHANGES.rst:360 ../../CHANGES.rst:386 ../../CHANGES.rst:433 +#: ../../CHANGES.rst:461 ../../CHANGES.rst:491 ../../CHANGES.rst:547 +#: ../../CHANGES.rst:580 ../../CHANGES.rst:601 ../../CHANGES.rst:611 +#: ../../CHANGES.rst:634 ../../CHANGES.rst:701 ../../CHANGES.rst:739 +#: ../../CHANGES.rst:756 ../../CHANGES.rst:792 0b6929fd54ae473a911ad9dafff9e022 +#: 1a22660429954c62a520dcc5dcabb331 24ee4cccf3764dcc9e95dd59c385cf07 +#: 270885d95d534553b64478f0e0046dec 31885dc1d8214e11855ce6c39934215a +#: 31b20d31eada452f98cac078d960b7db 391fece98d594f21b99afc42f81f769f +#: 4873d84261654e5b85450dc24a06d459 55f98faca33845c0806b83f30472fb49 +#: 578c69e38e8e4879b064a7d8ecc1613c 5bcc6ebb7907430cbf3b0904af4cf16a +#: 5c719eed5f284875b81c868720fc429f 76e193e0c1bd46108fb01d3fbc3c9459 +#: 791a6f8c8e2140b4b0920e1b66ae2fbf 7b7dfc5dec75407d9bc52873a8a2dc16 +#: 80d77b86f90949ccbcb5bb75b27e0743 8391cf668e094280bb1407b08d3d60d7 +#: 8aafc67fde50493a8f449723e5bfb5cd 987c1ee9744940a6ad2e3d92abc14f5a +#: 98cc8c05fcdc47ab8ff37567dbf1358f a44c70e258fb44e2be6b7eabeac57a26 +#: ab5aa1f397154334946c24484c5207db afe74fa2118f41bd9d429d1c42cb1d61 +#: c1836f6086134cee8b1a6d42936d74df d5fb53279eab428eb46a59bf9d88d259 +#: da95365e057541ea88dbf0b90de6746e e1d1622c457a4b0c89498b60c3c33654 +#: e90749e5ccdb4d26b84919858e7759aa f3e30fe98ddd43ec91b66ef13b4b8c24 +msgid "Added" +msgstr "" + +#: ../../CHANGES.rst:6 d999b390f8524c928b1894427243548e +msgid "Password compromission check :issue:`179`" +msgstr "" + +#: ../../CHANGES.rst:7 6462dbba2e5a42ba8097d3f532479339 +msgid "" +":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and " +":attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK`" +" and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` " +":issue:`179`" +msgstr "" + +#: ../../CHANGES.rst:13 dd5cac3a17584534b4d6f98352d17e43 +msgid "[0.0.56] - 2024-11-07" +msgstr "" + +#: ../../CHANGES.rst:16 ../../CHANGES.rst:58 ../../CHANGES.rst:97 +#: ../../CHANGES.rst:105 ../../CHANGES.rst:113 ../../CHANGES.rst:120 +#: ../../CHANGES.rst:127 ../../CHANGES.rst:141 ../../CHANGES.rst:169 +#: ../../CHANGES.rst:182 ../../CHANGES.rst:200 ../../CHANGES.rst:219 +#: ../../CHANGES.rst:227 ../../CHANGES.rst:253 ../../CHANGES.rst:261 +#: ../../CHANGES.rst:281 ../../CHANGES.rst:311 ../../CHANGES.rst:341 +#: ../../CHANGES.rst:349 ../../CHANGES.rst:373 ../../CHANGES.rst:393 +#: ../../CHANGES.rst:415 ../../CHANGES.rst:425 ../../CHANGES.rst:446 +#: ../../CHANGES.rst:454 ../../CHANGES.rst:477 ../../CHANGES.rst:500 +#: ../../CHANGES.rst:512 ../../CHANGES.rst:521 ../../CHANGES.rst:530 +#: ../../CHANGES.rst:539 ../../CHANGES.rst:559 ../../CHANGES.rst:566 +#: ../../CHANGES.rst:616 ../../CHANGES.rst:624 ../../CHANGES.rst:649 +#: ../../CHANGES.rst:657 ../../CHANGES.rst:665 ../../CHANGES.rst:678 +#: ../../CHANGES.rst:692 ../../CHANGES.rst:724 ../../CHANGES.rst:747 +#: ../../CHANGES.rst:778 07a02b9c7c5447319f5009e477b13d1a +#: 0b894d80fc864b2a8983a2edb309e3c9 222acb03686541a2bde8cc653791ee4b +#: 3c910fae907e42bf911b9ea6a94e01d2 408f57d0b94342f6891d16ac8ce0331f +#: 40a3c8e81a6648b4ba51557af9c86ff2 423cedf221ab478c9a6de9df30a6c81b +#: 477d4760f44944e398031dea3e25deed 490dd374db164c78a36f8a9ba0eabc79 +#: 4f439967ff3b460a8a3b83e83340f8d9 5881793d805b46b98957183e86138253 +#: 5b7de269e34a429cb8e89036a1a9cbfc 5ced8330e1f84595a7976fd9c12fd827 +#: 5d59ba8ccbb44b0d9d7d104edabf99b9 5dfcee70e03c471099b7d52e9e0000f1 +#: 5e3e6de8ebbc4a158dcb6fa2d0872949 6271c228dfed4fa49cc6e264cb72c27c +#: 6baacc56a2cb4785b0cd7dfb5b38fdf8 7a4377bf54fa419e823f67f3c7f87e54 +#: 80ba9f67468f450087de87e55cdd4a45 8358e68914904e3ea9714ffadd98440b +#: 86165f9a20374dc5a2f9fabb7357d074 88b8ec3a072d4a0eb0d97d379a719248 +#: 972e1ac3a4f24490a8d3479840e340cd 9c393de405d945ebb22f14fc82160d15 +#: 9c531f1e246c49bbab5dc0bb54a61535 9ec7d988b004481581bf9eed558b81f3 +#: a8df1cc5739743078a2f1eda61d5cabe ab3f1f2d7da74fd390bd72d2c2555d46 +#: abee9b741be34fe5b2f12526e4282942 ad92c14fc4b346fa89c8384e34f444b6 +#: aea8a815749a40648b0cfdfcec09c482 b0e8696994bd426aacf9197b9893e792 +#: b23fafeb1bd941dab95ab487940cef40 bd0a6780aaad40d582494457a6e11e96 +#: ca94f59104aa48719be683ce49196ed9 d947d9c255af46908f904cd495736c31 +#: f02c14b560e7436aa5e3e64361475949 f04e873a41b4484f80cf316e3af98f88 +#: fbd38d6d33f74c06954ee8f37b647101 fdf28506150e440b83dff3b421509253 +#: fe9fc3ab9266488fa5d7ff3c6a116550 ffbf845171dc4c788394ac32057988b3 +msgid "Fixed" +msgstr "" + +#: ../../CHANGES.rst:17 bc3381481b1547d685c56be207b19be0 +msgid "" +"With LDAP backend, updating another user groups could result in a " +"permission lost for the editor. :issue:`202`" +msgstr "" + +#: ../../CHANGES.rst:21 8006f574ff2c44c7a025d270c8209674 +msgid "" +":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and" +" :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` " +"configuration options :issue:`174`" +msgstr "" + +#: ../../CHANGES.rst:23 f26ec8caf7ab464c90624b789eb2a272 +msgid "Password strength visual indicator :issue:`174`" +msgstr "" + +#: ../../CHANGES.rst:24 c432db47193b4396beca35d06fa98009 +msgid "Security events logs :issue:`177`" +msgstr "" + +#: ../../CHANGES.rst:25 63204ec365834e619949c03aabce298e +msgid "Support for Python 3.13 :pr:`186`" +msgstr "" + +#: ../../CHANGES.rst:28 ../../CHANGES.rst:41 ../../CHANGES.rst:53 +#: ../../CHANGES.rst:78 ../../CHANGES.rst:86 ../../CHANGES.rst:134 +#: ../../CHANGES.rst:158 ../../CHANGES.rst:210 ../../CHANGES.rst:247 +#: ../../CHANGES.rst:316 ../../CHANGES.rst:332 ../../CHANGES.rst:368 +#: ../../CHANGES.rst:405 ../../CHANGES.rst:440 ../../CHANGES.rst:483 +#: ../../CHANGES.rst:587 ../../CHANGES.rst:641 ../../CHANGES.rst:673 +#: ../../CHANGES.rst:687 0d8f005a24614c829c50bbcb08fc3a55 +#: 1065ec7b5d194101bc6a26e1bc91d6e0 205ee486c99f45f980a8ec1333ab6840 +#: 20e6cab81af843709f5971457b7e2a9a 2660c3be83544fd2b75efd31ef841b4b +#: 3ca72317f36f432b84b488d6b627b2ba 409cf18e41564685b1304826f83bb82e +#: 4a17bb23ba68435885c9ead313854c97 5c25e29c3fbe4854bb196b2b7b7bcffd +#: a07ef9c714354188b5f14a8e06c92218 a1f0d7f6c1ec47d6a204ad9287a89e9a +#: c093a9288c774441994eafd94d6d7c4a c36c838c3245430ab8e80467cad4493a +#: d5c71b9db5364918b67f3fbecd0c98a0 d7dc2bd5de644365aeb40d0dbec0d196 +#: e1aa10c7563b41459f78a0b289e5e74c e969ad72eb4f46f78d44add5a74d04e5 +#: f02cb5a0a71e449883c4b767b0d03f65 f511a81ae64d49d3beca0311a05f6506 +msgid "Changed" +msgstr "" + +#: ../../CHANGES.rst:29 772b297a85d24919a7020f1801ef2d53 +msgid "Update to HTMX 2.0.3 :pr:`184`" +msgstr "" + +#: ../../CHANGES.rst:30 04fbacaeecca493a950405e7ccdb9b9e +msgid "Migrate from poetry to uv :pr:`187`" +msgstr "" + +#: ../../CHANGES.rst:31 f5087c2835224603a98a4be790b6abf5 +msgid "" +"The ``sql`` package extra is now split between ``sqlite``, ``postgresql``" +" and ``mysql``." +msgstr "" + +#: ../../CHANGES.rst:34 ../../CHANGES.rst:378 ../../CHANGES.rst:784 +#: 03965a024d1a4713ac9e7cd0aa777c2e 11c684b9a5194d2cb0ebd9f9401ae1b9 +#: 52ad2462d9414e3db1dde9095d84f94b +msgid "Removed" +msgstr "" + +#: ../../CHANGES.rst:35 c4ed2628b8dd4ecc887d0a695ed173f2 +msgid "End support for python 3.9. :pr:`179`" +msgstr "" + +#: ../../CHANGES.rst:38 4f318e1e657f471a8d0d8294b9acc9c9 +msgid "[0.0.55] - 2024-08-30" +msgstr "" + +#: ../../CHANGES.rst:42 eb3a9d38860f40cebd255a348218bd62 +msgid "Use poetry-core build backend. :pr:`178`" +msgstr "" + +#: ../../CHANGES.rst:45 57daa02be9184f998cdff17e8a34e2a5 +msgid "[0.0.54] - 2024-07-25" +msgstr "" + +#: ../../CHANGES.rst:49 b5c787c52c8d4bbb8fb68b84104780a9 +msgid "" +"Group member removal can be achieved from the group edition page " +":issue:`192`" +msgstr "" + +#: ../../CHANGES.rst:50 7992eed042904424ac33cf866a27b04b +msgid "Model management commands :issue:`117` :issue:`54`" +msgstr "" + +#: ../../CHANGES.rst:54 aaf3e30baa7b467ea98e1b52054fe7df +msgid "Model `identifier_attributes` are fixed." +msgstr "" + +#: ../../CHANGES.rst:55 30380f5332814aaba304c105d39a25b9 +msgid "Bump to htmx 1.9.12 :pr:`172`" +msgstr "" + +#: ../../CHANGES.rst:60 8341a10e300e4349a9f0c65283880008 +msgid "Dark theme colors for better readability" +msgstr "" + +#: ../../CHANGES.rst:61 12f80ed63946464c999dc123c1ef327d +msgid "Crash for passwordless users at login when no SMTP server was configured." +msgstr "" + +#: ../../CHANGES.rst:64 2ca835d7715645079cf9983da6e90f5d +msgid "[0.0.53] - 2024-04-22" +msgstr "" + +#: ../../CHANGES.rst:68 c5e32fdab90943d9b2470c01da6f15bc +msgid "`env_prefix` create_app variable can select the environment var prefix." +msgstr "" + +#: ../../CHANGES.rst:71 3837079e13ad4b91812ba85098ae0f85 +msgid "[0.0.52] - 2024-04-22" +msgstr "" + +#: ../../CHANGES.rst:75 85c3b9d4b9784188ba7a2b77e5ba4367 +msgid "`env_file` create_app variable can customize/disable the .env file" +msgstr "" + +#: ../../CHANGES.rst:79 4e1c06838a964523a5f3152cff12c745 +msgid "Locked users cannot be impersonated anymore." +msgstr "" + +#: ../../CHANGES.rst:80 279ee70c54204bdeb774ad443da884b3 +msgid "Minimum python requirement is 3.9." +msgstr "" + +#: ../../CHANGES.rst:83 50150ebfa4ee46f89359c2ac24a23afa +msgid "[0.0.51] - 2024-04-09" +msgstr "" + +#: ../../CHANGES.rst:87 cef19dd2bbe34a82ae327ae3ef555e64 +msgid "Display the menu bar on error pages." +msgstr "" + +#: ../../CHANGES.rst:90 c2c4f10439aa46fca505b6d66dc12fe5 +msgid "[0.0.50] - 2024-04-09" +msgstr "" + +#: ../../CHANGES.rst:94 2d669c2640004f48a8a90b817e7102e6 +msgid "Sign in/out events are logged in :issue:`177`" +msgstr "" + +#: ../../CHANGES.rst:98 d9f688dfcb194333b8c3f88e25414a12 +msgid "HTMX and JAVASCRIPT configuration settings." +msgstr "" + +#: ../../CHANGES.rst:99 1109da2610e54dce877fdaf7303ccb7c +msgid "Compatibility with old sessions IDs." +msgstr "" + +#: ../../CHANGES.rst:102 3594c96423614043905b1a659a2a5f75 +msgid "[0.0.49] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:106 c3135f57d77e4af7ba16a158aa3940bd +msgid "LDAP user group removal." +msgstr "" + +#: ../../CHANGES.rst:107 bbd2812d503c4219a82acab0da1eebe4 +msgid "Display an error message when trying to remove the last user from a group." +msgstr "" + +#: ../../CHANGES.rst:110 580674f1c6c84d43b9f2e36bcb63fd19 +msgid "[0.0.48] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:114 b1e83de115e94004a0286ceb6fb0f43e +msgid "LDAP objectClass guessing exception." +msgstr "" + +#: ../../CHANGES.rst:117 5869129c770142f593d850e7769b53d7 +msgid "[0.0.47] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:121 672cd5d7429b4bf19e618b27f39b3bed +msgid "Lazy permission loading exception." +msgstr "" + +#: ../../CHANGES.rst:124 24c6fd1776144722b58f994f4897f31a +msgid "[0.0.46] - 2024-04-08" +msgstr "" + +#: ../../CHANGES.rst:128 45d2c205d12f4e4a8ef2c3dd3b260716 +msgid "" +"Saving an object with the LDAP backend keeps the objectClass un-managed " +"by Canaille. :pr:`171`" +msgstr "" + +#: ../../CHANGES.rst:131 8037692934c0458e9af204802119652e +msgid "[0.0.45] - 2024-04-04" +msgstr "" + +#: ../../CHANGES.rst:135 6c147cf1a17149f793621d4e849340d4 +msgid "" +"Internal indexation mechanism of " +":class:`~canaille.backends.memory.model.MemoryModel`" +msgstr "" + +#: ../../CHANGES.rst:138 7a6e44921aed4e0d8853ed35180af7eb +msgid "[0.0.44] - 2024-03-29" +msgstr "" + +#: ../../CHANGES.rst:142 642b0bf28736445e9dc4bf118eb694c5 +msgid "Fix the default LDAP USER_FILTER value" +msgstr "" + +#: ../../CHANGES.rst:143 8102138696f442faa87e34a341b6a386 +msgid "Fix the OIDC feature detection" +msgstr "" + +#: ../../CHANGES.rst:146 176cf871ea17465483927093589a62bf +msgid "[0.0.43] - 2024-03-29" +msgstr "" + +#: ../../CHANGES.rst:148 d202c6932dba459eb731d4f313e26ed6 +msgid "🚨Configuration files must be updated.🚨" +msgstr "" + +#: ../../CHANGES.rst:153 3418403c2c6c4b22ac95a1484edf0090 +msgid "Add `created` and `last_modified` datetime for all models" +msgstr "" + +#: ../../CHANGES.rst:154 2faf3c09645a47a389e7ee28401c1cc1 +msgid "Sitemap to the documentation :pr:`169`" +msgstr "" + +#: ../../CHANGES.rst:155 7dc819a2236242d59d0f0231995bf4db +msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`" +msgstr "" + +#: ../../CHANGES.rst:160 f966fcd0a59d4b8a84700f0c1fc7affb +msgid "Use default python logging configuration format. :issue:`188` :pr:`165`" +msgstr "" + +#: ../../CHANGES.rst:161 0e54ffbaaa59428c9f70e646a34b589f +msgid "Bump to htmx 1.99.11 :pr:`166`" +msgstr "" + +#: ../../CHANGES.rst:162 fa00a76a7cc640d8a4ab38aff4588754 +msgid "" +"Use the standard tomllib python module instead of `toml` starting from " +"python 3.11 :pr:`167`" +msgstr "" + +#: ../../CHANGES.rst:163 71da1b5d24524012b000cebfef9da015 +msgid "Use shibuya as the documentation theme :pr:`168`" +msgstr "" + +#: ../../CHANGES.rst:166 07e9974f609349f184d5352e95803c56 +msgid "[0.0.42] - 2023-12-29" +msgstr "" + +#: ../../CHANGES.rst:171 55826cff5ebf47e3a0fa65745076d338 +msgid "Avoid to fail on imports if ``cryptography`` is missing." +msgstr "" + +#: ../../CHANGES.rst:174 1bf1f3563cc74ca4bdadbb1d5e91e812 +msgid "[0.0.41] - 2023-12-25" +msgstr "" + +#: ../../CHANGES.rst:179 9b77b5fcd33e47769be00b04243124c3 +msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`" +msgstr "" + +#: ../../CHANGES.rst:184 6209cf36283e4748a0ce92573c947e5c +msgid "Correctly set up Client audience during OIDC dynamic registration." +msgstr "" + +#: ../../CHANGES.rst:185 73cf49f960fc4cb59885f6a1842dbd1b +msgid "" +"``post_logout_redirect_uris`` was ignored during OIDC dynamic " +"registration." +msgstr "" + +#: ../../CHANGES.rst:186 6f9de7829cdf45408bac9c822831cc34 +msgid "Group field error prevented the registration form validation." +msgstr "" + +#: ../../CHANGES.rst:189 4666a556cec5416ea0a2fa82c6ac8774 +msgid "[0.0.40] - 2023-12-22" +msgstr "" + +#: ../../CHANGES.rst:194 a9b7a9ae69d348249652eaebe584e684 +msgid "``THEME`` can be a relative path" +msgstr "" + +#: ../../CHANGES.rst:197 109c1ca0876a4c0e9c15bc2915eddbfb +msgid "[0.0.39] - 2023-12-15" +msgstr "" + +#: ../../CHANGES.rst:202 f9008fb79f12470bb23cd30348b93d9a +msgid "Crash when no ACL were defined" +msgstr "" + +#: ../../CHANGES.rst:203 3310cde4950a4781b8b78cca6f57c3a7 +msgid "OIDC Userinfo endpoint is also available in POST" +msgstr "" + +#: ../../CHANGES.rst:204 c0a168fd6568499cb6a2f3a620c0b089 +msgid "Fix redirection after password reset :issue:`159`" +msgstr "" + +#: ../../CHANGES.rst:207 f97779b5f3a840bc8afe089f6e29aa71 +msgid "[0.0.38] - 2023-12-15" +msgstr "" + +#: ../../CHANGES.rst:212 122aa8a1b3754780b670922404886b17 +msgid "Convert all the png in webp. :pr:`162`" +msgstr "" + +#: ../../CHANGES.rst:213 5898c4a08c4d4f1f92fd2d4bff41a0f9 +msgid "Update to flask 3 :issue:`161` :pr:`163`" +msgstr "" + +#: ../../CHANGES.rst:216 47b92ff1907c44098c19285b348962df +msgid "[0.0.37] - 2023-12-01" +msgstr "" + +#: ../../CHANGES.rst:221 16ecd2c9e49841a08c45873e9ffc15a5 +msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`" +msgstr "" + +#: ../../CHANGES.rst:224 025f7e23694c4a5a9e3e7b35f9398803 +msgid "[0.0.36] - 2023-12-01" +msgstr "" + +#: ../../CHANGES.rst:229 1e87982a9767434c93e77fe04ef6b732 +msgid "Avoid crashing when LDAP groups references unexisting users." +msgstr "" + +#: ../../CHANGES.rst:230 0c0c7a63d17c449d995f1a09e94e5ce5 +msgid "" +"Password reset and initialization mails were only sent to the preferred " +"user email address." +msgstr "" + +#: ../../CHANGES.rst:232 46093d04b37742d4aa6d6c833efb9169 +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:234 aaa0ed1234884df4bd166fc3660940f6 +msgid "Password comparison was too permissive on login." +msgstr "" + +#: ../../CHANGES.rst:235 f7923902c7b848c8b410734447def6be +msgid "Encrypt passwords in the SQL backend." +msgstr "" + +#: ../../CHANGES.rst:238 54117dbe4a9d4a3ab1122bbdd02e54cc +msgid "[0.0.35] - 2023-11-25" +msgstr "" + +#: ../../CHANGES.rst:243 b270c023d5b24c7a9e36aa1604cba899 +msgid "" +"Refresh token grant supports other client authentication methods. " +":pr:`157`" +msgstr "" + +#: ../../CHANGES.rst:244 1be4f2f6c6744ab48dc04db54e9ba156 +msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`" +msgstr "" + +#: ../../CHANGES.rst:249 fa13759d0fc34677a489f85c9272cdd8 +msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`" +msgstr "" + +#: ../../CHANGES.rst:250 cb188a2c909e4a9799665644315d9b7b +msgid "Bump to htmx 1.9.9 :pr:`159`" +msgstr "" + +#: ../../CHANGES.rst:255 b04c65689fb543b7be31f7a0a2aaf0ea +msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`" +msgstr "" + +#: ../../CHANGES.rst:258 5167fe4d3b5a436dabe0f4a02355f4ed +msgid "[0.0.34] - 2023-10-02" +msgstr "" + +#: ../../CHANGES.rst:263 3ee50efe016d4052907aef5c6102b484 +msgid "" +"Canaille installations without account lockabilty could not delete users." +" :pr:`153`" +msgstr "" + +#: ../../CHANGES.rst:269 38504ec51a164f3b98569149fec29ee4 +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:272 e651c1a66dce44f39fad07fba2c1f291 +msgid "flask-babel and pytz are now part of the `front` extras" +msgstr "" + +#: ../../CHANGES.rst:273 ffea0a5e9c3d4381afd56a9273bcf12e +msgid "Bump to fomantic-ui 2.9.3 :pr:`152`" +msgstr "" + +#: ../../CHANGES.rst:274 f11437acd1b741059f3daec3560a112d +msgid "Bump to htmx 1.9.6 :pr:`154`" +msgstr "" + +#: ../../CHANGES.rst:275 7feafc0715454e30bc4e8fd8a9cc309f +msgid "Add support for python 3.12 :pr:`155`" +msgstr "" + +#: ../../CHANGES.rst:278 b96d712d22ab448db7e33cd686e11721 +msgid "[0.0.33] - 2023-08-26" +msgstr "" + +#: ../../CHANGES.rst:283 833955120d3a473c84983c46fe718b91 +msgid "OIDC jwks endpoint do not return empty kid claim" +msgstr "" + +#: ../../CHANGES.rst:288 f5898ac6a32f4c499a4c5580a7c54966 +msgid "Documentation details on the canaille models." +msgstr "" + +#: ../../CHANGES.rst:291 da7d4a30e26f4a5cb07a2f7dfe43fea2 +msgid "[0.0.32] - 2023-08-17" +msgstr "" + +#: ../../CHANGES.rst:296 316d70c2680d4a78ad27c3dc1aea14e0 +msgid "Additional inmemory backend :issue:`30` :pr:`149`" +msgstr "" + +#: ../../CHANGES.rst:297 a65a596439904aefbb39f8b05fe30f30 +msgid "Installation extras :issue:`167` :pr:`150`" +msgstr "" + +#: ../../CHANGES.rst:300 9127245373594fca9b7a36e4848cdc10 +msgid "[0.0.31] - 2023-08-15" +msgstr "" + +#: ../../CHANGES.rst:305 a5b07d1b747c49d4875b0d0860ff5d9d +msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`" +msgstr "" + +#: ../../CHANGES.rst:306 9b93d35fa85d464ba8ff56e6a38a0427 +msgid "Validate phone numbers with a regex :pr:`146`" +msgstr "" + +#: ../../CHANGES.rst:307 59c4d6e85f8e43a5a4fcc4479ffd512e +msgid "Email verification :issue:`41` :pr:`147`" +msgstr "" + +#: ../../CHANGES.rst:308 59c116d74ac144fe844d61d9c74b0388 +msgid "Account registration :issue:`55` :pr:`133` :pr:`148`" +msgstr "" + +#: ../../CHANGES.rst:313 62c1175ad9334e10b4b8d6830a988f34 +msgid "The `check` command uses the default configuration values." +msgstr "" + +#: ../../CHANGES.rst:318 afc98e6a88ed40b39c8b7a58ec19ac83 +msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`" +msgstr "" + +#: ../../CHANGES.rst:321 7fa3744f2d2245578bb1366b65c4b95d +msgid "[0.0.30] - 2023-07-06" +msgstr "" + +#: ../../CHANGES.rst:323 06acb9ecdeda40e6ab9779ac29a2683f +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:329 67ac5239414e4ba8afc8c1c79b68778b +msgid "Configuration option to disable javascript :pr:`141`" +msgstr "" + +#: ../../CHANGES.rst:334 ee3585b455904ce290bfdb4510a5d263 +msgid "Configuration ``USER_FILTER`` is parsed with jinja." +msgstr "" + +#: ../../CHANGES.rst:335 197fa7a065954dc3b68b12e027896ffc +msgid "" +"Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and " +"``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``" +msgstr "" + +#: ../../CHANGES.rst:338 34ee8ce4f3084993be4d50e7eb00b49e +msgid "[0.0.29] - 2023-06-30" +msgstr "" + +#: ../../CHANGES.rst:343 d631a992cd814dc5906f324cd2c5ce73 +msgid "Disabled HTMX boosting on OIDC forms to avoid errors." +msgstr "" + +#: ../../CHANGES.rst:346 200926f2c212448b80c7725f63519043 +msgid "[0.0.28] - 2023-06-30" +msgstr "" + +#: ../../CHANGES.rst:351 5223a0abf9b64396b5fa2418bd5751a8 +msgid "A template variable was misnamed." +msgstr "" + +#: ../../CHANGES.rst:354 be7ee2a030cf43219aae50a4c5f0ab6a +msgid "[0.0.27] - 2023-06-29" +msgstr "" + +#: ../../CHANGES.rst:356 2666915938534406a320536bdbbd0554 +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:362 5f5b722aee9f4ba29479b672f35ccf7c +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:364 1371c61101714aafb244d8cd1e8253e3 +msgid "Field list support. :issue:`115` :pr:`136`" +msgstr "" + +#: ../../CHANGES.rst:365 6a2be3993ef94f059661f156a00d1998 +msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`" +msgstr "" + +#: ../../CHANGES.rst:370 6a7eb394ccac4c1c861366a87abfca96 +msgid "Bump to jquery 3.7.0 :pr:`138`" +msgstr "" + +#: ../../CHANGES.rst:375 37e230a7a27b4edebb7d15cf8eac1ed3 +msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`" +msgstr "" + +#: ../../CHANGES.rst:380 7b579ed05a6143ad8b71083558ad4886 +msgid "Stop support for python 3.7 :pr:`131`" +msgstr "" + +#: ../../CHANGES.rst:383 58a9bf28b3474e37890ba7d28b82ab30 +msgid "[0.0.26] - 2023-06-03" +msgstr "" + +#: ../../CHANGES.rst:388 d8c168a1e8f949809571bff78a2bd99c +msgid "" +"Implemented account expiration based on OpenLDAP ppolicy overlay. Needs " +"OpenLDAP 2.5+ :issue:`13` :pr:`118`" +msgstr "" + +#: ../../CHANGES.rst:390 d33a02c2d22b48deadb6a1fffffa3997 +msgid "Timezone configuration entry. :issue:`137` :pr:`130`" +msgstr "" + +#: ../../CHANGES.rst:395 4617a577ef234215b9353bad4f557134 +msgid "Avoid setting ``None`` in JWT claims when they have no value." +msgstr "" + +#: ../../CHANGES.rst:396 39881e258b72450389337909f09e6440 +msgid "Display password recovery button on OIDC login page. :pr:`129`" +msgstr "" + +#: ../../CHANGES.rst:399 63debedadfec46be9f414faff076a86c +msgid "[0.0.25] - 2023-05-05" +msgstr "" + +#: ../../CHANGES.rst:401 a6e54c1befb64af68886d55fc7b6bfc4 +msgid "" +"🚨Configuration files must be updated.🚨 Check the new format with ``git " +"diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``" +msgstr "" + +#: ../../CHANGES.rst:407 bdf8599b7bf142c0bf114ba5ff3746c9 +msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`" +msgstr "" + +#: ../../CHANGES.rst:408 0334473536484446a99dcc1b75e33ead +msgid "Moved OIDC related configuration entries in ``OIDC``" +msgstr "" + +#: ../../CHANGES.rst:409 cddd4c4e432942cb8b461a086258701e +msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``" +msgstr "" + +#: ../../CHANGES.rst:410 3d7f3d84aa8f48259eb46e977185c408 +msgid "Bumped to htmx 1.9.0 :pr:`124`" +msgstr "" + +#: ../../CHANGES.rst:411 543f6a2c0efa47f38c7399f5c05080c9 +msgid "" +"ACL filters are no more LDAP filters but user attribute mappings. " +":pr:`125`" +msgstr "" + +#: ../../CHANGES.rst:412 7a24cba4271641348073bcce9f541d7b +msgid "Bumped to htmx 1.9.2 :pr:`127`" +msgstr "" + +#: ../../CHANGES.rst:417 844ae11353a542cba52926d11be58a8f +msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now." +msgstr "" + +#: ../../CHANGES.rst:418 d32333109d8844b3851200fd42b32843 +msgid "Fixed empty model attributes registration :pr:`125`" +msgstr "" + +#: ../../CHANGES.rst:419 03d34520a30b4ac882cf036e16e38899 +msgid "Password initialization mails were not correctly sent. :pr:`128`" +msgstr "" + +#: ../../CHANGES.rst:422 c2a78f890b3a427d9e9dc01262d5d5ea +msgid "[0.0.24] - 2023-04-07" +msgstr "" + +#: ../../CHANGES.rst:427 24f752a301b2496591f67fcffdeafe25 +msgid "Fixed avatar update. :pr:`122`" +msgstr "" + +#: ../../CHANGES.rst:430 3a298aaac36145feb91c222086bee8a4 +msgid "[0.0.23] - 2023-04-05" +msgstr "" + +#: ../../CHANGES.rst:435 5000bcfa626b414aa9ce51abbfbe7216 +msgid "Organization field. :pr:`116`" +msgstr "" + +#: ../../CHANGES.rst:436 c8bed00e30b74ebeb69409b0c40df754 +msgid "ETag and Last-Modified headers on user photos. :pr:`116`" +msgstr "" + +#: ../../CHANGES.rst:437 cafc105434e34a70b25c9e0b1020474d +msgid "Dynamic form validation :pr:`120`" +msgstr "" + +#: ../../CHANGES.rst:442 9dbaf487296d41708aee2a7e3675712d +msgid "UX rework. Submenu addition. :pr:`114`" +msgstr "" + +#: ../../CHANGES.rst:443 9bea6b30702b4bf0867cb65d2db2921e +msgid "Properly handle LDAP date timezones. :pr:`117`" +msgstr "" + +#: ../../CHANGES.rst:448 58b9bc8d6a1d49bcbe843f0dd6634119 +msgid "CSRF protection on every forms. :pr:`119`" +msgstr "" + +#: ../../CHANGES.rst:451 77840b152a3c43f691e7069af9126b79 +msgid "[0.0.22] - 2023-03-13" +msgstr "" + +#: ../../CHANGES.rst:455 820347a1b1904089be2bfdf7e5ecccb8 +msgid "faker is not imported anymore when the `clean` command is called." +msgstr "" + +#: ../../CHANGES.rst:458 c370eda737bc49ad942e8e1352ed3fbc +msgid "[0.0.21] - 2023-03-12" +msgstr "" + +#: ../../CHANGES.rst:463 f1a36d309e9d44fea5195d47bbfef221 +msgid "Display TOS and policy URI on the consent list page. :pr:`102`" +msgstr "" + +#: ../../CHANGES.rst:464 9ba464ef1e6f4d288c776cd5d8f4d92d +msgid "Admin token deletion :pr:`100` :pr:`101`" +msgstr "" + +#: ../../CHANGES.rst:465 e2ef22ae1f5843e0a2ef673fa7f7c50c +msgid "Revoked consents can be restored. :pr:`103`" +msgstr "" + +#: ../../CHANGES.rst:466 60b5b8d41456436ab6dc5f94bd9fb25d +msgid "" +"Pre-consented clients are displayed in the user consent list, and their " +"consents can be revoked. :issue:`69` :pr:`103`" +msgstr "" + +#: ../../CHANGES.rst:468 c855058215b74c03bf29bb17f52b44b3 +msgid "" +"A ``populate`` command can be used to fill the database with random users" +" generated with faker. :pr:`105`" +msgstr "" + +#: ../../CHANGES.rst:470 bcdc9b4284cf4d96ac95036837bd6cb8 +msgid "SMTP SSL support. :pr:`108`" +msgstr "" + +#: ../../CHANGES.rst:471 1c546550c9e44068a9f7ac2bd4dc24d9 +msgid "Server side pagination. :issue:`114` :pr:`111`" +msgstr "" + +#: ../../CHANGES.rst:472 274c2da3f10a4443af767d398c72caae +msgid "Department number support. :issue:`129`" +msgstr "" + +#: ../../CHANGES.rst:473 d0025fabcf5748d7b84b989bca461f8d +msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`" +msgstr "" + +#: ../../CHANGES.rst:474 a66ab0cdc2704584a8e18bab7768fa51 +msgid "Title edition support :pr:`113`" +msgstr "" + +#: ../../CHANGES.rst:479 630e1bb97016446788f2729aab365de3 +msgid "" +"Client deletion also deletes related Consent, Token and AuthorizationCode" +" objects. :issue:`126` :pr:`98`" +msgstr "" + +#: ../../CHANGES.rst:485 09d7bf4a44e748859b8e8a1dcd6245fd +msgid "Removed datatables." +msgstr "" + +#: ../../CHANGES.rst:488 d68570950096439c99d3e685956660fe +msgid "[0.0.20] - 2023-01-28" +msgstr "" + +#: ../../CHANGES.rst:493 79178006e2874f1393320079455156f6 +msgid "Spanish translation. :pr:`85` :pr:`88`" +msgstr "" + +#: ../../CHANGES.rst:494 c7578b67e89e4d7e8479f0cb4f016e22 +msgid "Dedicated connectivity test email :pr:`89`" +msgstr "" + +#: ../../CHANGES.rst:495 8b1da3651919458da0895f6e8d6fb54f +msgid "Update to jquery 3.6.3 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:496 75423d75c9ed4f0fb527ab970e3478ee +msgid "Update to fomantic-ui 2.9.1 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:497 6f4d1b59e9044315bdc22634324f9473 +msgid "Update to datatables 1.13.1 :pr:`90`" +msgstr "" + +#: ../../CHANGES.rst:502 7ac8e3c501f9420daa7493e80a88b25e +msgid "Fix typos and grammar errors. :pr:`84`" +msgstr "" + +#: ../../CHANGES.rst:503 978be82816ec4286ac1b5f42943c89c5 +msgid "Fix wording and punctuations. :pr:`86`" +msgstr "" + +#: ../../CHANGES.rst:504 396b9df072c9403082e80e55b46e1927 +msgid "Fix HTML lang tag :issue:`122` :pr:`87`" +msgstr "" + +#: ../../CHANGES.rst:505 7bb7722c07524ea8a2da66c6d5d0e8e0 +msgid "Automatically trims the HTML translated strings. :pr:`91`" +msgstr "" + +#: ../../CHANGES.rst:506 81e6ce27ee054614a99f2e35d793834b +msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`" +msgstr "" + +#: ../../CHANGES.rst:509 81bd9cc8e92543cc9a5a7bb1e0bf3ba9 +msgid "[0.0.19] - 2023-01-14" +msgstr "" + +#: ../../CHANGES.rst:514 2fffaa8902364cb598b956febacab5a7 +msgid "" +"Ensures the token `expires_in` claim and the `access_token` `exp` claim " +"have the same value. :pr:`83`" +msgstr "" + +#: ../../CHANGES.rst:518 d808dc60e83141ea8b4df96d7be0981e +msgid "[0.0.18] - 2022-12-28" +msgstr "" + +#: ../../CHANGES.rst:523 fd9ec96bc77a4b48af2ef15435efd97a +msgid "" +"OIDC end_session was not returning the ``state`` parameter in the " +"``post_logout_redirect_uri`` :pr:`82`" +msgstr "" + +#: ../../CHANGES.rst:527 00f55eac59fd40a8aac2e64639b338fb +msgid "[0.0.17] - 2022-12-26" +msgstr "" + +#: ../../CHANGES.rst:532 de2d0bd26dcc4d9e85636b7aec93f477 +msgid "Fixed group deletion button. :pr:`80`" +msgstr "" + +#: ../../CHANGES.rst:533 aca6ee4b724747fdbb2ff63faf9260a7 +msgid "Fixed post requests in oidc clients views. :pr:`81`" +msgstr "" + +#: ../../CHANGES.rst:536 c681882951634cdc9642ad433c3b14e4 +msgid "[0.0.16] - 2022-12-15" +msgstr "" + +#: ../../CHANGES.rst:541 d3b63fd6277c4505bb90ed30d63feb17 +msgid "Fixed LDAP operational attributes handling." +msgstr "" + +#: ../../CHANGES.rst:544 4eaed5f2828a460b8a6ab3c274dec8f9 +msgid "[0.0.15] - 2022-12-15" +msgstr "" + +#: ../../CHANGES.rst:549 32501311a27a44ce8f4ca4c70f217b9d +msgid "User can chose their favourite display name. :pr:`77`" +msgstr "" + +#: ../../CHANGES.rst:550 c1a1bc1b748e45148aec5bc1698b6482 +msgid "Bumped to authlib 1.2. :pr:`78`" +msgstr "" + +#: ../../CHANGES.rst:551 73a75a1d074a416da3d9224262e47c4b +msgid "" +"Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management " +"Protocol :pr:`79`" +msgstr "" + +#: ../../CHANGES.rst:553 941cf9889d0945f2b6f7086ab74d6a0d +msgid "Added ``nonce`` to the ``claims_supported`` server metadata list." +msgstr "" + +#: ../../CHANGES.rst:556 290bfbc5be994362a7c461bddae68239 +msgid "[0.0.14] - 2022-11-29" +msgstr "" + +#: ../../CHANGES.rst:560 938f721e12344e9eaa6339418089ac62 +msgid "Fixed translation mo files packaging." +msgstr "" + +#: ../../CHANGES.rst:563 dc2b4309dac14824a6f762923e99ecb8 +msgid "[0.0.13] - 2022-11-21" +msgstr "" + +#: ../../CHANGES.rst:568 222a7bdf5ad147699be17b5b1d482795 +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:570 9bcceeb9b16c48aca35c3e24349b7eb2 +msgid "" +"Fixed a bug happening during RP initiated logout on clients without " +"`post_logout_redirect_uri` defined." +msgstr "" + +#: ../../CHANGES.rst:572 159af058202743fcb0486353f1c74ece +msgid "Gitlab CI fix. :pr:`64`" +msgstr "" + +#: ../../CHANGES.rst:573 86dd1ccc54f64cea825b5905f5c7f345 +msgid "Fixed `client_secret` display on the client administration page. :pr:`65`" +msgstr "" + +#: ../../CHANGES.rst:574 53ad61ce433e4fa594dca68529988d46 +msgid "Fixed non-square logo CSS. :pr:`67`" +msgstr "" + +#: ../../CHANGES.rst:575 40ee80b30fc84c889c7b5cd67d1c02c7 +msgid "Fixed schema path on installation. :pr:`68`" +msgstr "" + +#: ../../CHANGES.rst:576 64213050390145db906dd2609820855c +msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`" +msgstr "" + +#: ../../CHANGES.rst:577 a05884be9bd24638b5c33339363e4b51 +msgid "Fixed client preconsent disabling. :pr:`72`" +msgstr "" + +#: ../../CHANGES.rst:582 2574335adaa24f349ea52f684397d2ed +msgid "Python 3.11 support. :pr:`61`" +msgstr "" + +#: ../../CHANGES.rst:583 03878041c3014e518264e9edf1caa544 +msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`" +msgstr "" + +#: ../../CHANGES.rst:584 fb788ae2d8044a5487a78862d11d49fb +msgid "``preferredLanguage`` attribute support. :pr:`75`" +msgstr "" + +#: ../../CHANGES.rst:589 b3b8433b408045f4ac2326f236b91445 +msgid "" +"Replaced the use of the deprecated `FLASK_ENV` environment variable by " +"`FLASK_DEBUG`." +msgstr "" + +#: ../../CHANGES.rst:591 981b5e2bdcc04694b51e784d25e8d046 +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:594 3b00ccf2444141cd8822d92b97ed6053 +msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`" +msgstr "" + +#: ../../CHANGES.rst:595 94f401fe37d64a87a9c46e8444c320b0 +msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`" +msgstr "" + +#: ../../CHANGES.rst:598 9f898ef7445a403c934afd0d8bdd7309 +msgid "[0.0.12] - 2022-10-24" +msgstr "" + +#: ../../CHANGES.rst:603 a9ea99e80b5044489ac2776a6921bad2 +msgid "Basic WebFinger endpoint. :pr:`59`" +msgstr "" + +#: ../../CHANGES.rst:604 4407eb810f564c388ebacbc03d71909b +msgid "Bumped to FomanticUI 2.9.0 00ffffee" +msgstr "" + +#: ../../CHANGES.rst:605 874ed8b234184d08b196ccccddec7939 +msgid "Implemented Dynamic Client Registration :pr:`60`" +msgstr "" + +#: ../../CHANGES.rst:608 97f44d9b82ea4375abffbcc306c9d57a +msgid "[0.0.11] - 2022-08-11" +msgstr "" + +#: ../../CHANGES.rst:613 1f6b0b91546a4b1d8fe0d2a9a918aba1 +msgid "Default theme has a dark variant. :pr:`57`" +msgstr "" + +#: ../../CHANGES.rst:618 fd0ec66c12da46659d54721b72996afc +msgid "Fixed missing ``canaille`` binary. :pr:`58`" +msgstr "" + +#: ../../CHANGES.rst:621 92b1d721a1fa4b8096b8e2798c16bff3 +msgid "[0.0.10] - 2022-07-07" +msgstr "" + +#: ../../CHANGES.rst:626 d56498d4078e4192ad16b221a5063fb6 +msgid "Online demo. :pr:`55`" +msgstr "" + +#: ../../CHANGES.rst:627 eeb4a3ccc4124e65a3ea654fc8984a62 +msgid "The consent page was displaying scopes not supported by clients. :pr:`56`" +msgstr "" + +#: ../../CHANGES.rst:628 31b230fa246e43c7b94368e938c713f7 +msgid "Fixed end session when user are already disconnected." +msgstr "" + +#: ../../CHANGES.rst:631 b28210e5c5eb4f8bbaf4e4d8d4367ca3 +msgid "[0.0.9] - 2022-06-05" +msgstr "" + +#: ../../CHANGES.rst:636 d273331200ae4b2393ef57600cc5803c +msgid "" +"``DISABLE_PASSWORD_RESET`` configuration option to disable password " +"recovery. :pr:`46`" +msgstr "" + +#: ../../CHANGES.rst:637 cdc9a1acc7cd4e97b364b897c75bc7b7 +msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`" +msgstr "" + +#: ../../CHANGES.rst:638 6cae26c486a9428e82ecab5871fe38c8 +msgid "Implemented RP-initiated logout :pr:`54`" +msgstr "" + +#: ../../CHANGES.rst:643 b66d1dea48ea465fb1a24a681c9c42d4 +msgid "Bumped to authlib 1 :pr:`48`" +msgstr "" + +#: ../../CHANGES.rst:644 c2572fb40b7c4b6c9046b27142efdfd0 +msgid "documentation improvements :pr:`50`" +msgstr "" + +#: ../../CHANGES.rst:645 6855cf1f37cf4323befaed034b4f6d6b +msgid "use poetry instead of setuptools :pr:`51`" +msgstr "" + +#: ../../CHANGES.rst:646 f1290c925e174c7992384ccedef040b6 +msgid "additional nonce tests :pr:`52`" +msgstr "" + +#: ../../CHANGES.rst:650 59ef0ddc1bf14b0dad16ad22641c3386 +msgid "``HIDE_INVALID_LOGIN`` behavior and default value." +msgstr "" + +#: ../../CHANGES.rst:651 c595d06befba47b8be48a357e02c3d27 +msgid "mo files are not versioned anymore :pr:`49` :pr:`53`" +msgstr "" + +#: ../../CHANGES.rst:654 c4902a72e08241479a3dd830495e1e21 +msgid "[0.0.8] - 2022-03-15" +msgstr "" + +#: ../../CHANGES.rst:659 96164d0e2a7e49bea54f2c428087908d +msgid "Fixed dependencies" +msgstr "" + +#: ../../CHANGES.rst:662 0c82079f96d647439755cddc37a06943 +msgid "[0.0.7] - 2022-03-15" +msgstr "" + +#: ../../CHANGES.rst:667 197a6ee29d77411f81c5bedc462a9699 +msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`" +msgstr "" + +#: ../../CHANGES.rst:670 ad07a539305344a99595ca0f3957f080 +msgid "[0.0.6] - 2022-03-08" +msgstr "" + +#: ../../CHANGES.rst:675 229628dd374e405eb938b9ded3ceb1a9 +msgid "Access token are JWT. :pr:`38`" +msgstr "" + +#: ../../CHANGES.rst:680 b840a7dd1e5c49049e9c42a6dcc2cdd6 +msgid "Default groups on invitations :pr:`41`" +msgstr "" + +#: ../../CHANGES.rst:681 9bd87857eca846b5a7ce2eb78aa3b98a +msgid "Schemas are shipped within the canaille package :pr:`42`" +msgstr "" + +#: ../../CHANGES.rst:684 29e4efc1bc38404b98ed95a9bea98654 +msgid "[0.0.5] - 2022-02-17" +msgstr "" + +#: ../../CHANGES.rst:689 b25170ebddba4781a06b71ea8c212411 +msgid "LDAP model objects have new identifiers :pr:`37`" +msgstr "" + +#: ../../CHANGES.rst:694 4fe23c23cb264a8a976be5984cfffccd +msgid "Admin menu dropdown display :pr:`39`" +msgstr "" + +#: ../../CHANGES.rst:695 311170f2960e462a8710c34e68e17f5e +msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`" +msgstr "" + +#: ../../CHANGES.rst:698 2b26718a9b1341c787d0bf9be620a5d0 +msgid "[0.0.4] - 2022-02-16" +msgstr "" + +#: ../../CHANGES.rst:703 edf0938d51834ee99b5ab70345fbf965 +msgid "Client preauthorization :pr:`11`" +msgstr "" + +#: ../../CHANGES.rst:704 1a40388976dc432e810b4d99937c9d44 +msgid "LDAP permissions check with the check command :pr:`12`" +msgstr "" + +#: ../../CHANGES.rst:705 89f59530fe4b458491ff240282d546af +msgid "" +"Update consents when a scope required is larger than the scope of an " +"already given consent :pr:`13`" +msgstr "" + +#: ../../CHANGES.rst:707 9c5fb554f5a24297a2b5427488413dd0 +msgid "Theme customization :pr:`15`" +msgstr "" + +#: ../../CHANGES.rst:708 d14a00a5d6ec4e9db215fb6d68e3c65e +msgid "Logging configuration :pr:`16`" +msgstr "" + +#: ../../CHANGES.rst:709 0ca72541f86849f7b789e833c11cfd48 +msgid "Installation command :pr:`17`" +msgstr "" + +#: ../../CHANGES.rst:710 c11b918827644f168592b76f423f7762 +msgid "Invitation links :pr:`18`" +msgstr "" + +#: ../../CHANGES.rst:711 dc0e344ee1ac4d89841b404ac286cdbb +msgid "Advanced permissions :pr:`20`" +msgstr "" + +#: ../../CHANGES.rst:712 81c86c070a904d57be88f7c9d9b28895 +msgid "An option to not use OIDC :pr:`23`" +msgstr "" + +#: ../../CHANGES.rst:713 68011d12b1b2444da423776414eb9c58 +msgid "Disable some features when no SMTP server is configured :pr:`24`" +msgstr "" + +#: ../../CHANGES.rst:714 acd6cedde2b34836ab29657171968453 +msgid "" +"Login placeholder dynamically generated according to the configuration " +":pr:`25`" +msgstr "" + +#: ../../CHANGES.rst:715 f9d1cc0bc3d34e469d512834b192b4b2 +msgid "Added an option to tune object IDs :pr:`26`" +msgstr "" + +#: ../../CHANGES.rst:716 3dc13715b3eb41c4a9c9ac8a8388d024 +msgid "Avatar support :pr:`27`" +msgstr "" + +#: ../../CHANGES.rst:717 f73abd3a60014fb8a117a4eac6482a47 +msgid "Dynamical and configurable JWT claims :pr:`28`" +msgstr "" + +#: ../../CHANGES.rst:718 795843f468c946d0b282d39d69f491d8 +msgid "UI improvements :pr:`29`" +msgstr "" + +#: ../../CHANGES.rst:719 1a1cc1890a464ecd9e88038a2e3a948e +msgid "Invitation links expiration :pr:`30`" +msgstr "" + +#: ../../CHANGES.rst:720 82908f54c8464b60bc31e055769c27ab +msgid "Invitees can choose their IDs :pr:`31`" +msgstr "" + +#: ../../CHANGES.rst:721 99f351a2973748d0afd34d40d5bdb736 +msgid "LDAP backend refactoring :pr:`35`" +msgstr "" + +#: ../../CHANGES.rst:726 d467678d501149308dadaf66191e539f +msgid "Fixed ghost members in a group :pr:`14`" +msgstr "" + +#: ../../CHANGES.rst:727 1fc764e3f7904f85bf16a0518a4dcae0 +msgid "Fixed email sender names :pr:`19`" +msgstr "" + +#: ../../CHANGES.rst:728 762cec2be7084103848f63f08c17ac78 +msgid "Fixed filter being not escaped :pr:`21`" +msgstr "" + +#: ../../CHANGES.rst:729 0bd6ef3db9a949b6a764366bc44473c8 +msgid "Demo script good practices :pr:`32`" +msgstr "" + +#: ../../CHANGES.rst:730 d6390a77df244e1aab4395426bdf2a48 +msgid "Binary path for Debian :pr:`33`" +msgstr "" + +#: ../../CHANGES.rst:731 49392d82626245468db66609b164694e +msgid "" +"Last name was not mandatory in the forms while this was mandatory in the " +"LDAP server :pr:`34`" +msgstr "" + +#: ../../CHANGES.rst:733 4bd138b857ee46b0b20158863b90161d +msgid "Spelling typos :pr:`36`" +msgstr "" + +#: ../../CHANGES.rst:736 788bfaf9894445909c8158278ce15bd2 +msgid "[0.0.3] - 2021-10-13" +msgstr "" + +#: ../../CHANGES.rst:741 8fad9ca44d3b452f85b71d932cc31c19 +msgid "Two-steps sign-in :issue:`49`" +msgstr "" + +#: ../../CHANGES.rst:742 4eeef635dea440a08a2898b7eb3230a8 +msgid "Tokens can have several audiences. :issue:`62` :pr:`9`" +msgstr "" + +#: ../../CHANGES.rst:743 0c8f51332d8e46d0986f570ff22e0ff1 +msgid "Configuration check command. :issue:`66` :pr:`8`" +msgstr "" + +#: ../../CHANGES.rst:744 eacb7f4bd0f14a1cab39447065809e75 +msgid "Groups management. :issue:`12` :pr:`6`" +msgstr "" + +#: ../../CHANGES.rst:749 f7439c841aa840888f0c083ec8adfe74 +msgid "Introspection access bugfix. :issue:`63` :pr:`10`" +msgstr "" + +#: ../../CHANGES.rst:750 d1f0bc7e377343c09b18e6d8a63a5010 +msgid "Introspection sub claim. :issue:`64` :pr:`7`" +msgstr "" + +#: ../../CHANGES.rst:753 dc5c8ef174484f35a42b31cd3f2a9f08 +msgid "[0.0.2] - 2021-01-06" +msgstr "" + +#: ../../CHANGES.rst:758 d44afb15022f44959c9677ca62f14d2b +msgid "Login page is responsive. :issue:`1`" +msgstr "" + +#: ../../CHANGES.rst:759 4baa37708ab1438c971fb346cdd01e94 +msgid "Adapt mobile keyboards to login page fields. :issue:`2`" +msgstr "" + +#: ../../CHANGES.rst:760 99d9f04a69b4471eb1e70d2277c9205c +msgid "Password recovery interface. :issue:`3`" +msgstr "" + +#: ../../CHANGES.rst:761 87ee8c581db74c4e8f63cbc2697afb33 +msgid "User profile interface. :issue:`4`" +msgstr "" + +#: ../../CHANGES.rst:762 e078cbb83f754d9eb59d944fe0a3578c +msgid "Renamed the project *canaille*. :issue:`5`" +msgstr "" + +#: ../../CHANGES.rst:763 b857f069d51048058e186f728d743edd +msgid "Command to remove old tokens. :issue:`17`" +msgstr "" + +#: ../../CHANGES.rst:764 ced480248bc3492e8e816a75e8218f25 +msgid "Improved password recovery email. :issue:`14` :issue:`26`" +msgstr "" + +#: ../../CHANGES.rst:765 245ec1976f2b4f63be97bbc1afe62454 +msgid "" +"Use flask `SERVER_NAME` configuration variable instead of `URL`. " +":issue:`24`" +msgstr "" + +#: ../../CHANGES.rst:766 c56fe72201d349e0855ffb946909db00 +msgid "Improved consents page. :issue:`27`" +msgstr "" + +#: ../../CHANGES.rst:767 b7059f4e5c70478bae9372e27a44836b +msgid "Admin user page. :issue:`8`" +msgstr "" + +#: ../../CHANGES.rst:768 4169f2f4a58c4f618de700da350aadad +msgid "Project logo. :pr:`29`" +msgstr "" + +#: ../../CHANGES.rst:769 b39b14dad63d485b9870eca1f6d16c9e +msgid "" +"User account self-deletion can be enabled in the configuration with " +"`SELF_DELETION`. :issue:`35`" +msgstr "" + +#: ../../CHANGES.rst:770 20abce934b714676b97e9b2a0745b7bd +msgid "Admins can impersonate users. :issue:`39`" +msgstr "" + +#: ../../CHANGES.rst:771 4f62f72e118348aeba0e31aca0ced22a +msgid "Forgotten page UX improvement. :pr:`43`" +msgstr "" + +#: ../../CHANGES.rst:772 a76c7f3833c34952aec02584bcfa1039 +msgid "Admins can remove clients. :pr:`45`" +msgstr "" + +#: ../../CHANGES.rst:773 6be5896f77054ae39df134400b1870d9 +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:775 510877991b7d405dae6c77b61b31d71f +msgid "Password initialization mail. :pr:`51`" +msgstr "" + +#: ../../CHANGES.rst:780 6a3654cde6ee4927bee7a8aa0359c656 +msgid "Form translations. :issue:`19` :issue:`23`" +msgstr "" + +#: ../../CHANGES.rst:781 ec324330dee34013ad82c1d00fe8c7c9 +msgid "Avoid to use Google Fonts. :issue:`21`" +msgstr "" + +#: ../../CHANGES.rst:786 e5515578ce384bb5814068c9c9a70567 +msgid "'My tokens' page. :issue:`22`" +msgstr "" + +#: ../../CHANGES.rst:789 5f1ce59b42134ab296e053facb181b09 +msgid "[0.0.1] - 2020-10-21" +msgstr "" + +#: ../../CHANGES.rst:794 4ea47aa0a66c4cacbf10523af477f36a +msgid "Initial release." +msgstr "" + +#: ../../CONTRIBUTING.rst:2 0b841ff58ceb49d58df5854258f7f6e4 +msgid "Contributions" +msgstr "" + +#: ../../CONTRIBUTING.rst:4 3a228b3941b845fe9f97a98dda21b6c1 +msgid "Contributions are welcome!" +msgstr "" + +#: ../../CONTRIBUTING.rst:6 376791696837443799d15eaac3fece86 +msgid "" +"The repository is hosted at `gitlab.com/yaal/canaille " +"`_." +msgstr "" + +#: ../../CONTRIBUTING.rst:9 cf4f8584594a4b14814becbcde09e445 +msgid "Discuss" +msgstr "" + +#: ../../CONTRIBUTING.rst:11 4d13d0df9201499c849d24523ae1bcd0 +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 fa5c801973694e3a8b366eca8118e245 +msgid "Development environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:18 f4955bb4916c4ef3aa872fd9d42e4280 +msgid "You can either run the demo locally or with Docker." +msgstr "" + +#: ../../CONTRIBUTING.rst:20 c52b8ce6082d4254a73f64cdea1750c6 +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 ec22edb478cc46a8b24ae8abab8a4075 +msgid "" +"Initialize your development environment with: - ``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``. - " +"``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``. - ``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``. - ``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:31 85d3edc02ca447c2bc95484ee5b24366 +msgid "After having launched the demo you have access to several services:" +msgstr "" + +#: ../../CONTRIBUTING.rst:33 1f803759ce7c424f99c2b6379d78221e +msgid "A canaille server at `localhost:5000 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:34 f35728db0c4c4c34a77e986a30d13b9b +msgid "A dummy client at `localhost:5001 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:35 1b3293f8aa8b4347a5e68fb8cd379dc9 +msgid "Another dummy client at `localhost:5002 `_" +msgstr "" + +#: ../../CONTRIBUTING.rst:37 dc367e129b3c4a338790f50ee1c157d1 +msgid "The canaille server has some default users:" +msgstr "" + +#: ../../CONTRIBUTING.rst:39 917cd6e723084a88829205c5544100bb +msgid "A regular user which login and password are **user**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:40 9dcb660b7bcb4adc96e5497d248b08e6 +msgid "A moderator user which login and password are **moderator**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:41 bd86721dd0704d62846642b06c6295ac +msgid "An admin user which admin and password are **admin**;" +msgstr "" + +#: ../../CONTRIBUTING.rst:42 4d97d74c5e0e44b29ba6d2176066f3e2 +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 "" + +#: ../../CONTRIBUTING.rst:47 ../development/specifications.rst:62 +#: ../features.rst:258 5e1960df6cbc48ef8d4e518999525455 +#: 6680030625d24566b0ce617d85b05a09 8fc0509085aa46a1a6c157e63ececab3 +msgid "Backends" +msgstr "" + +#: ../../CONTRIBUTING.rst:49 3acf5b56655c4e31877e624fbfe62ef7 +msgid "Canaille comes with several backends:" +msgstr "" + +#: ../../CONTRIBUTING.rst:51 e74e335e14a948379ebcffcd2e179a83 +msgid "a lightweight test purpose `memory` backend" +msgstr "" + +#: ../../CONTRIBUTING.rst:52 b75cb89dfc354a1582d8e3e27d358962 +msgid "a `sql` backend, based on sqlalchemy" +msgstr "" + +#: ../../CONTRIBUTING.rst:53 6bf1fa26de7c4e159c4f75f5afc0e05c +msgid "a production-ready `LDAP` backend" +msgstr "" + +#: ../../CONTRIBUTING.rst:56 b16bac707a05428fa5bfed53f6a32db0 +msgid "Docker environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:58 742ff809c71a40c088c3f89eb73b2b93 +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:63 be0d34c286ef4ab4ac7122eb6e9e65f5 +msgid "To do that, you can add the following line to your `/etc/hosts`:" +msgstr "" + +#: ../../CONTRIBUTING.rst:69 16faae905af04224adbc24373e4638b6 +msgid "To launch containers, use:" +msgstr "" + +#: ../../CONTRIBUTING.rst:84 5ade389862524550a35a0eeb916d1997 +msgid "Local environment" +msgstr "" + +#: ../../CONTRIBUTING.rst:98 112bb71df28044c5ac80aad688c2e626 +msgid "" +"If you want to run the demo locally with the LDAP backend, you need to " +"have `OpenLDAP `_ installed on your system. It" +" is generally shipped under the ``slapd`` or ``openldap`` package name." +msgstr "" + +#: ../../CONTRIBUTING.rst:103 baa2b719fe074ed7b24161707a9c3ae5 +msgid "" +"On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be " +"restricted by apparmor, and thus makes the tests and the demo fail. This " +"can be mitigated by removing apparmor restrictions on `slapd`." +msgstr "" + +#: ../../CONTRIBUTING.rst:113 47f2c33951314a88983f4b9ba69c4859 +msgid "Populate the database" +msgstr "" + +#: ../../CONTRIBUTING.rst:115 0b3c84f80f704c37b09ef3777c9a455b +msgid "" +"The demo database comes populated with some random users and groups. If " +"you need more, you can generate users and groups with the ``populate`` " +"command:" +msgstr "" + +#: ../../CONTRIBUTING.rst:126 417b21826b5a42d0b6a96b0189e048db +msgid "" +"Adapt to use either the `ldap` or the `sql` configuration file. Note that" +" this will not work with the memory backend." +msgstr "" + +#: ../../CONTRIBUTING.rst:129 b65a089d8c04494897e62def00c3e8d0 +msgid "Unit tests" +msgstr "" + +#: ../../CONTRIBUTING.rst:131 4c0a14a03a96497b976695bb31de269a +msgid "" +"To run the tests, you just can run `uv run pytest` and/or `uv run tox` to" +" test all the supported python environments. Everything must be green " +"before patches get merged." +msgstr "" + +#: ../../CONTRIBUTING.rst:134 bbc93760dbce46ed81fac989a27dffbe +msgid "" +"To test a specific backend you can pass ``--backend memory``, ``--backend" +" sql`` or ``--backend ldap`` to pytest and tox." +msgstr "" + +#: ../../CONTRIBUTING.rst:136 5d65f7f964fe4749af55ea833170718d +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:141 00c8610b432d42279b50f4886592ca4d +msgid "Code style" +msgstr "" + +#: ../../CONTRIBUTING.rst:143 065cd1c8fe3248cfa39fdbd5ddc971a6 +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:149 b3c1556e731a47fb849c8241222bd055 +msgid "Front" +msgstr "" + +#: ../../CONTRIBUTING.rst:151 b1a19093596c40bb8f8f2135549d1e09 +msgid "" +"The interface is built upon the `Fomantic UI `_" +" CSS framework. The dynamical parts of the interface use `htmx " +"`_." +msgstr "" + +#: ../../CONTRIBUTING.rst:154 f869aeed650d483089c231afb5bbf53b +msgid "" +"Using Javascript in the interface is tolerated, but the whole website " +"MUST be accessible for browsers without Javascript support, and without " +"any feature loss." +msgstr "" + +#: ../../CONTRIBUTING.rst:156 a5dd1b880eff47448537cc901ee9e805 +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 "" + +#: ../../CONTRIBUTING.rst:161 ../index.rst:70 41500af8731e4ba89744089904b7c0dc +#: b913aeba1ad5474fb1e44c894a5bfa90 +msgid "Documentation" +msgstr "" + +#: ../../CONTRIBUTING.rst:163 a1e7ca49e6ba469f808cea47212aaad1 +msgid "The documentation is generated when the tests run:" +msgstr "" + +#: ../../CONTRIBUTING.rst:169 5d14700fab344aac97b45d2355edd8cb +msgid "" +"You can also run sphinx by hand, that should be faster since it avoids " +"the tox environment initialization:" +msgstr "" + +#: ../../CONTRIBUTING.rst:175 281ffc8c56eb44a6902c1e433a2f06c1 +msgid "The generated documentation is located at ``build/sphinx/html``." +msgstr "" + +#: ../../CONTRIBUTING.rst:178 84d2b6e65e9844bba85242b5a1dbde0d +msgid "Code translation" +msgstr "" + +#: ../../canaille/translations/README.rst:1 17e0507823c7454aa4685f731f4a6a39 +msgid "" +"Translations are done with `Weblate " +"`_." +msgstr "" + +#: ../../canaille/translations/README.rst:3 98859d4a4cfb4e1099d9e41e0c0dc7ad +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 "" + +#: ../../canaille/translations/README.rst:8 8feb9440d14b454e81ddf182624d1e11 +#: 98940c0798314aa780b5900389189be1 da9cbe0a91494687be53577e7ba0858b +#: readme.rst:7 +msgid "Message extraction" +msgstr "" + +#: ../../canaille/translations/README.rst:10 614744bdefa745f28730c40f989b7991 +#: f4203275c2e54c12936bf1a4b21abeef f6d23bb322dc4bd3a41ec61872b946d9 +#: readme.rst:9 +msgid "" +"After you have edited translatable strings, you should extract the " +"messages with:" +msgstr "" + +#: ../../canaille/translations/README.rst:17 7a3f0bdd22e14dca8142ecd0c54feae1 +#: 896afe4ce83d4752adae753409df8c33 d7b7d615e7624c7684b03f1a25460740 +#: readme.rst:16 +msgid "Language addition" +msgstr "" + +#: ../../canaille/translations/README.rst:19 24fa92b04b464da48e956b12869393b2 +#: 84be22f280a940ec9b76a9b71946e086 ac14b64d752d4a0abe2546b275ff10d0 +#: readme.rst:18 +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 af0d8d1b10944e9db96f3f4cefee66fb +msgid "Catalog update" +msgstr "" + +#: ../../canaille/translations/README.rst:28 b5475c2944234984b620d6d91f8a2221 +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 eeb2fd4d30b74eb4bcd9d441fa01605f +msgid "Catalog compilation" +msgstr "" + +#: ../../canaille/translations/README.rst:38 36c99b1985b547079944012018f0eb07 +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:184 c074b1f74e174501a3f82e2f736a4a1d +msgid "Documentation translation" +msgstr "" + +#: 244b268047014a85b0176ab1c8faf3a6 ade9f769db9e4cc9a997baaf4373a2ed +#: readme.rst:1 +msgid "" +"Documentation translation Translations are done with `Weblate " +"`_." +msgstr "" + +#: 38e647d5a9464b878efff0dc35b0f653 440db8cf5e02467e9855c9851fbbf21e +#: readme.rst:4 +msgid "" +"The following commands are there as documentation, only the message " +"extraction and the language addition is needed for contributors." +msgstr "" + +#: 831101c27e9c44c3a3b18a9ac292e1f3 be0097273ba54257ba9fb2f693f2634b +#: readme.rst:25 +msgid "Build the documentation in another language" +msgstr "" + +#: ../../CONTRIBUTING.rst:189 9291446656944a00b33c9fbdf1114940 +msgid "Publish a new release" +msgstr "" + +#: ../../CONTRIBUTING.rst:191 075d9467ced14c0ea318dc63f97a5dbf +msgid "" +"Check that dependencies are up to date with ``uv sync --all-extras " +"--upgrade`` and update dependencies accordingly in separated commits;" +msgstr "" + +#: ../../CONTRIBUTING.rst:192 e686349f49f841c78d74268faeb196a9 +msgid "" +"Check that tests are still green for every supported python version, and " +"that coverage is still at 100%, by running ``uv run tox``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:193 3cf6b2ec316847b58530da654eda9540 +msgid "" +"Check that the demo environments are still working, both the local and " +"the Docker one;" +msgstr "" + +#: ../../CONTRIBUTING.rst:194 173fc656e33848fd88eadf5bb585f2ae +msgid "" +"Check that the :ref:`development/changelog:Release notes` section is " +"correctly filled up;" +msgstr "" + +#: ../../CONTRIBUTING.rst:195 d675a44fa1c243e8833393195118b668 +msgid "Increase the version number in ``pyproject.toml``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:196 a370194bde174420b1624bea7fc03740 +msgid "Commit with ``git commit``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:197 38fdd454db454cc09194cdcb7eec0800 +msgid "Build with ``uv build``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:198 56d61d64dbd34871b51373eff47f1c17 +msgid "" +"Publish on test PyPI with ``uv publish --publish-url " +"https://test.pypi.org/legacy/``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:199 e5e02aeb2f9f427aabdb97e641225d4b +msgid "" +"Install the test package somewhere with ``pip install --extra-index-url " +"https://test.pypi.org/simple --upgrade canaille``. Check that everything " +"looks fine;" +msgstr "" + +#: ../../CONTRIBUTING.rst:200 1f8fb7fc4f584453a55bc4ca71d6df58 +msgid "Publish on production PyPI ``uv publish``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:201 23a34ce733234745bbf20e30bc019787 +msgid "Tag the commit with ``git tag XX.YY.ZZ``;" +msgstr "" + +#: ../../CONTRIBUTING.rst:202 da5c48d7b95249ed9a1e27daadebda82 +msgid "" +"Push the release commit and the new tag on the repository with ``git push" +" --tags``." +msgstr "" + +#: ../development/index.rst:2 5805b71daf2c4d62b7a12e73891ac186 +msgid "Development" +msgstr "" + +#: ../development/specifications.rst:2 541a33a86701416aa6f6de99fa89a89f +msgid "Specifications" +msgstr "" + +#: ../development/specifications.rst:4 67840439174a4881931bc037fde8743c +msgid "" +"This page details which specifications are implemented in Canaille, and " +"compares Canaille with other well-known identity providers." +msgstr "" + +#: ../development/specifications.rst:7 b4abbced46ae4d8a8b1c472b3136cf39 +msgid "State of the specs in Canaille" +msgstr "" + +#: ../development/specifications.rst:10 9a3397cff55841c19b9a57f7dfd88bcb +msgid "OAuth2" +msgstr "" + +#: ../development/specifications.rst:12 982fce2fb6334d98bbbc81472971a405 +msgid "✅ `RFC6749: OAuth 2.0 Framework `_" +msgstr "" + +#: ../development/specifications.rst:13 9c699279ecc14e5bb9d9f48e5710a9db +msgid "" +"✅ `RFC6750: OAuth 2.0 Bearer Tokens " +"`_" +msgstr "" + +#: ../development/specifications.rst:14 f3f197758b264989884d266347d3ba8a +msgid "" +"✅ `RFC7009: OAuth 2.0 Token Revocation " +"`_" +msgstr "" + +#: ../development/specifications.rst:15 f6956483bbeb4f35945627f5724bfc5c +msgid "" +"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and " +"Authorization Grants `_" +msgstr "" + +#: ../development/specifications.rst:16 e42ed4cd37bb4409bcf1fe7871137dc1 +msgid "" +"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol " +"`_" +msgstr "" + +#: ../development/specifications.rst:17 be51ea22e68546c1a12b9dfa63a731ba +msgid "" +"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol " +"`_" +msgstr "" + +#: ../development/specifications.rst:18 6c9ec9a5a87e4bdd96fff518d06e787e +msgid "" +"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients " +"`_" +msgstr "" + +#: ../development/specifications.rst:19 9047e9898e4b49f98ce261d0a2fb4cbd +msgid "" +"✅ `RFC7662: OAuth 2.0 Token Introspection " +"`_" +msgstr "" + +#: ../development/specifications.rst:20 40f87de1a5224a99909a3218cd9fa4ab +msgid "" +"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata " +"`_" +msgstr "" + +#: ../development/specifications.rst:21 810495f0829a4909997a3568b09009f3 +msgid "" +"❌ `RFC8428: OAuth 2.0 Device Authorization Grant " +"`_" +msgstr "" + +#: ../development/specifications.rst:22 6e3b1b1a7e334b53b5433b0bbdd964be +msgid "" +"❌ `RFC8693: OAuth 2.0 Token Exchange " +"`_" +msgstr "" + +#: ../development/specifications.rst:23 f63df281155c46e7b0ccb4d295b26afa +msgid "" +"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-" +"Bound Access Tokens `_" +msgstr "" + +#: ../development/specifications.rst:24 f7f1714cd1fd4ebc8da4adcba61204bf +msgid "" +"❌ `RFC8707: Resource Indicators for OAuth 2.0 " +"`_" +msgstr "" + +#: ../development/specifications.rst:25 4c81ff0463f0459bb59988673f95ec7b +msgid "" +"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens " +"`_" +msgstr "" + +#: ../development/specifications.rst:26 d99715c092aa45368ee02279cb881b8c +msgid "" +"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) " +"`_" +msgstr "" + +#: ../development/specifications.rst:27 db841cabe8574440a5bd327392eae3ce +msgid "" +"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests " +"`_" +msgstr "" + +#: ../development/specifications.rst:28 6089cd66288f469aad49dcb633c9ad8d +msgid "" +"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification " +"`_" +msgstr "" + +#: ../development/specifications.rst:29 bdcb5633d457472b9bfa4c20911cbe8e +msgid "" +"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests `_" +msgstr "" + +#: ../development/specifications.rst:30 0733f63579444ccfb93581ec894cb572 +msgid "" +"❌ `OAuth2 Multiple Response Types `_" +msgstr "" + +#: ../development/specifications.rst:31 2d58df0df7db40e78e17bcb7f2491b42 +msgid "" +"❌ `OAuth2 Form Post Response Mode `_" +msgstr "" + +#: ../development/specifications.rst:34 ../features.rst:209 +#: 0a20707e101e45afa3f82b62af246323 2f59334003324960bba9d54c9f47216e +msgid "OpenID Connect" +msgstr "" + +#: ../development/specifications.rst:36 b40621335ff74dc9836d2c995a088af3 +msgid "" +"✅ `OpenID Connect Core `_" +msgstr "" + +#: ../development/specifications.rst:37 5925bd07cffb47c788e8a75d56483c6d +msgid "" +"✅ `OpenID Connect Discovery `_" +msgstr "" + +#: ../development/specifications.rst:38 12e8166baefa44a98f2b795f408704f8 +msgid "" +"✅ `OpenID Connect Dynamic Client Registration `_" +msgstr "" + +#: ../development/specifications.rst:39 56b5e2a3193d449f9a061e3899d91992 +msgid "" +"✅ `OpenID Connect RP Initiated Logout `_" +msgstr "" + +#: ../development/specifications.rst:40 906f18b7ff604da3ae72feade553ef4a +msgid "" +"❌ `OpenID Connect Session Management `_" +msgstr "" + +#: ../development/specifications.rst:41 1c16150e6322426fb3155ecbf92125fd +msgid "" +"❌ `OpenID Connect Front Channel Logout `_" +msgstr "" + +#: ../development/specifications.rst:42 d42d494526544c7586ed231bb9e393aa +msgid "" +"❌ `OpenID Connect Back Channel Logout `_" +msgstr "" + +#: ../development/specifications.rst:43 6461e3cb0d0b4256ad5d94fdfa2cc155 +msgid "" +"❌ `OpenID Connect Back Channel Authentication Flow " +"`_" +msgstr "" + +#: ../development/specifications.rst:44 68291985376c4a6db9c3ab6a46033253 +msgid "" +"❌ `OpenID Connect Core Error Code unmet_authentication_requirements " +"`_" +msgstr "" + +#: ../development/specifications.rst:45 a2240ab89c4f44b797b79e3d30c90abf +msgid "" +"✅ `Initiating User Registration via OpenID Connect 1.0 " +"`_" +msgstr "" + +#: ../development/specifications.rst:48 ../development/specifications.rst:64 +#: 8cf876840eef4f91837d07a3eb9405e8 a37c085fe15b465493dc56abef81e060 +msgid "SCIM" +msgstr "" + +#: ../development/specifications.rst:50 0be32dfe41d8496896234e5ff032ba40 +msgid "" +"❌ `RFC7642: System for Cross-domain Identity Management: Definitions, " +"Overview, Concepts, and Requirements `_" +msgstr "" + +#: ../development/specifications.rst:51 bee2f7d338c8450cb90adcf9c9f9281e +msgid "" +"❌ `RFC7643: System for Cross-domain Identity Management: Core Schema " +"`_" +msgstr "" + +#: ../development/specifications.rst:52 6f91f5ed607e4cf39c2a8314400a2ee7 +msgid "" +"❌ `RFC7644: System for Cross-domain Identity Management: Protocol " +"`_" +msgstr "" + +#: ../development/specifications.rst:55 78ff63eb07e14723b41c4ca485b5fe13 +msgid "Comparison with other providers" +msgstr "" + +#: ../development/specifications.rst:57 772e1ea09b8340ee907752a6904b8cb8 +msgid "Here is a feature comparison with other OpenID Connect server software." +msgstr "" + +#: ../development/specifications.rst:59 dee0ee93785246d6bc5cb709cfaf1969 +msgid "" +"Canaille voluntarily only implements the OpenID Connect protocol to keep " +"its codebase simple." +msgstr "" + +#: ../development/specifications.rst:62 74858f3ddf8e4ae6a176fefccdf473fb +msgid "Software" +msgstr "" + +#: ../development/specifications.rst:62 ba941f5487be4fb4a13f2d875f26777a +msgid "Project" +msgstr "" + +#: ../development/specifications.rst:62 2c0a3b118a2e4a94a5c056e36a49ce50 +msgid "Protocols implementations" +msgstr "" + +#: ../development/specifications.rst:64 af3e8056a72344e3ac2aac9c686c08fc +msgid "FLOSS" +msgstr "" + +#: ../development/specifications.rst:64 f0ea1551608e45c8b959de23db5fb272 +msgid "Language" +msgstr "" + +#: ../development/specifications.rst:64 16ed291530bb4083b085a20a1e3f3362 +msgid "LOC" +msgstr "" + +#: ../development/specifications.rst:64 b9aba1af73ba42588efc6ca3124c3dea +msgid "OIDC" +msgstr "" + +#: ../development/specifications.rst:64 212283f1dc3b4f22a78d9f971c0af2cd +msgid "SAML" +msgstr "" + +#: ../development/specifications.rst:64 1fc558c88ce84195bb750b6c123f7a77 +msgid "CAS" +msgstr "" + +#: ../development/specifications.rst:64 ../tutorial/databases.rst:32 +#: 1ceef2c6fccc4464b60a6c5337c1cd4f f3c208b0013342d4ba7fbbda4b19b2fa +msgid "LDAP" +msgstr "" + +#: ../development/specifications.rst:64 ../tutorial/databases.rst:16 +#: 7945ca3b0a7949a6a6a3a4ef16a7eab2 c74ad1da8a0842e6be8402df2dd18a31 +msgid "SQL" +msgstr "" + +#: ../development/specifications.rst:66 cbf6e8ae235146018da50b0114e86455 +msgid "Canaille" +msgstr "" + +#: ../development/specifications.rst:66 ../development/specifications.rst:68 +#: ../development/specifications.rst:70 ../development/specifications.rst:72 +#: ../development/specifications.rst:74 ../development/specifications.rst:76 +#: ../development/specifications.rst:78 ../development/specifications.rst:80 +#: ../development/specifications.rst:82 ../development/specifications.rst:84 +#: ../development/specifications.rst:86 ../development/specifications.rst:88 +#: 0253cd2fe1324ddb948bd137e519f25b 070fdfaadf054697b41ed39126fabe32 +#: 07997ea45fed41529c2661ca8c161c3b 08eed524f5304d86bb24c89ab0fe8807 +#: 0b399aa7b19e4bccba7876a778dfaccb 0d53b1d0888f48c0a763e67a137bfc77 +#: 1a97db98eaea41888169721b95e3a886 1e89e5fdc9c34ef288f1e0360118495b +#: 2211ccf419b7434793ecdbd27bf26e97 2f36d181cc6f47b9aea3f96b450809eb +#: 34abe08c17954ce1b3d4b1da442aa8f7 37d0a8ee8a2f4eafa2859641a6dc0980 +#: 38a888c2d1c549f7bb6783e081b81416 38e06b09967246ba8cb5a1ada12bb166 +#: 393612fe9a3f4bbc8bca2d652979dcb3 40df4a5e0f4c4368b0415d35adf52e4b +#: 41fb6ced67fa417a98a80584e517571d 4215050f8a22420ba19f21acbed88833 +#: 435444825399405e94dd7183b949f5fc 4fdd524e3fbe47408fcb4f52c445e239 +#: 50f1e55288bd48f1af7433da3f1d54e6 545841fc65b94e6aa84ada7e8511bd02 +#: 56b16b5ae3ab4d7c85755a05008086ff 582fda38e83e4443bb8aa7f6685b5ab7 +#: 5ecdc4755da348cb94e4b70855703843 610cdec2e1154438a7747ffd7735b566 +#: 6933615888f646bdb1673f8f3b84ec0a 6f8d532996b643b899c7cd09bc9b6b74 +#: 70b52c3e7e844018bf36c4b751d9016a 79ba7ced015548468833c8911ef1bdb6 +#: 7eb0d20fbf7c4d65b3ba750aa3394a2e 806372aabbb14464930fe2246de1c609 +#: 8f4dd9278b6c4b1ca9d7dc1c2e566a59 94569393487a4b72bc67d0dd07cabb38 +#: 961891453d6e4fc99e9506c207a8b098 9640138d1a96401bad19b354f6fd9e7d +#: 989d885a2efb40deb3ad0a5f78a1b6d1 9e9a94718e7648658847d06dadfa8a55 +#: a00b4327bed6464588d29d2a0ea4f673 a245e2fb5a4d438fac669915f0f671ca +#: a29eb7d6aa8f451ba1a3513983821102 a4d6cadb72fd4b80a15f112edb394810 +#: a4d6dbf940c84ffda8daf7cce8c24415 a58510175a1045199e968b4805952548 +#: a696235fdb1a4a56a2c7eea1895ba684 a70652161ef1405cb55c5d6aa1415ae7 +#: aaf704f11a6a498eb0e005dfb7e1262f b433b602f0054b3991e0301fb2b67f33 +#: b7cbb88134a243dba4be4a5c09cf37e3 bfc4e623a0684e6598e9413702bd45c8 +#: c04b57739c564f68bda88094930d8cbc c80d88c4a6e04153a25389043fe8a712 +#: cdca6833a8524c83ad2ebc80d0e42db9 d0a52c0e66db4e55a54123132630d181 +#: d6b2a74aba90481fa6b0ce3af68a836a dabb11444a81435ea4eaa8955a10cc1e +#: dca9af08ed434f06809a8638aad8d561 e200ca9d0acf461299c6b23179bdfe7d +#: e2391b0c105b40f39bf01a41cc81fcae e3406ed721054ee68b01e898497c29c7 +#: e9a66b5cd10448ee891d2c05dfc75684 f4b7ba2f313f482eb179f511c435101e +#: f81d7912337944ac8fa4c93af71266dd +msgid "✅" +msgstr "" + +#: ../development/specifications.rst:66 ../development/specifications.rst:72 +#: ../development/specifications.rst:74 67342b37165d46be81d107ecfc38aa2b +#: 6a530e4336fc4290900ca0c39a17a53c 7c487169b35c4737ba5d1d77d47e1b18 +msgid "Python" +msgstr "" + +#: ../development/specifications.rst:66 4d3726bbaeeb43a29a12235898727667 +msgid "10k" +msgstr "" + +#: ../development/specifications.rst:66 ../development/specifications.rst:68 +#: ../development/specifications.rst:70 ../development/specifications.rst:72 +#: ../development/specifications.rst:74 ../development/specifications.rst:76 +#: ../development/specifications.rst:78 ../development/specifications.rst:82 +#: ../development/specifications.rst:86 ../development/specifications.rst:88 +#: 228b07d3191142a496e67819b35c600b 2d8217d4097c4ac8adac64b895ae33b2 +#: 4ef1da3636bb4c35bb7aeb289a5db48c 5436f07dce5c4c008e1066a384cf8f1a +#: 5823d390106f476ab3690d34b49ad05f 64662a1e93e7406ebc5a108f04f43a74 +#: 6b26f147fdfa45c9aac7f6bc8add7138 741fcf98b5d946d4ba107d6b5c7f246b +#: 83399675c77c4f41aee741a10312bd56 89cc6cda082b4025bb1d051f8fb8bbb0 +#: 8dfd4eb9b6334beaba470bc878bd06d2 a0d411055e1b466384c97be328c53777 +#: abaa385107d44946ad61332cb6fa1d12 af47b038140b4b37ac29615fe00cee92 +#: cc6b3813a41242d98e45acfbf5ca5c33 d9e1f9eb30244b29bf391b0d43e300e2 +#: e2529fb8470441b29c8b597bb73baae6 ecdbfc3910de4714bd0a77b9d6213e2a +#: f3bd14a9b3d847018b0ddb16c031a737 +msgid "❌" +msgstr "" + +#: ../development/specifications.rst:68 7f36d1d9dc62465d9eb255f75eba6398 +msgid "`Auth0`_" +msgstr "" + +#: ../development/specifications.rst:68 ../development/specifications.rst:78 +#: ../development/specifications.rst:80 ../development/specifications.rst:88 +#: 0155612f74b44f23bfd8267127d92d67 0f895c01b3ba4cb6818f1fc12bccda20 +#: 32e7c6db6c1b4de59f59376cf4176f63 599a5bd1bcec4bffbd532d872ce522b3 +#: 5ff33d26530e4037b70aa52c9e155b37 9336d1dc31c0499ab54d6b4f61626c42 +#: b4fbad82bf084f42885d17fcb98a1b7f b8031c3236a9445c906feba92cc228b7 +#: e65014a6ac324aeb80c7382e9aa70fb1 +msgid "❔" +msgstr "" + +#: ../development/specifications.rst:70 e0fe771a1a044537ad3204bc346e5a65 +msgid "`Authelia`_" +msgstr "" + +#: ../development/specifications.rst:70 ../development/specifications.rst:82 +#: 4abb4f1183884001acc006d82f3acd68 ca8775c15a854aa29d2dbbe4d9d34279 +msgid "Go" +msgstr "" + +#: ../development/specifications.rst:70 ../development/specifications.rst:82 +#: 7df3b4133c77418b895fb20d7e18d810 94e079211f604613a0ae5454e10c5a77 +msgid "50k" +msgstr "" + +#: ../development/specifications.rst:72 9a9137c2f96740fa9c67fccc54a07f7c +msgid "`Authentic2`_" +msgstr "" + +#: ../development/specifications.rst:72 fd0d5d325a434c698577c90859e43eea +msgid "65k" +msgstr "" + +#: ../development/specifications.rst:74 cd260a7f246a432f957288beacf88feb +msgid "`Authentik`_" +msgstr "" + +#: ../development/specifications.rst:74 e04f9a501a4d4d19843fb02dc5d3b5d0 +msgid "55k" +msgstr "" + +#: ../development/specifications.rst:76 4af38869fe9248bbb8a8356c71a0fe04 +msgid "`CAS`_" +msgstr "" + +#: ../development/specifications.rst:76 ../development/specifications.rst:80 +#: ../development/specifications.rst:84 6424b80dfa3e453496467c6bf19860b6 +#: 7099b6c2f67e4a53bda8973393a4cc09 999917716d4a428abf0d2fa39c685ef0 +msgid "Java" +msgstr "" + +#: ../development/specifications.rst:76 8c53682aa6de4d97af8484288f105f75 +msgid "360k" +msgstr "" + +#: ../development/specifications.rst:78 f034219704a64e408fb8a35fdf7d0f9e +msgid "`Connect2id`_" +msgstr "" + +#: ../development/specifications.rst:80 28eabbd3498447c7bf1b686b9df5eec1 +msgid "`Gluu`_" +msgstr "" + +#: ../development/specifications.rst:82 18179359c90c4306bd88fad4381c30ac +msgid "`Hydra`_" +msgstr "" + +#: ../development/specifications.rst:84 bba652cb185946eba8c8c783379eb27d +msgid "`Keycloak`_" +msgstr "" + +#: ../development/specifications.rst:84 34ce6f8d73014ac797e8f4038cde782f +msgid "600k" +msgstr "" + +#: ../development/specifications.rst:86 c4d8ef8479c74f0ba8014615a03b11bf +msgid "`LemonLDAP`_" +msgstr "" + +#: ../development/specifications.rst:86 8c2121ada16f4a35a2b4420dc0677205 +msgid "Perl" +msgstr "" + +#: ../development/specifications.rst:86 3464b118737442fd84b78b8250b4a41e +msgid "130k" +msgstr "" + +#: ../development/specifications.rst:88 0cfdb98c1ffe40ce8cbc11407ba449f3 +msgid "`Okta`_" +msgstr "" + +#: ../features.rst:9 8c6f27a19b0143e3a3f73f26be2fdad1 +msgid "Features" +msgstr "" + +#: ../features.rst:11 f01fce00043842a8861a13cdea47d9bb +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 e4cb789716264a95b49940e09a0f1ed8 +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 8e5eabb163034aa9b0dbca7607ad12b7 +msgid "Web interface" +msgstr "" + +#: ../features.rst:21 097fd226627540eda62043b78e47d2f2 +msgid "" +"Canaille web interface can be used either in :doc:`production " +"environments ` or locally for development purposes." +msgstr "" + +#: ../features.rst:26 ../index.rst:27 011f08b4e11e4d63840a7387215410f3 +#: a626b8cba7e647c5ac789006e1c0fe4b +msgid "Profile management" +msgstr "" + +#: ../features.rst:28 ../features.rst:217 0378e1a22862405b9b1b019b5dca8866 +#: ebc71d5ce73c45ed98c8fd852dbc6641 +msgid "Profile" +msgstr "" + +#: ../features.rst:33 1ef57a6d2c9a4236bc9289554bf8ccf1 +msgid "Canaille provides an interface to manage user profiles." +msgstr "" + +#: ../features.rst:35 7f324ac6e3444aa2ad9e122e8bb42efe +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:37 215efc9273a74fcbb4e2659609001c6a +msgid "" +"Depending on their ACL :class:`permissions " +"`, users can either be allowed to" +" edit their own profile, edit any user profile, or do nothing at all." +msgstr "" + +#: ../features.rst:42 d5487afaa4c848c8bb7c9bd24d81bb96 +msgid "Email confirmation" +msgstr "" + +#: ../features.rst:44 33292ee96e984fbeb2093fa92d7d3575 +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:46 ef14f974e7ff4e1296f90b0b8bc0e157 +msgid "" +"Users with :attr:`user management permission " +"` can set user " +"emails without confirmation though." +msgstr "" + +#: ../features.rst:51 db83f0da80b04e81aa15c4fa11425422 +msgid "Group management" +msgstr "" + +#: ../features.rst:53 ../features.rst:140 e3dc5ad68c594a948a78ab36d9d8e316 +#: fa6296be5a994444a4df23ad4ea9565c +msgid "Group edition" +msgstr "" + +#: ../features.rst:58 82b3c76e2b374f8ebdfdedab4226c025 +msgid "" +"In a similar fashion than :ref:`profile management " +"` Canaille provides an interface to manage " +"user groups." +msgstr "" + +#: ../features.rst:60 dfabecd9ab43469fb3849f1e7c35daf9 +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 "" + +#: ../features.rst:63 ../features.rst:83 ../features.rst:149 +#: ../tutorial/deployment.rst:13 38137b6c7d5c491c820ea1dfc8756344 +#: 4578f8d000284fe9b6f75541820b3496 92de75de0184485bb56f811648d3f99e +#: c2f67f4d44754b0aa9c78c106b1ca6ae +msgid "Todo" +msgstr "" + +#: ../features.rst:64 0e2be121eec5421c936dac23c0f1a7df +msgid "" +"At the moment adding an user to a group can only be achieved by the user " +"settings page, but we are :issue:`working to improve this <192>`." +msgstr "" + +#: ../features.rst:66 2b5e85bbb5c54361a1b5552ac23fb86a +msgid "" +"Group management can be enable with a :attr:`dedicated user permission " +"`." +msgstr "" + +#: ../features.rst:69 66b65881cc3a4405bbe68bb6aaf40062 +msgid "" +"Due to limitations in the :ref:`LDAP backend `, " +"groups must have at least one member. Thus it is not possible to remove " +"the last user of a group without removing the group." +msgstr "" + +#: ../features.rst:75 ../index.rst:34 ae1b08e44f984e5c9ac45e11ba77ada3 +#: ea71d79aa29e4fe39fa0d3bf14f54543 +msgid "User authentication" +msgstr "" + +#: ../features.rst:77 8e696875cf8a453ea0a28a52658a661d +msgid "" +"Unless their account is :ref:`locked `, users " +"can authenticate with a login and a password." +msgstr "" + +#: ../features.rst:81 fcee840ee53749b89b6d8262aa8fa8b0 +msgid "" +"For security reasons, it won't be told to users if they try to sign in " +"with an unexisting logging, unless explicitly :attr:`set in the " +"configuration " +"`." +msgstr "" + +#: ../features.rst:83 c3c47dc180fb481d8da68e9b4604e880 +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:88 594eabf009f7494db771fa08fb9db18c +msgid "User registration" +msgstr "" + +#: ../features.rst:90 2f550e9df3914b9082e3826b0e5a810e +msgid "" +"Users can create accounts on Canaille if the feature :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:92 2f4667bbe5da4680b68ab9f03422fa9a +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:97 ../features.rst:99 5540b138288a46928a7e15b8cd620fce +#: df01264bb889437e823a16dc82e5f041 +msgid "User invitation" +msgstr "" + +#: ../features.rst:104 ba8f14356d2f47e8a8c4f5770706f033 +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:106 15b51c64dd944a64ad31b262dcbee7f1 +msgid "" +"The link goes to a registration form, even if regular :ref:`user " +"registration ` is disabled." +msgstr "" + +#: ../features.rst:108 e315be38469c4f67a7e34b66d8528ace +msgid "It can be automatically sent by email to the new user." +msgstr "" + +#: ../features.rst:113 622f876f79ee44d2a2d17656d798701c +msgid "Account locking" +msgstr "" + +#: ../features.rst:115 6cbed0d1e1c1450c97c3e29b0ce6fe4c +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:118 e04a870ae8a94a8c8bf374ccde99aef5 +msgid "At the moment a user account is locked:" +msgstr "" + +#: ../features.rst:120 c5860585c6584cd395cdd61d21bdbdac +msgid "their open sessions will be closed;" +msgstr "" + +#: ../features.rst:121 41f560bb4b5645b89f131bc3e98f5be2 +msgid "they won't be able to sign in again;" +msgstr "" + +#: ../features.rst:122 c0f7c52078d24a1dad56ea0129a363e0 +msgid "no new OIDC token will be issued;" +msgstr "" + +#: ../features.rst:124 3fa952b37fa9400b886a8c28ced2c511 +msgid "" +"User accounts must be manually unlocked by an administrator for the users" +" to regain access to those actions." +msgstr "" + +#: ../features.rst:129 29c5e463d73c4fcaa0fa9a7545c2d002 +msgid "Account deletion" +msgstr "" + +#: ../features.rst:131 7333ea043bdb40c59b9ea021e9dd93c8 +msgid "" +"Users with the :attr:`account deletion permission " +"` are allowed to " +"delete their own account." +msgstr "" + +#: ../features.rst:133 7abe455f5058498d869a4d1126722af9 +msgid "" +"Users that also have the :attr:`user management permission " +"` are also allowed " +"to delete other users accounts." +msgstr "" + +#: ../features.rst:138 c623f83c5d3b4188a139dd7fa6afb522 +msgid "Password recovery" +msgstr "" + +#: ../features.rst:145 9e5c9c5910e64abd9053787f7af4ffbe +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:147 b04d879c3804492ca480b798aea8206b +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:151 2bfa064b1d9f4f19bc06e9f3b4a49434 +msgid "Check that password recovery is disabled on locked accounts." +msgstr "" + +#: ../features.rst:156 749c0cd6b3e447728e0b5a7a32ecd5ae +msgid "Password reset" +msgstr "" + +#: ../features.rst:158 161c7f1759084b0fae25682fb68ee789 +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:164 b34780ff9a1d42408988b09c45e73790 +msgid "Password initialization" +msgstr "" + +#: ../features.rst:166 184926167dc149538673c832e5a6e8d9 +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:173 cda3572a37f547b2a399d22faceb6139 +msgid "Password compromission check" +msgstr "" + +#: ../features.rst:175 d4d014c8ebde4af2adec05ee77092d62 +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:180 e9d336f4732f46deb4b3d7c10bf0ecdc +msgid "Internationalization" +msgstr "" + +#: ../features.rst:182 d8f73db0cc4541f187532866889f1bbc +msgid "Translation state" +msgstr "" + +#: ../features.rst:187 6617c11399334a92a4ec4c23f1960786 +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:193 ac391969b7934df6946f47c3531db86c +msgid "Lightweight" +msgstr "" + +#: ../features.rst:195 3d8eedb8a1174eef906a45ac046a256e +msgid "" +"The web interface is lightweight, so everything should load quickly. " +"There is a few Javascript here and there to smooth the experience, but no" +" Javascript at all is needed to use Canaille." +msgstr "" + +#: ../features.rst:199 bec04e5daaa842cabc697ea10dd76741 +msgid "Customizable" +msgstr "" + +#: ../features.rst:201 9faca91f5eb54469a96e1addf8e1ad53 +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:204 47e5ba6df7b14fbcb2a228efc3977510 +msgid "" +"If you need more you can also use a :attr:`custom theme " +"`." +msgstr "" + +#: ../features.rst:211 8ebcdacd997a4f6b84d5a94ff12b375b +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:215 f5131ae01237415893ad7b82cad06eee +msgid "Consent management" +msgstr "" + +#: ../features.rst:223 5c1e30229f8342cca14a719154f13663 +msgid "" +"Users can give their consent to application requesting access to their " +"personal information, and then revoke those consent at their will." +msgstr "" + +#: ../features.rst:227 49cf0197632946e0b9075c7e2fdbd360 +msgid "Application management" +msgstr "" + +#: ../features.rst:229 8e68f1b6ed3d46d5aba2963cc622a2a4 +msgid "" +"Users with the right :attr:`permission " +"` can manager OIDC " +"clients through the web interface." +msgstr "" + +#: ../features.rst:231 0592389bab674f07a0841c1db605317e +msgid "" +"In some cases, it might be useful to avoid the consent page for some " +"trusted applications, so clients can be pre-consented." +msgstr "" + +#: ../features.rst:234 43de9225e8e64315852fa3be54e4e1ae +msgid "Discovery" +msgstr "" + +#: ../features.rst:236 afe8b4de53b149768ed3844fb31bfb5d +msgid "" +"Canaille implements the :doc:`Discovery specifications " +"` so most of the applications plugged to " +"Canaille can auto-configure themselves." +msgstr "" + +#: ../features.rst:239 8fd3c2f8a6b34c4bb1856c7f7b2456aa +msgid "Dynamic Client Registration" +msgstr "" + +#: ../features.rst:241 d654b7ab18ee4b248164694dccb45ee9 +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:246 ../references/commands.rst:2 +#: 133164d3d2ba4f248487892419a54e0c 5bea804e7c634bfd848fa6b3fd6595b1 +msgid "Command Line Interface" +msgstr "" + +#: ../features.rst:248 e45d846ca75e48c58dfff6446ceef41b +msgid "" +"Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " +"administrators in hosting and management." +msgstr "" + +#: ../features.rst:250 6df8b5ff51934b40b28b0eb330ca006a +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:253 9530a59b347148dc878bbf85fa3f1cbf +msgid "" +"There are also tools to :ref:`fill your database ` with " +"random objects, for tests purpose for instance." +msgstr "" + +#: ../features.rst:260 1efac35545954eb68349bded2786425b +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:264 3975534728f14201b516fc1a9b900f60 +msgid "Miscellaneous" +msgstr "" + +#: ../features.rst:269 14fb617a136148219dd7eba89d44ba2b +msgid "Logging" +msgstr "" + +#: ../features.rst:271 0369d49b2bed40719bebba61c5942191 +msgid "" +"Canaille writes :attr:`logs " +"` for every important " +"event happening, to help administrators understand what is going on and " +"debug funky situations." +msgstr "" + +#: ../features.rst:273 82ebb6275eaa49d493817762a000414c +msgid "" +"The following security events are logged with the tag [SECURITY] for easy" +" retrieval :" +msgstr "" + +#: ../features.rst:275 cdf706a41edf42e69c1822865f0f07d7 +msgid "Authentication attempt" +msgstr "" + +#: ../features.rst:276 9a83b47ae2bd458fb963330e0d0d66c2 +msgid "Password update" +msgstr "" + +#: ../features.rst:277 38789ff5c505446c879e10dd6cd1a454 +msgid "Email update" +msgstr "" + +#: ../features.rst:278 1f7d74cb372340f5acba36ef1401b163 +msgid "Forgotten password mail sent to user" +msgstr "" + +#: ../features.rst:279 b2734f0dd98e436484f4c1ca073bee72 +msgid "Token emission" +msgstr "" + +#: ../features.rst:280 2fc4d93991a947c884c2ea88df6cc198 +msgid "Token refresh" +msgstr "" + +#: ../features.rst:281 d4a0043ab3ea4f40934ed11bbc3bc529 +msgid "Token revokation" +msgstr "" + +#: ../features.rst:282 e3eb71ac04be4200bde8d2208314b110 +msgid "New consent given for client application" +msgstr "" + +#: ../features.rst:283 e0b4b7bc1b8d491b8c9e0a318523faf6 +msgid "Consent revokation" +msgstr "" + +#: ../features.rst:288 fc6769d46bd24576b571018b77c433c9 +msgid "A tool for your development and tests" +msgstr "" + +#: ../features.rst:290 5880d3d1142d427d94c6734b8281336b +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:292 6e7ddfd7b794434d8fc6c4d42e9f26f1 +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:294 50148b863e2e4e308ee5fb3fd687cf48 +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:297 0274ee651c5f490a92895314cc7cf60a +msgid "Roadmap" +msgstr "" + +#: ../features.rst:300 aa5ee9c8a58a4b6aa10835ff6dacd0c1 +msgid "Bêta version" +msgstr "" + +#: ../features.rst:302 b5f3738cf721475890fb246b0eacdf84 +msgid "" +"To go out of the current Alpha version we want to achieve the following " +"tasks:" +msgstr "" + +#: ../features.rst:304 8ff349dd7a4e40b0a89605752d03bf0a +msgid ":issue:`Configuration validation using pydantic <138>`" +msgstr "" + +#: ../features.rst:307 13f37196fd344e078d2054f1d29bed6f +msgid "Stable version" +msgstr "" + +#: ../features.rst:309 0204098590904172a9fa676986f8e0f9 +msgid "" +"Before we push Canaille in stable version we want to achieve the " +"following tasks:" +msgstr "" + +#: ../features.rst:312 0f1ac7382abb4404b122e637924dc261 +msgid "Security" +msgstr "" + +#: ../features.rst:314 48d9a102c5b146d09aa2b6c10ff73710 +msgid ":issue:`Password hashing configuration <175>`" +msgstr "" + +#: ../features.rst:315 cd5537e26bfd48769d3c1f5eef4cc658 +msgid ":issue:`Authentication logging policy <177>`" +msgstr "" + +#: ../features.rst:316 9e9ac7840ae34e08946b89db09c6b4a3 +msgid ":issue:`Intruder lockout <173>`" +msgstr "" + +#: ../features.rst:317 1d4d9a14d3e247fe89f095eb9e17b88f +msgid ":issue:`Password expiry policy <176>`" +msgstr "" + +#: ../features.rst:318 016578f2cb3942bfaded36aa36d92d19 +msgid ":issue:`Multi-factor authentication: Email <47>`" +msgstr "" + +#: ../features.rst:319 31407f025f9040d2be345b0b4f0d04c4 +msgid ":issue:`Multi-factor authentication: SMS <47>`" +msgstr "" + +#: ../features.rst:320 3080c691cd6a4e988b3a0c45c383f08e +msgid ":issue:`Multi-factor authentication: OTP <47>`" +msgstr "" + +#: ../features.rst:323 4cf1cd4b94fc4c809e874d7c1e1a92ba +msgid "Packaging" +msgstr "" + +#: ../features.rst:325 60e7a1ce1d2a4a3497d58ddb5597cabe +msgid ":issue:`Nix package <190>`" +msgstr "" + +#: ../features.rst:326 2e0a824bc6c541ff8c9e5933a853e846 +msgid ":issue:`Docker / OCI package <59>`" +msgstr "" + +#: ../features.rst:329 d450eec0b52144e799df185beb731b0c +msgid "And beyond" +msgstr "" + +#: ../features.rst:331 5b12f1e1eebc46a19e869d70adce3e2b +msgid ":issue:`OpenID Connect certification <182>`" +msgstr "" + +#: ../features.rst:332 72f4ad7970e84bd9bb1967004c12d872 +msgid ":issue:`SCIM support <116>`" +msgstr "" + +#: ../index.rst:15 9d15ef3adb8b43269f40f89704162113 +msgid "Lightweight Identity and Authorization Management" +msgstr "Serveur d’identité et d'autorisations ultra-léger" + +#: ../index.rst:19 63555539d7ac4fd5be29f7ba12d17380 +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 482f66603f0d4d13967a03fc501a0a09 +msgid "User profile and groups management, Basic permissions" +msgstr "" + +#: ../index.rst:38 a9ad6aad7cfa4964b08dcdcb5dca6e1f +msgid "" +"Authentication, registration, email confirmation, \"I forgot my " +"password\" emails" +msgstr "" + +#: ../index.rst:40 30091c4589b2418eb1c53d59451c665e +msgid "SSO" +msgstr "" + +#: ../index.rst:44 31751956680949df87d95d3ab9ec853a +msgid "OpenID Connect identity provider" +msgstr "" + +#: ../index.rst:46 7087c013714547e188dbc5914099ae87 +msgid "Multi-database support" +msgstr "" + +#: ../index.rst:50 f15cd7b2a3f94e528e072166239a594a +msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" +msgstr "" + +#: ../index.rst:52 28db56c2471f4c7fa5a662aa213554df +msgid "Customization" +msgstr "" + +#: ../index.rst:56 018795356807421c9a9b32532bb82f54 +msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" +msgstr "" + +#: ../index.rst:58 a0213d640faf44c0b73a7ad5a4eae0ba +msgid "Developers friendliness" +msgstr "" + +#: ../index.rst:62 d5b04a5b5a0347b2b0f56cf042f08caa +msgid "" +"Canaille can easily fit in your unit tests suite or in your Continuous " +"Integration." +msgstr "" + +#: ../index.rst:66 71700aadcf074eeea1dc33b6fa0a059f +msgid ":doc:`Full feature list `" +msgstr "" + +#: ../references/commands.rst:4 d805088752104171bfc1a0f9e85eaa9b +msgid "Canaille provide several commands to help administrator manage their data." +msgstr "" + +#: ../references/commands.rst:6 87f700343e984d5e8cb49e738ae4044e +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 fbc424f5325d4a19a935352888f29d01 +msgid "Test the configuration file." +msgstr "" + +#: ../../canaille 418ba385398646fd816f185a67ce8bd5 check:1 +msgid "" +"Attempt to reach the database and the SMTP server with the provided " +"credentials." +msgstr "" + +#: ../../canaille clean:1 e90ccaeb4b6944c5ab88355200ae294f +msgid "Remove expired tokens and authorization codes." +msgstr "" + +#: ../../canaille 2ec4bd237b8948aebcdf6c6bce095ab7 install:1 +msgid "Installs canaille elements from the configuration." +msgstr "" + +#: ../../canaille a095355bc54247cb818c953fb63169c4 install:1 +msgid "" +"For instance, depending on the configuration, this can generate OIDC keys" +" or install LDAP schemas." +msgstr "" + +#: ../../canaille a1d4993f2c76448c8dcddcc82f39e525 populate:1 +msgid "Populate the database with generated random data." +msgstr "" + +#: ../references/commands.rst 0563fd9db59544e08c7c7ab98765f774 +#: 103d0ae97c71407b885b9a27c34ef565 1c203a2874544ca1adef912f2797495b +#: 1e9bb0588956405b84291437b0ebd836 1f2230ba476f47a3b62222e86094ea81 +#: 335d1c72d63f40059afc88d0c509cd36 40493b4962c142629e6b898af6718ec1 +#: 4e6beac30d774a23bff25e656347334d 5aec26e8d4934e499f03163d0a8428a9 +#: 6a61086965b147438896840aea772f7c 7a58ba1f625346689fbc48b3fd5b738c +#: 8b7038ef01b44dd4b5366c2779e68409 8bc6ee432f204f69b5353ed9175e843e +#: 8d9591d2bbf9466abbdd0ebc2ee1ff0e a978e7c83a7e4b4ea8e3d82feef85196 +#: ae2b21fd71364723884392241f3f7d5e cc652d48991e4c229f22106de917297d +#: d993ea825ac64ddea72e50b37b04a93f fa4e54d423b048b5aca69258f18b6f5f +#: fc173744533e4dc189dc8f71cee2498e +msgid "Options" +msgstr "" + +#: ../../canaille db62c80da08a4081a31776270318923b populate:1 +msgid "Number of items to create" +msgstr "" + +#: ../../canaille b60de313ad704984b3690146652d0fc5 groups:1 populate +msgid "Populate the database with generated random groups." +msgstr "" + +#: ../../canaille cd7a8c9df804436db29c41ef21a53088 groups:1 populate +msgid "The maximum number of users that will randomly be affected in the group" +msgstr "" + +#: ../../canaille 44049a2cdda740ce9f01ec0442ab14f3 populate users:1 +msgid "Populate the database with generated random users." +msgstr "" + +#: ../../canaille 879cf6dbaeef4ece86ce21c77319c4a5 get:1 +msgid "Read information about models." +msgstr "" + +#: ../../canaille 1f0a65cef38d4eb88baf5b79eef1f673 get:1 +msgid "Options can be used to filter models::" +msgstr "" + +#: ../../canaille ab391b963923488d948397502e480ad4 get:1 +msgid "Displays the matching models in JSON format in the standard output." +msgstr "" + +#: ../../canaille 9002873a53184c2a98b41e33688149b1 authorizationcode:1 get +msgid "Search for authorizationcodes and display the matching models as JSON." +msgstr "" + +#: ../../canaille 437b69d46c7f4695ac925220f7a371f1 client:1 get +msgid "Search for clients and display the matching models as JSON." +msgstr "" + +#: ../../canaille 1c763bdcba4f43cea24ca9aacfbff3e0 consent:1 get +msgid "Search for consents and display the matching models as JSON." +msgstr "" + +#: ../../canaille 17df630c95b04c0886ccaf36c9193b21 get group:1 +msgid "Search for groups and display the matching models as JSON." +msgstr "" + +#: ../../canaille 7f17720ff40f42dd885d65fe9e8f59e2 get token:1 +msgid "Search for tokens and display the matching models as JSON." +msgstr "" + +#: ../../canaille a151d938028c4003bebb5fcbb52a27c7 get user:1 +msgid "Search for users and display the matching models as JSON." +msgstr "" + +#: ../../canaille 91aadcb20b32470a88032277831ae077 set:1 +msgid "Update models." +msgstr "" + +#: ../../canaille 90e11794fa3d4989afb3130e7cf30618 set:1 +msgid "The command takes an model ID and edit one or several attributes::" +msgstr "" + +#: ../../canaille 4cc584efd3974a3ea8b30293c3db2d18 set:1 +msgid "Displays the edited model in JSON format in the standard output." +msgstr "" + +#: ../../canaille 7a6ee7808f7a422093783368327042d3 authorizationcode:1 set +msgid "" +"Update a authorizationcode and display the edited model in JSON format in" +" the standard output." +msgstr "" + +#: ../../canaille 354ef9ea4a5341e3b874b16e532aef63 +#: 8aa17f992f704160aa8601cdd8237d98 authorizationcode:1 delete set +msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" +msgstr "" + +#: ../references/commands.rst 00feef5ec9de4e849cce7e1c0f50dd1f +#: 1735973cfa0e459fae305d56a9643932 22496b37c86f4aedb422d18935a6fc92 +#: 432eab1fd2864846893937d0c2da8094 4442ffe83e874250af0d8f80c973723f +#: 63ffd951c7cc4d618683b6d052abf6ec 700a076da8ad43a4836c710f7eda7935 +#: b72b40bd26424adf9f3665c82fb585f0 bb2354e8862a4ffb98313a479813e8e9 +#: d637f778575549a7b67f5b2d0877ab72 d8609a806ca041808309413fb078353f +#: f474780c65a44b5487f94be32b580bcc +msgid "Arguments" +msgstr "" + +#: ../../canaille 2b83caf4ac07464fabf44420ccf70d73 +#: 5db4ae73eb0048508019d5db38ea43ba 5ff4a396400b40458ba83bf83f979e4c +#: 684cf33f22ae44e8a7b20d277ce4c954 7cdb8114feb144ebbba85e051a84deff +#: 9eaf4d054b6a4d6691a92ba0db22f3c6 authorizationcode:1 +#: c81126aae20544fc836702561e7190da ca2baf5dcc224c9098355799ea5242a6 client:1 +#: consent:1 delete e0fd1547c43348d3a0f11cd017ae3006 +#: e4c2174472f5469c9135698f12ea9f2c f533de7094834bcfa36dbb888a270fc2 +#: f9d4b3c0c9ed410ebb6616ecc417e5db group:1 set token:1 user:1 +msgid "Required argument" +msgstr "" + +#: ../../canaille client:1 fb8df7363a174f388b11fd17dc83a482 set +msgid "" +"Update a client and display the edited model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 69f381cf8ac749f8a128d37a776db296 +#: 9d6d48ba12eb45d9add164c653d20a26 client:1 delete set +msgid "IDENTIFIER should be a client id or client_id" +msgstr "" + +#: ../../canaille 066941918e6b49cda8d88d3ccb4e1776 consent:1 set +msgid "" +"Update a consent and display the edited model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 3e13ccf6b92b4142a78bdce4c662a8dd +#: 6303724f2f8642fc8dbd189856fc9b6e consent:1 delete set +msgid "IDENTIFIER should be a consent id or consent_id" +msgstr "" + +#: ../../canaille 6da3f9d8b33a4cd192d9217aa5e6922f group:1 set +msgid "" +"Update a group and display the edited model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 1336819c19a94300bd98f00f3f785406 +#: 14fc59d743fe4246b7de3fd9193db735 delete group:1 set +msgid "IDENTIFIER should be a group id or display_name" +msgstr "" + +#: ../../canaille ae3f677991f44768a2a4006bfcc18484 set token:1 +msgid "" +"Update a token and display the edited model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 5c644649d9da4bb589d8ad6556addf45 +#: 7ebbe0cb72c4420682f872fcfe0cdafe delete set token:1 +msgid "IDENTIFIER should be a token id or token_id" +msgstr "" + +#: ../../canaille b59ea0f88c9547318c3d2862564e4867 set user:1 +msgid "" +"Update a user and display the edited model in JSON format in the standard" +" output." +msgstr "" + +#: ../../canaille 18c9c485c1c441198da36260f364b52f delete +#: e4e3a473feaf43a583f7e8bba4f6183d set user:1 +msgid "IDENTIFIER should be a user id or user_name" +msgstr "" + +#: ../../canaille 605a14edddd54170be0c24a33f1021ac create:1 +msgid "Create models." +msgstr "" + +#: ../../canaille b881b7a48af54c1b885442b7bed6cc75 create:1 +msgid "The model attributes can be passed as command options::" +msgstr "" + +#: ../../canaille 07b0fbb5f9fb48d9ac0ad7cfd5b8e3bc create:1 +msgid "Displays the created model in JSON format in the standard output." +msgstr "" + +#: ../../canaille aec8c03feca04b74ab37ec107629a8b3 authorizationcode:1 create +msgid "" +"Create a new authorizationcode and display the created model in JSON " +"format in the standard output." +msgstr "" + +#: ../../canaille c2e852f32065476bb808ea03d20e01ad client:1 create +msgid "" +"Create a new client and display the created model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille c1705c7f1e144847bd822b97fca76d28 consent:1 create +msgid "" +"Create a new consent and display the created model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 0e19ea47c231433694b2b78701b94ee1 create group:1 +msgid "" +"Create a new group and display the created model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 843835b181304f8d9c304fff21970e8d create token:1 +msgid "" +"Create a new token and display the created model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 8ef737ce1c904c118018fc2fd5c1ff99 create user:1 +msgid "" +"Create a new user and display the created model in JSON format in the " +"standard output." +msgstr "" + +#: ../../canaille 0c2fb48446e0467f871e7394498efacd delete:1 +msgid "Delete models." +msgstr "" + +#: ../../canaille 1243c16c71984aeb90044d9ac25900b4 delete:1 +msgid "The command takes a model ID and deletes it::" +msgstr "" + +#: ../../canaille authorizationcode:1 delete f782ac2a36364390be2c7f8575d9cd5d +msgid "Delete a authorizationcode." +msgstr "" + +#: ../../canaille client:1 d52c590dbdd641fab6c315cbd5a52f4a delete +msgid "Delete a client." +msgstr "" + +#: ../../canaille 09754540ffbf4f55a9db2e06dcd7fa6e consent:1 delete +msgid "Delete a consent." +msgstr "" + +#: ../../canaille delete ff86522775314885af2377fe45c0d8f8 group:1 +msgid "Delete a group." +msgstr "" + +#: ../../canaille 0cbb643004a24e0596e7dcc5b5edd1c3 delete token:1 +msgid "Delete a token." +msgstr "" + +#: ../../canaille 76b2297ab6e3462091b01e2fe8a212bc delete user:1 +msgid "Delete a user." +msgstr "" + +#: ../references/configuration.rst:2 4717f2a001574ece8191c8c20b91924e +msgid "Configuration" +msgstr "" + +#: ../references/configuration.rst:5 f480a4340d5a4430bc462e3b410e085d +msgid "Load the configuration" +msgstr "" + +#: ../references/configuration.rst:7 a67085c57c054b57a5b9aef9551b7628 +msgid "" +"Canaille can be configured either by a environment variables, environment" +" file, or by a configuration file." +msgstr "" + +#: ../references/configuration.rst:10 130165a77f484778a09072c8aaf83ab9 +msgid "Configuration file" +msgstr "" + +#: ../references/configuration.rst:12 536370e596ec44e4ab0a16fda5cea46a +msgid "" +"The configuration can be written in `toml` configuration file which path " +"is passed in the :envvar:`CONFIG` environment variable." +msgstr "" + +#: ../references/configuration.rst:14 ../references/configuration.rst:85 +#: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37 +#: 16d4d4bf27a747fa863261d22958587a 5046e4d1a38e4be6b7be652c40bbf3e2 +#: 6cdc5f8505ee4a1d8ef4d9dc30a4d899 canaille.app.configuration.RootSettings:11 +#: d61bf716b6424de7b78afa84a56b8c9a df84c415de8c410594a8894c06ad63aa of +msgid "config.toml" +msgstr "" + +#: ../references/configuration.rst:26 ad81171b6de546299da7cda72d9d81d9 +msgid "" +"You can have a look at the :ref:`example file " +"` for inspiration." +msgstr "" + +#: ../references/configuration.rst:29 bbe729efee2e425ba7bf63d0d795c024 +msgid "Environment variables" +msgstr "" + +#: ../references/configuration.rst:31 78bada65e24145408401a73abde6c115 +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:36 372d0840e9f44b6cb843873b606bf272 +msgid "" +"For environment vars, the separator between sections and variables is a " +"double underscore: ``__``. For instance, the ``NAME`` var in the " +"``CANAILLE`` section shown above is ``CANAILLE__NAME``." +msgstr "" + +#: ../references/configuration.rst:40 7155c45bef3148808457a02dfb189eb6 +msgid "Environment file" +msgstr "" + +#: ../references/configuration.rst:42 f8483b8a71fa4402945e5de5c60a3a34 +msgid "" +"Any environment variable can also be written in a ``.env``, and will be " +"read if present." +msgstr "" + +#: ../references/configuration.rst:44 3ff74982d2c149a488ea79beb76b9016 +msgid ".env" +msgstr "" + +#: ../references/configuration.rst:62 6f339b9fcda24614a4c9d464fbe167cc +msgid "Parameters" +msgstr "" + +#: ca3607a39ced4aa99c020fdbd129b60a canaille.app.configuration.RootSettings:1 +#: of +msgid "" +"The top-level namespace contains holds the configuration settings " +"unrelated to Canaille." +msgstr "" + +#: b4cbd14086fa4ff9937bf36b1d166ccb canaille.app.configuration.RootSettings:4 +#: of +msgid "The configuration paramateres from the following libraries can be used:" +msgstr "" + +#: 62dd8b4eb7e247f3921d292c36acf20a canaille.app.configuration.RootSettings:6 +#: of +msgid ":doc:`Flask `" +msgstr "" + +#: a3c625fea06d4980b69eeb9c9fd37bea canaille.app.configuration.RootSettings:7 +#: of +msgid ":doc:`Flask-WTF `" +msgstr "" + +#: 4e5f69ad21fa48d99a45d294bdb27006 canaille.app.configuration.RootSettings:8 +#: of +msgid ":doc:`Flask-Babel `" +msgstr "" + +#: 0d5858c06dca4739bfba193b2a9c47c5 canaille.app.configuration.RootSettings:9 +#: of +msgid ":doc:`Authlib `" +msgstr "" + +#: ../../docstring ba3addc71f704dc4a647f7d04b43a433 +#: canaille.app.configuration.RootSettings.DEBUG:1 of +msgid "The Flask :external:py:data:`DEBUG` configuration setting." +msgstr "" + +#: ../../docstring 021751b062154dd89a16d10a064885e7 +#: canaille.app.configuration.RootSettings.DEBUG:3 of +msgid "This enables debug options." +msgstr "" + +#: ../../docstring 8246771c26b548bd88184af9ab15b474 +#: canaille.app.configuration.RootSettings.DEBUG:7 of +msgid "" +"This is useful for development but should be absolutely avoided in " +"production environments." +msgstr "" + +#: ../../docstring 14ca7557e08646bc8f21e743f9fdf471 +#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 of +msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." +msgstr "" + +#: ../../docstring +#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 +#: fb085bd345a64cd3ab76141e055c1229 of +msgid "This sets the url scheme by which canaille will be served." +msgstr "" + +#: ../../docstring 2413329e95cd45f28f8edf63e7e3578e +#: canaille.app.configuration.RootSettings.SECRET_KEY:1 of +msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." +msgstr "" + +#: ../../docstring 8b329b5688944ab68544c7b072fa2846 +#: canaille.app.configuration.RootSettings.SECRET_KEY:3 of +msgid "You MUST change this." +msgstr "" + +#: ../../docstring canaille.app.configuration.RootSettings.SERVER_NAME:1 +#: f951ac0955154ad28b6871274226716b of +msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." +msgstr "" + +#: ../../docstring b085d221f26d47909f2cbc174e5cab2b +#: canaille.app.configuration.RootSettings.SERVER_NAME:3 of +msgid "This sets domain name on which canaille will be served." +msgstr "" + +#: 0c13d8e65e484aca84620ac088f6c1e6 canaille.core.configuration.CoreSettings:1 +#: of +msgid "The settings from the ``CANAILLE`` namespace." +msgstr "" + +#: 1d62851d1e184a9aaf4fc175018b665e canaille.core.configuration.CoreSettings:3 +#: of +msgid "" +"Those are all the configuration parameters that controls the behavior of " +"Canaille." +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.ACL:1 +#: e7acb8d7152040f9a569147fe9f58390 of +msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." +msgstr "" + +#: ../../docstring 354ac41600854e89a7dbec29e2dbdc4b +#: canaille.core.configuration.CoreSettings.ACL:3 of +msgid "The ACL name can be freely chosen. For example::" +msgstr "" + +#: ../../docstring 8826d0c7c5a846538420fb4f6de5633c +#: canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 of +msgid "Administration email contact." +msgstr "" + +#: ../../docstring 6fc562dc68404a0fafecc6f0f75b55d5 +#: canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 of +msgid "" +"In certain special cases (example : questioning about password " +"corruption), it is necessary to provide an administration contact email." +msgstr "" + +#: ../../docstring 2be02b3b84724c22a4dbafbdfdb74108 +#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 of +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 23396b7657bb4f6598654f0aca9c7e0b +#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 of +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 ab71d8b5687e4ae0b5daf416aa111fea +#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 +#: of +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 +#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 +#: f9cc696903434a3c9f1f957244880a26 of +msgid "" +"If :py:data:`False`, then users cannot ask for a password recovery link " +"by email." +msgstr "" + +#: ../../docstring 8a7e8a6a8b944bb5b7f584a330c0474b +#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 of +msgid "" +"If :py:data:`True`, then users can freely create an account at this " +"instance." +msgstr "" + +#: ../../docstring 534e391bfaca45fb9f92dd32813a7128 +#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 of +msgid "" +"If email verification is available, users must confirm their email before" +" the account is created." +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.FAVICON:1 +#: d701f8dcb04b48c0a6e3178707069f9e of +msgid "You favicon." +msgstr "" + +#: ../../docstring 3f81e8b8a0b14ea29760b5f6cccb4f74 +#: canaille.core.configuration.CoreSettings.FAVICON:3 of +msgid "If unset and :attr:`LOGO` is set, then the logo will be used." +msgstr "" + +#: ../../docstring 53d18a038f154d11ac8802a8330d8a64 +#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 of +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 439b41524c5440749de2ab91c1e75b22 +#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 of +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 4f20d3e138434a77ba55d36978b094be +#: canaille.core.configuration.CoreSettings.HTMX:1 of +msgid "Accelerates webpages loading with asynchronous requests." +msgstr "" + +#: ../../docstring 1c1b0c138fb14880ac9a7d3310daac91 +#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 of +msgid "The validity duration of registration invitations, in seconds." +msgstr "" + +#: ../../docstring 92f6e534420048079c73bef63a596f0e +#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 of +msgid "Defaults to 2 days." +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.JAVASCRIPT:1 +#: f892f17ef8b6441695fce46d31c8e757 of +msgid "Enables Javascript to smooth the user experience." +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.LANGUAGE:1 +#: d7fa71e9bca048d99305cadb433bc5f7 of +msgid "If a language code is set, it will be used for every user." +msgstr "" + +#: ../../docstring ae18c7372a364452a54c1207e2e3c20b +#: canaille.core.configuration.CoreSettings.LANGUAGE:3 of +msgid "If unset, the language is guessed according to the users browser." +msgstr "" + +#: ../../docstring 8652a5e948794d9ca1dfca0d7b3eb00f +#: canaille.core.configuration.CoreSettings.LOGGING:1 of +msgid "" +"Configures the logging output using the python logging configuration " +"format:" +msgstr "" + +#: ../../docstring 24507175b32948a0a166b7a95fd2bbea +#: canaille.core.configuration.CoreSettings.LOGGING:3 of +msgid "" +"if :py:data:`None`, everything is logged in the standard error output the" +" log level is :py:data:`~logging.DEBUG` if the " +":attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is " +":py:data:`True`, else this is :py:data:`~logging.INFO`" +msgstr "" + +#: ../../docstring 2132cfdff1dd4ac48cc86437c60deedd +#: canaille.core.configuration.CoreSettings.LOGGING:6 of +msgid "" +"if this is a :class:`dict`, it is passed to " +":func:`logging.config.dictConfig`:" +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.LOGGING:7 +#: f9e2edbbc1c0422483be175b3c89f681 of +msgid "" +"if this is a :class:`str`, it is expected to be a file path that will be " +"passed to :func:`logging.config.fileConfig`" +msgstr "" + +#: ../../docstring 9f3feaf17bb04736af38c2c71dc850c3 +#: canaille.core.configuration.CoreSettings.LOGGING:10 of +msgid "For example::" +msgstr "" + +#: ../../docstring 706bb2a426fe47bfbff9eec1f8d3340a +#: canaille.core.configuration.CoreSettings.LOGO:1 of +msgid "" +"The logo of your organization, this is useful to make your organization " +"recognizable on login screens." +msgstr "" + +#: ../../docstring +#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 +#: f7e1cfde263d4033ab5a072c2c8073f9 of +msgid "Maximum length for user password." +msgstr "" + +#: ../../docstring +#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 +#: ec4eff47c3414a0e95240588bbc7b96a of +msgid "" +"There is a technical limit with passlib used by sql database of 4096 " +"characters. If the value entered is 0 or None, or greater than 4096, then" +" 4096 will be retained." +msgstr "" + +#: ../../docstring 49a32046c38943479c91a6e26ad12885 +#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 of +msgid "Minimum length for user password." +msgstr "" + +#: ../../docstring 5e3a17e0fe1f49c59af521f8bb4117e6 +#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 of +msgid "It is possible not to set a minimum, by entering None or 0." +msgstr "" + +#: ../../docstring 79b379d0c00641c98bfd074cb7a5de8f +#: canaille.core.configuration.CoreSettings.NAME:1 of +msgid "Your organization name." +msgstr "" + +#: ../../docstring 502d5daa195f4a069d5e01a8f17a32d7 +#: canaille.core.configuration.CoreSettings.NAME:3 of +msgid "Used for display purpose." +msgstr "" + +#: ../../docstring +#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 +#: d067d220d19b4e638975fc10825433fd of +msgid "Have i been pwned api url for compromission checks." +msgstr "" + +#: ../../docstring 804df457dea74bc3b32a12fb5625d804 +#: canaille.core.configuration.CoreSettings.SENTRY_DSN:1 of +msgid "A `Sentry `_ DSN to collect the exceptions." +msgstr "" + +#: ../../docstring 7f42487bcd384c839248df71986bd1e7 +#: canaille.core.configuration.CoreSettings.SENTRY_DSN:3 of +msgid "This is useful for tracking errors in test and production environments." +msgstr "" + +#: ../../docstring 7486766d5efe42a69686be9a4be65935 +#: canaille.core.configuration.CoreSettings.SMTP:1 of +msgid "The settings related to SMTP and mail configuration." +msgstr "" + +#: ../../docstring b1e077f69a64495e93d1d91482278907 +#: canaille.core.configuration.CoreSettings.SMTP:3 of +msgid "If unset, mail-related features like password recovery won't be enabled." +msgstr "" + +#: ../../docstring 91d0533cabba48249953cc0b5f45d336 +#: canaille.core.configuration.CoreSettings.THEME:1 of +msgid "The name of a theme in the 'theme' directory, or a path to a theme." +msgstr "" + +#: ../../docstring 17ea1b66ebf84b86b371ccc7e2d56f4b +#: canaille.core.configuration.CoreSettings.THEME:3 of +msgid "" +"Defaults to ``default``. Theming is done with `flask-themer " +"`_." +msgstr "" + +#: ../../docstring 890ae4ec22a8402c8ae07fbd757c5c9a +#: canaille.core.configuration.CoreSettings.TIMEZONE:1 of +msgid "" +"The timezone in which datetimes will be displayed to the users (e.g. " +"``CEST``)." +msgstr "" + +#: ../../docstring canaille.core.configuration.CoreSettings.TIMEZONE:4 +#: f390001b96764212950188d49beeae62 of +msgid "If unset, the server timezone will be used." +msgstr "" + +#: canaille.core.configuration.SMTPSettings:1 ec897111dca1408788e83869c017f25e +#: of +msgid "" +"The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If " +"unset, mail related features will be disabled, such as mail verification " +"or password recovery emails." +msgstr "" + +#: 46719e6acf4942c895c090b48d6b9949 canaille.core.configuration.SMTPSettings:5 +#: of +msgid "" +"By default, Canaille will try to send mails from localhost without " +"authentication." +msgstr "" + +#: ../../docstring 325edd30d50248b592b82685f4e00edd +#: canaille.core.configuration.SMTPSettings.FROM_ADDR:1 of +msgid "The sender for Canaille mails." +msgstr "" + +#: ../../docstring 1574cd5eb1dd4e6893ba2e1f5d78e946 +#: canaille.core.configuration.SMTPSettings.FROM_ADDR:3 of +msgid "Some mail provider might require a valid sender address." +msgstr "" + +#: ../../docstring canaille.core.configuration.SMTPSettings.HOST:1 +#: f146f18cbf9a4b6a8e569002e35b33f3 of +msgid "The SMTP host." +msgstr "" + +#: ../../docstring canaille.core.configuration.SMTPSettings.LOGIN:1 +#: e92b851ae5764d2d96142d4c1ec4b2e0 of +msgid "The SMTP login." +msgstr "" + +#: ../../docstring 49cbd4a29c174b05b60f619bc6f148f8 +#: canaille.core.configuration.SMTPSettings.PASSWORD:1 of +msgid "The SMTP password." +msgstr "" + +#: ../../docstring canaille.core.configuration.SMTPSettings.PORT:1 +#: db67a609bb1146bd924f4e883576a0e7 of +msgid "The SMTP port." +msgstr "" + +#: ../../docstring 32ca0a0c5de04fd581707a9b0599f98b +#: canaille.core.configuration.SMTPSettings.SSL:1 of +msgid "Whether to use SSL to connect to the SMTP server." +msgstr "" + +#: ../../docstring 47a21d1aa3334dd498fc8a2f92cf87b9 +#: canaille.core.configuration.SMTPSettings.TLS:1 of +msgid "Whether to use TLS to connect to the SMTP server." +msgstr "" + +#: canaille.core.configuration.ACLSettings:1 de42eb9a951e4074aa4384b708c54ec1 +#: of +msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." +msgstr "" + +#: 96228ae9d24e43cf8cb0765cfe307061 canaille.core.configuration.ACLSettings:3 +#: of +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 a94f9d4825dd4cf6b51f6c08cdd05ed5 +#: canaille.core.configuration.ACLSettings.FILTER:1 of +msgid ":attr:`FILTER` can be:" +msgstr "" + +#: ../../docstring 38b00d981c0745858bd5afee6e376a10 +#: canaille.core.configuration.ACLSettings.FILTER:3 of +msgid "" +":py:data:`None`, in which case all the users will match this access " +"control" +msgstr "" + +#: ../../docstring 8f65cf744a144dedaad8b87c1bf60aac +#: canaille.core.configuration.ACLSettings.FILTER:4 of +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 8127a4c682cf4ed6b49080ad7fdce3a4 +#: canaille.core.configuration.ACLSettings.FILTER:7 of +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 92de0b6919df4875b14a88a269aaf3d4 +#: canaille.core.configuration.ACLSettings.FILTER:10 of +msgid "Here are some examples::" +msgstr "" + +#: ../../docstring 2c469868fe214b12b9c58e4dc69d2337 +#: canaille.core.configuration.ACLSettings.PERMISSIONS:1 of +msgid "" +"A list of :class:`Permission` users in the access control will be able to" +" manage. For example::" +msgstr "" + +#: ../../docstring canaille.core.configuration.ACLSettings.READ:1 +#: d4c1573c24484da685264970beeab6ac of +msgid "" +"A list of :class:`~canaille.core.models.User` attributes that users in " +"the ACL will be able to read." +msgstr "" + +#: ../../docstring 7ad86e8e1c2940c99c9d5122b8c240ea +#: canaille.core.configuration.ACLSettings.WRITE:1 of +msgid "" +"A list of :class:`~canaille.core.models.User` attributes that users in " +"the ACL will be able to edit." +msgstr "" + +#: 4e2f14152dad42ff830a82653102d205 canaille.core.configuration.Permission:1 of +msgid "The permissions that can be assigned to users." +msgstr "" + +#: canaille.core.configuration.Permission:3 f30678104bf14db99cf235c70fe4f306 of +msgid "" +"The permissions are intended to be used in :attr:`ACLSettings " +"`." +msgstr "" + +#: ../../docstring 28b6407f946a4a9d86fb24c5e1134ee8 +#: canaille.core.configuration.Permission.DELETE_ACCOUNT:1 of +msgid "Allows users to delete their account." +msgstr "" + +#: ../../docstring canaille.core.configuration.Permission.DELETE_ACCOUNT:3 +#: ccce0fde7b484a6aa630805d656c566d of +msgid "" +"If used with " +":attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, users can " +"delete any account." +msgstr "" + +#: ../../docstring a848267e5289499799c80b360d319ee5 +#: canaille.core.configuration.Permission.EDIT_SELF:1 of +msgid "Allows users to edit their own profile." +msgstr "" + +#: ../../docstring 4c0db7f5fd9d482e8321158b3651e086 +#: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 of +msgid "Allows users to take the identity of another user." +msgstr "" + +#: ../../docstring 9cf40563d9d54237928b0e0fdd6720eb +#: canaille.core.configuration.Permission.MANAGE_GROUPS:1 of +msgid "Allows group edition and creation." +msgstr "" + +#: ../../docstring aaa7fee0b7514c6c924c96e822d6e994 +#: canaille.core.configuration.Permission.MANAGE_OIDC:1 of +msgid "Allows OpenID Connect client managements." +msgstr "" + +#: ../../docstring 2f5b0b1b7bee480cbf903b58d6741db8 +#: canaille.core.configuration.Permission.MANAGE_USERS:1 of +msgid "Allows other users management." +msgstr "" + +#: ../../docstring 32cdb36f2e8c426296ce9fb22ae9af4f +#: canaille.core.configuration.Permission.USE_OIDC:1 of +msgid "Allows OpenID Connect authentication." +msgstr "" + +#: 7db6f94eb6ce4fd6ad6eb73de65f6168 canaille.oidc.configuration.OIDCSettings:1 +#: of +msgid "OpenID Connect settings." +msgstr "" + +#: ada0ce32653d45c4b9818161c6709d2d canaille.oidc.configuration.OIDCSettings:3 +#: of +msgid "Belong in the ``CANAILLE_OIDC`` namespace." +msgstr "" + +#: ../../docstring 4d0306630177446e9af4813cf6dc0442 +#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 +#: of +msgid "Whether a token is needed for the RFC7591 dynamical client registration." +msgstr "" + +#: ../../docstring 9b96e0f332ad46daa33d03de5a000425 +#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 +#: of +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 543b2a5f70a948fb8526e2a4991fb549 +#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 +#: of +msgid "A list of tokens that can be used for dynamic client registration." +msgstr "" + +#: ../../docstring 565aaf8210214a41b1dbb08139be8d97 +#: canaille.oidc.configuration.OIDCSettings.JWT:1 of +msgid "JSON Web Token settings." +msgstr "" + +#: ../../docstring 816df8d87e8d4526b01fc137e7bb5eb6 +#: canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 of +msgid "Force the nonce exchange during the authentication flows." +msgstr "" + +#: ../../docstring 679b9c979e4742fcb5de316379514a2d +#: canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 of +msgid "This adds security but may not be supported by all clients." +msgstr "" + +#: canaille.oidc.configuration.JWTSettings:1 fdb2a1d51be14928b6edd8b3ea2f18e1 +#: of +msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." +msgstr "" + +#: 0ab3e97636744b9697532be502541752 canaille.oidc.configuration.JWTSettings:3 +#: of +msgid "You can generate a RSA keypair with::" +msgstr "" + +#: ../../docstring 7d783adb55c8412280608afa00d9e70c +#: canaille.oidc.configuration.JWTSettings.ALG:1 of +msgid "The key algorithm." +msgstr "" + +#: ../../docstring 2e9a009538254743b34f0e7790a50a46 +#: canaille.oidc.configuration.JWTSettings.EXP:1 of +msgid "The time the JWT will be valid, in seconds." +msgstr "" + +#: ../../docstring b23ca2745b5e4113be82cae0f38a3a1f +#: canaille.oidc.configuration.JWTSettings.ISS:1 of +msgid "The URI of the identity provider." +msgstr "" + +#: ../../docstring 24cc64567a194e92b55107a516bc68ce +#: canaille.oidc.configuration.JWTSettings.KTY:1 of +msgid "The key type." +msgstr "" + +#: ../../docstring canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 +#: cc7b13206d214456820761c3ad9b8672 of +msgid "The private key." +msgstr "" + +#: ../../docstring a69ce459dfa84bd08ac906a80ebeb83a +#: canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 +#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 +#: f1c349cd7a364052afcbcf80dc11d193 of +msgid "" +"If :py:data:`None` and debug mode is enabled, then an in-memory key will " +"be used." +msgstr "" + +#: ../../docstring canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 +#: db3cf3cf3d9142d1b0d53dd8781fbb7b of +msgid "The public key." +msgstr "" + +#: a1801ef18fd142b79510e61399ebcdec +#: canaille.oidc.configuration.JWTMappingSettings:1 of +msgid "Mapping between the user model and the JWT fields." +msgstr "" + +#: 07be4f83902040b5a007c0e5bd384a54 +#: canaille.oidc.configuration.JWTMappingSettings:3 of +msgid "Fields are evaluated with jinja. A ``user`` var is available." +msgstr "" + +#: 45a1f89226a1491ea91db08de5b3d9a8 +#: canaille.backends.sql.configuration.SQLSettings:1 of +msgid "Settings related to the SQL backend." +msgstr "" + +#: c8c79789fa1e4d189d780e54c5eabf09 +#: canaille.backends.sql.configuration.SQLSettings:3 of +msgid "Belong in the ``CANAILLE_SQL`` namespace." +msgstr "" + +#: ../../docstring 7fc80f4433e94a3ca3edb04ee05141d6 +#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 of +msgid "The SQL server URI. For example::" +msgstr "" + +#: 1facbb44bb7c447bb6021c7725909dc7 +#: canaille.backends.ldap.configuration.LDAPSettings:1 of +msgid "Settings related to the LDAP backend." +msgstr "" + +#: canaille.backends.ldap.configuration.LDAPSettings:3 +#: d15577fbbe16479999f587861a8762c6 of +msgid "Belong in the ``CANAILLE_LDAP`` namespace." +msgstr "" + +#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 +#: ef98c69f41e3460f978b3bded0f3c087 of +msgid "The LDAP bind DN." +msgstr "" + +#: ../../docstring 509dc31fbf9f4b5681dec463406a6ffa +#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 of +msgid "The LDAP bind password." +msgstr "" + +#: ../../docstring +#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 +#: f3770af8c9d144e486ef530d9b314a7e of +msgid "The LDAP node under which groups will be looked for and saved." +msgstr "" + +#: ../../docstring +#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 +#: f769828768134b21b3f4883749a97b1e of +msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." +msgstr "" + +#: ../../docstring 4ed53e9c8dc4469191c174372a2ff731 +#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 of +msgid "The object class to use for creating new groups." +msgstr "" + +#: ../../docstring b3b7dc496aed41b49201db301f09445b +#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 of +msgid "The attribute to use to identify a group." +msgstr "" + +#: ../../docstring 3e708b296a59452a8b4894ad1a6c5343 +#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 of +msgid "The attribute to identify an object in the Group DN." +msgstr "" + +#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 +#: dfa7a6f410a541fdab5e1265483ffc8a of +msgid "The LDAP root DN." +msgstr "" + +#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 +#: ddfd58d7e14442129a26fda35deefa60 of +msgid "The LDAP connection timeout." +msgstr "" + +#: ../../docstring ba3913fb1d764fab9ddb72f0f1d336e6 +#: canaille.backends.ldap.configuration.LDAPSettings.URI:1 of +msgid "The LDAP server URI." +msgstr "" + +#: ../../docstring 47221563b06e4096a3eb964bfe4f70b2 +#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 of +msgid "The LDAP node under which users will be looked for and saved." +msgstr "" + +#: ../../docstring af59e7749bcc4e92bad0573d3aef861b +#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 of +msgid "For instance `ou=users,dc=mydomain,dc=tld`." +msgstr "" + +#: ../../docstring 17148b32db674420b2e17bd7bc4d64b7 +#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 of +msgid "The object class to use for creating new users." +msgstr "" + +#: ../../docstring 9c0f28dd1ec547a2a2105c43a1ea8cb1 +#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 of +msgid "Filter to match users on sign in." +msgstr "" + +#: ../../docstring 6dc2f7e50029421093cbb6605d5cd308 +#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 of +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 canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 +#: ed6628f1f92c48e79f4c04c45933ca49 of +msgid "The attribute to identify an object in the User DN." +msgstr "" + +#: ../references/configuration.rst:81 36e85ca0b73141169e01878dc817bde1 +msgid "Example file" +msgstr "" + +#: ../references/configuration.rst:83 211faaedf62448aaa8b8313556464c28 +msgid "Here is a configuration file example:" +msgstr "" + +#: ../references/index.rst:2 1714dcd8524a4572bf33cf225306ae48 +msgid "References" +msgstr "" + +#: ../references/models.rst:2 b3035bd19cc343468abaf3cbb88eacbc +msgid "Data models" +msgstr "" + +#: ../references/models.rst:4 a1202312f9e44824958514224dd6d7ee +msgid "" +"This reference details the data models used by Canaille. This is mostly " +"useful for developers." +msgstr "" + +#: 461cc5d773ed46ddafdec33d26872246 6f4075b2615c4c5799703c8ee15fb71e +#: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 of +msgid "Bases: :py:class:`object`" +msgstr "" + +#: 266d3c351347457882173839a5494304 canaille.backends.models.BackendModel:1 of +msgid "The backend model abstract class." +msgstr "" + +#: canaille.backends.models.BackendModel:3 ef3fa6cad04d49a3b1feecbe4cdd9ce6 of +msgid "" +"It details all the methods and attributes that are expected to be " +"implemented for every model and for every backend." +msgstr "" + +#: aa2bf0341a1d4bc08c14e9e06532b515 canaille.backends.models.Model:1 of +msgid "The model abstract class." +msgstr "" + +#: canaille.backends.models.Model:3 e9a0f6f9d07542ffacc925102ab9b167 of +msgid "It details all the common attributes shared by every models." +msgstr "" + +#: ../../docstring 26f896206d434c66af18e1554c2b39cf +#: canaille.backends.models.Model.created:1 of +msgid "" +"The :class:`~datetime.datetime` that the resource was added to the " +"service provider." +msgstr "" + +#: ../../docstring a8f940801e7f489ba20546301316692f +#: canaille.backends.models.Model.id:1 of +msgid "" +"A unique identifier for a SCIM resource as defined by the service " +"provider. Id will be :py:data:`None` until the " +":meth:`~canaille.backends.models.BackendModel.save` method is called." +msgstr "" + +#: ../../docstring 41caefe3a8144846b58b2bddff61d7ff +#: canaille.backends.models.Model.id:5 of +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 "" + +#: c44ba47611ea4698af894455d44619fb canaille.backends.models.Model.identifier:1 +#: of +msgid "Returns a unique value that will be used to identify the model instance." +msgstr "" + +#: 72da2a346972433780bc2e636e106d7b canaille.backends.models.Model.identifier:4 +#: of +msgid "" +"This value will be used in URLs in canaille, so it should be unique and " +"short." +msgstr "" + +#: ../../docstring afaa2a0f154b4160b54eee630032e6f8 +#: canaille.backends.models.Model.last_modified:1 of +msgid "" +"The most recent :class:`~datetime.datetime` that the details of this " +"resource were updated at the service provider." +msgstr "" + +#: ../../docstring 2874d8a267c640548a423bdca56df111 +#: canaille.backends.models.Model.last_modified:4 of +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 "" + +#: 02d1e4d034464e64bae8a9f5627df315 30d0a769f9d840fdafcc398405631bf1 +#: 3b6e85588ce44d42b2ab8fc4afaf5396 4991c2c94129405bb96a3dfe507108c5 +#: 78cd110181444adf8891551c1927a7c9 canaille.core.models.Group:1 +#: canaille.core.models.User:1 canaille.oidc.basemodels.AuthorizationCode:1 +#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1 +#: canaille.oidc.basemodels.Token:1 d8d3391e1d3d4c76bacd2799816a12b3 of +msgid "Bases: :py:class:`~canaille.backends.models.Model`" +msgstr "" + +#: b108f7af66b24928910eb2657acab297 canaille.core.models.Group:1 of +msgid "" +"User model, based on the `SCIM Group schema " +"`_." +msgstr "" + +#: ../../docstring 81ca9ec1c2e0433abc0d872911dfc3e9 +#: canaille.core.models.Group.display_name:1 of +msgid "A human-readable name for the Group." +msgstr "" + +#: ../../docstring 11d7ce5c28e749c6a6525d5007e0f95b +#: canaille.core.models.Group.display_name:3 +#: canaille.oidc.basemodels.Client.client_id:1 d6e6ff5ae1eb42bb84697629aa921407 +#: of +msgid "REQUIRED." +msgstr "" + +#: ../../docstring a82069d01e4c4d2682b446c98505ca6e +#: canaille.core.models.Group.members:1 of +msgid "A list of members of the Group." +msgstr "" + +#: ../../docstring 665081b51e814449b2a29f7a56e1968b +#: canaille.core.models.Group.members:3 of +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 "" + +#: 62fa68900e434762bd85c5ade2cb2a00 canaille.core.models.User:1 of +msgid "" +"User model, based on the `SCIM User schema " +"`_, " +"`Entreprise User Schema Extension " +"`_ and `SCIM " +"Password Management Extension `_ draft. Attribute description is" +" based on SCIM and put there for information purpose. The description may" +" not fit the current implementation in Canaille." +msgstr "" + +#: b248b2f62dfe4e68bddd63bec00966e4 canaille.core.models.User.can:1 of +msgid "" +"Whether or not the user has the " +":class:`~canaille.core.configuration.Permission` according to the " +":class:`configuration `." +msgstr "" + +#: ../../docstring 57dd6a9a0b8c4864a95af69346964dea +#: canaille.core.models.User.department:1 of +msgid "Identifies the name of a department." +msgstr "" + +#: ../../docstring 1d49d216d1b343d295dfdfa77e551b77 +#: canaille.core.models.User.display_name:1 of +msgid "The name of the user, suitable for display to end-users." +msgstr "" + +#: ../../docstring canaille.core.models.User.display_name:3 +#: dd9d3ca768b642dfa17f5495f422fd8a of +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 7ea26c780ca2493aafee136baf8ec9a2 +#: canaille.core.models.User.emails:1 of +msgid "Email addresses for the User." +msgstr "" + +#: ../../docstring canaille.core.models.User.emails:3 +#: d06efcedf29f45ddb8bd45ab1e754b09 of +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 088e38d69f594804bbde39f7de054cfb +#: canaille.core.models.User.employee_number:1 of +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 canaille.core.models.User.family_name:1 +#: e71992364a4b4d6ca7ff849be03fa98d of +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 8d3a3acc6f51434f9bdc7a56166e8d2b +#: canaille.core.models.User.formatted_address:1 of +msgid "" +"The full mailing address, formatted for display or use with a mailing " +"label." +msgstr "" + +#: ../../docstring canaille.core.models.User.formatted_address:4 +#: d02f4c440ff84c9b8e7859f1c2f8e437 of +msgid "This attribute MAY contain newlines." +msgstr "" + +#: ../../docstring 13d24f362e354f1ca1f97bccb45f4d52 +#: canaille.core.models.User.formatted_name:1 of +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 89b59cdc575f4da4a95d5812c79a2d44 +#: canaille.core.models.User.given_name:1 of +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 canaille.core.models.User.groups:1 +#: f93da1a83db14690a1319e00e75bc91a of +msgid "" +"A list of groups to which the user belongs, either through direct " +"membership, through nested groups, or dynamically calculated." +msgstr "" + +#: ../../docstring canaille.core.models.User.groups:4 +#: f8de4887ea8e4881852d8a2ddb6aefbb of +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 "" + +#: a3755516ad3d4a4e99d463daf04d0900 canaille.core.models.User.has_password:1 of +msgid "Check whether a password has been set for the user." +msgstr "" + +#: ../../docstring canaille.core.models.User.locality:1 +#: cc940278bc2a4693ba6fcbd7005d155a of +msgid "The city or locality component." +msgstr "" + +#: ../../docstring 54a5441c515f4520990822788d729733 +#: canaille.core.models.User.lock_date:1 of +msgid "A DateTime indicating when the resource was locked." +msgstr "" + +#: 1ee89e8c473a47b09e2292ac7c153492 canaille.core.models.User.locked:1 of +msgid "Whether the user account has been locked or has expired." +msgstr "" + +#: ../../docstring ac701d69d25a4388969ae1e0e9edbfa2 +#: canaille.core.models.User.organization:1 of +msgid "Identifies the name of an organization." +msgstr "" + +#: ../../docstring 27b5210c75804a148814c2f4d8c42844 +#: canaille.core.models.User.password:1 of +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 6394c05116d44a0b81cf02b402587ef5 +#: canaille.core.models.User.password:9 of +msgid "" +"Prepare the cleartext value for international language comparison. See " +"Section 7.8 of [RFC7644]." +msgstr "" + +#: ../../docstring 62cb13571d0f4f338277a23d1b7f59cf +#: canaille.core.models.User.password:12 of +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 canaille.core.models.User.password:16 +#: e9565b52217d46068ab1e33cf70f3de8 of +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 602d688e5a5d44eea1eeb90863b271d3 +#: canaille.core.models.User.password:20 of +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 725d3e55f8b140caadb1db419a887ff4 +#: canaille.core.models.User.password:28 of +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 c7c0a12a3a2d4db3afb0a55a2721da5c +#: canaille.core.models.User.password:32 of +msgid "" +"Prepares the filter value for international language comparison. See " +"Section 7.8 of [RFC7644]." +msgstr "" + +#: ../../docstring b0ed5c3e41d847e8a79f87078a3a17ff +#: canaille.core.models.User.password:35 of +msgid "" +"Generates the salted hash of the filter value and tests for a match with " +"the locally held value." +msgstr "" + +#: ../../docstring b2d2eeb3c4a04b449fd372664c86b359 +#: canaille.core.models.User.password:38 of +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 4853bce35133497cae1a3b254bf8a8dc +#: canaille.core.models.User.phone_numbers:1 of +msgid "Phone numbers for the user." +msgstr "" + +#: ../../docstring 8979006771cb41f9ba3c56ae427fa8a5 +#: canaille.core.models.User.phone_numbers:3 of +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 7a6291de70a4447485ba45c111f90be8 +#: canaille.core.models.User.photo:1 of +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 be028a013b384ca2807895828962c04e +#: canaille.core.models.User.photo:5 of +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 40c51c5235f944bca20e65ec9f0177d4 +#: canaille.core.models.User.postal_code:1 of +msgid "The zip code or postal code component." +msgstr "" + +#: ../../docstring 6a834d66c4e749e0a7c3a0b9ed517ba7 +#: canaille.core.models.User.preferred_language:1 of +msgid "" +"Indicates the user's preferred written or spoken languages and is " +"generally used for selecting a localized user interface." +msgstr "" + +#: ../../docstring 64e8efd5ee21421f891b0238f90d182e +#: canaille.core.models.User.preferred_language:4 of +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 canaille.core.models.User.profile_url:1 +#: fa9b1e7e37904969b4de73ff84cc9496 of +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 332359d0d5e640aa93c3a27e4525fe7c +#: canaille.core.models.User.profile_url:5 of +msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." +msgstr "" + +#: canaille.core.models.User.readable_fields:1 fe414ec9cf444092b3085cfc0afee6a4 +#: of +msgid "" +"The fields the user can read according to the :class:`configuration " +"` configuration." +msgstr "" + +#: 5d4191b52d494aafb0d738e298cf7a18 canaille.core.models.User.readable_fields:4 +#: of +msgid "" +"This does not include the :attr:`writable " +"` fields." +msgstr "" + +#: ../../docstring 8e9d9d348e0b499aa5c100d1d651a313 +#: canaille.core.models.User.region:1 of +msgid "The state or region component." +msgstr "" + +#: ../../docstring c4ef32cb99c34e7fa69f07785320e3d7 +#: canaille.core.models.User.street:1 of +msgid "" +"The full street address component, which may include house number, street" +" name, P.O." +msgstr "" + +#: ../../docstring 3c26b79f2ed1414a87524f8ec611dddf +#: canaille.core.models.User.street:4 of +msgid "" +"box, and multi-line extended street address information. This attribute " +"MAY contain newlines." +msgstr "" + +#: ../../docstring 755fa0dc5a0c4871becc12d9cffb60e8 +#: canaille.core.models.User.title:1 of +msgid "The user's title, such as \"Vice President\"." +msgstr "" + +#: ../../docstring a454c05e71764f9cbdf0071193616eb9 +#: canaille.core.models.User.user_name:1 of +msgid "" +"A service provider's unique identifier for the user, typically used by " +"the user to directly authenticate to the service provider." +msgstr "" + +#: ../../docstring canaille.core.models.User.user_name:4 +#: ff8b08db92cf4100bb12a40b25d77063 of +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 "" + +#: 2c92ce75a6e0498d9fe69da2b9ea1bdd canaille.core.models.User.writable_fields:1 +#: of +msgid "" +"The fields the user can write according to the :class:`configuration " +"`." +msgstr "" + +#: canaille.oidc.basemodels.AuthorizationCode:1 +#: febb3bfac0654b0b8e7d9ab0eba842ab of +msgid "OpenID Connect temporary authorization code definition." +msgstr "" + +#: canaille.oidc.basemodels.Client:1 dc9e974e3ac24619b2133e74cde093a5 of +msgid "" +"OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " +"Registration protocols " +"`_ and the `OpenID " +"Connect RP-Initiated Logout `_ specifications." +msgstr "" + +#: ../../docstring 58c086f6b9f4483fbccebdae8625a9a1 +#: canaille.oidc.basemodels.Client.client_id:3 of +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 6d4d8773f22a4d00831ae8220b1299a8 +#: 6e3d1a288719499ba55a83dcdc05991f +#: canaille.oidc.basemodels.Client.client_id_issued_at:1 +#: canaille.oidc.basemodels.Client.client_secret:1 +#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 +#: da0dddd7ce6948c5acd4e8208e91d09e of +msgid "OPTIONAL." +msgstr "" + +#: ../../docstring 58a3537d7ac54fc08d00307052c5b70d +#: canaille.oidc.basemodels.Client.client_id_issued_at:3 of +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 a6cb1caecdc943869da758960df78317 +#: canaille.oidc.basemodels.Client.client_name:1 of +msgid "" +"Human-readable string name of the client to be presented to the end-user " +"during authorization." +msgstr "" + +#: ../../docstring 978a5c80bd8240a08b092fc06405aa60 +#: canaille.oidc.basemodels.Client.client_name:4 of +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 90d413e051f9438fa0c1703d8ccdff54 +#: canaille.oidc.basemodels.Client.client_secret:3 of +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 74762eb67d8a475d80da339a3b63a8ed +#: canaille.oidc.basemodels.Client.client_secret_expires_at:1 of +msgid "REQUIRED if \"client_secret\" is issued." +msgstr "" + +#: ../../docstring 6d76b51fe1644041a8a0677567570b44 +#: canaille.oidc.basemodels.Client.client_secret_expires_at:3 of +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 canaille.oidc.basemodels.Client.client_uri:1 +#: f4ab021f927b4563a070257c60a8f559 of +msgid "URL string of a web page providing information about the client." +msgstr "" + +#: ../../docstring 663428e642c4466a86390083dade6126 +#: canaille.oidc.basemodels.Client.client_uri:3 of +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 b4e312f3e2444f468929113a44b0dea8 +#: canaille.oidc.basemodels.Client.contacts:1 of +msgid "" +"Array of strings representing ways to contact people responsible for this" +" client, typically email addresses." +msgstr "" + +#: ../../docstring 5dc7df1445694544a1c57bcd9f761467 +#: canaille.oidc.basemodels.Client.contacts:4 of +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 85e0a62561344a348cb6deb5dd8a218c +#: canaille.oidc.basemodels.Client.grant_types:1 of +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 294a968347e54e68818115f6d4368c47 +#: canaille.oidc.basemodels.Client.grant_types:4 of +msgid "" +"\"authorization_code\": The authorization code grant type defined in " +"OAuth 2.0, Section 4.1." +msgstr "" + +#: ../../docstring canaille.oidc.basemodels.Client.grant_types:7 +#: d868b67264bd4b4bb96713fb8ade25fa of +msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." +msgstr "" + +#: ../../docstring 7175000760ec4455b3c87aa38f9559e4 +#: canaille.oidc.basemodels.Client.grant_types:10 of +msgid "" +"\"password\": The resource owner password credentials grant type defined " +"in OAuth 2.0, Section 4.3." +msgstr "" + +#: ../../docstring 812e9d7d2ac2411e92eb9ee9fb0a20a6 +#: canaille.oidc.basemodels.Client.grant_types:13 of +msgid "" +"\"client_credentials\": The client credentials grant type defined in " +"OAuth 2.0, Section 4.4." +msgstr "" + +#: ../../docstring 1af63b16669d4631b071b96034202e28 +#: canaille.oidc.basemodels.Client.grant_types:16 of +msgid "" +"\"refresh_token\": The refresh token grant type defined in OAuth 2.0, " +"Section 6." +msgstr "" + +#: ../../docstring 438cafec18834b8c8befa16ecfa98fa4 +#: canaille.oidc.basemodels.Client.grant_types:19 of +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 b572770632ac490ab9b3850fc9fb07e5 +#: canaille.oidc.basemodels.Client.grant_types:23 of +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 canaille.oidc.basemodels.Client.grant_types:27 +#: faf8a507ee9c481399137c43cf6c91dd of +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 8512b3f0a754434ebc4aff8e329c1e6b +#: canaille.oidc.basemodels.Client.jwk:1 of +msgid "" +"Client's JSON Web Key Set [RFC7517] document value, which contains the " +"client's public keys." +msgstr "" + +#: ../../docstring b6f78d3c718c4fc4a0b2ba99b2e4e480 +#: canaille.oidc.basemodels.Client.jwk:4 of +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 02f4c953df3948d09f78ccd7ab5cedb1 +#: canaille.oidc.basemodels.Client.jwks_uri:1 of +msgid "" +"URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] " +"document, which contains the client's public keys." +msgstr "" + +#: ../../docstring 7f1548f2b6c145d785f3f1c43317df1b +#: canaille.oidc.basemodels.Client.jwks_uri:4 of +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 2f0ad1518603470b8cd4fe2f265e6f85 +#: canaille.oidc.basemodels.Client.logo_uri:1 of +msgid "URL string that references a logo for the client." +msgstr "" + +#: ../../docstring canaille.oidc.basemodels.Client.logo_uri:3 +#: ff7134b134b645a9a3156d42a980f08e of +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 canaille.oidc.basemodels.Client.policy_uri:1 +#: f47d9200239d48d1ac74db6f323f9ce5 of +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 1d5a279df85d4897bf38af1e0c3f13ea +#: c917b2d3bd2d481eb5c0eeb265eedb4e +#: canaille.oidc.basemodels.Client.policy_uri:5 +#: canaille.oidc.basemodels.Client.tos_uri:5 of +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 canaille.oidc.basemodels.Client.post_logout_redirect_uris:3 +#: db13c682dc054c7080a82f49c47e45c8 of +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 4c50516d7ce84dbc84e0e788dc2b1889 +#: canaille.oidc.basemodels.Client.redirect_uris:1 of +msgid "" +"Array of redirection URI strings for use in redirect-based flows such as " +"the authorization code and implicit flows." +msgstr "" + +#: ../../docstring canaille.oidc.basemodels.Client.redirect_uris:4 +#: e9fe092e8543426e8253d4369f184a7c of +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 canaille.oidc.basemodels.Client.response_types:1 +#: ec8ccaf66a7c4d418729d34c822db639 of +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 4810215d814142339501c3e889df1062 +#: canaille.oidc.basemodels.Client.response_types:5 of +msgid "" +"\"code\": The authorization code response type defined in OAuth 2.0, " +"Section 4.1." +msgstr "" + +#: ../../docstring 61fd38354038452c9503ca876a220cf3 +#: canaille.oidc.basemodels.Client.response_types:8 of +msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." +msgstr "" + +#: ../../docstring 9ca40a61a3094e45a8fd09ee68901d00 +#: canaille.oidc.basemodels.Client.response_types:11 of +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 a536f9f5ebf048e0868b8cf753e95abe +#: canaille.oidc.basemodels.Client.scope:1 of +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 517eb5ade29e4685af967e3e4ea061ef +#: canaille.oidc.basemodels.Client.scope:5 of +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 10472d4f71fc4d6b89e31a7693238615 +#: canaille.oidc.basemodels.Client.software_id:1 of +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 41725941c0414bb5bf434777b6c2f028 +#: canaille.oidc.basemodels.Client.software_id:6 of +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 9eda381133c04d49b847dde1ca563f5d +#: canaille.oidc.basemodels.Client.software_version:1 of +msgid "" +"A version identifier string for the client software identified by " +"\"software_id\"." +msgstr "" + +#: ../../docstring 37e5f81fd7d04871b092880a4bf00185 +#: canaille.oidc.basemodels.Client.software_version:4 of +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 ac49c352aeb24e19894497192955193d +#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 of +msgid "" +"String indicator of the requested authentication method for the token " +"endpoint. Values defined by this specification are:" +msgstr "" + +#: ../../docstring 66854b08d62a4a36a60d0ab4d4c4884f +#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 of +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 canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 +#: e1ef3f2f13bd4f4bac6eec072813ff0e of +msgid "" +"\"client_secret_post\": The client uses the HTTP POST parameters as " +"defined in OAuth 2.0, Section 2.3.1." +msgstr "" + +#: ../../docstring 6ddcb23b2028416abec55125e12600e8 +#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 of +msgid "" +"\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth " +"2.0, Section 2.3.1." +msgstr "" + +#: ../../docstring 9e65b281bf3d4bee9bf7be88f0b182de +#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 of +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 b587edfc8a414f71a53b8781b4c61cbe +#: canaille.oidc.basemodels.Client.tos_uri:1 of +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 "" + +#: 233ce80e24414377b8b348cc25c9f546 canaille.oidc.basemodels.Consent:1 of +msgid "Long-term user consent to an application." +msgstr "" + +#: 065b6fae2d0b4b978efc341415d5f9ce canaille.oidc.basemodels.Token:1 of +msgid "OpenID Connect token definition." +msgstr "" + +#: ../tutorial/databases.rst:2 c56d43f65c3c44dea55086004f87d424 +msgid "Databases" +msgstr "" + +#: ../tutorial/databases.rst:4 ecfe588effe545d8ae53e3d1364a6a62 +msgid "" +"Canaille can read and save data in different databases. This page " +"presents the different database backends and their specificities:" +msgstr "" + +#: ../tutorial/databases.rst:8 3d861b0b33454ebcb8a100f03117f95c +msgid "Memory" +msgstr "" + +#: ../tutorial/databases.rst:10 da5c1f33abc145e9a2f5f30bfa4cb4a5 +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 3dc9f8a6f72341d9afb9ad783b6cb6ff +msgid "" +"This backend is only for test purpose and should not be used in " +"production environments." +msgstr "" + +#: ../tutorial/databases.rst:18 50d41eb5fb044bcea6d2590d46430c93 +msgid "" +"Canaille can use any database supported by `SQLAlchemy " +"`_, such as sqlite, postgresql or mariadb." +msgstr "" + +#: ../tutorial/databases.rst:21 b764027163c7461bb9c7241427cbcf36 +msgid "" +"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. " +"For instance:" +msgstr "" + +#: ../tutorial/databases.rst:29 27782e5f5733401eaae184f758a9a573 +msgid "" +"You can find more details on the SQL configuration in the " +":class:`dedicated section " +"`." +msgstr "" + +#: ../tutorial/databases.rst:34 d44cefd06b98488b805db56a0202c0bf +msgid "" +"Canaille can use OpenLDAP as its main database. It is used when the " +"``CANAILLE_LDAP`` configuration parameter is defined. For instance:" +msgstr "" + +#: ../tutorial/databases.rst:52 3bd4bdee4fd4426a845056c5967226e8 +msgid "" +"You can find more details on the LDAP configuration in the " +":class:`dedicated section " +"`." +msgstr "" + +#: ../tutorial/databases.rst:55 93c8f6b8a1c745408a04056b0b032443 +msgid "" +"Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have " +"been tested. If you want to use different schemas or LDAP servers, " +"adaptations may be needed. Patches are welcome." +msgstr "" + +#: ../tutorial/databases.rst:60 5f8f1f384da142af9a3aea4af3137f8b +msgid "OpenLDAP overlays integration" +msgstr "" + +#: ../tutorial/databases.rst:62 33e4deac08f841e0ae82a2812a57898d +msgid "Canaille can integrate with several OpenLDAP overlays:" +msgstr "" + +#: ../tutorial/databases.rst:65 9952860e43ac44d58a4c0b238d99b594 +msgid "memberof / refint" +msgstr "" + +#: ../tutorial/databases.rst:67 6d93926918dd4d42ab6840e24d2f1280 +#, python-format +msgid "" +"`memberof " +"`_" +" and `refint " +"`_" +" overlays are needed for the Canaille group membership to work correctly." +msgstr "" + +#: ../tutorial/databases.rst:71 ../tutorial/databases.rst:94 +#: 1f3bd6033c794de89a2cecdb89da88d2 e02bdcbeafd54699be7a7cc5620cc347 +msgid "Here is a configuration example compatible with canaille:" +msgstr "" + +#: ../tutorial/databases.rst:73 273efda248f449f0b9ccc2302162ffd6 +msgid "memberof-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:77 8635eb947c1044f5bf93a338216afe4d +msgid "refint-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:81 ../tutorial/databases.rst:104 +#: 3313776d90f948c8bfc38f063fe4760f d7bc0b31b5fa4710b03c9d7254b43205 +msgid "You can adapt and load those configuration files with:" +msgstr "" + +#: ../tutorial/databases.rst:90 a7caeee53d6f49949063891052dff0cf +msgid "ppolicy" +msgstr "" + +#: ../tutorial/databases.rst:92 5eaa978aede642999fffec3b585e95eb +msgid "" +"If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` " +"attribute is available (since OpenLDAP 2.6), then account locking support" +" will be enabled in canaille. To allow users to manage account " +"expiration, they need to have a *write* permission on the " +":attr:`~canaille.core.models.User.lock_date` attribute." +msgstr "" + +#: ../tutorial/databases.rst:96 485205f101564fcc8466539600ea7230 +msgid "ppolicy-config.ldif" +msgstr "" + +#: ../tutorial/databases.rst:100 6c34e1f947e54eb6b88507cfe8cdbd85 +msgid "ppolicy.ldif" +msgstr "" + +#: ../tutorial/deployment.rst:2 d116f5fdf1304552840b1293c3d042ae +msgid "Deployment" +msgstr "" + +#: ../tutorial/deployment.rst:5 ddb242bd454340f5bd16124fd50dd495 +msgid "Application service" +msgstr "" + +#: ../tutorial/deployment.rst:7 7bc0484c925642c0827c7f565c3b688a +msgid "" +"After having finished Canaille installation you have to run it in a WSGI " +"application server. Here are some WSGI server configuration examples you " +"can pick. Do not forget to update the paths." +msgstr "" + +#: ../tutorial/deployment.rst:11 50579a6360574db497f9a84c04177fe8 +msgid "gunicorn" +msgstr "" + +#: ../tutorial/deployment.rst:15 81137fb9e92544649b2adb45d64507de +msgid "Write a gunicorn configuration sample file." +msgstr "" + +#: ../tutorial/deployment.rst:18 879978c80d7f4f6181d9a70a95b6b153 +msgid "uwsgi" +msgstr "" + +#: ../tutorial/deployment.rst:42 f91a46a6139c45628fcfc9ed127499e8 +msgid "Webserver" +msgstr "" + +#: ../tutorial/deployment.rst:44 762fa82b13ea4b35aa14aef41c9c81e9 +msgid "" +"Now you have to plug your WSGI application server to your webserver so it" +" is accessible on the internet. Here are some webserver configuration " +"examples you can pick:" +msgstr "" + +#: ../tutorial/deployment.rst:48 8f95f4501bd144d784302880ddf5781f +msgid "Nginx" +msgstr "" + +#: ../tutorial/deployment.rst:114 f66b50373add4f8080c502d00668b6d2 +msgid "Apache" +msgstr "" + +#: ../tutorial/deployment.rst:153 fd41fc0986e44364a3ebf8d63f225377 +msgid "Recurrent jobs" +msgstr "" + +#: ../tutorial/deployment.rst:155 893232816cb34c5e91d4536bcaaf035d +msgid "" +"You might want to clean up your database to avoid it growing too much. " +"You can regularly delete expired tokens and authorization codes with:" +msgstr "" + +#: ../tutorial/deployment.rst:164 d27e43638d824fcbb819dffbb1bb1117 +msgid "Webfinger" +msgstr "" + +#: ../tutorial/deployment.rst:166 c77203551edd4f9a8ebff3d9e99a49e8 +msgid "" +"You may want to configure a `WebFinger`_ endpoint on your main website to" +" allow the automatic discovery of your Canaille installation based on the" +" account name of one of your users. For instance, suppose your domain is " +"``mydomain.example`` and your Canaille domain is " +"``auth.mydomain.example`` and there is a user ``john.doe``. A third-party" +" application could require to authenticate the user and ask them for a " +"user account. The user would give their account " +"``john.doe@mydomain.example``, then the application would perform a " +"WebFinger request at ``https://mydomain.example/.well-known/webfinger`` " +"and the response would contain the address of the authentication server " +"``https://auth.mydomain.example``. With this information the third party " +"application can redirect the user to the Canaille authentication page." +msgstr "" + +#: ../tutorial/deployment.rst:168 0b1886b7075141e9841779211fb3d839 +msgid "" +"The difficulty here is that the WebFinger endpoint must be hosted at the " +"top-level domain (i.e. ``mydomain.example``) while the authentication " +"server might be hosted on a sublevel (i.e. ``auth.mydomain.example``). " +"Canaille provides a WebFinger endpoint, but if it is not hosted at the " +"top-level domain, a web redirection is required on the ``/.well-" +"known/webfinger`` path." +msgstr "" + +#: ../tutorial/deployment.rst:170 da52dafa168c49d98f063ba08002235b +msgid "Here are configuration examples for Nginx or Apache:" +msgstr "" + +#: ../tutorial/deployment.rst:172 d17492a36d764bae8cb689daab3bb03e +msgid "Nginx webfinger configuration for a top level domain" +msgstr "" + +#: ../tutorial/deployment.rst:181 3343c0ba522e427c80bcf7bbca5e36ba +msgid "Apache webfinger configuration for a top level domain" +msgstr "" + +#: ../tutorial/deployment.rst:191 05d1c340250345fc8a9d69ca3c82aa51 +msgid "Create the first user" +msgstr "" + +#: ../tutorial/deployment.rst:193 64922658d6454ed3b774c84a324aa79d +msgid "" +"Once canaille is installed, soon enough you will need to add users. To " +"create your first user you can use the :ref:`canaille create " +"` CLI." +msgstr "" + +#: ../tutorial/index.rst:2 29acce67ab35458f814960316dcc91c1 +msgid "Tutorial" +msgstr "" + +#: ../tutorial/install.rst:2 01c587979263466db551b80e89b4c413 +msgid "Installation" +msgstr "" + +#: ../tutorial/install.rst:6 55621e136b2b4cf3ab3893036899e351 +msgid "" +"Canaille is under heavy development and may not fit a production " +"environment yet." +msgstr "" + +#: ../tutorial/install.rst:8 74396a34870f4c62aaa0ca5ad1bdb3c8 +msgid "" +"The installation of canaille consist in several steps, some of which you " +"can do manually or with command line tool:" +msgstr "" + +#: ../tutorial/install.rst:11 4c999740fb044077afcdfedad103b7d3 +msgid "Get the code" +msgstr "" + +#: ../tutorial/install.rst:13 254ece36aab0456897d2ac5758d6d5c1 +msgid "" +"As the moment there is no distribution package for canaille. However, it " +"can be installed with the ``pip`` package manager. Let us choose a place " +"for the canaille environment, like ``/opt/canaille/env``." +msgstr "" + +#: ../tutorial/install.rst:24 66b21bf62a734f80b42551f4c902cfb0 +msgid "Extras" +msgstr "" + +#: ../tutorial/install.rst:26 e701f5586f66419d987c1c6e8174aeba +msgid "Canaille provides different package options:" +msgstr "" + +#: ../tutorial/install.rst:28 d6c52c3add814cdd899bf03f0d6f3cc9 +msgid "`front` provides all the things needed to produce the user interface;" +msgstr "" + +#: ../tutorial/install.rst:29 a3ae7076136c46de9b174a8981834b66 +msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" +msgstr "" + +#: ../tutorial/install.rst:30 c756e602833e4b6caf6791f830ffe9df +msgid "`ldap` provides the dependencies to enable the LDAP backend;" +msgstr "" + +#: ../tutorial/install.rst:31 17bb2a8ba5dc4996a7aa0ca8814c2c55 +msgid "`sqlite` provides the dependencies to enable the SQLite backend;" +msgstr "" + +#: ../tutorial/install.rst:32 f05ed507e190475da10c20469b153b27 +msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" +msgstr "" + +#: ../tutorial/install.rst:33 9027bab8a01a430483f86c718a1ce50e +msgid "`mysql` provides the dependencies to enable the MySQL backend;" +msgstr "" + +#: ../tutorial/install.rst:34 61298e4e91ab4e529451dd0d499579ce +msgid "`sentry` provides sentry integration to watch Canaille exceptions;" +msgstr "" + +#: ../tutorial/install.rst:35 bd6441bbc1d64cc0b2b69403d1515acf +msgid "`all` provides all the extras above." +msgstr "" + +#: ../tutorial/install.rst:37 da8e4e257b604589bb14e0b29a80e745 +msgid "They can be installed with:" +msgstr "" + +#: ../tutorial/install.rst:44 f889916cd6b3493bbf9066a5df580354 +msgid "Configure" +msgstr "" + +#: ../tutorial/install.rst:46 9f549ce7c01b431890b3153e580d2c2c +msgid "" +"Choose a path where to store your configuration file. You can pass any " +"configuration path with the ``CONFIG`` environment variable." +msgstr "" + +#: ../tutorial/install.rst:54 9a40cf9c7a5947998256e361f20bf9a9 +msgid "" +"You should then edit your configuration file to adapt the values to your " +"needs. Look at the configuration details in the :doc:`configuration " +"<../references/configuration>` page." +msgstr "" + +#: ../tutorial/install.rst:57 da62c365141849c7a38413ed0c62c572 +msgid "Install" +msgstr "" + +#: ../tutorial/install.rst:59 fba2798a50c747339fc1f5327717d998 +msgid "" +"The :ref:`install command ` will apply most of the things " +"needed to get Canaille working. Depending on the configured " +":doc:`database ` it will create the SQL tables, or install the" +" LDAP schemas for instance." +msgstr "" + +#: ../tutorial/install.rst:68 40405f2e68734d9ab601f682dc194f69 +msgid "Check" +msgstr "" + +#: ../tutorial/install.rst:70 b5ca9b39ad7a4111a92c0cb3f951c4ed +msgid "" +"After a manual installation, you can check your configuration file using " +"the :ref:`check command `:" +msgstr "" + +#: ../tutorial/troubleshooting.rst:2 9a695ffaea0e4a7488315b67eb88cf1f +msgid "Troubleshooting" +msgstr "" + +#: ../tutorial/troubleshooting.rst:5 15ff521e84d24e16999f0e82a052b184 +msgid "The web interface throws useless error messages" +msgstr "" + +#: ../tutorial/troubleshooting.rst:7 cec2dc1cd8bd4a1b9b2b8027d260212a +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 9432afd575d14608a8d9b41b98aeab4a +msgid "How to manually install LDAP schemas?" +msgstr "" + +#: ../tutorial/troubleshooting.rst:16 b590da23aad9437f853ad3ff608cec9e +msgid "" +"Schema installation can be automatically done using the :ref:`install " +"command `." +msgstr "" + +#: ../tutorial/troubleshooting.rst:18 62cc8bfce68f4b9abadf1d93bd4cd947 +msgid "As of OpenLDAP 2.4, two configuration methods are available:" +msgstr "" + +#: ../tutorial/troubleshooting.rst:20 fee299f66bc944fdb8e6e116b4f57947 +msgid "" +"The `deprecated `_ " +"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" +msgstr "" + +#: ../tutorial/troubleshooting.rst:21 fe0e6259626c429d98cd16394b446ee3 +msgid "" +"The new one, based on a configuration directory (generally " +"``/etc/ldap/slapd.d``)." +msgstr "" + +#: ../tutorial/troubleshooting.rst:23 ce0dcdbce977446dac9bc6ab3e4e1157 +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 c6a807a8f8e94e18a2d11ada0a12e313 +msgid "Old fashion: Copy the schemas in your filesystem" +msgstr "" + +#: ../tutorial/troubleshooting.rst:35 f39d1bb4d7834a6ba529a16ab8921ed2 +msgid "New fashion: Use slapadd to add the schemas" +msgstr "" + +#: ../tutorial/troubleshooting.rst:37 e8349577bee7420aac4743631a866e89 +msgid "Be careful to stop your ldap server before running ``slapadd``" +msgstr "" + +#: ../tutorial/troubleshooting.rst:46 fc33c258f8374c7798e4a12514b0c1cc +msgid "How to manually generate the OIDC keypair?" +msgstr "" + +#: ../tutorial/troubleshooting.rst:50 66f74b4b66584e609d3835f218254761 +msgid "" +"The keypair generation can be automatically done using the :ref:`install " +"command `." +msgstr "" + +#: ../tutorial/troubleshooting.rst:52 11a4a2a8235a4d0ba8bb724d14003fd8 +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 "" + diff --git a/doc/locales/fr/LC_MESSAGES/features.po b/doc/locales/fr/LC_MESSAGES/features.po deleted file mode 100644 index 25f3a788..00000000 --- a/doc/locales/fr/LC_MESSAGES/features.po +++ /dev/null @@ -1,649 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:26+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: fr \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"Generated-By: Babel 2.16.0\n" - -#: ../features.rst:9 3a39687e5bb049d585c3109447fa1161 -msgid "Features" -msgstr "" - -#: ../features.rst:11 ec85227d7e8a415b9d94c7e8a290495d -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 1d01709835b447ffb8daf9945e64d9c4 -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 446f2f01004a4f3c828b318afd18bcfe -msgid "Web interface" -msgstr "" - -#: ../features.rst:21 297d50ea1e8f4b90928ff18dc836cfde -msgid "" -"Canaille web interface can be used either in :doc:`production environments " -"` or locally for development purposes." -msgstr "" - -#: ../features.rst:26 2a5db38617a44ed596d35c10bc540bd8 -msgid "Profile management" -msgstr "" - -#: ../features.rst:28 ../features.rst:217 9d832867dc5e4b0285f6b185b0ee547b -#: 581a25e539814b12a1c252f0242be431 -msgid "Profile" -msgstr "" - -#: ../features.rst:33 877ea17f9ff844119de7ba5e5e5cd0a5 -msgid "Canaille provides an interface to manage user profiles." -msgstr "" - -#: ../features.rst:35 45d88de9e4524c44a5e80daf0b1357b1 -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:37 74f24b0d610a49bf84dd6c96ff53146e -msgid "" -"Depending on their ACL :class:`permissions `, users can either be allowed to edit their own profile, edit " -"any user profile, or do nothing at all." -msgstr "" - -#: ../features.rst:42 087ae1a46d26413ea42ce44662933f0b -msgid "Email confirmation" -msgstr "" - -#: ../features.rst:44 82810b7b19d94141b8547b43bd9d8ce8 -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:46 80defdc6c0aa4920a5fa8577acaf6fa6 -msgid "" -"Users with :attr:`user management permission ` can set user emails without confirmation though." -msgstr "" - -#: ../features.rst:51 351ea71b5b1a4827a53592645bb8a80c -msgid "Group management" -msgstr "" - -#: ../features.rst:53 ../features.rst:140 e4a31dade59b407a9d8df7a0314d1cf2 -#: 54541ece476c4d408288f0337784a03c -msgid "Group edition" -msgstr "" - -#: ../features.rst:58 a2cfe7269999424bb8748a13a95a10da -msgid "" -"In a similar fashion than :ref:`profile management " -"` Canaille provides an interface to manage user " -"groups." -msgstr "" - -#: ../features.rst:60 fbb7991d7a63424c9ae6e0fc89f8242c -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 "" - -#: ../features.rst:63 ../features.rst:83 ../features.rst:149 -#: 7b47c38d02644c89a065a8cfb094e012 766b52d4eab245d2b3f3aa8aa7e0c282 -#: e0236e78322244a3841b0724694a48d3 -msgid "Todo" -msgstr "" - -#: ../features.rst:64 39c58580da09403bbb22cfe1d5598ce3 -msgid "" -"At the moment adding an user to a group can only be achieved by the user " -"settings page, but we are :issue:`working to improve this <192>`." -msgstr "" - -#: ../features.rst:66 c60fc3e5961e42758063d4367d906411 -msgid "" -"Group management can be enable with a :attr:`dedicated user permission " -"`." -msgstr "" - -#: ../features.rst:69 a78a3715d55844b0900f9916b6f2e7b2 -msgid "" -"Due to limitations in the :ref:`LDAP backend `, " -"groups must have at least one member. Thus it is not possible to remove the " -"last user of a group without removing the group." -msgstr "" - -#: ../features.rst:75 8f7758bdc0ac4769a31161c485c1ec8e -msgid "User authentication" -msgstr "" - -#: ../features.rst:77 4b2d976568b14c4688f875adf9ccc562 -msgid "" -"Unless their account is :ref:`locked `, users can " -"authenticate with a login and a password." -msgstr "" - -#: ../features.rst:81 e682b2ba5dd74bdd9ffaa86d2abc9f3f -msgid "" -"For security reasons, it won't be told to users if they try to sign in with " -"an unexisting logging, unless explicitly :attr:`set in the configuration " -"`." -msgstr "" - -#: ../features.rst:83 dfc328ffe1af4b918e2192b2ed14c637 -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:88 3fefd07ff8c24b16a00c2120e46e291a -msgid "User registration" -msgstr "" - -#: ../features.rst:90 b18b55ebc00a442db9a09ea5a58f1a9a -msgid "" -"Users can create accounts on Canaille if the feature :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:92 517379413a544000b36f09ab035a2f4b -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:97 ../features.rst:99 ba38afb338ce43c39b44dd7678121504 -#: 037e813626fc424fa2cc303b6de32626 -msgid "User invitation" -msgstr "" - -#: ../features.rst:104 67a415dce2ce449ca0f56e5feb2361d0 -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:106 d591d5398e774b3197cef2e740c83efd -msgid "" -"The link goes to a registration form, even if regular :ref:`user " -"registration ` is disabled." -msgstr "" - -#: ../features.rst:108 aefa9516cd6d42dd8a736bc06a34fa39 -msgid "It can be automatically sent by email to the new user." -msgstr "" - -#: ../features.rst:113 7c82637f2cc94bbb9d331b0f22869ed0 -msgid "Account locking" -msgstr "" - -#: ../features.rst:115 358a5fa4e02744ed91fa6a8826130611 -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:118 712ea6e2257f4ba482b7e89f2ff5c19a -msgid "At the moment a user account is locked:" -msgstr "" - -#: ../features.rst:120 d681a46a4db2457cba4192322da21184 -msgid "their open sessions will be closed;" -msgstr "" - -#: ../features.rst:121 fdc693b1bf024fb2a7bbf3097f24d022 -msgid "they won't be able to sign in again;" -msgstr "" - -#: ../features.rst:122 23cd8877517d4f3c908e8ea1092dc9a6 -msgid "no new OIDC token will be issued;" -msgstr "" - -#: ../features.rst:124 9882d29f0007492aae9caf2506288533 -msgid "" -"User accounts must be manually unlocked by an administrator for the users to " -"regain access to those actions." -msgstr "" - -#: ../features.rst:129 e712f4f9b0a2427b8dccd43a4b4544d8 -msgid "Account deletion" -msgstr "" - -#: ../features.rst:131 81f0498b175a421da02ae969416b916f -msgid "" -"Users with the :attr:`account deletion permission ` are allowed to delete their own " -"account." -msgstr "" - -#: ../features.rst:133 2d5535359306451d834db61758cbe926 -msgid "" -"Users that also have the :attr:`user management permission ` are also allowed to delete other " -"users accounts." -msgstr "" - -#: ../features.rst:138 f6e498c86dbd4e17b624c321fecf54d1 -msgid "Password recovery" -msgstr "" - -#: ../features.rst:145 61f35c72876242e8bf43e9eb0d75995b -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:147 d4555d16bbe249b7979cbb34c57f7055 -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:151 297ffc93f03d4d43b6c47646eca19f13 -msgid "Check that password recovery is disabled on locked accounts." -msgstr "" - -#: ../features.rst:156 2ddc03cfab5c4c31881424d5944c493c -msgid "Password reset" -msgstr "" - -#: ../features.rst:158 9049c1cbc2f84041b403c388f29ad854 -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:164 53795873eea346f2b2daab2be04d8fd3 -msgid "Password initialization" -msgstr "" - -#: ../features.rst:166 22da6b0b0f9a477098237bf75b5ffc4b -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:173 2426c9af237c4b3ea3edf39378ee2058 -msgid "Password compromission check" -msgstr "" - -#: ../features.rst:175 a154a903f2f0465da6ba9cb8444bbdac -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:180 91a7eae46075432fab0f6529e0ead921 -msgid "Internationalization" -msgstr "" - -#: ../features.rst:182 3793ed670fe140729604efbd86ea8865 -msgid "Translation state" -msgstr "" - -#: ../features.rst:187 a482d12153c5462eab6e6ef518bb541e -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:193 64f68b0347c643d28ca265fa7577c95c -msgid "Lightweight" -msgstr "" - -#: ../features.rst:195 c3559f4e91a74373b92d046a875eac79 -msgid "" -"The web interface is lightweight, so everything should load quickly. There " -"is a few Javascript here and there to smooth the experience, but no " -"Javascript at all is needed to use Canaille." -msgstr "" - -#: ../features.rst:199 21b1a787a1074ddc8ae6fe66545a181a -msgid "Customizable" -msgstr "" - -#: ../features.rst:201 d7748aa3f91b475ebed5edb2d35f759b -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:204 5fe5c111cd0f4d3ca2a8e7ca01ef43c6 -msgid "" -"If you need more you can also use a :attr:`custom theme `." -msgstr "" - -#: ../features.rst:209 6fb933f34307459880de26e3d0f76c6a -msgid "OpenID Connect" -msgstr "" - -#: ../features.rst:211 bd2005e331d64c979880b847a8fa5a6f -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:215 3235a6f44bd444d38fd7581ffdeadd6a -msgid "Consent management" -msgstr "" - -#: ../features.rst:223 168e125d08c041a79098cb1bfa3d13e9 -msgid "" -"Users can give their consent to application requesting access to their " -"personal information, and then revoke those consent at their will." -msgstr "" - -#: ../features.rst:227 aa606f0a64b84ebdb4e29bee96f4b414 -msgid "Application management" -msgstr "" - -#: ../features.rst:229 eaa719c553584eb6954da4d45778454b -msgid "" -"Users with the right :attr:`permission ` can manager OIDC clients through the web interface." -msgstr "" - -#: ../features.rst:231 9256e6eaf7174fa8a4e7347cd03b6ac8 -msgid "" -"In some cases, it might be useful to avoid the consent page for some trusted " -"applications, so clients can be pre-consented." -msgstr "" - -#: ../features.rst:234 3faf6b2661f3434bbca8b2aaa9b7d6d7 -msgid "Discovery" -msgstr "" - -#: ../features.rst:236 e935be55bc964a48a582e36f9791c15a -msgid "" -"Canaille implements the :doc:`Discovery specifications ` so most of the applications plugged to Canaille can auto-" -"configure themselves." -msgstr "" - -#: ../features.rst:239 695ba3a2a77640908c9f4d2f02a4f8b2 -msgid "Dynamic Client Registration" -msgstr "" - -#: ../features.rst:241 43c52faa27c84af18f3ada9bffe6d19d -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:246 f8ce532f519349f48429c1b170cdb484 -msgid "Command Line Interface" -msgstr "" - -#: ../features.rst:248 2f40208e5c1347a48420317d62aaa74d -msgid "" -"Canaille comes with a :abbr:`CLI (Command Line Interface)` to help " -"administrators in hosting and management." -msgstr "" - -#: ../features.rst:250 f29e92c5ddaf47ce9483715190c894bb -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:253 22885696b0da40219dbbabf940320082 -msgid "" -"There are also tools to :ref:`fill your database ` with random " -"objects, for tests purpose for instance." -msgstr "" - -#: ../features.rst:258 a094d21d84254528a930c248f4a593b4 -msgid "Backends" -msgstr "" - -#: ../features.rst:260 7fb43b7df88a4baea1dfda09d24dffcd -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:264 df7ac02ac2a945069ee389b77b9b5a6b -msgid "Miscellaneous" -msgstr "" - -#: ../features.rst:269 bf688d8476c643a68687292de9336a89 -msgid "Logging" -msgstr "" - -#: ../features.rst:271 38d1832a542446019b042e1f939b488f -msgid "" -"Canaille writes :attr:`logs ` for every important event happening, to help administrators " -"understand what is going on and debug funky situations." -msgstr "" - -#: ../features.rst:273 42a168890026463880fcc0464d7e681a -msgid "" -"The following security events are logged with the tag [SECURITY] for easy " -"retrieval :" -msgstr "" - -#: ../features.rst:275 7876d69b9324404c8b5d6b8211f22a38 -msgid "Authentication attempt" -msgstr "" - -#: ../features.rst:276 5fc6499706b74b38a3bcc4d328a4267f -msgid "Password update" -msgstr "" - -#: ../features.rst:277 59baea279a0444c7a03276f643a9a546 -msgid "Email update" -msgstr "" - -#: ../features.rst:278 316b8f1a64d0492a89a3a3165985ad5b -msgid "Forgotten password mail sent to user" -msgstr "" - -#: ../features.rst:279 d7b3795158de483783e4c7ee82348b46 -msgid "Token emission" -msgstr "" - -#: ../features.rst:280 5e4175d55093488c8125b636c395129c -msgid "Token refresh" -msgstr "" - -#: ../features.rst:281 6dbf275ffef842c1bc6f3bb0989af951 -msgid "Token revokation" -msgstr "" - -#: ../features.rst:282 aefb033cc70946629968cda2c5659143 -msgid "New consent given for client application" -msgstr "" - -#: ../features.rst:283 bdd21f6ee436441db570665db0c47242 -msgid "Consent revokation" -msgstr "" - -#: ../features.rst:288 1665d88722ec4f1bb7686957622bb5d1 -msgid "A tool for your development and tests" -msgstr "" - -#: ../features.rst:290 1bdff890d0da4b7aa3b3df7a1270068e -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:292 466b386bf92b499696f22cf6f9889b22 -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:294 02bd7bfe0c194ca2a4ed5b305d64174d -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:297 e0c00b45559342139b38b56d45c12df5 -msgid "Roadmap" -msgstr "" - -#: ../features.rst:300 889eb75d6c2f4c2fb2491c38b16c2cd5 -msgid "Bêta version" -msgstr "" - -#: ../features.rst:302 e4634fcad59b43549f2ac5d023fe25da -msgid "" -"To go out of the current Alpha version we want to achieve the following " -"tasks:" -msgstr "" - -#: ../features.rst:304 c24037d78a274d81a945064251654805 -msgid ":issue:`Configuration validation using pydantic <138>`" -msgstr "" - -#: ../features.rst:307 1a8941a892c041c98e2bdfe731944341 -msgid "Stable version" -msgstr "" - -#: ../features.rst:309 8bcca1796eb34ea39311fadde971e5df -msgid "" -"Before we push Canaille in stable version we want to achieve the following " -"tasks:" -msgstr "" - -#: ../features.rst:312 429e891c2c4a41d9882840e8901807c2 -msgid "Security" -msgstr "" - -#: ../features.rst:314 99812b3d9e054b92829a1d06207fd56f -msgid ":issue:`Password hashing configuration <175>`" -msgstr "" - -#: ../features.rst:315 5fc38e63289c4376aafefbdae1d08ad1 -msgid ":issue:`Authentication logging policy <177>`" -msgstr "" - -#: ../features.rst:316 172f15d0a07a475495af94228857aa19 -msgid ":issue:`Intruder lockout <173>`" -msgstr "" - -#: ../features.rst:317 7413890a044d4860a69e304c463b2075 -msgid ":issue:`Password expiry policy <176>`" -msgstr "" - -#: ../features.rst:318 1af8ce062a2f49dea0719295031dac36 -msgid ":issue:`Multi-factor authentication: Email <47>`" -msgstr "" - -#: ../features.rst:319 559b8aac8ec1464e9de0fc12d7cef1e3 -msgid ":issue:`Multi-factor authentication: SMS <47>`" -msgstr "" - -#: ../features.rst:320 0fa5c83275464d2daef9a61ff962068f -msgid ":issue:`Multi-factor authentication: OTP <47>`" -msgstr "" - -#: ../features.rst:323 80a148a15619443f96604259f8ce7936 -msgid "Packaging" -msgstr "" - -#: ../features.rst:325 783c51aa863f4dc694f5e51d8a364d62 -msgid ":issue:`Nix package <190>`" -msgstr "" - -#: ../features.rst:326 22df588b38954d95ba47de753196bbbd -msgid ":issue:`Docker / OCI package <59>`" -msgstr "" - -#: ../features.rst:329 4e6d78ec6bcf49e3aebeae146bd874b1 -msgid "And beyond" -msgstr "" - -#: ../features.rst:331 851c474a5f55472bb69e0980e85d2c53 -msgid ":issue:`OpenID Connect certification <182>`" -msgstr "" - -#: ../features.rst:332 ea230b81c9854692a1fe56d26fe831ba -msgid ":issue:`SCIM support <116>`" -msgstr "" diff --git a/doc/locales/fr/LC_MESSAGES/index.po b/doc/locales/fr/LC_MESSAGES/index.po deleted file mode 100644 index cfef1488..00000000 --- a/doc/locales/fr/LC_MESSAGES/index.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/index.rst:15 f44fd8eed33248cb86e37736bd2c9a51 -msgid "Lightweight Identity and Authorization Management" -msgstr "Serveur d’identité et d'autorisations ultra-léger" - -#: ../../doc/index.rst:19 581631e22f4e47098270d48215814ba8 -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 "" - -#: ../../doc/index.rst:27 d5af5012db4f40efae832c81859a8dc4 -msgid "Profile management" -msgstr "" - -#: ../../doc/index.rst:31 6a7f0738d1414a18b39ca620be9d7e71 -msgid "User profile and groups management, Basic permissions" -msgstr "" - -#: ../../doc/index.rst:34 339b2e015a9442ebbf5e94747fcc6250 -msgid "User authentication" -msgstr "" - -#: ../../doc/index.rst:38 e049fc56882742a2ad91c734bda3472b -msgid "" -"Authentication, registration, email confirmation, \"I forgot my " -"password\" emails" -msgstr "" - -#: ../../doc/index.rst:40 b1062145a9da47fdb6c68e6d6f69c034 -msgid "SSO" -msgstr "" - -#: ../../doc/index.rst:44 9b17b5386fca4972bc24ee5990cfa994 -msgid "OpenID Connect identity provider" -msgstr "" - -#: ../../doc/index.rst:46 e0788c1957c64cf2908e69ad503ada1e -msgid "Multi-database support" -msgstr "" - -#: ../../doc/index.rst:50 0e63c7d9785447b4aae14b4464f1d0f8 -msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship" -msgstr "" - -#: ../../doc/index.rst:52 0e935d0e908a4b2dae80193f7e4f9434 -msgid "Customization" -msgstr "" - -#: ../../doc/index.rst:56 50f5dc14580f4f2db4e8c307c031c3e2 -msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!" -msgstr "" - -#: ../../doc/index.rst:58 9e5106a0e8874b16b7a1031cb7b266e5 -msgid "Developers friendliness" -msgstr "" - -#: ../../doc/index.rst:62 dc6773fa0ab4474181277ecdaaafc2e8 -msgid "" -"Canaille can easily fit in your unit tests suite or in your Continuous " -"Integration." -msgstr "" - -#: ../../doc/index.rst:66 69e3bf94cb39467d9d0836d73de77f58 -msgid ":doc:`Full feature list `" -msgstr "" - -#: ../../doc/index.rst:70 f8d60881cb6d4f59ad97ea3d7b740de5 -msgid "Documentation" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/references.po b/doc/locales/fr/LC_MESSAGES/references.po deleted file mode 100644 index 5d74d0e6..00000000 --- a/doc/locales/fr/LC_MESSAGES/references.po +++ /dev/null @@ -1,2092 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: fr \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"Generated-By: Babel 2.16.0\n" - -#: ../references/commands.rst:2 952e9de33f1146bb9c629b25406d5980 -msgid "Command Line Interface" -msgstr "" - -#: ../references/commands.rst:4 194fc88dbebc4a6083904a2cd0fdece1 -msgid "" -"Canaille provide several commands to help administrator manage their data." -msgstr "" - -#: ../references/commands.rst:6 af944605783345eb930f7e39d8cb2206 -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 da3dade2207449f8ab1f5c8cd6df0b59 -msgid "Test the configuration file." -msgstr "" - -#: ../../canaille check:1 107826c804894ffbaf6be5108735e8bd -msgid "" -"Attempt to reach the database and the SMTP server with the provided " -"credentials." -msgstr "" - -#: ../../canaille clean:1 a75c02957679475c88a5bf48c43b54df -msgid "Remove expired tokens and authorization codes." -msgstr "" - -#: ../../canaille install:1 226b4c7446b04bc4826250bfa6d83978 -msgid "Installs canaille elements from the configuration." -msgstr "" - -#: ../../canaille install:1 87ed406dcb7b4335b8d4cd75a68b65dd -msgid "" -"For instance, depending on the configuration, this can generate OIDC keys or " -"install LDAP schemas." -msgstr "" - -#: ../../canaille populate:1 d3168620868447108806d14d13dd47c6 -msgid "Populate the database with generated random data." -msgstr "" - -#: ../references/commands.rst:0 e7127155eec846ed9792494143cca743 -#: 53e6c68a54434bf587a1dca8b81d3b74 a42086af15bf4297904cf39c2b4df7c7 -#: c043029fc2fb47fbb2bd318d1a4b08ca 8a09860a6b1c4ad8b08bb9fb44e6982b -#: 396565c1408a45bf9880d2e4d306d416 e657b473cd7743f9bfc6aeef3aac4935 -#: 082b69dc7add4bddb93489557fa9a6a2 ba9576b3bf70496fb522695af86f0169 -#: 032f8d3e26dc4bbd9d4660836afb1f75 fe2abe123e9e41bf996d8f88ce42df12 -#: 98063029b2d444d69399c4c4fb1266bb c67517b916f44f7689513efa4606b20d -#: a3aaff84e9ca4ccba1f7f50ee8508b1c e69fc539c5df4426894fd9203c84f432 -#: f354375bb4e242d6818715ff5956b716 0e2c24d22a3a4ee288c1c3fc86808d61 -#: ca9251891c7e45109894c356eb0f4a00 ea573076e79447deb9b69c44f0b08970 -#: cb20ee676a1748ddadbe90a97f25ceba -msgid "Options" -msgstr "" - -#: ../../canaille populate:1 3b6d5755e8de425b91874a9cf6018dca -msgid "Number of items to create" -msgstr "" - -#: ../../canaille populate groups:1 859c9d120bba4152b20f456cd307473d -msgid "Populate the database with generated random groups." -msgstr "" - -#: ../../canaille populate groups:1 cd243a1399bb4a3f8ea0704869d34375 -msgid "The maximum number of users that will randomly be affected in the group" -msgstr "" - -#: ../../canaille populate users:1 7670817be64a430aadf12b14d6ffc338 -msgid "Populate the database with generated random users." -msgstr "" - -#: ../../canaille get:1 459ab849c8d748c498f5a73cbcae971b -msgid "Read information about models." -msgstr "" - -#: ../../canaille get:1 8805aa3801d74e04978bde21d18ab711 -msgid "Options can be used to filter models::" -msgstr "" - -#: ../../canaille get:1 8cd027c62978471494b3b89bfa9bdcd4 -msgid "Displays the matching models in JSON format in the standard output." -msgstr "" - -#: ../../canaille get authorizationcode:1 e4374f3cf425474197f3c4b15912e986 -msgid "Search for authorizationcodes and display the matching models as JSON." -msgstr "" - -#: ../../canaille get client:1 1c20673de33e4126adcba9bccd53285b -msgid "Search for clients and display the matching models as JSON." -msgstr "" - -#: ../../canaille get consent:1 f66367e5fa9d42d9b3bdc8dcadb54f71 -msgid "Search for consents and display the matching models as JSON." -msgstr "" - -#: ../../canaille get group:1 abf63bec613349b59c927bd749a6e121 -msgid "Search for groups and display the matching models as JSON." -msgstr "" - -#: ../../canaille get token:1 b974b4eb0d394694b5faae2a0c04f38a -msgid "Search for tokens and display the matching models as JSON." -msgstr "" - -#: ../../canaille get user:1 bb9a27c5a07f42908658a281836ff323 -msgid "Search for users and display the matching models as JSON." -msgstr "" - -#: ../../canaille set:1 fb364298ebb14aed9d991b46d2f69e26 -msgid "Update models." -msgstr "" - -#: ../../canaille set:1 45f0840d682f42e0b83984f17e352b6e -msgid "The command takes an model ID and edit one or several attributes::" -msgstr "" - -#: ../../canaille set:1 1fbb909df2f44fb8b6a50695ce0e782e -msgid "Displays the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille set authorizationcode:1 52fee42193e14ca0bd1803ad566d909b -msgid "" -"Update a authorizationcode and display the edited model in JSON format in " -"the standard output." -msgstr "" - -#: ../../canaille delete authorizationcode:1 set -#: be7a57837f08444da95b3fa3ad885966 5261952836ed436ab47a4342386bf1c2 -msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" -msgstr "" - -#: ../references/commands.rst:0 d563c42b2df141478656723031367503 -#: 6c67221152cc4edf9830b2460f20959f bf627fa413024a309608bde86595a56a -#: e18a29eaecc941aeacc574e5cf09d18a a673745e74254db99f2005aaf7f94071 -#: 4e28ecd386fd453ca21742afb29a2d7f 08bc45830f29458d80fcb6116855abdb -#: 6e2726cc252a49d8bf7c0ac7dd9e5edc d2733aa168284d6d9af70ac1b1605e2d -#: 5886f8e598e74ad5b102a9143d68218c 95c785769ca14c3b9317997071900fbc -#: 70b189a9f8ab4a29801e20dcfdfea66f -msgid "Arguments" -msgstr "" - -#: ../../canaille delete authorizationcode:1 client:1 consent:1 group:1 token:1 -#: user:1 set 1f9548e4636448588b046b89b13f06fa 7498b2d09e9e4a60be65295d16a2a1b2 -#: 885dbff91b984704aaea33821b4886e0 56949230a767406baa8c3012598ad874 -#: dff59d31ec68436c8ea934fb4552d92e 8a56d543cfad4505b73ceea0a3653206 -#: fe4ce93cffc4483688d43a05aeab42c8 a44fcccdfd8b4aaf8d246598391965ca -#: 82b9d081f97b4256bb060e62306dfce3 fd1b9c6fb27343c7bf2ea1f2be5b193a -#: 14277de1064f428e87212628d366a212 ad6cdeab44c64cf4bc87bbbe0c5e3a83 -msgid "Required argument" -msgstr "" - -#: ../../canaille set client:1 a109d961bdbe41b481db9ee1add815df -msgid "" -"Update a client and display the edited model in JSON format in the standard " -"output." -msgstr "" - -#: ../../canaille delete client:1 set f3f79ebe2f674e4bb49f075096b5912f -#: 24749d9fb8e34ed793cdd18066897e64 -msgid "IDENTIFIER should be a client id or client_id" -msgstr "" - -#: ../../canaille set consent:1 f3e30b461fef4b0d90cd10eedc0fa6c1 -msgid "" -"Update a consent and display the edited model in JSON format in the standard " -"output." -msgstr "" - -#: ../../canaille delete consent:1 set aac283fa3c174e55977327d4bc1dda14 -#: f5c31a271cf147fdb38b9c051d7c1c58 -msgid "IDENTIFIER should be a consent id or consent_id" -msgstr "" - -#: ../../canaille set group:1 406840fc8dd84d029b49ecf2b9b3700e -msgid "" -"Update a group and display the edited model in JSON format in the standard " -"output." -msgstr "" - -#: ../../canaille delete group:1 set 05ab1dbdf30947ef983a983cce57e09b -#: 989cc201be1c47aaaee1b0207becb31f -msgid "IDENTIFIER should be a group id or display_name" -msgstr "" - -#: ../../canaille set token:1 623a2682695c4ed3840eda6790dd89b8 -msgid "" -"Update a token and display the edited model in JSON format in the standard " -"output." -msgstr "" - -#: ../../canaille delete token:1 set 968c3abd396a4b32ab3d264406a29ab0 -#: 617d8bdf4b934db0b05284196d21fc1b -msgid "IDENTIFIER should be a token id or token_id" -msgstr "" - -#: ../../canaille set user:1 c461b718f10d4f74af31074086fe33d4 -msgid "" -"Update a user and display the edited model in JSON format in the standard " -"output." -msgstr "" - -#: ../../canaille delete user:1 set 6a3dcdb5ec744db69979ea803522f613 -#: f1f1d1b029644f529c7691615b5316c3 -msgid "IDENTIFIER should be a user id or user_name" -msgstr "" - -#: ../../canaille create:1 dea54ad432f64871887f81e03116d3be -msgid "Create models." -msgstr "" - -#: ../../canaille create:1 3a821969460649af99c84c9963924e3c -msgid "The model attributes can be passed as command options::" -msgstr "" - -#: ../../canaille create:1 f437609088d74a1db4e7f895990fe794 -msgid "Displays the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille create authorizationcode:1 e8b4745d5c7d4ef895ba1686b9612132 -msgid "" -"Create a new authorizationcode and display the created model in JSON format " -"in the standard output." -msgstr "" - -#: ../../canaille create client:1 f65cec57e4e3459f809a8b5b2d1671c0 -msgid "" -"Create a new client and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille create consent:1 9e42b40acaa14367af9e2f63eff68adc -msgid "" -"Create a new consent and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille create group:1 af50ef69d61c4733a9f4c544b1501349 -msgid "" -"Create a new group and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille create token:1 818461fc081a4f158dbca7303aa71193 -msgid "" -"Create a new token and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille create user:1 418c85b7a33a40da88d914c0801d419d -msgid "" -"Create a new user and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille delete:1 917309f374fe4e6b9ad7960e932116d5 -msgid "Delete models." -msgstr "" - -#: ../../canaille delete:1 57d37b3ed7de43a28e08cde8eb20fde9 -msgid "The command takes a model ID and deletes it::" -msgstr "" - -#: ../../canaille delete authorizationcode:1 1a572edd3e66418ebad7a8d9f9e3eef9 -msgid "Delete a authorizationcode." -msgstr "" - -#: ../../canaille delete client:1 9815eae4699d46fea1d4445e29e46e25 -msgid "Delete a client." -msgstr "" - -#: ../../canaille delete consent:1 7df50d8fbec94e33874223bcae810618 -msgid "Delete a consent." -msgstr "" - -#: ../../canaille delete group:1 58b8c923bf784729b69540c863d69ee5 -msgid "Delete a group." -msgstr "" - -#: ../../canaille delete token:1 53e0d81e98484c4ab1f10c3e2b36763b -msgid "Delete a token." -msgstr "" - -#: ../../canaille delete user:1 f854b40ae54045bd89e19a03173a8a57 -msgid "Delete a user." -msgstr "" - -#: ../references/configuration.rst:2 f352927b3e674164b4ee528d290e1ba3 -msgid "Configuration" -msgstr "" - -#: ../references/configuration.rst:5 449fdd3866354144a1df0b0541208b76 -msgid "Load the configuration" -msgstr "" - -#: ../references/configuration.rst:7 1e797371bae94f50b7037acaf549b6fa -msgid "" -"Canaille can be configured either by a environment variables, environment " -"file, or by a configuration file." -msgstr "" - -#: ../references/configuration.rst:10 0377b9dd81fd41c79cdf3f8a8245de59 -msgid "Configuration file" -msgstr "" - -#: ../references/configuration.rst:12 9023a7e764a54abda473435fb2c67556 -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:11 -#: ../references/configuration.rst:14 ../references/configuration.rst:85 -#: 275d6238f6de4292bc8fa82eace110b7 954a70d4151143f4af9f3e509533dd69 -#: ff44591b60384f37b0094fbe5883142d -msgid "config.toml" -msgstr "" - -#: ../references/configuration.rst:26 7ffbc024b9f44c4092065cff332026b3 -msgid "" -"You can have a look at the :ref:`example file ` for inspiration." -msgstr "" - -#: ../references/configuration.rst:29 be2150038b8a47e0971dd82518455d15 -msgid "Environment variables" -msgstr "" - -#: ../references/configuration.rst:31 7b656666c8b64597b79511e46faa57a1 -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:36 0379beff48534aa59770a545033aedf7 -msgid "" -"For environment vars, the separator between sections and variables is a " -"double underscore: ``__``. For instance, the ``NAME`` var in the " -"``CANAILLE`` section shown above is ``CANAILLE__NAME``." -msgstr "" - -#: ../references/configuration.rst:40 2505d4af33c547ef93f09be4282e8aec -msgid "Environment file" -msgstr "" - -#: ../references/configuration.rst:42 a8a58f82f61b4fc0b28434e743ed6de6 -msgid "" -"Any environment variable can also be written in a ``.env``, and will be read " -"if present." -msgstr "" - -#: ../references/configuration.rst:44 de874bfbe8b74294a9418700556580ec -msgid ".env" -msgstr "" - -#: ../references/configuration.rst:62 66e3119e3a3649b6829112cc1d41e11b -msgid "Parameters" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:1 5b109da5244d4dfbabb218e4c6bc5d47 -msgid "" -"The top-level namespace contains holds the configuration settings unrelated " -"to Canaille." -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:4 0cf177f44bba4097827a16b1a2f1d6c0 -msgid "The configuration paramateres from the following libraries can be used:" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:6 d6bc590bfed047e8b86af354be80fe03 -msgid ":doc:`Flask `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:7 855b6f96105a43b094b402a616bbae30 -msgid ":doc:`Flask-WTF `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:8 3c35731764054bff9285d6bfb79a7785 -msgid ":doc:`Flask-Babel `" -msgstr "" - -#: ../../canaille/app/configuration.py:docstring of -#: canaille.app.configuration.RootSettings:9 ac4465974e9f44c7b879303fdb40fc4f -msgid ":doc:`Authlib `" -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1 -#: a2761715a159492ca4c5180c65189c58 -msgid "The Flask :external:py:data:`DEBUG` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3 -#: 5b40ae56684347e0a6f369b4f2896691 -msgid "This enables debug options." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7 -#: ab54e5fb83cc40c6a1867ec701bb051b -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 -#: c66f04b99f7649b49ad45b30d2e25aa9 -msgid "" -"The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." -msgstr "" - -#: ../../docstring of -#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 -#: d13d3b6ef4c0498bbfbe74ede138249f -msgid "This sets the url scheme by which canaille will be served." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1 -#: d5dcfdec96404860acab981f826562ba -msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3 -#: 7e8c4487ab1446039177843b912da108 -msgid "You MUST change this." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1 -#: 7d62d0ae8c664a048ef164ff8efef75e -msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." -msgstr "" - -#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3 -#: 965334877d854795a264b6ceedcac212 -msgid "This sets domain name on which canaille will be served." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:1 0a4a605e6a1940fab498c34200639e5c -msgid "The settings from the ``CANAILLE`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.CoreSettings:3 5a95511f181a4890bb8b9083a862ccd3 -msgid "" -"Those are all the configuration parameters that controls the behavior of " -"Canaille." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1 -#: 5d0ddaed2d734874b3e0a61dfda14559 -msgid "" -"Mapping of permission groups. See :class:`ACLSettings` for more details." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3 -#: 539d67c478024eda83b002c329156ba3 -msgid "The ACL name can be freely chosen. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: 8703a060664b4b93b202ae8a55c9ab90 -msgid "Administration email contact." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 -#: 8956b1369e7546a39b76b74940e3fcce -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 -#: 8670b9d62d284afd847234da2ee795ae -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:4 -#: 0eda2a2a767649dc980c8e065d9169a6 -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.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: f4b1659c97c9420c9e67025ec44f290d -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 -#: b2576eba8d9d41bfadecc6d10f66cb83 -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 -#: 57f195e48f3d4105b171b26b22801fe0 -msgid "" -"If :py:data:`True`, then users can freely create an account at this instance." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 -#: 1fe396b30d184f76ab35cf310d689ba8 -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 -#: 8c747e3998e148b397f3b3afaedfc251 -msgid "You favicon." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3 -#: c71c1dc15e314542924691141e9ceba0 -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 -#: 91fdf12a588442899a9e93f1a13edbb2 -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:5 -#: 7f6526364ecf44d0a6ea4f83b986cd99 -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 -#: 64629144df814d019eed25c5b1130301 -msgid "Accelerates webpages loading with asynchronous requests." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 -#: 239e3d72e0aa42c996215debaa36a92f -msgid "The validity duration of registration invitations, in seconds." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: 41669e4af29b45ed9dab09dabe5858aa -msgid "Defaults to 2 days." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1 -#: 4c4ae3815e5542dc995f90e1f33a79f3 -msgid "Enables Javascript to smooth the user experience." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1 -#: 176ff367a4bc455c89f33b252c723ac9 -msgid "If a language code is set, it will be used for every user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3 -#: 63976f2340fd417f94c5efc2f31768db -msgid "If unset, the language is guessed according to the users browser." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1 -#: cbef5d40655e4b309a1dbce7f4b59cc6 -msgid "" -"Configures the logging output using the python logging configuration format:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3 -#: e7b83b790b52476891f49f70cc2c3d03 -msgid "" -"if :py:data:`None`, everything is logged in the standard error output the " -"log level is :py:data:`~logging.DEBUG` if the :attr:`~canaille.app." -"configuration.RootSettings.DEBUG` setting is :py:data:`True`, else this is :" -"py:data:`~logging.INFO`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6 -#: 52803036df304a2d91104ff033694988 -msgid "" -"if this is a :class:`dict`, it is passed to :func:`logging.config." -"dictConfig`:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7 -#: 3ba83792d3ec409694c435cbe06ddab2 -msgid "" -"if this is a :class:`str`, it is expected to be a file path that will be " -"passed to :func:`logging.config.fileConfig`" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10 -#: 289ee5ab24bd4ef68b17b81cbaa7c233 -msgid "For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1 -#: c7e469fe99bb4b71b0328349e72f0a61 -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 -#: 91a871ab33f4451a9caf95ed0da63833 -msgid "Maximum length for user password." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 -#: 1c25d71de99d4d46aa496c9df6a08c33 -msgid "" -"There is a technical limit with passlib used by sql database of 4096 " -"characters. If the value entered is 0 or None, or greater than 4096, then " -"4096 will be retained." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 -#: c8c3307fa58e4c45afb5ac1e24626972 -msgid "Minimum length for user password." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 -#: 4d73f4bca2984046b3efb3ba322cdf34 -msgid "It is possible not to set a minimum, by entering None or 0." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1 -#: 8452d4d220b24f408a3418bbf451c672 -msgid "Your organization name." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3 -#: 458bb630ef124d75ba2bbce3b58c4782 -msgid "Used for display purpose." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: 7e49f44fa7ad43f6924d762afcb43cf6 -msgid "Have i been pwned api url for compromission checks." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1 -#: 6daac624f580441ea0f641df0e7d18ad -msgid "A `Sentry `_ DSN to collect the exceptions." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3 -#: f7d352de8d494044a75175ce2c34be3e -msgid "This is useful for tracking errors in test and production environments." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1 -#: 4918c3baa9ff4a7ea370ae99df22f450 -msgid "The settings related to SMTP and mail configuration." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3 -#: 35153331cf064d90b4d8051c4363a935 -msgid "" -"If unset, mail-related features like password recovery won't be enabled." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1 -#: 5df367ed5d3f4a53b537e6c50b677c3b -msgid "The name of a theme in the 'theme' directory, or a path to a theme." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3 -#: 34d6f2a3091c4a7cb5099e15bb92ca5f -msgid "" -"Defaults to ``default``. Theming is done with `flask-themer `_." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1 -#: 7be8c0ebcee24c42bad6e4a1abecbaad -msgid "" -"The timezone in which datetimes will be displayed to the users (e.g. " -"``CEST``)." -msgstr "" - -#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: 9f062ba2827b4837971d4c34ff74a252 -msgid "If unset, the server timezone will be used." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:1 da9f430a60ed4b5e871bae9218bc2b1b -msgid "" -"The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, " -"mail related features will be disabled, such as mail verification or " -"password recovery emails." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.SMTPSettings:5 e0bad81478534132be5d8de19ba8c05e -msgid "" -"By default, Canaille will try to send mails from localhost without " -"authentication." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1 -#: 6d0e7e6a931c4f568695d714da824c78 -msgid "The sender for Canaille mails." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3 -#: 083e072e2ef24f02955bf40dca897f7d -msgid "Some mail provider might require a valid sender address." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1 -#: bf8d6260946747cd8d9db422a2977980 -msgid "The SMTP host." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1 -#: 432b9e9f148c4b79a07af984139b8b90 -msgid "The SMTP login." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1 -#: 42fab7de34b9418bb1422c74e5f9af1f -msgid "The SMTP password." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1 -#: 42d65ebe36c2450f9532a587ea0a8de2 -msgid "The SMTP port." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1 -#: 208db0a1482b42b29a2f582ff3c308d4 -msgid "Whether to use SSL to connect to the SMTP server." -msgstr "" - -#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1 -#: aebe44192def402f9c370ac7dd2386f1 -msgid "Whether to use TLS to connect to the SMTP server." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:1 04870aa4e9c046219085be74456ef180 -msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.ACLSettings:3 beaf3f3f98b14cf9862ee2505dfa97db -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 -#: ebf8c5195c7d413aa4328754379e55df -msgid ":attr:`FILTER` can be:" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3 -#: d566cef633ee456c9fad89396dea8224 -msgid "" -":py:data:`None`, in which case all the users will match this access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4 -#: a9b6fbe00f7a45b6af6430d5277888a1 -msgid "" -"a mapping where keys are user attributes name and the values those user " -"attribute values. All the values must be matched for the user to be part of " -"the access control." -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7 -#: eb050efec86e47a7b93376503248375a -msgid "" -"a list of those mappings. If a user values match at least one mapping, then " -"the user will be part of the access control" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10 -#: 5c41147889134281bfd429b0c09aaa92 -msgid "Here are some examples::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1 -#: e847d17ac0da4f4bb5752a6edf12611d -msgid "" -"A list of :class:`Permission` users in the access control will be able to " -"manage. For example::" -msgstr "" - -#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1 -#: 1f9de4fcf01040369e7a21aadfa1118e -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 -#: ab6304cad7d147b0b839335c84652984 -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 fcf4d41879b3400ba4c61ca8eeaec499 -msgid "The permissions that can be assigned to users." -msgstr "" - -#: ../../canaille/core/configuration.py:docstring of -#: canaille.core.configuration.Permission:3 3a9f55ac1eca45e5bbb75a3c3bd3e84c -msgid "" -"The permissions are intended to be used in :attr:`ACLSettings `." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1 -#: d5ef98541f8b4e1588bda2eeeaacbc5d -msgid "Allows users to delete their account." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3 -#: de8f02efc06246d1bc91e9d34c78e259 -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 -#: a2816996936a4eb292c7d9a510f41355 -msgid "Allows users to edit their own profile." -msgstr "" - -#: ../../docstring of -#: canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: de9bf735cb24406fba3aad34f3f87c7b -msgid "Allows users to take the identity of another user." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1 -#: ee8abccc752e4019a4bf8be9c1da1198 -msgid "Allows group edition and creation." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1 -#: 5e3b60a516ab41278a1a3818393050ee -msgid "Allows OpenID Connect client managements." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1 -#: b71ed1ac778a4c0eb6a0e92043fac7d4 -msgid "Allows other users management." -msgstr "" - -#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1 -#: 2b580919de714c50beeea005d433c658 -msgid "Allows OpenID Connect authentication." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:1 211693e2da0f432bb430898384f8a38f -msgid "OpenID Connect settings." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.OIDCSettings:3 399b3ba31a2a4ab593437d5ff09b3704 -msgid "Belong in the ``CANAILLE_OIDC`` namespace." -msgstr "" - -#: ../../docstring of -#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: 078d27ab0c25471ba020cd50959953e3 -msgid "" -"Whether a token is needed for the RFC7591 dynamical client registration." -msgstr "" - -#: ../../docstring of -#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: 982ecc53005e44c3af1329467f67b67c -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 -#: 8bb7098d11e5459fb0fb10fcfd92cb0e -msgid "A list of tokens that can be used for dynamic client registration." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1 -#: cebac57da84f472b9724ea2b19a88b8b -msgid "JSON Web Token settings." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: 36dd306abec64312ba0c875fc801e5e0 -msgid "Force the nonce exchange during the authentication flows." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 -#: 6221bc8bd6ba40b8868633965a26f252 -msgid "This adds security but may not be supported by all clients." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:1 1766de0ffc354f91a26f1694fc6071f0 -msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTSettings:3 009bf269cd6b4ae09467ace27f3fb76d -msgid "You can generate a RSA keypair with::" -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1 -#: a08072b1d25443b1b844772f4ff7c190 -msgid "The key algorithm." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1 -#: b954e7767c754e6baeab30f362326666 -msgid "The time the JWT will be valid, in seconds." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1 -#: c9e63d5813b04b92bd8a4a0b585b33a5 -msgid "The URI of the identity provider." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1 -#: 63966bfbb60749b884bceb1bc350a50f -msgid "The key type." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 -#: 083732255e954482a089c695f47ef978 -msgid "The private key." -msgstr "" - -#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 -#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 -#: 8cadbc77074442fdb0cc24103fb67271 c0c5f1e3e26f412f83daf672905d3fdb -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 -#: 9fcee133520d489783c254d774af74a9 -msgid "The public key." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTMappingSettings:1 -#: b300de02031f4663bd151e4cdcbc617a -msgid "Mapping between the user model and the JWT fields." -msgstr "" - -#: ../../canaille/oidc/configuration.py:docstring of -#: canaille.oidc.configuration.JWTMappingSettings:3 -#: 8dd4c6823ac84e149a02efe65e217b33 -msgid "Fields are evaluated with jinja. A ``user`` var is available." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of -#: canaille.backends.sql.configuration.SQLSettings:1 -#: 970f05f5fcb04f4f87ef2aa2b7c436bf -msgid "Settings related to the SQL backend." -msgstr "" - -#: ../../canaille/backends/sql/configuration.py:docstring of -#: canaille.backends.sql.configuration.SQLSettings:3 -#: d36c2f4f3c424297b123c782251ea5b1 -msgid "Belong in the ``CANAILLE_SQL`` namespace." -msgstr "" - -#: ../../docstring of -#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 -#: f7ef728d7d5c479485f07a29067bc859 -msgid "The SQL server URI. For example::" -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of -#: canaille.backends.ldap.configuration.LDAPSettings:1 -#: 76b7ccaf6b2c4331b5bbd89dab99e2ef -msgid "Settings related to the LDAP backend." -msgstr "" - -#: ../../canaille/backends/ldap/configuration.py:docstring of -#: canaille.backends.ldap.configuration.LDAPSettings:3 -#: b7c638b46d6f48e2a582cd52a429e21b -msgid "Belong in the ``CANAILLE_LDAP`` namespace." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 -#: f58def90f0ff4c6a9f0808da3b22f1f8 -msgid "The LDAP bind DN." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 -#: bce683900aa34e788f1048c23cac2ebc -msgid "The LDAP bind password." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 -#: 6a505bac6a524976bb673d0a5fd63f7c -msgid "The LDAP node under which groups will be looked for and saved." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 -#: 42031d1720714c0fb5b570d03c559465 -msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 -#: 2c26c317c3c641f2bd78deff9be4a3cc -msgid "The object class to use for creating new groups." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: db3ddf6effa14ec38baebd99dc50e5b2 -msgid "The attribute to use to identify a group." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 -#: dbb54871450e4c7e96d40454f3e29880 -msgid "The attribute to identify an object in the Group DN." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 -#: c410c0b67b0043048e2063397ea4a07c -msgid "The LDAP root DN." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 -#: dc829580b65647098bde180a8681398f -msgid "The LDAP connection timeout." -msgstr "" - -#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: bf2bc54274ec49ab9532e43f9db7dfea -msgid "The LDAP server URI." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 -#: 8417a756a71f4d57b9179bce44c738fd -msgid "The LDAP node under which users will be looked for and saved." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: d8c7de846fd54c1683622862a57ee7cd -msgid "For instance `ou=users,dc=mydomain,dc=tld`." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: 016c6da2807146d8b336efc419545973 -msgid "The object class to use for creating new users." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 -#: 14d6048df0344b1497539f9179bd28dc -msgid "Filter to match users on sign in." -msgstr "" - -#: ../../docstring of -#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 -#: 15d58563699e4d05b4394f603a2aa7d2 -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 -#: 7dc67476e9a241959631d0cb75a01d94 -msgid "The attribute to identify an object in the User DN." -msgstr "" - -#: ../references/configuration.rst:81 9ad50ee44eed4db98c81f6750d174085 -msgid "Example file" -msgstr "" - -#: ../references/configuration.rst:83 97c604b45a2041c991b43cab19fd784d -msgid "Here is a configuration file example:" -msgstr "" - -#: ../references/index.rst:2 983008b557cf40dab35f71a21049eac4 -msgid "References" -msgstr "" - -#: ../references/models.rst:2 022e1b3cf73440848f54dcfa34e42ba7 -msgid "Data models" -msgstr "" - -#: ../references/models.rst:4 d149fff6a989475a8be86c904d978f4c -msgid "" -"This reference details the data models used by Canaille. This is mostly " -"useful for developers." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1 -#: 89ef1d33d7924bfdb5e279d1103bbcad a462c61f57f44ad08f0a8e562830af68 -msgid "Bases: :py:class:`object`" -msgstr "" - -#: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:1 b3c50358d06640a7a9fe4e59e7fd9827 -msgid "The backend model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.BackendModel:3 a930a4499fef45d1b0942fc6c1e36b56 -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 455dfc35495747599564cc0de69b6204 -msgid "The model abstract class." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model:3 d3d24c3cf53649fa9952d0acd46baaec -msgid "It details all the common attributes shared by every models." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.created:1 -#: 0b9f08586ec4479f95610436345a2df4 -msgid "" -"The :class:`~datetime.datetime` that the resource was added to the service " -"provider." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:1 -#: 73ab147ab6f44612a5d639fc060bbaaf -msgid "" -"A unique identifier for a SCIM resource as defined by the service provider. " -"Id will be :py:data:`None` until the :meth:`~canaille.backends.models." -"BackendModel.save` method is called." -msgstr "" - -#: ../../docstring of canaille.backends.models.Model.id:5 -#: 04db3a45228d44168cbb27c89577d6dc -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 2ea5fc24d36f4c83b49bc6509fc30f36 -msgid "" -"Returns a unique value that will be used to identify the model instance." -msgstr "" - -#: ../../canaille/backends/models.py:docstring of -#: canaille.backends.models.Model.identifier:4 8de478a9d8f44e5ebf9ffd959187d3e7 -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 -#: 9b5885a4658141839d61820edf411982 -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 -#: 659528401e8e404ca22250d8a132a8af -msgid "" -"If this resource has never been modified since its initial creation, the " -"value MUST be the same as the value of :attr:`~canaille.backends.models." -"Model.created`." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: canaille.core.models.User:1 ../../canaille/oidc/basemodels.py:docstring -#: canaille.oidc.basemodels.AuthorizationCode:1 -#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1 -#: canaille.oidc.basemodels.Token:1 b0cbb8436a2e4726a04c452b6464b07c -#: a46cf872f3124dfebe8074d928294b37 490030c82e9f4ca7a39b4dd4e47c6da1 -#: 9593236b11104e0782a0ec1d2422f081 c26fabc7468147da80b51e22269685ff -#: 3266b57754fd4ab3ad8752c56797ec3f -msgid "Bases: :py:class:`~canaille.backends.models.Model`" -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1 -#: b508bfbf52f549b0a2e7036942e5ae2e -msgid "" -"User model, based on the `SCIM Group schema `_." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.display_name:1 -#: 18d85d6d4d3647f1a2ec4e540fd71f0c -msgid "A human-readable name for the Group." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.display_name:3 -#: canaille.oidc.basemodels.Client.client_id:1 732a62dcb7c14d6ebe0cbb87a056506b -#: eeba3149bca04af9b37b5b8a6942a31a -msgid "REQUIRED." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:1 -#: d3c1eb7c79cd4c329aa5889db10437c4 -msgid "A list of members of the Group." -msgstr "" - -#: ../../docstring of canaille.core.models.Group.members:3 -#: 84f35590c5e343d794d68c66b238dc99 -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 -#: 693317bbc24b4bb38a0c34eabe8c27a6 -msgid "" -"User model, based on the `SCIM User schema `_, `Entreprise User Schema Extension `_ and `SCIM Password " -"Management Extension `_ draft. Attribute description is based on SCIM and " -"put there for information purpose. The description may not fit the current " -"implementation in Canaille." -msgstr "" - -#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1 -#: d512cb33bc1b4f34910c1f3d20b00415 -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 -#: a85b1f762528426fb7c866f8acff33a7 -msgid "Identifies the name of a department." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:1 -#: ccac75608a514817bc2657221c84c8d4 -msgid "The name of the user, suitable for display to end-users." -msgstr "" - -#: ../../docstring of canaille.core.models.User.display_name:3 -#: 12cb2626a8b8428386ab833d1a57a44c -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 -#: 1d01bb2833434fefbd8e26282f88c2b5 -msgid "Email addresses for the User." -msgstr "" - -#: ../../docstring of canaille.core.models.User.emails:3 -#: 2c83d0f48a2c4b20b11e0f59a8fd1015 -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 -#: 221bb9f4d412453e8aab759ea9b8e9b1 -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 -#: 2bc5c5485b0e472383061267c89b9843 -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 -#: 1a46356c5b514ef39560fc6bf3e37a1f -msgid "" -"The full mailing address, formatted for display or use with a mailing label." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_address:4 -#: f52de344799e4ceeb276ed4f02955181 -msgid "This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.formatted_name:1 -#: 5c155ee534eb441fba949e3d9607c7ce -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 -#: b045a3658e1d46aaa2be9115e8412458 -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 -#: 3ac337f269234f93a9adee6541ae355f -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 -#: 63c40fd148cf4a49b7e68d521d7e6489 -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 bf9ca86e1fdf4aec978ae51efe4493c3 -msgid "Check whether a password has been set for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.locality:1 -#: 0d4cf2a502c74826bf7403b6740b9982 -msgid "The city or locality component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.lock_date:1 -#: 0b6933781a174c2bad8d274d52dcc8d0 -msgid "A DateTime indicating when the resource was locked." -msgstr "" - -#: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.locked:1 1cbdffaaae3d46a885a2cc92bcf846f7 -msgid "Whether the user account has been locked or has expired." -msgstr "" - -#: ../../docstring of canaille.core.models.User.organization:1 -#: 92976f5262824ee9b3e0a65fb798b8b4 -msgid "Identifies the name of an organization." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:1 -#: 2cb2af496f3042c3966013ea767e5406 -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 -#: 48b6e0f8a7164393abc72168bccfa18c -msgid "" -"Prepare the cleartext value for international language comparison. See " -"Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:12 -#: ddd96221e9c2438eb6c1d0a9dca2da76 -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 -#: d76e3ac607d140bc951e00ad3392ea2f -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 -#: 873d9d6bed204708a8d85cfe4d9d9eaa -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 -#: 43840faf65d749eba3318ec708692933 -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 -#: 88ef2343a00a4cf2ab352ac63d38dfc9 -msgid "" -"Prepares the filter value for international language comparison. See " -"Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring of canaille.core.models.User.password:35 -#: 2ca8f00a08984448bfcdd17b066e8742 -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 -#: c3f9a3035bdf47e6917199ac4358c006 -msgid "" -"The mutability of the password attribute is \"writeOnly\", indicating that " -"the value MUST NOT be returned by a service provider in any form (the " -"attribute characteristic \"returned\" is \"never\")." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:1 -#: 97901cdb7c7a48248f43e9d3172a6aef -msgid "Phone numbers for the user." -msgstr "" - -#: ../../docstring of canaille.core.models.User.phone_numbers:3 -#: 06c2bdfccac54d558c5f0996124cf0e7 -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 -#: 1b1f45abe24f408896ad3f11cc6808c7 -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 -#: 9d5908c5c4c943009e34f83028518e5c -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 -#: be3a35536d93497eb6d9d585837b2283 -msgid "The zip code or postal code component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.preferred_language:1 -#: c128776195cd492f9ad3d7949bbc3b54 -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 -#: 2f1af307075f44638377fff8773edfba -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 -#: aed0249175b44f0b9f2feb1aa515c775 -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 -#: daa70d8170444df5a30410cc87f393db -msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." -msgstr "" - -#: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.readable_fields:1 debf78051e654f52af684f36c1629415 -msgid "" -"The fields the user can read according to the :class:`configuration " -"` configuration." -msgstr "" - -#: ../../canaille/core/models.py:docstring of -#: canaille.core.models.User.readable_fields:4 797042e3224245dbb82b8e2c6c7882be -msgid "" -"This does not include the :attr:`writable ` fields." -msgstr "" - -#: ../../docstring of canaille.core.models.User.region:1 -#: adca0f9fe25e411e8e82b9fd9a78b778 -msgid "The state or region component." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:1 -#: 3a12008e383748b9a68f380f06740b99 -msgid "" -"The full street address component, which may include house number, street " -"name, P.O." -msgstr "" - -#: ../../docstring of canaille.core.models.User.street:4 -#: 28be3cbf04994e0f84565569a0cab6db -msgid "" -"box, and multi-line extended street address information. This attribute MAY " -"contain newlines." -msgstr "" - -#: ../../docstring of canaille.core.models.User.title:1 -#: bc37ec09dcf441b18e6a7a14f4fa032b -msgid "The user's title, such as \"Vice President\"." -msgstr "" - -#: ../../docstring of canaille.core.models.User.user_name:1 -#: f3748083c91b42a3a188413f1c0b9003 -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 -#: 5fb20fd2207e4f00941d6491626145fc -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 118f89cc1cbd40e1904344299ec0ff2f -msgid "" -"The fields the user can write according to the :class:`configuration " -"`." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.AuthorizationCode:1 -#: 9facc36af225404d9779eaf6bf2bfab7 -msgid "OpenID Connect temporary authorization code definition." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Client:1 3bdc94d169f4438894bf0425d195e506 -msgid "" -"OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " -"Registration protocols `_ and the `OpenID Connect RP-Initiated Logout `_ specifications." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3 -#: 9c71570390a0463e962bce31ea5088b3 -msgid "" -"OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for " -"any other registered client, though an authorization server MAY issue the " -"same client identifier to multiple instances of a registered client at its " -"discretion." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:1 -#: canaille.oidc.basemodels.Client.client_secret:1 -#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 -#: 3c32fe5a481b412bb1e1b937ee4869ec 044bd6e4946b410198e0d298277e7dd4 -#: 6c48ff3f31a641aa937776cb3fae89b3 -msgid "OPTIONAL." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3 -#: 2f4229be751d4e5caa1b9069d15f33b8 -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 -#: 956366c2776548e6a62315bcb4247b8e -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 -#: 4d83c77c154048298477394cfcb5fc9a -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 -#: dce117516b124deab7b810b6c54fa0ac -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 -#: b85460cc7e254321ac121e50eaffbd3a -msgid "REQUIRED if \"client_secret\" is issued." -msgstr "" - -#: ../../docstring of -#: canaille.oidc.basemodels.Client.client_secret_expires_at:3 -#: a760adab225b4b7f8569ac1aedcd0fe4 -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 -#: 368fa31181994524b25de364044e969d -msgid "URL string of a web page providing information about the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3 -#: 0a20833287484008ac3e4a7377b83fae -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 -#: 9b6834ade33a4cd6941bb4ce4fbbe533 -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 -#: af5b08bc89ec4d77b081ecb7134fa27f -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 -#: a98a93fb09664916a5e87eb824142864 -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 -#: 5b3b26e17f8b4debb5f24b1f09741112 -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 -#: 2e3fc7ab9197457a9cb841b2ad5db74c -msgid "" -"\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10 -#: 4b0a5a3917a1404489a1c35523b3101e -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 -#: 857eea7248a341aa921cd8fd5b724fbe -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 -#: f5f2816191814d21bfec694ca69ff1d1 -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 -#: c541d54100d34722acd417b25e98bd5c -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 -#: 2ea0af9e26be4d2db3d332e953e8ca8b -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 -#: 57292fb5f1634d3bba1da0262c280fcb -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 -#: d4b452db75264d40be92a7a921f87428 -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 -#: bf3972f670c941ad85e0478d1808ff37 -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 -#: 268c5ebb6d01426daf157137967ceb71 -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 -#: 7fc031400ba5483787d3755a50404f52 -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 -#: 2e7ce4c75ee742bca61f56435df8c8ba -msgid "URL string that references a logo for the client." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3 -#: 9b60b488494740178fa0eb696a830276 -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 -#: 6196df903f044a869d63d7bfe59029ec -msgid "" -"URL string that points to a human-readable privacy policy document that " -"describes how the deployment organization collects, uses, retains, and " -"discloses personal data." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5 -#: canaille.oidc.basemodels.Client.tos_uri:5 4a2485a600f84752af39a53edb626de6 -#: 7107cb606a41467ba4620b8833bce409 -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 -#: c72d1bb71dd94b548279d1efbc710585 -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 -#: 2e06e42021994d9880933a147f75ac42 -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 -#: d620c8983f004e97b068e92227d397ca -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 -#: 0199d813ba7048eab35fcd268b27bfcc -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 -#: 4bab6b2fed8a4f1ab9108994d6fb98e0 -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 -#: 00457e11ffec4ca3b872fb7f97e43510 -msgid "" -"\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11 -#: 7fd3e01f1e3e4a3e98a4a71071fde775 -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 -#: 8b411c3c4d744e66a74e7e4bf52e621c -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 -#: 953f41806c6e4932b7c4edf6f0ddd507 -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 -#: 4fc9f0306c584316aa4c1b3c2d844099 -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 -#: 2125d1eb4c6b4718b6c4331052fe7faa -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 -#: 40e1b0990ec746bf8c9d05c246211b2f -msgid "" -"A version identifier string for the client software identified by " -"\"software_id\"." -msgstr "" - -#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4 -#: 34d17136e48a479b9fe5b56d79bae90b -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 -#: 4c0d764f9b464300b91cb575bec81042 -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 -#: 06c9b086f72f4839b8e624dafa032e65 -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 -#: f0c62329f807478fba3956bb2b215eff -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 -#: 6aae16f0c1f44fbca7c2cf890999a8d7 -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 -#: 93316ec1de384670bee6411eeeee736a -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 -#: 688470bc69ac41dcbde0543cf71e5479 -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 fbc25995a4954ad89cf6363836c086b9 -msgid "Long-term user consent to an application." -msgstr "" - -#: ../../canaille/oidc/basemodels.py:docstring of -#: canaille.oidc.basemodels.Token:1 c24dba2ff5d047d18e4c44c48289f2dc -msgid "OpenID Connect token definition." -msgstr "" diff --git a/doc/locales/fr/LC_MESSAGES/references/commands.po b/doc/locales/fr/LC_MESSAGES/references/commands.po deleted file mode 100644 index a71d40c0..00000000 --- a/doc/locales/fr/LC_MESSAGES/references/commands.po +++ /dev/null @@ -1,311 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/references/commands.rst:2 79e6ecda0d3e4c18b9b9b417a389b4cb -msgid "Command Line Interface" -msgstr "" - -#: ../../doc/references/commands.rst:4 9d92776c255b4bd98f31a1e55303f2c2 -msgid "Canaille provide several commands to help administrator manage their data." -msgstr "" - -#: ../../doc/references/commands.rst:6 4124b08c4d9e46c39b25f48fff75606a -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 fe035debad4349ad97133f817e05f703 -msgid "Test the configuration file." -msgstr "" - -#: ../../canaille 3d4649c5c9cc41918f8263ce8808e473 check:1 -msgid "" -"Attempt to reach the database and the SMTP server with the provided " -"credentials." -msgstr "" - -#: ../../canaille 7d43179f511a41cd8e5037f050b1bc73 clean:1 -msgid "Remove expired tokens and authorization codes." -msgstr "" - -#: ../../canaille c5179a4168584d4487e447b07141c8f8 install:1 -msgid "Installs canaille elements from the configuration." -msgstr "" - -#: ../../canaille 37a2c93192c64aa5b19e75182e6bc5a5 install:1 -msgid "" -"For instance, depending on the configuration, this can generate OIDC keys" -" or install LDAP schemas." -msgstr "" - -#: ../../canaille 29c1126336174fa6989f6650df1f5d09 populate:1 -msgid "Populate the database with generated random data." -msgstr "" - -#: ../../doc/references/commands.rst 01f8ff3528de431a88eea102b8797e7d -#: 0592f7e20b87434db4aa021da5f46692 0b6dba38e2014e63bf00357d20bc7090 -#: 3e812f2b794c4b4ab8dd50cea6e94d42 4bd5821660f0430e94aa55dc1b4e18bf -#: 4ede76eac0e943d48a95e719582c4c7e 56b6c7dc334d4eb79d9e667cea4c59e6 -#: 5824aa3a83454d8799d3933f5b25c27e 596cf8bccead4e28907f3d3eca3cd4b0 -#: 72b8362317ce4b5eab571c3bf28f4a90 a865ef7184a646eea2b6760e9f29635b -#: bc6c5f3613204ab9951d4eb4d92efe52 bcd6ff856c2a4f618a392d00f0e35a7b -#: bf91d423757e4aa88cae8d8ce725a870 c03af85a8f1f4bada70f68c4978c24a5 -#: c05e937c532343f890e5d9b595c514d9 c144ca410af44d17bd266c5cc2b10a63 -#: c96f475202f5459e9fc2854294123e16 e8955b6bee0a454b878b800bceb8265b -#: f2e7bd0e830c4413aa6b8bb93d3ac544 -msgid "Options" -msgstr "" - -#: ../../canaille dc6b03e91fec490e83c3f487429b951d populate:1 -msgid "Number of items to create" -msgstr "" - -#: ../../canaille 8ab372ad5eff478e8ee32726f43a1164 groups:1 populate -msgid "Populate the database with generated random groups." -msgstr "" - -#: ../../canaille f7ca835723334ea3be4456346e751dd6 groups:1 populate -msgid "The maximum number of users that will randomly be affected in the group" -msgstr "" - -#: ../../canaille 8f253323342c4bf690e86f8362567d41 populate users:1 -msgid "Populate the database with generated random users." -msgstr "" - -#: ../../canaille 032913c6c4364d9a99e52f972c5cc17a get:1 -msgid "Read information about models." -msgstr "" - -#: ../../canaille 72d8a0d9271847d7ae3a859791220a2c get:1 -msgid "Options can be used to filter models::" -msgstr "" - -#: ../../canaille f89e83d713814caa9f964a2fca51b72c get:1 -msgid "Displays the matching models in JSON format in the standard output." -msgstr "" - -#: ../../canaille authorizationcode:1 d8204c526181466c82f53e6d657030e7 get -msgid "Search for authorizationcodes and display the matching models as JSON." -msgstr "" - -#: ../../canaille 3cade804c31f45adbc441a028fecea53 client:1 get -msgid "Search for clients and display the matching models as JSON." -msgstr "" - -#: ../../canaille 5a310b9dc8c54416be6b9cb1902f1fb1 consent:1 get -msgid "Search for consents and display the matching models as JSON." -msgstr "" - -#: ../../canaille b4441bed2f8a4eeabc0fc8837ec4f562 get group:1 -msgid "Search for groups and display the matching models as JSON." -msgstr "" - -#: ../../canaille 2f246dd55eeb4aba85c1bd9d369e32df get token:1 -msgid "Search for tokens and display the matching models as JSON." -msgstr "" - -#: ../../canaille bf1fa67a2cb24b53870f7555e3a52c31 get user:1 -msgid "Search for users and display the matching models as JSON." -msgstr "" - -#: ../../canaille eb6cf5e3bc2b4cde8b871663dba45e61 set:1 -msgid "Update models." -msgstr "" - -#: ../../canaille 30b5f0a8217a4189b10d478341f36a49 set:1 -msgid "The command takes an model ID and edit one or several attributes::" -msgstr "" - -#: ../../canaille bd9373e888e1406099374c0b39b84e77 set:1 -msgid "Displays the edited model in JSON format in the standard output." -msgstr "" - -#: ../../canaille 174abc887df24f20a9dda2fac77e83fd authorizationcode:1 set -msgid "" -"Update a authorizationcode and display the edited model in JSON format in" -" the standard output." -msgstr "" - -#: ../../canaille 422c813aa96a482283f24025efb8c3dd -#: 4ec9af7edd2b47169b518fda3d644639 authorizationcode:1 delete set -msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id" -msgstr "" - -#: ../../doc/references/commands.rst 5f75b0309d054441a56f4b8517fdbe3d -#: 5fc02ea2e414430a8b545cf34cd4453f 78a39bec9e344a1d8fa33d34d8bac7fd -#: 80d369775bf8495f9fd82b9d0ae34e0c 957a9b7287574e26be67a8835aefb32f -#: c0a17fc3ce6e4932b3715323278dbffb c347665d49e348b5bab1c576ed8596b7 -#: de203337a1ca4e09a9d879e05e1ed654 e2ec38929dcd43339b75733e16f0033b -#: e4215c7686ed4a17bca187aeb2a0b172 ec2907c65c0c4cb8a89d7552c43cf700 -#: f1fc2a35ac44482cb9e364ddabcc3ea5 -msgid "Arguments" -msgstr "" - -#: ../../canaille 05ce73b0a8364dde9c6119f04b24f944 -#: 12289768135e424dbbdc2b566466500c 13ba6cfe3b3d49b8bb81020a72f91d61 -#: 311ea807815b4e35b5cae0b6d6083fcc 3fba64605a8e42a39976bf717dcd10f3 -#: 89214791cafa4d1dac6bd3ec1fa631fb 9460e7a6cf094a76bf2fb1cd252c3a7c -#: aac6d7361cd844f1b423545d4a4e68cd authorizationcode:1 -#: c7a234cf435343a79bfed973e7631d2b client:1 consent:1 -#: d3ded9fbefc34521a5c7b04dbcd26be4 delete e0e6897cdfd54ddcbdefd9ca5cad1bb9 -#: edacde43739b441cb3618d8c01220e44 group:1 set token:1 user:1 -msgid "Required argument" -msgstr "" - -#: ../../canaille ac7fcd06851b40afbb06398602fa62ba client:1 set -msgid "" -"Update a client and display the edited model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 369ef3a35a95428687da84c178c248ed -#: b62f8cbd9dc447329c3d5176f4571aad client:1 delete set -msgid "IDENTIFIER should be a client id or client_id" -msgstr "" - -#: ../../canaille 632ddaea2a594d14ab976c383702313a consent:1 set -msgid "" -"Update a consent and display the edited model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 602b6168c8654e63b36abab9c7ba5f9c consent:1 -#: d1dd6d8fa58c4836a8f836a32c189eff delete set -msgid "IDENTIFIER should be a consent id or consent_id" -msgstr "" - -#: ../../canaille bf18f7ffebd74d508d604b4fd0a8599e group:1 set -msgid "" -"Update a group and display the edited model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 62cac2ffd5384b8685460ee652f347b0 -#: 7a3a74db760a4ffe86925454e6967075 delete group:1 set -msgid "IDENTIFIER should be a group id or display_name" -msgstr "" - -#: ../../canaille 7a1167bf7b1f49f39eaac26d9a9b57e4 set token:1 -msgid "" -"Update a token and display the edited model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 3e08125cc6894a05a0bde0f9495466b3 -#: 9aaa82a936274b02bfb5f9beae6fc170 delete set token:1 -msgid "IDENTIFIER should be a token id or token_id" -msgstr "" - -#: ../../canaille f6b67c6e64e246058860790f13d2b963 set user:1 -msgid "" -"Update a user and display the edited model in JSON format in the standard" -" output." -msgstr "" - -#: ../../canaille 3235eea8dafc45ceac129398063d9e12 -#: 6ec8598e7e844b85b89e8fba32cd9bc4 delete set user:1 -msgid "IDENTIFIER should be a user id or user_name" -msgstr "" - -#: ../../canaille b37439a748eb43f1807c351b27b68710 create:1 -msgid "Create models." -msgstr "" - -#: ../../canaille 9a254a69b81d4406aaf38ee889f8d053 create:1 -msgid "The model attributes can be passed as command options::" -msgstr "" - -#: ../../canaille a1021d5959534ac08c198e3a7c69d44d create:1 -msgid "Displays the created model in JSON format in the standard output." -msgstr "" - -#: ../../canaille authorizationcode:1 b09ba6722fef4240acc4d8412d36c76a create -msgid "" -"Create a new authorizationcode and display the created model in JSON " -"format in the standard output." -msgstr "" - -#: ../../canaille 22a13bf732564e8fa9d9c3e363d3eb77 client:1 create -msgid "" -"Create a new client and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 904ef9f6463d4745920450a1ed807562 consent:1 create -msgid "" -"Create a new consent and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille create d2b8f57503534155be249fac5f9a5aed group:1 -msgid "" -"Create a new group and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 27ad14949f284173bc1163c32372465a create token:1 -msgid "" -"Create a new token and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille 2193f06fa847408780c7f7316641c7a6 create user:1 -msgid "" -"Create a new user and display the created model in JSON format in the " -"standard output." -msgstr "" - -#: ../../canaille da2a6c5ad512466aa6abb26f351337d3 delete:1 -msgid "Delete models." -msgstr "" - -#: ../../canaille 1ff4ff3017cd43c3a3edab341ab42cd0 delete:1 -msgid "The command takes a model ID and deletes it::" -msgstr "" - -#: ../../canaille 9ef5b7a1d4864bd0bf33e819771c7850 authorizationcode:1 delete -msgid "Delete a authorizationcode." -msgstr "" - -#: ../../canaille client:1 delete f5b20435029c47a29b2ab3e8cfd6ccdb -msgid "Delete a client." -msgstr "" - -#: ../../canaille 0a84345b85084835b5cfc942f94f174a consent:1 delete -msgid "Delete a consent." -msgstr "" - -#: ../../canaille d1a17434dbb747b1b98de64fee67a8fc delete group:1 -msgid "Delete a group." -msgstr "" - -#: ../../canaille 975139d084dd4d2fa4d6ac65bd1e3691 delete token:1 -msgid "Delete a token." -msgstr "" - -#: ../../canaille 10221b77423d4f309639da451e19f99f delete user:1 -msgid "Delete a user." -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/references/configuration.po b/doc/locales/fr/LC_MESSAGES/references/configuration.po deleted file mode 100644 index 4b806f3d..00000000 --- a/doc/locales/fr/LC_MESSAGES/references/configuration.po +++ /dev/null @@ -1,836 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/references/configuration.rst:2 424d05c383324277a800335820e3fa6e -msgid "Configuration" -msgstr "" - -#: ../../doc/references/configuration.rst:5 5d68e755dda14103904b8038717bb5b4 -msgid "Load the configuration" -msgstr "" - -#: ../../doc/references/configuration.rst:7 3138a09755a046a286748b624585f456 -msgid "" -"Canaille can be configured either by a environment variables, environment" -" file, or by a configuration file." -msgstr "" - -#: ../../doc/references/configuration.rst:10 967fe546c7f64dffbed7e7ecbe6a425f -msgid "Configuration file" -msgstr "" - -#: ../../doc/references/configuration.rst:12 c60e21f322d14a3d8df3a5f80650198a -msgid "" -"The configuration can be written in `toml` configuration file which path " -"is passed in the :envvar:`CONFIG` environment variable." -msgstr "" - -#: ../../doc/references/configuration.rst:14 -#: ../../doc/references/configuration.rst:85 5598260f6347465c9a7f8818cb9d5a76 -#: c43d890510d8485fac81e8a1b72b9152 canaille.app.configuration.RootSettings:11 -#: e7e0deef51b24803a825cee5f2feeb6b of -msgid "config.toml" -msgstr "" - -#: ../../doc/references/configuration.rst:26 c223295f61c54f9eb7a25d9ec52a5a1e -msgid "" -"You can have a look at the :ref:`example file " -"` for inspiration." -msgstr "" - -#: ../../doc/references/configuration.rst:29 1cf9a6f193e74d718c0dbea6ab02b7e5 -msgid "Environment variables" -msgstr "" - -#: ../../doc/references/configuration.rst:31 21e22f7bcf484969bb578f6c6842a210 -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 "" - -#: ../../doc/references/configuration.rst:36 3e3b489d0d0f4fdebf21bf4c4418422b -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 "" - -#: ../../doc/references/configuration.rst:40 bffb0a7bf9184ca092bd7f06798b5ed7 -msgid "Environment file" -msgstr "" - -#: ../../doc/references/configuration.rst:42 79fb1890082d49969ca45b0b243c537c -msgid "" -"Any environment variable can also be written in a ``.env``, and will be " -"read if present." -msgstr "" - -#: ../../doc/references/configuration.rst:44 b9fc48127af945bda804aba757d7b7dd -msgid ".env" -msgstr "" - -#: ../../doc/references/configuration.rst:62 e16e03560b974996b92551623c3a4728 -msgid "Parameters" -msgstr "" - -#: 8c93b32620244c1c89cca6d261768a39 canaille.app.configuration.RootSettings:1 -#: of -msgid "" -"The top-level namespace contains holds the configuration settings " -"unrelated to Canaille." -msgstr "" - -#: bdff9ee3326e47838fa870fa10d24a4a canaille.app.configuration.RootSettings:4 -#: of -msgid "The configuration paramateres from the following libraries can be used:" -msgstr "" - -#: 0048354dd402460d9058c80014afc3a8 canaille.app.configuration.RootSettings:6 -#: of -msgid ":doc:`Flask `" -msgstr "" - -#: 97eef56c269a4976af0d8331d4028832 canaille.app.configuration.RootSettings:7 -#: of -msgid ":doc:`Flask-WTF `" -msgstr "" - -#: 980d5034607445a8936e13289adb634a canaille.app.configuration.RootSettings:8 -#: of -msgid ":doc:`Flask-Babel `" -msgstr "" - -#: b04bbf26f86c49539b0378da858e25c0 canaille.app.configuration.RootSettings:9 -#: of -msgid ":doc:`Authlib `" -msgstr "" - -#: ../../docstring canaille.app.configuration.RootSettings.DEBUG:1 -#: d2a0d7c0762940079150f885dec0d0e7 of -msgid "The Flask :external:py:data:`DEBUG` configuration setting." -msgstr "" - -#: ../../docstring 655fe302f2244cae8d4f7507b9bcf5ee -#: canaille.app.configuration.RootSettings.DEBUG:3 of -msgid "This enables debug options." -msgstr "" - -#: ../../docstring 38930315245e43c8a21dea835f70de8a -#: canaille.app.configuration.RootSettings.DEBUG:7 of -msgid "" -"This is useful for development but should be absolutely avoided in " -"production environments." -msgstr "" - -#: ../../docstring be190939a5b8407abc8051d973470b00 -#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:1 of -msgid "The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting." -msgstr "" - -#: ../../docstring 8f1c5830bb7a4049a19023e8c78e2868 -#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4 of -msgid "This sets the url scheme by which canaille will be served." -msgstr "" - -#: ../../docstring b8116a14c0634f37a438a279518faf1b -#: canaille.app.configuration.RootSettings.SECRET_KEY:1 of -msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting." -msgstr "" - -#: ../../docstring 7899131820fe46ea8de0a235b307ab42 -#: canaille.app.configuration.RootSettings.SECRET_KEY:3 of -msgid "You MUST change this." -msgstr "" - -#: ../../docstring 625463c6bbe848c7977af2a13d58865e -#: canaille.app.configuration.RootSettings.SERVER_NAME:1 of -msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting." -msgstr "" - -#: ../../docstring 06598651788843eebda0b59e8eb7b2b1 -#: canaille.app.configuration.RootSettings.SERVER_NAME:3 of -msgid "This sets domain name on which canaille will be served." -msgstr "" - -#: 1c4603a9300b4baabfe80ba792d3e79a canaille.core.configuration.CoreSettings:1 -#: of -msgid "The settings from the ``CANAILLE`` namespace." -msgstr "" - -#: 84c7ae7efa5a47ad8789a59aa453354a canaille.core.configuration.CoreSettings:3 -#: of -msgid "" -"Those are all the configuration parameters that controls the behavior of " -"Canaille." -msgstr "" - -#: ../../docstring 9ddde712539a484d8d84b470795d5ea1 -#: canaille.core.configuration.CoreSettings.ACL:1 of -msgid "Mapping of permission groups. See :class:`ACLSettings` for more details." -msgstr "" - -#: ../../docstring 8cc6440505154248a19225a38dfa7d32 -#: canaille.core.configuration.CoreSettings.ACL:3 of -msgid "The ACL name can be freely chosen. For example::" -msgstr "" - -#: ../../docstring canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1 -#: f6c14e52ce8f4c00834507e6f4274b8f of -msgid "Administration email contact." -msgstr "" - -#: ../../docstring c7ab87c0bfb34fc8b97870bbe1299631 -#: canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3 of -msgid "" -"In certain special cases (example : questioning about password " -"corruption), it is necessary to provide an administration contact email." -msgstr "" - -#: ../../docstring 314eab36d7294cf0a47ed00aa7c84a0c -#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1 of -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 b9c54b77527e411a8e1c313cd18ae3b2 -#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4 of -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 9bd6dc224f794a3ab0af54733e45102c -#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1 -#: of -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 4f2a32a147fd4df48e723c7b7cda2c2b -#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1 of -msgid "" -"If :py:data:`False`, then users cannot ask for a password recovery link " -"by email." -msgstr "" - -#: ../../docstring b40754c5a7354a7c8105ef95608cf381 -#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1 of -msgid "" -"If :py:data:`True`, then users can freely create an account at this " -"instance." -msgstr "" - -#: ../../docstring 02798211a1944569b105076267bc34c9 -#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4 of -msgid "" -"If email verification is available, users must confirm their email before" -" the account is created." -msgstr "" - -#: ../../docstring 3c2cbc6dbe0d4ba9acb99c6fd93ef0f9 -#: canaille.core.configuration.CoreSettings.FAVICON:1 of -msgid "You favicon." -msgstr "" - -#: ../../docstring 88c7ad9cd97949129cb8b2e58a149fc9 -#: canaille.core.configuration.CoreSettings.FAVICON:3 of -msgid "If unset and :attr:`LOGO` is set, then the logo will be used." -msgstr "" - -#: ../../docstring add94b3b94144337b44f24a644cc1430 -#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1 of -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 -#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5 -#: dcfa98e306544b75973c667a9944d89a of -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 c1590e635df24e1486be1e562a5b0034 -#: canaille.core.configuration.CoreSettings.HTMX:1 of -msgid "Accelerates webpages loading with asynchronous requests." -msgstr "" - -#: ../../docstring 35b5c6a840a047cc87fa606818c7e7f4 -#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1 of -msgid "The validity duration of registration invitations, in seconds." -msgstr "" - -#: ../../docstring -#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3 -#: f61374773e154a55ad905df27019923d of -msgid "Defaults to 2 days." -msgstr "" - -#: ../../docstring bd6c3be93bda402092ac6f3cfca24265 -#: canaille.core.configuration.CoreSettings.JAVASCRIPT:1 of -msgid "Enables Javascript to smooth the user experience." -msgstr "" - -#: ../../docstring 08e45b94110845a6a2cf237d5dd01508 -#: canaille.core.configuration.CoreSettings.LANGUAGE:1 of -msgid "If a language code is set, it will be used for every user." -msgstr "" - -#: ../../docstring 124a41b6ceeb47e3b952d23619d85139 -#: canaille.core.configuration.CoreSettings.LANGUAGE:3 of -msgid "If unset, the language is guessed according to the users browser." -msgstr "" - -#: ../../docstring 40ed5d3d85104c57a1b384eeb7aaef40 -#: canaille.core.configuration.CoreSettings.LOGGING:1 of -msgid "" -"Configures the logging output using the python logging configuration " -"format:" -msgstr "" - -#: ../../docstring 4df8127b60254f5bb0cc247c30469d27 -#: canaille.core.configuration.CoreSettings.LOGGING:3 of -msgid "" -"if :py:data:`None`, everything is logged in the standard error output the" -" log level is :py:data:`~logging.DEBUG` if the " -":attr:`~canaille.app.configuration.RootSettings.DEBUG` setting is " -":py:data:`True`, else this is :py:data:`~logging.INFO`" -msgstr "" - -#: ../../docstring 03db8dc130ad49e8b59d79e0f6aa9154 -#: canaille.core.configuration.CoreSettings.LOGGING:6 of -msgid "" -"if this is a :class:`dict`, it is passed to " -":func:`logging.config.dictConfig`:" -msgstr "" - -#: ../../docstring canaille.core.configuration.CoreSettings.LOGGING:7 -#: f00409f6957e42c29f599a74667becb2 of -msgid "" -"if this is a :class:`str`, it is expected to be a file path that will be " -"passed to :func:`logging.config.fileConfig`" -msgstr "" - -#: ../../docstring canaille.core.configuration.CoreSettings.LOGGING:10 -#: f45e3f7a67724ea9882d55fa6b07d3f6 of -msgid "For example::" -msgstr "" - -#: ../../docstring 23d3cf2c128d44fa8b149a6b3548a302 -#: canaille.core.configuration.CoreSettings.LOGO:1 of -msgid "" -"The logo of your organization, this is useful to make your organization " -"recognizable on login screens." -msgstr "" - -#: ../../docstring 6279cd5aa6ba484493c72cc708780ff2 -#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1 of -msgid "Maximum length for user password." -msgstr "" - -#: ../../docstring 6dda33511f5c41249a65ba949f5f422f -#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3 of -msgid "" -"There is a technical limit with passlib used by sql database of 4096 " -"characters. If the value entered is 0 or None, or greater than 4096, then" -" 4096 will be retained." -msgstr "" - -#: ../../docstring 8a907f495b1c4e059084f17f24bac4ac -#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1 of -msgid "Minimum length for user password." -msgstr "" - -#: ../../docstring 78c7324a8e4f4cca974dfea5be0fc93d -#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3 of -msgid "It is possible not to set a minimum, by entering None or 0." -msgstr "" - -#: ../../docstring b0bea46879234cb8a42cefca791fbb65 -#: canaille.core.configuration.CoreSettings.NAME:1 of -msgid "Your organization name." -msgstr "" - -#: ../../docstring c821d6608be5485fa7c3b9574007b964 -#: canaille.core.configuration.CoreSettings.NAME:3 of -msgid "Used for display purpose." -msgstr "" - -#: ../../docstring c53cf47a679b4844925c70c352dea0bf -#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1 -#: of -msgid "Have i been pwned api url for compromission checks." -msgstr "" - -#: ../../docstring 9990747398ac4f5895282ab305c072dc -#: canaille.core.configuration.CoreSettings.SENTRY_DSN:1 of -msgid "A `Sentry `_ DSN to collect the exceptions." -msgstr "" - -#: ../../docstring 790c865da20f435aa1be69714403de01 -#: canaille.core.configuration.CoreSettings.SENTRY_DSN:3 of -msgid "This is useful for tracking errors in test and production environments." -msgstr "" - -#: ../../docstring 85951eb2b027483eba736e336af20f81 -#: canaille.core.configuration.CoreSettings.SMTP:1 of -msgid "The settings related to SMTP and mail configuration." -msgstr "" - -#: ../../docstring c409cbcf49e7469ca8b2dd052c011a52 -#: canaille.core.configuration.CoreSettings.SMTP:3 of -msgid "If unset, mail-related features like password recovery won't be enabled." -msgstr "" - -#: ../../docstring 2cb83696c7f149289e9f3dbc012182ef -#: canaille.core.configuration.CoreSettings.THEME:1 of -msgid "The name of a theme in the 'theme' directory, or a path to a theme." -msgstr "" - -#: ../../docstring b3d1237eb0144f97974e071fc00ea0b7 -#: canaille.core.configuration.CoreSettings.THEME:3 of -msgid "" -"Defaults to ``default``. Theming is done with `flask-themer " -"`_." -msgstr "" - -#: ../../docstring b1e60d33d31a47f4bc40640338cb284b -#: canaille.core.configuration.CoreSettings.TIMEZONE:1 of -msgid "" -"The timezone in which datetimes will be displayed to the users (e.g. " -"``CEST``)." -msgstr "" - -#: ../../docstring canaille.core.configuration.CoreSettings.TIMEZONE:4 -#: dc4cf4f473ea40a5bb1c9a049a3ca1e2 of -msgid "If unset, the server timezone will be used." -msgstr "" - -#: 06acb103d58a4e9786be0d9ccca36999 canaille.core.configuration.SMTPSettings:1 -#: of -msgid "" -"The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If " -"unset, mail related features will be disabled, such as mail verification " -"or password recovery emails." -msgstr "" - -#: 331241c793784690be8c9746d3366e56 canaille.core.configuration.SMTPSettings:5 -#: of -msgid "" -"By default, Canaille will try to send mails from localhost without " -"authentication." -msgstr "" - -#: ../../docstring 92f12abb0bac49e5867285e04a5c9d6a -#: canaille.core.configuration.SMTPSettings.FROM_ADDR:1 of -msgid "The sender for Canaille mails." -msgstr "" - -#: ../../docstring 10b0c6ea9c92453cae3d9e33632a4ad4 -#: canaille.core.configuration.SMTPSettings.FROM_ADDR:3 of -msgid "Some mail provider might require a valid sender address." -msgstr "" - -#: ../../docstring 3535c00f832b4d2c964be48c7b91231b -#: canaille.core.configuration.SMTPSettings.HOST:1 of -msgid "The SMTP host." -msgstr "" - -#: ../../docstring 652e684442a4480f8d5604a28e5f3ce8 -#: canaille.core.configuration.SMTPSettings.LOGIN:1 of -msgid "The SMTP login." -msgstr "" - -#: ../../docstring 8670279f8f9f4fbebc169da4c79f23a9 -#: canaille.core.configuration.SMTPSettings.PASSWORD:1 of -msgid "The SMTP password." -msgstr "" - -#: ../../docstring canaille.core.configuration.SMTPSettings.PORT:1 -#: e23e9bd935054912937b4a19c870e950 of -msgid "The SMTP port." -msgstr "" - -#: ../../docstring 610bdbb8787348feb7afed6f3d60c0c2 -#: canaille.core.configuration.SMTPSettings.SSL:1 of -msgid "Whether to use SSL to connect to the SMTP server." -msgstr "" - -#: ../../docstring 3cc08150a5ea4ed5ae2e0dc3c4fca472 -#: canaille.core.configuration.SMTPSettings.TLS:1 of -msgid "Whether to use TLS to connect to the SMTP server." -msgstr "" - -#: 62b3f9dcea0643de96b1ca7638f6a5e9 canaille.core.configuration.ACLSettings:1 -#: of -msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace." -msgstr "" - -#: bdd0385786694ea6ab8802833275fa4e canaille.core.configuration.ACLSettings:3 -#: of -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 1097669d2b994281b4d5d413097e0623 -#: canaille.core.configuration.ACLSettings.FILTER:1 of -msgid ":attr:`FILTER` can be:" -msgstr "" - -#: ../../docstring bb053c15eb704432bb84e56edeadf167 -#: canaille.core.configuration.ACLSettings.FILTER:3 of -msgid "" -":py:data:`None`, in which case all the users will match this access " -"control" -msgstr "" - -#: ../../docstring canaille.core.configuration.ACLSettings.FILTER:4 -#: cbdb019e3b284edf87da4f15d2b78bf4 of -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 canaille.core.configuration.ACLSettings.FILTER:7 -#: d4572cf46999451ca8cf28217ded5167 of -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 canaille.core.configuration.ACLSettings.FILTER:10 -#: fac47b79b4dd4a3da08e3237472a7b7d of -msgid "Here are some examples::" -msgstr "" - -#: ../../docstring 62ff0c3020c8448a944704b0062a8cb2 -#: canaille.core.configuration.ACLSettings.PERMISSIONS:1 of -msgid "" -"A list of :class:`Permission` users in the access control will be able to" -" manage. For example::" -msgstr "" - -#: ../../docstring 1099209ca53345d387496ab4312ed097 -#: canaille.core.configuration.ACLSettings.READ:1 of -msgid "" -"A list of :class:`~canaille.core.models.User` attributes that users in " -"the ACL will be able to read." -msgstr "" - -#: ../../docstring 58a9e524f70f4e7baf522ef1c8157e32 -#: canaille.core.configuration.ACLSettings.WRITE:1 of -msgid "" -"A list of :class:`~canaille.core.models.User` attributes that users in " -"the ACL will be able to edit." -msgstr "" - -#: canaille.core.configuration.Permission:1 e8e63c7026de41bcba4f2349159e7261 of -msgid "The permissions that can be assigned to users." -msgstr "" - -#: 9c4460d4bbf14419aa95957ca5a5e952 canaille.core.configuration.Permission:3 of -msgid "" -"The permissions are intended to be used in :attr:`ACLSettings " -"`." -msgstr "" - -#: ../../docstring 7605a3b0da5e4979ac17a807d8134c54 -#: canaille.core.configuration.Permission.DELETE_ACCOUNT:1 of -msgid "Allows users to delete their account." -msgstr "" - -#: ../../docstring ae2fe25c6c344a97864852f01f57e296 -#: canaille.core.configuration.Permission.DELETE_ACCOUNT:3 of -msgid "" -"If used with " -":attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, users can " -"delete any account." -msgstr "" - -#: ../../docstring 82ed41275cc2499f994e6bc2dd5d1e3c -#: canaille.core.configuration.Permission.EDIT_SELF:1 of -msgid "Allows users to edit their own profile." -msgstr "" - -#: ../../docstring canaille.core.configuration.Permission.IMPERSONATE_USERS:1 -#: fbc8c78392de4edcac1b152a1b08e63b of -msgid "Allows users to take the identity of another user." -msgstr "" - -#: ../../docstring 6884efcf056942198b52e3612b827d05 -#: canaille.core.configuration.Permission.MANAGE_GROUPS:1 of -msgid "Allows group edition and creation." -msgstr "" - -#: ../../docstring 38db5db2588046459a54a6a0fcbd608f -#: canaille.core.configuration.Permission.MANAGE_OIDC:1 of -msgid "Allows OpenID Connect client managements." -msgstr "" - -#: ../../docstring 902c5fb366a74c5a9a03ad5fcd2e6cf1 -#: canaille.core.configuration.Permission.MANAGE_USERS:1 of -msgid "Allows other users management." -msgstr "" - -#: ../../docstring 96fbdc9c5ccf421db8c2e110eb59536a -#: canaille.core.configuration.Permission.USE_OIDC:1 of -msgid "Allows OpenID Connect authentication." -msgstr "" - -#: canaille.oidc.configuration.OIDCSettings:1 f949952a659545e6a0eb5e7df32b2619 -#: of -msgid "OpenID Connect settings." -msgstr "" - -#: 8396f08e1b0e42ec94c732847bea4bfc canaille.oidc.configuration.OIDCSettings:3 -#: of -msgid "Belong in the ``CANAILLE_OIDC`` namespace." -msgstr "" - -#: ../../docstring 70c636d7dae842b09d6533627f4b65e2 -#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1 -#: of -msgid "Whether a token is needed for the RFC7591 dynamical client registration." -msgstr "" - -#: ../../docstring -#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3 -#: e333e90c5649498b9d34e691efcd8ab5 of -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 70e5e4ec0dc64daba69f85bf4ec84708 -#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1 -#: of -msgid "A list of tokens that can be used for dynamic client registration." -msgstr "" - -#: ../../docstring 5418fb5b02384cc29f1426c4c1d30759 -#: canaille.oidc.configuration.OIDCSettings.JWT:1 of -msgid "JSON Web Token settings." -msgstr "" - -#: ../../docstring canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1 -#: e928ff6b3928470e8ad7c82caa4a3d07 of -msgid "Force the nonce exchange during the authentication flows." -msgstr "" - -#: ../../docstring 7359057f9f5d43f1a42cd646a4300f42 -#: canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3 of -msgid "This adds security but may not be supported by all clients." -msgstr "" - -#: 27a60f8e093d4917ac66b7d131143b97 canaille.oidc.configuration.JWTSettings:1 -#: of -msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace." -msgstr "" - -#: 3764ee3b65474edf8ebb66a6c372c243 canaille.oidc.configuration.JWTSettings:3 -#: of -msgid "You can generate a RSA keypair with::" -msgstr "" - -#: ../../docstring a1a6dcd429094759b1efb11226baf5a2 -#: canaille.oidc.configuration.JWTSettings.ALG:1 of -msgid "The key algorithm." -msgstr "" - -#: ../../docstring canaille.oidc.configuration.JWTSettings.EXP:1 -#: dd523d20e02b48cdb29cbc016cf04c7b of -msgid "The time the JWT will be valid, in seconds." -msgstr "" - -#: ../../docstring canaille.oidc.configuration.JWTSettings.ISS:1 -#: f0cf8022dba44fbd8663ad45a1888b91 of -msgid "The URI of the identity provider." -msgstr "" - -#: ../../docstring 8028f588edca4da58a09dc75ca349aba -#: canaille.oidc.configuration.JWTSettings.KTY:1 of -msgid "The key type." -msgstr "" - -#: ../../docstring 41e83a2048a44f919950e1750910a1d0 -#: canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1 of -msgid "The private key." -msgstr "" - -#: ../../docstring 7348c4741ca84317877a04bdf03d99ae -#: bd2c3564a3af4101abb4393b1aac729c -#: canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3 -#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3 of -msgid "" -"If :py:data:`None` and debug mode is enabled, then an in-memory key will " -"be used." -msgstr "" - -#: ../../docstring b7a0baa78585417d8dcdbe96a8b98583 -#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1 of -msgid "The public key." -msgstr "" - -#: a9d6eabbdca247c2af37e29d96568a03 -#: canaille.oidc.configuration.JWTMappingSettings:1 of -msgid "Mapping between the user model and the JWT fields." -msgstr "" - -#: 886826dc265c4c7cb8766afe83095133 -#: canaille.oidc.configuration.JWTMappingSettings:3 of -msgid "Fields are evaluated with jinja. A ``user`` var is available." -msgstr "" - -#: 9590d902318d4c8580d37bbcd979932a -#: canaille.backends.sql.configuration.SQLSettings:1 of -msgid "Settings related to the SQL backend." -msgstr "" - -#: 15c8d7294eff4cb0aad980f15edac5a9 -#: canaille.backends.sql.configuration.SQLSettings:3 of -msgid "Belong in the ``CANAILLE_SQL`` namespace." -msgstr "" - -#: ../../docstring 8b41da4ffa2646dcb6cd9b93a4807cf3 -#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1 of -msgid "The SQL server URI. For example::" -msgstr "" - -#: b0bc548513934f1da3667d30279d82c4 -#: canaille.backends.ldap.configuration.LDAPSettings:1 of -msgid "Settings related to the LDAP backend." -msgstr "" - -#: 49283fbc5e9a4eb7a3dcebf404cc3870 -#: canaille.backends.ldap.configuration.LDAPSettings:3 of -msgid "Belong in the ``CANAILLE_LDAP`` namespace." -msgstr "" - -#: ../../docstring 8824324541e74294beab8b504d38368a -#: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1 of -msgid "The LDAP bind DN." -msgstr "" - -#: ../../docstring 40026a12323e48a3a0753e08ca363e83 -#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1 of -msgid "The LDAP bind password." -msgstr "" - -#: ../../docstring a7e3ac64d2044be3ab6c5d2d293db37d -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1 of -msgid "The LDAP node under which groups will be looked for and saved." -msgstr "" - -#: ../../docstring bda60eee8e474c65925adb75f0e02164 -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3 of -msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`." -msgstr "" - -#: ../../docstring 68bffd35121746e8bfbb70d05a8c176b -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1 of -msgid "The object class to use for creating new groups." -msgstr "" - -#: ../../docstring -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1 -#: f33128abab5f4ce59d431244a8c757ea of -msgid "The attribute to use to identify a group." -msgstr "" - -#: ../../docstring 9292125ade5c4f9e912f543664860791 -#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1 of -msgid "The attribute to identify an object in the Group DN." -msgstr "" - -#: ../../docstring 813682b1e3b54072ab07e295c38b2fbc -#: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1 of -msgid "The LDAP root DN." -msgstr "" - -#: ../../docstring 2e43c3ede5a54158abcc1bb480b98026 -#: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1 of -msgid "The LDAP connection timeout." -msgstr "" - -#: ../../docstring canaille.backends.ldap.configuration.LDAPSettings.URI:1 -#: cda749d2c3be41e3928f0e759f206889 of -msgid "The LDAP server URI." -msgstr "" - -#: ../../docstring 7b97343c77204e699fc3961a28bf66fc -#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1 of -msgid "The LDAP node under which users will be looked for and saved." -msgstr "" - -#: ../../docstring -#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3 -#: ea6864b7befc4c46a1a463a3df375e57 of -msgid "For instance `ou=users,dc=mydomain,dc=tld`." -msgstr "" - -#: ../../docstring -#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1 -#: d749e90737ba453393324ade8c1e9b9f of -msgid "The object class to use for creating new users." -msgstr "" - -#: ../../docstring 1b1aeacb6c754ecd871e160f614ebe30 -#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1 of -msgid "Filter to match users on sign in." -msgstr "" - -#: ../../docstring 7d7bade071b84039810c29d01ee7af4e -#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3 of -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 canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1 -#: fbb6d8c8e73946e8ae9d0b5b8ef6ac7a of -msgid "The attribute to identify an object in the User DN." -msgstr "" - -#: ../../doc/references/configuration.rst:81 c71a6c99d5c649468d25d73245d1ce81 -msgid "Example file" -msgstr "" - -#: ../../doc/references/configuration.rst:83 e3d5ff7b824e465fa78cf064e047e2bf -msgid "Here is a configuration file example:" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/references/index.po b/doc/locales/fr/LC_MESSAGES/references/index.po deleted file mode 100644 index 3b3ee0b4..00000000 --- a/doc/locales/fr/LC_MESSAGES/references/index.po +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/references/index.rst:2 449c3088548a4de39932e3c9abadb987 -msgid "References" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/references/models.po b/doc/locales/fr/LC_MESSAGES/references/models.po deleted file mode 100644 index c445a028..00000000 --- a/doc/locales/fr/LC_MESSAGES/references/models.po +++ /dev/null @@ -1,948 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/references/models.rst:2 4f4f811264a14208af46aa08dc0f739f -msgid "Data models" -msgstr "" - -#: ../../doc/references/models.rst:4 86ad2ccc4f484fea9172dc9a03dd1685 -msgid "" -"This reference details the data models used by Canaille. This is mostly " -"useful for developers." -msgstr "" - -#: 3d8d635f39f9417a8093033c65f5cfd8 canaille.backends.models.BackendModel:1 -#: canaille.backends.models.Model:1 cea30ce00d3c4b9aa2a4a90bf5ca1b2e of -msgid "Bases: :py:class:`object`" -msgstr "" - -#: 63116ed6c91d453699c088d731caf20a canaille.backends.models.BackendModel:1 of -msgid "The backend model abstract class." -msgstr "" - -#: canaille.backends.models.BackendModel:3 f4524953577a49bf8678c8b188e5adb6 of -msgid "" -"It details all the methods and attributes that are expected to be " -"implemented for every model and for every backend." -msgstr "" - -#: a6aaa68e16874197bf3e39cf89b6a036 canaille.backends.models.Model:1 of -msgid "The model abstract class." -msgstr "" - -#: canaille.backends.models.Model:3 da1fe57e308a48d78e0e83fe63c8b3c6 of -msgid "It details all the common attributes shared by every models." -msgstr "" - -#: ../../docstring 7f5c0dd217f74ea7b921ab45afa69827 -#: canaille.backends.models.Model.created:1 of -msgid "" -"The :class:`~datetime.datetime` that the resource was added to the " -"service provider." -msgstr "" - -#: ../../docstring 04708c2ef09846e3878f0ff1e3d633fe -#: canaille.backends.models.Model.id:1 of -msgid "" -"A unique identifier for a SCIM resource as defined by the service " -"provider. Id will be :py:data:`None` until the " -":meth:`~canaille.backends.models.BackendModel.save` method is called." -msgstr "" - -#: ../../docstring canaille.backends.models.Model.id:5 -#: d8ccb6e0f9084dd8b3c0f2ca54639181 of -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 "" - -#: 020241a96a474546ae111c3ea3191e86 canaille.backends.models.Model.identifier:1 -#: of -msgid "Returns a unique value that will be used to identify the model instance." -msgstr "" - -#: 231d639f48f94e48bcedad9f668a9356 canaille.backends.models.Model.identifier:4 -#: of -msgid "" -"This value will be used in URLs in canaille, so it should be unique and " -"short." -msgstr "" - -#: ../../docstring canaille.backends.models.Model.last_modified:1 -#: d8b60486668f4266a8791d7c7cfbf39c of -msgid "" -"The most recent :class:`~datetime.datetime` that the details of this " -"resource were updated at the service provider." -msgstr "" - -#: ../../docstring 6a9d98cacf2c416b85166e3a0aec85fd -#: canaille.backends.models.Model.last_modified:4 of -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 "" - -#: 5f668d908027491b83f43d47569cab63 69589482ca65403ca8e743b646c9226c -#: 8876abfe97934f2284562899c84595eb a29dec25115a43c794775e581331c082 -#: canaille.core.models.Group:1 canaille.core.models.User:1 -#: canaille.oidc.basemodels.AuthorizationCode:1 -#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1 -#: canaille.oidc.basemodels.Token:1 ce9d675b71084e3dbc3655cd504a4c6b -#: fae1f8c6af6b466ba27a3a588206e54f of -msgid "Bases: :py:class:`~canaille.backends.models.Model`" -msgstr "" - -#: b68f1d5863af434d84f2dd1f2274da3f canaille.core.models.Group:1 of -msgid "" -"User model, based on the `SCIM Group schema " -"`_." -msgstr "" - -#: ../../docstring 5cb994b4454747b3a666042ac273eb54 -#: canaille.core.models.Group.display_name:1 of -msgid "A human-readable name for the Group." -msgstr "" - -#: ../../docstring 4e19158978d64e339bbebfe89187fda4 -#: canaille.core.models.Group.display_name:3 -#: canaille.oidc.basemodels.Client.client_id:1 e5c85cd76a0e45e89978c6b631a162fb -#: of -msgid "REQUIRED." -msgstr "" - -#: ../../docstring c2575699ceae4913afedd4f3e627f4d3 -#: canaille.core.models.Group.members:1 of -msgid "A list of members of the Group." -msgstr "" - -#: ../../docstring canaille.core.models.Group.members:3 -#: e3f8e66541d7400585c45538dd4e1768 of -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 "" - -#: b5df55612ee34e12a13d0a7917b38d09 canaille.core.models.User:1 of -msgid "" -"User model, based on the `SCIM User schema " -"`_, " -"`Entreprise User Schema Extension " -"`_ and `SCIM " -"Password Management Extension `_ draft. Attribute description is" -" based on SCIM and put there for information purpose. The description may" -" not fit the current implementation in Canaille." -msgstr "" - -#: 3f76320039b1471fa3d303706bbafa21 canaille.core.models.User.can:1 of -msgid "" -"Whether or not the user has the " -":class:`~canaille.core.configuration.Permission` according to the " -":class:`configuration `." -msgstr "" - -#: ../../docstring canaille.core.models.User.department:1 -#: d3b2c286ea6e4fc6bc807a167a2c7fb9 of -msgid "Identifies the name of a department." -msgstr "" - -#: ../../docstring 6c7b40d8ba934aacbeb56018b53fe48e -#: canaille.core.models.User.display_name:1 of -msgid "The name of the user, suitable for display to end-users." -msgstr "" - -#: ../../docstring 9c9639c9bdd747b8bceb5a5302fa2d34 -#: canaille.core.models.User.display_name:3 of -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 9c0fab528d5542f5846331d9cb490996 -#: canaille.core.models.User.emails:1 of -msgid "Email addresses for the User." -msgstr "" - -#: ../../docstring 4346ea844ff94ace979c35990baa285d -#: canaille.core.models.User.emails:3 of -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 6a1f48ce3e5542d6bdd155c1e90d2856 -#: canaille.core.models.User.employee_number:1 of -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 2fe990abc285421b926f43792db8318d -#: canaille.core.models.User.family_name:1 of -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 canaille.core.models.User.formatted_address:1 -#: de06c1dda5594f7f911f6085f2bf30bd of -msgid "" -"The full mailing address, formatted for display or use with a mailing " -"label." -msgstr "" - -#: ../../docstring 8b94760c15f746ddb944a77ac25a9ce0 -#: canaille.core.models.User.formatted_address:4 of -msgid "This attribute MAY contain newlines." -msgstr "" - -#: ../../docstring canaille.core.models.User.formatted_name:1 -#: e90822537c784a218e13ecd2327f4032 of -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 8ae81deab78d46229cb7034af9d3a71c -#: canaille.core.models.User.given_name:1 of -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 8ac614afa7d7492b9ff3c34926139337 -#: canaille.core.models.User.groups:1 of -msgid "" -"A list of groups to which the user belongs, either through direct " -"membership, through nested groups, or dynamically calculated." -msgstr "" - -#: ../../docstring 64ecefbdac514114b98ab34eb6b18d86 -#: canaille.core.models.User.groups:4 of -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 "" - -#: 32921c5be2af4fd59bc8712a4071b310 canaille.core.models.User.has_password:1 of -msgid "Check whether a password has been set for the user." -msgstr "" - -#: ../../docstring a4d5f217e56048b294e83da6122343b8 -#: canaille.core.models.User.locality:1 of -msgid "The city or locality component." -msgstr "" - -#: ../../docstring 68d7a39110204de29ed183c56659c5df -#: canaille.core.models.User.lock_date:1 of -msgid "A DateTime indicating when the resource was locked." -msgstr "" - -#: ba543c6c70264b638dc437b2bd20769c canaille.core.models.User.locked:1 of -msgid "Whether the user account has been locked or has expired." -msgstr "" - -#: ../../docstring c2eb1949f9704bd0bfe177df71b2dcde -#: canaille.core.models.User.organization:1 of -msgid "Identifies the name of an organization." -msgstr "" - -#: ../../docstring a523a6b41e3d48e0a7c179fd2a236c59 -#: canaille.core.models.User.password:1 of -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 5ecbdffadb59485a8135fcbc0d0bbf99 -#: canaille.core.models.User.password:9 of -msgid "" -"Prepare the cleartext value for international language comparison. See " -"Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring 6cbc065374cf47e69971c823f67b2c34 -#: canaille.core.models.User.password:12 of -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 4c354c83ceb04fe39b2845ca70317fe9 -#: canaille.core.models.User.password:16 of -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 3b4d469de19c469bb9c24dc3cf694e20 -#: canaille.core.models.User.password:20 of -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 2d7021ce458a44919b848545526f767f -#: canaille.core.models.User.password:28 of -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 656c0f86ad244b6eb25f35d2ae6b3f56 -#: canaille.core.models.User.password:32 of -msgid "" -"Prepares the filter value for international language comparison. See " -"Section 7.8 of [RFC7644]." -msgstr "" - -#: ../../docstring 145c3c799b3542969e443e85dbd6a473 -#: canaille.core.models.User.password:35 of -msgid "" -"Generates the salted hash of the filter value and tests for a match with " -"the locally held value." -msgstr "" - -#: ../../docstring 8c7c1fcc8a2c40ddb28827f5d90e609a -#: canaille.core.models.User.password:38 of -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 canaille.core.models.User.phone_numbers:1 -#: f6270635316b47c0a082bc419e9f3d50 of -msgid "Phone numbers for the user." -msgstr "" - -#: ../../docstring 0e5dd015ff6445b0ad2d657e3c478a60 -#: canaille.core.models.User.phone_numbers:3 of -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 b4393fc3b75d4cc7a2f4a12ea66f570e -#: canaille.core.models.User.photo:1 of -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 29a0cbb891f54b0f8cb2bbb1c1dfd13f -#: canaille.core.models.User.photo:5 of -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 4dd6128b926146c28e324323b623bb34 -#: canaille.core.models.User.postal_code:1 of -msgid "The zip code or postal code component." -msgstr "" - -#: ../../docstring 04b523711b5442bcbe64131a0508dedd -#: canaille.core.models.User.preferred_language:1 of -msgid "" -"Indicates the user's preferred written or spoken languages and is " -"generally used for selecting a localized user interface." -msgstr "" - -#: ../../docstring canaille.core.models.User.preferred_language:4 -#: e1772c7ebcd44649bf29311713835b49 of -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 6aa9c30d875f4ab5bcbfc7bee601f517 -#: canaille.core.models.User.profile_url:1 of -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 canaille.core.models.User.profile_url:5 -#: fc7d54c2056b44aba5e2b2bd60e33a21 of -msgid "URIs are canonicalized per Section 6.2 of [RFC3986]." -msgstr "" - -#: 8edaeac977064f1b874aeb0682c95aad canaille.core.models.User.readable_fields:1 -#: of -msgid "" -"The fields the user can read according to the :class:`configuration " -"` configuration." -msgstr "" - -#: 0cc7f45175d04ae78b035d1ca4a589c8 canaille.core.models.User.readable_fields:4 -#: of -msgid "" -"This does not include the :attr:`writable " -"` fields." -msgstr "" - -#: ../../docstring 4146c490dcf2422d8c284a1c4aba8c6b -#: canaille.core.models.User.region:1 of -msgid "The state or region component." -msgstr "" - -#: ../../docstring 049e8a5b7701411f9da7ba9c3c754d04 -#: canaille.core.models.User.street:1 of -msgid "" -"The full street address component, which may include house number, street" -" name, P.O." -msgstr "" - -#: ../../docstring 0ab2e0885bc24c46b7ad9e6f55f7ebb0 -#: canaille.core.models.User.street:4 of -msgid "" -"box, and multi-line extended street address information. This attribute " -"MAY contain newlines." -msgstr "" - -#: ../../docstring 75afc62c58134ad8a38e8d59f0743994 -#: canaille.core.models.User.title:1 of -msgid "The user's title, such as \"Vice President\"." -msgstr "" - -#: ../../docstring 5850e73e21a642efaa0e6ae54a55f0cd -#: canaille.core.models.User.user_name:1 of -msgid "" -"A service provider's unique identifier for the user, typically used by " -"the user to directly authenticate to the service provider." -msgstr "" - -#: ../../docstring 4555ed2797644feaa577f9edc6284ab6 -#: canaille.core.models.User.user_name:4 of -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 "" - -#: 0a3321c9a0bc481c830aed35014cd2e8 canaille.core.models.User.writable_fields:1 -#: of -msgid "" -"The fields the user can write according to the :class:`configuration " -"`." -msgstr "" - -#: canaille.oidc.basemodels.AuthorizationCode:1 -#: fe9d924164fb4587b942938d012016b9 of -msgid "OpenID Connect temporary authorization code definition." -msgstr "" - -#: canaille.oidc.basemodels.Client:1 d1fa5a8cbf7d458494679089a2aba2fb of -msgid "" -"OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client " -"Registration protocols " -"`_ and the `OpenID " -"Connect RP-Initiated Logout `_ specifications." -msgstr "" - -#: ../../docstring canaille.oidc.basemodels.Client.client_id:3 -#: d80b7305a4714ac4a3d9de849ffa97bf of -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 1b11125f523948e1b47df25bea51d9cf -#: 2300f7bc0bc24c79b9c75cfd19e27b95 b395648712ba4ce8934afebc751f1618 -#: canaille.oidc.basemodels.Client.client_id_issued_at:1 -#: canaille.oidc.basemodels.Client.client_secret:1 -#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1 of -msgid "OPTIONAL." -msgstr "" - -#: ../../docstring 11a22bc5758e4a6ab4b916f3bada85fe -#: canaille.oidc.basemodels.Client.client_id_issued_at:3 of -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 406f7421746d4f0d84fd323c6975589f -#: canaille.oidc.basemodels.Client.client_name:1 of -msgid "" -"Human-readable string name of the client to be presented to the end-user " -"during authorization." -msgstr "" - -#: ../../docstring b1a271e42321484f8ab7e02e8a0630f8 -#: canaille.oidc.basemodels.Client.client_name:4 of -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 a57ad017042549a0b814e77b12849fba -#: canaille.oidc.basemodels.Client.client_secret:3 of -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 22f18a7e3b184e04bf11533077bccd1b -#: canaille.oidc.basemodels.Client.client_secret_expires_at:1 of -msgid "REQUIRED if \"client_secret\" is issued." -msgstr "" - -#: ../../docstring 07641c93932b45f4a7b2b98f6761fa98 -#: canaille.oidc.basemodels.Client.client_secret_expires_at:3 of -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 00ecf7b29a6241ab8cc7f8480cc13729 -#: canaille.oidc.basemodels.Client.client_uri:1 of -msgid "URL string of a web page providing information about the client." -msgstr "" - -#: ../../docstring canaille.oidc.basemodels.Client.client_uri:3 -#: df7fc4a043c14b4d8822ebb2d2ef8f32 of -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 19d18f0b6e0b430fad3a38ccadcbec70 -#: canaille.oidc.basemodels.Client.contacts:1 of -msgid "" -"Array of strings representing ways to contact people responsible for this" -" client, typically email addresses." -msgstr "" - -#: ../../docstring canaille.oidc.basemodels.Client.contacts:4 -#: fe619b319fd54f0e9f6a3b61b19545e8 of -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 90b56e1723dd4c049ab3a6f560d33a87 -#: canaille.oidc.basemodels.Client.grant_types:1 of -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 5873bfc5a02b48a29bf739b576f71410 -#: canaille.oidc.basemodels.Client.grant_types:4 of -msgid "" -"\"authorization_code\": The authorization code grant type defined in " -"OAuth 2.0, Section 4.1." -msgstr "" - -#: ../../docstring 167a4b7521454d9c8d9852c06cc76155 -#: canaille.oidc.basemodels.Client.grant_types:7 of -msgid "\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring b069ce3e42914633ae69a552557497af -#: canaille.oidc.basemodels.Client.grant_types:10 of -msgid "" -"\"password\": The resource owner password credentials grant type defined " -"in OAuth 2.0, Section 4.3." -msgstr "" - -#: ../../docstring c5923a28a3fb4d8eaa3f837afe9d4357 -#: canaille.oidc.basemodels.Client.grant_types:13 of -msgid "" -"\"client_credentials\": The client credentials grant type defined in " -"OAuth 2.0, Section 4.4." -msgstr "" - -#: ../../docstring 07d597d9e6a84f94a8152e04d1eedf38 -#: canaille.oidc.basemodels.Client.grant_types:16 of -msgid "" -"\"refresh_token\": The refresh token grant type defined in OAuth 2.0, " -"Section 6." -msgstr "" - -#: ../../docstring canaille.oidc.basemodels.Client.grant_types:19 -#: cf54246868494647903b6b790ddac962 of -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 a6d3ab8808914df3b7a5e1c747f03b64 -#: canaille.oidc.basemodels.Client.grant_types:23 of -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 2de10f7660364aab907a404d9245c9af -#: canaille.oidc.basemodels.Client.grant_types:27 of -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 b5bd2dd5cc7c46f1b61f0cfda03150bb -#: canaille.oidc.basemodels.Client.jwk:1 of -msgid "" -"Client's JSON Web Key Set [RFC7517] document value, which contains the " -"client's public keys." -msgstr "" - -#: ../../docstring 9bab75b252bc414e9634643834bf50c8 -#: canaille.oidc.basemodels.Client.jwk:4 of -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 57578f71f8f54719934081048136176d -#: canaille.oidc.basemodels.Client.jwks_uri:1 of -msgid "" -"URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] " -"document, which contains the client's public keys." -msgstr "" - -#: ../../docstring canaille.oidc.basemodels.Client.jwks_uri:4 -#: f740381df0634148950cc7fed3b62285 of -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 398cacd6dae7426c896accbef1b05031 -#: canaille.oidc.basemodels.Client.logo_uri:1 of -msgid "URL string that references a logo for the client." -msgstr "" - -#: ../../docstring b54bb5d58c8b4590a5780f56de3684fc -#: canaille.oidc.basemodels.Client.logo_uri:3 of -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 7b8c071af0e541b4a1cd23ccab94537c -#: canaille.oidc.basemodels.Client.policy_uri:1 of -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 0d53a7af1fe74511bb2cffa04042c471 -#: 4930f030916748c3a07eb59f0466950f -#: canaille.oidc.basemodels.Client.policy_uri:5 -#: canaille.oidc.basemodels.Client.tos_uri:5 of -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 canaille.oidc.basemodels.Client.post_logout_redirect_uris:3 -#: ff29a92b953f491e8c9d916adbffffa3 of -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 2741c91c5c934f318d4268fc9848e2cc -#: canaille.oidc.basemodels.Client.redirect_uris:1 of -msgid "" -"Array of redirection URI strings for use in redirect-based flows such as " -"the authorization code and implicit flows." -msgstr "" - -#: ../../docstring 5f7e65eb067c4b819749078240746df7 -#: canaille.oidc.basemodels.Client.redirect_uris:4 of -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 54d3901cbefe4700bd6b94c8f20b8984 -#: canaille.oidc.basemodels.Client.response_types:1 of -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 0f5f76aef1d5434bbb01e66b6b427c17 -#: canaille.oidc.basemodels.Client.response_types:5 of -msgid "" -"\"code\": The authorization code response type defined in OAuth 2.0, " -"Section 4.1." -msgstr "" - -#: ../../docstring 5ba120e7f7d64db498c53f4fcedbcdc1 -#: canaille.oidc.basemodels.Client.response_types:8 of -msgid "\"token\": The implicit response type defined in OAuth 2.0, Section 4.2." -msgstr "" - -#: ../../docstring 9c7d0bdc0f0240a38535d2575a44ff9c -#: canaille.oidc.basemodels.Client.response_types:11 of -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 ac1eac1d27b642d8a7cebbf513181629 -#: canaille.oidc.basemodels.Client.scope:1 of -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 canaille.oidc.basemodels.Client.scope:5 -#: d960080bf7574b5283c226b0ab2b9372 of -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 canaille.oidc.basemodels.Client.software_id:1 -#: d1f72b9bc83c41bb88c7ffcf09937ce5 of -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 a94bd506bcb84e018b965df1597fb0b1 -#: canaille.oidc.basemodels.Client.software_id:6 of -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 0ae66a5b4e724bd8b4f80cc69f3fd44b -#: canaille.oidc.basemodels.Client.software_version:1 of -msgid "" -"A version identifier string for the client software identified by " -"\"software_id\"." -msgstr "" - -#: ../../docstring 59f8fb95a6ec452bba957f87795edec6 -#: canaille.oidc.basemodels.Client.software_version:4 of -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 0c628b480a714a86b406cd36d8d80275 -#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1 of -msgid "" -"String indicator of the requested authentication method for the token " -"endpoint. Values defined by this specification are:" -msgstr "" - -#: ../../docstring 546228d2e7e54942a2ae632997ab67c6 -#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4 of -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 73c66cc275a34ba68ee43b9fb40c21f5 -#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:7 of -msgid "" -"\"client_secret_post\": The client uses the HTTP POST parameters as " -"defined in OAuth 2.0, Section 2.3.1." -msgstr "" - -#: ../../docstring 084496ca247d426c8e295865ee194907 -#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10 of -msgid "" -"\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth " -"2.0, Section 2.3.1." -msgstr "" - -#: ../../docstring 6c77b2e92a9242a1a1ac779a50a6b959 -#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13 of -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 36417da6c2f44c7e92cae7cb3f0ba7cb -#: canaille.oidc.basemodels.Client.tos_uri:1 of -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.Consent:1 f160b96459c64852b6038a5bede57527 of -msgid "Long-term user consent to an application." -msgstr "" - -#: 3be00302014441608d644b1a2a2de130 canaille.oidc.basemodels.Token:1 of -msgid "OpenID Connect token definition." -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/tutorial.po b/doc/locales/fr/LC_MESSAGES/tutorial.po deleted file mode 100644 index 6e27c769..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial.po +++ /dev/null @@ -1,461 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 17:21+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: fr \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"Generated-By: Babel 2.16.0\n" - -#: ../tutorial/databases.rst:2 34b6a5df315e4629b9710884e3f5be9e -msgid "Databases" -msgstr "" - -#: ../tutorial/databases.rst:4 31f93a60c87648478dfe7a6c74d5f36a -msgid "" -"Canaille can read and save data in different databases. This page presents " -"the different database backends and their specificities:" -msgstr "" - -#: ../tutorial/databases.rst:8 8dc081315c7a4eea8be2e81b8a049162 -msgid "Memory" -msgstr "" - -#: ../tutorial/databases.rst:10 08608b21b52a4a22ac26b3a2a2d29f6a -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 dbb9009fcf724d6290135aa1d6a32026 -msgid "" -"This backend is only for test purpose and should not be used in production " -"environments." -msgstr "" - -#: ../tutorial/databases.rst:16 06113268bf4a49d0880cdae75f961fc5 -msgid "SQL" -msgstr "" - -#: ../tutorial/databases.rst:18 2bb9cb1d3c4f4e4f93d649960bca123d -msgid "" -"Canaille can use any database supported by `SQLAlchemy `_, such as sqlite, postgresql or mariadb." -msgstr "" - -#: ../tutorial/databases.rst:21 bb4ec73e439d430aa8dbdddb0301bf5b -msgid "" -"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For " -"instance:" -msgstr "" - -#: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37 -#: 7de375f96b054244a9fb0c7c60663f32 ebab073f2f894dfb87705d06ebb870af -msgid "config.toml" -msgstr "" - -#: ../tutorial/databases.rst:29 6e78f6be25cb4151951a1bc6994643a9 -msgid "" -"You can find more details on the SQL configuration in the :class:`dedicated " -"section `." -msgstr "" - -#: ../tutorial/databases.rst:32 bcfa707ba3b2494ab1af853bcdc7673f -msgid "LDAP" -msgstr "" - -#: ../tutorial/databases.rst:34 426e632fa07a44369bdadb8a290672bf -msgid "" -"Canaille can use OpenLDAP as its main database. It is used when the " -"``CANAILLE_LDAP`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../tutorial/databases.rst:52 0c319bcdd3b649569745572bb2944fec -msgid "" -"You can find more details on the LDAP configuration in the :class:`dedicated " -"section `." -msgstr "" - -#: ../tutorial/databases.rst:55 ebc6e35e9a6049be8bc66eb127adf882 -msgid "" -"Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have been " -"tested. If you want to use different schemas or LDAP servers, adaptations " -"may be needed. Patches are welcome." -msgstr "" - -#: ../tutorial/databases.rst:60 6a9ec2b8bf724122b5752c753bdaea7a -msgid "OpenLDAP overlays integration" -msgstr "" - -#: ../tutorial/databases.rst:62 ce6daa0ac4974084990221c2806a5549 -msgid "Canaille can integrate with several OpenLDAP overlays:" -msgstr "" - -#: ../tutorial/databases.rst:65 24a7dc4d61504545ac841910fbaca48b -msgid "memberof / refint" -msgstr "" - -#: ../tutorial/databases.rst:67 d24183e3349f42bfbbecde663f03f846 -msgid "" -"`memberof `_ and `refint `_ overlays " -"are needed for the Canaille group membership to work correctly." -msgstr "" - -#: ../tutorial/databases.rst:71 ../tutorial/databases.rst:94 -#: 65357e9c96e341128f9448507ce02f1b 692bdeebfc9c40999c9b09c8d9371e52 -msgid "Here is a configuration example compatible with canaille:" -msgstr "" - -#: ../tutorial/databases.rst:73 511312387435410987a190cf7b68f2ab -msgid "memberof-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:77 c95e78d9dde84102b1a97c2399430c23 -msgid "refint-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:81 ../tutorial/databases.rst:104 -#: 2e0fddced7e949f8a66653530c8a120b 8686380cd79949259b48f68fe6c4d3b8 -msgid "You can adapt and load those configuration files with:" -msgstr "" - -#: ../tutorial/databases.rst:90 af864ca7a8ef4d128d3fbe54749a944c -msgid "ppolicy" -msgstr "" - -#: ../tutorial/databases.rst:92 fc8d77f8ca4d48de9eba6c408a9f5fc2 -msgid "" -"If the `ppolicy `_ overlay is configured and the ``pwdEndTime`` attribute is " -"available (since OpenLDAP 2.6), then account locking support will be enabled " -"in canaille. To allow users to manage account expiration, they need to have " -"a *write* permission on the :attr:`~canaille.core.models.User.lock_date` " -"attribute." -msgstr "" - -#: ../tutorial/databases.rst:96 15e6cfdc691149efbbdc2f3834c7a3d0 -msgid "ppolicy-config.ldif" -msgstr "" - -#: ../tutorial/databases.rst:100 ef7f7bd8dd0445be8596864cb1b50fa5 -msgid "ppolicy.ldif" -msgstr "" - -#: ../tutorial/deployment.rst:2 a7ef8cd4696b4e53a1ffdb87fb18c375 -msgid "Deployment" -msgstr "" - -#: ../tutorial/deployment.rst:5 0f1f7c0caa8a4dfcb659c15bedda5aae -msgid "Application service" -msgstr "" - -#: ../tutorial/deployment.rst:7 b93527ef33ad4a65af273da09bb780f3 -msgid "" -"After having finished Canaille installation you have to run it in a WSGI " -"application server. Here are some WSGI server configuration examples you can " -"pick. Do not forget to update the paths." -msgstr "" - -#: ../tutorial/deployment.rst:11 1ffbe89a8ff744fc9686484ce526e541 -msgid "gunicorn" -msgstr "" - -#: ../tutorial/deployment.rst:13 418a0ab3603442f2b0a515962f003029 -msgid "Todo" -msgstr "" - -#: ../tutorial/deployment.rst:15 c40ad558fd584c01a6c564f8f72d12f3 -msgid "Write a gunicorn configuration sample file." -msgstr "" - -#: ../tutorial/deployment.rst:18 ec3a0c7c05b74be6b1640ff6a4090aec -msgid "uwsgi" -msgstr "" - -#: ../tutorial/deployment.rst:42 5c4862bc3810432195a2e9a353f60b54 -msgid "Webserver" -msgstr "" - -#: ../tutorial/deployment.rst:44 94e56452db9741f0a3eee45f672e73a8 -msgid "" -"Now you have to plug your WSGI application server to your webserver so it is " -"accessible on the internet. Here are some webserver configuration examples " -"you can pick:" -msgstr "" - -#: ../tutorial/deployment.rst:48 7c4ae615fbd44c3f8ab3ece2d0201ed7 -msgid "Nginx" -msgstr "" - -#: ../tutorial/deployment.rst:114 ac66da9f7d1342bdad81dbdf97218b4e -msgid "Apache" -msgstr "" - -#: ../tutorial/deployment.rst:153 ad13e4fdf804422facdde8b1b619e9a2 -msgid "Recurrent jobs" -msgstr "" - -#: ../tutorial/deployment.rst:155 b9ba07959e7f4d57846b44490735d913 -msgid "" -"You might want to clean up your database to avoid it growing too much. You " -"can regularly delete expired tokens and authorization codes with:" -msgstr "" - -#: ../tutorial/deployment.rst:164 4a9929824eba46a883f1147dcdaa526e -msgid "Webfinger" -msgstr "" - -#: ../tutorial/deployment.rst:166 cbd15001d4a043e5a0ec93a5eff80b9f -msgid "" -"You may want to configure a `WebFinger`_ endpoint on your main website to " -"allow the automatic discovery of your Canaille installation based on the " -"account name of one of your users. For instance, suppose your domain is " -"``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` " -"and there is a user ``john.doe``. A third-party application could require to " -"authenticate the user and ask them for a user account. The user would give " -"their account ``john.doe@mydomain.example``, then the application would " -"perform a WebFinger request at ``https://mydomain.example/.well-known/" -"webfinger`` and the response would contain the address of the authentication " -"server ``https://auth.mydomain.example``. With this information the third " -"party application can redirect the user to the Canaille authentication page." -msgstr "" - -#: ../tutorial/deployment.rst:168 e515d97f8d8248f98081746a9b723611 -msgid "" -"The difficulty here is that the WebFinger endpoint must be hosted at the top-" -"level domain (i.e. ``mydomain.example``) while the authentication server " -"might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille " -"provides a WebFinger endpoint, but if it is not hosted at the top-level " -"domain, a web redirection is required on the ``/.well-known/webfinger`` path." -msgstr "" - -#: ../tutorial/deployment.rst:170 3c7cb4cd4a2d498098fe4387a5ae3b2a -msgid "Here are configuration examples for Nginx or Apache:" -msgstr "" - -#: ../tutorial/deployment.rst:172 a11ff6002ffc46b7b401b29c222cb984 -msgid "Nginx webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:181 cc81b2ca58b842bab2583d46cd8ac1dc -msgid "Apache webfinger configuration for a top level domain" -msgstr "" - -#: ../tutorial/deployment.rst:191 b9b3713c6f724e5cb3cad50756e8211c -msgid "Create the first user" -msgstr "" - -#: ../tutorial/deployment.rst:193 02df7f55e6df4452ac60d899b5a98cc2 -msgid "" -"Once canaille is installed, soon enough you will need to add users. To " -"create your first user you can use the :ref:`canaille create ` " -"CLI." -msgstr "" - -#: ../tutorial/index.rst:2 3deeb02f520e41b4a510d72bdd446046 -msgid "Tutorial" -msgstr "" - -#: ../tutorial/install.rst:2 36b529fead5242468a36bdbbbdd28544 -msgid "Installation" -msgstr "" - -#: ../tutorial/install.rst:6 c717982f410e46a28e3f97a9a1096146 -msgid "" -"Canaille is under heavy development and may not fit a production environment " -"yet." -msgstr "" - -#: ../tutorial/install.rst:8 6e7bc4fde5d74dceb03c1f03a95fa779 -msgid "" -"The installation of canaille consist in several steps, some of which you can " -"do manually or with command line tool:" -msgstr "" - -#: ../tutorial/install.rst:11 25f53875201f4538b26df4d537d355ea -msgid "Get the code" -msgstr "" - -#: ../tutorial/install.rst:13 ac342d74e14244c4badfab8c1f829d94 -msgid "" -"As the moment there is no distribution package for canaille. However, it can " -"be installed with the ``pip`` package manager. Let us choose a place for the " -"canaille environment, like ``/opt/canaille/env``." -msgstr "" - -#: ../tutorial/install.rst:24 15d4a0b372c44934a05f1ed6eb327a87 -msgid "Extras" -msgstr "" - -#: ../tutorial/install.rst:26 6c563bb9847e4766a5c3d0d461a35c2f -msgid "Canaille provides different package options:" -msgstr "" - -#: ../tutorial/install.rst:28 65dbf1cc88e14dcda675a7a20f71477b -msgid "`front` provides all the things needed to produce the user interface;" -msgstr "" - -#: ../tutorial/install.rst:29 932751ee90ac445f8271d5f0bf062139 -msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" -msgstr "" - -#: ../tutorial/install.rst:30 33ba6546cbf94064ab5290438b1120a8 -msgid "`ldap` provides the dependencies to enable the LDAP backend;" -msgstr "" - -#: ../tutorial/install.rst:31 e65f505181e448e58b1aa158e8af5d42 -msgid "`sqlite` provides the dependencies to enable the SQLite backend;" -msgstr "" - -#: ../tutorial/install.rst:32 f3fa4d1a59674077b16bdc0e432f326e -msgid "" -"`postgresql` provides the dependencies to enable the PostgreSQL backend;" -msgstr "" - -#: ../tutorial/install.rst:33 f914db4dca274ab9bc725faba6cc6e86 -msgid "`mysql` provides the dependencies to enable the MySQL backend;" -msgstr "" - -#: ../tutorial/install.rst:34 7dad7a35aea54e549ac3328577c8e3e1 -msgid "`sentry` provides sentry integration to watch Canaille exceptions;" -msgstr "" - -#: ../tutorial/install.rst:35 1cd7e38d50bd4f439e285c870a8b005c -msgid "`all` provides all the extras above." -msgstr "" - -#: ../tutorial/install.rst:37 cf6a1f2144114c7abfe4177c427d72f8 -msgid "They can be installed with:" -msgstr "" - -#: ../tutorial/install.rst:44 51d6f24a101c4511aa3d49db1914fa3a -msgid "Configure" -msgstr "" - -#: ../tutorial/install.rst:46 4efc51c21f274c449ecdd33dcc439625 -msgid "" -"Choose a path where to store your configuration file. You can pass any " -"configuration path with the ``CONFIG`` environment variable." -msgstr "" - -#: ../tutorial/install.rst:54 90dd73339c3e43f18395eb80d9749456 -msgid "" -"You should then edit your configuration file to adapt the values to your " -"needs. Look at the configuration details in the :doc:`configuration <../" -"references/configuration>` page." -msgstr "" - -#: ../tutorial/install.rst:57 3ff3b9dbf5904b3dbb2494ee61825d15 -msgid "Install" -msgstr "" - -#: ../tutorial/install.rst:59 56e161c2e2ed4ae7a7d55bcc024135a1 -msgid "" -"The :ref:`install command ` will apply most of the things " -"needed to get Canaille working. Depending on the configured :doc:`database " -"` it will create the SQL tables, or install the LDAP schemas for " -"instance." -msgstr "" - -#: ../tutorial/install.rst:68 e4b60f64108549189d9627699af12a91 -msgid "Check" -msgstr "" - -#: ../tutorial/install.rst:70 1a9056c774724a0491bcb5060e8903f2 -msgid "" -"After a manual installation, you can check your configuration file using " -"the :ref:`check command `:" -msgstr "" - -#: ../tutorial/troubleshooting.rst:2 8e2c5e7ea5f14416a11a2ec648a32593 -msgid "Troubleshooting" -msgstr "" - -#: ../tutorial/troubleshooting.rst:5 d1d6667b4caa4506a5be55cc7c4df22a -msgid "The web interface throws useless error messages" -msgstr "" - -#: ../tutorial/troubleshooting.rst:7 a71c850aa84d41e99550cc54f23e5441 -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 cc846be11ca448ddb1c1913d1e41ccbf -msgid "How to manually install LDAP schemas?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:16 c9a20d92290541c0b5536e5cd150999d -msgid "" -"Schema installation can be automatically done using the :ref:`install " -"command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:18 830b3a72844a44d386308540cc44f1e4 -msgid "As of OpenLDAP 2.4, two configuration methods are available:" -msgstr "" - -#: ../tutorial/troubleshooting.rst:20 02db4b758cfd40f7b64bfb79bea9f5c3 -msgid "" -"The `deprecated `_ " -"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" -msgstr "" - -#: ../tutorial/troubleshooting.rst:21 0b24de0faa944ae3b1af5c604a71098f -msgid "" -"The new one, based on a configuration directory (generally ``/etc/ldap/slapd." -"d``)." -msgstr "" - -#: ../tutorial/troubleshooting.rst:23 7acd99c26fd7480e8733523fbd29db13 -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 3917d45c79604f16ba0aca4887ff6dac -msgid "Old fashion: Copy the schemas in your filesystem" -msgstr "" - -#: ../tutorial/troubleshooting.rst:35 430b74fa77a94624bcae8606289222a3 -msgid "New fashion: Use slapadd to add the schemas" -msgstr "" - -#: ../tutorial/troubleshooting.rst:37 9fdc2c09b2dc44b3b5e45ed1271b3e7c -msgid "Be careful to stop your ldap server before running ``slapadd``" -msgstr "" - -#: ../tutorial/troubleshooting.rst:46 cc6bfd549bd541eead7a37af15a25aef -msgid "How to manually generate the OIDC keypair?" -msgstr "" - -#: ../tutorial/troubleshooting.rst:50 6dc2d317536b41ff839d98287a84f358 -msgid "" -"The keypair generation can be automatically done using the :ref:`install " -"command `." -msgstr "" - -#: ../tutorial/troubleshooting.rst:52 31db4facc32b4691b3625065562ef5c3 -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 "" diff --git a/doc/locales/fr/LC_MESSAGES/tutorial/databases.po b/doc/locales/fr/LC_MESSAGES/tutorial/databases.po deleted file mode 100644 index 385651c0..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial/databases.po +++ /dev/null @@ -1,161 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/tutorial/databases.rst:2 13be28a98aa44e67ad2da068019679b0 -msgid "Databases" -msgstr "" - -#: ../../doc/tutorial/databases.rst:4 34d3c5ad89ca430a847e45d05e2f5019 -msgid "" -"Canaille can read and save data in different databases. This page " -"presents the different database backends and their specificities:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:8 2e496b7a0aee4d17b567eb4dc478ea17 -msgid "Memory" -msgstr "" - -#: ../../doc/tutorial/databases.rst:10 ceb74ab4c8774778844a94ed861484f0 -msgid "" -"Canaille comes with a lightweight inmemory backend by default. It is used" -" when no other backend has been configured." -msgstr "" - -#: ../../doc/tutorial/databases.rst:13 81d31cff81344214af9be762d9e2d86b -msgid "" -"This backend is only for test purpose and should not be used in " -"production environments." -msgstr "" - -#: ../../doc/tutorial/databases.rst:16 230473fa22cf4e1ea512779b93a88d50 -msgid "SQL" -msgstr "" - -#: ../../doc/tutorial/databases.rst:18 cbb94e64da22446d94826e4b2d8aa841 -msgid "" -"Canaille can use any database supported by `SQLAlchemy " -"`_, such as sqlite, postgresql or mariadb." -msgstr "" - -#: ../../doc/tutorial/databases.rst:21 f1512d513bd543719e9fc2b41a002ec4 -msgid "" -"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. " -"For instance:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:23 ../../doc/tutorial/databases.rst:37 -#: 1652808637864b219ffc895ff0b385e2 26343cfad8b1468e857c9af6a929296f -msgid "config.toml" -msgstr "" - -#: ../../doc/tutorial/databases.rst:29 20d5bb9612194746981991360681be81 -msgid "" -"You can find more details on the SQL configuration in the " -":class:`dedicated section " -"`." -msgstr "" - -#: ../../doc/tutorial/databases.rst:32 7666e750708b4faa8ed74fbe9dd71455 -msgid "LDAP" -msgstr "" - -#: ../../doc/tutorial/databases.rst:34 d76fc51f518344c1ad042668dc0f6f7f -msgid "" -"Canaille can use OpenLDAP as its main database. It is used when the " -"``CANAILLE_LDAP`` configuration parameter is defined. For instance:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:52 343f1bb31591486da7186300d79ff254 -msgid "" -"You can find more details on the LDAP configuration in the " -":class:`dedicated section " -"`." -msgstr "" - -#: ../../doc/tutorial/databases.rst:55 61cd64aa6b24444eb95c7b328a9bb80a -msgid "" -"Currently, only the ``inetOrgPerson`` and ``groupOfNames`` schemas have " -"been tested. If you want to use different schemas or LDAP servers, " -"adaptations may be needed. Patches are welcome." -msgstr "" - -#: ../../doc/tutorial/databases.rst:60 2945818fe9854775be50bbbe9bd4920c -msgid "OpenLDAP overlays integration" -msgstr "" - -#: ../../doc/tutorial/databases.rst:62 a37ceed58a974812bf0449864b97bc36 -msgid "Canaille can integrate with several OpenLDAP overlays:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:65 d6b79a05710643b5ac394738613ef6d7 -msgid "memberof / refint" -msgstr "" - -#: ../../doc/tutorial/databases.rst:67 5afe1236e936402584f1478f77e90a8c -#, python-format -msgid "" -"`memberof " -"`_" -" and `refint " -"`_" -" overlays are needed for the Canaille group membership to work correctly." -msgstr "" - -#: ../../doc/tutorial/databases.rst:71 ../../doc/tutorial/databases.rst:94 -#: 43fe5b2a235e4e779a591dfb57e5bd9f 7cadb14c4e324d4d82eaa6503a4f7d5c -msgid "Here is a configuration example compatible with canaille:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:73 f4492ab7254f48958441eb03ee6cafa0 -msgid "memberof-config.ldif" -msgstr "" - -#: ../../doc/tutorial/databases.rst:77 5a5c78def64b4d699a257b2e407b9c9d -msgid "refint-config.ldif" -msgstr "" - -#: ../../doc/tutorial/databases.rst:81 ../../doc/tutorial/databases.rst:104 -#: 211625cc561840cfa82975d79ca478ef c4486a215813426b82fcc0d4fecd212b -msgid "You can adapt and load those configuration files with:" -msgstr "" - -#: ../../doc/tutorial/databases.rst:90 b123a4b628d84343858da2932e77fbfc -msgid "ppolicy" -msgstr "" - -#: ../../doc/tutorial/databases.rst:92 6e77957f1af14258a453f712e7e4b5ce -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 "" - -#: ../../doc/tutorial/databases.rst:96 25a6006c6ec0431d9a6e5e979aedf2c6 -msgid "ppolicy-config.ldif" -msgstr "" - -#: ../../doc/tutorial/databases.rst:100 84603122ff0c46c7b8f149e8af826433 -msgid "ppolicy.ldif" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/tutorial/deployment.po b/doc/locales/fr/LC_MESSAGES/tutorial/deployment.po deleted file mode 100644 index 17cdc297..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial/deployment.po +++ /dev/null @@ -1,134 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/tutorial/deployment.rst:2 ae73f16a212144ffa313290a207b141f -msgid "Deployment" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:5 35937b9f04b4457f937ec96e1ba29caf -msgid "Application service" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:7 9e7fd12c32644a11b26be30abdb8fbb9 -msgid "" -"After having finished Canaille installation you have to run it in a WSGI " -"application server. Here are some WSGI server configuration examples you " -"can pick. Do not forget to update the paths." -msgstr "" - -#: ../../doc/tutorial/deployment.rst:11 113eacd3942647f4a67709d106074aae -msgid "gunicorn" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:13 49056a8d4181451b9d442e040ef58134 -msgid "Todo" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:15 ab8cb26415874d7dac41d27e0fd09196 -msgid "Write a gunicorn configuration sample file." -msgstr "" - -#: ../../doc/tutorial/deployment.rst:18 275e76607f394394925fd8e72baa1bdd -msgid "uwsgi" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:42 7dd0c119f3ca4d34af4b365848855c7e -msgid "Webserver" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:44 2642973dba1e4c229c8cafd6b53d1e2e -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 "" - -#: ../../doc/tutorial/deployment.rst:48 6e1d1fb0d1de408da0f959d2dda936fd -msgid "Nginx" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:114 271a543d8077413c8450cb62d811cd49 -msgid "Apache" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:153 468c9bd93bf94365a1e7203d93fa1654 -msgid "Recurrent jobs" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:155 d3f3c6197cdd4664a013462aaea3d735 -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 "" - -#: ../../doc/tutorial/deployment.rst:164 503958ca36f24b0f96d906166e54b4eb -msgid "Webfinger" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:166 4c4d784e493a44e082095fa18c278023 -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 "" - -#: ../../doc/tutorial/deployment.rst:168 8b5733a39b024333812a79f6415a2d7f -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 "" - -#: ../../doc/tutorial/deployment.rst:170 004318975e4d42f9b9df8a4bd60b702e -msgid "Here are configuration examples for Nginx or Apache:" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:172 7654879ea9db4641898c7d3d54743625 -msgid "Nginx webfinger configuration for a top level domain" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:181 c853d3e4d63943a587bd51261c17fea9 -msgid "Apache webfinger configuration for a top level domain" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:191 e4ab313e4d6744fda9814e13e6921bed -msgid "Create the first user" -msgstr "" - -#: ../../doc/tutorial/deployment.rst:193 4586783257664fe8b2d4ca1a1b56585f -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 "" - diff --git a/doc/locales/fr/LC_MESSAGES/tutorial/index.po b/doc/locales/fr/LC_MESSAGES/tutorial/index.po deleted file mode 100644 index 96ccb3e5..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial/index.po +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/tutorial/index.rst:2 33f796e322b4451abd546832196ba97a -msgid "Tutorial" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/tutorial/install.po b/doc/locales/fr/LC_MESSAGES/tutorial/install.po deleted file mode 100644 index 1590f2cc..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial/install.po +++ /dev/null @@ -1,131 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/tutorial/install.rst:2 b59e204f09ac48f492b7ef7bcff6ed98 -msgid "Installation" -msgstr "" - -#: ../../doc/tutorial/install.rst:6 f99a48aee6984df9af6e2ad5347ffa8b -msgid "" -"Canaille is under heavy development and may not fit a production " -"environment yet." -msgstr "" - -#: ../../doc/tutorial/install.rst:8 3fcf21bae744418ea435e09abb6b6f66 -msgid "" -"The installation of canaille consist in several steps, some of which you " -"can do manually or with command line tool:" -msgstr "" - -#: ../../doc/tutorial/install.rst:11 3bd6c3c41fcd4b0bb8c3f0059f55411c -msgid "Get the code" -msgstr "" - -#: ../../doc/tutorial/install.rst:13 0d6d6b5d40714920a8ca25b145d1e568 -msgid "" -"As the moment there is no distribution package for canaille. However, it " -"can be installed with the ``pip`` package manager. Let us choose a place " -"for the canaille environment, like ``/opt/canaille/env``." -msgstr "" - -#: ../../doc/tutorial/install.rst:24 681b57e7aae841408d6fa27aace13c4f -msgid "Extras" -msgstr "" - -#: ../../doc/tutorial/install.rst:26 6da6e156d7794a87845411e6d5fd0715 -msgid "Canaille provides different package options:" -msgstr "" - -#: ../../doc/tutorial/install.rst:28 698250951765438faba672f8a3ac0ac3 -msgid "`front` provides all the things needed to produce the user interface;" -msgstr "" - -#: ../../doc/tutorial/install.rst:29 f4c143c1e2a04213bffeca345be71dd7 -msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;" -msgstr "" - -#: ../../doc/tutorial/install.rst:30 65190b5b12d44ba78da8de94f10f75eb -msgid "`ldap` provides the dependencies to enable the LDAP backend;" -msgstr "" - -#: ../../doc/tutorial/install.rst:31 717175ded51a448aa8dee2d5858e2dc1 -msgid "`sqlite` provides the dependencies to enable the SQLite backend;" -msgstr "" - -#: ../../doc/tutorial/install.rst:32 03fe8dbedce84ffeb777a09b324c4a37 -msgid "`postgresql` provides the dependencies to enable the PostgreSQL backend;" -msgstr "" - -#: ../../doc/tutorial/install.rst:33 cdf98e8f28654e60a1f148ffcc82b212 -msgid "`mysql` provides the dependencies to enable the MySQL backend;" -msgstr "" - -#: ../../doc/tutorial/install.rst:34 41ae127f217d4408a769a03f744277ff -msgid "`sentry` provides sentry integration to watch Canaille exceptions;" -msgstr "" - -#: ../../doc/tutorial/install.rst:35 e6018990bd354799b4d78bd2ff1e5511 -msgid "`all` provides all the extras above." -msgstr "" - -#: ../../doc/tutorial/install.rst:37 bf0755d51529446887714d41b0bc99cd -msgid "They can be installed with:" -msgstr "" - -#: ../../doc/tutorial/install.rst:44 a1915e091b694983b8c9e0718492f3b0 -msgid "Configure" -msgstr "" - -#: ../../doc/tutorial/install.rst:46 bd3950b464614404a89bec231f6944d5 -msgid "" -"Choose a path where to store your configuration file. You can pass any " -"configuration path with the ``CONFIG`` environment variable." -msgstr "" - -#: ../../doc/tutorial/install.rst:54 3fc38f1d84e340a48a5009fe5204df38 -msgid "" -"You should then edit your configuration file to adapt the values to your " -"needs. Look at the configuration details in the :doc:`configuration " -"<../references/configuration>` page." -msgstr "" - -#: ../../doc/tutorial/install.rst:57 a1b9b7f8f97749a195ec325b70a5e3b4 -msgid "Install" -msgstr "" - -#: ../../doc/tutorial/install.rst:59 a4718a66711141cf8951f1db8cc14a0a -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 "" - -#: ../../doc/tutorial/install.rst:68 b4ac66f046dd462882bff4bede7c3857 -msgid "Check" -msgstr "" - -#: ../../doc/tutorial/install.rst:70 d64b4d582c434a3d95382a11911ff4d7 -msgid "" -"After a manual installation, you can check your configuration file using " -"the :ref:`check command `:" -msgstr "" - diff --git a/doc/locales/fr/LC_MESSAGES/tutorial/troubleshooting.po b/doc/locales/fr/LC_MESSAGES/tutorial/troubleshooting.po deleted file mode 100644 index d95ae15d..00000000 --- a/doc/locales/fr/LC_MESSAGES/tutorial/troubleshooting.po +++ /dev/null @@ -1,102 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2024, Yaal Coop -# This file is distributed under the same license as the canaille package. -# FIRST AUTHOR , 2024. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: canaille 0.0.56\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-22 15:37+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: fr\n" -"Language-Team: fr \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" - -#: ../../doc/tutorial/troubleshooting.rst:2 ce37b77d21724400acbd80e265a4ac54 -msgid "Troubleshooting" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:5 0c6a32db27d64339a9abdadb2cbb407e -msgid "The web interface throws useless error messages" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:7 b2fa75eb63c74b3f8da9c6a0c900e358 -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 "" - -#: ../../doc/tutorial/troubleshooting.rst:12 5bb67c25df7941c8a4e6986a24df3e17 -msgid "How to manually install LDAP schemas?" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:16 d37ddcef8efa4a45bf43d91bae3df68a -msgid "" -"Schema installation can be automatically done using the :ref:`install " -"command `." -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:18 876a00863ba444f79f41613dcc59d7fe -msgid "As of OpenLDAP 2.4, two configuration methods are available:" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:20 a127193eeb824165901ce7fa3db06052 -msgid "" -"The `deprecated `_ " -"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:21 fbad067339a546e993f5e244136f4742 -msgid "" -"The new one, based on a configuration directory (generally " -"``/etc/ldap/slapd.d``)." -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:23 3a21e5904bab4c8d91739b12ee4c82a4 -msgid "" -"Depending on the configuration method you use with your OpenLDAP " -"installation, you need to chose how to add the canaille schemas:" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:26 4b537fceb6554f588635a7bc5e09a63e -msgid "Old fashion: Copy the schemas in your filesystem" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:35 15ed45a91e074ec1b677c5682212c20d -msgid "New fashion: Use slapadd to add the schemas" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:37 295f1424bd904942bb28064cd696b85a -msgid "Be careful to stop your ldap server before running ``slapadd``" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:46 dd05d2ab930743b19e40359b27c22652 -msgid "How to manually generate the OIDC keypair?" -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:50 a5c7b03ca6c44029bf326dc44be3c7e5 -msgid "" -"The keypair generation can be automatically done using the :ref:`install " -"command `." -msgstr "" - -#: ../../doc/tutorial/troubleshooting.rst:52 0dd3ae7d46dc416dbec633b5e6e7b8ed -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 "" - diff --git a/doc/locales/readme.rst b/doc/locales/readme.rst index c2231d13..ddfffea5 100644 --- a/doc/locales/readme.rst +++ b/doc/locales/readme.rst @@ -10,7 +10,7 @@ After you have edited translatable strings, you should extract the messages with .. code-block:: bash - sphinx-build --builder gettext doc doc/gettext + sphinx-build --builder gettext doc doc/locales Language addition ~~~~~~~~~~~~~~~~~ @@ -19,11 +19,11 @@ You can add a new language manually with the following command, however this sho .. code-block:: bash - sphinx-intl update --pot-dir build/gettext --locale-dir doc/locales -l fr + sphinx-intl update --pot-dir doc/locales --locale-dir doc/locales -l fr Build the documentation in another language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash - sphinx-build --builder html --define language=fr doc build/html/fr + sphinx-build --builder html --define language=fr doc build/sphinx/html/fr