Sabrina Demagny
495245a752
🐛 (domain) fix flaky test with translated email content
...
Do not test the content of emails sent with
a random user language
2025-03-14 12:26:52 +01:00
Sabrina Demagny
68ed5e4d55
✨ (domains) add periodic task to fetch domains status
...
Add celery crontab to check and update domains status.
This task calls dimail API.
2025-03-12 17:08:45 +01:00
Sabrina Demagny
ebc2b02d22
🐛 (domains) use a dedicated mail to invite user to manage domain
...
- modify models to allow to specify path to mail template
- rename team invitation template
- fix logo and text used for domain invitation email
2025-03-11 11:48:38 +01:00
Sabrina Demagny
701aeca763
🐛 (mailbox) fix mailbox creation email language
...
Don't forget to translate mail content before sending.
2025-03-10 15:14:05 +01:00
Sabrina Demagny
7a128393f6
✨ (api) define dimail timeout as a setting
...
Allow to param dimail timeout for each env
2025-03-10 10:18:14 +01:00
Laurent Bossavit
ae92ab5dd8
🐛 (tests) change domain name factory to be more boring but reliable
...
MailDomain fixtures now use a boring non-repeating sequence. No
longer will the occasional random CI failure inject excitement
into our workdays; but fear not, there will remain other occasions
to enjoy the art of debugging.
2025-03-06 14:34:41 +01:00
Sabrina Demagny
91389181f0
🧑💻 (admin) add admin for mail domain invitation
...
Allow to access to mail domain invitation table
on Django admin interface.
2025-03-06 13:28:52 +01:00
Sabrina Demagny
45bafe04de
♻️ (backend) rename DomainInvitation
...
All models relacted to mail domain are prefixed
with "MailDomain". Do the same for mail domain invitations.
2025-03-06 13:01:04 +01:00
Sabrina Demagny
c90a74b362
🧑💻 (tests) improve tests on logged info
...
Tests on log order make test maintenance difficult.
They are useless and make developers crazy each time
a log information is added :D
2025-03-06 09:57:09 +01:00
Sabrina Demagny
54df9af179
✨ (domains) convert domain invitations to access roles
...
Use django signals to keep mailbox_manager logic
separated from people core
2025-03-06 09:57:09 +01:00
Marie PUPO JEAMMET
2224acf12d
✨ (api) allow invitations for domain management
...
add an endpoint to allow domain managers to invite someone on people,
using their email address
2025-03-06 09:57:09 +01:00
Marie PUPO JEAMMET
9ee1ef5ba0
🗃️ (models) create abstract BaseInvitation and DomainInvitation models
...
create abstract BaseInvitation models to factorize common elements between
existing Invitation model team-side and new DomainInvitation model
2025-03-05 16:30:24 +01:00
Sabrina Demagny
d5b154fbe0
🐛 (mailbox) fix migration to fill dn_email field
...
Fix AttributeError
'Mailbox' object has no attribute 'get_email'
2025-03-04 14:07:16 +01:00
Sabrina Demagny
8b56d97037
👽 ️(dimail) increase timeout value for check domain API call
...
In use a timeout of 20 seconds seems more appropriate
2025-03-03 15:52:37 +01:00
Quentin BEY
db6cdadd72
✨ (oidc) add django-oauth-toolkit w/ configuration
...
This allows to use `people` as an identity provider using
OIDC and local users.
This commit is partial, because it does not manage a way to
create "local" users and the login page is the admin one, which
can't be used for non staff users or login with email.
2025-03-03 12:24:43 +01:00
Quentin BEY
8faa049046
🗃️ (mailbox_manager) add organization to domain
...
To be able to provide a SIRET in the ProConnect IdP process
we need to be able to link a mail domain to its organization.
For now this is not mandatory, as we can't detect the organization
and need a frontend process to clarify it.
2025-03-03 12:24:43 +01:00
Sabrina Demagny
cdb766b0e0
✨ (domains) allow to run all fetch domain data from dimail
...
Fetch domain status and expected config from dimail.
2025-02-17 19:40:13 +01:00
Sabrina Demagny
38de864d68
✨ (domains) add admin action to fetch domain DNS config
...
Create a Django admin action to allow retrieval of
the expected domain configuration from dimail.
These values shouldn't change unless external
intervention occurs. An admin command seems sufficient to handle
hypothetical changes.
2025-02-17 19:28:43 +01:00
Sabrina Demagny
3893fdf4d7
✨ (domains) get domain expected config for DNS
...
Call dimail to get DNS configuration values
to make an external domain work and save it in our db.
Add values to serializer for displaying.
2025-02-17 19:28:43 +01:00
Sabrina Demagny
95f19f7c6c
🩹 (domains) add missing migrations after define ordering
...
Add missing migration after define ordering by created_at
for Mailbox, MailDomain and MailDomainAccess by created_at.
2025-02-14 18:37:32 +01:00
Sabrina Demagny
ab03cd9db9
✨ (domains) check status after creation
...
Fetch domain status from dimail just after domain creation.
2025-02-14 16:47:53 +01:00
Sabrina Demagny
9377a96e87
💄 (domains) remove useless bold text broken after fbb4797
...
Fix domain names displaying after fetch status
from dimail failure after commit fbb4797
2025-02-13 09:31:06 +01:00
Sabrina Demagny
e55468862d
🧑💻 (domains) change default ordering
...
Order by last created models MailDomain, Mailbox and MailDomainAccess.
2025-02-12 10:36:55 +01:00
Laurent Bossavit
fbb4797f29
🚨 (pytest) fix or suppress warnings during backend tests
...
Avoid unnecessary noise from testing processes
2025-02-11 16:52:26 +01:00
Sabrina Demagny
a2b2c71448
✨ (api) add required actions to fix domain
...
Send all informations about required actions
to do to fix a domain and full check domain
health from dimail too.
2025-02-11 13:07:14 +01:00
Sabrina Demagny
961bceb64e
✨ (domains) store last check domain results
...
Store results of last dimail check on a domain.
2025-02-10 12:24:37 +01:00
Sabrina Demagny
418db6194a
✨ (domains) add support email field on MailDomain
...
Add new field on MailDomain to allow contact support
if some actions are required to fix domain.
2025-02-10 11:37:07 +01:00
Sabrina Demagny
579dbdee10
✨ (api) add count mailboxes to MailDomain serializer
...
Return number of mailboxes of a domain in our API.
2025-02-04 15:22:00 +01:00
Sabrina Demagny
4df4172151
✨ (dimail) manage 'action required' status for MailDomain
...
Adapt fetch domain status call to manage internal and external
fixes required. Use the new status 'action required' to
manage actions expected from support.
Call a new dimail endpoint to run a fix for internal checks
when all external checks are OK.
2025-02-04 14:13:36 +01:00
Sabrina Demagny
d48a3ff677
✨ (domains) add action required status on MailDomain
...
Create a new domain status to handle cases where
action is required from an external domain owner
for a domain to be fully functional.
2025-02-03 15:24:32 +01:00
Marie PUPO JEAMMET
7f0e231474
✨ (api) restrict mailbox sync to enabled domains
...
Pending, failed and deactivated domains should not be sync'ed.
2025-02-03 13:47:02 +01:00
Marie PUPO JEAMMET
2c15609c1e
🎨 (dimail) factorize dimail response upon successful mailbox creation
...
dimail's ok response upon mailbox creation is used in several tests.
All those tests now reference proper response available in fixtures.
2025-02-03 13:47:02 +01:00
Marie PUPO JEAMMET
cd94dc5091
✨ (dimail) send pending mailboxes upon domain activation
...
send creation requests to dimail for all pending mailboxes
when domain goes from "pending" to "enabled".
2025-02-03 13:47:02 +01:00
Marie PUPO JEAMMET
227ecd0700
🐛 (dimail) fix imported mailboxes should be enabled instead of pending
...
Importing mailboxes creates pending mailboxes ... but these mailboxes are
already active and, for most, functional. We thus mark them as "enabled".
2025-01-27 11:23:26 +01:00
Sabrina Demagny
f969b118cb
✨ (dimail) management command to fetch domain status
...
Add a management command for a future cron to
to check and update regularly domains status
from dimail.
2025-01-24 19:33:45 +01:00
Laurent Bossavit
914554e45c
🐛 (linting) fix linting errors arising from Ruff update
...
This update affects assertion messages in particular.
2025-01-21 00:42:47 +01:00
Sabrina Demagny
0a795f6e6f
🧑💻 (dimail) remove 'NoneType: None' log
...
Fixes "NoneType: None" log appearing in debug mode.
2025-01-17 08:56:18 +01:00
Sabrina Demagny
6c8329405d
🧑💻 (setup_dimail_db) create missing access
...
Add missing John Doe access role on domain test.domain.com
2025-01-17 08:42:10 +01:00
Sabrina Demagny
ea3a45ea87
✅ (dimail) improve fetch domain status tests
...
Add missing test case and add a new fake data
for fetch domain status from dimail
2025-01-16 23:07:14 +01:00
Sabrina Demagny
86451df8b4
♻️ (tests) reorganization of test files
...
Create two new folders in mailbox_manager tests
2025-01-16 15:57:25 +01:00
Marie PUPO JEAMMET
d495ef3e19
🧑💻 (admin) add read-only fields to mailbox admin
...
mark local_part and domain as read-only fields in admin,
in order to prevent mistakes/temptation. For now, if an local part
needs modification, you can simply delete/recreate the email you want.
Changing the domain is a bigger operation that cannot
be settled simply by changing it Django db.
2025-01-13 08:53:57 +01:00
Sabrina Demagny
6962953625
🧑💻 (admin) add filter for domain
...
Allow to filter domain by status
2025-01-09 14:12:18 +01:00
Sabrina Demagny
b0b718e657
✨ (backend) add admin action to check domain health
...
Allow to select some domains to check and update status
thanks to a dimail call.
2025-01-09 13:59:00 +01:00
Sabrina Demagny
0abfd49fee
✨ (dimail) check domain health
...
Call dimail to check if a domain still works.
Turn domain into failure status if dimail returns broken state.
And enable domain if dimail returns ok state.
2025-01-09 12:55:23 +01:00
Marie PUPO JEAMMET
94a443525e
🧑💻 (admin) add filter and search function to admin mailboxes view
...
add fields to easily filter and search mailboxes on their statuses,
local part and domains
2025-01-07 17:38:36 +01:00
Marie PUPO JEAMMET
4de589a7e8
🧑💻 (mailboxes) add and improve some tests
...
Add and improve some tests linked to mailbox creation.
2024-12-26 22:22:27 +01:00
Sabrina Demagny
151f030582
🐛 (backend) fix dimail call despite mailbox creation failure on our side
...
When we try to create a duplicate email, a request
to dimail is sent despite a reject on our side.
To solve this issue, we call mailbox creation first
to benefit from validation of our Django model.
Mailbox creation try was called too late after dimail call.
So in attempt to create a duplicated email a request
to dimail was sent despite a failure in our side.
2024-12-26 19:43:04 +01:00
Marie
2e7f224e30
⬆️ (dimail) upgrade dimail to v0.1.1
...
Upgrade dimail containers to v0.1.1
2024-12-18 11:38:10 +01:00
Sabrina Demagny
a021e9eec6
🐛 (maildomain) fix domain access creation
...
During a new domain creation, a call to dimail is made
to create user/allow on dimail side before owner role creation
on our side.
So when user/allow creation on dimain side fails,
the owner role is not created on our side.
Therefore the domain is created but invisible on the user interface.
The user will probably try to create the same domain again
and see the error message 'this domain already exists'.
To avoid this we make sure to create owner role on our side
despite dimail failure and set domain to failed status to retry
later dimail access creation.
2024-12-17 10:56:44 +01:00
Quentin BEY
2f380b49d0
🧑💻 (dimail) allow account populate from DB
...
Allow the dimail account creation command to create
accounts from the data in people's database.
2024-12-16 12:18:18 +01:00