From a2736e0c002f2d0354eddcbf3d9fb8e14ea4eae7 Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Sun, 17 Sep 2023 12:08:01 +0200 Subject: [PATCH] [FIX]allow to enter passphrase during key renewal for userid with non-stored passphrase --- account_ebics/__manifest__.py | 2 +- account_ebics/models/ebics_userid.py | 27 ++++++++++++++++++++++ account_ebics/views/ebics_userid_views.xml | 6 +++-- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/account_ebics/__manifest__.py b/account_ebics/__manifest__.py index 9a5bef2..16791e1 100644 --- a/account_ebics/__manifest__.py +++ b/account_ebics/__manifest__.py @@ -3,7 +3,7 @@ { "name": "EBICS banking protocol", - "version": "16.0.1.5.0", + "version": "16.0.1.6.0", "license": "LGPL-3", "author": "Noviat", "website": "https://www.noviat.com/", diff --git a/account_ebics/models/ebics_userid.py b/account_ebics/models/ebics_userid.py index 64d47c4..ef2dc13 100644 --- a/account_ebics/models/ebics_userid.py +++ b/account_ebics/models/ebics_userid.py @@ -109,6 +109,12 @@ class EbicsUserID(models.Model): "passphrase for every EBICS transaction, hence do not uncheck this " "option on a userid for automated EBICS downloads.", ) + ebics_passphrase_required = fields.Boolean( + compute="_compute_ebics_passphrase_view_modifiers" + ) + ebics_passphrase_invisible = fields.Boolean( + compute="_compute_ebics_passphrase_view_modifiers" + ) ebics_ini_letter = fields.Binary( string="EBICS INI Letter", readonly=True, @@ -208,6 +214,19 @@ class EbicsUserID(models.Model): rec.ebics_keys_fn ) + @api.depends("state", "ebics_passphrase") + def _compute_ebics_passphrase_view_modifiers(self): + for rec in self: + if rec.state == "draft": + rec.ebics_passphrase_required = True + rec.ebics_passphrase_invisible = False + elif rec.state == "get_bank_keys": + rec.ebics_passphrase_required = not rec.ebics_passphrase + rec.ebics_passphrase_invisible = rec.ebics_passphrase + else: + rec.ebics_passphrase_required = False + rec.ebics_passphrase_invisible = True + @api.constrains("ebics_key_x509") def _check_ebics_key_x509(self): for cfg in self: @@ -247,6 +266,14 @@ class EbicsUserID(models.Model): return self.write({"state": "active_keys"}) def set_to_get_bank_keys(self): + self.ensure_one() + if self.ebics_config_id.state != "draft": + raise UserError( + _( + "Set the EBICS Configuation record to 'Draft' " + "before starting the Key Renewal process." + ) + ) return self.write({"state": "get_bank_keys"}) def ebics_init_1(self): # noqa: C901 diff --git a/account_ebics/views/ebics_userid_views.xml b/account_ebics/views/ebics_userid_views.xml index afe3088..e4d9fd5 100644 --- a/account_ebics/views/ebics_userid_views.xml +++ b/account_ebics/views/ebics_userid_views.xml @@ -57,7 +57,7 @@ string="Change Passphrase" type="object" class="oe_highlight" - attrs="{'invisible': [('ebics_keys_found', '=', False)]}" + attrs="{'invisible': ['|', ('ebics_keys_found', '=', False), ('state', '!=', 'active_keys')]}" />