Commit graph

195 commits

Author SHA1 Message Date
Éloi Rivard
9c5ef421d0
fix: user deletion on instances without account lockability 2023-09-28 18:27:43 +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
c2e6158bf5
fix: use fomantic-ui equal width menu on submenus 2023-09-08 09:07:04 +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
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
c718f7b258
refactor: remove unnecessary htmx 1506 workarounds
fixes #143
2023-08-27 16:25:30 +02:00
Éloi Rivard
26f1a0fbc5
fix: use importlib instead of the deprecated pkg_resources 2023-08-26 16:50:01 +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
37c2a7d4de
refactor: joinform email validation in a separate method 2023-08-16 17:45:39 +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
É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
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
05a1ff21d1
fix: email address field translations 2023-08-08 14:26:46 +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
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
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
f5af3e7a0c split long lines 2023-07-12 11:59:57 +02:00
Éloi Rivard
5b521d6315 Fixed email previews 2023-07-01 20:02:53 +02:00
Éloi Rivard
1a0a8096eb Enable jinja2 strict mode in unit tests 2023-07-01 19:56:13 +02:00
Éloi Rivard
fca92b7299 Correct plural labels for multiple fields 2023-06-30 17:39:35 +02:00
Éloi Rivard
966d361381 Restored login form customization
That was removed in 4217fc02
2023-06-30 16:22:04 +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
df34b1462d Flat is better than nested 2023-06-28 16:11:30 +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
42730f72d3 Fixed email unicity check 2023-06-22 16:41:35 +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
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 Bitca
c89bb48499 fix up style, attempt at fixing registration redirection bug 2023-06-05 10:38:24 +02:00
Denise Bitca
12a1119f99 fix up style 2023-06-05 10:37:19 +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
Éloi Rivard
e20fb23e6f typo 'successfuly' -> 'successfully' 2023-05-30 09:44:11 +02:00
Denise Bitca
4beee2adcb add(#1, #2, #4, #7): implemented registration within canaille 2023-05-29 15:58:30 +02:00
Denise Bitca
212358aaf3 add(#5): add method to send a "continue registration" email 2023-05-29 15:54:47 +02:00
Denise Bitca
49a7a70cc3 Merge branch 'main' of gitlab.com:yaal/canaille 2023-05-29 13:58:44 +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
8b68a862bf Profile settings edition redirects to the same page 2023-05-24 14:12:32 +02:00
Éloi Rivard
a92542cd81 Moved models specificities in the backend module 2023-05-20 21:24:14 +02:00
Éloi Rivard
a9f9eab5a4 password minimum length is not a magic constant anymore 2023-05-20 20:46:39 +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
6f637b8129 Refactored the unit test backend fixtures 2023-05-20 17:17:46 +02:00
Éloi Rivard
0c5a559bba Ensures User.formatted_name is correctly formatted when parts are missing 2023-05-17 16:18:35 +02:00
Éloi Rivard
be78b50e97 Removed User.authenticate method 2023-05-17 12:48:14 +02:00
Éloi Rivard
01c1ae4eef Rename LDAPObject.attrs to state 2023-05-16 15:48:05 +02:00
Éloi Rivard
26dc4d425c Display password recovery button on OIDC login page 2023-05-15 18:06:22 +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
ad388d2fac Fixes a call to the LDAP 'cn' attribute 2023-05-12 20:36:38 +02:00
Éloi Rivard
8f8ac5f31b Fixes a call to the LDAP 'uid' attribute 2023-05-12 19:53:06 +02:00
Éloi Rivard
6c5053afb1 Fixes a call to a LDAP named attribute, again 2023-05-12 18:51:50 +02:00
Éloi Rivard
534e0a507b Fixes a call to a LDAP named attribute 2023-05-12 18:45:32 +02:00
Éloi Rivard
c09b2b5321 Implemented LDAPObject __delattr__ 2023-05-11 23:34:10 +02:00
Éloi Rivard
9480e43ad9 Removed LDAPObject __getitem__ and __setitem__ methods 2023-05-11 23:08:39 +02:00
Éloi Rivard
df60821e29 Rename LDAPObject.attribute_table to attributes 2023-05-11 16:55:33 +02:00
Éloi Rivard
1167d336d9 fixes wrong attribute name in impersonate page flash message 2023-05-11 16:50:06 +02:00
Denise Bitca
d067ca4220 refactor(#55): removed debug print call 2023-05-08 11:48:49 +02:00
Denise Bitca
518548bb74 add(#55): added signup and onboarding routes in account route file 2023-05-08 11:47:23 +02:00
Denise Bitca
7537390fea add(#55): added join and onboarding forms 2023-05-08 11:44:21 +02:00
Éloi Rivard
6e6d15fec1 Fixed password initialization mail recipients 2023-05-05 10:53:48 +02:00
Éloi Rivard
00b13c95ad refer to 'groups' instead of ldap 'memberof' in the group edition page 2023-05-02 17:08:42 +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
0234c5945a User.logout excepts IndexError in case of invalid sessions 2023-04-18 20:36:48 +02:00
Éloi Rivard
fa62c16768 Moved canaille.ldap_backend to canaille.backends.ldap 2023-04-18 20:22:55 +02:00
Éloi Rivard
c4676ec572 Update User group when save is called 2023-04-17 18:43:43 +02:00
Éloi Rivard
edb64cbfe1 ACL filters are no more LDAP filters but user attribute mappings. 2023-04-14 19:53:16 +02:00
Éloi Rivard
e2b96af1ee Moved LDAP configuration entry to BACKENDS.LDAP 2023-04-10 20:31:54 +02:00
Éloi Rivard
8b0dbf2d55 Catch bare exceptions in populate commands instead of ldap specific exceptions 2023-04-09 23:56:06 +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
08f8bfbfdb Moved user and group management in the core submodule 2023-04-09 13:34:38 +02:00