From 51c3885c2c9aaa70b9c66a58033117ab1eac3fb9 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 1 Oct 2020 16:43:54 +0200 Subject: [PATCH 2/2] base: allow resources to specify fields to hide (#47257) --- passerelle/apps/orange/models.py | 2 ++ passerelle/apps/ovh/models.py | 1 + passerelle/apps/twilio/models.py | 2 ++ passerelle/base/models.py | 12 +++++++----- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/passerelle/apps/orange/models.py b/passerelle/apps/orange/models.py index 614558dc..ec1108b5 100644 --- a/passerelle/apps/orange/models.py +++ b/passerelle/apps/orange/models.py @@ -44,6 +44,8 @@ def get_json(response): class OrangeSMSGateway(SMSResource): + hide_description_fields = ['groupname'] + username = models.CharField(verbose_name=_('Identifier'), max_length=64) password = models.CharField(verbose_name=_('Password'), max_length=64) groupname = models.CharField(verbose_name=_('Group'), max_length=64) diff --git a/passerelle/apps/ovh/models.py b/passerelle/apps/ovh/models.py index eb4ad7f7..4feede5c 100644 --- a/passerelle/apps/ovh/models.py +++ b/passerelle/apps/ovh/models.py @@ -13,6 +13,7 @@ from passerelle.utils.jsonresponse import APIError class OVHSMSGateway(SMSResource): documentation_url = 'https://doc-publik.entrouvert.com/admin-fonctionnel/les-tutos/configuration-envoi-sms/' + hide_description_fields = ['account'] API_URL = 'https://eu.api.ovh.com/1.0/sms/%(serviceName)s/users/%(login)s/jobs/' URL = 'https://www.ovh.com/cgi-bin/sms/http2sms.cgi' MESSAGES_CLASSES = ( diff --git a/passerelle/apps/twilio/models.py b/passerelle/apps/twilio/models.py index 60120bed..bad49f69 100644 --- a/passerelle/apps/twilio/models.py +++ b/passerelle/apps/twilio/models.py @@ -24,6 +24,8 @@ from passerelle.sms.models import SMSResource class TwilioSMSGateway(SMSResource): + hide_description_fields = ['account_sid'] + account_sid = models.CharField(verbose_name=_('Account Sid'), max_length=64) auth_token = models.CharField(verbose_name=_('Auth Token'), max_length=64) diff --git a/passerelle/base/models.py b/passerelle/base/models.py index dde4b4db..9371cff1 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -132,6 +132,7 @@ class BaseResource(models.Model): parameters = None manager_view_template_name = None manager_form_base_class = GenericConnectorForm + hide_description_fields = [] # permission descriptions _can_access_description = _('Access is limited to the following API users:') @@ -247,12 +248,13 @@ class BaseResource(models.Model): def get_description_fields(self): fields = [] + hide_fields = ['id', 'title', 'slug', 'description', 'log_level', 'users', 'client_certificate'] + hide_fields.extend(self.hide_description_fields) for field in self._meta.fields: - if (field.name.endswith(('key', 'password', 'secret', 'keystore', 'token', - 'username')) or - field.name in ('id', 'title', 'slug', 'description', - 'log_level', 'users', 'client_certificate', - 'groupname', 'account', 'account_sid')): + if ( + field.name.endswith(("key", "password", "secret", "keystore", "token", "username")) + or field.name in hide_fields + ): continue if hasattr(self, 'get_%s_display' % field.name): value = getattr(self, 'get_%s_display' % field.name)() -- 2.20.1