From 06a76374bc21e49c4908375f76afe5b26eb07f50 Mon Sep 17 00:00:00 2001
From: JacquesDurand <59364973+JacquesDurand@users.noreply.github.com>
Date: Tue, 1 Oct 2024 09:15:11 +0200
Subject: [PATCH] fix: missing trad and clear payment session on error (#744)
---
.../cronjobs/cronjobEndPlatformMembership.yaml | 4 ++--
.../cronjobNotifyPlatformMembershipExpiration1.yaml | 4 ++--
.../cronjobNotifyPlatformMembershipExpiration7.yaml | 4 ++--
src/Controller/Admin/AbstractUserCrudController.php | 2 +-
.../Payment/PlatformMembership/DoneAction.php | 3 +--
.../Payment/PlatformMembership/DoneActionTest.php | 9 +++++++--
translations/admin.fr.xlf | 10 ++++++++++
7 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/helm/chart/templates/cronjobs/cronjobEndPlatformMembership.yaml b/helm/chart/templates/cronjobs/cronjobEndPlatformMembership.yaml
index 008b6d2..89e8433 100644
--- a/helm/chart/templates/cronjobs/cronjobEndPlatformMembership.yaml
+++ b/helm/chart/templates/cronjobs/cronjobEndPlatformMembership.yaml
@@ -2,7 +2,7 @@
apiVersion: batch/v1
kind: CronJob
metadata:
- name: {{ include "plateforme-ebs" . }}-cronjob-end-membership
+ name: {{ include "plateforme-ebs" . }}-cronjob-end-p-membership
labels:
{{- include "plateforme-ebs.labels" . | nindent 4 }}
spec:
@@ -23,7 +23,7 @@ spec:
serviceAccountName: {{ include "plateforme-ebs.serviceAccountName" . }}
restartPolicy: Never
containers:
- - name: {{ .Chart.Name }}-cronjob-end-membership
+ - name: {{ .Chart.Name }}-cronjob-end-p-membership
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
command: ['/bin/sh', '-c']
diff --git a/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration1.yaml b/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration1.yaml
index 06915fe..1efc76d 100644
--- a/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration1.yaml
+++ b/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration1.yaml
@@ -2,7 +2,7 @@
apiVersion: batch/v1
kind: CronJob
metadata:
- name: {{ include "plateforme-ebs" . }}-cronjob-notify-ms-e-1
+ name: {{ include "plateforme-ebs" . }}-cronjob-notify-pms-e-1
labels:
{{- include "plateforme-ebs.labels" . | nindent 4 }}
spec:
@@ -23,7 +23,7 @@ spec:
serviceAccountName: {{ include "plateforme-ebs.serviceAccountName" . }}
restartPolicy: Never
containers:
- - name: {{ .Chart.Name }}-cronjob-notify-ms-e-1
+ - name: {{ .Chart.Name }}-cronjob-notify-pms-e-1
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
command: ['/bin/sh', '-c']
diff --git a/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration7.yaml b/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration7.yaml
index 9c48b95..500a23e 100644
--- a/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration7.yaml
+++ b/helm/chart/templates/cronjobs/cronjobNotifyPlatformMembershipExpiration7.yaml
@@ -2,7 +2,7 @@
apiVersion: batch/v1
kind: CronJob
metadata:
- name: {{ include "plateforme-ebs" . }}-cronjob-notify-ms-e-7
+ name: {{ include "plateforme-ebs" . }}-cronjob-notify-pms-e-7
labels:
{{- include "plateforme-ebs.labels" . | nindent 4 }}
spec:
@@ -23,7 +23,7 @@ spec:
serviceAccountName: {{ include "plateforme-ebs.serviceAccountName" . }}
restartPolicy: Never
containers:
- - name: {{ .Chart.Name }}-cronjob-notify-ms-e-7
+ - name: {{ .Chart.Name }}-cronjob-notify-pms-e-7
image: "{{ .Values.php.image.repository }}:{{ .Values.php.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.php.image.pullPolicy }}
command: ['/bin/sh', '-c']
diff --git a/src/Controller/Admin/AbstractUserCrudController.php b/src/Controller/Admin/AbstractUserCrudController.php
index 3708a71..4fa5f6e 100755
--- a/src/Controller/Admin/AbstractUserCrudController.php
+++ b/src/Controller/Admin/AbstractUserCrudController.php
@@ -359,7 +359,7 @@ abstract class AbstractUserCrudController extends AbstractCrudController impleme
$vacationModeField = BooleanField::new('vacationMode');
$addressField = AssociationField::new('address');
$groupsCountField = AssociationField::new('userGroups')->setLabel('Groups number');
- $membershipPaidField = BooleanField::new('membershipPaid');
+ $membershipPaidField = $this->getSimpleBooleanField('membershipPaid');
$startAt = DateField::new('startAt');
$endAt = DateField::new('endAt');
$expiresInField = IntegerField::new('expiresIn')
diff --git a/src/Controller/Payment/PlatformMembership/DoneAction.php b/src/Controller/Payment/PlatformMembership/DoneAction.php
index 5921eec..5c61277 100755
--- a/src/Controller/Payment/PlatformMembership/DoneAction.php
+++ b/src/Controller/Payment/PlatformMembership/DoneAction.php
@@ -62,6 +62,7 @@ final class DoneAction extends AbstractController
/** @var GetHumanStatus $status */
$status = $this->commandBus->dispatch(new PlatformMembershipPaidCommand($platformOffer->getId(), $user->getId(), $token));
+ $request->getSession()->remove('payment_in_progress');
// Not captured
if (!$status->isCaptured()) {
$this->addFlashWarning($this->translator->trans($this->getI18nPrefix().'.status.'.$status->getValue()));
@@ -73,8 +74,6 @@ final class DoneAction extends AbstractController
'%platform%' => $platformOffer->getConfiguration()?->getPlatformName()],
));
- $request->getSession()->remove('payment_in_progress');
-
$group = $user->getMyGroupsAsInvited()->first();
if ($group !== false) {
return $this->redirectToRoute('app_group_show_logged', $group->getRoutingParameters());
diff --git a/tests/Unit/Controller/Payment/PlatformMembership/DoneActionTest.php b/tests/Unit/Controller/Payment/PlatformMembership/DoneActionTest.php
index a360600..67d0db3 100644
--- a/tests/Unit/Controller/Payment/PlatformMembership/DoneActionTest.php
+++ b/tests/Unit/Controller/Payment/PlatformMembership/DoneActionTest.php
@@ -84,7 +84,7 @@ class DoneActionTest extends TestCase
$comandBus->method('dispatch')->willReturn(new GetHumanStatus(new PaymentToken()));
$doneAction = new DoneAction(
- $this->getCommandBus(),
+ $comandBus,
$payum,
$translator,
$this->getLogger(),
@@ -95,6 +95,7 @@ class DoneActionTest extends TestCase
->disableOriginalConstructor()
->getMock();
$session->method('getFlashBag')->willReturn(new FlashBag());
+ $session->method('remove')->with('payment_in_progress')->willReturn(true);
$requesStack = $this->getMockBuilder(RequestStack::class)
->disableOriginalConstructor()
@@ -106,9 +107,13 @@ class DoneActionTest extends TestCase
$container->method('get')->willReturn($requesStack);
$doneAction->setContainer($container);
+ $request = new Request();
+ $request->setSession($session);
+ $requesStack->push($request);
+
$this->expectException(\Error::class); // or more mock are needed. To clean up later
- $doneAction->__invoke(new Request(), $this->getPlatformOffer(), $this->getUser());
+ $doneAction->__invoke($request, $this->getPlatformOffer(), $this->getUser());
}
/**
diff --git a/translations/admin.fr.xlf b/translations/admin.fr.xlf
index f32a92f..944a467 100644
--- a/translations/admin.fr.xlf
+++ b/translations/admin.fr.xlf
@@ -327,6 +327,11 @@
Informations
+
+ panel.payment_information
+ Informations sur l'abonnement
+
+
images.help
@@ -378,6 +383,11 @@
Abonnement à la plateforme payé
+
+ Platform Offer
+ Tarif d'adhésion
+
+