Éloi Rivard
|
fbbcd2fe78
|
fix: saving an object with the LDAP backend keeps the objectClass un-managed by Canaille
|
2024-04-08 10:29:47 +02:00 |
|
Éloi Rivard
|
fecfcfa8f3
|
refactor: factorize Model.__html__
|
2024-04-07 20:23:43 +02:00 |
|
Éloi Rivard
|
702eec7aca
|
fix: MemoryModel.model_attribute type hint
|
2024-04-07 20:21:30 +02:00 |
|
Éloi Rivard
|
88832b5b3b
|
refactor: move User.check_password and User.set_password methods to Backend
|
2024-04-07 20:17:15 +02:00 |
|
Éloi Rivard
|
5a6ce24074
|
refactor: move User.get_from_login method to Backend
|
2024-04-07 20:17:15 +02:00 |
|
Hosted Weblate
|
2082e19480
|
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-04-07 19:50:35 +02:00 |
|
Éloi Rivard
|
e9c4f4c1c9
|
refactor: differenciate between login and username in forms
|
2024-04-07 19:50:26 +02:00 |
|
Éloi Rivard
|
6251455a1d
|
perf: cache the class attributes
|
2024-04-07 19:22:54 +02:00 |
|
Éloi Rivard
|
2cab4bfa66
|
refactor: use User.get instead of User.get_from_login when this is pertinent
|
2024-04-07 18:46:08 +02:00 |
|
Éloi Rivard
|
e339d1169d
|
refactor: User.has_password factorization
|
2024-04-07 18:33:43 +02:00 |
|
Éloi Rivard
|
e317780e1d
|
fix: infinite recursion due to a typo
|
2024-04-07 17:43:20 +02:00 |
|
Éloi Rivard
|
ebf790a5bd
|
doc: add User permissions docstrings
|
2024-04-07 17:34:19 +02:00 |
|
Éloi Rivard
|
c0a28c1480
|
refactor: set default values for core models
|
2024-04-07 16:51:55 +02:00 |
|
Éloi Rivard
|
b6c59b3eda
|
refactor: add some typing to models
|
2024-04-07 16:39:05 +02:00 |
|
Éloi Rivard
|
1fbb074cc5
|
refactor: user permissions lazy loading
|
2024-04-07 15:21:32 +02:00 |
|
Éloi Rivard
|
30bd71c5b5
|
tests: fix coverage
|
2024-04-07 09:33:56 +02:00 |
|
Éloi Rivard
|
f113188368
|
refactor: factorize match_filter in the main User class
|
2024-04-07 01:25:44 +02:00 |
|
Éloi Rivard
|
76cd3dc169
|
refactor: remove LDAPObject.get unused parameter
|
2024-04-07 00:36:52 +02:00 |
|
Éloi Rivard
|
945daee715
|
refactor: prefer typing.get_type_hints to __annotations__
|
2024-04-06 23:22:38 +02:00 |
|
Éloi Rivard
|
75837fa207
|
refactor: model attributes are walked from the top to the bottom
|
2024-04-06 22:46:11 +02:00 |
|
Éloi Rivard
|
fe809161ff
|
refactor: factorized User.load_permissions
|
2024-04-06 19:22:47 +02:00 |
|
Éloi Rivard
|
e02b54f327
|
refactor: locally store the model names in lowercase
|
2024-04-06 18:21:50 +02:00 |
|
Éloi Rivard
|
f06f0c4e25
|
doc: fix references to BackendModel
|
2024-04-05 16:09:20 +02:00 |
|
Éloi Rivard
|
7734ed185e
|
refactor: the id attribute is attached to the Model class
|
2024-04-05 16:05:17 +02:00 |
|
Éloi Rivard
|
47ef573917
|
refactor: fix coverage
|
2024-04-05 15:59:17 +02:00 |
|
Éloi Rivard
|
ec7a721336
|
refactor: ldap objects id attribute is based on entryUUID instead of dn
|
2024-04-05 15:35:49 +02:00 |
|
Éloi Rivard
|
7b054bb571
|
refactor: ldap backend use a server control to re-read objects after update
|
2024-04-05 14:34:48 +02:00 |
|
Éloi Rivard
|
ab17137cd6
|
refactor: ldapbackend explicitly uses the DN attribute for LDAP operations
|
2024-04-03 09:40:10 +02:00 |
|
Éloi Rivard
|
951ad364f1
|
doc: fix references to native python types
|
2024-04-02 09:27:47 +02:00 |
|
Éloi Rivard
|
09391f0a1d
|
doc: fix reference to DEBUG setting
|
2024-04-02 09:22:12 +02:00 |
|
Éloi Rivard
|
4344bfacbc
|
refactor: set default values for models
|
2024-04-01 18:55:13 +02:00 |
|
Éloi Rivard
|
18e3f8cde5
|
refactor: split the base model class in two
|
2024-04-01 18:55:05 +02:00 |
|
Éloi Rivard
|
0363a0a76e
|
refactor: remove unused var
|
2024-04-01 15:02:26 +02:00 |
|
Éloi Rivard
|
89354e281f
|
refactor: memory backend use __getattribute__ instead of __getattr__
|
2024-04-01 15:02:19 +02:00 |
|
Éloi Rivard
|
a795c8460b
|
refactor: memory model keys are not models anymore
|
2024-04-01 15:01:53 +02:00 |
|
Éloi Rivard
|
b571818755
|
refactor: MemoryModel - rename klass in model
|
2024-04-01 15:01:12 +02:00 |
|
Éloi Rivard
|
fbd0d3029e
|
refactor: rename User read/write/permissions attributes
|
2024-04-01 14:59:56 +02:00 |
|
Éloi Rivard
|
48d6065e1c
|
refactor: memory model variable renaming
|
2024-04-01 14:59:40 +02:00 |
|
Éloi Rivard
|
006bf08b3d
|
refactor: improve memory model serialization
do not systematically store every attributes as a list
|
2024-03-31 12:06:19 +02:00 |
|
Éloi Rivard
|
8834c65bea
|
refactor: backend memory deserialize method
|
2024-03-31 01:20:39 +01:00 |
|
Éloi Rivard
|
d2df12236d
|
refactor: move memory backend methods as classmethods
|
2024-03-31 01:05:48 +01:00 |
|
Éloi Rivard
|
fa45ef6907
|
refactor: delete an unused index layer in the memory backend
|
2024-03-31 00:23:43 +01:00 |
|
Éloi Rivard
|
642e6fcd3f
|
fix: use one single faker generator for fake groups generation
|
2024-03-31 00:12:56 +01:00 |
|
Éloi Rivard
|
0a2d3d4629
|
fix: permissions loading with the SQL backend
|
2024-03-31 00:07:16 +01:00 |
|
Éloi Rivard
|
58b967a43e
|
refactor: reliably detect the model attribute cardinality
|
2024-03-30 23:39:09 +01:00 |
|
Éloi Rivard
|
7418d10efb
|
refactor: make User and Group directly inherit from Model
|
2024-03-30 18:48:03 +01:00 |
|
Éloi Rivard
|
efe3a3c4c4
|
refactor: assume ACL have default values
|
2024-03-30 17:21:40 +01:00 |
|
Éloi Rivard
|
f2dbda8c89
|
doc: fixed logging example
|
2024-03-30 11:40:05 +01:00 |
|
Éloi Rivard
|
06049d27a4
|
feat: better error messages when Canaille is launched without configuration
|
2024-03-29 19:31:01 +01:00 |
|
Éloi Rivard
|
163c0155b7
|
fix: OIDC JWT settings initialization
|
2024-03-29 17:30:12 +01:00 |
|
Éloi Rivard
|
e9c36dffd5
|
fix: OIDC feature detection
|
2024-03-29 17:17:06 +01:00 |
|
Éloi Rivard
|
e299c84cab
|
fix: default LDAP USER_FILTER
|
2024-03-29 14:45:04 +01:00 |
|
É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 |
|