Éloi Rivard
f9989a960b
feat: locked users cannot be impersonated
2024-04-12 12:12:08 +02:00
Éloi Rivard
565d57a887
tests: split test_account.py
2024-04-12 11:23:51 +02:00
Éloi Rivard
4037c296cf
fix: JAVASCRIPT and HTMX configuration settings were ignored
2024-04-09 12:07:00 +02:00
Éloi Rivard
920395c27f
feat: sign in/out events are logged in #177
2024-04-09 10:04:26 +02:00
Éloi Rivard
053156ec18
feat: additional messages on password endpoint errors
...
when attempt_login is not found on the session, add a warning to be
displayed on the login page after redirection
2024-04-09 09:20:38 +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
fe2665ae32
fix: LDAP user group removal
2024-04-08 14:15:28 +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
Éloi Rivard
e9c4f4c1c9
refactor: differenciate between login and username in forms
2024-04-07 19:50:26 +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
efe3a3c4c4
refactor: assume ACL have default values
2024-03-30 17:21:40 +01:00
Éloi Rivard
8625318341
feat: use pydantic to validate the configuration
2024-03-28 17:44:26 +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
395b6ab4f3
chore: add docformatter pre-commit
2023-12-28 18:31:57 +01:00
Éloi Rivard
a4a381d088
refactor: gather endpoints in a 'endpoints' directory
2023-12-26 00:30:19 +01:00
Éloi Rivard
772a364128
fix: group field error prevented the registration form validation
2023-12-24 12:05:29 +01:00
Éloi Rivard
c847ef9284
feat: OIDC prompt=create implementation
2023-12-23 19:37:48 +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
49466012e7
chore: bump to flask 2.3
2023-12-14 22:01:08 +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
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
98e8aa9b39
fix: only the first password letter was used
2023-11-28 15:51:14 +01:00
Éloi Rivard
e6cf6ad7bd
tests: backport tests from sqlachemy branch
2023-11-24 12:10:17 +01:00
Éloi Rivard
97546452e9
tests: fix user password cardinality
2023-11-22 14:49:51 +01:00
Éloi Rivard
fd8a5ace74
tests: fix user attribute cardinalities
2023-11-22 14:47:48 +01:00
Éloi Rivard
b6cfa1517c
refactor: form model attributes coercion
2023-11-22 11:30:30 +01:00
Éloi Rivard
e6225671f9
tests: additional assertions on invitation tests
2023-11-21 18:52:53 +01:00
Éloi Rivard
3a39fc191a
refactor: remove models __delattr__ methods
2023-11-21 14:57:28 +01:00
Éloi Rivard
1fd8af2cf4
refactor: models attributes cardinality is closer to SCIM models
2023-11-17 21:21:25 +01:00
Éloi Rivard
40b868cfee
tests: multiple emails and phone_numbers
2023-10-02 21:58:46 +02:00
Éloi Rivard
46c795b3b5
refactor: only load oidc module if OIDC is configured
2023-09-15 17:56:23 +02:00
Éloi Rivard
8be771e41d
tests: fix CI
2023-08-31 22:44:06 +02:00
Éloi Rivard
553595c5ed
doc: model documentation
2023-08-17 16:11:24 +02:00
Éloi Rivard
5a9df64f68
feat: implement registration process
2023-08-15 16:31:44 +02:00
Éloi Rivard
d27aab8651
refactor: the core module has its own main blueprint
2023-08-14 13:52:24 +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
9940a98188
refactor: profile button action renaming
2023-07-30 23:08:29 +02:00
Éloi Rivard
1352752db8
refactor: utilities for form field readonliness
2023-07-24 18:07:35 +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
f686121f0d
Wording
2023-06-30 18:12:14 +02:00
Éloi Rivard
021c1b3d11
Pagination pluralization
2023-06-30 18:12:13 +02:00
Éloi Rivard
7ff2360174
send reset emails to all the user emails
2023-06-29 17:47:01 +02:00
Éloi Rivard
3ecb8b4722
Implements a flask Group converter
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
57af18d557
Use a unique identifier to indentify users in URLS
...
Previously we used the uid since we supposed this value was always
valid, but some users user the mail attribute as the User RDN in their
OpenLDAP installation, and do not have a uuid.
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
0342e30ec0
Fixed strings inadvertently refactored
2023-06-22 18:12:54 +02:00
Éloi Rivard
b7e1590510
User emails and phone numbers are now multiple
2023-06-22 17:55:26 +02:00
Éloi Rivard
8617fc0f2b
Implement multiple fields
2023-06-22 16:56:44 +02:00
Éloi Rivard
361fda0386
Renamed User.phone_number in User.phone_numbers
2023-06-22 15:33:03 +02:00
Éloi Rivard
b5bd497d0e
Implemented User.preferred_email
2023-06-22 15:24:13 +02:00
Éloi Rivard
371f806695
Renamed User.email in User.emails
2023-06-22 15:15:46 +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
e20fb23e6f
typo 'successfuly' -> 'successfully'
2023-05-30 09:44:11 +02:00
Éloi Rivard
38ee26db83
refactored User locking mechanism
2023-05-26 17:48:50 +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
c1d1706007
Moved every model import to canaille.models
2023-05-20 20:02:00 +02:00
Éloi Rivard
0b3362f4c5
Remove useless calls to slapd_server fixture
2023-05-20 18:28:31 +02:00
Éloi Rivard
6f637b8129
Refactored the unit test backend fixtures
2023-05-20 17:17:46 +02:00
Éloi Rivard
d2bb1aebeb
Additional User unit tests
2023-05-18 16:43:23 +02:00
Éloi Rivard
4f9dac8782
Tests the model mechanism
2023-05-17 18:19:05 +02:00
Éloi Rivard
61f2280f34
unit test explicit object reloading
2023-05-17 16:23:54 +02:00
Éloi Rivard
77c5d7ac7a
Improved account unit tests
2023-05-17 16:20:37 +02:00
Éloi Rivard
5836a0bd61
Use generic 'formatted_name' attribute instead of LDAP 'name'
2023-05-16 18:01:48 +02:00
Éloi Rivard
28e7d1c662
LDAPObject __getattr__ filters None values
2023-05-16 16:05:09 +02:00
Éloi Rivard
8162bd3e24
Fixes calls to the LDAP 'Group.member' attribute
2023-05-13 00:24:24 +02:00
Éloi Rivard
bace94b1f5
Explicit Group.get attributes
2023-05-13 00:19:32 +02:00
Éloi Rivard
1695331772
Fixes a call to the LDAP 'jpegPhoto' attribute
2023-05-12 20:02:19 +02:00
Éloi Rivard
65013403a1
Fixes a call to the LDAP 'userPassword' attribute
2023-05-12 20:00:13 +02:00
Éloi Rivard
6c5053afb1
Fixes a call to a LDAP named attribute, again
2023-05-12 18:51:50 +02:00
Éloi Rivard
02b553b9db
remove unnecessary step in the password reset unit test
2023-05-11 16:27:13 +02:00
Éloi Rivard
abf9a23ac8
unit tests: only use user_name to authenticate users
2023-05-11 15:33:34 +02:00
Éloi Rivard
6e6d15fec1
Fixed password initialization mail recipients
2023-05-05 10:53:48 +02:00
Éloi Rivard
e8e6060c74
ACL group filter can be simple group name instead of full dn
2023-05-02 16:25:00 +02:00
Éloi Rivard
c4676ec572
Update User group when save
is called
2023-04-17 18:43:43 +02:00
Éloi Rivard
4bfbeccc1c
Fixed empty models attributes registration
2023-04-13 18:02:20 +02:00
Éloi Rivard
0376a3bab8
Cleartext password in unit tests
2023-04-10 21:42:14 +02:00
Éloi Rivard
e2b96af1ee
Moved LDAP configuration entry to BACKENDS.LDAP
2023-04-10 20:31:54 +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
Éloi Rivard
a38ef06356
Re-organized commands tests
2023-04-09 14:35:58 +02:00
Éloi Rivard
08f8bfbfdb
Moved user and group management in the core submodule
2023-04-09 13:34:38 +02:00