Suppression de compte #57 #74

Merged
brunelie merged 20 commits from delete-account into main 2025-09-19 08:17:42 +02:00
Owner

Résoud #57
Un utilisateur peut supprimer son compte lorsqu'il n'a plus d'abonnement actif. Le compte Canaille est supprimé via SCIM, le compte Lago est supprimé et les factures non réglées sont toujours dans le système pour être suivies.
S'il n'y a aucune facture non réglée, le compte Stripe est aussi supprimé.
S'il y a une ou plusieurs factures non réglées, le compte Stripe n'est pas supprimé, il le sera automatiquement lorsque les paiements de toutes les factures seront marqués "successful" (ou que les factures seront void).

Résoud #57 Un utilisateur peut supprimer son compte lorsqu'il n'a plus d'abonnement actif. Le compte Canaille est supprimé via SCIM, le compte Lago est supprimé et les factures non réglées sont toujours dans le système pour être suivies. S'il n'y a aucune facture non réglée, le compte Stripe est aussi supprimé. S'il y a une ou plusieurs factures non réglées, le compte Stripe n'est pas supprimé, il le sera automatiquement lorsque les paiements de toutes les factures seront marqués "successful" (ou que les factures seront void).
chore: fix uv.lock merge error
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
23a954e1e9
@ -82,0 +104,4 @@
with patch("stripe.Customer") as stripe_customer:
stripe_customer.return_value = {"data": [stripe_user]}
res = client.get("/suppression")
assert ("success", "Votre compte a bien été supprimé.") in res.flashes
Owner

this test should also verify that the canaille user is correctly deleted, and that the information email is correctly sent

this test should also verify that the canaille user is correctly deleted, and that the information email is correctly sent
Author
Owner

c'est testé yaal/escut@11dce1f85b

c'est testé ✅ https://forge.yaal.coop/yaal/escut/commit/11dce1f85bb5bedec3634e677c9037408799b9e7
brunelie marked this conversation as resolved
web/app/scim.py Outdated
@ -61,0 +73,4 @@
)
if user:
try:
user = scim.delete(User, username)
Owner

I think this function takes user.id instead of the username

I think this function takes `user.id` instead of the username
Author
Owner

Dans Canaille l'id d'un utilisateur c'est son username, donc ça fonctionne avec username, mais je peux remplacer username ici par user_id pour que ça suive ce que demande SCIM et toujours lui passer l'username (le external_id en l'occurrence) quand la fonction est appelée et ça fonctionnera aussi. Ca te parait ok ?

Dans Canaille l'id d'un utilisateur c'est son `username`, donc ça fonctionne avec `username`, mais je peux remplacer `username` ici par `user_id` pour que ça suive ce que demande SCIM et toujours lui passer l'username (le `external_id` en l'occurrence) quand la fonction est appelée et ça fonctionnera aussi. Ca te parait ok ?
Author
Owner

j'ai fait ça du coup yaal/escut@d3fd8b48c8

j'ai fait ça du coup https://forge.yaal.coop/yaal/escut/commit/d3fd8b48c8a3b19090c8122f8267b06d05cbf81e
felix marked this conversation as resolved
fix: scim delete account uses user_id
Some checks failed
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
d3fd8b48c8
Author
Owner

il y a encore le pb des autres tests qui fail à cause du mock de Lago à résoudre avant de merge

il y a encore le pb des autres tests qui fail à cause du mock de Lago à résoudre avant de merge
tests: fixing errors in account deletion tests
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
d3fabab117
Author
Owner

on utilise des uuid dans le tests plutôt que des username écrits en dur.
Le test test_fail_login_callback_cannot_retrieve_user_from_lago fail occasionnellement à cause du parallélisme (l'utilisateur canaille est supprimé dans les tests de suppression de compte avant que ce test obtienne une autorisation de canaille, donc canaille ne retrouve pas l'utilisateur et retourne une erreur prématurée)

on utilise des uuid dans le tests plutôt que des username écrits en dur. Le test `test_fail_login_callback_cannot_retrieve_user_from_lago` fail occasionnellement à cause du parallélisme (l'utilisateur canaille est supprimé dans les tests de suppression de compte avant que ce test obtienne une autorisation de canaille, donc canaille ne retrouve pas l'utilisateur et retourne une erreur prématurée)
wip: tests delete account
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
2d126156cb
brunelie force-pushed delete-account from 2d126156cb
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
to d3fd8b48c8
Some checks failed
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/pr/tests Pipeline failed
2025-09-17 16:32:25 +02:00
Compare
brunelie deleted branch delete-account 2025-09-19 08:17:42 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yaal/escut!74
No description provided.