forked from Github-Mirrors/canaille

Updated by "Update PO files to match POT (msgmerge)" add-on in Weblate. Translation: Canaille/Documentation Translate-URL: https://hosted.weblate.org/projects/canaille/documentation/
6872 lines
232 KiB
Text
6872 lines
232 KiB
Text
# SOME DESCRIPTIVE TITLE.
|
||
# Copyright (C) 2024, Yaal Coop
|
||
# This file is distributed under the same license as the canaille package.
|
||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: canaille 0.0.56\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2025-01-08 17:04+0100\n"
|
||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||
"Last-Translator: Automatically generated\n"
|
||
"Language-Team: none\n"
|
||
"Language: ta\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=UTF-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
|
||
#: ../development/changelog.rst:2 3fb33c37ddc0459280f3c58be943008e
|
||
msgid "Release notes"
|
||
msgstr ""
|
||
|
||
#: ../development/changelog.rst:4 67e645fac3b646bba12959afa71710cc
|
||
msgid "All notable changes to this project will be documented in there."
|
||
msgstr ""
|
||
|
||
#: ../development/changelog.rst:6 6c5d0b8435cf4001afa1fe74104daf7a
|
||
msgid ""
|
||
"The format is based on `Keep a Changelog <https://keepachangelog.com/"
|
||
"en/1.0.0/>`_, and this project adheres to `Semantic Versioning <https://"
|
||
"semver.org/spec/v2.0.0.html>`_."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:2 c415689d242946298da972c97d5bb0c4
|
||
msgid "[0.0.58] - Unreleased"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:5 ../../CHANGES.rst:22 ../../CHANGES.rst:56
|
||
#: ../../CHANGES.rst:84 ../../CHANGES.rst:103 ../../CHANGES.rst:110
|
||
#: ../../CHANGES.rst:129 ../../CHANGES.rst:189 ../../CHANGES.rst:215
|
||
#: ../../CHANGES.rst:230 ../../CHANGES.rst:279 ../../CHANGES.rst:305
|
||
#: ../../CHANGES.rst:324 ../../CHANGES.rst:332 ../../CHANGES.rst:341
|
||
#: ../../CHANGES.rst:367 ../../CHANGES.rst:402 ../../CHANGES.rst:428
|
||
#: ../../CHANGES.rst:477 ../../CHANGES.rst:505 ../../CHANGES.rst:535
|
||
#: ../../CHANGES.rst:591 ../../CHANGES.rst:624 ../../CHANGES.rst:645
|
||
#: ../../CHANGES.rst:655 ../../CHANGES.rst:678 ../../CHANGES.rst:745
|
||
#: ../../CHANGES.rst:783 ../../CHANGES.rst:800 ../../CHANGES.rst:836
|
||
#: 91a8054efa234209906812cdd41bd586 2e9453d4722144fd9ad7f53b28a7cb37
|
||
msgid "Added"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:6 8593aca44439457296e5591823f56739
|
||
msgid "``--version`` option to the CLI. :pr:`209`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:7 efa1fc20329f42918fe6a530617cf102
|
||
msgid ""
|
||
":attr:`~canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES` :"
|
||
"issue:`175`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:8 0f7d8f6a51e545499fcff7acd93586e3
|
||
msgid "`canaille get --all` command option to perform full database dumps"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:11 ../../CHANGES.rst:15 ../../CHANGES.rst:44
|
||
#: ../../CHANGES.rst:64 ../../CHANGES.rst:77 ../../CHANGES.rst:89
|
||
#: ../../CHANGES.rst:114 ../../CHANGES.rst:122 ../../CHANGES.rst:170
|
||
#: ../../CHANGES.rst:196 ../../CHANGES.rst:248 ../../CHANGES.rst:285
|
||
#: ../../CHANGES.rst:354 ../../CHANGES.rst:372 ../../CHANGES.rst:410
|
||
#: ../../CHANGES.rst:449 ../../CHANGES.rst:484 ../../CHANGES.rst:527
|
||
#: ../../CHANGES.rst:631 ../../CHANGES.rst:685 ../../CHANGES.rst:717
|
||
#: ../../CHANGES.rst:731 254357b217fe4a309d66a400497a104a
|
||
msgid "Changed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:12 ../../CHANGES.rst:16 d1eb743e584f441d9b1dbf0669995b45
|
||
#: c15803fd37484051a8f92213756c4d22
|
||
msgid "fixed a bug on updating user's settings :issue:`206`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:19 9d53638e5933499baafec12390f02e23
|
||
msgid "[0.0.57] - 2024-12-31"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:23 5b4f3aa107a74df3ba845920503dfdc5
|
||
msgid "Intruder lockout :issue:`173`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:24 efa1fc20329f42918fe6a530617cf102
|
||
msgid ""
|
||
":attr:`~canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT` :"
|
||
"issue:`173`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:26 cdab69b7537c452caa3eadb572993a40
|
||
msgid "Multi-factor authentication :issue:`47`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:27 a90b270f7e144a4b81babbac96f5ff22
|
||
msgid ""
|
||
":attr:`~canaille.core.configuration.CoreSettings.OTP_METHOD` and :attr:"
|
||
"`~canaille.core.configuration.CoreSettings.EMAIL_OTP` and :attr:`~canaille."
|
||
"core.configuration.CoreSettings.SMS_OTP` and :attr:`~canaille.core."
|
||
"configuration.CoreSettings.SMPP` :issue:`47`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:32 05060126fea740ef82fba8246132aa6e
|
||
msgid "Password compromission check :issue:`179`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:33 a90b270f7e144a4b81babbac96f5ff22
|
||
msgid ""
|
||
":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:"
|
||
"`~canaille.core.configuration.CoreSettings."
|
||
"ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration."
|
||
"CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL` :issue:`179`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:37 2cfcbdba2e9541dbab610bc724a2683a
|
||
msgid "Implement OIDC client_credentials flow. :issue:`207`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:38 1e36a8464f6045708cf07b39bcdfea1c
|
||
msgid "Button in the client admin page to create client tokens."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:39 c69d8b01e4194d5b9268b84ab81849d6
|
||
msgid "Basic SCIM implementation. :issue:`116` :pr:`197`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:40 c777083179094cd994619adcfc8499d9
|
||
msgid "Password expiry policy :issue:`176`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:41 efa1fc20329f42918fe6a530617cf102
|
||
msgid ":attr:`~canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:45 bb196cd8528b48628628ab53c5288b49
|
||
msgid ""
|
||
"PostgreSQL and MySQL extras does not rely on libraries that need to be "
|
||
"compiled."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:46 c36865875c264bb4a34d614ea2be23cf
|
||
msgid ""
|
||
"``.env`` files are not loaded by default. The ``ENV_FILE`` env var must be "
|
||
"passed so ``.env`` files are loaded."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:49 045b041136be49de8d54674ad57fea87
|
||
msgid "[0.0.56] - 2024-11-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:52 ../../CHANGES.rst:94 ../../CHANGES.rst:133
|
||
#: ../../CHANGES.rst:141 ../../CHANGES.rst:149 ../../CHANGES.rst:156
|
||
#: ../../CHANGES.rst:163 ../../CHANGES.rst:177 ../../CHANGES.rst:207
|
||
#: ../../CHANGES.rst:220 ../../CHANGES.rst:238 ../../CHANGES.rst:257
|
||
#: ../../CHANGES.rst:265 ../../CHANGES.rst:291 ../../CHANGES.rst:299
|
||
#: ../../CHANGES.rst:319 ../../CHANGES.rst:349 ../../CHANGES.rst:381
|
||
#: ../../CHANGES.rst:389 ../../CHANGES.rst:415 ../../CHANGES.rst:435
|
||
#: ../../CHANGES.rst:459 ../../CHANGES.rst:469 ../../CHANGES.rst:490
|
||
#: ../../CHANGES.rst:498 ../../CHANGES.rst:521 ../../CHANGES.rst:544
|
||
#: ../../CHANGES.rst:556 ../../CHANGES.rst:565 ../../CHANGES.rst:574
|
||
#: ../../CHANGES.rst:583 ../../CHANGES.rst:603 ../../CHANGES.rst:610
|
||
#: ../../CHANGES.rst:660 ../../CHANGES.rst:668 ../../CHANGES.rst:693
|
||
#: ../../CHANGES.rst:701 ../../CHANGES.rst:709 ../../CHANGES.rst:722
|
||
#: ../../CHANGES.rst:736 ../../CHANGES.rst:768 ../../CHANGES.rst:791
|
||
#: ../../CHANGES.rst:822 13ee0de3f7db4046b8399917e8d52e0b
|
||
msgid "Fixed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:53 10c707b06b884b168b2dd26bffd7bf76
|
||
msgid ""
|
||
"With LDAP backend, updating another user groups could result in a permission "
|
||
"lost for the editor. :issue:`202`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:57 efa1fc20329f42918fe6a530617cf102
|
||
msgid ""
|
||
":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH` and :"
|
||
"attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH` "
|
||
"configuration options :issue:`174`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:59 cdab69b7537c452caa3eadb572993a40
|
||
msgid "Password strength visual indicator. :issue:`174`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:60 2ae6bad543d64621886630d3db7832e6
|
||
msgid "Security events logs. :issue:`177`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:61 40ab5f1ed3bc406fb662d0025e5b3212
|
||
msgid "Support for Python 3.13. :pr:`186`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:65 c7940e351aac4939b964ccb80cebd616
|
||
msgid "Update to `HTMX` 2.0.3. :pr:`184`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:66 dfc1569ae0ec412d86503a0695522fa5
|
||
msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:67 40c97bec2553487fa62efc486d3ee444
|
||
msgid ""
|
||
"The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` "
|
||
"and ``mysql``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:70 ../../CHANGES.rst:420 ../../CHANGES.rst:828
|
||
#: bc1a20b5783a4fe38fa201438a8075e5
|
||
msgid "Removed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:71 3f97d00692d047dbbecb5c18a2d45b07
|
||
msgid "End support for Python 3.9. :pr:`179`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:74 4a57056601f148969254d2f049e0f460
|
||
msgid "[0.0.55] - 2024-08-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:78 a037ad5da20049ad82e9f9b0d766cfbb
|
||
msgid "Use poetry-core build backend. :pr:`178`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:81 d6bf96b8e5cc4a6f8e099b48c1951a6a
|
||
msgid "[0.0.54] - 2024-07-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:85 062bcc176aac499384187fcb06e2a00b
|
||
msgid ""
|
||
"Group member removal can be achieved from the group edition page. :issue:"
|
||
"`192`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:86 8680469549c74d37a52b1c6252c74d57
|
||
msgid "Model management commands. :issue:`117` :issue:`54`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:90 c19428c67d8f4d198d0ab97defe14fb3
|
||
msgid "Model `identifier_attributes` are fixed."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:91 571f38b1484b43e2beed6f33eb675700
|
||
msgid "Bump to `HTMX` 1.9.12. :pr:`172`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:96 9e54da898699471194477836791f08a6
|
||
msgid "Dark theme colors for better readability."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:97 4e0f2a8e03a447e59cb0a2b0e6d208f1
|
||
msgid ""
|
||
"Crash for passwordless users at login when no SMTP server was configured."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:100 a9273241db7e4137bac5973b20e3ec5d
|
||
msgid "[0.0.53] - 2024-04-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:104 17fbf739a68a4e59b5cc6da8befa1c6f
|
||
msgid ""
|
||
"`env_prefix` `create_app`` variable can select the environment var prefix."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:107 7bdc8f732053463b95353cdf5c994838
|
||
msgid "[0.0.52] - 2024-04-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:111 bc7d1037cdfd40a69044f465467f6834
|
||
msgid "`env_file` create_app variable can customize/disable the .env file."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:115 9685a5e5a13147f093ac57e2039fe11b
|
||
msgid "Locked users cannot be impersonated anymore."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:116 1b83a24a97384c2faab67e915701e6b2
|
||
msgid "Minimum Python requirement is 3.9."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:119 e88f01e3f89f45f2a63b456f8e304d3d
|
||
msgid "[0.0.51] - 2024-04-09"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:123 aae3d126989840578ec2b08058aad688
|
||
msgid "Display the menu bar on error pages."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:126 22b11dc18595450fa5e7fe5f35824ebe
|
||
msgid "[0.0.50] - 2024-04-09"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:130 fc1bc503759c4beb943e9dcbf0c4a9cf
|
||
msgid "Sign in/out events are logged in. :issue:`177`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:134 cfe0182123c94bcc9ee847739bd2e114
|
||
msgid "`HTMX` and `JAVASCRIPT` configuration settings."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:135 3bc7c83763d34549bac91df86a22b3a0
|
||
msgid "Compatibility with old sessions IDs."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:138 cdee0bee34024d21bace2d77ff637ed9
|
||
msgid "[0.0.49] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:142 f9c9585c305d47628adffcae287229d2
|
||
msgid "LDAP user group removal."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:143 c25c5c6a9cca4061be6502cae5e86ba2
|
||
msgid ""
|
||
"Display an error message when trying to remove the last user from a group."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:146 5e0c66b55801444497954839297b97eb
|
||
msgid "[0.0.48] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:150 bd9920a130844ee897863a6b649484e2
|
||
msgid "LDAP ``objectClass`` guessing exception."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:153 93cf829932204311ba399ae713aff29f
|
||
msgid "[0.0.47] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:157 b7a5d3351a334b0592b12373e1c7afa6
|
||
msgid "Lazy permission loading exception."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:160 c6000ae4f0fc4d488ab180c3aa9eb144
|
||
msgid "[0.0.46] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:164 db4476f22ad049f49833696323eb1b33
|
||
msgid ""
|
||
"Saving an object with the LDAP backend keeps the ``objectClass`` un-managed "
|
||
"by Canaille. :pr:`171`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:167 d7117b0322b549ff87b73b8e4c839915
|
||
msgid "[0.0.45] - 2024-04-04"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:171 9690ab893eef4290a52b1137f24b9be8
|
||
msgid "Internal indexation mechanism of ``MemoryModel``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:174 be79650410904879b53da2c62ac092d5
|
||
msgid "[0.0.44] - 2024-03-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:178 1c2533bc36b548c59361d7b3e304cce6
|
||
msgid "Fix the default LDAP ``USER_FILTER`` value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:179 c429e79bd5aa46edb7b4cd1bd87c3ad8
|
||
msgid "Fix the OIDC feature detection."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:182 51a43a574cc943b5912effdaa67f8690
|
||
msgid "[0.0.43] - 2024-03-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:186 ../../CHANGES.rst:445 02e8eccba3b74e889a68c78dc51e0a24
|
||
msgid "Configuration files must be updated."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:191 a39fba5f25754fdc9f0f339142ff0320
|
||
msgid "Add ``created`` and ``last_modified`` datetime for all models."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:192 b1e37ddf62994798a70a23cff76ed4d6
|
||
msgid "Sitemap to the documentation. :pr:`169`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:193 54cf20bc59af4634af6b3f2d0e10c5e9
|
||
msgid ""
|
||
"Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:198 689b4f88ba4b43db8c8b1a7bff0aebe6
|
||
msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:199 7d18c66450654e25a65749ea273b859d
|
||
msgid "Bump to `HTMX` 1.99.11. :pr:`166`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:200 9d053f12577548bc8cff1add00376bae
|
||
msgid ""
|
||
"Use the standard tomllib Python module instead of `toml` starting from "
|
||
"Python 3.11. :pr:`167`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:201 fd8c1c0314b2465c9cacb4ba593eae77
|
||
msgid "Use shibuya as the documentation theme :pr:`168`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:204 abc0b3ba739e4f99866d02027d8128d2
|
||
msgid "[0.0.42] - 2023-12-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:209 74e8932123b744b2809d370b36980326
|
||
msgid "Avoid to fail on imports if ``cryptography`` is missing."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:212 41f209b7a9054599b7b71d4fab3afe8f
|
||
msgid "[0.0.41] - 2023-12-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:217 77ff8fdeadf94e2f8696b2f5b9bd9349
|
||
msgid ""
|
||
"OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:"
|
||
"`185` :pr:`164`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:222 8940d9836a9f46a09613c3646e1d55f8
|
||
msgid ""
|
||
"Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during "
|
||
"OIDC dynamic registration."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:223 bb9a9230771445b6a7c93f042fb289ee
|
||
msgid ""
|
||
"``post_logout_redirect_uris`` was ignored during OIDC dynamic registration."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:224 b5d0341447ef443b969d2a48457442f2
|
||
msgid "Group field error prevented the registration form validation."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:227 7bcad6150cbc4883817538eb23bed3bd
|
||
msgid "[0.0.40] - 2023-12-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:232 aae4204166c443f99e04d84842dd6dd9
|
||
msgid "The ``THEME`` setting can be a relative path."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:235 26224cfa5ee647a2b15239a78065f5f7
|
||
msgid "[0.0.39] - 2023-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:240 14b2b67c379045d681ee712797f44328
|
||
msgid "Crash when no ACL were defined."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:241 38649598ac954d29843b54b15343dd15
|
||
msgid "OIDC Userinfo endpoint is also available in POST."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:242 ed1da2958a1646fd82c70171a5c04317
|
||
msgid "Fix redirection after password reset. :issue:`159`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:245 8f2bc47f69554f539aa2836958029d59
|
||
msgid "[0.0.38] - 2023-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:250 24f252671c9a4a3590e94e5e563e4d19
|
||
msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:251 8a1d423f79f749868c06a775e9c21bd2
|
||
msgid "Update to Flask 3. :issue:`161` :pr:`163`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:254 9d53638e5933499baafec12390f02e23
|
||
msgid "[0.0.37] - 2023-12-01"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:259 5ed255dd094a4a3aae1b75edf54001ad
|
||
msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:262 26d16685ada341a29bf6ee6e98997128
|
||
msgid "[0.0.36] - 2023-12-01"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:267 2cfddfd6843e4cbfb1b645c84bc70322
|
||
msgid "Avoid crashing when LDAP groups references unexisting users."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:268 f5714a32e81841e29f2619f6ee5464e8
|
||
msgid ""
|
||
"Password reset and initialization mails were only sent to the preferred user "
|
||
"email address."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:270 4e121ada1cc24b7b8051d085b0ce464b
|
||
msgid ""
|
||
"Password reset and initialization mails were not sent at all the user "
|
||
"addresses if one email address could not be reached."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:272 c5fc8c86d3df4732b3a06f70dd89af18
|
||
msgid "Password comparison was too permissive on login."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:273 36f936a6dd8c41c5bc833d928f347321
|
||
msgid "Encrypt passwords in the SQL backend."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:276 76befacfb135435fbee6ee0fe07f40e5
|
||
msgid "[0.0.35] - 2023-11-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:281 14d361d80e4c429f929b943d3321e895
|
||
msgid ""
|
||
"Refresh token grant supports other client authentication methods. :pr:`157`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:282 c52cda2685214bcab533db539acee007
|
||
msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:287 57670f55b7644a0888ab65cd2da2fd8c
|
||
msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:288 f4ef25b7b38b42a48fb2a32c5cd8888f
|
||
msgid "Bump to `HTMX` 1.9.9. :pr:`159`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:293 49b0b7da40204fdeaf40c5281235c2a6
|
||
msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:296 db372dee122e4b4fb18c2c99dd056ce2
|
||
msgid "[0.0.34] - 2023-10-02"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:301 a4b5211e96894c5d9d51b2630d6aea17
|
||
msgid ""
|
||
"Canaille installations without account lockabilty could not delete users. :"
|
||
"pr:`153`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:307 4f4ca04b08a04dcb8f6a2eb6605f0e13
|
||
msgid ""
|
||
"If users register or authenticate during a OAuth Authorization phase, they "
|
||
"get redirected back to that page afterwards. :issue:`168` :pr:`151`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:310 298ffe26093441918be8b38d13f0cc58
|
||
msgid ""
|
||
"The `flask-babel` and `pytz` libraries are now part of the `front` packaging "
|
||
"extras."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:311 ccb502180d634f11ad173619af1b68d8
|
||
msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:312 7413676f512d4473972484920ff5f060
|
||
msgid "Bump to `HTMX` 1.9.6. :pr:`154`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:313 7905327465c44c09b2a10854abe79960
|
||
msgid "Support for Python 3.12. :pr:`155`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:316 808e57e560f74a25b60029fbd6531d2e
|
||
msgid "[0.0.33] - 2023-08-26"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:321 1179dc27648248188fdecf5696fd5045
|
||
msgid "OIDC jwks endpoint do not return empty `kid` claim."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:326 b8b2caca239b4b609143ffd267522a16
|
||
msgid "Documentation details on the Canaille models."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:329 dd35ed0e27664b6b954e9b39881f14bc
|
||
msgid "[0.0.32] - 2023-08-17"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:334 bdcae061315a4e92a6bc1a48475cb351
|
||
msgid "Additional inmemory backend. :issue:`30` :pr:`149`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:335 c39cbed721254ce5ad9c250de1e7ea41
|
||
msgid "Installation extras. :issue:`167` :pr:`150`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:338 5311648e4c714ed29e89e9644167f963
|
||
msgid "[0.0.31] - 2023-08-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:343 a6a4b510a0ac4b4ebeb9160510f72d77
|
||
msgid ""
|
||
"Configuration option to disable the forced usage of OIDC `nonce` parameter. :"
|
||
"pr:`143`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:344 37eb24ef005e44da8ae0f4c48bda766c
|
||
msgid "Validate phone numbers with a regex. :pr:`146`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:345 2be2120a0500430a8d854d1b8f19a0bf
|
||
msgid "Email verification. :issue:`41` :pr:`147`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:346 d3be95492ef348efa77976515d4ffca9
|
||
msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:351 1a3da0153c2b451d99665d2b61c512f2
|
||
msgid "The `check` command uses the default configuration values."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:356 15f35fa96af04e508b1a6448d866cb5f
|
||
msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:359 add3188842de44b691dfbe3152546f7b
|
||
msgid "[0.0.30] - 2023-07-06"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:363 b96e981450334eee84128d7dffb40d8f
|
||
msgid ""
|
||
"Configuration files must be updated. Check the new format with ``git diff "
|
||
"0.0.29 0.0.30 canaille/conf/config.sample.toml``"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:369 ab83051dda0b48d185846e49011f2429
|
||
msgid "Configuration option to disable Javascript. :pr:`141`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:374 85fb804c891f444c9de116e6e4771526
|
||
msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:375 42d91f7cf5a3438a8bcb0bd5c193f1ea
|
||
msgid ""
|
||
"Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and "
|
||
"``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:378 30736e0e4b854b46940e80c38023946a
|
||
msgid "[0.0.29] - 2023-06-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:383 89d319fb81e148cb8f82f4b1a5a5390c
|
||
msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:386 68d32ee84fa642dfbf358ef907193eb8
|
||
msgid "[0.0.28] - 2023-06-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:391 5490daf53fd144c0b6b360e90bf5667b
|
||
msgid "A template variable was misnamed."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:394 c65a251ed68a49beaff42740c12ce76a
|
||
msgid "[0.0.27] - 2023-06-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:398 ccf84fb0d4cd47058c3849498bd92259
|
||
msgid ""
|
||
"Configuration files must be updated. Check the new format with ``git diff "
|
||
"0.0.26 0.0.27 canaille/conf/config.sample.toml``"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:404 0856562aad23492aa6efc7f6e4bf8f90
|
||
msgid ""
|
||
"Configuration entries can be loaded from files if the entry key has a "
|
||
"*_FILE* suffix and the entry value is the path to the file. :issue:`134` :pr:"
|
||
"`134`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:406 24fa209262e04bcbb46c2ab7c881fbaa
|
||
msgid "Field list support. :issue:`115` :pr:`136`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:407 eaff808f9ce745c59a1b373ab0ef90ab
|
||
msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:412 8afcdb0ddd8f4e6c9941315ff1b06538
|
||
msgid "Bump to jquery 3.7.0. :pr:`138`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:417 a6e1f4b8a72f4500ab437a86f6e98d06
|
||
msgid ""
|
||
"Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:422 cfcf7ee77bb84df1bcd780df223e9044
|
||
msgid "Stop support for Python 3.7. :pr:`131`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:425 42eab7328c604747ad6bde0067cb6603
|
||
msgid "[0.0.26] - 2023-06-03"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:430 b621a029c6ec420d8708f0ddd4b49c85
|
||
msgid ""
|
||
"Implemented account expiration based on OpenLDAP ppolicy overlay. Needs "
|
||
"OpenLDAP 2.5+. :issue:`13` :pr:`118`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:432 05f5b0808e74429b92bf61fa570014cf
|
||
msgid "Timezone configuration entry. :issue:`137` :pr:`130`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:437 d7e71d1ce6704911b7e5094538cc1084
|
||
msgid "Avoid setting ``None`` in JWT claims when they have no value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:438 e16dcca3b764486d874401ba65e22f78
|
||
msgid "Display password recovery button on OIDC login page. :pr:`129`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:441 dcbd97e0bc4f44babcdc9ad9a503c162
|
||
msgid "[0.0.25] - 2023-05-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:446 4109765130284304994ae405858bdd3c
|
||
msgid ""
|
||
"Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config."
|
||
"sample.toml``"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:451 c4645c08f789400bba029897871bb828
|
||
msgid ""
|
||
"Renamed user model attributes to match SCIM naming convention. :pr:`123`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:452 3c58d21fdc81418e8ee43179c2d6384f
|
||
msgid "Moved OIDC related configuration entries in ``OIDC``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:453 5b002906414e41448a3fadea87d71e45
|
||
msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:454 d58c113094474cf3b82e8a3303202bb6
|
||
msgid "Bumped to `HTMX` 1.9.0. :pr:`124`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:455 3bbdffb495f74fccbdb9eeb78a8eaf81
|
||
msgid ""
|
||
"ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:456 0d3ea4f8df2542e0a7da5029159f31e0
|
||
msgid "Bumped to `HTMX` 1.9.2. :pr:`127`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:461 71139e5ab6e34c2a87d51d3d04c0dbc0
|
||
msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:462 e34b111a3a8b4e2da966a36107a682b5
|
||
msgid "Fixed empty model attributes registration. :pr:`125`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:463 566d49eca850419cbb39c3a78a4160aa
|
||
msgid "Password initialization mails were not correctly sent. :pr:`128`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:466 f461dc48e9c846628f7ddb99b18252c6
|
||
msgid "[0.0.24] - 2023-04-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:471 007393d26d6e4375a0e05cbbf6c41d65
|
||
msgid "Fixed avatar update. :pr:`122`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:474 0ddfaf5df815484f9eb469a884e5f667
|
||
msgid "[0.0.23] - 2023-04-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:479 2e7346baddf44a7f9f5b9a05ae826913
|
||
msgid "Organization field. :pr:`116`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:480 1c68c43ae90f4e2e944dab12514f06d1
|
||
msgid "ETag and Last-Modified headers on user photos. :pr:`116`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:481 bcaf8fe7d8e940f191ed6ea5178566c1
|
||
msgid "Dynamic form validation. :pr:`120`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:486 2b077ff5215a4b20b8438e82f4366ada
|
||
msgid "UX rework. Submenu addition. :pr:`114`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:487 166152fdbf6248e8a4af29f4f3bf5b6e
|
||
msgid "Properly handle LDAP date timezones. :pr:`117`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:492 343c4102b6d648018544f151f97540e1
|
||
msgid "CSRF protection on every forms. :pr:`119`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:495 7140973831594dacad0bd205ca9b60e5
|
||
msgid "[0.0.22] - 2023-03-13"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:499 67dc897fec2946598dbb4fe82db8a94f
|
||
msgid ""
|
||
"The `Faker` library is not imported anymore when the `clean` command is "
|
||
"called."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:502 58e3c0af1ce74125bf42a5ea16b88fbf
|
||
msgid "[0.0.21] - 2023-03-12"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:507 a25f75d9086a4499aa1088e537f21bc3
|
||
msgid "Display TOS and policy URI on the consent list page. :pr:`102`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:508 e848a4f5372b44249423579a7e2cdc3d
|
||
msgid "Admin token deletion. :pr:`100` :pr:`101`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:509 61b841de5b89407d9912c8c73309111a
|
||
msgid "Revoked consents can be restored. :pr:`103`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:510 656acd80913242a4820a20bc76d797e8
|
||
msgid ""
|
||
"Pre-consented clients are displayed in the user consent list, and their "
|
||
"consents can be revoked. :issue:`69` :pr:`103`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:512 e08c1586240745fa9537dd7501475c0d
|
||
msgid ""
|
||
"A ``populate`` command can be used to fill the database with random users "
|
||
"generated with faker. :pr:`105`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:514 dc653adfdbc441589c385b956ae9739e
|
||
msgid "SMTP SSL support. :pr:`108`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:515 c69d8b01e4194d5b9268b84ab81849d6
|
||
msgid "Server side pagination. :issue:`114` :pr:`111`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:516 5b4f3aa107a74df3ba845920503dfdc5
|
||
msgid "Department number support. :issue:`129`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:517 d219e1ac8fa148d5b6e4babc678fbeb2
|
||
msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:518 52d2ceda28ab430a984dee19f8766b2a
|
||
msgid "Title edition support. :pr:`113`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:523 c4aca25daa3b491f9208d71f7715800f
|
||
msgid ""
|
||
"Client deletion also deletes related :class:`~canaille.oidc.basemodels."
|
||
"Consent`, :class:`~canaille.oidc.basemodels.Token` and :class:`~canaille."
|
||
"oidc.basemodels.AuthorizationCode` objects. :issue:`126` :pr:`98`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:529 a1c057df21a9436a9b149fb91fdb28d0
|
||
msgid "Removed the `DataTables` Javascript library."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:532 74a0312b6fff499fa609d0adbe73dfac
|
||
msgid "[0.0.20] - 2023-01-28"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:537 c443970df56e4203b8ee3fd9e4fa2395
|
||
msgid "Spanish translation. :pr:`85` :pr:`88`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:538 9e42a95e59a74c5584d1144c249a57c1
|
||
msgid "Dedicated connectivity test email. :pr:`89`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:539 e06855259b6f463897acd0f8a23cd05e
|
||
msgid "Update to jquery 3.6.3. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:540 96cb7430946248108d8c97973a4799d5
|
||
msgid "Update to fomantic-ui 2.9.1. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:541 5b5784d9aedb4949bac1591395fc7eb9
|
||
msgid "Update to DataTables 1.13.1. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:546 e88b90b5e0eb418f99ea2839c1e79943
|
||
msgid "Fix typos and grammar errors. :pr:`84`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:547 d333115d646f4ccf9a5bb2dc4d23eba0
|
||
msgid "Fix wording and punctuations. :pr:`86`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:548 cfc153afa2ec4bee9c2dd589a234716c
|
||
msgid "Fix HTML lang tag. :issue:`122` :pr:`87`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:549 a2dc7b3677d040c7a43bde721f766029
|
||
msgid "Automatically trims the HTML translated strings. :pr:`91`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:550 9a91064adb7f414fab73518fbc77b01d
|
||
msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:553 d7a2cda6d8e24cc484f13ee4df40c1ea
|
||
msgid "[0.0.19] - 2023-01-14"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:558 f7c94b5e7545458e8375ef8a8e3dc21c
|
||
msgid ""
|
||
"Ensures the token `expires_in` claim and the `access_token` `exp` claim have "
|
||
"the same value. :pr:`83`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:562 9291df232e4b4a7eb97fb87504f9b8d4
|
||
msgid "[0.0.18] - 2022-12-28"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:567 c896b9996ab24cfeb217e9ebfdbed090
|
||
msgid ""
|
||
"OIDC end_session was not returning the ``state`` parameter in the "
|
||
"``post_logout_redirect_uri``. :pr:`82`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:571 2fa2e9a70b8d4ab4bed4d7f0d8d68f37
|
||
msgid "[0.0.17] - 2022-12-26"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:576 cff81f4ef5254cfdb1e6ba76c2c3b9f6
|
||
msgid "Fixed group deletion button. :pr:`80`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:577 552d92ac7c364f198201b60a3abebae2
|
||
msgid "Fixed post requests in oidc clients views. :pr:`81`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:580 f7c78b950b184117855277070cb4e548
|
||
msgid "[0.0.16] - 2022-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:585 3e522208e81740fba479a43b017311fd
|
||
msgid "Fixed LDAP operational attributes handling."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:588 53e83abb15b24cc0a3d589011cf7c2a3
|
||
msgid "[0.0.15] - 2022-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:593 7194a505926740e3b52b81708d2818de
|
||
msgid "User can chose their display name. :pr:`77`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:594 5c5a59a03bd5497aa7474ae59e88f6bf
|
||
msgid "Bumped to Authlib 1.2. :pr:`78`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:595 0a3d037fae66464b8c2dfeea28dd3eaf
|
||
msgid ""
|
||
"Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration "
|
||
"Management Protocol. :pr:`79`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:597 0670727ea1074acf968c49e71dc4062b
|
||
msgid ""
|
||
"Add the ``nonce`` parameter to the ``claims_supported`` server metadata list."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:600 eb86b7335b7b4971812f25c9a2d37d1e
|
||
msgid "[0.0.14] - 2022-11-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:604 9903a64c05994256813debf83e9a6b21
|
||
msgid "Fixed translation catalogs packaging."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:607 eb1e508e7d2c46bdb471cffecbe4d897
|
||
msgid "[0.0.13] - 2022-11-21"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:612 6e71d21752234824bc42897b8a434bb3
|
||
msgid ""
|
||
"Fixed a bug on the contacts field in the admin client form following the "
|
||
"LDAP schema update of 0.0.12."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:614 374bd3f105af42bc8ea5c0de35e7437f
|
||
msgid ""
|
||
"Fixed a bug happening during RP initiated logout on clients without "
|
||
"`post_logout_redirect_uri` defined."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:616 6244294cde9d429dbab852b0f7721160
|
||
msgid "Gitlab CI fix. :pr:`64`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:617 8dc7de6abbd447f4a78272f33cbcb6cf
|
||
msgid ""
|
||
"Fixed `client_secret` display on the client administration page. :pr:`65`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:618 be276c6c0aed433987b562fa51a9af06
|
||
msgid "Fixed non-square logo CSS. :pr:`67`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:619 45c4b643c08f4e98b8eb1994cca78051
|
||
msgid "Fixed schema path on installation. :pr:`68`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:620 490ff7e15c244e1c80522169f52be22c
|
||
msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:621 13d139a4ca6b420eb0780952acd8582c
|
||
msgid "Fixed client preconsent disabling. :pr:`72`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:626 f863beea190c4605afc13c35d7828c7e
|
||
msgid "Python 3.11 support. :pr:`61`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:627 dfa820f752f64485950bd9f2f4f2f798
|
||
msgid ""
|
||
"``apparmor`` slapd configuration instructions in the documentation page for "
|
||
"contributions. :pr:`66`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:628 33f4b497e723467fb7cca94de105b331
|
||
msgid "``preferredLanguage`` attribute support. :pr:`75`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:633 80931cb05ba54eb0bdd13af0e69ae5c4
|
||
msgid ""
|
||
"Replaced the use of the deprecated `FLASK_ENV` environment variable by "
|
||
"`FLASK_DEBUG`."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:635 74c0ecca84cb4195b047360a2a12b281
|
||
msgid ""
|
||
"Dynamically generate the server metadata. Users won't have to copy and "
|
||
"manually edit ``oauth-authorizationserver.json`` and ``openid-configuration."
|
||
"json``. :pr:`71`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:638 b56f59b2dd124c91a6268830cf4ddecc
|
||
msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:639 d701256eb4764f81827acd7b0a0dbda3
|
||
msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:642 45607852e443428199051f1ecba9ba24
|
||
msgid "[0.0.12] - 2022-10-24"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:647 9997d515babd44b4841ef0218885f1f1
|
||
msgid "Basic WebFinger endpoint. :pr:`59`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:648 509a601f77664756bc01064f20359cf6
|
||
msgid "Bumped to FomanticUI 2.9.0."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:649 2cfcbdba2e9541dbab610bc724a2683a
|
||
msgid "Implemented Dynamic Client Registration. :pr:`60`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:652 4acb242ffb5440d1a468e2d3c3856fe8
|
||
msgid "[0.0.11] - 2022-08-11"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:657 0c4bd2691ba9453b88a686a22ede18ef
|
||
msgid "Default theme has a dark variant. :pr:`57`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:662 d3cabac68def4f77a693a6159bf2f5c0
|
||
msgid "Fixed missing ``canaille`` binary. :pr:`58`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:665 735459f4aeea42c6b0f7be4a2b06802f
|
||
msgid "[0.0.10] - 2022-07-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:670 f9dfd87d0fa145579e2297b27b61a11b
|
||
msgid "Online demo. :pr:`55`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:671 5e5eef7b53ce470ab0a0137617552a9c
|
||
msgid ""
|
||
"The consent page was displaying scopes not supported by clients. :pr:`56`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:672 f7b8675a05b64bafb3efbbad603537ce
|
||
msgid "Fixed end session when user are already disconnected."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:675 a14c8084a27d463f82c1573d946a6676
|
||
msgid "[0.0.9] - 2022-06-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:680 d04e2396209641cc84fa39d8bb397eaa
|
||
msgid ""
|
||
"``DISABLE_PASSWORD_RESET`` configuration option to disable password "
|
||
"recovery. :pr:`46`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:681 01acc147a456445eb3858de7b0586dca
|
||
msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:682 dafb92303cb147909db73fdc619f1267
|
||
msgid "`RP-initiated logout` implementation. :pr:`54`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:687 f672b1443aa9498994204b20952103e4
|
||
msgid "Bumped to Authlib 1. :pr:`48`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:688 18c1456a82f748cd9ee0d6abcb40801f
|
||
msgid "Various documentation improvements. :pr:`50`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:689 77c7a3b3242647718a3a94a1fc4d05a1
|
||
msgid "Use poetry instead of setuptools as project management tool. :pr:`51`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:690 3b65181a80b64d0d8a474a5e643d3f80
|
||
msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:694 35eef6ab06b940e8ad49bf31b7620404
|
||
msgid "``HIDE_INVALID_LOGIN`` behavior and default value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:695 2792732f7d154df2b11a35b13114939b
|
||
msgid ""
|
||
"Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:698 8766634316d146ab8929259434391f34
|
||
msgid "[0.0.8] - 2022-03-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:703 f053b2fe7153473a81cb24bfc2b90c7d
|
||
msgid "Fixed dependencies."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:706 6fe1289ea759485b9c3c7658461a409d
|
||
msgid "[0.0.7] - 2022-03-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:711 f40f5e320ea4412fadc8f1bc1d99198c
|
||
msgid ""
|
||
"Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:714 ac9b3059b303486a9b31536f1726d873
|
||
msgid "[0.0.6] - 2022-03-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:719 357a41c66f054b9b830d9ae20551690d
|
||
msgid "Access token are JWT. :pr:`38`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:724 20b619f456934ab09712d95d37ef12cd
|
||
msgid "Default groups on invitations. :pr:`41`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:725 74f8d8568cd1405bbef739de7b92f380
|
||
msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:728 936cdbdb780241beb677c1a3c5d21735
|
||
msgid "[0.0.5] - 2022-02-17"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:733 b49925c79428413ca8c31eff4f42a588
|
||
msgid "LDAP model objects have new identifiers. :pr:`37`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:738 21e3bd1145ce480ea8a82394722cef34
|
||
msgid "Admin menu dropdown display. :pr:`39`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:739 b50bd877e6fa4055a450f65d4e0e6951
|
||
msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:742 93523c049fd2438b9f8dbb942b657b7c
|
||
msgid "[0.0.4] - 2022-02-16"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:747 9cc5e4c0be3e43f98a84d076d254a7a8
|
||
msgid "Client pre-authorization. :pr:`11`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:748 b1444e5514e3495f8f05b00bfb31e54b
|
||
msgid "LDAP permissions check with the check command. :pr:`12`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:749 81badbb21dfe4dd0bd990037947c24cf
|
||
msgid ""
|
||
"Update consents when a scope required is larger than the scope of an already "
|
||
"given consent. :pr:`13`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:751 5f6092f6103d401e9fe4554e04ad12cb
|
||
msgid "Theme customization. :pr:`15`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:752 7e99d3a9c9134144a8e18989e6d0d633
|
||
msgid "Logging configuration. :pr:`16`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:753 abd6618054b443efbb5101e9c32f0c90
|
||
msgid "Installation command. :pr:`17`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:754 18c69372e28c42c4b0ac0cae51fcd8aa
|
||
msgid "Invitation links. :pr:`18`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:755 2e35dc7cf246485c97650451d1f41d93
|
||
msgid "Advanced permissions. :pr:`20`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:756 ef3b8ab7e89448089a9d09363832c7cc
|
||
msgid "An option to not use OIDC. :pr:`23`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:757 4d5d5581283a4eaabab00c6df18077a0
|
||
msgid "Disable some features when no SMTP server is configured. :pr:`24`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:758 a54b117ff68e47eabb66aa0a741790b1
|
||
msgid ""
|
||
"Login placeholder dynamically generated according to the configuration. :pr:"
|
||
"`25`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:759 8593aca44439457296e5591823f56739
|
||
msgid "Added an option to tune object IDs. :pr:`26`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:760 548d5d09a1da4104aed49324dd3d96b6
|
||
msgid "Avatar support. :pr:`27`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:761 e6275bae918547beab8caabaf64f57db
|
||
msgid "Dynamical and configurable JWT claims. :pr:`28`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:762 82bbcaaa7973438696de021fbff14354
|
||
msgid "UI improvements. :pr:`29`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:763 70cd1dd3d81d4288b1c6bca674492944
|
||
msgid "Invitation links expiration. :pr:`30`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:764 af865fef102c44bc801e8aec157c2835
|
||
msgid "Invitees can choose their IDs. :pr:`31`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:765 d194b87cfbd94dd398f1c58bec6e4c37
|
||
msgid "LDAP backend refactoring. :pr:`35`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:770 2409763cd25243c9a80678c470fa336d
|
||
msgid "Fixed ghost members in a group. :pr:`14`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:771 ae04a8fa1896467792d8aaaf161fed29
|
||
msgid "Fixed email sender names. :pr:`19`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:772 596c5956ebc6442984251ca5c558834e
|
||
msgid "Fixed filter being not escaped. :pr:`21`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:773 bbf97ea202404efd8708cfbed4bbfe74
|
||
msgid "Demo script good practices. :pr:`32`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:774 8d176b7d4da5419d8768430eeb01036c
|
||
msgid "Binary path for Debian. :pr:`33`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:775 004ecd0e934049ef823bbf0d63f75c14
|
||
msgid ""
|
||
"Last name was not mandatory in the forms while this was mandatory in the "
|
||
"LDAP server. :pr:`34`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:777 c6de3dbeeb5f40ff85c60e062271bfdb
|
||
msgid "Spelling typos. :pr:`36`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:780 d49aed2f00e346cc8adaa26aa54f470a
|
||
msgid "[0.0.3] - 2021-10-13"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:785 0b32a6319c044bba95b3a00f245c6956
|
||
msgid "Two-steps sign-in. :issue:`49`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:786 4cf53569893c4b0ba8eab17b44a4a15b
|
||
msgid "Tokens can have several audiences. :issue:`62` :pr:`9`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:787 2956507b8bba47839fef6f9a63d5321a
|
||
msgid "Configuration check command. :issue:`66` :pr:`8`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:788 0415c157cb414913b3d7748afba41cda
|
||
msgid "Groups management. :issue:`12` :pr:`6`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:793 e08a9eafc49f45cbb361ed3bd89d4649
|
||
msgid "Introspection access bugfix. :issue:`63` :pr:`10`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:794 48e63a4a411d4aab8259f74b1d257a37
|
||
msgid "Introspection sub claim. :issue:`64` :pr:`7`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:797 2a9047b937be481f811eb403d6bf7fd9
|
||
msgid "[0.0.2] - 2021-01-06"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:802 9f74458dacff435998774594822a1506
|
||
msgid "Login page is responsive. :issue:`1`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:803 8a87683d8d524cd482264473256b3777
|
||
msgid "Adapt mobile keyboards to login page fields. :issue:`2`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:804 c777083179094cd994619adcfc8499d9
|
||
msgid "Password recovery interface. :issue:`3`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:805 c7393dc1bb6a4290bfdb2d59a3fef0c9
|
||
msgid "User profile interface. :issue:`4`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:806 e874e0e97cae4310ba62553c3d31cd16
|
||
msgid "Renamed the project *Canaille*. :issue:`5`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:807 27a300eabaaf4644989d134ccca22dd8
|
||
msgid "Command to remove old tokens. :issue:`17`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:808 8e168b1583984a71848678112365d1c7
|
||
msgid "Improved password recovery email. :issue:`14` :issue:`26`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:809 901de9a21dd94541b3c23946ada4cd88
|
||
msgid ""
|
||
"Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:810 62c1e3da0a87437aaa529dcc936c7dbc
|
||
msgid "Improved consents page. :issue:`27`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:811 f816ffeb73244ae0b1171b8c156d1e12
|
||
msgid "Admin user page. :issue:`8`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:812 2241f2b45f1e426f99f68ccc516c6b60
|
||
msgid "Project logo. :pr:`29`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:813 dd802cef3e384fdc928fc43178ab119a
|
||
msgid ""
|
||
"User account self-deletion can be enabled in the configuration with "
|
||
"`SELF_DELETION`. :issue:`35`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:814 75d6d908a827424284ea63478783cbf9
|
||
msgid "Admins can impersonate users. :issue:`39`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:815 b4eee6e748f94ba9b6e62e2e7fd4d86b
|
||
msgid "Forgotten page UX improvement. :pr:`43`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:816 44489482b8d54ae78c70959758d6f825
|
||
msgid "Admins can remove clients. :pr:`45`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:817 be6e5371ee2a48efa0d9d276e9caa9a0
|
||
msgid ""
|
||
"Option `HIDE_INVALID_LOGIN` that can be unactivated to let the user know if "
|
||
"the login he attempt to sign in with exists or not. :pr:`48`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:819 b1df16b2411a440d8d2a0745c972f368
|
||
msgid "Password initialization mail. :pr:`51`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:824 ba317999584d46d7b5bfda36157bc111
|
||
msgid "Form translations. :issue:`19` :issue:`23`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:825 e0d773fd3f814a438321528df1c4d67d
|
||
msgid "Avoid to use Google Fonts. :issue:`21`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:830 d7c5d0509cfe422ab95beb9c1929e413
|
||
msgid "'My tokens' page. :issue:`22`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:833 35ab727ebe564ff2a2aa3e28f9392f5b
|
||
msgid "[0.0.1] - 2020-10-21"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:838 487e834d3b154f69991d042f97ce3734
|
||
msgid "Initial release."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:2 77d0a023f5f34e7c804011fd50b75bc3
|
||
msgid "Contributions"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:4 9955ba6bbfb54c74930043f9d86335dc
|
||
msgid "Contributions are welcome!"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:6 dd58980e1983404d8bc93b9e0866785d
|
||
msgid ""
|
||
"The repository is hosted at `gitlab.com/yaal/canaille <https://gitlab.com/"
|
||
"yaal/canaille>`_."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:9 880fd4b263fa4f5aa77f826cf6d7a13e
|
||
msgid "Discuss"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:11 0e5a0bf82cd4444ebc3ff1dd43a4362c
|
||
msgid ""
|
||
"If you want to implement a feature or a bugfix, please start by discussing "
|
||
"it with us on the `bugtracker <https://gitlab.com/yaal/canaille/-/issues>`_ "
|
||
"or the `matrix room <https://matrix.to/#/#canaille-discuss:yaal.coop>`_."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:16 032421a7ce0548e38943bb37b9e46f90
|
||
msgid "Development environment"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:18 464b7af189da4cf2ba346183c47e6264
|
||
msgid "You can either run the demo locally or with Docker."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:20 b918844970c545a3826d0b39a79cb08c
|
||
msgid ""
|
||
"The only tool required for local development is `uv`. Make sure to have uv "
|
||
"`installed on your computer <https://docs.astral.sh/uv/getting-started/"
|
||
"installation/>`_ to be able to hack Canaille."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:24 56f217cf35444c72b1bc1a1cb3ee9e53
|
||
msgid "Initialize your development environment with:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:26 9cf0a292c2bb408fa660e14ab61f0e43
|
||
msgid ""
|
||
"``uv sync --extra front --extra oidc`` to have a minimal working development "
|
||
"environment. This will allow you to run the tests with ``uv pytest --backend "
|
||
"memory``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:27 8d29fc6ad3bd43c5b232963f5137c91a
|
||
msgid ""
|
||
"``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal "
|
||
"working development environment with SQLite backend support. This will allow "
|
||
"you to run the tests with ``uv pytest --backend sql``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:28 928d535d56314259b20055eea3a4ceb4
|
||
msgid ""
|
||
"``uv sync --extra front --extra oidc --extra ldap`` to have a minimal "
|
||
"working development environment with LDAP backend support. This will allow "
|
||
"you to run the tests with ``uv pytest --backend ldap``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:29 56b8780399064aec89d3099841d1b017
|
||
msgid ""
|
||
"``uv sync --all-extras`` if you want to have everything at your fingertips. "
|
||
"Note that it may compile some Python dependencies that would expect things "
|
||
"to be installed on your system; Some dependencies of Canaille might need to "
|
||
"be compiled, so you probably want to check that `GCC` and `cargo` are "
|
||
"available on your computer."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:32 1a514a3605f243979b2d04e1a329368a
|
||
msgid "After having launched the demo you have access to several services:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:34 bbde54dc79ba4241bd97323b5152b50b
|
||
msgid "A canaille server at `localhost:5000 <http://localhost:5000>`_"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:35 d028b9cbae714b2d945ba4d70a75fb99
|
||
msgid "A dummy client at `localhost:5001 <http://localhost:5001>`_"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:36 dbd0340fc974432798237b9b3efe01ea
|
||
msgid "Another dummy client at `localhost:5002 <http://localhost:5002>`_"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:38 9ff28ddd679b42f4a5bf288242e8c827
|
||
msgid "The canaille server has some default users:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:40 324e9f4f1d744fa49a0c3e7fe60cf46b
|
||
msgid "A regular user which login and password are **user**;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:41 30a3f2679a4b456791471ac6d4c15e2b
|
||
msgid "A moderator user which login and password are **moderator**;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:42 d5e4f771a0854678af55e11ae4c8fc3d
|
||
msgid "An admin user which admin and password are **admin**;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:43 325a060f0844402d80a7267a46291010
|
||
msgid ""
|
||
"A new user which login is **james**. This user has no password yet, and his "
|
||
"first attempt to log-in would result in sending a password initialization "
|
||
"email (if a smtp server is configured)."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:106 ../../CONTRIBUTING.rst:48
|
||
#: c01f125a22914f369ef28ef090a728b1 01a043d4a4364011b8a22a53549b20da
|
||
msgid "Backends"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:50 12c4afcb316c448797ed9784ef9fbaa1
|
||
msgid "Canaille comes with several backends:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:52 853d2b906b80415db33c707e29640f4c
|
||
msgid "a lightweight test purpose `memory` backend"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:53 b280dce615cb48ec8456abf65fec4a9e
|
||
msgid "a `sql` backend, based on sqlalchemy"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:54 ad6d07459c274a9e8282e290875d5bfb
|
||
msgid "a production-ready `LDAP` backend"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:57 7db1494e281b4b89949e18e1ece1cb6c
|
||
msgid "Docker environment"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:59 c8e61bddd24e4af0ab8ee2bd2709652d
|
||
msgid ""
|
||
"If you want to develop with docker, your browser needs to be able to reach "
|
||
"the `canaille` container. The docker-compose file exposes the right ports, "
|
||
"but front requests are from outside the docker network: the `canaille` url "
|
||
"that makes sense for docker, points nowhere from your browser. As exposed "
|
||
"ports are on `localhost`, you need to tell your computer that `canaille` url "
|
||
"means `localhost`."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:64 0e3e6469d25f43998fce20bcb1291b86
|
||
msgid "To do that, you can add the following line to your `/etc/hosts`:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:70 c0dce613d6384dd18a1d6abce742bf55
|
||
msgid "To launch containers, use:"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 ../tutorial/databases.rst:16
|
||
#: ../../CONTRIBUTING.rst:73 ../../CONTRIBUTING.rst:108
|
||
#: 32e05154931e4a6fadcba3b0720e0655 f1b0c988daa54dd4a0c5b30a062cf012
|
||
#: 94f958ac7cab437580604c64cdfa27be 528aa40e3cd04297b5ebf44fc955e9a9
|
||
msgid "SQL"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:74 ../../CONTRIBUTING.rst:109
|
||
#: c66d8a018f064cb3ba36abf12473b5f4 15c287c63f7f441f991033e23cbb9f95
|
||
msgid ""
|
||
"With the SQL backend, the demo instance will load and save data in a local "
|
||
"sqlite database."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:76 ../../CONTRIBUTING.rst:111
|
||
#: 6ddf226447fa4bb89cbf73cc8376c371 c72bd69b5ad94f5992bfe2d30f5b0e8d
|
||
msgid "Run the demo instance with the SQL backend"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:8 ../../CONTRIBUTING.rst:83
|
||
#: ../../CONTRIBUTING.rst:117 e5f82f8945b747ac81b31a20cc241e5d
|
||
#: 9a11f967d4c74ad8b9dff673e77d2315 84a192a56d404fb1baf97b065f6ceaa8
|
||
msgid "Memory"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:84 ../../CONTRIBUTING.rst:118
|
||
#: 9c56b31ca9724e62a5aee62e28196764 22784d30d5a748d2b73ebe7c423c64bc
|
||
msgid "With the memory backend, all data is lost when Canaille stops."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:86 ../../CONTRIBUTING.rst:120
|
||
#: da0af4f3bc5147ae8130399630381126 c1436f14bd2049479ac16384a47f2d38
|
||
msgid "Run the demo instance with the memory backend"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 ../tutorial/databases.rst:32
|
||
#: ../../CONTRIBUTING.rst:93 ../../CONTRIBUTING.rst:126
|
||
#: 6f4008249f544ff4afa4e2a7ccebfab2 ce4afa36ab774346b11322758b51325e
|
||
#: f9a9bf9c1c6d49b99edee201000ea0a0 2e130a461dc64b989f22d4f932976a65
|
||
msgid "LDAP"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:94 ../../CONTRIBUTING.rst:127
|
||
#: 4f3a2e440337421f95f937952e7dc9be db5ad48ecaa94207ab2b7d84bbebf569
|
||
msgid "With the LDAP backend, all data is lost when Canaille stops."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:96 ../../CONTRIBUTING.rst:129
|
||
#: 50095289006e499588719acc50eb5a56 80a55900cfc34f4e8b34b5e653a7fdfb
|
||
msgid "Run the demo instance with the LDAP backend"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:105 9e2c9acef9184e34b00d62c97980467d
|
||
msgid "Local environment"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:135 5fffaf4bff884b5a839078ad5a889fc9
|
||
msgid ""
|
||
"If you want to run the demo locally with the LDAP backend, you need to have "
|
||
"`OpenLDAP <https://www.openldap.org/>`_ installed on your system. It is "
|
||
"generally shipped under the ``slapd`` or ``openldap`` package name."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:140 aa9aab912ff04dd68c3b59bf1e36575a
|
||
msgid ""
|
||
"On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be "
|
||
"restricted by apparmor, and thus makes the tests and the demo fail. This can "
|
||
"be mitigated by removing apparmor restrictions on `slapd`."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:150 3d21757ba34c4721af043c150330c2e4
|
||
msgid "Populate the database"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:152 a412d39e98cf44f6b911566e1ebcdbde
|
||
msgid ""
|
||
"The demo database comes populated with some random users and groups. If you "
|
||
"need more, you can generate users and groups with the ``populate`` command:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:163 cdf90f875bcc44d5b41197a7cdbb275c
|
||
msgid ""
|
||
"Adapt to use either the `ldap` or the `sql` configuration file. Note that "
|
||
"this will not work with the memory backend."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:166 2db32f774df8429fa4c9e83d00616a96
|
||
msgid "Unit tests"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:168 5d6a9b57b35d49c48e2b615f8128ebcc
|
||
msgid ""
|
||
"To run the tests, you just can run `uv run pytest` and/or `uv run tox` to "
|
||
"test all the supported python environments. Everything must be green before "
|
||
"patches get merged."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:171 e1e6e475ff78404f930bb453f1f26e3b
|
||
msgid ""
|
||
"To test a specific backend you can pass ``--backend memory``, ``--backend "
|
||
"sql`` or ``--backend ldap`` to pytest and tox."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:173 2cb85029b4274de388878da3d3285369
|
||
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:178 4408d499056c480f86f450a781d2ca0d
|
||
msgid "Code style"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:180 93e483f2a66a4d8f82feb8ca9a739818
|
||
msgid ""
|
||
"We use `ruff <https://docs.astral.sh/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 <https://pre-commit.com/>`_ configuration "
|
||
"with ``uv run pre-commit install``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:186 0dca6207e6734ab487cb3fe72c3e90e8
|
||
msgid "Front"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:188 930e01d770324dc68f73095cd5456a8e
|
||
msgid ""
|
||
"The interface is built upon the `Fomantic UI <https://fomantic-ui.com/>`_ "
|
||
"CSS framework. The dynamical parts of the interface use `htmx <https://htmx."
|
||
"org/>`_."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:191 fc0da8a2736e461dab5a7d242c1cfa9a
|
||
msgid ""
|
||
"Using Javascript in the interface is tolerated, but the whole website MUST "
|
||
"be accessible for browsers without Javascript support, and without any "
|
||
"feature loss."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:193 a13b055a65244362a025440451de998d
|
||
msgid ""
|
||
"Because of Fomantic UI we have a dependency to jQuery, however new "
|
||
"contributions should not depend on jQuery at all. See the `related issue "
|
||
"<https://gitlab.com/yaal/canaille/-/issues/130>`_."
|
||
msgstr ""
|
||
|
||
#: ../index.rst:71 ../../CONTRIBUTING.rst:198 e3ff6afa466e4e61aa4f677cd58d3ed2
|
||
#: a08d8d5331494e7d93508eaf25f41a07
|
||
msgid "Documentation"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:200 2e1fdcae75de46a6b50db7e4155758af
|
||
msgid "The documentation is generated when the tests run:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:206 94405109592b47c09c8726c305fa5edc
|
||
msgid ""
|
||
"You can also run sphinx by hand, that should be faster since it avoids the "
|
||
"tox environment initialization:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:212 fe4610d142474897ae4f97d321448fac
|
||
msgid "The generated documentation is located at ``build/sphinx/html/en``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:215 bf09dd8ed31742bca2fa80175ae85bb3
|
||
msgid "Code translation"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:1 35fff9d115334ec6aa6a99ec5da8a27f
|
||
msgid ""
|
||
"Translations are done with `Weblate <https://hosted.weblate.org/projects/"
|
||
"canaille/canaille>`__."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:3 b72ee2174a9b42c493780415e3d3fcfd
|
||
msgid ""
|
||
"The following commands are there as documentation, only the message "
|
||
"extraction is needed for contributors. All the other steps are automatically "
|
||
"done with Weblate."
|
||
msgstr ""
|
||
|
||
#: readme.rst:6 ../../canaille/translations/README.rst:8
|
||
#: ea5bd05b09984bcaa643efa7a1a7618c 33490a8ff4a3465fb8648393ff65eb75
|
||
msgid "Message extraction"
|
||
msgstr ""
|
||
|
||
#: readme.rst:8 ../../canaille/translations/README.rst:10
|
||
#: 210e9ff98db74777830a5a1f4746df44 16b22e2bc3cf495bbef529f5732887e3
|
||
msgid ""
|
||
"After you have edited translatable strings, you should extract the messages "
|
||
"with:"
|
||
msgstr ""
|
||
|
||
#: readme.rst:15 ../../canaille/translations/README.rst:17
|
||
#: 54ecd51acf494402964ae281c6cd639b 02fa7225075346f89ad702cba8aabdeb
|
||
msgid "Language addition"
|
||
msgstr ""
|
||
|
||
#: readme.rst:17 ../../canaille/translations/README.rst:19
|
||
#: 5429b47768e2472ea597ed48140a5621 015d6a437f7e4d099c8cad60986c0b68
|
||
msgid ""
|
||
"You can add a new language manually with the following command, however this "
|
||
"should not be needed as Weblate takes car of this:"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:26 bdfbb4ef60c54b26abf457ba930b7fcf
|
||
msgid "Catalog update"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:28 94b8fc10d3aa4e05b54d619c4b1aaa25
|
||
msgid ""
|
||
"You can update the catalogs with the following command, however this should "
|
||
"not be needed as Weblate automatically update language catalogs when it "
|
||
"detects new strings or when someone translate some existing strings. Weblate "
|
||
"pushes happen every 24h."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:36 f232cbfdd201463ab74fe71353c8e23b
|
||
msgid "Catalog compilation"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/translations/README.rst:38 3c756dd105564866a8d74e994e65f2b6
|
||
msgid ""
|
||
"You can compile the catalogs with the following command, however this should "
|
||
"not be needed as catalogs are automatically compiled before running the unit "
|
||
"tests, before launching the demo and before compiling the Canaille python "
|
||
"package:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:221 4ff341d941384c029ed9c0b49d1062f9
|
||
msgid "Documentation translation"
|
||
msgstr ""
|
||
|
||
#: readme.rst:1 35fff9d115334ec6aa6a99ec5da8a27f
|
||
#: 7abe83f2eeb54b3f9f3d1a8542696765
|
||
msgid ""
|
||
"Translations are done with `Weblate <https://hosted.weblate.org/projects/"
|
||
"canaille/documentation>`__."
|
||
msgstr ""
|
||
|
||
#: readme.rst:3 de92a131ecf44614963dd89770f593ae
|
||
#: 0ca00925251d48668c7673ddece41d66
|
||
msgid ""
|
||
"The following commands are there as documentation, only the message "
|
||
"extraction and the language addition is needed for contributors."
|
||
msgstr ""
|
||
|
||
#: readme.rst:24 3d142fe9f633400ea029e949f1e869ee
|
||
#: 74cc2740b1584972aa3c0e672dff5f3e
|
||
msgid "Build the documentation in another language"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:226 4b1dc3dae99f4c6fbbeec3e54be3e922
|
||
msgid "Publish a new release"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:228 975b37a07edc4a42bbef14c2ca80a34f
|
||
msgid ""
|
||
"Check that dependencies are up to date with ``uv sync --all-extras --"
|
||
"upgrade`` and update dependencies accordingly in separated commits;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:229 e9bd8386c6c64ef99aac12ee831f39d1
|
||
msgid ""
|
||
"Check that tests are still green for every supported python version, and "
|
||
"that coverage is still at 100%, by running ``uv run tox``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:230 3e7d5493a8e44c1a9067010115678723
|
||
msgid ""
|
||
"Check that the demo environments are still working, both the local and the "
|
||
"Docker one;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:231 fe7867ea9416424e81c518f77853958a
|
||
msgid ""
|
||
"Check that the :ref:`development/changelog:Release notes` section is "
|
||
"correctly filled up;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:232 7d89adc1c3e6478ab9e8faa02f97bf03
|
||
msgid "Increase the version number in ``pyproject.toml``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:233 a376131776cd4e469611fa3ad6749be9
|
||
msgid "Commit with ``git commit``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:234 655fd489e5324dc5b6172d438a6b8e3e
|
||
msgid "Build with ``uv build``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:235 79fc61b7c13647a285a918a0c126ea53
|
||
msgid ""
|
||
"Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/"
|
||
"legacy/``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:236 93540129ce0c440eba4da63ed3ddb769
|
||
msgid ""
|
||
"Install the test package somewhere with ``pip install --extra-index-url "
|
||
"https://test.pypi.org/simple --upgrade canaille``. Check that everything "
|
||
"looks fine;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:237 8a73b31d1fe14fdda15e6c2dea0cafc9
|
||
msgid "Publish on production PyPI ``uv publish``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:238 93131bb37ccc4207825449d393f92201
|
||
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:239 a98a5168d5f949ec9e96f16d8ff8b6f5
|
||
msgid ""
|
||
"Push the release commit and the new tag on the repository with ``git push --"
|
||
"tags``."
|
||
msgstr ""
|
||
|
||
#: ../development/index.rst:2 ../tutorial/theming.rst:41
|
||
#: c0f14bad2988468fa0700bbd47fe1de0 294492704f9349cba94a11db140b19ab
|
||
msgid "Development"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:2 156d2082306649a89c7c6ff9b0879911
|
||
msgid "Specifications"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:4 2c830d15b604470ca1912e9a07b2deb6
|
||
msgid ""
|
||
"This page details which specifications are implemented in Canaille, and "
|
||
"compares Canaille with other well-known identity providers."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:7 bfa87dc7f42445fb96172a2ce7643950
|
||
msgid "State of the specs in Canaille"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:10 b57576e6aa1e46c0ab9b0d74e40f7a1c
|
||
msgid "OAuth2"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:12 44156ac1d21c44f89d2090ae27ad397e
|
||
msgid ""
|
||
"✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:13 3dd5d1bc312e4808b9dfb7e906f9a1b3
|
||
msgid ""
|
||
"✅ `RFC6750: OAuth 2.0 Bearer Tokens <https://tools.ietf.org/html/rfc6750>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:14 3f7c67f6ca7049a0a99455d27e7b9278
|
||
msgid ""
|
||
"✅ `RFC7009: OAuth 2.0 Token Revocation <https://tools.ietf.org/html/"
|
||
"rfc7009>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:15 b11098fcf9e64dfca026aa25e97624cc
|
||
msgid ""
|
||
"❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and "
|
||
"Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:16 0213796d176a4938a10c902cfb737a18
|
||
msgid ""
|
||
"✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol <https://tools."
|
||
"ietf.org/html/rfc7591>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:17 afdc8def073c495e8bb24a1ec6a0d62a
|
||
msgid ""
|
||
"✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol "
|
||
"<https://tools.ietf.org/html/rfc7592>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:18 f592e7f0f2074289b67beb893604277d
|
||
msgid ""
|
||
"✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients <https://"
|
||
"tools.ietf.org/html/rfc7636>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:19 bc914d1d327d4ce6a638c5245c4cfcc3
|
||
msgid ""
|
||
"✅ `RFC7662: OAuth 2.0 Token Introspection <https://tools.ietf.org/html/"
|
||
"rfc7662>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:20 08bbaa19162d456899ba99be7b0f9e3d
|
||
msgid ""
|
||
"✅ `RFC8414: OAuth 2.0 Authorization Server Metadata <https://tools.ietf.org/"
|
||
"html/rfc8414>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:21 abbbc93f57ba4660bafa5396616419d8
|
||
msgid ""
|
||
"❌ `RFC8428: OAuth 2.0 Device Authorization Grant <https://tools.ietf.org/"
|
||
"html/rfc8428>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:22 a9adf95822164ad9a91366b631a095ab
|
||
msgid ""
|
||
"❌ `RFC8693: OAuth 2.0 Token Exchange <https://tools.ietf.org/html/rfc8693>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:23 fac77fd04d2c457cbdda2f46d21a549d
|
||
msgid ""
|
||
"❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-"
|
||
"Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:24 772cbe80f8cd44faa3230ee4e690e5f3
|
||
msgid ""
|
||
"❌ `RFC8707: Resource Indicators for OAuth 2.0 <https://tools.ietf.org/html/"
|
||
"rfc8707>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:25 8b06eb72e70742fc821332a4676ba48e
|
||
msgid ""
|
||
"❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens "
|
||
"<https://tools.ietf.org/html/rfc9068>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:26 088615a4afdc48a5b6449df856cb1eb3
|
||
msgid ""
|
||
"❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) <https://"
|
||
"tools.ietf.org/html/rfc9101>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:27 4bd307887c6a4dcebb9d5ff9b9c3176a
|
||
msgid ""
|
||
"❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests <https://tools.ietf.org/"
|
||
"html/rfc9126>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:28 bf777af155ec47bb85265068ff053b85
|
||
msgid ""
|
||
"❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification <https://"
|
||
"tools.ietf.org/html/rfc9207>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:29 06b84e457b3f423099a45450e8be7b96
|
||
msgid ""
|
||
"❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-editor."
|
||
"org/rfc/rfc9396.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:30 17a488e183c64a7696ff1f8b3f02e3d8
|
||
msgid ""
|
||
"❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2-"
|
||
"multiple-response-types-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:31 28df30b698994c9ebb429fbe577701ac
|
||
msgid ""
|
||
"❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2-form-"
|
||
"post-response-mode-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:34 ../features.rst:230
|
||
#: 273611a66c514122bd1b8986c81f8464 511272a32c844e4cb9ca0d2c2b0aeb42
|
||
msgid "OpenID Connect"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:36 1b811c589c884281a965b470a69c935c
|
||
msgid ""
|
||
"✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-core-1_0."
|
||
"html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:37 8eb4c67d2de84a09ba6681ab0ad1dcf0
|
||
msgid ""
|
||
"✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-"
|
||
"discovery-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:38 3dd0ab1827034c7f8bb58dd56463cb2a
|
||
msgid ""
|
||
"✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs/"
|
||
"openid-connect-registration-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:39 5202769d4fed46999e56f7d6a0a03c5d
|
||
msgid ""
|
||
"✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-"
|
||
"connect-rpinitiated-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:40 768d7dd2182a418fb9344db3f5cba48a
|
||
msgid ""
|
||
"❌ `OpenID Connect Session Management <https://openid.net/specs/openid-"
|
||
"connect-session-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:41 bffbc632d9bf4c89b64bb51cdece0844
|
||
msgid ""
|
||
"❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-"
|
||
"connect-frontchannel-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:42 3001306e82cc4e9b80078a4631c791f9
|
||
msgid ""
|
||
"❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-"
|
||
"connect-backchannel-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:43 3e1058c4a8154eb58a563e171a03a51b
|
||
msgid ""
|
||
"❌ `OpenID Connect Back Channel Authentication Flow <https://openid.net/"
|
||
"specs/openid-client-initiated-backchannel-authentication-core-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:44 7d20317b02f54007a0d6e9e79b82b243
|
||
msgid ""
|
||
"❌ `OpenID Connect Core Error Code unmet_authentication_requirements "
|
||
"<https://openid.net/specs/openid-connect-unmet-authentication-"
|
||
"requirements-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:45 cc695337a4a4431c9a62bdc2471f489d
|
||
msgid ""
|
||
"✅ `Initiating User Registration via OpenID Connect 1.0 <https://openid.net/"
|
||
"specs/openid-connect-prompt-create-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:46 6cfd3e82e2bb4f80a58d8864be2ef301
|
||
msgid ""
|
||
"❌ `OpenID Connect Profile for SCIM Services <https://openid.net/specs/"
|
||
"openid-connect-scim-profile-1_0.html>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:49 ../development/specifications.rst:108
|
||
#: d9278a9cbe784818b57f9fd9d76dda68
|
||
msgid "SCIM"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:51 6599ee73d8ab49579b0e09836d421750
|
||
msgid "Canaille provides a basic SCIM server implementation."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:53 c91f11a0512e4782981c5bb98a8038d7
|
||
msgid ""
|
||
"🟠 `RFC7642: System for Cross-domain Identity Management: Definitions, "
|
||
"Overview, Concepts, and Requirements <https://www.rfc-editor.org/rfc/"
|
||
"rfc7642>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:54 2f4ea31b4c80425a8e3075b8597ae8e5
|
||
msgid ""
|
||
"🟠 `RFC7643: System for Cross-domain Identity Management: Core Schema "
|
||
"<https://www.rfc-editor.org/rfc/rfc7642>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:55 6ffdb285557144afb301b05c33fecddf
|
||
msgid ""
|
||
"🟠 `RFC7644: System for Cross-domain Identity Management: Protocol <https://"
|
||
"www.rfc-editor.org/rfc/rfc7642>`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:57 0b5af403924542a99c63f28eaab81ca5
|
||
msgid ""
|
||
"Client-side implementation (i.e. broadcasting changes on users and groups "
|
||
"among clients) and advanced features will be implemented in the future."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:60 f4700ad912314bfc8d66be8471a4c772
|
||
msgid "What's implemented"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:62 ../development/specifications.rst:83
|
||
#: a221acec85ca4725b2951cb9b51e20d5 a3820ca28394481b85c5906175c9211b
|
||
msgid "Endpoints:"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:64 fda698ab71304acb81f54cb02fbeea05
|
||
msgid "/Users (GET, POST)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:65 888be4da4f194f319087de8e766157f2
|
||
msgid "/Users/<user_id> (GET, PUT, DELETE)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:66 172c39c33a9d4449b9fa08649f7e1db5
|
||
msgid "/Groups (GET, POST)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:67 351bfa9248414180b3e2e12f3e39a7cc
|
||
msgid "/Groups/<user_id> (GET, PUT, DELETE)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:68 0b3147e232df4562abe864dcc3c62600
|
||
msgid "/ServiceProviderConfig (GET)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:69 d12ef72fdb2a4faf91c5f3a6606e09d3
|
||
msgid "/Schemas (GET)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:70 3a2387dace19496d9539e3adb6b3a634
|
||
msgid "/Schemas/<schema_id> (GET)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:71 7bd1a03ce13a4a519529ffa633c39dad
|
||
msgid "/ResourceTypes (GET)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:72 7bc66e9808184fa28e9af54c0a2ca411
|
||
msgid "/ResourceTypes/<resource_type_id> (GET)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:74 65ccf2057cb044258e738dd9dcfb0582
|
||
msgid "Features:"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:76 ef940c8ad25f4e97a8d4fa1ee9bfd786
|
||
msgid ":rfc:`pagination <7644#section-3.4.2.4>`"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:81 f4700ad912314bfc8d66be8471a4c772
|
||
msgid "What is not implemented yet"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:85 76085a65129e4d1387aa1ccb5b5b2bba
|
||
msgid "/Users (PATCH)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:86 da3a2dd71b204dd8941958051a0ca269
|
||
msgid "/Groups (PATCH)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:87 1936b0ba8c5743b397c3dcc914f453fc
|
||
msgid ":rfc:`/Me <7644#section-3.11>` (GET, POST, PUT, PATCH, DELETE)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:88 d6095a95a820448c8e93c6205907d2c0
|
||
msgid ":rfc:`/Bulk <7644#section-3.11>` (POST)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:89 8ae6230d4d04470587eabc0e85bfd237
|
||
msgid ":rfc:`/.search <7644#section-3.4.3>` (POST)"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:91 ../features.rst:9
|
||
#: 8b8d299ade65429ab2a1739bbeca65b0 61a68141a485477a9fb49921e7b8aa3a
|
||
msgid "Features"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:93 f85742cf16c0404a99264064c75cebbd
|
||
msgid ":rfc:`filtering <7644#section-3.4.2.2>`"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:94 e20e4adefa5947319005523f6b6a9377
|
||
msgid ":rfc:`sorting <7644#section-3.4.2.3>`"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:95 02742549d8f54bc18893ecb9c419809c
|
||
msgid ":rfc:`attributes selection <7644#section-3.4.2.5>`"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:96 9e10ed15bc1b477ea12326a749bf64b8
|
||
msgid ":rfc:`ETags <7644#section-3.14>`"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:99 ac600b38603f4fb999aebf5ffbe33cc7
|
||
msgid "Comparison with other providers"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:101 2ef9567e17694a669ed5071c882661ad
|
||
msgid "Here is a feature comparison with other OpenID Connect server software."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:103 d6d241980d3e46e192dd54a5082b0197
|
||
msgid ""
|
||
"Canaille voluntarily only implements the OpenID Connect protocol to keep its "
|
||
"codebase simple."
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:106 0b9a4fba353c483692ed6fb04227691e
|
||
msgid "Software"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:106 62c2fe7c97644cfa8e7d297a337bfe36
|
||
msgid "Project"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:106 f4700ad912314bfc8d66be8471a4c772
|
||
msgid "Protocols implementations"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 ea237be2a99a4940be67516a1b95d97d
|
||
msgid "FLOSS"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 55d5dd9174f94ca9850b999864598259
|
||
msgid "Language"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 27002c409c6440d29ae89e91559a6994
|
||
msgid "LOC"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 ../references/templates.rst:48
|
||
#: 3ba35fd6c6d44150b4b049cf603e4a85 1e5e7225bddd44a4accf8159f4a489c4
|
||
msgid "OIDC"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 dc762bcd6eca4fc79dae1ca65c411351
|
||
msgid "SAML"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:108 6ae5803282c4439a9e7b1c1570e4c505
|
||
msgid "CAS"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 f4c4ac6fdea74558a74bc9a3cefbb5c7
|
||
msgid "Canaille"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 ../development/specifications.rst:112
|
||
#: ../development/specifications.rst:114 ../development/specifications.rst:116
|
||
#: ../development/specifications.rst:118 ../development/specifications.rst:120
|
||
#: ../development/specifications.rst:122 ../development/specifications.rst:124
|
||
#: ../development/specifications.rst:126 ../development/specifications.rst:128
|
||
#: ../development/specifications.rst:130 ../development/specifications.rst:132
|
||
#: 33e7166b401144bcadff959d61e03c4c c2035a448fa9405a92d51c9c90277394
|
||
#: 7bba6b8427854a41b99c15b883290007 588ab8a50fca4528b9a471dbddfb7d4a
|
||
#: ba65de35554741a48a7eb4a72fc66433 4dd20636352243038f0bdad8d15e8449
|
||
#: 5b23071246ab41f1abd1bfa5596a4b46 c1aa2d442f2047f9a1194e38c2b1ddd1
|
||
#: ce03d94ab7954c02968bfb44eb0f72fd 9fb4e3e247d846419051f2852ffa3f31
|
||
#: f5e5911bcb704af19c073370f437c1b4 e063ffcc58474df4a66b2814eb4c0f61
|
||
#: cff48ca4a13545309d9e1b58c3dede80 e55ccef99f4a45be8fb35a1ed8bb1ac4
|
||
#: 4b09487097334807804aaba873d4dc7b c9b45500d9d145a8862c978d95329330
|
||
#: c34b7940cbbd4218af2cb94e8eb24fc7 8a394726b7b941dfbbd8af3e546782c1
|
||
#: f5320617a03e47dea905ac5a70208c70
|
||
msgid "✅"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 ../development/specifications.rst:116
|
||
#: 86f975b8aaab4af9bfc62ef2df91ba28
|
||
msgid "Python"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 3a757539fafc4e3aa92dbdec5227a2df
|
||
msgid "10k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 ../development/specifications.rst:112
|
||
#: ../development/specifications.rst:114 ../development/specifications.rst:116
|
||
#: ../development/specifications.rst:118 ../development/specifications.rst:120
|
||
#: ../development/specifications.rst:122 ../development/specifications.rst:126
|
||
#: ../development/specifications.rst:130 ../development/specifications.rst:132
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d 94a1a61f502a42569788cfe93ad6bcf7
|
||
msgid "❌"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110 c3172c68b79b46e1ac155f9af8f8729f
|
||
msgid "🟠"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:112 41d7747dc9384c6b908b8394168b5b5a
|
||
msgid "`Auth0`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:112 ../development/specifications.rst:122
|
||
#: ../development/specifications.rst:124 ../development/specifications.rst:132
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
msgid "❔"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114 47ff7b1213464f85b246c4282f3af933
|
||
msgid "`Authelia`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114 ../development/specifications.rst:118
|
||
#: ../development/specifications.rst:126 5db56fd3e64948f5a108d2f74f7070b4
|
||
msgid "Go"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114 ../development/specifications.rst:126
|
||
#: 741e97755b8c4478b7e19ba006898401
|
||
msgid "50k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:116 7fb71b70103e40eeb178e1281ea81de3
|
||
msgid "`Authentic2`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:116 cb26c38797d9416fafe5d1a1b5c5b03b
|
||
msgid "65k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:118 6f7fc7bbb2694f09a12393a74ffc8013
|
||
msgid "`Authentik`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:118 bb964534c0704925b6d856bd54af7c7f
|
||
msgid "55k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:120 4604cb0778044b63807b2be23ced893c
|
||
msgid "`CAS`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:120 ../development/specifications.rst:124
|
||
#: ../development/specifications.rst:128 aa3618e441ac413e83acdfe56631d15a
|
||
msgid "Java"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:120 c316893b4f00454a8c5745071e0888b1
|
||
msgid "360k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:122 c8a158afb8d841209c20b9ef42e563cb
|
||
msgid "`Connect2id`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:124 a264cd68201c442faf08474397c550aa
|
||
msgid "`Gluu`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:126 e54b53bfeafd4764b01095c1cd0077b7
|
||
msgid "`Hydra`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:128 87594578370246d494ef5e63196a3a92
|
||
msgid "`Keycloak`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:128 d6304d1f41714ad5af15edb6febbfbc5
|
||
msgid "600k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:130 2efe7957b848447dacfecb082a95c438
|
||
msgid "`LemonLDAP`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:130 cdd25b565e5d4de4b4202f82f4407843
|
||
msgid "Perl"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:130 51b2d4fcc1fc43d2a692826a2b2c62d1
|
||
msgid "130k"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:132 4c2a5d27487345f7bc3c1bbd0c897c47
|
||
msgid "`Okta`_"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:11 5dd070084abb440ebf87c36df501f197
|
||
msgid ""
|
||
"Here are the different features that Canaille provides. You can enable any "
|
||
"of those features with the :doc:`configuration <references/configuration>` "
|
||
"to fit any :doc:`use cases <usecases>` you may meet. Check our :ref:"
|
||
"`roadmap <features:Roadmap>` to see what is coming next."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:15 83eef1f1157b4d37b4627438618f31ab
|
||
msgid ""
|
||
"Users can interact with Canaille through its :ref:`web interface <features:"
|
||
"Web interface>` and administrators can also use its :ref:`command line "
|
||
"interface <feature_cli>`. Canaille can handle data stored in different :ref:"
|
||
"`database backends <feature_databases>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:19 73c7e363c37147fc825deea06ee26975
|
||
msgid "User and group management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:21 e19b2b99a8544219b61bbedc1229e77c
|
||
msgid ""
|
||
"Canaille web interface can be used either in :doc:`production environments "
|
||
"<tutorial/deployment>` or locally for development purposes."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:26 ../index.rst:27 759b0714ba194bc5a5d043350cb4cd14
|
||
#: dd79223676e0465293d1499d8929fa26
|
||
msgid "Profile management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:28 ../features.rst:238 53e5483c51ae4df28138ae990c16de07
|
||
#: 0a36f2261b84450b98131ff740f7ceb9
|
||
msgid "Profile"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:33 864adfa77693422cad803b08d9187a5e
|
||
msgid "Canaille provides an interface to manage user profiles."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:35 505ce537381249ec82445d38a4e093df
|
||
msgid ""
|
||
"The exact list of displayed fields, and whether they are :attr:`writable "
|
||
"<canaille.core.configuration.ACLSettings.WRITE>` or :attr:`read-only "
|
||
"<canaille.core.configuration.ACLSettings.READ>` depends on the user :class:"
|
||
"`Access Control List settings (ACL) <canaille.core.configuration."
|
||
"ACLSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:37 625c7cea8a034a7ba263a71ce0587a26
|
||
msgid ""
|
||
"Depending on their ACL :class:`permissions <canaille.core.configuration."
|
||
"Permission>`, users can either be allowed to edit their own profile, edit "
|
||
"any user profile, or do nothing at all."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:42 530dac22b587444cbd5de9ba2d7a3a90
|
||
msgid "Email confirmation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:44 2c3acd412bb944ab81ff2631784bff71
|
||
msgid ""
|
||
"If the :attr:`email confirmation feature <canaille.core.configuration."
|
||
"CoreSettings.EMAIL_CONFIRMATION>` 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 8d597149b59e45f896eff2baa716fc20
|
||
msgid ""
|
||
"Users with :attr:`user management permission <canaille.core.configuration."
|
||
"Permission.MANAGE_USERS>` can set user emails without confirmation though."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:51 4a6be5a6b71a4a5ea35d7c4a41630e35
|
||
msgid "Group management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:53 ../features.rst:140 4824338c1fbf4fdd8c2e01534219ee98
|
||
#: 3d8b9fc086e945d890bf9b3e01c82984
|
||
msgid "Group edition"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:58 afc7e192d41148e0a2ef8ec6f8944729
|
||
msgid ""
|
||
"In a similar fashion than :ref:`profile management "
|
||
"<feature_profile_management>` Canaille provides an interface to manage user "
|
||
"groups."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:60 b83c6d0af7fe45228496bb2c594cf88c
|
||
msgid ""
|
||
"The group management is quite simple at the moment and consists in a group "
|
||
"name and description, and the list of its members. Group membership can be "
|
||
"use as :attr:`ACL Filter <canaille.core.configuration.ACLSettings.FILTER>` "
|
||
"to define user permissions."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:63 ../features.rst:83 ../features.rst:149
|
||
#: ../tutorial/deployment.rst:13 ../tutorial/provisioning.rst:9
|
||
#: 6fdf0a969ccb49e1bf9bfc28f4df9169 4065a0b70a1444058df3bb16f0abc445
|
||
#: bc0be7a805e04b5f91b89db28d7dffae 7ab21494d11e4287acffeb771f8f5244
|
||
#: 9df6890219304d7dbb04c9b7817147f5
|
||
msgid "Todo"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:64 60eafd84b6934482b1ec0831e6aaa3b7
|
||
msgid ""
|
||
"At the moment adding an user to a group can only be achieved by the user "
|
||
"settings page, but we are :issue:`working to improve this <192>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:66 6440e19e527d4d5f8abc44d99c8a3dba
|
||
msgid ""
|
||
"Group management can be enable with a :attr:`dedicated user permission "
|
||
"<canaille.core.configuration.Permission.MANAGE_GROUPS>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:69 2382414ec97641a4925e741a26ae3148
|
||
msgid ""
|
||
"Due to limitations in the :ref:`LDAP backend <tutorial/databases:LDAP>`, "
|
||
"groups must have at least one member. Thus it is not possible to remove the "
|
||
"last user of a group without removing the group."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:75 ../index.rst:34 b136f97d836d4c8dbb63cd671ceebe4e
|
||
#: 76d8725ced9e421f98de5fb1e1ee01a2
|
||
msgid "User authentication"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:77 022b43e4ff7f4932aa151eaade78aeb6
|
||
msgid ""
|
||
"Unless their account is :ref:`locked <feature_account_locking>`, users can "
|
||
"authenticate with a login and a password."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:81 1a8cb7dc227a452b81768be3758a8fb4
|
||
msgid ""
|
||
"For security reasons, it won't be told to users if they try to sign in with "
|
||
"an unexisting logging, unless explicitly :attr:`set in the configuration "
|
||
"<canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:83 778349cb3c344689bd8cc06184005e10
|
||
msgid ""
|
||
":ref:`LDAP backend <tutorial/databases:LDAP>` users can define which :class:"
|
||
"`user field <canaille.core.models.User>` 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 <canaille."
|
||
"backends.ldap.configuration.LDAPSettings.USER_FILTER>`, 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 aa467ae3118543ed94401a8ca23776f1
|
||
msgid "User registration"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:90 c81ba8ba520c4d8bb6c8475fe023404b
|
||
msgid ""
|
||
"Users can create accounts on Canaille if the :attr:`registration feature "
|
||
"<canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION>` is enabled. "
|
||
"They will be able to fill a registration form with the fields detailed in "
|
||
"the default :class:`ACL settings <canaille.core.configuration.ACLSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:92 c1f2442a948d414e9b9983d79aa91ae4
|
||
msgid ""
|
||
"If :attr:`email confirmation <canaille.core.configuration.CoreSettings."
|
||
"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 3d200c871e19420db3ce1885f7414a3c
|
||
#: 7bf61d1ad01240f7b1ed2db4ab0fdf77
|
||
msgid "User invitation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:104 134f042cb892434e922c01d62222ed54
|
||
msgid ""
|
||
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
|
||
"configured, users with :attr:`user management permission <canaille.core."
|
||
"configuration.Permission.MANAGE_USERS>` can create an invitation link for "
|
||
"one user."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:106 e054dbb49f644364a6aaadcb2f5a0024
|
||
msgid ""
|
||
"The link goes to a registration form, even if regular :ref:`user "
|
||
"registration <feature_user_registration>` is disabled."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:108 536cbb5eff1444dda4ac45998d356fe6
|
||
msgid "It can be automatically sent by email to the new user."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:113 c24731829c1949aeb3f54f0167ed8b37
|
||
msgid "Account locking"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:115 48e7bf2282b5487f9437be3863edc5ed
|
||
msgid ""
|
||
"If Canaille is plugged to a :ref:`backend <feature_databases>` that supports "
|
||
"it, user accounts can be locked by users with :attr:`user management "
|
||
"permission <canaille.core.configuration.Permission.MANAGE_USERS>`. The lock "
|
||
"date can be set instantly or at a given date in the future."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:118 31e7e6b90652414ab1b450f98ddb7d53
|
||
msgid "At the moment a user account is locked:"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:120 6be8caf7464643e99cb2614ce0138045
|
||
msgid "their open sessions will be closed;"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:121 93da628150674abe85e3ff8f27e83c0a
|
||
msgid "they won't be able to sign in again;"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:122 e5196d576eb445d9aa83989d6f241c42
|
||
msgid "no new OIDC token will be issued;"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:124 c784a99a157b46028eb5c3543da73e38
|
||
msgid ""
|
||
"User accounts must be manually unlocked by an administrator for the users to "
|
||
"regain access to those actions."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:129 da2f0b388508475cbb3fd080de1ff44c
|
||
msgid "Account deletion"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:131 5bc09c4f89764a1a950c44dc255b98d2
|
||
msgid ""
|
||
"Users with the :attr:`account deletion permission <canaille.core."
|
||
"configuration.Permission.DELETE_ACCOUNT>` are allowed to delete their own "
|
||
"account."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:133 85f4ea778e8f45f7841ddf39f1bc8b41
|
||
msgid ""
|
||
"Users that also have the :attr:`user management permission <canaille.core."
|
||
"configuration.Permission.MANAGE_USERS>` are also allowed to delete other "
|
||
"users accounts."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:138 86a66e197de94dcbb90d559730b89318
|
||
msgid "Password recovery"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:145 6693db5e96354da69ed660a259c109ce
|
||
msgid ""
|
||
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
|
||
"configured and the :attr:`password recovery feature <canaille.core."
|
||
"configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY>` is enabled, then users "
|
||
"can ask for a password reset email if they cannot remember their password."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:147 2f356fab771549f9bdca5fa4f3ca2e5e
|
||
msgid ""
|
||
"The email will be sent to the email addresses filled in their profile, and "
|
||
"will contain a link that will allow them to choose a new password. ."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:151 a603b57c4fc54e67ba04056b0037ae8e
|
||
msgid "Check that password recovery is disabled on locked accounts."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:156 1bdb193d14a444a2a823f0dcef03e8ad
|
||
msgid "Password reset"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:158 077ee41f3059484dad80b08733aae520
|
||
msgid ""
|
||
"If a :class:`mail server <canaille.core.configuration.SMTPSettings>` is "
|
||
"configured, :attr:`user management permission <canaille.core.configuration."
|
||
"Permission.MANAGE_USERS>` 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 c4e7b07761674e608a0e2bfdd50a659a
|
||
msgid "Password initialization"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:166 5043df71775449a78e19ce0296f8d9ee
|
||
msgid ""
|
||
"User :attr:`passwords <canaille.core.models.User.password>` are optional. If "
|
||
"a :class:`mail server <canaille.core.configuration.SMTPSettings>` 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 412b386c0c794b5d8c71ea7b51278da8
|
||
msgid "Password compromission check"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:175 35e11da6bbdf4e2da05a3a66c24e1dbe
|
||
msgid ""
|
||
"If :attr:`password compromission check feature <canaille.core.configuration."
|
||
"CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK>` 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 "
|
||
"<canaille.core.configuration.CoreSettings.ADMIN_EMAIL>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:180 478b4f7b443f4f728085a2ea686b0248
|
||
msgid "Multi-factor authentication"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:182 2e2c9ae9e2e24bce942de98d12d7fb33
|
||
msgid ""
|
||
"If the :attr:`one-time password feature <canaille.core.configuration."
|
||
"CoreSettings.OTP_METHOD>` is set, then users will need to authenticate "
|
||
"themselves using a one-time password via an authenticator app. Two options "
|
||
"are supported : \"TOTP\" for time one-time password, and \"HOTP\" for HMAC-"
|
||
"based one-time password. In case of lost token, TOTP/HOTP authentication can "
|
||
"be reset by users with :attr:`user management permission <canaille.core."
|
||
"configuration.Permission.MANAGE_USERS>`. If a :class:`mail server <canaille."
|
||
"core.configuration.SMTPSettings>` is configured and the :attr:`email one-"
|
||
"time password feature <canaille.core.configuration.CoreSettings.EMAIL_OTP>` "
|
||
"is enabled, then users will need to authenticate themselves via a one-time "
|
||
"password sent to their primary email address. If a :class:`smpp server "
|
||
"<canaille.core.configuration.SMPPSettings>` is configured and the :attr:`sms "
|
||
"one-time password feature <canaille.core.configuration.CoreSettings."
|
||
"SMS_OTP>` is enabled, then users will need to authenticate themselves via a "
|
||
"one-time password sent to their primary phone number."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:191 39adf64b80444b27bb6f9f11747a6960
|
||
msgid "Intruder lockout"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:193 e884c68544f2480db394e53aeb54a811
|
||
msgid ""
|
||
"If the :attr:`intruder lockout feature <canaille.core.configuration."
|
||
"CoreSettings.ENABLE_INTRUDER_LOCKOUT>` is enabled, then users will have to "
|
||
"wait for an increasingly long time between each failed login attempt."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:196 cbba3fccd9f84230b6eb0774cfd7e109
|
||
msgid "Web interface"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:201 fab0081b9bd4460098de6df7d8c317b5
|
||
msgid "Internationalization"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:203 46cf7a3a3e9047439aa7fa6654b07921
|
||
msgid "Translation state"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:208 0a5afedc31de47a28d0bf7842a8558cd
|
||
msgid ""
|
||
"Canaile will display in your :attr:`preferred language <canaille.core.models."
|
||
"User.preferred_language>` if available, or your browser language if "
|
||
"available (and if it is not you can :ref:`help us with the translation "
|
||
"<development/contributing:Code translation>`). If you prefer, you can also :"
|
||
"attr:`force a language <canaille.core.configuration.CoreSettings.FAVICON>` "
|
||
"for every users."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:214 2caebf718cab47029a83bb91253e36e5
|
||
msgid "Lightweight"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:216 e3cbad3b2af0422287a92a4094559d8b
|
||
msgid ""
|
||
"The web interface is lightweight, so everything should load quickly. There "
|
||
"is a few Javascript here and there to smooth the experience, but no "
|
||
"Javascript at all is needed to use Canaille."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:220 a7db848b637a46b1874f04fb542009e2
|
||
msgid "Customizable"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:222 0c829a128889493fbc97247a60390954
|
||
msgid ""
|
||
"The default theme should be good enough for most usages. It has a dark "
|
||
"theme, display well on mobile, and let you choose a :attr:`logo <canaille."
|
||
"core.configuration.CoreSettings.LOGO>` and a :attr:`favicon <canaille.core."
|
||
"configuration.CoreSettings.FAVICON>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:225 3a69d40c024744af967a1408c054aca0
|
||
msgid ""
|
||
"If you need more you can also use a :attr:`custom theme <canaille.core."
|
||
"configuration.CoreSettings.THEME>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:232 003c4e8eee334a9d89486e2c0ae5d106
|
||
msgid ""
|
||
"Canaille implements a :ref:`subset<development/specifications:State of the "
|
||
"specs in Canaille>` 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:236 51e9a6e1ddb04b99a6a73135fc8728e7
|
||
msgid "Consent management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:244 a613e3d10f1243f3bc5d4e796b278c89
|
||
msgid ""
|
||
"Users can give their consent to application requesting access to their "
|
||
"personal information, and then revoke those consent at their will."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:248 115bec7ea8944f6ab98641d9bd2540ec
|
||
msgid "Application management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:250 526d36374a8747d6ad6280379bcf664c
|
||
msgid ""
|
||
"Users with the right :attr:`permission <canaille.core.configuration."
|
||
"Permission.MANAGE_OIDC>` can manager OIDC clients through the web interface."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:252 79f0217902dc4b2ca73128ff6c16e7b5
|
||
msgid ""
|
||
"In some cases, it might be useful to avoid the consent page for some trusted "
|
||
"applications, so clients can be pre-consented."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:255 d1f7f85df6404afe91d29e4dee44be1d
|
||
msgid "Discovery"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:257 8b306f1c76664574a0f3d85805a46d87
|
||
msgid ""
|
||
"Canaille implements the :doc:`Discovery specifications <development/"
|
||
"specifications>` so most of the applications plugged to Canaille can auto-"
|
||
"configure themselves."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:260 d5a2f0c4fa2f4363b5e87c4243376aaa
|
||
msgid "Dynamic Client Registration"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:262 800aec57df82487f80fc7da359dc5c34
|
||
msgid ""
|
||
"Canaille implements the :doc:`Dynamic Client Registration specifications "
|
||
"<development/specifications>`, so when the :attr:`feature is enabled "
|
||
"<canaille.oidc.configuration.OIDCSettings."
|
||
"DYNAMIC_CLIENT_REGISTRATION_OPEN>`, clients can register themselves on "
|
||
"Canaille without an administrator intervention."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:265 9cae9e0af58f499dac34354e9c12785d
|
||
msgid "System administration"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:270 ../references/commands.rst:2
|
||
#: 9b5fcf18f6214856ae377f83005f8309 e2a97a5dfb5844f9a74c78b1a28ed23f
|
||
msgid "Command Line Interface"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:272 98ef5f39d74944668dfff8b63d9d6199
|
||
msgid ""
|
||
"Canaille comes with a :abbr:`CLI (Command Line Interface)` to help "
|
||
"administrators in hosting and management."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:274 9a30112ff2eb47c69263e73aa3c4ee15
|
||
msgid ""
|
||
"There are tools to :ref:`check your configuration <cli_check>` or to :ref:"
|
||
"`install missing parts <cli_install>`. You can use the CLI to :ref:`create "
|
||
"<cli_create>`, :ref:`read <cli_get>`, :ref:`update <cli_set>` and :ref:"
|
||
"`delete <cli_delete>` models such as :class:`users <canaille.core.models."
|
||
"User>`, :class:`groups <canaille.core.models.Group>` or :class:`OIDC "
|
||
"clients <canaille.oidc.basemodels.Client>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:277 02d13c90aa8f41f5b1007cd67fcea510
|
||
msgid ""
|
||
"There are also tools to :ref:`fill your database <cli_populate>` with random "
|
||
"objects, for tests purpose for instance."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:282 ../tutorial/databases.rst:2
|
||
#: 0225297b7d884971a952f5ec904a15ac cf1fc0e0abb74b3ca66c1e92a5e773e9
|
||
msgid "Databases"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:284 1a7af5dc07fa4f6c9231664737ee46a7
|
||
msgid ""
|
||
"Canaille can handle data from the most :ref:`common SQL databases <tutorial/"
|
||
"databases:SQL>` such as PostgreSQL, MariaDB or SQLite, as well as :ref:"
|
||
"`OpenLDAP <tutorial/databases:LDAP>`. It also comes with a no-dependency :"
|
||
"ref:`in-memory database <tutorial/databases:Memory>` that can be used in "
|
||
"unit tests suites."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:290 a6a6a7334af54051aebed82d83027ea8
|
||
msgid "Logging"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:292 9bc7705bd378459abf2f813381aa58a6
|
||
msgid ""
|
||
"Canaille writes :attr:`logs <canaille.core.configuration.CoreSettings."
|
||
"LOGGING>` for every important event happening, to help administrators "
|
||
"understand what is going on and debug funky situations."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:294 2aeb5161276a4f048c40a7256c3d7f0e
|
||
msgid ""
|
||
"The following security events are logged with the log level \"security\" for "
|
||
"easy retrieval :"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:296 ed4be0b57afe4ce9976c45f03c249444
|
||
msgid "Authentication attempt"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:297 452456f9907e4bbd89439903c2fc9ebc
|
||
msgid "Password update"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:298 9ccb4ef2a139403c85223576eb87a182
|
||
msgid "Email update"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:299 bd0936deb7994f8fb59f2f0a47115edc
|
||
msgid "Forgotten password mail sent to user"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:300 bd0936deb7994f8fb59f2f0a47115edc
|
||
msgid "One-time password mail sent to user"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:301 478b4f7b443f4f728085a2ea686b0248
|
||
msgid "Multi-factor authentication reset"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:302 02079fe76d2041aaba48a6b2079630f1
|
||
msgid "Token emission"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:303 814519684d8c47a5b0b5ae6eaa9aa66e
|
||
msgid "Token refresh"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:304 4489f99b64dd40248f28453fb8b4b0df
|
||
msgid "Token revokation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:305 99abcc04f85649c1b184e22e67b36f18
|
||
msgid "New consent given for client application"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:306 c64802d623a74d678c4aca29f82c39d7
|
||
msgid "Consent revokation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:311 f9d92f5f76a745ee97ea36afc853c516
|
||
msgid "Development and testing tool"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:316 9c0500515a5847c2bec5b1bb743f42fc
|
||
msgid "Unit-testing tool"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:318 b1dc62a0c2024ff1bd6682408301766a
|
||
msgid ""
|
||
"Thanks to its lightweight :ref:`in-memory database <tutorial/databases:"
|
||
"Memory>` and its curated :ref:`dependency list <tutorial/install:Get the "
|
||
"code>`, 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:321 ff4f45059bc2485eb5fa0145f5f01f9a
|
||
msgid "Development server"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:323 a430530dc1ac42b680a9024e920dad7d
|
||
msgid ""
|
||
"It can also being launched in your development environment, if you find that "
|
||
"launching a Keycloak in a Docker container is too heavy for your little web "
|
||
"application."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:328 3594d882079a4c89b28f0d9b25b5a647
|
||
msgid "Continuous Integration tools"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:330 f7bb141a215c46df915ce63b47f13cdb
|
||
msgid ""
|
||
"It also fits well in continuous integration scenarios. Thanks to its :ref:"
|
||
"`CLI <feature_cli>`, you can prepare data in Canaille, let your application "
|
||
"interact with it, and then check the side effects."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:333 beb39ccb89e040118104ba0c0f41eb71
|
||
msgid "Roadmap"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:336 4fee3c311fe844bbb345bd5b562844ad
|
||
msgid "Bêta version"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:338 f699343ae7fe4f12a9d12f4692c22827
|
||
msgid ""
|
||
"To go out of the current Alpha version we want to achieve the following "
|
||
"tasks:"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:340 c8aec1fe7d574a789319e75cc64bd2e7
|
||
msgid ":issue:`Configuration validation using pydantic <138>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:343 706d590389f54c40ba1b219877946bb5
|
||
msgid "Stable version"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:345 54c0d4cc60054a5ebe7456575b1b70c3
|
||
msgid ""
|
||
"Before we push Canaille in stable version we want to achieve the following "
|
||
"tasks:"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:348 7807e2d92e264bc78fd5b6a3c63beb3a
|
||
msgid "Security"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:350 577ab46503ee45e89daa8c42938635e5
|
||
msgid ":issue:`Password hashing configuration <175>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:351 a337cb0aac704dbca90dd70f1d68456d
|
||
msgid ":issue:`Authentication logging policy <177>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:352 39adf64b80444b27bb6f9f11747a6960
|
||
msgid ":issue:`Intruder lockout <173>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:353 3eeac7b1dec04fe9b990864b8810db50
|
||
msgid ":issue:`Password expiry policy <176>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:354 4ad4707b7d02481ab507ded2d410eb70
|
||
msgid ":issue:`Multi-factor authentication: Email <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:355 478b4f7b443f4f728085a2ea686b0248
|
||
msgid ":issue:`Multi-factor authentication: SMS <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:356 fd624a7e3d404428830928ee05ec5348
|
||
msgid ":issue:`Multi-factor authentication: OTP <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:359 a6acbc89a16a4fad8658fb33764830ad
|
||
msgid "Packaging"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:361 575b556539994d1190e50cbfd0133bd4
|
||
msgid ":issue:`Nix package <190>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:362 f8facef108bf4d668509e57200f732bb
|
||
msgid ":issue:`Docker / OCI package <59>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:365 92825d26f07c4b718121c2784a9b6b81
|
||
msgid "And beyond"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:367 ac17ddb06c4d400ebc190454535608c2
|
||
msgid ":issue:`OpenID Connect certification <182>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:368 1b80703b0f434fe6ade3288840b9cf3c
|
||
msgid ":issue:`SCIM support <116>`"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:15 2c1f5afe842843a6bbedd65606fde0f5
|
||
msgid "Lightweight Identity and Authorization Management"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:19 0fa9dc97ee984c00a9460a07144eba66
|
||
msgid ""
|
||
"**Canaille** is a French word meaning *rascal*. It is roughly pronounced "
|
||
"**Can I?**, as in *Can I access your data?* Canaille is a lightweight "
|
||
"identity and authorization management software. It aims to be very light, "
|
||
"simple to install and simple to maintain. Its main features are :"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:31 8b56e6fd5b374afbadf70d3371ad8538
|
||
msgid "User profile and groups management, Basic permissions"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:38 ae2a113a2f63489ebb6a9696df422ed1
|
||
msgid ""
|
||
"Authentication, registration, email confirmation, \"I forgot my password\" "
|
||
"emails"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:40 c4659885674a4b848e904b352c94b89c
|
||
msgid "SSO"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:44 3dabf6a8010d4aff943f07dbf6fe52aa
|
||
msgid "OpenID Connect identity provider"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:46 f7caa27d43354246a89db295901976cb
|
||
msgid "Multi-database support"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:50 73b988c55cc241eeafe075a55fd037a0
|
||
msgid "PostgreSQL, Mariadb and OpenLDAP first-class citizenship"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:52 9caead4464284ccca1a59bff67fbec2d
|
||
msgid "Customization"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:56 e2604712b57b4583b53181a9fefcda0e
|
||
msgid "Put Canaille at yours colors by choosing a logo or use a custom theme!"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:58 b168d0612c04400e8b259edb581dc6c7
|
||
msgid "Developers friendliness"
|
||
msgstr ""
|
||
|
||
#: ../index.rst:62 8b5f849ae22348f19d5d8feca1590032
|
||
msgid ""
|
||
"Canaille can easily fit in your unit tests suite or in your Continuous "
|
||
"Integration."
|
||
msgstr ""
|
||
|
||
#: ../index.rst:66 a4dbd4558bda425cab549061b5952854
|
||
msgid ":doc:`Full feature list <features>` :doc:`Common use cases <usecases>`"
|
||
msgstr ""
|
||
|
||
#: ../references/commands.rst:4 574cb073f7584f8599a4cc129a337c4a
|
||
msgid ""
|
||
"Canaille provide several commands to help administrator manage their data."
|
||
msgstr ""
|
||
|
||
#: ../references/commands.rst:6 aa7436e81d0347aca49e76837769f92b
|
||
msgid ""
|
||
"Generally, some configuration has to be loaded by `Canaille`. This can be "
|
||
"achieved by :ref:`configuration loading method<references/configuration:Load "
|
||
"the configuration>` 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 d3880ac07b8641fbb96a657384193437
|
||
msgid "Test the configuration file."
|
||
msgstr ""
|
||
|
||
#: ../../canaille check:1 8edd9caa824f4c3aa3298a3e0b28a418
|
||
msgid ""
|
||
"Attempt to reach the database and the SMTP server with the provided "
|
||
"credentials."
|
||
msgstr ""
|
||
|
||
#: ../../canaille clean:1 15fc7dadf416460fb034401cb2298ddc
|
||
msgid "Remove expired tokens and authorization codes."
|
||
msgstr ""
|
||
|
||
#: ../../canaille install:1 f58f2f270c9642208409eab2a078aa10
|
||
msgid "Installs canaille elements from the configuration."
|
||
msgstr ""
|
||
|
||
#: ../../canaille install:1 ee828128d3684eaea85f63a4d8efb295
|
||
msgid ""
|
||
"For instance, depending on the configuration, this can generate OIDC keys or "
|
||
"install LDAP schemas."
|
||
msgstr ""
|
||
|
||
#: ../../canaille populate:1 df2355b792904bae8c2adfdc44e3abc1
|
||
msgid "Populate the database with generated random data."
|
||
msgstr ""
|
||
|
||
#: ../references/commands.rst:0 25c273b3659241e5a58c4ccfc4d1aa62
|
||
#: 23e595a7ef3e40738c72964260d647d4 b9df5380bb904ef3b2c158886514b1f4
|
||
#: f7857604a6af425d92b5f49a3a571724 979aef4626814c74bd3208394714d692
|
||
msgid "Options"
|
||
msgstr ""
|
||
|
||
#: ../../canaille populate:1 757aacf7045343ac87f0d6123fe1e181
|
||
msgid "Number of items to create"
|
||
msgstr ""
|
||
|
||
#: ../../canaille populate groups:1 0e4a01018e724dc6a6ca0b638d66852a
|
||
msgid "Populate the database with generated random groups."
|
||
msgstr ""
|
||
|
||
#: ../../canaille populate groups:1 b8f050417d3e4d5cb1abef74d5b23fef
|
||
msgid "The maximum number of users that will randomly be affected in the group"
|
||
msgstr ""
|
||
|
||
#: ../../canaille populate users:1 27cbff2cac6c4d0ba3a881e593e6d298
|
||
msgid "Populate the database with generated random users."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get authorizationcode:1 3b7cec01bf904fbd95a74ecc629450d4
|
||
msgid "Search for authorizationcodes and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get client:1 04713bc174844fbc90ffcd66309a32d7
|
||
msgid "Search for clients and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get consent:1 3d85785b1e954ca48fb3600e102060dc
|
||
msgid "Search for consents and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get group:1 a7f5ed4db7ca4b6e990d3008e3df40dd
|
||
msgid "Search for groups and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get token:1 f28ab88c832f4310ba8fce02409a0471
|
||
msgid "Search for tokens and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get user:1 243977ad7e504fedbd9646f89f934592
|
||
msgid "Search for users and display the matching models as JSON."
|
||
msgstr ""
|
||
|
||
#: ../../canaille set authorizationcode:1 0e3e63095aaa4d10827812a9df412418
|
||
msgid ""
|
||
"Update a authorizationcode and display the edited model in JSON format in "
|
||
"the standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete authorizationcode:1 set
|
||
#: 272d0df08f904f519632f9fd2fe65385
|
||
msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id"
|
||
msgstr ""
|
||
|
||
#: ../references/commands.rst:0 68201cc09cab43ae872191c5e1e0de51
|
||
msgid "Arguments"
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete authorizationcode:1 client:1 consent:1 group:1 token:1
|
||
#: user:1 reset-otp:1 set cafe88a3ce2e428eac214691a4cceb5a
|
||
msgid "Required argument"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set client:1 8fd29a2556aa4939a91f5dff64f750f9
|
||
msgid ""
|
||
"Update a client and display the edited model in JSON format in the standard "
|
||
"output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete client:1 set 1fe7624c6c204327b3dea4672369b25c
|
||
msgid "IDENTIFIER should be a client id or client_id"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set consent:1 bc9887077625496493e99ffd14864f21
|
||
msgid ""
|
||
"Update a consent and display the edited model in JSON format in the standard "
|
||
"output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete consent:1 set c40a621613bb4a57ae61d0bf635d4be1
|
||
msgid "IDENTIFIER should be a consent id or consent_id"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set group:1 24bf72192e064a11ba8f4408dc6cd2f2
|
||
msgid ""
|
||
"Update a group and display the edited model in JSON format in the standard "
|
||
"output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete group:1 set f9bb7a0e3cb74e87bd9647b1d854d4c5
|
||
msgid "IDENTIFIER should be a group id or display_name"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set token:1 ed64c8271e11430f829f537ac1c9fb03
|
||
msgid ""
|
||
"Update a token and display the edited model in JSON format in the standard "
|
||
"output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete token:1 set 5872d15912fa4904bc7429f1e6c4e4e5
|
||
msgid "IDENTIFIER should be a token id or token_id"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set user:1 6db0783b2700470888b19c5bc6144406
|
||
msgid ""
|
||
"Update a user and display the edited model in JSON format in the standard "
|
||
"output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete user:1 reset-otp:1 set
|
||
#: e98462e8df9b4465af9a63c0bbf21546 df12574865ac496e81bfdf5c8218cba0
|
||
msgid "IDENTIFIER should be a user id or user_name"
|
||
msgstr ""
|
||
|
||
#: ../../canaille create authorizationcode:1 428bc4494e3f4f6d875f2a701295e030
|
||
msgid ""
|
||
"Create a new authorizationcode and display the created model in JSON format "
|
||
"in the standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create client:1 4f234a94637b44698b95c220d5c3d59e
|
||
msgid ""
|
||
"Create a new client and display the created model in JSON format in the "
|
||
"standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create consent:1 741d27c2f5fb448da39ad4955e77518e
|
||
msgid ""
|
||
"Create a new consent and display the created model in JSON format in the "
|
||
"standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create group:1 973102f969a0499692c7a2416dd0f469
|
||
msgid ""
|
||
"Create a new group and display the created model in JSON format in the "
|
||
"standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create token:1 4f44ca45c9f8454b950534b228e8ef12
|
||
msgid ""
|
||
"Create a new token and display the created model in JSON format in the "
|
||
"standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create user:1 35ce000da38042699e6154f107a3e814
|
||
msgid ""
|
||
"Create a new user and display the created model in JSON format in the "
|
||
"standard output."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete authorizationcode:1 4607eae8cf4c40a3a37bef887f2254a1
|
||
msgid "Delete a authorizationcode."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete client:1 01b65f6e61a848c490034606d1d00095
|
||
msgid "Delete a client."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete consent:1 b1dfdb33eba94dc2a71f9172cff74acb
|
||
msgid "Delete a consent."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete group:1 6c79a439e1f54f4f81194cc8d6fc5944
|
||
msgid "Delete a group."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete token:1 1fb9fa8740c442ff82297d480fbba5ca
|
||
msgid "Delete a token."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete user:1 b0298caa666647268cd204cbd1cccd4d
|
||
msgid "Delete a user."
|
||
msgstr ""
|
||
|
||
#: ../../canaille reset-otp:1 541bd186f2b6471d823d13677e2477bb
|
||
msgid ""
|
||
"Reset one-time password authentication for a user and display the edited "
|
||
"user in JSON format in the standard output."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:2 ../tutorial/provisioning.rst:18
|
||
#: 6c3d1ad364a84afb9586b1b62e42dedb 07783d84d6c64841b473c97c38f85937
|
||
msgid "Configuration"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:5 fca2326d4bf84702b7d8d0f5d3a65f20
|
||
msgid "Load the configuration"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:7 51e2253170d4489ab9598217182b6f1d
|
||
msgid ""
|
||
"Canaille can be configured either by a environment variables, environment "
|
||
"file, or by a configuration file."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:10 1560e71d7b2d42aa8ec0accc06131b3d
|
||
msgid "Configuration file"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:14 0fc2b0bc764345caba3f9402376e279a
|
||
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:16 ../references/configuration.rst:98
|
||
#: ../tutorial/databases.rst:23 ../tutorial/databases.rst:37
|
||
#: ../tutorial/databases.rst:138 3626de52eeca4eecbda8f1d47354a80c
|
||
#: f59eab2f20b542f1af3ae7e6e4856266 c1e56e5ab5ba40228c68cd9eb470348d
|
||
#: 8acf4c15626e4f6897aa81c2e5e8ef42 830059290ddc4cf1b2249c45fc303b98
|
||
msgid "config.toml"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:28 4b63b3891e1c45788780ea1af554d1db
|
||
msgid ""
|
||
"You can have a look at the :ref:`example file <references/configuration:"
|
||
"Example file>` for inspiration."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:31 8cbac0cd9e3e4bc3ad5fc60d82180568
|
||
msgid "Environment variables"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:33 b909831b5aed44a4b439b37701feabb7
|
||
msgid ""
|
||
"In addition, parameters that have not been set in the configuration file can "
|
||
"be read from environment variables. The way environment variables are parsed "
|
||
"can be read from the `pydantic-settings documentation <https://docs.pydantic."
|
||
"dev/latest/concepts/pydantic_settings/#parsing-environment-variable-"
|
||
"values>`_."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:38 fd22a354c18f4733b8b1962cfcbe2139
|
||
msgid ""
|
||
"For environment vars, the separator between sections and variables is a "
|
||
"double underscore: ``__``. For instance, the ``NAME`` var in the "
|
||
"``CANAILLE`` section shown above is ``CANAILLE__NAME``."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:42 f12f0cbb606e4627be2fa3b2a895f162
|
||
msgid "Environment file"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:44 434c11ee0d6a4a118f9b8802d407d447
|
||
msgid ""
|
||
"Any environment variable can also be written in an environment file, which "
|
||
"path should be passed in the ``ENV_FILE`` environment variable. For "
|
||
"instance, set ``ENV_FILE=.env`` to load a ``.env`` file."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:47 ../tutorial/theming.rst:45
|
||
#: 83d91b20c3204d09b61a4a6de8c84769 457a1eceffa94e44afeb7c6d55ef5ea8
|
||
msgid ".env"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:65 8fc48610072c4e248c494befe2a4c8f6
|
||
msgid "Configuration methods priority"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:67 d3fdde7c8d9841e49e92bcba763e33d8
|
||
msgid ""
|
||
"If a same configuration option is defined by different ways, here is how "
|
||
"Canaille will choose which one to use:"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:69 b79bfecad485446b85a8866657222448
|
||
msgid ""
|
||
"environment vars have priority over the environment file and the "
|
||
"configuration file;"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:70 63800f5a14d44e1fa3ed0266e19f5482
|
||
msgid "environment file will have priority over the configuration file."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:73 ../references/templates.rst:0
|
||
#: e8e7a0f78d68479a9586036adf25e183 e618c439d01140e89d1dc5192b332e88
|
||
#: f4db2269f8ad4c409d39e94fe1dcaa04 68c66fa321bf4fe2a26894cfb9893ef0
|
||
#: d7c47aab465445b8bc425f9441587869 52bdc51455ac48d2bdb9d260bdb350cf
|
||
#: 0fb7c750d22647d788376d6343f66caf f92c045d1a5a4d00b038fa12d93eff2e
|
||
#: 90d78d2e0fdb420ab3c4d75f9909ebca c86ca15b6d43459db4613bed7711b415
|
||
#: 025f6511bb9848d4a1434b34d8af8ed5 5bd3a111c63e47598c6a88827ea19ffe
|
||
#: d2ba0706e4954be5b7ae534c589f6aca 9e2f1558bdac4c4eb1f753e347f81def
|
||
#: eb3ec759399744d3a0b8340459257502 7a6f904d5199479faf1f9475e8f28ec8
|
||
#: aa80eea655004e6aa3ed31b683743446 47e7b3bef2d7471b9b71292a43c594f0
|
||
#: d477ef4794834bcd88e238de37086828 af7c4339cf534ca499a21f430a2cfddc
|
||
#: c537eb4e5a054b4da0cce51226e90ae8 3e425d243a7e46c4ba306bdc43551133
|
||
#: 65568f4bca8a4d9f9a4fcdc05b5e446c 833bc5945dc84c89947a25733c1029dc
|
||
#: fa1f3f1eebc5442cb616ba17c22aa22d 5093360aed9a4fd0a361bd81f3310e2c
|
||
msgid "Parameters"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:1 ba32908d458e4689a5d90a46b386fdf3
|
||
msgid ""
|
||
"The top-level namespace contains the configuration settings unrelated to "
|
||
"Canaille."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:4 fffc30ea67ab47d99472750172be2a29
|
||
msgid "The configuration parameters from the following libraries can be used:"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:6 ae9ceb139bfc47f8b383dec852b507c2
|
||
msgid ":doc:`Flask <flask:config>`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:7 3d01d0dc9cdc47e59420f5b121370277
|
||
msgid ":doc:`Flask-WTF <flask-wtf:config>`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:8 d573a04c56154eaf857d49c057690bfd
|
||
msgid ":doc:`Flask-Babel <flask-babel:index>`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/configuration.py:docstring of
|
||
#: canaille.app.configuration.RootSettings:9 552391e3f12c4385abb3e1a2e3929cfa
|
||
msgid ":doc:`Authlib <authlib:flask/2/authorization-server>`"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:1
|
||
#: 4309008dba2c4aa79584299f19987ac4
|
||
msgid "The Flask :external:py:data:`DEBUG` configuration setting."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:3
|
||
#: f8cb9ba68ed14b818c2fb2bcfbffb16a
|
||
msgid "This enables debug options."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.DEBUG:7
|
||
#: 553b378e895a4b74aa242c08cd29450f
|
||
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
|
||
#: cb2cc7437e4a4d3c90895c4148186b25
|
||
msgid ""
|
||
"The Flask :external:py:data:`PREFERRED_URL_SCHEME` configuration setting."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.app.configuration.RootSettings.PREFERRED_URL_SCHEME:4
|
||
#: 530f78ce6f4842c983c10b38fe4c4b93
|
||
msgid "This sets the url scheme by which canaille will be served."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:1
|
||
#: 42e179fea274407eb26dd67e4a6d14a5
|
||
msgid "The Flask :external:py:data:`SECRET_KEY` configuration setting."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.SECRET_KEY:3
|
||
#: b16e239dce5c4f199a2fba1707c82d1a
|
||
msgid "You MUST change this."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:1
|
||
#: 0f0f60195f334cf597f67857740b2ace
|
||
msgid "The Flask :external:py:data:`SERVER_NAME` configuration setting."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.app.configuration.RootSettings.SERVER_NAME:3
|
||
#: 39edb89e79af4a10a154a5c42d51e86e
|
||
msgid "This sets domain name on which canaille will be served."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.CoreSettings:1 d831c1b108eb4e96bb11a6ddc92ed45e
|
||
msgid "The settings from the ``CANAILLE`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.CoreSettings:3 a51801e81d914eb3bfe1fa4e649133c1
|
||
msgid ""
|
||
"Those are all the configuration parameters that controls the behavior of "
|
||
"Canaille."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:1
|
||
#: 89de24471b434051a4a84e39bc47aded
|
||
msgid ""
|
||
"Mapping of permission groups. See :class:`ACLSettings` for more details."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:3
|
||
#: 1f85af06bed64d9da4417c6e6f7e244e
|
||
msgid "The ACL name can be freely chosen. For example:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:4
|
||
#: canaille.core.configuration.ACLSettings.PERMISSIONS:6
|
||
#: canaille.core.configuration.CoreSettings.ACL:5
|
||
#: canaille.core.configuration.CoreSettings.LOGGING:12
|
||
#: 56ce67b55d3b4d8eba9a07b4feed2587 d9b0f4816c2644679233ec3b797c2fc4
|
||
msgid "..code-block:: toml"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:7
|
||
#: dc73b62baf4f465598787ebb33191c7b
|
||
msgid ""
|
||
"[CANAILLE.ACL.DEFAULT] PERMISSIONS = [\"edit_self\", \"use_oidc\"] READ = "
|
||
"[\"user_name\", \"groups\"] WRITE = [\"given_name\", \"family_name\"]"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:12
|
||
#: 56d15bcfdbcc4556a3848702228b970f
|
||
msgid "[CANAILLE.ACL.ADMIN] WRITE = [\"user_name\", \"groups\"]"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:1
|
||
#: e07c109febe5434e95b532da3dadf454
|
||
msgid "Administration email contact."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ADMIN_EMAIL:3
|
||
#: 7a5e93e36d434fcb96b85beea8f1adc6
|
||
msgid ""
|
||
"In certain special cases (example : questioning about password corruption), "
|
||
"it is necessary to provide an administration contact email."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:1
|
||
#: 478effaaf0da47a1a31b996b06b8c650
|
||
msgid ""
|
||
"If :py:data:`True`, users will need to click on a confirmation link sent by "
|
||
"email when they want to add a new email."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION:4
|
||
#: b82dc4dc6818409eb5fa256462c4ac19
|
||
msgid ""
|
||
"By default, this is true if ``SMTP`` is configured, else this is false. If "
|
||
"explicitly set to true and ``SMTP`` is disabled, the email field will be "
|
||
"read-only."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.EMAIL_OTP:1
|
||
#: 8e19d8a485fe456191ab16773f84483e
|
||
msgid ""
|
||
"If :py:data:`True`, then users will need to authenticate themselves via a "
|
||
"one-time password sent to their primary email address."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT:1
|
||
#: 8e19d8a485fe456191ab16773f84483e
|
||
msgid ""
|
||
"If :py:data:`True`, then users will have to wait for an increasingly long "
|
||
"time between each failed login attempt."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK:1
|
||
#: cb4478169a09415a9f17e3df16239ecd
|
||
msgid ""
|
||
"If :py:data:`True`, Canaille will check if passwords appears in "
|
||
"compromission databases such as `HIBP <https://haveibeenpwned.com>`_ when "
|
||
"users choose a new one."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY:1
|
||
#: b70cf94037df4bd1ae8a74acc370b3a5
|
||
msgid ""
|
||
"If :py:data:`False`, then users cannot ask for a password recovery link by "
|
||
"email."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:1
|
||
#: 6ee78ec59c21456e8761778153d4f700
|
||
msgid ""
|
||
"If :py:data:`True`, then users can freely create an account at this instance."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.ENABLE_REGISTRATION:4
|
||
#: 979b9444b9c04354add2e781bd324752
|
||
msgid ""
|
||
"If email verification is available, users must confirm their email before "
|
||
"the account is created."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:1
|
||
#: 8931d55b0c264be0982765f04f83ae38
|
||
msgid "You favicon."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.FAVICON:3
|
||
#: 7991e0eec12c457dad401f49b34ad835
|
||
msgid "If unset and :attr:`LOGO` is set, then the logo will be used."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:1
|
||
#: 8e19d8a485fe456191ab16773f84483e
|
||
msgid ""
|
||
"If :py:data:`True`, when users try to sign in with an invalid login, a "
|
||
"message is shown indicating that the password is wrong, but does not give a "
|
||
"clue whether the login exists or not."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.HIDE_INVALID_LOGINS:5
|
||
#: dffe6e218f4f48e981ac5a9fa9a21e37
|
||
msgid ""
|
||
"If :py:data:`False`, when a user tries to sign in with an invalid login, a "
|
||
"message is shown indicating that the login does not exist."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.HTMX:1
|
||
#: b200882d189b46f3a83f217ff8b59551
|
||
msgid "Accelerates webpages loading with asynchronous requests."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:1
|
||
#: 2dc15bd9ea8a4386b7202dbdbab5de36
|
||
msgid "The validity duration of registration invitations, in seconds."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.INVITATION_EXPIRATION:3
|
||
#: c6aaae8719c34838aec54b8fea2d5101
|
||
msgid "Defaults to 2 days."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.JAVASCRIPT:1
|
||
#: 70d5c7fa2dfa4e6695c84f2b4ab547c9
|
||
msgid "Enables Javascript to smooth the user experience."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:1
|
||
#: 1e1cda3ec4c04a4aaeb2069ccc8f376f
|
||
msgid "If a language code is set, it will be used for every user."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LANGUAGE:3
|
||
#: 6818acfcf652444db48e1c61878b6bb6
|
||
msgid "If unset, the language is guessed according to the users browser."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:1
|
||
#: 63800f5a14d44e1fa3ed0266e19f5482
|
||
msgid ""
|
||
"Configures the logging output using the python logging configuration format:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:3
|
||
#: 62d20006362a45ca8ff0f0a8fbb82bf4
|
||
msgid ""
|
||
"If :data:`None`, everything is logged in the standard error output. The log "
|
||
"level is :data:`~logging.DEBUG` if the :attr:`~canaille.app.configuration."
|
||
"RootSettings.DEBUG` setting is :py:data:`True`, else this is :py:data:"
|
||
"`~logging.INFO`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:6
|
||
#: 44c6ded187ab4e44aac024c2cdb85303
|
||
msgid ""
|
||
"If this is a :class:`dict`, it is passed to :func:`logging.config."
|
||
"dictConfig`:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:7
|
||
#: 6e269ac8b9144e9699a5856c375d7a37
|
||
msgid ""
|
||
"If this is a :class:`str`, it is expected to be a file path that will be "
|
||
"passed to :func:`logging.config.fileConfig`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:4
|
||
#: canaille.core.configuration.CoreSettings.LOGGING:10
|
||
#: ba8b9d6794e2459492abfa778736328a
|
||
msgid "For example:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:14
|
||
#: 2eedaa2fba4545698dfd11007a2e0c9c
|
||
msgid ""
|
||
"[CANAILLE.LOGGING] version = 1 formatters.default.format = \"[%(asctime)s] "
|
||
"%(levelname)s in %(module)s: %(message)s\" root = {level = \"INFO\", "
|
||
"handlers = [\"canaille\"]}"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:19
|
||
#: 4b44c1c288c3433fb0edba70dd9c1343
|
||
msgid ""
|
||
"[CANAILLE.LOGGING.handlers.canaille] class = \"logging.handlers."
|
||
"WatchedFileHandler\" filename = \"/var/log/canaille.log\" formatter = "
|
||
"\"default\""
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGO:1
|
||
#: 851b93aeb7b54426872a6b4a2ed973b9
|
||
msgid ""
|
||
"The logo of your organization, this is useful to make your organization "
|
||
"recognizable on login screens."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:1
|
||
#: 88cd67b65c954dc7a261df77d1823cda
|
||
msgid "User password maximum length."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGTH:3
|
||
#: 435e72d3f33642da9016c521a88f15e6
|
||
msgid ""
|
||
"There is a technical of 4096 characters with the SQL backend. If the value "
|
||
"is 0, :data:`None`, or greater than 4096, then 4096 will be retained."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:1
|
||
#: b15846ed6b2a4ad49bbb19cde177023a
|
||
msgid "User password minimum length."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGTH:3
|
||
#: 820670101aa7436eb014aa61e1c1a7eb
|
||
msgid "If 0 or :data:`None`, password won't have a minimum length."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:1
|
||
#: a41944f564f5438fb8572449b5d13995
|
||
msgid "Your organization name."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.NAME:3
|
||
#: d61df1326c344b45b6d1c7b24e12b207
|
||
msgid "Used for display purpose."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.OTP_METHOD:1
|
||
#: 622f83bdd580459cad5b3b328fb2de3b
|
||
msgid ""
|
||
"If OTP_METHOD is defined, then users will need to authenticate themselves "
|
||
"using a one-time password (OTP) via an authenticator app. If set to "
|
||
"``TOTP``, the application will use time one-time passwords, If set to "
|
||
"``HOTP``, the application will use HMAC-based one-time passwords."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.PASSWORD_COMPROMISSION_CHECK_API_URL:1
|
||
#: 4501d236ecc142e2ad045599ee19ac19
|
||
msgid "Have i been pwned api url for compromission checks."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:1
|
||
#: 1072c369689f4922997715eb5337795a
|
||
msgid "Password validity duration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.CoreSettings.PASSWORD_LIFETIME:3
|
||
#: 4262b875a3a148dab5e94595cb2a981f
|
||
msgid ""
|
||
"If set, user passwords expire after this delay. Users are forced to change "
|
||
"their password when the lifetime of the password is over. The duration value "
|
||
"is expressed in `ISO8601 format <https://en.wikipedia.org/wiki/"
|
||
"ISO_8601#Durations>`_. For example, delay of 60 days is written \"P60D\"."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:1
|
||
#: 0b234cbe21824f31b27a3b3c893fd37b
|
||
msgid "A `Sentry <https://sentry.io>`_ DSN to collect the exceptions."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SENTRY_DSN:3
|
||
#: 2eab9799f4c0478aa5479f62e826b170
|
||
msgid "This is useful for tracking errors in test and production environments."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:1
|
||
#: 79d66e38b7d94974a21563fac9a58149
|
||
msgid "The settings related to SMPP configuration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SMPP:3
|
||
#: 41d396512e7d40b28223841b21f8ed09
|
||
msgid ""
|
||
"If unset, sms-related features like sms one-time passwords won't be enabled."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SMS_OTP:1
|
||
#: 8e19d8a485fe456191ab16773f84483e
|
||
msgid ""
|
||
"If :py:data:`True`, then users will need to authenticate themselves via a "
|
||
"one-time password sent to their primary phone number."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:1
|
||
#: 79d66e38b7d94974a21563fac9a58149
|
||
msgid "The settings related to SMTP and mail configuration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.SMTP:3
|
||
#: 41d396512e7d40b28223841b21f8ed09
|
||
msgid ""
|
||
"If unset, mail-related features like password recovery won't be enabled."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:1
|
||
#: e327a089ace6495285f29ade69226d1b
|
||
msgid "The name of a theme in the 'theme' directory, or a path to a theme."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.THEME:3
|
||
#: 641146b41ecc461d9fa7280687a462d9
|
||
msgid ""
|
||
"Defaults to ``default``. Theming is done with `flask-themer <https://github."
|
||
"com/tktech/flask-themer>`_."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:1
|
||
#: 421c3427b77b4cc4af9619406463c1c2
|
||
msgid ""
|
||
"The timezone in which datetimes will be displayed to the users (e.g. "
|
||
"``CEST``)."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.TIMEZONE:4
|
||
#: d8d80524578e4697a5bb9f7e83c7d113
|
||
msgid "If unset, the server timezone will be used."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.SMTPSettings:1 2f0178f9dbe747c695273f89e42da8c2
|
||
msgid ""
|
||
"The SMTP configuration. Belong in the ``CANAILLE.SMTP`` namespace. If unset, "
|
||
"mail related features will be disabled, such as mail verification or "
|
||
"password recovery emails."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.SMTPSettings:5 598e1ca109154455ad98b50d8853891d
|
||
msgid ""
|
||
"By default, Canaille will try to send mails from localhost without "
|
||
"authentication."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:1
|
||
#: 8ab9425f8a6b42dc9097b69e3eaa334a
|
||
msgid "The sender for Canaille mails."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.FROM_ADDR:3
|
||
#: f8f5f1377e5147d4baf9782ff95b4aa3
|
||
msgid "Some mail provider might require a valid sender address."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.HOST:1
|
||
#: 9059b29ae44849efb180f3b2da128c19
|
||
msgid "The SMTP host."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.LOGIN:1
|
||
#: 0bf8168dc84545cb810a8f25bbb4abf7
|
||
msgid "The SMTP login."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.PASSWORD:1
|
||
#: ec1b4f81894e45f5abcae80dfaee87a9
|
||
msgid "The SMTP password."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.PORT:1
|
||
#: 514104bb8bcc4331b1e7fff12e550ba3
|
||
msgid "The SMTP port."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.SSL:1
|
||
#: f4e65d7811cb43d5b7d86ec07af2576d
|
||
msgid "Whether to use SSL to connect to the SMTP server."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMTPSettings.TLS:1
|
||
#: bd8dac0e38f14b6583d024fca1768b7d
|
||
msgid "Whether to use TLS to connect to the SMTP server."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.SMPPSettings:1 2f0178f9dbe747c695273f89e42da8c2
|
||
msgid ""
|
||
"The SMPP configuration. Belong in the ``CANAILLE.SMPP`` namespace. If not "
|
||
"set, sms related features such as sms one-time passwords will be disabled."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMPPSettings.HOST:1
|
||
#: 9059b29ae44849efb180f3b2da128c19
|
||
msgid "The SMPP host."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMPPSettings.LOGIN:1
|
||
#: 0bf8168dc84545cb810a8f25bbb4abf7
|
||
msgid "The SMPP login."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMPPSettings.PASSWORD:1
|
||
#: ec1b4f81894e45f5abcae80dfaee87a9
|
||
msgid "The SMPP password."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.SMPPSettings.PORT:1
|
||
#: 1c6040260eac4930a107d3f612c6ef6e
|
||
msgid "The SMPP port. Use 8775 for SMPP over TLS (recommended)."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.ACLSettings:1 45f3089188214078ab06f2b1cff3b0e0
|
||
msgid "Access Control List settings. Belong in the ``CANAILLE.ACL`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.ACLSettings:3 733df203b313404eb417f40ed8708a2e
|
||
msgid ""
|
||
"You can define access controls that define what users can do on canaille. An "
|
||
"access control consists in a :attr:`FILTER` to match users, a list of :attr:"
|
||
"`PERMISSIONS` matched users will be able to perform, and fields users will "
|
||
"be able to :attr:`READ` and :attr:`WRITE`. Users matching several filters "
|
||
"will cumulate permissions."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:1
|
||
#: a14933a4c7244138bb59a43c9d288955
|
||
msgid ":attr:`FILTER` can be:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:3
|
||
#: d0f71dfab2ec47fca2184767e58eec59
|
||
msgid ""
|
||
":py:data:`None`, in which case all the users will match this access control"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:4
|
||
#: e33849bb0c954228951cb18c56a9e70d
|
||
msgid ""
|
||
"a mapping where keys are user attributes name and the values those user "
|
||
"attribute values. All the values must be matched for the user to be part of "
|
||
"the access control."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:7
|
||
#: 2ed07fdd7da94cfd90167b2d1f4cb4eb
|
||
msgid ""
|
||
"a list of those mappings. If a user values match at least one mapping, then "
|
||
"the user will be part of the access control"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.FILTER:10
|
||
#: 657a11f5921947b88bfc47cf8affbe00
|
||
msgid "Here are some examples::"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:1
|
||
#: df95253032c647229909e34386b1e5cc
|
||
msgid ""
|
||
"A list of :class:`Permission` users in the access control will be able to "
|
||
"manage."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:8
|
||
#: 700fa74aeea44e9aa6dd204df7870e90
|
||
msgid ""
|
||
"PERMISSIONS = [\"manage_users\", \"manage_groups\", \"manage_oidc\", "
|
||
"\"delete_account\", \"impersonate_users\"]"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.READ:1
|
||
#: ab801708874c4b1bb937f62969614340
|
||
msgid ""
|
||
"A list of :class:`~canaille.core.models.User` attributes that users in the "
|
||
"ACL will be able to read."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.WRITE:1
|
||
#: 384d296240314638a1f1b6b7719c6bb6
|
||
msgid ""
|
||
"A list of :class:`~canaille.core.models.User` attributes that users in the "
|
||
"ACL will be able to edit."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.Permission:1 f9eec27878c64e608b2783b5e89172ed
|
||
msgid "The permissions that can be assigned to users."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/configuration.py:docstring of
|
||
#: canaille.core.configuration.Permission:3 217cf0cc0b9b4a48a26abeaad488c131
|
||
msgid ""
|
||
"The permissions are intended to be used in :attr:`ACLSettings <canaille.core."
|
||
"configuration.ACLSettings.PERMISSIONS>`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:1
|
||
#: 370dec6e2b8049d0b7353b085340b102
|
||
msgid "Allows users to delete their account."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.DELETE_ACCOUNT:3
|
||
#: f7be239942c94727a948d27c6c93408e
|
||
msgid ""
|
||
"If used with :attr:`~canaille.core.configuration.Permission.MANAGE_USERS`, "
|
||
"users can delete any account."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.EDIT_SELF:1
|
||
#: 1f716bb0d0ec481ab5dff0a02f5c9e37
|
||
msgid "Allows users to edit their own profile."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.configuration.Permission.IMPERSONATE_USERS:1
|
||
#: c9018bb9aceb40bc9536cc03320c5bad
|
||
msgid "Allows users to take the identity of another user."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_GROUPS:1
|
||
#: 1072c369689f4922997715eb5337795a
|
||
msgid "Allows group edition and creation."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_OIDC:1
|
||
#: 014b4028381e4f4d8dcc8dc8a5e3a26f
|
||
msgid "Allows OpenID Connect client managements."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.MANAGE_USERS:1
|
||
#: ff39df8edc7143c7b23d22bb773b5198
|
||
msgid "Allows other users management."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.configuration.Permission.USE_OIDC:1
|
||
#: c7e27c4618a9460e8373c17f558f8d1e
|
||
msgid "Allows OpenID Connect authentication."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.OIDCSettings:1 e2e226bd197b4d6f87291ee45a3004ef
|
||
msgid "OpenID Connect settings."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.OIDCSettings:3 db9af81a48ac4b1a914370a2e47bf4e0
|
||
msgid "Belong in the ``CANAILLE_OIDC`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:1
|
||
#: 092f0d4259994eb8b834b256a8f72453
|
||
msgid ""
|
||
"Whether a token is needed for the RFC7591 dynamical client registration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_OPEN:3
|
||
#: 506f1fcd0f424df4bdafd9a69307f645
|
||
msgid ""
|
||
"If :py:data:`True`, no token is needed to register a client. If :py:data:"
|
||
"`False`, dynamical client registration needs a token defined in :attr:"
|
||
"`DYNAMIC_CLIENT_REGISTRATION_TOKENS`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.configuration.OIDCSettings.DYNAMIC_CLIENT_REGISTRATION_TOKENS:1
|
||
#: 30861c9a3a294daf8105dd5ac9007282
|
||
msgid "A list of tokens that can be used for dynamic client registration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.JWT:1
|
||
#: 04e054bb3d094e4ea8f23ab6fdec9bf6
|
||
msgid "JSON Web Token settings."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:1
|
||
#: 95b1ee4fd0da4ec2b30beb3e25944cd9
|
||
msgid "Force the nonce exchange during the authentication flows."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.OIDCSettings.REQUIRE_NONCE:3
|
||
#: de680082bc4546a6883ff4826df0067b
|
||
msgid "This adds security but may not be supported by all clients."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.JWTSettings:1 750fbe7d77954d87855e68d3199c81e7
|
||
msgid "JSON Web Token settings. Belong in the ``CANAILLE_OIDC.JWT`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.JWTSettings:3 03945dc4192c4f7abefbcd2b5c7c2bd9
|
||
msgid "You can generate a RSA keypair with::"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ALG:1
|
||
#: d65a4aaf4cb64130ac59c97cddcffb0b
|
||
msgid "The key algorithm."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.EXP:1
|
||
#: c0c460480db94b1a9ebceea06528d426
|
||
msgid "The time the JWT will be valid, in seconds."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.ISS:1
|
||
#: 6501426215db4b27b7b5d217954ca6be
|
||
msgid "The URI of the identity provider."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.KTY:1
|
||
#: 3e338458e42e405fb025bfcfc53688f4
|
||
msgid "The key type."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:1
|
||
#: 27a15f235d63447884175edd85e55cf4
|
||
msgid "The private key."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PRIVATE_KEY:3
|
||
#: canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3
|
||
#: 29d2c1b105e74d46b80db01b78954711
|
||
msgid ""
|
||
"If :py:data:`None` and debug mode is enabled, then an in-memory key will be "
|
||
"used."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:1
|
||
#: e88605c89e4b47989186fd27e5aff172
|
||
msgid "The public key."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.JWTMappingSettings:1
|
||
#: 235687b99f2c408aaf1c063061975f77
|
||
msgid "Mapping between the user model and the JWT fields."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/configuration.py:docstring of
|
||
#: canaille.oidc.configuration.JWTMappingSettings:3
|
||
#: ebe87d5efdaa458b97451b5ab4fdeb3d
|
||
msgid "Fields are evaluated with jinja. A ``user`` var is available."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/scim/configuration.py:docstring of
|
||
#: canaille.scim.configuration.SCIMSettings:1 e2e226bd197b4d6f87291ee45a3004ef
|
||
msgid "SCIM settings."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/sql/configuration.py:docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings:1
|
||
#: b7ccdac0ebd14f47be2d77ea52bd75d7
|
||
msgid "Settings related to the SQL backend."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/sql/configuration.py:docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings:3
|
||
#: 07e03b184cb54e0a92ca3a33033da5cd
|
||
msgid "Belong in the ``CANAILLE_SQL`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:1
|
||
#: 4d1ff118c1a44a50a962e527d1a8e2a2
|
||
msgid "The SQL server URI. For example:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings.DATABASE_URI:6
|
||
#: 4bb9ca2e412a461caacf1a146582247f
|
||
msgid "DATABASE_URI = \"postgresql://user:password@localhost/database_name\""
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:1
|
||
#: b1827fc993454e8fbfbe2868c28e751c
|
||
msgid "Password hashing scheme."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.sql.configuration.SQLSettings.PASSWORD_SCHEMES:3
|
||
#: 2e0dbdbc64944ec7948324890d02b255
|
||
msgid ""
|
||
"Defines password hashing scheme in SQL database. examples : \"mssql2000\", "
|
||
"\"ldap_salted_sha1\", \"pbkdf2_sha512\""
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/ldap/configuration.py:docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings:1
|
||
#: e656ae1d120e45109618f653d29d845e
|
||
msgid "Settings related to the LDAP backend."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/ldap/configuration.py:docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings:3
|
||
#: 9877879932a3406b87f9893f4a6bf8f3
|
||
msgid "Belong in the ``CANAILLE_LDAP`` namespace."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_DN:1
|
||
#: 96d852cc067c459cabfcc201a7271cf0
|
||
msgid "The LDAP bind DN."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.BIND_PW:1
|
||
#: 084f3814a8604375aed794d649845045
|
||
msgid "The LDAP bind password."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:1
|
||
#: 8f56c7d2bfb348afbcc36de24398dfac
|
||
msgid "The LDAP node under which groups will be looked for and saved."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_BASE:3
|
||
#: 58cf9c9e87464b709e4e8508577fbd63
|
||
msgid "For instance `\"ou=groups,dc=mydomain,dc=tld\"`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_CLASS:1
|
||
#: 3b6a2121763e4302aa1780cb6d51d9d6
|
||
msgid "The object class to use for creating new groups."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_NAME_ATTRIBUTE:1
|
||
#: 10d8bb8232bf4b30b6c631847ea70b2b
|
||
msgid "The attribute to use to identify a group."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.GROUP_RDN:1
|
||
#: 688132cb0d4e4f27973a02406d50edaa
|
||
msgid "The attribute to identify an object in the Group DN."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.ROOT_DN:1
|
||
#: 4428b1de4b664a55b077caa3969d6769
|
||
msgid "The LDAP root DN."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.TIMEOUT:1
|
||
#: 5a175d6a66e445458ee6bc473d614a45
|
||
msgid "The LDAP connection timeout."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.ldap.configuration.LDAPSettings.URI:1
|
||
#: 3172b80b5b86434699f226a3b713c52f
|
||
msgid "The LDAP server URI."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:1
|
||
#: 0e03c3262f504b79b84847041ee442e5
|
||
msgid "The LDAP node under which users will be looked for and saved."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_BASE:3
|
||
#: e1d16301542b40929d9e65c9a949b303
|
||
msgid "For instance `ou=users,dc=mydomain,dc=tld`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_CLASS:1
|
||
#: 92a1f8f8665848c9aaf4d5f9f1f3b6b7
|
||
msgid "The object class to use for creating new users."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:1
|
||
#: 228fcd64b4704fa0b4ea52ab85f48f08
|
||
msgid "Filter to match users on sign in."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_FILTER:3
|
||
#: f61c66f7c0e94e67ae5a4ce5de0dc548
|
||
msgid ""
|
||
"For instance ``(|(uid={{ login }})(mail={{ login }}))``. Jinja syntax is "
|
||
"supported and a ``login`` variable is available, containing the value passed "
|
||
"in the login field."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.backends.ldap.configuration.LDAPSettings.USER_RDN:1
|
||
#: d49e7765b3d6440d9fdcb0ecb18c06c1
|
||
msgid "The attribute to identify an object in the User DN."
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:94 c4674c5a1b434e81944983c7ec2fb0f1
|
||
msgid "Example file"
|
||
msgstr ""
|
||
|
||
#: ../references/configuration.rst:96 87c3dcb2ef5a4f649ec0fa9005449a79
|
||
msgid "Here is a configuration file example:"
|
||
msgstr ""
|
||
|
||
#: ../references/index.rst:2 51ac90bb647f41b69879253e3e7c475e
|
||
msgid "References"
|
||
msgstr ""
|
||
|
||
#: ../references/models.rst:2 bf9a972313e94c6aa0e72470dfc9677c
|
||
msgid "Data models"
|
||
msgstr ""
|
||
|
||
#: ../references/models.rst:4 620f9112555349eba4cc5daecdb72217
|
||
msgid ""
|
||
"This reference details the data models used by Canaille. This is mostly "
|
||
"useful for developers."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of canaille.app.features.Features:1
|
||
#: ../../canaille/backends/models.py:docstring
|
||
#: canaille.backends.models.BackendModel:1 canaille.backends.models.Model:1
|
||
#: b407db3f81d14e789f9f7f2e2bec7613 b29fcc3a6bdc4ee582d1e14851e430b7
|
||
#: 3ac32584e20443aaae7659c3e894cb06
|
||
msgid "Bases: :py:class:`object`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.BackendModel:1 664ca63468e648ddb0b2f2f957139ae9
|
||
msgid "The backend model abstract class."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.BackendModel:3 e16c978524f44a57affe6f2e15fdb5e2
|
||
msgid ""
|
||
"It details all the methods and attributes that are expected to be "
|
||
"implemented for every model and for every backend."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.Model:1 9f46b7e1801e4a57a346c598161cbdac
|
||
msgid "The model abstract class."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.Model:3 f4dad754b1d7448f842620b4f7b6069b
|
||
msgid "It details all the common attributes shared by every models."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.models.Model.created:1
|
||
#: 8685782e932b476a8b6f80256ebca659
|
||
msgid ""
|
||
"The :class:`~datetime.datetime` that the resource was added to the service "
|
||
"provider."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.models.Model.id:1
|
||
#: 112d9fd0a032418682875fe5f5685fc8
|
||
msgid ""
|
||
"A unique identifier for a SCIM resource as defined by the service provider. "
|
||
"Id will be :data:`None` until the ``Backend.save`` method is called."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.models.Model.id:5
|
||
#: fe3e4be3b44b43ebbbd11fe81fdc2613
|
||
msgid ""
|
||
"Each representation of the resource MUST include a non-empty \"id\" value. "
|
||
"This identifier MUST be unique across the SCIM service provider's entire set "
|
||
"of resources. It MUST be a stable, non- reassignable identifier that does "
|
||
"not change when the same resource is returned in subsequent requests. The "
|
||
"value of the \"id\" attribute is always issued by the service provider and "
|
||
"MUST NOT be specified by the client. The string \"bulkId\" is a reserved "
|
||
"keyword and MUST NOT be used within any unique identifier value. The "
|
||
"attribute characteristics are \"caseExact\" as \"true\", a mutability of "
|
||
"\"readOnly\", and a \"returned\" characteristic of \"always\". See Section "
|
||
"9 for additional considerations regarding privacy."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.Model.identifier:1 4f16f8a2628746e0bbb013e0ebdd53de
|
||
msgid ""
|
||
"Returns a unique value that will be used to identify the model instance."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/backends/models.py:docstring of
|
||
#: canaille.backends.models.Model.identifier:4 570af0c54d8a4b9ca5e1180a154578c6
|
||
msgid ""
|
||
"This value will be used in URLs in canaille, so it should be unique and "
|
||
"short."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.models.Model.last_modified:1
|
||
#: a64d636f5ae843698bae18cbc27adae5
|
||
msgid ""
|
||
"The most recent :class:`~datetime.datetime` that the details of this "
|
||
"resource were updated at the service provider."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.backends.models.Model.last_modified:4
|
||
#: 1478742051c64d3c8e8cb44b101c2337
|
||
msgid ""
|
||
"If this resource has never been modified since its initial creation, the "
|
||
"value MUST be the same as the value of :attr:`~canaille.backends.models."
|
||
"Model.created`."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
|
||
#: canaille.core.models.User:1 ../../canaille/oidc/basemodels.py:docstring
|
||
#: canaille.oidc.basemodels.AuthorizationCode:1
|
||
#: canaille.oidc.basemodels.Client:1 canaille.oidc.basemodels.Consent:1
|
||
#: canaille.oidc.basemodels.Token:1 31058fb082044629ab68e330524f37d4
|
||
#: 963c873782434df6bc7a6314e406858e ec3b5ed7c8e94f728377c74990bc94e6
|
||
msgid "Bases: :py:class:`~canaille.backends.models.Model`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of canaille.core.models.Group:1
|
||
#: d8d4759602c44e048e0d4f053dc5c895
|
||
msgid ""
|
||
"User model, based on the `SCIM Group schema <https://datatracker.ietf.org/"
|
||
"doc/html/rfc7643#section-4.2>`_."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.Group.display_name:1
|
||
#: f557ae62a380458ca1e212165ff7ebd2
|
||
msgid "A human-readable name for the Group."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.Group.display_name:3
|
||
#: canaille.oidc.basemodels.Client.client_id:1 3a782effac4c44f2b4084280c168f909
|
||
#: 038998149ec146249f6cd7993b6ea7c2
|
||
msgid "REQUIRED."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.Group.members:1
|
||
#: 83c94299de834bb7899fc5d919567ddf
|
||
msgid "A list of members of the Group."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.Group.members:3
|
||
#: f8395458983d4efd966c1f2bd3e771dc
|
||
msgid ""
|
||
"While values MAY be added or removed, sub-attributes of members are "
|
||
"\"immutable\". The \"value\" sub-attribute contains the value of an \"id\" "
|
||
"attribute of a SCIM resource, and the \"$ref\" sub-attribute must be the URI "
|
||
"of a SCIM resource such as a \"User\", or a \"Group\". The intention of the "
|
||
"\"Group\" type is to allow the service provider to support nested groups. "
|
||
"Service providers MAY require clients to provide a non-empty value by "
|
||
"setting the \"required\" attribute characteristic of a sub-attribute of the "
|
||
"\"members\" attribute in the \"Group\" resource schema."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of canaille.core.models.User:1
|
||
#: 3de74c338e4e45d4ada0909e1d6a2c1d
|
||
msgid ""
|
||
"User model, based on the `SCIM User schema <https://datatracker.ietf.org/doc/"
|
||
"html/rfc7643#section-4.1>`_, `Entreprise User Schema Extension <https://"
|
||
"datatracker.ietf.org/doc/html/rfc7643#section-4.3>`_ and `SCIM Password "
|
||
"Management Extension <https://datatracker.ietf.org/doc/html/draft-hunt-scim-"
|
||
"password-mgmt-00.html>`_ draft. Attribute description is based on SCIM and "
|
||
"put there for information purpose. The description may not fit the current "
|
||
"implementation in Canaille."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of canaille.core.models.User.can:1
|
||
#: dd44c29c7f88458e923a6bdc89ff4bd8
|
||
msgid ""
|
||
"Whether or not the user has the :class:`~canaille.core.configuration."
|
||
"Permission` according to the :class:`configuration <canaille.core."
|
||
"configuration.ACLSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.department:1
|
||
#: d09b761f1c3d4bcda3c7c5841cb86768
|
||
msgid "Identifies the name of a department."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.display_name:1
|
||
#: 7a92e34396f14701a901c6342ba43372
|
||
msgid "The name of the user, suitable for display to end-users."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.display_name:3
|
||
#: e89fec83b2eb42deaac70264489240e3
|
||
msgid ""
|
||
"Each user returned MAY include a non-empty displayName value. The name "
|
||
"SHOULD be the full name of the User being described, if known (e.g., \"Babs "
|
||
"Jensen\" or \"Ms. Barbara J Jensen, III\") but MAY be a username or handle, "
|
||
"if that is all that is available (e.g., \"bjensen\"). The value provided "
|
||
"SHOULD be the primary textual label by which this User is normally displayed "
|
||
"by the service provider when presenting it to end-users."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.emails:1
|
||
#: 5383ce6b712040c4a0bba18c1bbef93d
|
||
msgid "Email addresses for the User."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.emails:3
|
||
#: dcbfe09f878141a4bd5a20b9e2d9b6da
|
||
msgid ""
|
||
"The value SHOULD be specified according to [RFC5321]. Service providers "
|
||
"SHOULD canonicalize the value according to [RFC5321], e.g., "
|
||
"\"bjensen@example.com\" instead of \"bjensen@EXAMPLE.COM\". The \"display\" "
|
||
"sub-attribute MAY be used to return the canonicalized representation of the "
|
||
"email value. The \"type\" sub-attribute is used to provide a classification "
|
||
"meaningful to the (human) user. The user interface should encourage the use "
|
||
"of basic values of \"work\", \"home\", and \"other\" and MAY allow "
|
||
"additional type values to be used at the discretion of SCIM clients."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.employee_number:1
|
||
#: 6cc0c003bd234628a0bc0a0c27cccaee
|
||
msgid ""
|
||
"A string identifier, typically numeric or alphanumeric, assigned to a "
|
||
"person, typically based on order of hire or association with an organization."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.family_name:1
|
||
#: db1cbc1b88a44555ac36431d951ed1bc
|
||
msgid ""
|
||
"The family name of the User, or last name in most Western languages (e.g., "
|
||
"\"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\")."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.formatted_address:1
|
||
#: 19bb2c52eb2747a8bae2df988b0f3226
|
||
msgid ""
|
||
"The full mailing address, formatted for display or use with a mailing label."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.formatted_address:4
|
||
#: aaf2f2de713c468a8388bd976795c621
|
||
msgid "This attribute MAY contain newlines."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.formatted_name:1
|
||
#: 6e02928b97a944b5929f0002f9c7b70c
|
||
msgid ""
|
||
"The full name, including all middle names, titles, and suffixes as "
|
||
"appropriate, formatted for display (e.g., \"Ms. Barbara Jane Jensen, III\")."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.given_name:1
|
||
#: 0adf168d41024021aca8fcbf22e2b575
|
||
msgid ""
|
||
"The given name of the User, or first name in most Western languages (e.g., "
|
||
"\"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\")."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.groups:1
|
||
#: ef755a48c32047c187a2405190a88b07
|
||
msgid ""
|
||
"A list of groups to which the user belongs, either through direct "
|
||
"membership, through nested groups, or dynamically calculated."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.groups:4
|
||
#: 0d7136476f7649ddad322de96971e938
|
||
msgid ""
|
||
"The values are meant to enable expression of common group-based or role-"
|
||
"based access control models, although no explicit authorization model is "
|
||
"defined. It is intended that the semantics of group membership and any "
|
||
"behavior or authorization granted as a result of membership are defined by "
|
||
"the service provider. The canonical types \"direct\" and \"indirect\" are "
|
||
"defined to describe how the group membership was derived. Direct group "
|
||
"membership indicates that the user is directly associated with the group and "
|
||
"SHOULD indicate that clients may modify membership through the \"Group\" "
|
||
"resource. Indirect membership indicates that user membership is transitive "
|
||
"or dynamic and implies that clients cannot modify indirect group membership "
|
||
"through the \"Group\" resource but MAY modify direct group membership "
|
||
"through the \"Group\" resource, which may influence indirect memberships. "
|
||
"If the SCIM service provider exposes a \"Group\" resource, the \"value\" sub-"
|
||
"attribute MUST be the \"id\", and the \"$ref\" sub-attribute must be the URI "
|
||
"of the corresponding \"Group\" resources to which the user belongs. Since "
|
||
"this attribute has a mutability of \"readOnly\", group membership changes "
|
||
"MUST be applied via the \"Group\" Resource (Section 4.2). This attribute "
|
||
"has a mutability of \"readOnly\"."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.User.has_password:1 034f9fa73a5d455382726ac4b448c136
|
||
msgid "Check whether a password has been set for the user."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.hotp_counter:1
|
||
#: 05380b82ddda46bfa9678288cebf85a7
|
||
msgid ""
|
||
"HMAC-based One Time Password counter, used for multi-factor authentication."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.last_otp_login:1
|
||
#: bdfeb17b4cc24311b1945121f22d4e61
|
||
msgid ""
|
||
"A DateTime indicating when the user last logged in with a one-time password. "
|
||
"This attribute is currently used to check whether the user has activated one-"
|
||
"time password authentication or not."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.locality:1
|
||
#: 3d50110e459f4ba3b06af609c8f2bef8
|
||
msgid "The city or locality component."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.lock_date:1
|
||
#: bc9386fb2f7c41cc82308c45d919feb9
|
||
msgid "A DateTime indicating when the resource was locked."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.User.locked:1 8f227ede6e584fda946d50e86049afcb
|
||
msgid "Whether the user account has been locked or has expired."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.one_time_password:1
|
||
#: 4f6ac05bac3845ea8325c2b34e8c0824
|
||
msgid "One time password used for email or sms multi-factor authentication."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.core.models.User.one_time_password_emission_date:1
|
||
#: cc1503678fc046f9bb759040e7e561e1
|
||
msgid ""
|
||
"A DateTime indicating when the user last emitted an email or sms one-time "
|
||
"password."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.organization:1
|
||
#: 39b14adbf8ad42b39c2cdd9fb0fcf96c
|
||
msgid "Identifies the name of an organization."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:1
|
||
#: a4ec9a6f72834b47b82db401e1ebed2f
|
||
msgid ""
|
||
"This attribute is intended to be used as a means to set, replace, or compare "
|
||
"(i.e., filter for equality) a password. The cleartext value or the hashed "
|
||
"value of a password SHALL NOT be returnable by a service provider. If a "
|
||
"service provider holds the value locally, the value SHOULD be hashed. When "
|
||
"a password is set or changed by the client, the cleartext password SHOULD be "
|
||
"processed by the service provider as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:9
|
||
#: 4a4c0608f0ac4739bbb358ebfffbc94c
|
||
msgid ""
|
||
"Prepare the cleartext value for international language comparison. See "
|
||
"Section 7.8 of [RFC7644]."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:12
|
||
#: 770cfb12f1c943188e281ef2e527ccb2
|
||
msgid ""
|
||
"Validate the value against server password policy. Note: The definition and "
|
||
"enforcement of password policy are beyond the scope of this document."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:16
|
||
#: 736bf805f27d4dfb8c1292b5afaca0be
|
||
msgid ""
|
||
"Ensure that the value is encrypted (e.g., hashed). See Section 9.2 for "
|
||
"acceptable hashing and encryption handling when storing or persisting for "
|
||
"provisioning workflow reasons."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:20
|
||
#: 605f5a91894e42ee9d14686ae2f346cd
|
||
msgid ""
|
||
"A service provider that immediately passes the cleartext value on to another "
|
||
"system or programming interface MUST pass the value directly over a secured "
|
||
"connection (e.g., Transport Layer Security (TLS)). If the value needs to be "
|
||
"temporarily persisted for a period of time (e.g., because of a workflow) "
|
||
"before provisioning, then the value MUST be protected by some method, such "
|
||
"as encryption."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:28
|
||
#: 198ed93545fe467ea461cef9a184362c
|
||
msgid ""
|
||
"Testing for an equality match MAY be supported if there is an existing "
|
||
"stored hashed value. When testing for equality, the service provider:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:32
|
||
#: becd82e6d299471d94ab4906ce105218
|
||
msgid ""
|
||
"Prepares the filter value for international language comparison. See "
|
||
"Section 7.8 of [RFC7644]."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:35
|
||
#: ca91b3fdd3ae434dbb47d55b73ccbcb2
|
||
msgid ""
|
||
"Generates the salted hash of the filter value and tests for a match with the "
|
||
"locally held value."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password:38
|
||
#: 0c4d62a31f2d442981432c2f841abdac
|
||
msgid ""
|
||
"The mutability of the password attribute is \"writeOnly\", indicating that "
|
||
"the value MUST NOT be returned by a service provider in any form (the "
|
||
"attribute characteristic \"returned\" is \"never\")."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password_failure_timestamps:1
|
||
#: af54ab55d44c469d886fbacc828582d6
|
||
msgid ""
|
||
"This attribute stores the timestamps of the user's failed authentications."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password_failure_timestamps:4
|
||
#: 785dc2a557f5471fb7e5cdebbaf84443
|
||
msgid "It's currently used by the intruder lockout delay system."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.password_last_update:1
|
||
#: f1bb412648244da18357a6e88d57836b
|
||
msgid ""
|
||
"Specifies the last time the user password was changed. By default, the date "
|
||
"of creation of the password is retained."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.phone_numbers:1
|
||
#: 636757499c76498ca8a1cbad6ea4fbb7
|
||
msgid "Phone numbers for the user."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.phone_numbers:3
|
||
#: dabf654512714fda965fded70f74aeac
|
||
msgid ""
|
||
"The value SHOULD be specified according to the format defined in [RFC3966], "
|
||
"e.g., 'tel:+1-201-555-0123'. Service providers SHOULD canonicalize the "
|
||
"value according to [RFC3966] format, when appropriate. The \"display\" sub-"
|
||
"attribute MAY be used to return the canonicalized representation of the "
|
||
"phone number value. The sub- attribute \"type\" often has typical values of "
|
||
"\"work\", \"home\", \"mobile\", \"fax\", \"pager\", and \"other\" and MAY "
|
||
"allow more types to be defined by the SCIM clients."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.photo:1
|
||
#: 27d8a36d06ce46858ed9974cfb3a9a9b
|
||
msgid ""
|
||
"A URI that is a uniform resource locator (as defined in Section 1.1.3 of "
|
||
"[RFC3986]) that points to a resource location representing the user's image."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.photo:5
|
||
#: 8d0e8ca2555c48b0aad26fa7fdb102cf
|
||
msgid ""
|
||
"The resource MUST be a file (e.g., a GIF, JPEG, or PNG image file) rather "
|
||
"than a web page containing an image. Service providers MAY return the same "
|
||
"image in different sizes, although it is recognized that no standard for "
|
||
"describing images of various sizes currently exists. Note that this "
|
||
"attribute SHOULD NOT be used to send down arbitrary photos taken by this "
|
||
"user; instead, profile photos of the user that are suitable for display when "
|
||
"describing the user should be sent. Instead of the standard canonical values "
|
||
"for type, this attribute defines the following canonical values to represent "
|
||
"popular photo sizes: \"photo\" and \"thumbnail\"."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.postal_code:1
|
||
#: ca9c10bc74eb4a2b90365bbd3473b1be
|
||
msgid "The zip code or postal code component."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.preferred_language:1
|
||
#: 5c7d29d6e6334161b21068010f566af2
|
||
msgid ""
|
||
"Indicates the user's preferred written or spoken languages and is generally "
|
||
"used for selecting a localized user interface."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.preferred_language:4
|
||
#: c45f7e1feb59446daa9dbea7cce24305
|
||
msgid ""
|
||
"The value indicates the set of natural languages that are preferred. The "
|
||
"format of the value is the same as the HTTP Accept-Language header field "
|
||
"(not including \"Accept-Language:\") and is specified in Section 5.3.5 of "
|
||
"[RFC7231]. The intent of this value is to enable cloud applications to "
|
||
"perform matching of language tags [RFC4647] to the user's language "
|
||
"preferences, regardless of what may be indicated by a user agent (which "
|
||
"might be shared), or in an interaction that does not involve a user (such as "
|
||
"in a delegated OAuth 2.0 [RFC6749] style interaction) where normal HTTP "
|
||
"Accept-Language header negotiation cannot take place."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.profile_url:1
|
||
#: 267adc8c4ecf4750a9db3464eb2b8573
|
||
msgid ""
|
||
"A URI that is a uniform resource locator (as defined in Section 1.1.3 of "
|
||
"[RFC3986]) and that points to a location representing the user's online "
|
||
"profile (e.g., a web page)."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.profile_url:5
|
||
#: 7f227419ab034b3da8303fe94affeb6c
|
||
msgid "URIs are canonicalized per Section 6.2 of [RFC3986]."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.User.readable_fields:1 e064888816ad4e228797af005daa0c1b
|
||
msgid ""
|
||
"The fields the user can read according to the :class:`configuration "
|
||
"<canaille.core.configuration.ACLSettings>` configuration."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.User.readable_fields:4 d51b5c9a3058444187f7f52aafcc57ce
|
||
msgid ""
|
||
"This does not include the :attr:`writable <canaille.core.models.User."
|
||
"writable_fields>` fields."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.region:1
|
||
#: 7781da46bb4f45c19d4061a73efd1860
|
||
msgid "The state or region component."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.secret_token:1
|
||
#: 3764681cd7844fdaa69cc2ab072ff732
|
||
msgid ""
|
||
"Unique token generated for each user, used for multi-factor authentication."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.street:1
|
||
#: e15de46ed1a745e580399d0bf40e96b8
|
||
msgid ""
|
||
"The full street address component, which may include house number, street "
|
||
"name, P.O."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.street:4
|
||
#: 663a1b080f3646f5bbc30492beccda49
|
||
msgid ""
|
||
"box, and multi-line extended street address information. This attribute MAY "
|
||
"contain newlines."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.title:1
|
||
#: 96571ab69f47443087e9de7cdf2af3ef
|
||
msgid "The user's title, such as \"Vice President\"."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.user_name:1
|
||
#: 5a41c74aee6040d78b20e68feedbe91d
|
||
msgid ""
|
||
"A service provider's unique identifier for the user, typically used by the "
|
||
"user to directly authenticate to the service provider."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.core.models.User.user_name:4
|
||
#: 305c46ac8a734b4fb513c2da9c0bd78d
|
||
msgid ""
|
||
"Often displayed to the user as their unique identifier within the system (as "
|
||
"opposed to \"id\" or \"externalId\", which are generally opaque and not user-"
|
||
"friendly identifiers). Each User MUST include a non-empty userName value. "
|
||
"This identifier MUST be unique across the service provider's entire set of "
|
||
"Users. This attribute is REQUIRED and is case insensitive."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.User.writable_fields:1 f99945951b7f476484908fef5eb9bee4
|
||
msgid ""
|
||
"The fields the user can write according to the :class:`configuration "
|
||
"<canaille.core.configuration.ACLSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.string_code:1 81f725c1782d45b395593f37c0776e41
|
||
msgid "Add leading 0 if the code length does not match the defined length."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/models.py:docstring of
|
||
#: canaille.core.models.string_code:3 1cc69f629da14627a5d08132c7388c45
|
||
msgid ""
|
||
"For instance, parameter ``digit=6``, but ``code=123``, this method would "
|
||
"return ``000123``::"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/basemodels.py:docstring of
|
||
#: canaille.oidc.basemodels.AuthorizationCode:1
|
||
#: 470216f2acc344a9bc4fe9408cf38b4c
|
||
msgid "OpenID Connect temporary authorization code definition."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/basemodels.py:docstring of
|
||
#: canaille.oidc.basemodels.Client:1 b0248a05ffa44100bfcf4e84de0e154b
|
||
msgid ""
|
||
"OpenID Connect client definition, based on the `OAuth 2.0 Dynamic Client "
|
||
"Registration protocols <https://datatracker.ietf.org/doc/html/rfc7591."
|
||
"html>`_ and the `OpenID Connect RP-Initiated Logout <https://openid.net/"
|
||
"specs/openid-connect-rpinitiated-1_0.html>`_ specifications."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_id:3
|
||
#: 9630f3464163481993a425c28c308969
|
||
msgid ""
|
||
"OAuth 2.0 client identifier string. It SHOULD NOT be currently valid for "
|
||
"any other registered client, though an authorization server MAY issue the "
|
||
"same client identifier to multiple instances of a registered client at its "
|
||
"discretion."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:1
|
||
#: canaille.oidc.basemodels.Client.client_secret:1
|
||
#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:1
|
||
#: 05d209d5010c49c99c2e88fd070c5595
|
||
msgid "OPTIONAL."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_id_issued_at:3
|
||
#: fb189c4d73054f559edc1f71e252013c
|
||
msgid ""
|
||
"Time at which the client identifier was issued. The time is represented as "
|
||
"the number of seconds from 1970-01-01T00:00:00Z as measured in UTC until the "
|
||
"date/time of issuance."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_name:1
|
||
#: 90b1171c71784152b30c868ce6a69e92
|
||
msgid ""
|
||
"Human-readable string name of the client to be presented to the end-user "
|
||
"during authorization."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_name:4
|
||
#: 2f438f6285d3455f81459326d3ed2a3d
|
||
msgid ""
|
||
"If omitted, the authorization server MAY display the raw \"client_id\" value "
|
||
"to the end-user instead. It is RECOMMENDED that clients always send this "
|
||
"field. The value of this field MAY be internationalized, as described in "
|
||
"Section 2.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret:3
|
||
#: b659e17a18ae49d6b460ce4bfd3ef720
|
||
msgid ""
|
||
"OAuth 2.0 client secret string. If issued, this MUST be unique for each "
|
||
"\"client_id\" and SHOULD be unique for multiple instances of a client using "
|
||
"the same \"client_id\". This value is used by confidential clients to "
|
||
"authenticate to the token endpoint, as described in OAuth 2.0 [RFC6749], "
|
||
"Section 2.3.1."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.client_secret_expires_at:1
|
||
#: fe3efeb714e642038fddaee69b85a240
|
||
msgid "REQUIRED if \"client_secret\" is issued."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.client_secret_expires_at:3
|
||
#: 8224ead887464588a9b93fc320780f69
|
||
msgid ""
|
||
"Time at which the client secret will expire or 0 if it will not expire. The "
|
||
"time is represented as the number of seconds from 1970-01-01T00:00:00Z as "
|
||
"measured in UTC until the date/time of expiration."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:1
|
||
#: c7ec8c5c04bd41fa87825f3d6f4e71b3
|
||
msgid "URL string of a web page providing information about the client."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_uri:3
|
||
#: 8be313c7ec5848419e7a0062beefd60c
|
||
msgid ""
|
||
"If present, the server SHOULD display this URL to the end-user in a "
|
||
"clickable fashion. It is RECOMMENDED that clients always send this field. "
|
||
"The value of this field MUST point to a valid web page. The value of this "
|
||
"field MAY be internationalized, as described in Section 2.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.contacts:1
|
||
#: 133418eefb1d484ba26f492838063c04
|
||
msgid ""
|
||
"Array of strings representing ways to contact people responsible for this "
|
||
"client, typically email addresses."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.contacts:4
|
||
#: 4c4d89f737af445da4e7eb5882887e00
|
||
msgid ""
|
||
"The authorization server MAY make these contact addresses available to end-"
|
||
"users for support requests for the client. See Section 6 for information on "
|
||
"Privacy Considerations."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:1
|
||
#: 5105e93451e946fea6c3fd0b09c19683
|
||
msgid ""
|
||
"Array of OAuth 2.0 grant type strings that the client can use at the token "
|
||
"endpoint. These grant types are defined as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:4
|
||
#: 471bb398e08d45d588f320d2c25cb025
|
||
msgid ""
|
||
"\"authorization_code\": The authorization code grant type defined in OAuth "
|
||
"2.0, Section 4.1."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:7
|
||
#: c1785e60703f46e5a3a6e7131ba26894
|
||
msgid ""
|
||
"\"implicit\": The implicit grant type defined in OAuth 2.0, Section 4.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:10
|
||
#: 99ec3801466340bd83367ab92a351ac3
|
||
msgid ""
|
||
"\"password\": The resource owner password credentials grant type defined in "
|
||
"OAuth 2.0, Section 4.3."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:13
|
||
#: a62c7b8185ee4863aec423c5fe445ae5
|
||
msgid ""
|
||
"\"client_credentials\": The client credentials grant type defined in OAuth "
|
||
"2.0, Section 4.4."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:16
|
||
#: 2fd298fce6974e4da2f670da31280955
|
||
msgid ""
|
||
"\"refresh_token\": The refresh token grant type defined in OAuth 2.0, "
|
||
"Section 6."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:19
|
||
#: 2fb0f1de8f46429eb46970d53c954d91
|
||
msgid ""
|
||
"\"urn:ietf:params:oauth:grant-type:jwt-bearer\": The JWT Bearer Token Grant "
|
||
"Type defined in OAuth JWT Bearer Token Profiles [RFC7523]."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:23
|
||
#: dd4f8e0551e048d599a3f95740ea3cf1
|
||
msgid ""
|
||
"\"urn:ietf:params:oauth:grant-type:saml2-bearer\": The SAML 2.0 Bearer "
|
||
"Assertion Grant defined in OAuth SAML 2 Bearer Token Profiles [RFC7522]."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.grant_types:27
|
||
#: 241768369988480b8f79cae93fa06ff4
|
||
msgid ""
|
||
"If the token endpoint is used in the grant type, the value of this parameter "
|
||
"MUST be the same as the value of the \"grant_type\" parameter passed to the "
|
||
"token endpoint defined in the grant type definition. Authorization servers "
|
||
"MAY allow for other values as defined in the grant type extension process "
|
||
"described in OAuth 2.0, Section 4.5. If omitted, the default behavior is "
|
||
"that the client will use only the \"authorization_code\" Grant Type."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.jwk:1
|
||
#: 779d5b8c355f4e469d0880100f197dbd
|
||
msgid ""
|
||
"Client's JSON Web Key Set [RFC7517] document value, which contains the "
|
||
"client's public keys."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.jwk:4
|
||
#: 786a840808f042fdb3a97eb1bd7f7a98
|
||
msgid ""
|
||
"The value of this field MUST be a JSON object containing a valid JWK Set. "
|
||
"These keys can be used by higher-level protocols that use signing or "
|
||
"encryption. This parameter is intended to be used by clients that cannot "
|
||
"use the \"jwks_uri\" parameter, such as native clients that cannot host "
|
||
"public URLs. The \"jwks_uri\" and \"jwks\" parameters MUST NOT both be "
|
||
"present in the same request or response."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:1
|
||
#: 29bbb97b4b0545df84cf23ec1e6b14cf
|
||
msgid ""
|
||
"URL string referencing the client's JSON Web Key (JWK) Set [RFC7517] "
|
||
"document, which contains the client's public keys."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.jwks_uri:4
|
||
#: 4021b5fbeabb464d938a3903ef7e718b
|
||
msgid ""
|
||
"The value of this field MUST point to a valid JWK Set document. These keys "
|
||
"can be used by higher-level protocols that use signing or encryption. For "
|
||
"instance, these keys might be used by some applications for validating "
|
||
"signed requests made to the token endpoint when using JWTs for client "
|
||
"authentication [RFC7523]. Use of this parameter is preferred over the "
|
||
"\"jwks\" parameter, as it allows for easier key rotation. The \"jwks_uri\" "
|
||
"and \"jwks\" parameters MUST NOT both be present in the same request or "
|
||
"response."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:1
|
||
#: 723f17b9b9df481394bcff341b2730b1
|
||
msgid "URL string that references a logo for the client."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.logo_uri:3
|
||
#: 6b1a034be4f248e98f185c7a0ef2c3b5
|
||
msgid ""
|
||
"If present, the server SHOULD display this image to the end-user during "
|
||
"approval. The value of this field MUST point to a valid image file. The "
|
||
"value of this field MAY be internationalized, as described in Section 2.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:1
|
||
#: 92446c1f45fc4da9bf18fed32b046f26
|
||
msgid ""
|
||
"URL string that points to a human-readable privacy policy document that "
|
||
"describes how the deployment organization collects, uses, retains, and "
|
||
"discloses personal data."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.policy_uri:5
|
||
#: canaille.oidc.basemodels.Client.tos_uri:5 470f3a6ebe5a470d97207d2d724d7a50
|
||
msgid ""
|
||
"The authorization server SHOULD display this URL to the end-user if it is "
|
||
"provided. The value of this field MUST point to a valid web page. The "
|
||
"value of this field MAY be internationalized, as described in Section 2.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.post_logout_redirect_uris:3
|
||
#: 80775602163f4c4eae2aa73101fb4a59
|
||
msgid ""
|
||
"Array of URLs supplied by the RP to which it MAY request that the End-User's "
|
||
"User Agent be redirected using the post_logout_redirect_uri parameter after "
|
||
"a logout has been performed. These URLs SHOULD use the https scheme and MAY "
|
||
"contain port, path, and query parameter components; however, they MAY use "
|
||
"the http scheme, provided that the Client Type is confidential, as defined "
|
||
"in Section 2.1 of OAuth 2.0 [RFC6749], and provided the OP allows the use of "
|
||
"http RP URIs."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:1
|
||
#: 9864218626a9495d837ca07ecabe2e83
|
||
msgid ""
|
||
"Array of redirection URI strings for use in redirect-based flows such as the "
|
||
"authorization code and implicit flows."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.redirect_uris:4
|
||
#: a1f4e7a342764daf9b91f5c582e0d704
|
||
msgid ""
|
||
"As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with "
|
||
"redirection MUST register their redirection URI values. Authorization "
|
||
"servers that support dynamic registration for redirect-based flows MUST "
|
||
"implement support for this metadata value."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:1
|
||
#: 2b675d8a76b64442baaf96288a99145f
|
||
msgid ""
|
||
"Array of the OAuth 2.0 response type strings that the client can use at the "
|
||
"authorization endpoint. These response types are defined as follows:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:5
|
||
#: 3f19f3d3bf244c669c336230f4e548e5
|
||
msgid ""
|
||
"\"code\": The authorization code response type defined in OAuth 2.0, Section "
|
||
"4.1."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:8
|
||
#: 8be17e9ef4c642a0a227974a40450da2
|
||
msgid ""
|
||
"\"token\": The implicit response type defined in OAuth 2.0, Section 4.2."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.response_types:11
|
||
#: 3be1d7f3ab82407ebcf77c9ad6294934
|
||
msgid ""
|
||
"If the authorization endpoint is used by the grant type, the value of this "
|
||
"parameter MUST be the same as the value of the \"response_type\" parameter "
|
||
"passed to the authorization endpoint defined in the grant type definition. "
|
||
"Authorization servers MAY allow for other values as defined in the grant "
|
||
"type extension process is described in OAuth 2.0, Section 4.5. If omitted, "
|
||
"the default is that the client will use only the \"code\" response type."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.scope:1
|
||
#: 99bf5a0735f3490eb63943c7926eb165
|
||
msgid ""
|
||
"String containing a space-separated list of scope values (as described in "
|
||
"Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting "
|
||
"access tokens."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.scope:5
|
||
#: d9c4d3be73ae454fbc08c0452c4cafba
|
||
msgid ""
|
||
"The semantics of values in this list are service specific. If omitted, an "
|
||
"authorization server MAY register a client with a default set of scopes."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.software_id:1
|
||
#: ee3bd26091c94945b33584e781c19370
|
||
msgid ""
|
||
"A unique identifier string (e.g., a Universally Unique Identifier (UUID)) "
|
||
"assigned by the client developer or software publisher used by registration "
|
||
"endpoints to identify the client software to be dynamically registered."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.software_id:6
|
||
#: 8fd0e02b12354b72b7175ade2536eac3
|
||
msgid ""
|
||
"Unlike \"client_id\", which is issued by the authorization server and SHOULD "
|
||
"vary between instances, the \"software_id\" SHOULD remain the same for all "
|
||
"instances of the client software. The \"software_id\" SHOULD remain the "
|
||
"same across multiple updates or versions of the same piece of software. The "
|
||
"value of this field is not intended to be human readable and is usually "
|
||
"opaque to the client and authorization server."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.software_version:1
|
||
#: 2d69ee9b36d244ec98fb0ca3135ac74f
|
||
msgid ""
|
||
"A version identifier string for the client software identified by "
|
||
"\"software_id\"."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.software_version:4
|
||
#: 0da082aab3354aad8196b87ea111796f
|
||
msgid ""
|
||
"The value of the \"software_version\" SHOULD change on any update to the "
|
||
"client software identified by the same \"software_id\". The value of this "
|
||
"field is intended to be compared using string equality matching and no other "
|
||
"comparison semantics are defined by this specification. The value of this "
|
||
"field is outside the scope of this specification, but it is not intended to "
|
||
"be human readable and is usually opaque to the client and authorization "
|
||
"server. The definition of what constitutes an update to client software "
|
||
"that would trigger a change to this value is specific to the software itself "
|
||
"and is outside the scope of this specification."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:1
|
||
#: e666c285e9d0483a8b06ed07b9596fd1
|
||
msgid ""
|
||
"String indicator of the requested authentication method for the token "
|
||
"endpoint. Values defined by this specification are:"
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:4
|
||
#: 75019e0ffa134fe0a48fc885130c97ee
|
||
msgid ""
|
||
"\"none\": The client is a public client as defined in OAuth 2.0, Section "
|
||
"2.1, and does not have a client secret."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:7
|
||
#: 6d1fcab0de3a41e18101687e93c45444
|
||
msgid ""
|
||
"\"client_secret_post\": The client uses the HTTP POST parameters as defined "
|
||
"in OAuth 2.0, Section 2.3.1."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:10
|
||
#: 75493a43244c4357842d2fdfa745f330
|
||
msgid ""
|
||
"\"client_secret_basic\": The client uses HTTP Basic as defined in OAuth 2.0, "
|
||
"Section 2.3.1."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of
|
||
#: canaille.oidc.basemodels.Client.token_endpoint_auth_method:13
|
||
#: 070320a7585e4d9ba744cbaed1593208
|
||
msgid ""
|
||
"Additional values can be defined via the IANA \"OAuth Token Endpoint "
|
||
"Authentication Methods\" registry established in Section 4.2. Absolute URIs "
|
||
"can also be used as values for this parameter without being registered. If "
|
||
"unspecified or omitted, the default is \"client_secret_basic\", denoting the "
|
||
"HTTP Basic authentication scheme as specified in Section 2.3.1 of OAuth 2.0."
|
||
msgstr ""
|
||
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:1
|
||
#: 95cc7b66c6da48e5a189a32abaa9c24e
|
||
msgid ""
|
||
"URL string that points to a human-readable terms of service document for the "
|
||
"client that describes a contractual relationship between the end-user and "
|
||
"the client that the end-user accepts when authorizing the client."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/basemodels.py:docstring of
|
||
#: canaille.oidc.basemodels.Consent:1 bf6c359aadbc4404ba1967b1b8d26255
|
||
msgid "Long-term user consent to an application."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/oidc/basemodels.py:docstring of
|
||
#: canaille.oidc.basemodels.Token:1 a20eaa516c854599a62222141346d76b
|
||
msgid "OpenID Connect token definition."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_account_lockability:1
|
||
#: 51e69cc91e5b411db5b8ebdb30702245
|
||
msgid "Indicate whether the user accounts can be locked."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_account_lockability:3
|
||
#: e8475984eb0f465f97109240832fc978
|
||
msgid ""
|
||
"It depends on the backend used by Canaille. This is only disabled for "
|
||
"OpenLDAP versions under 2.6."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_email_confirmation:1
|
||
#: db40ea1562de466b8cd314d95f04fb64
|
||
msgid "Indicate whether the user email confirmation is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_email_confirmation:3
|
||
#: 24739facc2bd4c75aaabe0ab4f870c52
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.EMAIL_CONFIRMATION <canaille.core."
|
||
"configuration.CoreSettings.EMAIL_CONFIRMATION>` configuration parameter."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_email_otp:1
|
||
#: 21ca21a9a0c240f7899bc11bca2da3b0
|
||
msgid "Indicate whether the email OTP authentication factor is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_email_otp:3
|
||
#: e064888816ad4e228797af005daa0c1b
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.EMAIL_OTP <canaille.core."
|
||
"configuration.CoreSettings.EMAIL_OTP>` configuration parameter."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_intruder_lockout:1
|
||
#: 1998dd6eda9e42f981d690ad9c3114d3
|
||
msgid "Indicate whether the intruder lockout feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_intruder_lockout:3
|
||
#: f673ed471ad545b18ac0693ba051f9ba
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.ENABLE_INTRUDER_LOCKOUT <canaille."
|
||
"core.configuration.CoreSettings.ENABLE_INTRUDER_LOCKOUT>` configuration "
|
||
"parameter."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_oidc:1 07510d9a21e7471a86b8cb67ebd3f818
|
||
msgid "Indicate whether the OIDC feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_oidc:3 aabe8d66effa4394829dee8ebdbc387b
|
||
msgid ""
|
||
"This feature is required to make Canaille an authorization server for other "
|
||
"applications and enable SSO. It is controlled by the :class:`CANAILLE_OIDC "
|
||
"<canaille.oidc.configuration.OIDCSettings>` configuration parameter, and "
|
||
"needs the ``oidc`` extra package to be installed."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_otp:1 aa9a89f7384f49e680ea30d8baa145b3
|
||
msgid "Indicate whether the OTP authentication factor is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_otp:3 97dbc9427f2942639739f4ca336b2c5f
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.OTP_METHOD <canaille.core."
|
||
"configuration.CoreSettings.OTP_METHOD>` configuration parameter, and needs "
|
||
"the ``otp`` extra package to be installed."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_password_recovery:1
|
||
#: be057526037b4c0ca9eeadd4d59faf00
|
||
msgid "Indicate whether the password recovery feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_password_recovery:3
|
||
#: 25817e283da2497d805bfcad9c0175cf
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.ENABLE_PASSWORD_RECOVERY <canaille."
|
||
"core.configuration.CoreSettings.ENABLE_PASSWORD_RECOVERY>` configuration "
|
||
"parameter."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_registration:1
|
||
#: 625966afc8b04095b75167729f416662
|
||
msgid "Indicate whether the user account registration is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_registration:3
|
||
#: 2805f75ef1fb4cd0832d589018d21548
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.ENABLE_REGISTRATION <canaille.core."
|
||
"configuration.CoreSettings.ENABLE_REGISTRATION>` configuration parameter."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_scim_server:1
|
||
#: aaecfeba0f154fe2977fa24558dac7f8
|
||
msgid "Indicate whether the SCIM server feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_scim_server:3
|
||
#: f585e4196fbb439189756d2389b6c9fc
|
||
msgid ""
|
||
"This feature is required to make Canaille a provisioning server. It is "
|
||
"controlled by the :attr:`CANAILLE_SCIM.ENABLE_SERVER <canaille.scim."
|
||
"configuration.SCIMSettings.ENABLE_SERVER>` configuration parameter, and "
|
||
"needs the ``scim`` extra package to be installed."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_sms_otp:1
|
||
#: 961e256a62724e12aafb8a09b127b0fd
|
||
msgid "Indicate whether the SMS OTP authentication factor is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_sms_otp:3
|
||
#: 9f61b04bb6874c56a8774ff9c10a23e3
|
||
msgid ""
|
||
"It is controlled by the :attr:`CANAILLE.SMS_OTP <canaille.core.configuration."
|
||
"CoreSettings.SMS_OTP>` configuration parameter, and needs the ``smpp`` extra "
|
||
"package to be installed."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_smtp:1 3a89ac39a9e643149dc0173956a001a3
|
||
msgid "Indicate whether the mail sending feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/features.py:docstring of
|
||
#: canaille.app.features.Features.has_smtp:3 28bd58a812e84704a83f61aa5e9f0832
|
||
msgid ""
|
||
"This feature is required to :attr:`validate user email addresses <canaille."
|
||
"app.features.Features.has_email_confirmation>`, send email OTP passwords "
|
||
"etc. It is controlled by the :attr:`CANAILLE.SMTP <canaille.core."
|
||
"configuration.CoreSettings.SMTP>` configuration parameter."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:2 25d974aba30140f4ad6e3445c3d71f50
|
||
msgid "Templates"
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:4 29dfdb16379245fbb820e7677490ee2a
|
||
msgid ""
|
||
"This references the template files, their role and the variables available "
|
||
"in their contexts. The intended audience for this reference is designers "
|
||
"wishing to build their custom Canaille theme."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:8 a9dc7731e37b4ca3900d9a269af917b2
|
||
msgid "Base"
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:10 0083cf8f344a4aebb0db66182082b38e
|
||
msgid "Those templates are shared by all the pages rendered by Canaille."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:13 ../references/templates.rst:35
|
||
#: ../references/templates.rst:53 b7454449e2d74b1ba858b35dd9506974
|
||
#: 017f3391e5324507b57d461e17c87379 d98c6d77a83046edba83238c1c41f765
|
||
msgid "Template files"
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 8da82919623541cf99ddb3719a66ce6c
|
||
msgid "The main template inherited by almost every other templates."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0302eac895db4e9192dcda1cf138e681
|
||
msgid "The current user, if logged in."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e3c9d7ed1b37441a9ea451dc09bf0256
|
||
msgid "The features enabled and available in Canaille."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 92d32aa698334d27bccff184e7f56f4a
|
||
msgid "The user locale."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 46c7365e792d4e44bd0964d401ba3d8d
|
||
msgid ""
|
||
"The Canaille instance defined in :attr:`~canaille.core.configuration."
|
||
"CoreSettings.NAME`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 4eb0dc013f754cd19b2b0ead85436fc2
|
||
msgid ""
|
||
"The URL of the instance logo defined in :attr:`~canaille.core.configuration."
|
||
"CoreSettings.LOGO`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 36b2a2855bb84f5a82440c1ce7a066af
|
||
msgid ""
|
||
"The URL of the instance favicon defined in :attr:`~canaille.core."
|
||
"configuration.CoreSettings.FAVICON`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b5502e90eb964459b7477ba8cfd4bb56
|
||
msgid ""
|
||
"Whether the page is boosted by :attr:`~canaille.core.configuration."
|
||
"CoreSettings.HTMX`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 abaac915defc44a39bb760b0fa1ca058
|
||
msgid "Whether to display the menu or not."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 4a846a9c1bf04b76bce93d3f51c2c63a
|
||
msgid "Whether the app has been launched in debug mode."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 9a6481ec7a844690a56433119b0a980a
|
||
msgid ""
|
||
"The error page. Displayed for all kinds of errors (not found, internal "
|
||
"server error etc.)."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 3c9236009d544093ab37e413f94d45b3
|
||
msgid "The code of the HTTP error (404, 500, etc.)"
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 072ab6b535b245c0b5c16c84a51e0293
|
||
msgid "The error code description."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 01363257f0fd47a9beba953b1580f6f2
|
||
msgid "An optional Font Awesome icon reference."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 5eee8575ceec4ab6bb88624d75a23204
|
||
msgid "Macros for Flask flash message rendering"
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 6df3858522a34bc181b21c3985dab099
|
||
msgid "Macros for form and form field rendering."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 45d3e7a61b2247f0b294c31fcdfd752b
|
||
msgid "Connects WTForms, Fomantic-UI and HTMX."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 29a5444bd2c545e3a16b992c005e6626
|
||
msgid "Macros for rendering table paginated with HTMX."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:22 ../references/templates.rst:40
|
||
#: ../references/templates.rst:58 4e87bb3eb49f4aef877cc6d31a2141b8
|
||
#: 10827c0bcbb14fc3a1b8054d412a9a7d a1745ac8a300467b9a58c9ae79837332
|
||
msgid "Forms"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1
|
||
#: 438cfba9a79f484b9721d0f91a75b81a
|
||
msgid ""
|
||
"Bases: :py:class:`~canaille.app.forms.I18NFormMixin`, :py:class:`~flask_wtf."
|
||
"form.FlaskForm`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/app/forms.py:docstring of canaille.app.forms.TableForm:1
|
||
#: 57e0185db0a449f485f8c651f063748f
|
||
msgid "A form for table rendering of object collections."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:30 162e7b075ee14548a43f9cff48b480a2
|
||
msgid "Core"
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:32 006bb138232740cdba8de572fe62fa24
|
||
msgid ""
|
||
"The core templates are displayed in the authentication and profile edition "
|
||
"pages."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e38aa98840094488a64497fcdbaa0264
|
||
msgid ""
|
||
"The 'About' page. This is an informational page, displaying the project "
|
||
"links."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 4c4ed92740f14deb87533cfa65ee80bf
|
||
msgid "The current Canaille version."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 d95f55f7f9ff4b5f9686be3dc9a7847f
|
||
msgid "The first login page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 25602187d8a1450d93af69c3a5cb8676
|
||
msgid "This page is displayed to users who do not have set a password yet."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b40d8dbabfb942b9a7e43fd2be5260fb
|
||
msgid "Password forgotten page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 168380710d5343d3ab70eaa096d1eaba
|
||
msgid ""
|
||
"This page displays a form asking for the email address of users who cannot "
|
||
"remember their password."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 c5a709077f1948dc85448baca9d505b2
|
||
msgid "Group edition page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1d741cc01a7b477ebe6484f595b1ae27
|
||
msgid "Displays the group edition or creation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1bb598284f574fadb4afdaa186936d45
|
||
msgid ""
|
||
":data:`None` in a creation context. In edition context this is the edited "
|
||
"group."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 cfb58971b75b4288af102ce52358148d
|
||
msgid "The group edition/creation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 6a01b239a7364e059ac20e5c32156147
|
||
msgid "The group list page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 8f596f7adabe4f35be79f5f12beb5e50
|
||
msgid "A :class:`~canaille.core.models.Group` pagination form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b7309cf53df840c1ba19e7177f27c99f
|
||
msgid "The invitation form page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 9fd33d67aac641e7a5c4fc9098332edc
|
||
msgid "Displays the invitation form to users with the invitation permission."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 06e9aef4cee8405f96f76c99084ab2ef
|
||
msgid "The invitation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 50937b6a974343eab8527a1977b6280a
|
||
msgid "The invitation acceptation page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 5781a7c918ac43d0842b01eb38b74cd5
|
||
msgid ""
|
||
"This page is displayed to users who have clicked on invitation links sent by "
|
||
"mail (or by other media). It displays a basic account creation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b447524d0fb1461b81bf503c13eb3788
|
||
msgid "The account creation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 6f56b461666743eabb55c179df25b96b
|
||
msgid "The login page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0160e1cfedb04735a642a373eba00f85
|
||
msgid "This page displays a form to get the user identifier."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 d2c554cbdaa941f089c6e1d178e2c40a
|
||
msgid "The login form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 5bf5c4af6d5949978459c9558e5959c0
|
||
msgid "User account creation page."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 052f0f9a73e54baa90e2beb51100c62f
|
||
msgid ""
|
||
"This template displays an account creation form. It is used in the "
|
||
"registration page, and in the manual account creation page available for "
|
||
"users with *user management* permission."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 32e07b796f2542448a5c4f651407e05e
|
||
msgid ""
|
||
"The user creation form. Dynamically built according to the user :attr:"
|
||
"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core."
|
||
"configuration.ACLSettings.WRITE` permissions. The available fields are those "
|
||
"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-"
|
||
"only."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 94e9b36ee7a04d4db509845398904973
|
||
msgid "The profile edition template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b86d69135b324d5b879980406f1b321b
|
||
msgid "Displays a user profile edition form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b7dedbaafbf4421dad65efa4edb64bc7
|
||
#: f4ab6a408b4846a28755a25c75d49e9d
|
||
msgid "The user that the form will edit."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e971a69e070545b6a3efb2ef229a5e78
|
||
#: 57372626a5504526a6602a9903be25f3
|
||
msgid ""
|
||
"The user profile edition form. Dynamically built according to the user :attr:"
|
||
"`~canaille.core.configuration.ACLSettings.READ` and :attr:`~canaille.core."
|
||
"configuration.ACLSettings.WRITE` permissions. The available fields are those "
|
||
"appearing in *READ* and *WRITE*, those only appearing in *READ* are read-"
|
||
"only."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 232f10ffd4634e3e8d30fd95968ff20e
|
||
msgid ""
|
||
"An email edition form. Used when the :attr:`~canaille.app.features.Features."
|
||
"has_email_confirmation` feature is enabled."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 6f083b8c024042d2afc6e830605fcb29
|
||
msgid "The profile settings template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1e1b6ca57eee407ea373fabfa6b68203
|
||
msgid "Displays the user settings edition form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 79751bf3182a4e728ce7c771919c012e
|
||
msgid "Whether the editor is allowed to delete the account of the edited user."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 f6fbc394bb0e4d23b2025ad9512ed7f8
|
||
msgid "The password reset template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 ac11fe027baa47d08507ce462ccf6521
|
||
msgid "Displays a password reset form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 022dc36a70434d0cbbc929e6389ed667
|
||
msgid "The password reset form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b78ecf9a56b94a57a3b3708a76eb115e
|
||
msgid "The user associated with the URL."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 2ad2199bf9a543bc89f2b1eab1575ed3
|
||
msgid "The secret link hash."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 d33d88c5756d4573bff6aed0f8b22df9
|
||
msgid "The multi-factor authentication initialization template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 fd9b649f626b4b3e93dc09db80ce6ca4
|
||
msgid "Display a QR-code and the OTP secret."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0f8aaa24949f428d91f05bb8ea510a5e
|
||
msgid "The user initializing the OTP."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 23c8614367454fe48500f84535d7345d
|
||
msgid "The OTP secret."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 ce26bc1edce5450e867c020efdf0879a
|
||
msgid "A QR-code image representing the OTP secret."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 5a2fdfda2f1346bf8027c51f73374f77
|
||
msgid "The users list."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 3578a4cf58144521ab2d0883f7aa772e
|
||
msgid "Displays a paginated list of :class:`~canaille.core.models.User`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 27156299d35549f6a45ff3b7ff201226
|
||
#: c6be1b3ce3d840fb953550cdaf6e1a29 5cb81767c1704260bc729322c4d6d013
|
||
#: 68d31f09582d4ec2ac3706a0f578de31
|
||
msgid "The paginated list form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 8f7a6ad97f984f7b90953f39a07c9bb5
|
||
msgid "The multi-factor authentication code verification template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1180b06a92c045c189a11016f3d869b3
|
||
msgid "Displays a form that asks for the multi-factor authentication code."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 653c3e233b7e41b689dd61a1a575768f
|
||
msgid "The code verification form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 c070afb39eb34d9b92862ae453876355
|
||
msgid "The username of the user attempting to log-in."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1995353d10d24e2e86c87864fc8b17cc
|
||
msgid "The authentication factor method."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/endpoints/forms.py:docstring of
|
||
#: canaille.core.endpoints.forms.CreateGroupForm:1
|
||
#: canaille.core.endpoints.forms.DeleteGroupMemberForm:1
|
||
#: canaille.core.endpoints.forms.EditGroupForm:1
|
||
#: canaille.core.endpoints.forms.EmailConfirmationForm:1
|
||
#: canaille.core.endpoints.forms.FirstLoginForm:1
|
||
#: canaille.core.endpoints.forms.ForgottenPasswordForm:1
|
||
#: canaille.core.endpoints.forms.InvitationForm:1
|
||
#: canaille.core.endpoints.forms.JoinForm:1
|
||
#: canaille.core.endpoints.forms.LoginForm:1
|
||
#: canaille.core.endpoints.forms.PasswordForm:1
|
||
#: canaille.core.endpoints.forms.PasswordResetForm:1
|
||
#: canaille.core.endpoints.forms.TwoFactorForm:1
|
||
#: ../../canaille/oidc/endpoints/forms.py:docstring
|
||
#: canaille.oidc.endpoints.forms.AuthorizeForm:1
|
||
#: canaille.oidc.endpoints.forms.ClientAddForm:1
|
||
#: canaille.oidc.endpoints.forms.LogoutForm:1
|
||
#: canaille.oidc.endpoints.forms.TokenRevokationForm:1
|
||
#: c6b8f8c4f50047c4ad6f8d99a6de0f22 66162ad74b1f491e9815987352e3f843
|
||
#: 3d9992e3d5db4bd0928836aca626058a 3b72a3535cb84d30a1e44d8b91b96903
|
||
#: b95ae3bb349946949cb639e4ef9dc552 47a533342bda4ba2a94c62a94fcb70ad
|
||
#: 738540f528d74bcba2787fc6e25a04e1 79b58787a6954501a9b171492c9ba562
|
||
#: cec55d6a542843f7bf4133f5e7160a89 ba39e17ba4834e048f841ce0689e48ba
|
||
#: d5d0648bb1b543a4bcd2f863306b2bf8 9075862fb6944b5d93ec7c848595e7be
|
||
#: 99b9891b663544458c6c24aafbaa4355 43741eee6aed4f1885f590c4baf20f83
|
||
#: 27c2b976b7ae469d9f82c19665688817 4d826f68173b4b47bac9d96a2abe03a7
|
||
msgid "Bases: :py:class:`~canaille.app.forms.Form`"
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/endpoints/forms.py:docstring of
|
||
#: canaille.core.endpoints.forms.CreateGroupForm:1
|
||
#: e4a35724e14d4581afe8c1d76256145b
|
||
msgid "The group creation form."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/endpoints/forms.py:docstring of
|
||
#: canaille.core.endpoints.forms.EditGroupForm:1
|
||
#: d3488ce4b62b455cbc5919a3592c5eaf
|
||
msgid "The group edition form."
|
||
msgstr ""
|
||
|
||
#: ../../canaille/core/endpoints/forms.py:docstring of
|
||
#: canaille.core.endpoints.forms.InvitationForm:1
|
||
#: a3b72e9abc8b44e9862481fe20209e3f
|
||
msgid "The user invitation form."
|
||
msgstr ""
|
||
|
||
#: ../references/templates.rst:50 16e60f31d5e549d8b0332ecdd2c8ec33
|
||
msgid "The OIDC templates are displayed in the OIDC consent pages."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 6d3187567112498bafed8211d4e63aa9
|
||
msgid "The list of authorizations."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 ab9ee4b402464232a04de5af272ec4a2
|
||
msgid ""
|
||
"Displays a paginated list of :class:`~canaille.oidc.basemodels."
|
||
"AuthorizationCode`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 af96456e16b5452da48beda8aa765d4d
|
||
msgid "Authorization details template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 60b6bca7f05c44c1863aeb04e3cc2f53
|
||
msgid ""
|
||
"Displays details about an :class:`~canaille.oidc.basemodels."
|
||
"AuthorizationCode`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 4ddc2e41ee114c249fcebd0f7a4e86f8
|
||
msgid "The detailed authorization."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0b979bab813e4ff39f47fc84cc204598
|
||
msgid "Consent request template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 567c68d08849430da9230de7c671e93a
|
||
msgid ""
|
||
"This templates is displayed to users accessing a new application that "
|
||
"requests to access to personal information. It lists the personal "
|
||
"information requested by the application, and offers the user to accept or "
|
||
"decline."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 21f53e087f2148f39791bfc780edefb7
|
||
msgid "The user whose consent is asked."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 48a0c4f1b88f4aaa9f10b158450a7bb1
|
||
msgid "The OIDC grant."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 f6bbf416c64247dbb06044aa221ab515
|
||
msgid "The client addition template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 acbe06b62ce6465b915b5678d5426a35
|
||
msgid ""
|
||
"Displays a form to create a new :class:`~canaille.oidc.basemodels.Client`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 3f0bb36f5d614523876371b9466e7861
|
||
#: fc6afaad7f0040ba8bc9e5018bf3ebdd
|
||
msgid "The client creation form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0c6c8a94ac7f41969c583a4e50c7f8c6
|
||
msgid "The client edition template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 fc89d67d55e84fa39dd02decf27c7ad0
|
||
msgid "Displays a form to edit a :class:`~canaille.oidc.basemodels.Client`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 69829ae75e504c15a7042fa0d0ca9a45
|
||
msgid "The edited client."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e4137e9e29764f91ae4314a2b1b55ea9
|
||
msgid "The list of OIDC clients."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e417b00de6f14e44b9fe8a0212f90d24
|
||
msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Client`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 1d341bd4be4c40f9b475cab7f3899eac
|
||
msgid "The OIDC logout template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 4968bf02e5154f7d84a89f9790696370
|
||
msgid ""
|
||
"Used during OIDC RP-initiated logout, when an user confirmation is needed."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b8bf82eb3cac45a4853dcaf6f5ac1589
|
||
msgid "The logout form."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 b6c0b03d71bf4873ac7b8565605d158e
|
||
msgid "The client requesting the logout."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 5bac6224d1084ae98930ff6ccdb785f4
|
||
msgid "The preconsented applications list."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 9c634a235c2c4991b5e7af9769279832
|
||
msgid ""
|
||
"Display a list of trusted clients for which it is implied that users don't "
|
||
"need to explicitly give their consent."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 c246254d28664995a358d16c42110b49
|
||
msgid "Description of the OIDC scopes."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 ae25aa3ac5a345e5a23f6770e33b3ba5
|
||
msgid "The scopes to hide."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 076793e823214f96b43e5066270c865c
|
||
msgid "The list of implicitly consented clients."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 81333f39450142f3b492f8fe7bd17957
|
||
msgid "The number of consents."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 08c463165ae2487eadebc7a4ae928bd0
|
||
msgid "The number of preconsented clients."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 e6d5d68657fa4c5f964a902844cf443e
|
||
msgid "The list of tokens."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 a67dbec8f19c460eac41e22b702668ac
|
||
msgid "Displays a paginated list of :class:`~canaille.oidc.basemodels.Token`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 7aa26abc05944ecd9afa89d71ca3f60a
|
||
msgid "The token edition template."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 0051850e1f994570be480414cb1a8e50
|
||
msgid ""
|
||
"Displays the details of a token :class:`~canaille.oidc.basemodels.Token`."
|
||
msgstr ""
|
||
|
||
#: ../../<autotemplate>:1 47975a2ecbce481f94ee843e3a77be73
|
||
msgid "A token revokation form."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:4 2934007ee99c4b5096855dd9bf47208b
|
||
msgid ""
|
||
"Canaille can read and save data in different databases. This page presents "
|
||
"the different database backends and their specificities:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:10 4d8d9b1634cf47eca9c118b3af6173df
|
||
msgid ""
|
||
"Canaille comes with a lightweight inmemory backend by default. It is used "
|
||
"when no other backend has been configured."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:13 5383f833c2634382a279cf9c2e9efff5
|
||
msgid ""
|
||
"This backend is only for test purpose and should not be used in production "
|
||
"environments."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:18 5c04f9416e954990a51ad770b994755d
|
||
msgid ""
|
||
"Canaille can use any database supported by `SQLAlchemy <https://www."
|
||
"sqlalchemy.org/>`_, such as sqlite, postgresql or mariadb."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:21 5cef0f1dda384284a256492c7b8dfcca
|
||
msgid ""
|
||
"It is used when the ``CANAILLE_SQL`` configuration parameter is defined. For "
|
||
"instance:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:29 cedc3bb2dba0427b93cf11791b189c96
|
||
msgid ""
|
||
"You can find more details on the SQL configuration in the :class:`dedicated "
|
||
"section <canaille.backends.sql.configuration.SQLSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:34 fd9f8f823d184c72840274fd13de5b91
|
||
msgid ""
|
||
"Canaille can use OpenLDAP as its main database. It is used when the "
|
||
"``CANAILLE_LDAP`` configuration parameter is defined. For instance:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:52 dbd09fe39b724102813c8d259ad336f6
|
||
msgid ""
|
||
"If you want to use TOTP/HOTP authentication, you will need to add the "
|
||
"``oathHOTPToken`` class to the user:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:58 fcbc8501c455465daa5142894408bb38
|
||
msgid ""
|
||
"You can find more details on the LDAP configuration in the :class:`dedicated "
|
||
"section <canaille.backends.ldap.configuration.LDAPSettings>`."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:61 2c710def18bc46539b2962ee1bde2bf6
|
||
msgid ""
|
||
"Currently, only the ``inetOrgPerson``, ``oathHOTPToken`` and "
|
||
"``groupOfNames`` schemas have been tested. If you want to use different "
|
||
"schemas or LDAP servers, adaptations may be needed. Patches are welcome."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:66 b7014bf888504dcc865871e8275190f6
|
||
msgid "OpenLDAP overlays integration"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:68 a67abbc0745e4c7e9353697969a4fbab
|
||
msgid "Canaille can integrate with several OpenLDAP overlays:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:71 b1eebe57d90648b3b24cb48cb49c5436
|
||
msgid "memberof / refint"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:73 6bb596696373483ab0a52f0e8169ab9e
|
||
msgid ""
|
||
"`memberof <https://www.openldap.org/doc/admin26/overlays."
|
||
"html#Reverse%20Group%20Membership%20Maintenance>`_ and `refint <https://www."
|
||
"openldap.org/doc/admin26/overlays.html#Referential%20Integrity>`_ overlays "
|
||
"are needed for the Canaille group membership to work correctly."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:77 ../tutorial/databases.rst:100
|
||
#: ../tutorial/databases.rst:123 bff8a12ffd4b4d179d6938a046810186
|
||
msgid "Here is a configuration example compatible with canaille:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:79 d8858049d6d44b7cae4cbd659f9f8ba2
|
||
msgid "memberof-config.ldif"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:83 830059290ddc4cf1b2249c45fc303b98
|
||
msgid "refint-config.ldif"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:87 ../tutorial/databases.rst:110
|
||
#: 4070700e524f481ba82662576453c6b3
|
||
msgid "You can adapt and load those configuration files with:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:96 e37e96d3eac048e191b4da59788b6096
|
||
msgid "ppolicy"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:98 88ed660b0098483fa77e880febad6b52
|
||
msgid ""
|
||
"If the `ppolicy <https://www.ietf.org/archive/id/draft-behera-ldap-password-"
|
||
"policy-11.html>`_ 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:102 0194f8cb96554ed9a209784cd1a5a10e
|
||
msgid "ppolicy-config.ldif"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:106 09776d76a5c54f6eb7d79e15a0dbed82
|
||
msgid "ppolicy.ldif"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:119 7bb7048ad0234c28a245626aa50d9c62
|
||
msgid "otp"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:121 89b862fd590f4c49a156ed490b778051
|
||
msgid ""
|
||
"If the `otp <https://www.openldap.org/software/man.cgi?query=slapo-otp>`_ "
|
||
"overlay is configured, you will be able to add one-time password "
|
||
"authentication in canaille."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:125 0194f8cb96554ed9a209784cd1a5a10e
|
||
msgid "otp-config.ldif"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:129 4070700e524f481ba82662576453c6b3
|
||
msgid "You can adapt and load this configuration file with:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:136 14e54c22e9114f30b809b1605c494c6f
|
||
msgid "You will also need to add the ``oathHOTPToken`` class to the user:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:2 f396d7b4fa884f55bf66b57b6c046fdb
|
||
msgid "Deployment"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:5 2cbff8a64b41470396973c1f66482110
|
||
msgid "Application service"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:7 d60be98207bd489299d7492480a091c5
|
||
msgid ""
|
||
"After having finished Canaille installation you have to run it in a WSGI "
|
||
"application server. Here are some WSGI server configuration examples you can "
|
||
"pick. Do not forget to update the paths."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:11 cf41e4599bea477a8b6742ed38c09555
|
||
msgid "gunicorn"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:15 9f4888747a6d4f5d85d9b94bc2814aff
|
||
msgid "Write a gunicorn configuration sample file."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:18 beb61a6d85dc407c923f0a1797571b4b
|
||
msgid "uwsgi"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:42 804b59080cfb46a5bece65e9dfe52ae4
|
||
msgid "Webserver"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:44 3fd8ef72a9db483aaa18397b136708a4
|
||
msgid ""
|
||
"Now you have to plug your WSGI application server to your webserver so it is "
|
||
"accessible on the internet. Here are some webserver configuration examples "
|
||
"you can pick:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:48 40d9837c5cdd4c9faf94797e578e409d
|
||
msgid "Nginx"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:114 5407fc49df8b4871a993d95ebe6b216e
|
||
msgid "Apache"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:153 9e1ca64c07984a218f094949ed99bc6e
|
||
msgid "Recurrent jobs"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:155 283551b28f2d465a830885e57a802334
|
||
msgid ""
|
||
"You might want to clean up your database to avoid it growing too much. You "
|
||
"can regularly delete expired tokens and authorization codes with:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:164 3a91c9769ca04ed289ef4e08d71c84e0
|
||
msgid "Webfinger"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:166 c0c2aa060ee743e797e0e0e69ed34aad
|
||
msgid ""
|
||
"You may want to configure a `WebFinger`_ endpoint on your main website to "
|
||
"allow the automatic discovery of your Canaille installation based on the "
|
||
"account name of one of your users. For instance, suppose your domain is "
|
||
"``mydomain.example`` and your Canaille domain is ``auth.mydomain.example`` "
|
||
"and there is a user ``john.doe``. A third-party application could require to "
|
||
"authenticate the user and ask them for a user account. The user would give "
|
||
"their account ``john.doe@mydomain.example``, then the application would "
|
||
"perform a WebFinger request at ``https://mydomain.example/.well-known/"
|
||
"webfinger`` and the response would contain the address of the authentication "
|
||
"server ``https://auth.mydomain.example``. With this information the third "
|
||
"party application can redirect the user to the Canaille authentication page."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:168 d4f07f118d4443bcbd44e55144cf4d1f
|
||
msgid ""
|
||
"The difficulty here is that the WebFinger endpoint must be hosted at the top-"
|
||
"level domain (i.e. ``mydomain.example``) while the authentication server "
|
||
"might be hosted on a sublevel (i.e. ``auth.mydomain.example``). Canaille "
|
||
"provides a WebFinger endpoint, but if it is not hosted at the top-level "
|
||
"domain, a web redirection is required on the ``/.well-known/webfinger`` path."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:170 b305def4f6e74643b1c47e5491e46126
|
||
msgid "Here are configuration examples for Nginx or Apache:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:172 f07e30950c0443ea830fb6d01181cbce
|
||
msgid "Nginx webfinger configuration for a top level domain"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:181 f166862da12146e286d09f1189b44637
|
||
msgid "Apache webfinger configuration for a top level domain"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:191 ed7f25a6ab90437984c0249217556b7a
|
||
msgid "Create the first user"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/deployment.rst:193 e983e9c5998a475e9472c54742b25c9f
|
||
msgid ""
|
||
"Once canaille is installed, soon enough you will need to add users. To "
|
||
"create your first user you can use the :ref:`canaille create <cli_create>` "
|
||
"CLI."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/index.rst:2 40de96b13f0b46ba88769f9f0c91bece
|
||
msgid "Tutorial"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:2 990b0c4570294a4c914942072b835544
|
||
msgid "Installation"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:6 1f5645b8ce114b08abc62b4f03e8d613
|
||
msgid ""
|
||
"Canaille is under heavy development and may not fit a production environment "
|
||
"yet."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:8 a76d3b71c19b4667a34e1d4b68261499
|
||
msgid ""
|
||
"The installation of canaille consist in several steps, some of which you can "
|
||
"do manually or with command line tool:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:11 de05573555224e75869a68ac41471c97
|
||
msgid "Get the code"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:13 8d5ce5f2ad284774a673cad8e1be2cc5
|
||
msgid ""
|
||
"As the moment there is no distribution package for canaille. However, it can "
|
||
"be installed with the ``pip`` package manager. Let us choose a place for the "
|
||
"canaille environment, like ``/opt/canaille/env``."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:24 5e8dbf51cc8e401d8e7f2738c4c1e500
|
||
msgid "Extras"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:26 ff09c579e2834394992e462c1a7830e6
|
||
msgid "Canaille provides different package options:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:28 fba9a7d4ab8f42c1ba19ec58827c49bb
|
||
msgid "`front` provides all the things needed to produce the user interface;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:29 3c368569b3434d0c8821fcc5aa2a9fcd
|
||
msgid "`oidc` provides the dependencies to perform OAuth2/OIDC authentication;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:30 d2fa3adf12b04e879e8eb1ad5a86d131
|
||
msgid "`ldap` provides the dependencies to enable the LDAP backend;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:31 9f0ac2527c844d26999ac4722b7a3062
|
||
msgid "`sqlite` provides the dependencies to enable the SQLite backend;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:32 9f8652296fdd460d9d0885fd934a924f
|
||
msgid ""
|
||
"`postgresql` provides the dependencies to enable the PostgreSQL backend;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:33 dba3b5d89e9e46c6b3774b01bf2ae122
|
||
msgid "`mysql` provides the dependencies to enable the MySQL backend;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:34 3284b40cd5ff4177a9369e471dcd1de2
|
||
msgid "`sentry` provides sentry integration to watch Canaille exceptions;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:35 11d315c8ffbb415cab5068a2fb287590
|
||
msgid ""
|
||
"`otp` provides the dependencies to enable one-time password authentication;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:36 c60670612f384704ad46fba12f41dcf9
|
||
msgid "`sms` provides the dependencies to enable sms sending;"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:37 dfd39313c050407193deac1f01f23e54
|
||
msgid "`all` provides all the extras above."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:39 3d0f7f47cc1a469e9762578aed91f002
|
||
msgid "They can be installed with:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:46 b7732a260ca84ba3a4130bd6cb0d1619
|
||
msgid "Configure"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:48 86df5b7acf954ddfbb2982dbe0a51da1
|
||
msgid ""
|
||
"Choose a path where to store your configuration file. You can pass any "
|
||
"configuration path with the ``CONFIG`` environment variable."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:56 042753d9c5704f21b0da35d38a17a620
|
||
msgid ""
|
||
"You should then edit your configuration file to adapt the values to your "
|
||
"needs. Look at the configuration details in the :doc:`configuration <../"
|
||
"references/configuration>` page."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:59 a87138181fe64cd9891206619cad6d2d
|
||
msgid "Install"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:61 2a7cde9a8ef54f6fb6b527734b5e471d
|
||
msgid ""
|
||
"The :ref:`install command <cli_install>` will apply most of the things "
|
||
"needed to get Canaille working. Depending on the configured :doc:`database "
|
||
"<databases>` it will create the SQL tables, or install the LDAP schemas for "
|
||
"instance."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:70 faefbbda355349e19671492f478d3153
|
||
msgid "Check"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/install.rst:72 ab77edb446f44686bf26ef04fbf3dc7d
|
||
msgid ""
|
||
"After a manual installation, you can check your configuration file using "
|
||
"the :ref:`check command <cli_install>`:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:2 96b0ed3d70cf436a80f82cf3cd89bf37
|
||
msgid "Provisioning"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:4 a4047f8d0f904f6799d549e2f65181b2
|
||
msgid ""
|
||
"Canaille partially implement the :rfc:`SCIM <7642>` provisioning protocol at "
|
||
"the ``/scim/v2`` endpoint."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:6 969c0c2d7d2a47de8fb1c7441ec62e2d
|
||
msgid ""
|
||
"At the moment, only the server part is implemented. It allows client "
|
||
"applications to manage user profiles directly in Canaille."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:11 37c0e4ee9eb54f9f94754fec060e0ac5
|
||
msgid ""
|
||
"Some SCIM :ref:`features and endpoints <scim_unimplemented>` are not "
|
||
"implemented. In addition to these, Canaille will implement in the future:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:14 a5d6aea95b444cbb9d10731986ae66ac
|
||
msgid ""
|
||
"Access control for clients on the SCIM API endpoint, to finely manage "
|
||
"permissions depending on clients."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:15 98d88ce07bc640bcafedee10c9bbc98f
|
||
msgid ""
|
||
"Client-side implementation, to broadcast user and groups modifications among "
|
||
"all the clients."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:20 706556a4f4de43658b7ee3583115216a
|
||
msgid ""
|
||
"To allow clients to access the SCIM API, the client must have the "
|
||
"``client_credentials`` grant type configured. This allows clients to ask an "
|
||
"authentication token on their own behalf and use this token to perform "
|
||
"queries. Currently, user tokens are not supported."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:24 5abc69c6a6ff4cd48e3f2b01cdaa1a52
|
||
msgid ""
|
||
"Then the :attr:`CANAILLE_SCIM.ENABLE_SERVER <canaille.scim.configuration."
|
||
"SCIMSettings.ENABLE_SERVER>` configuration parameter must be enabled."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:33 08c5f12f847f4376993010f11b7055e6
|
||
msgid "Implementation details"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:35 163f28f6d3cf4d94bc60bddec6b1b25e
|
||
msgid ""
|
||
"Due to technical reasons, the Canaille *User* and *Group* resources "
|
||
"implementation subtly differs from the :rfc:`RFC7643 <7643>` definitions:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:37 5e235bded8ba46ae94fe89b82341e3a9
|
||
msgid "``User.userName`` is immutable (while it is read-write in RFC7643)."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:38 5c0be56ebf754660b7702622cd085221
|
||
msgid "``User.name.familyName`` is required (while it is optional in RFC7643)."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:39 35cfdbc7fd954036805a8b64bc46ae90
|
||
msgid "``Group.displayName`` is required (while it is optional in RFC7643)."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:40 7490ca87a3fe4b5f9fdc80991e74a130
|
||
msgid ""
|
||
"``Group.members`` is required (while it is optional in RFC7643), i.e. groups "
|
||
"cannot be empty."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:43 432c05f5057e4d6ab93225079865e789
|
||
msgid "Debugging"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:45 ecce1ab63ddd4b1a8dd3c7c65e9a990c
|
||
msgid ""
|
||
"To check what data are exposed through the Canaille SCIM API, you need a "
|
||
"*client token* and a SCIM client application. To generate a client token, "
|
||
"you can simply manually create a token from the button on the client "
|
||
"administration page. Then, we recommend the use of :doc:`scim2-cli:index` to "
|
||
"interact with the API:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:49 0494884602794d818953870e734c721b
|
||
msgid "scim2-cli usage example"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:2 1e8d2a5169ed4313896d1a9c33dee1ab
|
||
msgid "Theming"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:4 8b9d02343d7b48a08704a60b2394672a
|
||
msgid ""
|
||
"Canaille comes with a default theme based on `Fomantic UI <https://fomantic-"
|
||
"ui.com/>`__ but any part of the UI can be slightly modified or even "
|
||
"entierely rewritten if needed."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:7 aaa944c2e0b64fc7a9d04703be543cc8
|
||
msgid "Custom templates"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:9 d431b58edd7c4ab5960f4889ad4bf8b1
|
||
msgid ""
|
||
"To use a custom theme, set the :attr:`~canaille.core.configuration."
|
||
"CoreSettings.THEME` to a path to a directory where you will host your custom "
|
||
"templates."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:11 f70b37ff511248529ee7801adeae3f40
|
||
msgid ""
|
||
"Then in this directory, create new files for templates you want to override. "
|
||
"The exhaustive list of templates is available in the :doc:`reference <../"
|
||
"references/templates>`. You must respect the template file paths. So for "
|
||
"instance if you want to customize the *about page*, you need to do it in a "
|
||
"``core/about.html`` file. You can inherit from the origin template by using "
|
||
"the Jinja ``extend`` directive."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:15 3abcbfdad0cf41628a3bb4e27789bdf0
|
||
msgid "core/about.html"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:26 19d7d3280a9b4cc8a868428d2ef5b12f
|
||
msgid "Custom style sheets"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:28 13f029143d7a41ee97bff9bab5c6696d
|
||
msgid ""
|
||
"If you simply want to put your custom style sheets in the default theme, you "
|
||
"can just push it in the ``base.html`` template. Put your file in a "
|
||
"``static`` subdirectory of your theme, for instance ``static/css/custom."
|
||
"css`` and reference it with ``theme_static``."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:31 5494d679f6294826a4fe0ec3307f1d90
|
||
msgid "base.html"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:43 eb8604a736ba49c7a5268aff30c7045f
|
||
msgid ""
|
||
"To write your custom theme and check how it is rendered, you can put the "
|
||
"path to your theme in a ``.env`` file and run the Canaille demo instance, as "
|
||
"described in the :ref:`contributing guide <local_environment>`"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/theming.rst:50 f2e3066341864ffdb46f79b737fd491c
|
||
msgid "Run the demo instance"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:2 d5cca3688aea45bb9ed015f84d324407
|
||
msgid "Troubleshooting"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:5 584a62a0d78b4af391bfc8bd916e3934
|
||
msgid "The web interface throws useless error messages"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:7 acc3175f98324e73b0154a833f4291de
|
||
msgid ""
|
||
"Unless the current user has admin :class:`permissions <canaille.core."
|
||
"configuration.Permission>`, or the installation is in :attr:`~canaille.app."
|
||
"configuration.RootSettings.DEBUG` mode, error messages won't be too "
|
||
"technical. For instance, you can see *The request you made is invalid*. To "
|
||
"enable detailed error messages, you can **temporarily** enable the :attr:"
|
||
"`~canaille.app.configuration.RootSettings.DEBUG` configuration parameter."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:12 358b28e47d4a4b48ba2bde7ddd4bc5f3
|
||
msgid "How to manually install LDAP schemas?"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:16 5e241c1fdd044454a5a27a9d4d609a6c
|
||
msgid ""
|
||
"Schema installation can be automatically done using the :ref:`install "
|
||
"command <cli_install>`."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:18 fa20dff6817848489fee9434d3e8c154
|
||
msgid "As of OpenLDAP 2.4, two configuration methods are available:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:20 536b6d4fabea43d48240f3b1b4e256c6
|
||
msgid ""
|
||
"The `deprecated <https://www.openldap.org/doc/admin26/slapdconf2.html>`_ "
|
||
"one, based on a configuration file (generally ``/etc/ldap/slapd.conf``);"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:21 2681e5ed98de4633ab3e958980570c61
|
||
msgid ""
|
||
"The new one, based on a configuration directory (generally ``/etc/ldap/slapd."
|
||
"d``)."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:23 e623df73a33a4425874322d64990dd09
|
||
msgid ""
|
||
"Depending on the configuration method you use with your OpenLDAP "
|
||
"installation, you need to chose how to add the canaille schemas:"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:26 7fa64ce5f9834bfc8a84a6b147776135
|
||
msgid "Old fashion: Copy the schemas in your filesystem"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:35 89ec7d1a5b9c488898dd0aeec512eb0f
|
||
msgid "New fashion: Use slapadd to add the schemas"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:37 cf355b0d0d224146b9aa9bde63c3285b
|
||
msgid "Be careful to stop your ldap server before running ``slapadd``"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:46 b688808b89a1486ea46f0a30671f0772
|
||
msgid "How to manually generate the OIDC keypair?"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:50 fe622e23c48a4ec0ba3a9e00e24cfb88
|
||
msgid ""
|
||
"The keypair generation can be automatically done using the :ref:`install "
|
||
"command <cli_install>`."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/troubleshooting.rst:52 2467c8ae6d2a4ba19056d44a89656984
|
||
msgid ""
|
||
"Canaille needs a key pair to sign OIDC tokens. You can customize those "
|
||
"commands, as long as they match the ``JWT`` section of your configuration "
|
||
"file."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:4 dde73820d8ff46128f0ae5a245d4f212
|
||
msgid "Use cases"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:6 936471ec6e494f839a45d1a5048ddbe9
|
||
msgid ""
|
||
"Canaille is a lightweight IAM for simple needs. Here are a few use cases you "
|
||
"might recognize in, where Canaille would fit your needs."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:10 0c06bc8fc0754db6bdfbae05fe718b2e
|
||
msgid "OpenID Connect provider on top of a LDAP directory"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:12 0ec337c5784a4dc296538609b9d75dd6
|
||
msgid ""
|
||
"Your organization has an historic :ref:`LDAP directory <feature_databases>` "
|
||
"and you want to add a :ref:`OpenID Connect <feature_oidc>` :abbr:`SSO "
|
||
"(Single Sign-On)` layer on top of it, so users can use all your application "
|
||
"while signin-in only once, without any data migration."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:15 35bb9bbb50064dc7a5383c9d5371adfd
|
||
msgid "Profile edition of LDAP users"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:17 87226e31a4ef425585e8de20647d72a3
|
||
msgid ""
|
||
"Your organization has a :ref:`LDAP directory <feature_databases>` and you "
|
||
"want to provide a way to your users to :ref:`edit their personal information "
|
||
"<feature_profile_management>` by themselves, without requiring any "
|
||
"administrator intervention."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:20 22ec6d0c58ed413b80cd6aca23f637b6
|
||
msgid "Password recovery with a LDAP directory"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:22 46f418970c7640f9ace069002ed337bd
|
||
msgid ""
|
||
"Your organization has an historic :ref:`LDAP directory <feature_databases>` "
|
||
"and you want to provide a way to your users to :ref:`recover their password "
|
||
"<feature_password_recovery>` when they cannot remember it, without any "
|
||
"administrator intervention."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:25 f44f325b29594fc7b31521d259e27d5f
|
||
msgid "A lightweight IAM for unit testing"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:27 c9f537fbf3cd4b3cb0e6d140b8a2327b
|
||
msgid ""
|
||
"You are :ref:`developing <feature_development>` an application relying on "
|
||
"OAuth2 or OpenID Connect to authenticate the users. You don't want to mock "
|
||
"the calls to the identity provider in your unit tests, but you want to :ref:"
|
||
"`perform real OAuth2/OIDC requests <feature_testing>`, and test your "
|
||
"application against different identity provider tunings."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:30 5b9b8e07b9154150a105088cc630ce6a
|
||
msgid "A lightweight IAM for developing"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:32 7a4ff703b94e4706b5123edb0c2abe51
|
||
msgid ""
|
||
"You are :ref:`developing <feature_development>` an application relying on "
|
||
"OAuth2 or OpenID Connect to authenticate the users. You need a :ref:`IAM "
|
||
"server to develop <feature_development>` locally, but your old computer "
|
||
"cannot bear launching a full Keycloak in a Docker container."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:35 e594e15fba204d65a3f483c36e7c0aab
|
||
msgid "A lightweight IAM for CIs"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:37 ff03e5a191564f90af81c7d210a3de24
|
||
msgid ""
|
||
"You are :ref:`developing <feature_development>` an application relying on "
|
||
"OAuth2 or OpenID Connect to authenticate the users. You need a IAM server "
|
||
"that could can populate with custom data, and integrate in your :ref:"
|
||
"`continuous integration environment <feature_ci>`."
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:40 8a37de08f6594334a3ba6ed2f9a3b71e
|
||
msgid "A CLI to quickly edit LDAP directory users"
|
||
msgstr ""
|
||
|
||
#: ../usecases.rst:42 b9d55e6eeca547aabb9bbfef3998f6d2
|
||
msgid ""
|
||
"Your organization has an historic :ref:`LDAP directory <feature_databases>`. "
|
||
"You are tired to deal with *ldif* syntax to manage your users and group and "
|
||
"would prefer a simple human-readable CLI."
|
||
msgstr ""
|