From 3091a8325581840a43f1a450ad89f959167646c4 Mon Sep 17 00:00:00 2001 From: Guillaume Risbourg Date: Thu, 5 Nov 2020 11:09:47 +0100 Subject: [PATCH] [creditmutuel] Raise AuthMethodNotImplemented for sms validation in transfers SMS validation can occur when a user just registered a new phone to use the app validation one. --- modules/creditmutuel/browser.py | 2 ++ modules/creditmutuel/pages.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/modules/creditmutuel/browser.py b/modules/creditmutuel/browser.py index 7a2b6d6238..e5af441334 100644 --- a/modules/creditmutuel/browser.py +++ b/modules/creditmutuel/browser.py @@ -984,6 +984,8 @@ def init_transfer(self, transfer, account, recipient): self.key_form = self.page.get_personal_key_card_code_form() raise TransferStep(transfer, Value('Clé', label=self.page.get_question())) + elif self.page.needs_otp_validation(): + raise AuthMethodNotImplemented("La validation des transferts avec un code sms n'est pas encore disponible.") msg = self.page.get_validation_msg() if msg: diff --git a/modules/creditmutuel/pages.py b/modules/creditmutuel/pages.py index 1547b9b236..cd03c53816 100644 --- a/modules/creditmutuel/pages.py +++ b/modules/creditmutuel/pages.py @@ -2054,6 +2054,9 @@ class InternalTransferPage(LoggedPage, HTMLPage, AppValidationPage): def needs_personal_key_card_validation(self): return bool(CleanText('//div[contains(@class, "alerte")]/p[contains(text(), "Cette opération nécessite une sécurité supplémentaire")]')(self.doc)) + def needs_otp_validation(self): + return bool(self.doc.xpath('//input[@name="otp_password"]')) + def can_transfer_pro(self, origin_account): for li in self.doc.xpath('//ul[@id="idDetailsListCptDebiterVertical:ul"]//ul/li'): if CleanText(li.xpath('.//span[@class="_c1 doux _c1"]'), replace=[(' ', '')])(self) in origin_account: -- GitLab