Commit graph

984 commits

Author SHA1 Message Date
É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