🐛(dimail) fix broken auth while resetting passwords

Dimail client's "reset password" method was using basic auth while
dimail expects a token for this endpoint. Fixed it.
This commit is contained in:
Marie PUPO JEAMMET
2025-05-16 18:47:33 +02:00
committed by Marie
parent 83bec33bdb
commit fce9b1e490
3 changed files with 16 additions and 1 deletions

View File

@@ -249,6 +249,9 @@ class MailBoxViewSet(
POST /api/<version>/mail-domains/<domain_slug>/mailboxes/<mailbox_id>/enable/
Send a request to dimail to enable mailbox and change status of the mailbox in our DB
POST /api/<version>/mail-domains/<domain_slug>/mailboxes/<mailbox_id>/reset/
Send a request to mail-provider to reset password.
"""
permission_classes = [permissions.MailBoxPermission]

View File

@@ -124,6 +124,12 @@ def test_api_mailboxes__reset_password_admin_successful(role):
client.force_login(access.user)
dimail_url = settings.MAIL_PROVISIONING_API_URL
responses.add(
responses.GET,
f"{dimail_url}/token/",
body=dimail.TOKEN_OK,
status=200,
)
responses.add(
responses.POST,
f"{dimail_url}/domains/{mail_domain.name}/mailboxes/{mailbox.local_part}/reset_password/",
@@ -169,6 +175,12 @@ def test_api_mailboxes__reset_password_connexion_failed():
client.force_login(access.user)
dimail_url = settings.MAIL_PROVISIONING_API_URL
responses.add(
responses.GET,
f"{dimail_url}/token/",
body=dimail.TOKEN_OK,
status=200,
)
responses.add(
responses.POST,
f"{dimail_url}/domains/{mail_domain.name}/mailboxes/{mailbox.local_part}/reset_password/",

View File

@@ -616,7 +616,7 @@ class DimailAPIClient:
try:
response = session.post(
f"{self.API_URL}/domains/{mailbox.domain.name}/mailboxes/{mailbox.local_part}/reset_password/",
headers={"Authorization": f"Basic {self.API_CREDENTIALS}"},
headers=self.get_headers(),
verify=True,
timeout=self.API_TIMEOUT,
)