forked from Github-Mirrors/canaille
6022 lines
210 KiB
Text
6022 lines
210 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.
|
||
#
|
||
#, fuzzy
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: canaille 0.0.56\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2024-12-12 22:02+0100\n"
|
||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||
"Language-Team: LANGUAGE <LL@li.org>\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.57] - Unreleased"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:5
|
||
#: ../../CHANGES.rst:34
|
||
#: ../../CHANGES.rst:62
|
||
#: ../../CHANGES.rst:81
|
||
#: ../../CHANGES.rst:88
|
||
#: ../../CHANGES.rst:107
|
||
#: ../../CHANGES.rst:167
|
||
#: ../../CHANGES.rst:193
|
||
#: ../../CHANGES.rst:208
|
||
#: ../../CHANGES.rst:257
|
||
#: ../../CHANGES.rst:283
|
||
#: ../../CHANGES.rst:302
|
||
#: ../../CHANGES.rst:310
|
||
#: ../../CHANGES.rst:319
|
||
#: ../../CHANGES.rst:345
|
||
#: ../../CHANGES.rst:380
|
||
#: ../../CHANGES.rst:406
|
||
#: ../../CHANGES.rst:455
|
||
#: ../../CHANGES.rst:483
|
||
#: ../../CHANGES.rst:513
|
||
#: ../../CHANGES.rst:569
|
||
#: ../../CHANGES.rst:602
|
||
#: ../../CHANGES.rst:623
|
||
#: ../../CHANGES.rst:633
|
||
#: ../../CHANGES.rst:656
|
||
#: ../../CHANGES.rst:723
|
||
#: ../../CHANGES.rst:761
|
||
#: ../../CHANGES.rst:778
|
||
#: ../../CHANGES.rst:814
|
||
#: 91a8054efa234209906812cdd41bd586
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
#: 2e9453d4722144fd9ad7f53b28a7cb37
|
||
msgid "Added"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:6
|
||
#: cdab69b7537c452caa3eadb572993a40
|
||
msgid "Multi-factor authentication :issue:`47`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:7
|
||
#: 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:12
|
||
#: 05060126fea740ef82fba8246132aa6e
|
||
msgid "Password compromission check :issue:`179`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:13
|
||
#: 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:17
|
||
#: 2cfcbdba2e9541dbab610bc724a2683a
|
||
msgid "Implement OIDC client_credentials flow. :issue:`207`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:18
|
||
#: 1e36a8464f6045708cf07b39bcdfea1c
|
||
msgid "Button in the client admin page to create client tokens."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:19
|
||
#: c69d8b01e4194d5b9268b84ab81849d6
|
||
msgid "Basic SCIM implementation. :issue:`116` :pr:`197`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:22
|
||
#: ../../CHANGES.rst:42
|
||
#: ../../CHANGES.rst:55
|
||
#: ../../CHANGES.rst:67
|
||
#: ../../CHANGES.rst:92
|
||
#: ../../CHANGES.rst:100
|
||
#: ../../CHANGES.rst:148
|
||
#: ../../CHANGES.rst:174
|
||
#: ../../CHANGES.rst:226
|
||
#: ../../CHANGES.rst:263
|
||
#: ../../CHANGES.rst:332
|
||
#: ../../CHANGES.rst:350
|
||
#: ../../CHANGES.rst:388
|
||
#: ../../CHANGES.rst:427
|
||
#: ../../CHANGES.rst:462
|
||
#: ../../CHANGES.rst:505
|
||
#: ../../CHANGES.rst:609
|
||
#: ../../CHANGES.rst:663
|
||
#: ../../CHANGES.rst:695
|
||
#: ../../CHANGES.rst:709
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
#: 254357b217fe4a309d66a400497a104a
|
||
msgid "Changed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:23
|
||
#: bb196cd8528b48628628ab53c5288b49
|
||
msgid "PostgreSQL and MySQL extras does not rely on libraries that need to be compiled."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:24
|
||
#: 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:27
|
||
#: 045b041136be49de8d54674ad57fea87
|
||
msgid "[0.0.56] - 2024-11-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:30
|
||
#: ../../CHANGES.rst:72
|
||
#: ../../CHANGES.rst:111
|
||
#: ../../CHANGES.rst:119
|
||
#: ../../CHANGES.rst:127
|
||
#: ../../CHANGES.rst:134
|
||
#: ../../CHANGES.rst:141
|
||
#: ../../CHANGES.rst:155
|
||
#: ../../CHANGES.rst:185
|
||
#: ../../CHANGES.rst:198
|
||
#: ../../CHANGES.rst:216
|
||
#: ../../CHANGES.rst:235
|
||
#: ../../CHANGES.rst:243
|
||
#: ../../CHANGES.rst:269
|
||
#: ../../CHANGES.rst:277
|
||
#: ../../CHANGES.rst:297
|
||
#: ../../CHANGES.rst:327
|
||
#: ../../CHANGES.rst:359
|
||
#: ../../CHANGES.rst:367
|
||
#: ../../CHANGES.rst:393
|
||
#: ../../CHANGES.rst:413
|
||
#: ../../CHANGES.rst:437
|
||
#: ../../CHANGES.rst:447
|
||
#: ../../CHANGES.rst:468
|
||
#: ../../CHANGES.rst:476
|
||
#: ../../CHANGES.rst:499
|
||
#: ../../CHANGES.rst:522
|
||
#: ../../CHANGES.rst:534
|
||
#: ../../CHANGES.rst:543
|
||
#: ../../CHANGES.rst:552
|
||
#: ../../CHANGES.rst:561
|
||
#: ../../CHANGES.rst:581
|
||
#: ../../CHANGES.rst:588
|
||
#: ../../CHANGES.rst:638
|
||
#: ../../CHANGES.rst:646
|
||
#: ../../CHANGES.rst:671
|
||
#: ../../CHANGES.rst:679
|
||
#: ../../CHANGES.rst:687
|
||
#: ../../CHANGES.rst:700
|
||
#: ../../CHANGES.rst:714
|
||
#: ../../CHANGES.rst:746
|
||
#: ../../CHANGES.rst:769
|
||
#: ../../CHANGES.rst:800
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 839f52c15ed94f0ba4a9356f392f728b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
#: 13ee0de3f7db4046b8399917e8d52e0b
|
||
msgid "Fixed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:31
|
||
#: 10c707b06b884b168b2dd26bffd7bf76
|
||
msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:35
|
||
#: 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:37
|
||
#: cdab69b7537c452caa3eadb572993a40
|
||
msgid "Password strength visual indicator. :issue:`174`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:38
|
||
#: 2ae6bad543d64621886630d3db7832e6
|
||
msgid "Security events logs. :issue:`177`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:39
|
||
#: 40ab5f1ed3bc406fb662d0025e5b3212
|
||
msgid "Support for Python 3.13. :pr:`186`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:43
|
||
#: c7940e351aac4939b964ccb80cebd616
|
||
msgid "Update to `HTMX` 2.0.3. :pr:`184`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:44
|
||
#: dfc1569ae0ec412d86503a0695522fa5
|
||
msgid "Migrate the Python project management tool from poetry to uv. :pr:`187`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:45
|
||
#: 40c97bec2553487fa62efc486d3ee444
|
||
msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:48
|
||
#: ../../CHANGES.rst:398
|
||
#: ../../CHANGES.rst:806
|
||
#: bc1a20b5783a4fe38fa201438a8075e5
|
||
#: bc1a20b5783a4fe38fa201438a8075e5
|
||
#: bc1a20b5783a4fe38fa201438a8075e5
|
||
msgid "Removed"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:49
|
||
#: 3f97d00692d047dbbecb5c18a2d45b07
|
||
msgid "End support for Python 3.9. :pr:`179`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:52
|
||
#: 4a57056601f148969254d2f049e0f460
|
||
msgid "[0.0.55] - 2024-08-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:56
|
||
#: a037ad5da20049ad82e9f9b0d766cfbb
|
||
msgid "Use poetry-core build backend. :pr:`178`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:59
|
||
#: d6bf96b8e5cc4a6f8e099b48c1951a6a
|
||
msgid "[0.0.54] - 2024-07-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:63
|
||
#: 062bcc176aac499384187fcb06e2a00b
|
||
msgid "Group member removal can be achieved from the group edition page. :issue:`192`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:64
|
||
#: 8680469549c74d37a52b1c6252c74d57
|
||
msgid "Model management commands. :issue:`117` :issue:`54`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:68
|
||
#: c19428c67d8f4d198d0ab97defe14fb3
|
||
msgid "Model `identifier_attributes` are fixed."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:69
|
||
#: 571f38b1484b43e2beed6f33eb675700
|
||
msgid "Bump to `HTMX` 1.9.12. :pr:`172`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:74
|
||
#: 9e54da898699471194477836791f08a6
|
||
msgid "Dark theme colors for better readability."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:75
|
||
#: 4e0f2a8e03a447e59cb0a2b0e6d208f1
|
||
msgid "Crash for passwordless users at login when no SMTP server was configured."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:78
|
||
#: a9273241db7e4137bac5973b20e3ec5d
|
||
msgid "[0.0.53] - 2024-04-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:82
|
||
#: 17fbf739a68a4e59b5cc6da8befa1c6f
|
||
msgid "`env_prefix` `create_app`` variable can select the environment var prefix."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:85
|
||
#: 7bdc8f732053463b95353cdf5c994838
|
||
msgid "[0.0.52] - 2024-04-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:89
|
||
#: bc7d1037cdfd40a69044f465467f6834
|
||
msgid "`env_file` create_app variable can customize/disable the .env file."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:93
|
||
#: 9685a5e5a13147f093ac57e2039fe11b
|
||
msgid "Locked users cannot be impersonated anymore."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:94
|
||
#: 1b83a24a97384c2faab67e915701e6b2
|
||
msgid "Minimum Python requirement is 3.9."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:97
|
||
#: e88f01e3f89f45f2a63b456f8e304d3d
|
||
msgid "[0.0.51] - 2024-04-09"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:101
|
||
#: aae3d126989840578ec2b08058aad688
|
||
msgid "Display the menu bar on error pages."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:104
|
||
#: 22b11dc18595450fa5e7fe5f35824ebe
|
||
msgid "[0.0.50] - 2024-04-09"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:108
|
||
#: fc1bc503759c4beb943e9dcbf0c4a9cf
|
||
msgid "Sign in/out events are logged in. :issue:`177`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:112
|
||
#: cfe0182123c94bcc9ee847739bd2e114
|
||
msgid "`HTMX` and `JAVASCRIPT` configuration settings."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:113
|
||
#: 3bc7c83763d34549bac91df86a22b3a0
|
||
msgid "Compatibility with old sessions IDs."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:116
|
||
#: cdee0bee34024d21bace2d77ff637ed9
|
||
msgid "[0.0.49] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:120
|
||
#: f9c9585c305d47628adffcae287229d2
|
||
msgid "LDAP user group removal."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:121
|
||
#: c25c5c6a9cca4061be6502cae5e86ba2
|
||
msgid "Display an error message when trying to remove the last user from a group."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:124
|
||
#: 5e0c66b55801444497954839297b97eb
|
||
msgid "[0.0.48] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:128
|
||
#: bd9920a130844ee897863a6b649484e2
|
||
msgid "LDAP ``objectClass`` guessing exception."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:131
|
||
#: 93cf829932204311ba399ae713aff29f
|
||
msgid "[0.0.47] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:135
|
||
#: b7a5d3351a334b0592b12373e1c7afa6
|
||
msgid "Lazy permission loading exception."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:138
|
||
#: c6000ae4f0fc4d488ab180c3aa9eb144
|
||
msgid "[0.0.46] - 2024-04-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:142
|
||
#: db4476f22ad049f49833696323eb1b33
|
||
msgid "Saving an object with the LDAP backend keeps the ``objectClass`` un-managed by Canaille. :pr:`171`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:145
|
||
#: d7117b0322b549ff87b73b8e4c839915
|
||
msgid "[0.0.45] - 2024-04-04"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:149
|
||
#: 9690ab893eef4290a52b1137f24b9be8
|
||
msgid "Internal indexation mechanism of ``MemoryModel``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:152
|
||
#: be79650410904879b53da2c62ac092d5
|
||
msgid "[0.0.44] - 2024-03-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:156
|
||
#: 1c2533bc36b548c59361d7b3e304cce6
|
||
msgid "Fix the default LDAP ``USER_FILTER`` value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:157
|
||
#: c429e79bd5aa46edb7b4cd1bd87c3ad8
|
||
msgid "Fix the OIDC feature detection."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:160
|
||
#: 51a43a574cc943b5912effdaa67f8690
|
||
msgid "[0.0.43] - 2024-03-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:164
|
||
#: ../../CHANGES.rst:423
|
||
#: 02e8eccba3b74e889a68c78dc51e0a24
|
||
#: 02e8eccba3b74e889a68c78dc51e0a24
|
||
msgid "Configuration files must be updated."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:169
|
||
#: a39fba5f25754fdc9f0f339142ff0320
|
||
msgid "Add ``created`` and ``last_modified`` datetime for all models."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:170
|
||
#: b1e37ddf62994798a70a23cff76ed4d6
|
||
msgid "Sitemap to the documentation. :pr:`169`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:171
|
||
#: 54cf20bc59af4634af6b3f2d0e10c5e9
|
||
msgid "Configuration management with `pydantic-settings`. :issue:`138` :pr:`170`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:176
|
||
#: 689b4f88ba4b43db8c8b1a7bff0aebe6
|
||
msgid "Use default Python logging configuration format. :issue:`188` :pr:`165`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:177
|
||
#: 7d18c66450654e25a65749ea273b859d
|
||
msgid "Bump to `HTMX` 1.99.11. :pr:`166`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:178
|
||
#: 9d053f12577548bc8cff1add00376bae
|
||
msgid "Use the standard tomllib Python module instead of `toml` starting from Python 3.11. :pr:`167`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:179
|
||
#: fd8c1c0314b2465c9cacb4ba593eae77
|
||
msgid "Use shibuya as the documentation theme :pr:`168`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:182
|
||
#: abc0b3ba739e4f99866d02027d8128d2
|
||
msgid "[0.0.42] - 2023-12-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:187
|
||
#: 74e8932123b744b2809d370b36980326
|
||
msgid "Avoid to fail on imports if ``cryptography`` is missing."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:190
|
||
#: 41f209b7a9054599b7b71d4fab3afe8f
|
||
msgid "[0.0.41] - 2023-12-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:195
|
||
#: 77ff8fdeadf94e2f8696b2f5b9bd9349
|
||
msgid "OIDC support for the ``create`` value of the ``prompt`` parameter. :issue:`185` :pr:`164`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:200
|
||
#: 8940d9836a9f46a09613c3646e1d55f8
|
||
msgid "Correctly set up :attr:`~canaille.oidc.basemodels.Client.audience` during OIDC dynamic registration."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:201
|
||
#: bb9a9230771445b6a7c93f042fb289ee
|
||
msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:202
|
||
#: b5d0341447ef443b969d2a48457442f2
|
||
msgid "Group field error prevented the registration form validation."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:205
|
||
#: 7bcad6150cbc4883817538eb23bed3bd
|
||
msgid "[0.0.40] - 2023-12-22"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:210
|
||
#: aae4204166c443f99e04d84842dd6dd9
|
||
msgid "The ``THEME`` setting can be a relative path."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:213
|
||
#: 26224cfa5ee647a2b15239a78065f5f7
|
||
msgid "[0.0.39] - 2023-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:218
|
||
#: 14b2b67c379045d681ee712797f44328
|
||
msgid "Crash when no ACL were defined."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:219
|
||
#: 38649598ac954d29843b54b15343dd15
|
||
msgid "OIDC Userinfo endpoint is also available in POST."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:220
|
||
#: ed1da2958a1646fd82c70171a5c04317
|
||
msgid "Fix redirection after password reset. :issue:`159`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:223
|
||
#: 8f2bc47f69554f539aa2836958029d59
|
||
msgid "[0.0.38] - 2023-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:228
|
||
#: 24f252671c9a4a3590e94e5e563e4d19
|
||
msgid "Convert all the `PNG` pictures in `Webp`. :pr:`162`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:229
|
||
#: 8a1d423f79f749868c06a775e9c21bd2
|
||
msgid "Update to Flask 3. :issue:`161` :pr:`163`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:232
|
||
#: 9d53638e5933499baafec12390f02e23
|
||
msgid "[0.0.37] - 2023-12-01"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:237
|
||
#: 5ed255dd094a4a3aae1b75edf54001ad
|
||
msgid "Handle 4xx and 5xx error codes with HTMX. :issue:`171` :pr:`161`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:240
|
||
#: 26d16685ada341a29bf6ee6e98997128
|
||
msgid "[0.0.36] - 2023-12-01"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:245
|
||
#: 2cfddfd6843e4cbfb1b645c84bc70322
|
||
msgid "Avoid crashing when LDAP groups references unexisting users."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:246
|
||
#: f5714a32e81841e29f2619f6ee5464e8
|
||
msgid "Password reset and initialization mails were only sent to the preferred user email address."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:248
|
||
#: 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:250
|
||
#: c5fc8c86d3df4732b3a06f70dd89af18
|
||
msgid "Password comparison was too permissive on login."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:251
|
||
#: 36f936a6dd8c41c5bc833d928f347321
|
||
msgid "Encrypt passwords in the SQL backend."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:254
|
||
#: 76befacfb135435fbee6ee0fe07f40e5
|
||
msgid "[0.0.35] - 2023-11-25"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:259
|
||
#: 14d361d80e4c429f929b943d3321e895
|
||
msgid "Refresh token grant supports other client authentication methods. :pr:`157`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:260
|
||
#: c52cda2685214bcab533db539acee007
|
||
msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:265
|
||
#: 57670f55b7644a0888ab65cd2da2fd8c
|
||
msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:266
|
||
#: f4ef25b7b38b42a48fb2a32c5cd8888f
|
||
msgid "Bump to `HTMX` 1.9.9. :pr:`159`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:271
|
||
#: 49b0b7da40204fdeaf40c5281235c2a6
|
||
msgid "Disable `HTMX` boosting during the OIDC dance. :pr:`160`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:274
|
||
#: db372dee122e4b4fb18c2c99dd056ce2
|
||
msgid "[0.0.34] - 2023-10-02"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:279
|
||
#: a4b5211e96894c5d9d51b2630d6aea17
|
||
msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:285
|
||
#: 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:288
|
||
#: 298ffe26093441918be8b38d13f0cc58
|
||
msgid "The `flask-babel` and `pytz` libraries are now part of the `front` packaging extras."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:289
|
||
#: ccb502180d634f11ad173619af1b68d8
|
||
msgid "Bump to `fomantic-ui` 2.9.3. :pr:`152`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:290
|
||
#: 7413676f512d4473972484920ff5f060
|
||
msgid "Bump to `HTMX` 1.9.6. :pr:`154`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:291
|
||
#: 7905327465c44c09b2a10854abe79960
|
||
msgid "Support for Python 3.12. :pr:`155`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:294
|
||
#: 808e57e560f74a25b60029fbd6531d2e
|
||
msgid "[0.0.33] - 2023-08-26"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:299
|
||
#: 1179dc27648248188fdecf5696fd5045
|
||
msgid "OIDC jwks endpoint do not return empty `kid` claim."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:304
|
||
#: b8b2caca239b4b609143ffd267522a16
|
||
msgid "Documentation details on the Canaille models."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:307
|
||
#: dd35ed0e27664b6b954e9b39881f14bc
|
||
msgid "[0.0.32] - 2023-08-17"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:312
|
||
#: bdcae061315a4e92a6bc1a48475cb351
|
||
msgid "Additional inmemory backend. :issue:`30` :pr:`149`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:313
|
||
#: c39cbed721254ce5ad9c250de1e7ea41
|
||
msgid "Installation extras. :issue:`167` :pr:`150`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:316
|
||
#: 5311648e4c714ed29e89e9644167f963
|
||
msgid "[0.0.31] - 2023-08-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:321
|
||
#: a6a4b510a0ac4b4ebeb9160510f72d77
|
||
msgid "Configuration option to disable the forced usage of OIDC `nonce` parameter. :pr:`143`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:322
|
||
#: 37eb24ef005e44da8ae0f4c48bda766c
|
||
msgid "Validate phone numbers with a regex. :pr:`146`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:323
|
||
#: 2be2120a0500430a8d854d1b8f19a0bf
|
||
msgid "Email verification. :issue:`41` :pr:`147`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:324
|
||
#: d3be95492ef348efa77976515d4ffca9
|
||
msgid "Account registration. :issue:`55` :pr:`133` :pr:`148`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:329
|
||
#: 1a3da0153c2b451d99665d2b61c512f2
|
||
msgid "The `check` command uses the default configuration values."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:334
|
||
#: 15f35fa96af04e508b1a6448d866cb5f
|
||
msgid "Modals do not need use Javascript at the moment. :issue:`158` :pr:`144`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:337
|
||
#: add3188842de44b691dfbe3152546f7b
|
||
msgid "[0.0.30] - 2023-07-06"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:341
|
||
#: 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:347
|
||
#: ab83051dda0b48d185846e49011f2429
|
||
msgid "Configuration option to disable Javascript. :pr:`141`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:352
|
||
#: 85fb804c891f444c9de116e6e4771526
|
||
msgid "The configuration parameter ``USER_FILTER`` is parsed with Jinja."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:353
|
||
#: 42d91f7cf5a3438a8bcb0bd5c193f1ea
|
||
msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:356
|
||
#: 30736e0e4b854b46940e80c38023946a
|
||
msgid "[0.0.29] - 2023-06-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:361
|
||
#: 89d319fb81e148cb8f82f4b1a5a5390c
|
||
msgid "Disabled `HTMX` boosting on OIDC forms to avoid errors."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:364
|
||
#: 68d32ee84fa642dfbf358ef907193eb8
|
||
msgid "[0.0.28] - 2023-06-30"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:369
|
||
#: 5490daf53fd144c0b6b360e90bf5667b
|
||
msgid "A template variable was misnamed."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:372
|
||
#: c65a251ed68a49beaff42740c12ce76a
|
||
msgid "[0.0.27] - 2023-06-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:376
|
||
#: 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:382
|
||
#: 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:384
|
||
#: 24fa209262e04bcbb46c2ab7c881fbaa
|
||
msgid "Field list support. :issue:`115` :pr:`136`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:385
|
||
#: eaff808f9ce745c59a1b373ab0ef90ab
|
||
msgid "Pages are boosted with `HTMX`. :issue:`144` :issue:`145` :pr:`137`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:390
|
||
#: 8afcdb0ddd8f4e6c9941315ff1b06538
|
||
msgid "Bump to jquery 3.7.0. :pr:`138`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:395
|
||
#: a6e1f4b8a72f4500ab437a86f6e98d06
|
||
msgid "Profile edition when the user RDN was not ``uid``. :issue:`148` :pr:`139`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:400
|
||
#: cfcf7ee77bb84df1bcd780df223e9044
|
||
msgid "Stop support for Python 3.7. :pr:`131`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:403
|
||
#: 42eab7328c604747ad6bde0067cb6603
|
||
msgid "[0.0.26] - 2023-06-03"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:408
|
||
#: b621a029c6ec420d8708f0ddd4b49c85
|
||
msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+. :issue:`13` :pr:`118`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:410
|
||
#: 05f5b0808e74429b92bf61fa570014cf
|
||
msgid "Timezone configuration entry. :issue:`137` :pr:`130`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:415
|
||
#: d7e71d1ce6704911b7e5094538cc1084
|
||
msgid "Avoid setting ``None`` in JWT claims when they have no value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:416
|
||
#: e16dcca3b764486d874401ba65e22f78
|
||
msgid "Display password recovery button on OIDC login page. :pr:`129`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:419
|
||
#: dcbd97e0bc4f44babcdc9ad9a503c162
|
||
msgid "[0.0.25] - 2023-05-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:424
|
||
#: 4109765130284304994ae405858bdd3c
|
||
msgid "Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:429
|
||
#: c4645c08f789400bba029897871bb828
|
||
msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:430
|
||
#: 3c58d21fdc81418e8ee43179c2d6384f
|
||
msgid "Moved OIDC related configuration entries in ``OIDC``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:431
|
||
#: 5b002906414e41448a3fadea87d71e45
|
||
msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:432
|
||
#: d58c113094474cf3b82e8a3303202bb6
|
||
msgid "Bumped to `HTMX` 1.9.0. :pr:`124`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:433
|
||
#: 3bbdffb495f74fccbdb9eeb78a8eaf81
|
||
msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:434
|
||
#: 0d3ea4f8df2542e0a7da5029159f31e0
|
||
msgid "Bumped to `HTMX` 1.9.2. :pr:`127`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:439
|
||
#: 71139e5ab6e34c2a87d51d3d04c0dbc0
|
||
msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:440
|
||
#: e34b111a3a8b4e2da966a36107a682b5
|
||
msgid "Fixed empty model attributes registration. :pr:`125`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:441
|
||
#: 566d49eca850419cbb39c3a78a4160aa
|
||
msgid "Password initialization mails were not correctly sent. :pr:`128`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:444
|
||
#: f461dc48e9c846628f7ddb99b18252c6
|
||
msgid "[0.0.24] - 2023-04-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:449
|
||
#: 007393d26d6e4375a0e05cbbf6c41d65
|
||
msgid "Fixed avatar update. :pr:`122`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:452
|
||
#: 0ddfaf5df815484f9eb469a884e5f667
|
||
msgid "[0.0.23] - 2023-04-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:457
|
||
#: 2e7346baddf44a7f9f5b9a05ae826913
|
||
msgid "Organization field. :pr:`116`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:458
|
||
#: 1c68c43ae90f4e2e944dab12514f06d1
|
||
msgid "ETag and Last-Modified headers on user photos. :pr:`116`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:459
|
||
#: bcaf8fe7d8e940f191ed6ea5178566c1
|
||
msgid "Dynamic form validation. :pr:`120`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:464
|
||
#: 2b077ff5215a4b20b8438e82f4366ada
|
||
msgid "UX rework. Submenu addition. :pr:`114`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:465
|
||
#: 166152fdbf6248e8a4af29f4f3bf5b6e
|
||
msgid "Properly handle LDAP date timezones. :pr:`117`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:470
|
||
#: 343c4102b6d648018544f151f97540e1
|
||
msgid "CSRF protection on every forms. :pr:`119`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:473
|
||
#: 7140973831594dacad0bd205ca9b60e5
|
||
msgid "[0.0.22] - 2023-03-13"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:477
|
||
#: 67dc897fec2946598dbb4fe82db8a94f
|
||
msgid "The `Faker` library is not imported anymore when the `clean` command is called."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:480
|
||
#: 58e3c0af1ce74125bf42a5ea16b88fbf
|
||
msgid "[0.0.21] - 2023-03-12"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:485
|
||
#: a25f75d9086a4499aa1088e537f21bc3
|
||
msgid "Display TOS and policy URI on the consent list page. :pr:`102`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:486
|
||
#: e848a4f5372b44249423579a7e2cdc3d
|
||
msgid "Admin token deletion. :pr:`100` :pr:`101`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:487
|
||
#: 61b841de5b89407d9912c8c73309111a
|
||
msgid "Revoked consents can be restored. :pr:`103`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:488
|
||
#: 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:490
|
||
#: e08c1586240745fa9537dd7501475c0d
|
||
msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:492
|
||
#: dc653adfdbc441589c385b956ae9739e
|
||
msgid "SMTP SSL support. :pr:`108`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:493
|
||
#: c69d8b01e4194d5b9268b84ab81849d6
|
||
msgid "Server side pagination. :issue:`114` :pr:`111`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:494
|
||
#: 5b4f3aa107a74df3ba845920503dfdc5
|
||
msgid "Department number support. :issue:`129`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:495
|
||
#: d219e1ac8fa148d5b6e4babc678fbeb2
|
||
msgid "Address edition support (but not in the OIDC claims yet). :pr:`112`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:496
|
||
#: 52d2ceda28ab430a984dee19f8766b2a
|
||
msgid "Title edition support. :pr:`113`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:501
|
||
#: 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:507
|
||
#: a1c057df21a9436a9b149fb91fdb28d0
|
||
msgid "Removed the `DataTables` Javascript library."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:510
|
||
#: 74a0312b6fff499fa609d0adbe73dfac
|
||
msgid "[0.0.20] - 2023-01-28"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:515
|
||
#: c443970df56e4203b8ee3fd9e4fa2395
|
||
msgid "Spanish translation. :pr:`85` :pr:`88`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:516
|
||
#: 9e42a95e59a74c5584d1144c249a57c1
|
||
msgid "Dedicated connectivity test email. :pr:`89`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:517
|
||
#: e06855259b6f463897acd0f8a23cd05e
|
||
msgid "Update to jquery 3.6.3. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:518
|
||
#: 96cb7430946248108d8c97973a4799d5
|
||
msgid "Update to fomantic-ui 2.9.1. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:519
|
||
#: 5b5784d9aedb4949bac1591395fc7eb9
|
||
msgid "Update to DataTables 1.13.1. :pr:`90`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:524
|
||
#: e88b90b5e0eb418f99ea2839c1e79943
|
||
msgid "Fix typos and grammar errors. :pr:`84`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:525
|
||
#: d333115d646f4ccf9a5bb2dc4d23eba0
|
||
msgid "Fix wording and punctuations. :pr:`86`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:526
|
||
#: cfc153afa2ec4bee9c2dd589a234716c
|
||
msgid "Fix HTML lang tag. :issue:`122` :pr:`87`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:527
|
||
#: a2dc7b3677d040c7a43bde721f766029
|
||
msgid "Automatically trims the HTML translated strings. :pr:`91`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:528
|
||
#: 9a91064adb7f414fab73518fbc77b01d
|
||
msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:531
|
||
#: d7a2cda6d8e24cc484f13ee4df40c1ea
|
||
msgid "[0.0.19] - 2023-01-14"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:536
|
||
#: f7c94b5e7545458e8375ef8a8e3dc21c
|
||
msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:540
|
||
#: 9291df232e4b4a7eb97fb87504f9b8d4
|
||
msgid "[0.0.18] - 2022-12-28"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:545
|
||
#: c896b9996ab24cfeb217e9ebfdbed090
|
||
msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri``. :pr:`82`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:549
|
||
#: 2fa2e9a70b8d4ab4bed4d7f0d8d68f37
|
||
msgid "[0.0.17] - 2022-12-26"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:554
|
||
#: cff81f4ef5254cfdb1e6ba76c2c3b9f6
|
||
msgid "Fixed group deletion button. :pr:`80`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:555
|
||
#: 552d92ac7c364f198201b60a3abebae2
|
||
msgid "Fixed post requests in oidc clients views. :pr:`81`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:558
|
||
#: f7c78b950b184117855277070cb4e548
|
||
msgid "[0.0.16] - 2022-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:563
|
||
#: 3e522208e81740fba479a43b017311fd
|
||
msgid "Fixed LDAP operational attributes handling."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:566
|
||
#: 53e83abb15b24cc0a3d589011cf7c2a3
|
||
msgid "[0.0.15] - 2022-12-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:571
|
||
#: 7194a505926740e3b52b81708d2818de
|
||
msgid "User can chose their display name. :pr:`77`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:572
|
||
#: 5c5a59a03bd5497aa7474ae59e88f6bf
|
||
msgid "Bumped to Authlib 1.2. :pr:`78`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:573
|
||
#: 0a3d037fae66464b8c2dfeea28dd3eaf
|
||
msgid "Implemented :rfc:`RFC7592 <7592>` OAuth 2.0 Dynamic Client Registration Management Protocol. :pr:`79`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:575
|
||
#: 0670727ea1074acf968c49e71dc4062b
|
||
msgid "Add the ``nonce`` parameter to the ``claims_supported`` server metadata list."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:578
|
||
#: eb86b7335b7b4971812f25c9a2d37d1e
|
||
msgid "[0.0.14] - 2022-11-29"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:582
|
||
#: 9903a64c05994256813debf83e9a6b21
|
||
msgid "Fixed translation catalogs packaging."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:585
|
||
#: eb1e508e7d2c46bdb471cffecbe4d897
|
||
msgid "[0.0.13] - 2022-11-21"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:590
|
||
#: 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:592
|
||
#: 374bd3f105af42bc8ea5c0de35e7437f
|
||
msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:594
|
||
#: 6244294cde9d429dbab852b0f7721160
|
||
msgid "Gitlab CI fix. :pr:`64`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:595
|
||
#: 8dc7de6abbd447f4a78272f33cbcb6cf
|
||
msgid "Fixed `client_secret` display on the client administration page. :pr:`65`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:596
|
||
#: be276c6c0aed433987b562fa51a9af06
|
||
msgid "Fixed non-square logo CSS. :pr:`67`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:597
|
||
#: 45c4b643c08f4e98b8eb1994cca78051
|
||
msgid "Fixed schema path on installation. :pr:`68`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:598
|
||
#: 490ff7e15c244e1c80522169f52be22c
|
||
msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:599
|
||
#: 13d139a4ca6b420eb0780952acd8582c
|
||
msgid "Fixed client preconsent disabling. :pr:`72`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:604
|
||
#: f863beea190c4605afc13c35d7828c7e
|
||
msgid "Python 3.11 support. :pr:`61`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:605
|
||
#: dfa820f752f64485950bd9f2f4f2f798
|
||
msgid "``apparmor`` slapd configuration instructions in the documentation page for contributions. :pr:`66`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:606
|
||
#: 33f4b497e723467fb7cca94de105b331
|
||
msgid "``preferredLanguage`` attribute support. :pr:`75`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:611
|
||
#: 80931cb05ba54eb0bdd13af0e69ae5c4
|
||
msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:613
|
||
#: 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:616
|
||
#: b56f59b2dd124c91a6268830cf4ddecc
|
||
msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:617
|
||
#: d701256eb4764f81827acd7b0a0dbda3
|
||
msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:620
|
||
#: 45607852e443428199051f1ecba9ba24
|
||
msgid "[0.0.12] - 2022-10-24"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:625
|
||
#: 9997d515babd44b4841ef0218885f1f1
|
||
msgid "Basic WebFinger endpoint. :pr:`59`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:626
|
||
#: 509a601f77664756bc01064f20359cf6
|
||
msgid "Bumped to FomanticUI 2.9.0."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:627
|
||
#: 2cfcbdba2e9541dbab610bc724a2683a
|
||
msgid "Implemented Dynamic Client Registration. :pr:`60`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:630
|
||
#: 4acb242ffb5440d1a468e2d3c3856fe8
|
||
msgid "[0.0.11] - 2022-08-11"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:635
|
||
#: 0c4bd2691ba9453b88a686a22ede18ef
|
||
msgid "Default theme has a dark variant. :pr:`57`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:640
|
||
#: d3cabac68def4f77a693a6159bf2f5c0
|
||
msgid "Fixed missing ``canaille`` binary. :pr:`58`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:643
|
||
#: 735459f4aeea42c6b0f7be4a2b06802f
|
||
msgid "[0.0.10] - 2022-07-07"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:648
|
||
#: f9dfd87d0fa145579e2297b27b61a11b
|
||
msgid "Online demo. :pr:`55`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:649
|
||
#: 5e5eef7b53ce470ab0a0137617552a9c
|
||
msgid "The consent page was displaying scopes not supported by clients. :pr:`56`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:650
|
||
#: f7b8675a05b64bafb3efbbad603537ce
|
||
msgid "Fixed end session when user are already disconnected."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:653
|
||
#: a14c8084a27d463f82c1573d946a6676
|
||
msgid "[0.0.9] - 2022-06-05"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:658
|
||
#: d04e2396209641cc84fa39d8bb397eaa
|
||
msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:659
|
||
#: 01acc147a456445eb3858de7b0586dca
|
||
msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:660
|
||
#: dafb92303cb147909db73fdc619f1267
|
||
msgid "`RP-initiated logout` implementation. :pr:`54`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:665
|
||
#: f672b1443aa9498994204b20952103e4
|
||
msgid "Bumped to Authlib 1. :pr:`48`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:666
|
||
#: 18c1456a82f748cd9ee0d6abcb40801f
|
||
msgid "Various documentation improvements. :pr:`50`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:667
|
||
#: 77c7a3b3242647718a3a94a1fc4d05a1
|
||
msgid "Use poetry instead of setuptools as project management tool. :pr:`51`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:668
|
||
#: 3b65181a80b64d0d8a474a5e643d3f80
|
||
msgid "Additional tests for the OIDC ``nonce`` parameter. :pr:`52`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:672
|
||
#: 35eef6ab06b940e8ad49bf31b7620404
|
||
msgid "``HIDE_INVALID_LOGIN`` behavior and default value."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:673
|
||
#: 2792732f7d154df2b11a35b13114939b
|
||
msgid "Compiled translation catalogs are not versioned anymore. :pr:`49` :pr:`53`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:676
|
||
#: 8766634316d146ab8929259434391f34
|
||
msgid "[0.0.8] - 2022-03-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:681
|
||
#: f053b2fe7153473a81cb24bfc2b90c7d
|
||
msgid "Fixed dependencies."
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:684
|
||
#: 6fe1289ea759485b9c3c7658461a409d
|
||
msgid "[0.0.7] - 2022-03-15"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:689
|
||
#: f40f5e320ea4412fadc8f1bc1d99198c
|
||
msgid "Fixed spaces and escaped special char in LDAP ``cn/dn`` attributes. :pr:`43`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:692
|
||
#: ac9b3059b303486a9b31536f1726d873
|
||
msgid "[0.0.6] - 2022-03-08"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:697
|
||
#: 357a41c66f054b9b830d9ae20551690d
|
||
msgid "Access token are JWT. :pr:`38`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:702
|
||
#: 20b619f456934ab09712d95d37ef12cd
|
||
msgid "Default groups on invitations. :pr:`41`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:703
|
||
#: 74f8d8568cd1405bbef739de7b92f380
|
||
msgid "LDAP schemas are shipped within the Canaille package. :pr:`42`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:706
|
||
#: 936cdbdb780241beb677c1a3c5d21735
|
||
msgid "[0.0.5] - 2022-02-17"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:711
|
||
#: b49925c79428413ca8c31eff4f42a588
|
||
msgid "LDAP model objects have new identifiers. :pr:`37`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:716
|
||
#: 21e3bd1145ce480ea8a82394722cef34
|
||
msgid "Admin menu dropdown display. :pr:`39`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:717
|
||
#: b50bd877e6fa4055a450f65d4e0e6951
|
||
msgid "``GROUP_ID_ATTRIBUTE`` configuration typo. :pr:`40`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:720
|
||
#: 93523c049fd2438b9f8dbb942b657b7c
|
||
msgid "[0.0.4] - 2022-02-16"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:725
|
||
#: 9cc5e4c0be3e43f98a84d076d254a7a8
|
||
msgid "Client pre-authorization. :pr:`11`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:726
|
||
#: b1444e5514e3495f8f05b00bfb31e54b
|
||
msgid "LDAP permissions check with the check command. :pr:`12`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:727
|
||
#: 81badbb21dfe4dd0bd990037947c24cf
|
||
msgid "Update consents when a scope required is larger than the scope of an already given consent. :pr:`13`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:729
|
||
#: 5f6092f6103d401e9fe4554e04ad12cb
|
||
msgid "Theme customization. :pr:`15`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:730
|
||
#: 7e99d3a9c9134144a8e18989e6d0d633
|
||
msgid "Logging configuration. :pr:`16`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:731
|
||
#: abd6618054b443efbb5101e9c32f0c90
|
||
msgid "Installation command. :pr:`17`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:732
|
||
#: 18c69372e28c42c4b0ac0cae51fcd8aa
|
||
msgid "Invitation links. :pr:`18`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:733
|
||
#: 2e35dc7cf246485c97650451d1f41d93
|
||
msgid "Advanced permissions. :pr:`20`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:734
|
||
#: ef3b8ab7e89448089a9d09363832c7cc
|
||
msgid "An option to not use OIDC. :pr:`23`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:735
|
||
#: 4d5d5581283a4eaabab00c6df18077a0
|
||
msgid "Disable some features when no SMTP server is configured. :pr:`24`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:736
|
||
#: a54b117ff68e47eabb66aa0a741790b1
|
||
msgid "Login placeholder dynamically generated according to the configuration. :pr:`25`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:737
|
||
#: 8593aca44439457296e5591823f56739
|
||
msgid "Added an option to tune object IDs. :pr:`26`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:738
|
||
#: 548d5d09a1da4104aed49324dd3d96b6
|
||
msgid "Avatar support. :pr:`27`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:739
|
||
#: e6275bae918547beab8caabaf64f57db
|
||
msgid "Dynamical and configurable JWT claims. :pr:`28`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:740
|
||
#: 82bbcaaa7973438696de021fbff14354
|
||
msgid "UI improvements. :pr:`29`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:741
|
||
#: 70cd1dd3d81d4288b1c6bca674492944
|
||
msgid "Invitation links expiration. :pr:`30`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:742
|
||
#: af865fef102c44bc801e8aec157c2835
|
||
msgid "Invitees can choose their IDs. :pr:`31`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:743
|
||
#: d194b87cfbd94dd398f1c58bec6e4c37
|
||
msgid "LDAP backend refactoring. :pr:`35`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:748
|
||
#: 2409763cd25243c9a80678c470fa336d
|
||
msgid "Fixed ghost members in a group. :pr:`14`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:749
|
||
#: ae04a8fa1896467792d8aaaf161fed29
|
||
msgid "Fixed email sender names. :pr:`19`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:750
|
||
#: 596c5956ebc6442984251ca5c558834e
|
||
msgid "Fixed filter being not escaped. :pr:`21`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:751
|
||
#: bbf97ea202404efd8708cfbed4bbfe74
|
||
msgid "Demo script good practices. :pr:`32`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:752
|
||
#: 8d176b7d4da5419d8768430eeb01036c
|
||
msgid "Binary path for Debian. :pr:`33`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:753
|
||
#: 004ecd0e934049ef823bbf0d63f75c14
|
||
msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server. :pr:`34`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:755
|
||
#: c6de3dbeeb5f40ff85c60e062271bfdb
|
||
msgid "Spelling typos. :pr:`36`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:758
|
||
#: d49aed2f00e346cc8adaa26aa54f470a
|
||
msgid "[0.0.3] - 2021-10-13"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:763
|
||
#: 0b32a6319c044bba95b3a00f245c6956
|
||
msgid "Two-steps sign-in. :issue:`49`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:764
|
||
#: 4cf53569893c4b0ba8eab17b44a4a15b
|
||
msgid "Tokens can have several audiences. :issue:`62` :pr:`9`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:765
|
||
#: 2956507b8bba47839fef6f9a63d5321a
|
||
msgid "Configuration check command. :issue:`66` :pr:`8`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:766
|
||
#: 0415c157cb414913b3d7748afba41cda
|
||
msgid "Groups management. :issue:`12` :pr:`6`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:771
|
||
#: e08a9eafc49f45cbb361ed3bd89d4649
|
||
msgid "Introspection access bugfix. :issue:`63` :pr:`10`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:772
|
||
#: 48e63a4a411d4aab8259f74b1d257a37
|
||
msgid "Introspection sub claim. :issue:`64` :pr:`7`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:775
|
||
#: 2a9047b937be481f811eb403d6bf7fd9
|
||
msgid "[0.0.2] - 2021-01-06"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:780
|
||
#: 9f74458dacff435998774594822a1506
|
||
msgid "Login page is responsive. :issue:`1`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:781
|
||
#: 8a87683d8d524cd482264473256b3777
|
||
msgid "Adapt mobile keyboards to login page fields. :issue:`2`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:782
|
||
#: c777083179094cd994619adcfc8499d9
|
||
msgid "Password recovery interface. :issue:`3`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:783
|
||
#: c7393dc1bb6a4290bfdb2d59a3fef0c9
|
||
msgid "User profile interface. :issue:`4`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:784
|
||
#: e874e0e97cae4310ba62553c3d31cd16
|
||
msgid "Renamed the project *Canaille*. :issue:`5`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:785
|
||
#: 27a300eabaaf4644989d134ccca22dd8
|
||
msgid "Command to remove old tokens. :issue:`17`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:786
|
||
#: 8e168b1583984a71848678112365d1c7
|
||
msgid "Improved password recovery email. :issue:`14` :issue:`26`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:787
|
||
#: 901de9a21dd94541b3c23946ada4cd88
|
||
msgid "Use Flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:788
|
||
#: 62c1e3da0a87437aaa529dcc936c7dbc
|
||
msgid "Improved consents page. :issue:`27`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:789
|
||
#: f816ffeb73244ae0b1171b8c156d1e12
|
||
msgid "Admin user page. :issue:`8`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:790
|
||
#: 2241f2b45f1e426f99f68ccc516c6b60
|
||
msgid "Project logo. :pr:`29`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:791
|
||
#: dd802cef3e384fdc928fc43178ab119a
|
||
msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:792
|
||
#: 75d6d908a827424284ea63478783cbf9
|
||
msgid "Admins can impersonate users. :issue:`39`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:793
|
||
#: b4eee6e748f94ba9b6e62e2e7fd4d86b
|
||
msgid "Forgotten page UX improvement. :pr:`43`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:794
|
||
#: 44489482b8d54ae78c70959758d6f825
|
||
msgid "Admins can remove clients. :pr:`45`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:795
|
||
#: 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:797
|
||
#: b1df16b2411a440d8d2a0745c972f368
|
||
msgid "Password initialization mail. :pr:`51`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:802
|
||
#: ba317999584d46d7b5bfda36157bc111
|
||
msgid "Form translations. :issue:`19` :issue:`23`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:803
|
||
#: e0d773fd3f814a438321528df1c4d67d
|
||
msgid "Avoid to use Google Fonts. :issue:`21`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:808
|
||
#: d7c5d0509cfe422ab95beb9c1929e413
|
||
msgid "'My tokens' page. :issue:`22`"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:811
|
||
#: 35ab727ebe564ff2a2aa3e28f9392f5b
|
||
msgid "[0.0.1] - 2020-10-21"
|
||
msgstr ""
|
||
|
||
#: ../../CHANGES.rst:816
|
||
#: 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:106
|
||
#: 32e05154931e4a6fadcba3b0720e0655
|
||
#: f1b0c988daa54dd4a0c5b30a062cf012
|
||
#: 94f958ac7cab437580604c64cdfa27be
|
||
#: 528aa40e3cd04297b5ebf44fc955e9a9
|
||
msgid "SQL"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:74
|
||
#: ../../CONTRIBUTING.rst:107
|
||
#: 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:109
|
||
#: 6ddf226447fa4bb89cbf73cc8376c371
|
||
#: c72bd69b5ad94f5992bfe2d30f5b0e8d
|
||
msgid "Run the demo instance with the SQL backend"
|
||
msgstr ""
|
||
|
||
#: ../tutorial/databases.rst:8
|
||
#: ../../CONTRIBUTING.rst:83
|
||
#: ../../CONTRIBUTING.rst:115
|
||
#: e5f82f8945b747ac81b31a20cc241e5d
|
||
#: 9a11f967d4c74ad8b9dff673e77d2315
|
||
#: 84a192a56d404fb1baf97b065f6ceaa8
|
||
msgid "Memory"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:84
|
||
#: ../../CONTRIBUTING.rst:116
|
||
#: 9c56b31ca9724e62a5aee62e28196764
|
||
#: 22784d30d5a748d2b73ebe7c423c64bc
|
||
msgid "With the memory backend, all data is lost when Canaille stops."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:86
|
||
#: ../../CONTRIBUTING.rst:118
|
||
#: 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:124
|
||
#: 6f4008249f544ff4afa4e2a7ccebfab2
|
||
#: ce4afa36ab774346b11322758b51325e
|
||
#: f9a9bf9c1c6d49b99edee201000ea0a0
|
||
#: 2e130a461dc64b989f22d4f932976a65
|
||
msgid "LDAP"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:94
|
||
#: ../../CONTRIBUTING.rst:125
|
||
#: 4f3a2e440337421f95f937952e7dc9be
|
||
#: db5ad48ecaa94207ab2b7d84bbebf569
|
||
msgid "With the LDAP backend, all data is lost when Canaille stops."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:96
|
||
#: ../../CONTRIBUTING.rst:127
|
||
#: 50095289006e499588719acc50eb5a56
|
||
#: 80a55900cfc34f4e8b34b5e653a7fdfb
|
||
msgid "Run the demo instance with the LDAP backend"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:103
|
||
#: 9e2c9acef9184e34b00d62c97980467d
|
||
msgid "Local environment"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:133
|
||
#: 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:138
|
||
#: 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:148
|
||
#: 3d21757ba34c4721af043c150330c2e4
|
||
msgid "Populate the database"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:150
|
||
#: 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:161
|
||
#: 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:164
|
||
#: 2db32f774df8429fa4c9e83d00616a96
|
||
msgid "Unit tests"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:166
|
||
#: 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:169
|
||
#: e1e6e475ff78404f930bb453f1f26e3b
|
||
msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:171
|
||
#: 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:176
|
||
#: 4408d499056c480f86f450a781d2ca0d
|
||
msgid "Code style"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:178
|
||
#: 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:184
|
||
#: 0dca6207e6734ab487cb3fe72c3e90e8
|
||
msgid "Front"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:186
|
||
#: 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:189
|
||
#: 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:191
|
||
#: 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:196
|
||
#: e3ff6afa466e4e61aa4f677cd58d3ed2
|
||
#: a08d8d5331494e7d93508eaf25f41a07
|
||
msgid "Documentation"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:198
|
||
#: 2e1fdcae75de46a6b50db7e4155758af
|
||
msgid "The documentation is generated when the tests run:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:204
|
||
#: 94405109592b47c09c8726c305fa5edc
|
||
msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:210
|
||
#: fe4610d142474897ae4f97d321448fac
|
||
msgid "The generated documentation is located at ``build/sphinx/html/en``."
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:213
|
||
#: 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
|
||
#: readme.rst:6
|
||
#: ea5bd05b09984bcaa643efa7a1a7618c
|
||
#: ea5bd05b09984bcaa643efa7a1a7618c
|
||
#: 33490a8ff4a3465fb8648393ff65eb75
|
||
msgid "Message extraction"
|
||
msgstr ""
|
||
|
||
#: readme.rst:8
|
||
#: ../../canaille/translations/README.rst:10
|
||
#: readme.rst:8
|
||
#: 210e9ff98db74777830a5a1f4746df44
|
||
#: 210e9ff98db74777830a5a1f4746df44
|
||
#: 16b22e2bc3cf495bbef529f5732887e3
|
||
msgid "After you have edited translatable strings, you should extract the messages with:"
|
||
msgstr ""
|
||
|
||
#: readme.rst:15
|
||
#: ../../canaille/translations/README.rst:17
|
||
#: readme.rst:15
|
||
#: 54ecd51acf494402964ae281c6cd639b
|
||
#: 54ecd51acf494402964ae281c6cd639b
|
||
#: 02fa7225075346f89ad702cba8aabdeb
|
||
msgid "Language addition"
|
||
msgstr ""
|
||
|
||
#: readme.rst:17
|
||
#: ../../canaille/translations/README.rst:19
|
||
#: readme.rst:17
|
||
#: 5429b47768e2472ea597ed48140a5621
|
||
#: 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:219
|
||
#: 4ff341d941384c029ed9c0b49d1062f9
|
||
msgid "Documentation translation"
|
||
msgstr ""
|
||
|
||
#: readme.rst:1
|
||
#: readme.rst:1
|
||
#: 35fff9d115334ec6aa6a99ec5da8a27f
|
||
#: 7abe83f2eeb54b3f9f3d1a8542696765
|
||
msgid "Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/documentation>`__."
|
||
msgstr ""
|
||
|
||
#: readme.rst:3
|
||
#: 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
|
||
#: readme.rst:24
|
||
#: 3d142fe9f633400ea029e949f1e869ee
|
||
#: 74cc2740b1584972aa3c0e672dff5f3e
|
||
msgid "Build the documentation in another language"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:224
|
||
#: 4b1dc3dae99f4c6fbbeec3e54be3e922
|
||
msgid "Publish a new release"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:226
|
||
#: 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:227
|
||
#: 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:228
|
||
#: 3e7d5493a8e44c1a9067010115678723
|
||
msgid "Check that the demo environments are still working, both the local and the Docker one;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:229
|
||
#: fe7867ea9416424e81c518f77853958a
|
||
msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:230
|
||
#: 7d89adc1c3e6478ab9e8faa02f97bf03
|
||
msgid "Increase the version number in ``pyproject.toml``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:231
|
||
#: a376131776cd4e469611fa3ad6749be9
|
||
msgid "Commit with ``git commit``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:232
|
||
#: 655fd489e5324dc5b6172d438a6b8e3e
|
||
msgid "Build with ``uv build``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:233
|
||
#: 79fc61b7c13647a285a918a0c126ea53
|
||
msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:234
|
||
#: 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:235
|
||
#: 8a73b31d1fe14fdda15e6c2dea0cafc9
|
||
msgid "Publish on production PyPI ``uv publish``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:236
|
||
#: 93131bb37ccc4207825449d393f92201
|
||
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
|
||
msgstr ""
|
||
|
||
#: ../../CONTRIBUTING.rst:237
|
||
#: a98a5168d5f949ec9e96f16d8ff8b6f5
|
||
msgid "Push the release commit and the new tag on the repository with ``git push --tags``."
|
||
msgstr ""
|
||
|
||
#: ../development/index.rst:2
|
||
#: c0f14bad2988468fa0700bbd47fe1de0
|
||
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:223
|
||
#: 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
|
||
#: 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
|
||
#: 3ba35fd6c6d44150b4b049cf603e4a85
|
||
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
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: 588ab8a50fca4528b9a471dbddfb7d4a
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: ba65de35554741a48a7eb4a72fc66433
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: 4dd20636352243038f0bdad8d15e8449
|
||
#: 5b23071246ab41f1abd1bfa5596a4b46
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c1aa2d442f2047f9a1194e38c2b1ddd1
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: ce03d94ab7954c02968bfb44eb0f72fd
|
||
#: 9fb4e3e247d846419051f2852ffa3f31
|
||
#: f5e5911bcb704af19c073370f437c1b4
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: e063ffcc58474df4a66b2814eb4c0f61
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: cff48ca4a13545309d9e1b58c3dede80
|
||
#: e55ccef99f4a45be8fb35a1ed8bb1ac4
|
||
#: 4b09487097334807804aaba873d4dc7b
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c9b45500d9d145a8862c978d95329330
|
||
#: c34b7940cbbd4218af2cb94e8eb24fc7
|
||
#: 8a394726b7b941dfbbd8af3e546782c1
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: f5320617a03e47dea905ac5a70208c70
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
#: c2035a448fa9405a92d51c9c90277394
|
||
msgid "✅"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:110
|
||
#: ../development/specifications.rst:116
|
||
#: 86f975b8aaab4af9bfc62ef2df91ba28
|
||
#: 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
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 94a1a61f502a42569788cfe93ad6bcf7
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
#: 0baee04e46584b46ab2b5bd83dea4c0d
|
||
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
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
#: 8f85eeab9d6945af894c55e2a4aa0b9b
|
||
msgid "❔"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114
|
||
#: 47ff7b1213464f85b246c4282f3af933
|
||
msgid "`Authelia`_"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114
|
||
#: ../development/specifications.rst:118
|
||
#: ../development/specifications.rst:126
|
||
#: 5db56fd3e64948f5a108d2f74f7070b4
|
||
#: 5db56fd3e64948f5a108d2f74f7070b4
|
||
#: 5db56fd3e64948f5a108d2f74f7070b4
|
||
msgid "Go"
|
||
msgstr ""
|
||
|
||
#: ../development/specifications.rst:114
|
||
#: ../development/specifications.rst:126
|
||
#: 741e97755b8c4478b7e19ba006898401
|
||
#: 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
|
||
#: aa3618e441ac413e83acdfe56631d15a
|
||
#: 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:231
|
||
#: 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:21
|
||
#: 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:189
|
||
#: cbba3fccd9f84230b6eb0774cfd7e109
|
||
msgid "Web interface"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:194
|
||
#: fab0081b9bd4460098de6df7d8c317b5
|
||
msgid "Internationalization"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:196
|
||
#: 46cf7a3a3e9047439aa7fa6654b07921
|
||
msgid "Translation state"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:201
|
||
#: 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:207
|
||
#: 2caebf718cab47029a83bb91253e36e5
|
||
msgid "Lightweight"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:209
|
||
#: 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:213
|
||
#: a7db848b637a46b1874f04fb542009e2
|
||
msgid "Customizable"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:215
|
||
#: 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:218
|
||
#: 3a69d40c024744af967a1408c054aca0
|
||
msgid "If you need more you can also use a :attr:`custom theme <canaille.core.configuration.CoreSettings.THEME>`."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:225
|
||
#: 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:229
|
||
#: 51e9a6e1ddb04b99a6a73135fc8728e7
|
||
msgid "Consent management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:237
|
||
#: 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:241
|
||
#: 115bec7ea8944f6ab98641d9bd2540ec
|
||
msgid "Application management"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:243
|
||
#: 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:245
|
||
#: 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:248
|
||
#: d1f7f85df6404afe91d29e4dee44be1d
|
||
msgid "Discovery"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:250
|
||
#: 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:253
|
||
#: d5a2f0c4fa2f4363b5e87c4243376aaa
|
||
msgid "Dynamic Client Registration"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:255
|
||
#: 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:258
|
||
#: 9cae9e0af58f499dac34354e9c12785d
|
||
msgid "System administration"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:263
|
||
#: ../references/commands.rst:2
|
||
#: 9b5fcf18f6214856ae377f83005f8309
|
||
#: e2a97a5dfb5844f9a74c78b1a28ed23f
|
||
msgid "Command Line Interface"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:265
|
||
#: 98ef5f39d74944668dfff8b63d9d6199
|
||
msgid "Canaille comes with a :abbr:`CLI (Command Line Interface)` to help administrators in hosting and management."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:267
|
||
#: 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:270
|
||
#: 02d13c90aa8f41f5b1007cd67fcea510
|
||
msgid "There are also tools to :ref:`fill your database <cli_populate>` with random objects, for tests purpose for instance."
|
||
msgstr ""
|
||
|
||
#: ../features.rst:275
|
||
#: ../tutorial/databases.rst:2
|
||
#: 0225297b7d884971a952f5ec904a15ac
|
||
#: cf1fc0e0abb74b3ca66c1e92a5e773e9
|
||
msgid "Databases"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:277
|
||
#: 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:283
|
||
#: a6a6a7334af54051aebed82d83027ea8
|
||
msgid "Logging"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:285
|
||
#: 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:287
|
||
#: 2aeb5161276a4f048c40a7256c3d7f0e
|
||
msgid "The following security events are logged with the log level \"security\" for easy retrieval :"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:289
|
||
#: ed4be0b57afe4ce9976c45f03c249444
|
||
msgid "Authentication attempt"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:290
|
||
#: 452456f9907e4bbd89439903c2fc9ebc
|
||
msgid "Password update"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:291
|
||
#: 9ccb4ef2a139403c85223576eb87a182
|
||
msgid "Email update"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:292
|
||
#: bd0936deb7994f8fb59f2f0a47115edc
|
||
msgid "Forgotten password mail sent to user"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:293
|
||
#: bd0936deb7994f8fb59f2f0a47115edc
|
||
msgid "One-time password mail sent to user"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:294
|
||
#: 478b4f7b443f4f728085a2ea686b0248
|
||
msgid "Multi-factor authentication reset"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:295
|
||
#: 02079fe76d2041aaba48a6b2079630f1
|
||
msgid "Token emission"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:296
|
||
#: 814519684d8c47a5b0b5ae6eaa9aa66e
|
||
msgid "Token refresh"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:297
|
||
#: 4489f99b64dd40248f28453fb8b4b0df
|
||
msgid "Token revokation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:298
|
||
#: 99abcc04f85649c1b184e22e67b36f18
|
||
msgid "New consent given for client application"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:299
|
||
#: c64802d623a74d678c4aca29f82c39d7
|
||
msgid "Consent revokation"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:304
|
||
#: f9d92f5f76a745ee97ea36afc853c516
|
||
msgid "Development and testing tool"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:309
|
||
#: 9c0500515a5847c2bec5b1bb743f42fc
|
||
msgid "Unit-testing tool"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:311
|
||
#: 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:314
|
||
#: ff4f45059bc2485eb5fa0145f5f01f9a
|
||
msgid "Development server"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:316
|
||
#: 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:321
|
||
#: 3594d882079a4c89b28f0d9b25b5a647
|
||
msgid "Continuous Integration tools"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:323
|
||
#: 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:326
|
||
#: beb39ccb89e040118104ba0c0f41eb71
|
||
msgid "Roadmap"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:329
|
||
#: 4fee3c311fe844bbb345bd5b562844ad
|
||
msgid "Bêta version"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:331
|
||
#: f699343ae7fe4f12a9d12f4692c22827
|
||
msgid "To go out of the current Alpha version we want to achieve the following tasks:"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:333
|
||
#: c8aec1fe7d574a789319e75cc64bd2e7
|
||
msgid ":issue:`Configuration validation using pydantic <138>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:336
|
||
#: 706d590389f54c40ba1b219877946bb5
|
||
msgid "Stable version"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:338
|
||
#: 54c0d4cc60054a5ebe7456575b1b70c3
|
||
msgid "Before we push Canaille in stable version we want to achieve the following tasks:"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:341
|
||
#: 7807e2d92e264bc78fd5b6a3c63beb3a
|
||
msgid "Security"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:343
|
||
#: 577ab46503ee45e89daa8c42938635e5
|
||
msgid ":issue:`Password hashing configuration <175>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:344
|
||
#: a337cb0aac704dbca90dd70f1d68456d
|
||
msgid ":issue:`Authentication logging policy <177>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:345
|
||
#: 39adf64b80444b27bb6f9f11747a6960
|
||
msgid ":issue:`Intruder lockout <173>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:346
|
||
#: 3eeac7b1dec04fe9b990864b8810db50
|
||
msgid ":issue:`Password expiry policy <176>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:347
|
||
#: 4ad4707b7d02481ab507ded2d410eb70
|
||
msgid ":issue:`Multi-factor authentication: Email <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:348
|
||
#: 478b4f7b443f4f728085a2ea686b0248
|
||
msgid ":issue:`Multi-factor authentication: SMS <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:349
|
||
#: fd624a7e3d404428830928ee05ec5348
|
||
msgid ":issue:`Multi-factor authentication: OTP <47>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:352
|
||
#: a6acbc89a16a4fad8658fb33764830ad
|
||
msgid "Packaging"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:354
|
||
#: 575b556539994d1190e50cbfd0133bd4
|
||
msgid ":issue:`Nix package <190>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:355
|
||
#: f8facef108bf4d668509e57200f732bb
|
||
msgid ":issue:`Docker / OCI package <59>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:358
|
||
#: 92825d26f07c4b718121c2784a9b6b81
|
||
msgid "And beyond"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:360
|
||
#: ac17ddb06c4d400ebc190454535608c2
|
||
msgid ":issue:`OpenID Connect certification <182>`"
|
||
msgstr ""
|
||
|
||
#: ../features.rst:361
|
||
#: 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
|
||
#: 810cab23bf5f4e0bbe5e403092b4739f
|
||
#: 2b944a79e15441a28501202fb405ceec
|
||
#: 337385bfcd154b46942fd5cc685e3c53
|
||
#: 3c51398f5ef14fafac576c18c1938015
|
||
#: f7857604a6af425d92b5f49a3a571724
|
||
#: 50ab489bedfa413b941eaca1514e779e
|
||
#: 817fa12a167549c2b2dcda5cf8aca990
|
||
#: e144249ab1e4497a8e2b59433d28dd94
|
||
#: 8e13e364d31643ebbcbea2ec3c48cebb
|
||
#: 93521a77f0084af9b274926a73bb1866
|
||
#: 979aef4626814c74bd3208394714d692
|
||
#: 145d1e9e3fe74947b6695497c7f75b40
|
||
#: 7e7e2edd89534686997d302f673e5005
|
||
#: 2d123fd2ca8b46dbb63d2f8cd67b8a9b
|
||
#: 658ca5556e9b484884784c60355dcaba
|
||
#: ecc2c5a1d0ee4d75a8dabc1519c9b46f
|
||
#: e9427573b4fd4fea8baa73d3dfd6c901
|
||
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:1
|
||
#: a991a3b616044f2c932b1b5781575930
|
||
msgid "Read information about models."
|
||
msgstr ""
|
||
|
||
#: ../../canaille get:1
|
||
#: ff29fb8d5ce14bc291589af023d25348
|
||
msgid "Options can be used to filter models::"
|
||
msgstr ""
|
||
|
||
#: ../../canaille get:1
|
||
#: ebb9a30bb4ad418b937898f33eb3154d
|
||
msgid "Displays the matching models in JSON format in the standard output."
|
||
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:1
|
||
#: f1db85f49bf44d11a4bb25bef94995c7
|
||
msgid "Update models."
|
||
msgstr ""
|
||
|
||
#: ../../canaille set:1
|
||
#: 81f6f6bde2db46419feea67dae446a01
|
||
msgid "The command takes an model ID and edit one or several attributes::"
|
||
msgstr ""
|
||
|
||
#: ../../canaille set:1
|
||
#: 2605d2f99fff4a3685e4acb6c7d08749
|
||
msgid "Displays the edited model in JSON format in the standard output."
|
||
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
|
||
#: ../../canaille set authorizationcode:1
|
||
#: 272d0df08f904f519632f9fd2fe65385
|
||
#: 2f9f07b54e574b76b44a885d2edcee5f
|
||
msgid "IDENTIFIER should be a authorizationcode id or authorization_code_id"
|
||
msgstr ""
|
||
|
||
#: ../references/commands.rst:0
|
||
#: 68201cc09cab43ae872191c5e1e0de51
|
||
#: 797f38593b54447e9abe286cd709857c
|
||
#: 5f7b7a34cec54b7bb8813914c7b1da9e
|
||
#: e2da0bdb8e364ad4ac3fa9a24108e9c9
|
||
#: 7a653436ae5244b3915e22f7b337b441
|
||
#: 83d05fec78e043fcbf55d763d9664075
|
||
#: 314878b93dce45baac9f4ab7248087c2
|
||
#: 59d47562162a44fcb07558824e722d39
|
||
#: 811906b3e60e4f96bb46272adf7a2702
|
||
#: 9f85ada6864146db941a9b74f9dccdcc
|
||
#: e15f98264ca3466aa879164b237471d4
|
||
#: 23cb9085c4df46c5919811da9786751a
|
||
#: 22f22ab9560046afbb4b9dec19f5e0c6
|
||
msgid "Arguments"
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete authorizationcode:1
|
||
#: ../../canaille delete client:1
|
||
#: ../../canaille delete consent:1
|
||
#: ../../canaille delete group:1
|
||
#: ../../canaille delete token:1
|
||
#: ../../canaille delete user:1
|
||
#: ../../canaille reset-otp:1
|
||
#: ../../canaille set authorizationcode:1
|
||
#: ../../canaille set client:1
|
||
#: ../../canaille set consent:1
|
||
#: ../../canaille set group:1
|
||
#: ../../canaille set token:1
|
||
#: ../../canaille set user:1
|
||
#: cafe88a3ce2e428eac214691a4cceb5a
|
||
#: 7b2ff0501238407193726c30d9eca3c9
|
||
#: 0ba51222ad4a4533b4b41b1757a35c64
|
||
#: ea0c5446d43d40c49f2b92c5b3541ce9
|
||
#: 9ac86d8bfd664383a081e3c1ede9c96e
|
||
#: cd7e04caa435456ca0cf597a4cf2b866
|
||
#: 8d3a56d3d2d8434a96e06ee1db5c7f74
|
||
#: ee33e52044104463b44bf754ebc2bfd3
|
||
#: ec1ed557213c433f960f06a20c6305f0
|
||
#: 79fcf662ca834cb9bad46e70395f5c0d
|
||
#: a2446c9d8a43489f95b98774f9e95af2
|
||
#: c84e4574c2934d05b8911fbf5ff07255
|
||
#: bf9e0c9d41c44b8b8cdebcc4b7005f8f
|
||
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
|
||
#: ../../canaille set client:1
|
||
#: 1fe7624c6c204327b3dea4672369b25c
|
||
#: a507a2cde7be4e01b653d88b1143bcc1
|
||
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
|
||
#: ../../canaille set consent:1
|
||
#: c40a621613bb4a57ae61d0bf635d4be1
|
||
#: 36c566d3a8d64d98b3139d1d408e6e33
|
||
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
|
||
#: ../../canaille set group:1
|
||
#: f9bb7a0e3cb74e87bd9647b1d854d4c5
|
||
#: 2b44dcf76741473980e37c9fb1f972c9
|
||
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
|
||
#: ../../canaille set token:1
|
||
#: 5872d15912fa4904bc7429f1e6c4e4e5
|
||
#: 2e473a0a6bc4446eb92d334a50bad9e0
|
||
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
|
||
#: ../../canaille reset-otp:1
|
||
#: ../../canaille set user:1
|
||
#: e98462e8df9b4465af9a63c0bbf21546
|
||
#: d7cebb3763ed4824afd5b69c0a82f605
|
||
#: df12574865ac496e81bfdf5c8218cba0
|
||
msgid "IDENTIFIER should be a user id or user_name"
|
||
msgstr ""
|
||
|
||
#: ../../canaille create:1
|
||
#: 3f6211fedcff4c49a1a05bb0d923b452
|
||
msgid "Create models."
|
||
msgstr ""
|
||
|
||
#: ../../canaille create:1
|
||
#: dabf2e993c7e4f4e958ecf36a3a64cfa
|
||
msgid "The model attributes can be passed as command options::"
|
||
msgstr ""
|
||
|
||
#: ../../canaille create:1
|
||
#: 88fc347eb7814471b13dc9a6b562dd75
|
||
msgid "Displays the created model in JSON format in the standard output."
|
||
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:1
|
||
#: fd758e22b29a4fd4b7f1c92876768518
|
||
msgid "Delete models."
|
||
msgstr ""
|
||
|
||
#: ../../canaille delete:1
|
||
#: 42450f0ac5674556be84bcf4cc34c98f
|
||
msgid "The command takes a model ID and deletes it::"
|
||
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
|
||
#: 6c3d1ad364a84afb9586b1b62e42dedb
|
||
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
|
||
#: 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
|
||
#: 83d91b20c3204d09b61a4a6de8c84769
|
||
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
|
||
#: e8e7a0f78d68479a9586036adf25e183
|
||
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
|
||
#: ../../docstring of canaille.core.configuration.ACLSettings.PERMISSIONS:6
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.ACL:5
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:12
|
||
#: 56ce67b55d3b4d8eba9a07b4feed2587
|
||
#: d9b0f4816c2644679233ec3b797c2fc4
|
||
#: d9b0f4816c2644679233ec3b797c2fc4
|
||
#: 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_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
|
||
#: ../../docstring of canaille.core.configuration.CoreSettings.LOGGING:10
|
||
#: ba8b9d6794e2459492abfa778736328a
|
||
#: 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.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
|
||
#: ../../docstring of canaille.oidc.configuration.JWTSettings.PUBLIC_KEY:3
|
||
#: 29d2c1b105e74d46b80db01b78954711
|
||
#: 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 ""
|
||
|
||
#: ../../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/backends/models.py:docstring of canaille.backends.models.BackendModel:1
|
||
#: ../../canaille/backends/models.py:docstring of canaille.backends.models.Model:1
|
||
#: b407db3f81d14e789f9f7f2e2bec7613
|
||
#: b29fcc3a6bdc4ee582d1e14851e430b7
|
||
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.py:docstring of canaille.core.models.User:1
|
||
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.AuthorizationCode:1
|
||
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Client:1
|
||
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Consent:1
|
||
#: ../../canaille/oidc/basemodels.py:docstring of canaille.oidc.basemodels.Token:1
|
||
#: 31058fb082044629ab68e330524f37d4
|
||
#: 963c873782434df6bc7a6314e406858e
|
||
#: ec3b5ed7c8e94f728377c74990bc94e6
|
||
#: ec3b5ed7c8e94f728377c74990bc94e6
|
||
#: ec3b5ed7c8e94f728377c74990bc94e6
|
||
#: 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
|
||
#: ../../docstring of 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.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
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.client_secret:1
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.post_logout_redirect_uris:1
|
||
#: 05d209d5010c49c99c2e88fd070c5595
|
||
#: 05d209d5010c49c99c2e88fd070c5595
|
||
#: 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
|
||
#: ../../docstring of canaille.oidc.basemodels.Client.tos_uri:5
|
||
#: 470f3a6ebe5a470d97207d2d724d7a50
|
||
#: 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 ""
|
||
|
||
#: ../references/templates.rst:2
|
||
#: 25d974aba30140f4ad6e3445c3d71f50
|
||
msgid "Templates"
|
||
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
|
||
#: bff8a12ffd4b4d179d6938a046810186
|
||
#: 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
|
||
#: 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:9
|
||
#: 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:13
|
||
#: 5abc69c6a6ff4cd48e3f2b01cdaa1a52
|
||
msgid "Then the :attr:`CANAILLE_SCIM.ENABLE_SERVER <canaille.scim.configuration.SCIMSettings.ENABLE_SERVER>` configuration parameter must be enabled."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:23
|
||
#: 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:26
|
||
#: a5d6aea95b444cbb9d10731986ae66ac
|
||
msgid "Access control for clients on the SCIM API endpoint, to finely manage permissions depending on clients."
|
||
msgstr ""
|
||
|
||
#: ../tutorial/provisioning.rst:27
|
||
#: 98d88ce07bc640bcafedee10c9bbc98f
|
||
msgid "Client-side implementation, to broadcast user and groups modifications among all the clients."
|
||
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 ""
|