Commit graph

129 commits

Author SHA1 Message Date
Éloi Rivard
288ad161d3
tests: test mail attachments mimetypes 2024-04-27 14:36:34 +02:00
Éloi Rivard
ebcaaeaded
tests: fix GHA
For some reasons, webp mimetypes failed to be guessed on GHA.
2024-04-27 14:06:20 +02:00
Éloi Rivard
dc89a20b11
chore: configure ruff 2024-04-23 22:12:04 +02:00
Éloi Rivard
afa0a6ff1e
feat: env_prefix create_app variable can select the environment var prefix 2024-04-22 18:10:49 +02:00
Éloi Rivard
7fc887a492
feat: ENV_FILE configuration variable can customize the .env file 2024-04-22 16:37:31 +02:00
Éloi Rivard
7ad592c4de
fix: compatibility with old session IDs 2024-04-09 15:45:47 +02:00
Éloi Rivard
f3bcdafb23
fix: clean the session cookie after logout 2024-04-09 11:56:51 +02:00
Éloi Rivard
5aaccca4cf
fix: display an error message when trying to remove the last user from a group 2024-04-08 14:44:15 +02:00
Éloi Rivard
1fbb074cc5
refactor: user permissions lazy loading 2024-04-07 15:21:32 +02:00
Éloi Rivard
e02b54f327
refactor: locally store the model names in lowercase 2024-04-06 18:21:50 +02:00
Éloi Rivard
fbd0d3029e
refactor: rename User read/write/permissions attributes 2024-04-01 14:59:56 +02:00
Éloi Rivard
06049d27a4
feat: better error messages when Canaille is launched without configuration 2024-03-29 19:31:01 +01:00
Éloi Rivard
a6bd3e6002
chore: remove unused guard 2024-03-29 12:00:20 +01:00
Éloi Rivard
8625318341
feat: use pydantic to validate the configuration 2024-03-28 17:44:26 +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
4edffcaa9f
chore: use isort instead of reoder-python-imports 2024-03-15 19:58:37 +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
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
445d854af1
feat: THEME can be a relative path 2023-12-22 18:00:07 +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
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
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
410d464242
refactor: force objects to be string for hashing 2023-11-28 18:51:28 +01:00
Éloi Rivard
e504c73b38
chore: remove useless var 2023-11-22 12:30:17 +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
1fd8af2cf4
refactor: models attributes cardinality is closer to SCIM models 2023-11-17 21:21:25 +01:00
Éloi Rivard
88dcf94750
Revert "tests: domain is localhost.local"
This reverts commit 44aed27719.
2023-10-01 15:42:16 +02:00
Éloi Rivard
44aed27719
tests: domain is localhost.local 2023-09-20 09:54:17 +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
8b98726348
refactor: User.login and User.logout methods moved to app.flask module 2023-08-23 14:56:56 +02:00
Éloi Rivard
96ccf12ad9
feat: split installation in different extras packages 2023-08-17 14:34:30 +02:00
Éloi Rivard
5a9df64f68
feat: implement registration process 2023-08-15 16:31:44 +02:00
Éloi Rivard
b60dbebd28
Merge branch 'main' into registration 2023-08-15 00:48:49 +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
c895366684
refactor: store user profile in g.user 2023-08-13 22:08:28 +02:00
Éloi Rivard
fd24c704c0
feat: implement email verification 2023-08-06 11:58:16 +02:00
Éloi Rivard
8fe8494587
feat: validate phone numbers 2023-08-03 19:08:34 +02:00
Éloi Rivard
1352752db8
refactor: utilities for form field readonliness 2023-07-24 18:07:35 +02:00
Éloi Rivard
4347fb572a
chore: rename HTMXForm to Form 2023-07-23 23:38:11 +02:00
Éloi Rivard
b4908d5e57
modals are HTML pages instead of JS elements
This will help providing the very same user experience for users with
and without javascript. We will still be able to re-enable javascript
modals in the future, but this should be done from the ground up, HTML
first and javascript after.
2023-07-18 18:34:10 +02:00
Éloi Rivard
54abdaea3b Dynamic model registration 2023-07-12 12:34:00 +02:00
Éloi Rivard
2da4c92d9e check command considers default backup values
at least until #138 is implement ...
2023-07-10 19:50:05 +02:00
Éloi Rivard
e37aab6cbc check command fix
the check command needs a backend context
2023-07-10 18:52:12 +02:00
Éloi Rivard
4f42798e39 Refactored keypair management 2023-07-01 19:06:26 +02:00
Éloi Rivard
52482ca19c Implements flask OIDC converters 2023-06-29 15:55:39 +02:00
Éloi Rivard
f504bb3a66 Implements a flask User converter 2023-06-29 15:55:39 +02:00
Éloi Rivard
4eda4f6c99 inline validation keep the profile indicator icons 2023-06-28 15:42:35 +02:00
Éloi Rivard
45ec950f5f Fixed FieldList readonly state 2023-06-28 13:26:15 +02:00
Éloi Rivard
bb95978376 Boosts webpages with HTMX
Fixes #144
Fixes #145
2023-06-26 17:17:07 +02:00
Éloi Rivard
8617fc0f2b Implement multiple fields 2023-06-22 16:56:44 +02:00
Éloi Rivard
0cbac78624 htmx: return a 400 error when a request sends an invalid form 2023-06-21 15:59:28 +02:00
Éloi Rivard
caf434a1fc debug template variable is available everywhere 2023-06-20 14:22:19 +02:00
Éloi Rivard
e9f17b26d6 form HTML macro refactoring 2023-06-19 18:10:14 +02:00
Éloi Rivard
a9d9d43152 Configuration entries can be loaded from files.
Co-authored-by: Sofi <sofi+git@mailbox.org>
2023-06-15 18:38:37 +02:00
Denise
d553d23ef3 Merge branch canaille:main into main 2023-06-12 13:36:07 +00:00
Éloi Rivard
23e9e7e71a Renamed Backend in BaseBackend 2023-06-05 18:10:37 +02:00
Denise
db72597cc0 Merge branch canaille:main into main 2023-06-05 07:34:49 +00:00
Éloi Rivard
c7f23e845c datetime-local input fields are transformed in UTC server-side 2023-06-01 13:53:32 +02:00
Denise Bitca
4beee2adcb add(#1, #2, #4, #7): implemented registration within canaille 2023-05-29 15:58:30 +02:00
Éloi Rivard
17c2f7a5cd Implemented LDAP ppolicy support. 2023-05-26 15:23:43 +02:00
Éloi Rivard
d8158d6a72 Use ruff linter 2023-05-25 13:37:58 +02:00
Éloi Rivard
a92542cd81 Moved models specificities in the backend module 2023-05-20 21:24:14 +02:00
Éloi Rivard
c75108344b Moved login placeholder mechanism in the backend module 2023-05-20 20:07:40 +02:00
Éloi Rivard
033d436878 Moved LDAP schema installation in the ldap backend module 2023-05-20 20:04:23 +02:00
Éloi Rivard
c1d1706007 Moved every model import to canaille.models 2023-05-20 20:02:00 +02:00
Éloi Rivard
30282e633b The LDAP Backend is now a class 2023-05-20 12:08:04 +02:00
Éloi Rivard
88179b23b8 fix non-generic model attribute calls 2023-05-11 16:02:32 +02:00
Éloi Rivard
fa62c16768 Moved canaille.ldap_backend to canaille.backends.ldap 2023-04-18 20:22:55 +02:00
Éloi Rivard
e2b96af1ee Moved LDAP configuration entry to BACKENDS.LDAP 2023-04-10 20:31:54 +02:00
Éloi Rivard
61f5d25f2f Creates a OIDC configuration section for all the OIDC related entries 2023-04-10 16:24:43 +02:00
Éloi Rivard
83f67331d3 Split commands in their dedicated modules 2023-04-09 21:58:11 +02:00
Éloi Rivard
79f12b1d0a 'app' submodule 2023-04-09 15:52:55 +02:00