Éloi Rivard
|
4cd3d51de5
|
doc: fix LOGGING code snippet
|
2024-03-29 12:17:24 +01:00 |
|
Éloi Rivard
|
a6bd3e6002
|
chore: remove unused guard
|
2024-03-29 12:00:20 +01:00 |
|
Éloi Rivard
|
3592b40f03
|
fix: i18n warnings on project installation
|
2024-03-29 11:16:13 +01:00 |
|
Éloi Rivard
|
37d17b43aa
|
fix: python<3.10 union types
|
2024-03-29 10:56:21 +01:00 |
|
Éloi Rivard
|
be2fa8b7f5
|
doc: minor various improvements
|
2024-03-29 09:35:29 +01:00 |
|
Éloi Rivard
|
4067634c40
|
Merge branch 'conf-class' into 'main'
use pydantic to validate the configuration
See merge request yaal/canaille!170
|
2024-03-28 16:45:28 +00:00 |
|
Éloi Rivard
|
8625318341
|
feat: use pydantic to validate the configuration
|
2024-03-28 17:44:26 +01:00 |
|
gallegonovato
|
02656516e0
|
Translated using Weblate (Spanish)
Currently translated at 100.0% (365 of 365 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/es/
|
2024-03-28 15:01:52 +01:00 |
|
Éloi Rivard
|
97470bffe6
|
doc: better translation documentation
|
2024-03-28 14:22:07 +01:00 |
|
Hosted Weblate
|
7aaef0d606
|
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/
|
2024-03-27 14:08:11 +01:00 |
|
Éloi Rivard
|
5cbb157e02
|
Translated using Weblate (French)
Currently translated at 100.0% (366 of 366 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/fr/
|
2024-03-27 14:08:11 +01:00 |
|
Éloi Rivard
|
bd003ec53d
|
fix: wording uniformization
|
2024-03-27 14:07:52 +01:00 |
|
Hosted Weblate
|
3ee6533432
|
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/
|
2024-03-27 14:01:59 +01:00 |
|
Éloi Rivard
|
9dac4185b9
|
feat: use flask-babel to format the number of consents
|
2024-03-27 14:01:43 +01:00 |
|
Éloi Rivard
|
f0fe9c2fb5
|
feat: use flask-babel to format the number of group members
|
2024-03-27 13:59:02 +01:00 |
|
Éloi Rivard
|
ffa12b0f71
|
feat: created and last_modified model attributes
|
2024-03-27 13:57:38 +01:00 |
|
Éloi Rivard
|
62d29a00bb
|
feat: use flask-babel to format numbers
|
2024-03-26 20:22:32 +01:00 |
|
Éloi Rivard
|
265f266638
|
chore: use the standard tomllib python module instead of toml starting from python 3.11
|
2024-03-26 13:57:14 +01:00 |
|
Éloi Rivard
|
ad71934a28
|
chore: bump to htmx 1.9.11
|
2024-03-21 16:19:15 +01:00 |
|
Éloi Rivard
|
2dd5b09afe
|
doc: update flask doc link
|
2024-03-16 13:48:55 +01:00 |
|
Éloi Rivard
|
edebf189dd
|
doc: update flask doc link
|
2024-03-16 13:47:49 +01:00 |
|
Éloi Rivard
|
dc81832159
|
feat: usedefault python logging configuration format
|
2024-03-15 20:12:07 +01:00 |
|
Éloi Rivard
|
4edffcaa9f
|
chore: use isort instead of reoder-python-imports
|
2024-03-15 19:58:37 +01:00 |
|
Éloi Rivard
|
9af9a303ba
|
refactor: use modern faker calls
https://github.com/joke2k/faker/pull/1991
|
2024-02-16 09:15:41 +01:00 |
|
Éloi Rivard
|
d49e669cab
|
fix: avoid to fail on imports if cryptography is missing
|
2023-12-29 17:17:19 +01:00 |
|
Éloi Rivard
|
395b6ab4f3
|
chore: add docformatter pre-commit
|
2023-12-28 18:31:57 +01:00 |
|
Éloi Rivard
|
e8b620588e
|
refactor: LDAP backend initialization
|
2023-12-27 10:57:22 +01:00 |
|
Éloi Rivard
|
a237fa0198
|
chore: pre-commit update
|
2023-12-26 01:13:11 +01:00 |
|
Éloi Rivard
|
a4a381d088
|
refactor: gather endpoints in a 'endpoints' directory
|
2023-12-26 00:30:19 +01:00 |
|
Éloi Rivard
|
38038d8db9
|
refactor: use 'url_for' in templates instead of static urls
|
2023-12-25 20:15:21 +01:00 |
|
Éloi Rivard
|
5c11ebf0d3
|
feat: ldap connection is lazilly opened
|
2023-12-25 14:26:08 +01:00 |
|
Éloi Rivard
|
d0dbaa588c
|
refactor: no more explicit conn argument in the LDAP backend
|
2023-12-25 14:03:47 +01:00 |
|
Éloi Rivard
|
95882c737b
|
fix: LDAP backend connection error display
|
2023-12-25 13:56:57 +01:00 |
|
Éloi Rivard
|
d4712b7971
|
refactor: backend cleanups
|
2023-12-25 13:22:43 +01:00 |
|
Éloi Rivard
|
6dac4a1ca8
|
tests: fix github CI, again
|
2023-12-24 13:14:38 +01:00 |
|
Éloi Rivard
|
92c2e864af
|
tests: fix github CI
|
2023-12-24 13:03:35 +01:00 |
|
Éloi Rivard
|
772a364128
|
fix: group field error prevented the registration form validation
|
2023-12-24 12:05:29 +01:00 |
|
Éloi Rivard
|
06b60e1747
|
fix: post_logout_redirect_uris was ignored during OIDC dynamic registration
|
2023-12-23 21:32:31 +01:00 |
|
Éloi Rivard
|
c847ef9284
|
feat: OIDC prompt=create implementation
|
2023-12-23 19:37:48 +01:00 |
|
Éloi Rivard
|
521ed75f18
|
fix: correctly set up Client audience during OIDC dynamic registration
|
2023-12-23 19:37:14 +01:00 |
|
Éloi Rivard
|
9ff0411e9e
|
tests: extracted the prompt tests in a dedicated file
|
2023-12-22 21:18:02 +01:00 |
|
Éloi Rivard
|
445d854af1
|
feat: THEME can be a relative path
|
2023-12-22 18:00:07 +01:00 |
|
Éloi Rivard
|
97394823bf
|
fix: return a 403 error when users are missing permissions for OIDC authentication
|
2023-12-22 16:39:20 +01:00 |
|
Éloi Rivard
|
52fc93a481
|
refactor: avoid to directly use the 'configuration' fixture in tests
|
2023-12-19 18:28:04 +01:00 |
|
Éloi Rivard
|
7fed235437
|
fix: redirection after password reset
|
2023-12-15 16:12:33 +01:00 |
|
Éloi Rivard
|
67733699aa
|
fix: OIDC Userinfo endpoint is also available in POST
|
2023-12-15 12:03:21 +01:00 |
|
Éloi Rivard
|
7c06d8d51e
|
refactor: custom error pages are only loaded when themer is loaded
|
2023-12-15 11:58:25 +01:00 |
|
Éloi Rivard
|
214b16db37
|
fix: another mimetype guard
|
2023-12-15 11:02:31 +01:00 |
|
Éloi Rivard
|
3255eaa31c
|
fix: a crash when no ACL was defined
|
2023-12-15 10:50:53 +01:00 |
|
Éloi Rivard
|
11f969a71f
|
fix: don't crash when mimetype detection fails
|
2023-12-15 10:25:08 +01:00 |
|
Éloi Rivard
|
8f4a402c84
|
doc: client attribute description based on oauth/oidc specs
|
2023-12-14 23:22:33 +01:00 |
|
Éloi Rivard
|
c0f0114496
|
doc: user and group attribute description based on scim specs
|
2023-12-14 23:08:17 +01:00 |
|
Éloi Rivard
|
88aa9e27fb
|
fix: get_mail_domain ignores the server port
|
2023-12-14 19:24:09 +01:00 |
|
Éloi Rivard
|
02a7e84833
|
feat: raise an exception when toml is not installed and a configuration file is passed in the environment
|
2023-12-14 16:04:46 +01:00 |
|
Éloi Rivard
|
066aed7735
|
feat: convert the png in webp
|
2023-12-01 22:09:54 +01:00 |
|
Éloi Rivard
|
e09a3071d4
|
fix: handle 4xx and 5xx error codes with htmx
|
2023-12-01 11:49:09 +01:00 |
|
Éloi Rivard
|
a7e574f754
|
feat: use sqlalchemy-utils PasswordType to store and hash user passwords
|
2023-12-01 09:29:59 +01:00 |
|
Éloi Rivard
|
410d464242
|
refactor: force objects to be string for hashing
|
2023-11-28 18:51:28 +01:00 |
|
Éloi Rivard
|
969f3e980c
|
fix: password comparision was too permissive on login
|
2023-11-28 18:10:47 +01:00 |
|
Éloi Rivard
|
aa07059357
|
fix: password and initalization emails were only sent to the preferred user email address
|
2023-11-28 17:59:50 +01:00 |
|
Éloi Rivard
|
15124f29bb
|
fix: incorrect user photo and group description cardinality
|
2023-11-28 15:54:41 +01:00 |
|
Éloi Rivard
|
98e8aa9b39
|
fix: only the first password letter was used
|
2023-11-28 15:51:14 +01:00 |
|
Éloi Rivard
|
c2250ec77e
|
fix: password reset and initialization mail sending
Password reset and initialization mails were not sent at all the user
addresses if one email address could not be reached.
|
2023-11-28 15:27:08 +01:00 |
|
Éloi Rivard
|
d9dbd8ad0e
|
fix: crash when LDAP groups are refering to unexisting users
|
2023-11-28 09:37:37 +01:00 |
|
Éloi Rivard
|
e1f54fffbc
|
fix: demo client issue date
|
2023-11-24 15:24:46 +01:00 |
|
Éloi Rivard
|
4e380436d3
|
fix: disable HTMX boosting during the OIDC dance
|
2023-11-24 14:45:59 +01:00 |
|
Éloi Rivard
|
d55489f24c
|
chore: bump to htmx 1.9.9
|
2023-11-24 14:10:42 +01:00 |
|
Éloi Rivard
|
27639081f0
|
feat: implement sqlalchemy backend
Co-authored-by: Loan Robert <loan@yaal.coop>
|
2023-11-24 13:57:46 +01:00 |
|
Éloi Rivard
|
ff2ff68023
|
refactor: additional guards on user profile edition
|
2023-11-24 12:47:09 +01:00 |
|
Éloi Rivard
|
9cf17953ee
|
refactor: remove an useless OIDC guard
|
2023-11-24 12:45:41 +01:00 |
|
Éloi Rivard
|
8c2814c852
|
refactor: Backend.session can take parameters
|
2023-11-24 12:43:40 +01:00 |
|
Éloi Rivard
|
ac149a2120
|
fix: group name displaying
|
2023-11-24 11:47:09 +01:00 |
|
Éloi Rivard
|
02c8f0b177
|
refactor: Backend.install calls uniformization
|
2023-11-24 11:13:17 +01:00 |
|
Éloi Rivard
|
8a5dd04c87
|
refactor: OIDC client management factorization, again
|
2023-11-24 09:30:52 +01:00 |
|
Éloi Rivard
|
a308a40b11
|
refactor: OIDC client management factorization
|
2023-11-24 09:26:15 +01:00 |
|
Éloi Rivard
|
7494800e57
|
fix: OIDC client 'client_secret_expires_at' claim must be 0, not None
|
2023-11-23 09:15:40 +01:00 |
|
Éloi Rivard
|
79e547fc10
|
refactor: OIDC token scopes are stored as lists
|
2023-11-22 16:36:42 +01:00 |
|
Éloi Rivard
|
fd77bd5637
|
refactor: OIDC authorization codes scopes are stored as lists
|
2023-11-22 16:30:38 +01:00 |
|
Éloi Rivard
|
e504c73b38
|
chore: remove useless var
|
2023-11-22 12:30:17 +01:00 |
|
Éloi Rivard
|
1e9c77ad6d
|
refactor: compare models in memory backend user.load_permissions
|
2023-11-22 12:20:53 +01:00 |
|
Éloi Rivard
|
62a9c320c3
|
fix: user formatted_name cardinality on user creation form
|
2023-11-22 11:44:44 +01:00 |
|
Éloi Rivard
|
b6cfa1517c
|
refactor: form model attributes coercion
|
2023-11-22 11:30:30 +01:00 |
|
Éloi Rivard
|
3752693480
|
refactor: use wtforms readonly validator
|
2023-11-21 18:34:59 +01:00 |
|
Éloi Rivard
|
bc56105b28
|
fix: remove useless print
|
2023-11-21 17:59:11 +01:00 |
|
Éloi Rivard
|
f2e5eb36ee
|
fix: fake user generate attribute cardinality
|
2023-11-21 16:36:31 +01:00 |
|
Éloi Rivard
|
4616725651
|
refactor: fix group edition attribute cardinality
|
2023-11-21 16:30:12 +01:00 |
|
Éloi Rivard
|
ce022ec8fe
|
refactor: simplify user profile form data initialization
|
2023-11-21 16:07:11 +01:00 |
|
Éloi Rivard
|
3a39fc191a
|
refactor: remove models __delattr__ methods
|
2023-11-21 14:57:28 +01:00 |
|
Éloi Rivard
|
771d3952a3
|
feat: OIDC password grant supports other client authentication methods
|
2023-11-18 19:20:14 +01:00 |
|
Éloi Rivard
|
1fd8af2cf4
|
refactor: models attributes cardinality is closer to SCIM models
|
2023-11-17 21:21:25 +01:00 |
|
Éloi Rivard
|
0ee374dea7
|
tests: back to 100% coverage
|
2023-11-16 18:06:23 +01:00 |
|
Éloi Rivard
|
134b4c5f50
|
fix: better logout error message
|
2023-11-13 18:40:01 +01:00 |
|
Éloi Rivard
|
e760c34942
|
feat: collapse the icon column in the list tables
|
2023-10-06 15:36:02 +02:00 |
|
Éloi Rivard
|
0574460fe6
|
fix: when LDAP servers are down, rendering error pages would raise an exception
|
2023-10-02 14:06:06 +02:00 |
|
Éloi Rivard
|
88dcf94750
|
Revert "tests: domain is localhost.local"
This reverts commit 44aed27719 .
|
2023-10-01 15:42:16 +02:00 |
|
Éloi Rivard
|
5b039d8f4f
|
chore: bump to htmx 1.9.6
|
2023-09-29 12:57:37 +02:00 |
|
Éloi Rivard
|
9c5ef421d0
|
fix: user deletion on instances without account lockability
|
2023-09-28 18:27:43 +02:00 |
|
Éloi Rivard
|
44aed27719
|
tests: domain is localhost.local
|
2023-09-20 09:54:17 +02:00 |
|
Éloi Rivard
|
f5083d0b15
|
fix: unique type in token memory model
|
2023-09-18 23:55:46 +02:00 |
|
Éloi Rivard
|
d7c6896093
|
refactor: move get_jkws method in oauth.py
|
2023-09-18 23:02:48 +02:00 |
|
Éloi Rivard
|
46c795b3b5
|
refactor: only load oidc module if OIDC is configured
|
2023-09-15 17:56:23 +02:00 |
|
Éloi Rivard
|
7e3cb6ba53
|
fix: inline form validation in the profile edition page
|
2023-09-11 18:28:47 +02:00 |
|
Éloi Rivard
|
17f84e4ce4
|
fix: silence faker debug logs
|
2023-09-11 18:20:17 +02:00 |
|
Éloi Rivard
|
4d397906bd
|
fix: translation compilation warnings
|
2023-09-11 18:15:42 +02:00 |
|
Éloi Rivard
|
c2e6158bf5
|
fix: use fomantic-ui equal width menu on submenus
|
2023-09-08 09:07:04 +02:00 |
|
Éloi Rivard
|
cbecb34c4e
|
chore: bump to fomanticui 2.9.3
|
2023-09-08 09:07:03 +02:00 |
|
Éloi Rivard
|
a2e3fce204
|
feat: flask-babel and pytz are now part of the front extras
|
2023-09-01 10:46:56 +02:00 |
|
Éloi Rivard
|
c0bf10dce7
|
chore: remove remaning datatables files
|
2023-09-01 09:27:52 +02:00 |
|
Éloi Rivard
|
a7b3d4be88
|
feat: user login redirections
if users login during the authorization phase, they
get redirected to the authorization page afterwards
|
2023-09-01 09:12:40 +02:00 |
|
Éloi Rivard
|
8be771e41d
|
tests: fix CI
|
2023-08-31 22:44:06 +02:00 |
|
Éloi Rivard
|
f6abd1e22f
|
refactor: avoid to build one form per button in the pagination toolbar
|
2023-08-27 16:33:48 +02:00 |
|
Éloi Rivard
|
c718f7b258
|
refactor: remove unnecessary htmx 1506 workarounds
fixes #143
|
2023-08-27 16:25:30 +02:00 |
|
Éloi Rivard
|
89f5c09a6a
|
chore: bump to htmx 1.9.5
|
2023-08-27 16:19:23 +02:00 |
|
Éloi Rivard
|
21ea0238b5
|
OIDC jwks endpoint do not return empty kid claim
|
2023-08-26 19:59:44 +02:00 |
|
Éloi Rivard
|
26f1a0fbc5
|
fix: use importlib instead of the deprecated pkg_resources
|
2023-08-26 16:50:01 +02:00 |
|
Éloi Rivard
|
2a38bcb3fc
|
chore: typo
|
2023-08-23 16:48:40 +02:00 |
|
Éloi Rivard
|
77cccc3a10
|
doc: better model inheritance to generate a clearer documentation
|
2023-08-23 16:41:41 +02:00 |
|
Éloi Rivard
|
67b0669fa8
|
doc: models types draft
|
2023-08-23 15:18:43 +02:00 |
|
Éloi Rivard
|
8b98726348
|
refactor: User.login and User.logout methods moved to app.flask module
|
2023-08-23 14:56:56 +02:00 |
|
Éloi Rivard
|
553595c5ed
|
doc: model documentation
|
2023-08-17 16:11:24 +02:00 |
|
Éloi Rivard
|
96ccf12ad9
|
feat: split installation in different extras packages
|
2023-08-17 14:34:30 +02:00 |
|
Éloi Rivard
|
588ec8792e
|
Implement a dummy inmemory backend
|
2023-08-17 12:33:45 +02:00 |
|
Éloi Rivard
|
4f89f4ff29
|
Translated using Weblate (French)
Currently translated at 100.0% (367 of 367 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/fr/
|
2023-08-16 17:54:29 +02:00 |
|
gallegonovato
|
be27345ee3
|
Translated using Weblate (Spanish)
Currently translated at 100.0% (367 of 367 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/es/
|
2023-08-16 17:54:28 +02:00 |
|
Éloi Rivard
|
37c2a7d4de
|
refactor: joinform email validation in a separate method
|
2023-08-16 17:45:39 +02:00 |
|
Hosted Weblate
|
4504650ea5
|
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/
|
2023-08-15 17:04:36 +02:00 |
|
Éloi Rivard
|
0cd713ed09
|
Translated using Weblate (French)
Currently translated at 100.0% (367 of 367 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/fr/
|
2023-08-15 17:04:35 +02:00 |
|
gallegonovato
|
3ceeb3efe1
|
Translated using Weblate (Spanish)
Currently translated at 98.6% (362 of 367 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/es/
|
2023-08-15 17:04:35 +02:00 |
|
Éloi Rivard
|
ccaba0b9d5
|
feat: registration email admin debug page
|
2023-08-15 17:00:38 +02:00 |
|
Éloi Rivard
|
c4274d1030
|
fix: fix impersonate success message
|
2023-08-15 16:48:21 +02:00 |
|
Hosted Weblate
|
4c06fe7faf
|
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/
|
2023-08-15 16:39:19 +02:00 |
|
Éloi Rivard
|
78d7e43971
|
chore: update babel catalogs
|
2023-08-15 16:36:58 +02:00 |
|
Éloi Rivard
|
5a9df64f68
|
feat: implement registration process
|
2023-08-15 16:31:44 +02:00 |
|
Éloi Rivard
|
29b50dc25e
|
remove onboarding screen
|
2023-08-15 12:40:18 +02:00 |
|
Éloi Rivard
|
b60dbebd28
|
Merge branch 'main' into registration
|
2023-08-15 00:48:49 +02:00 |
|
Éloi Rivard
|
fc252acaaa
|
refactor: user permission sugar
|
2023-08-14 16:25:12 +02:00 |
|
Éloi Rivard
|
e55b56419d
|
refactor: extract auth.py from account.py
|
2023-08-14 16:15:41 +02:00 |
|
Éloi Rivard
|
321eb487ad
|
refactor: moved template logic from 'theme/base.html' to 'template/base.html'
|
2023-08-14 15:48:56 +02:00 |
|
Éloi Rivard
|
191791ac72
|
fix: import render_template from flask_themer instead of flask
|
2023-08-14 15:45:25 +02:00 |
|
Éloi Rivard
|
324b36c829
|
refactor: template overhaul
|
2023-08-14 15:28:20 +02:00 |
|
Éloi Rivard
|
d27aab8651
|
refactor: the core module has its own main blueprint
|
2023-08-14 13:52:24 +02:00 |
|
Éloi Rivard
|
c6a543535c
|
tests: fix coverage
|
2023-08-13 22:17:00 +02:00 |
|
Éloi Rivard
|
c895366684
|
refactor: store user profile in g.user
|
2023-08-13 22:08:28 +02:00 |
|
Éloi Rivard
|
03af0bd249
|
Translated using Weblate (French)
Currently translated at 100.0% (357 of 357 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/fr/
|
2023-08-09 16:52:28 +02:00 |
|
gallegonovato
|
0cc7a2a8cb
|
Translated using Weblate (Spanish)
Currently translated at 100.0% (357 of 357 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/es/
|
2023-08-09 16:52:28 +02:00 |
|
Éloi Rivard
|
05a1ff21d1
|
fix: email address field translations
|
2023-08-08 14:26:46 +02:00 |
|
Éloi Rivard
|
cdd25d97ce
|
Translated using Weblate (French)
Currently translated at 100.0% (357 of 357 strings)
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/fr/
|
2023-08-06 17:55:02 +02:00 |
|
Hosted Weblate
|
2315e8f010
|
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: Canaille/Canaille
Translate-URL: https://hosted.weblate.org/projects/canaille/canaille/
|
2023-08-06 12:16:56 +02:00 |
|
Éloi Rivard
|
000100154f
|
chore: update catalogs
|
2023-08-06 12:15:02 +02:00 |
|
Éloi Rivard
|
fd24c704c0
|
feat: implement email verification
|
2023-08-06 11:58:16 +02:00 |
|