Browse Source

[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
pull/1383/head
Thomas Binsfeld 6 years ago
parent
commit
ab4f2127c4
  1. 15
      server_environment/serv_config.py

15
server_environment/serv_config.py

@ -25,7 +25,7 @@ import ConfigParser
from lxml import etree from lxml import etree
from itertools import chain 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 openerp.tools.config import config as system_base_config
from .system_info import get_server_environment from .system_info import get_server_environment
@ -246,6 +246,16 @@ class ServerConfiguration(models.TransientModel):
res['fields'] = xfields res['fields'] = xfields
return res 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): def default_get(self, cr, uid, fields_list, context=None):
res = {} res = {}
current_user = self.pool['res.users'].browse( current_user = self.pool['res.users'].browse(
@ -254,7 +264,8 @@ class ServerConfiguration(models.TransientModel):
'server_environment.has_server_configuration_access'): 'server_environment.has_server_configuration_access'):
return res return res
for key in self._conf_defaults: 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] = '**********' res[key] = '**********'
else: else:
res[key] = self._conf_defaults[key]() res[key] = self._conf_defaults[key]()

Loading…
Cancel
Save