From ab4f2127c4a98ff7ca9868c5e97a17fcea4bd233 Mon Sep 17 00:00:00 2001 From: Thomas Binsfeld Date: Mon, 8 Oct 2018 11:48:18 +0200 Subject: [PATCH] [REF] Server Environment: allow to define secret keys New method defining which keys must be considered as secret keys and be hidden in other environments than DEV --- server_environment/serv_config.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/server_environment/serv_config.py b/server_environment/serv_config.py index 5f52d37c2..b5dc9549a 100644 --- a/server_environment/serv_config.py +++ b/server_environment/serv_config.py @@ -25,7 +25,7 @@ import ConfigParser from lxml import etree from itertools import chain -from openerp import models, fields +from openerp import api, models, fields from openerp.tools.config import config as system_base_config from .system_info import get_server_environment @@ -246,6 +246,16 @@ class ServerConfiguration(models.TransientModel): res['fields'] = xfields return res + @api.model + def _is_secret(self, key): + """ + This method is intended to be inherited to defined which keywords + should be secret. + :return: list of secret keywords + """ + secret_keys = ['passw', 'key', 'secret', 'token'] + return any(secret_key in key for secret_key in secret_keys) + def default_get(self, cr, uid, fields_list, context=None): res = {} current_user = self.pool['res.users'].browse( @@ -254,7 +264,8 @@ class ServerConfiguration(models.TransientModel): 'server_environment.has_server_configuration_access'): return res for key in self._conf_defaults: - if 'passw' in key and not self.show_passwords: + if not self.show_passwords and self._is_secret( + cr, uid, context=context, key=key): res[key] = '**********' else: res[key] = self._conf_defaults[key]()