diff options
| author | Raphael Collet <rco@openerp.com> | 2016-11-22 12:04:09 +0100 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2017-01-03 16:52:49 +0100 |
| commit | d0ca2d115e8b40308e1ff83bf9e7cc874762fbff (patch) | |
| tree | bdad5e8c9019f14a0416c27612969ae4932519b1 /odoo/addons/base/ir/ir_config_parameter.py | |
| parent | 7543afb0704d624f7abe6a2450a9d7e4a75e158b (diff) | |
[REF] ir_config_parameter: remove `group_ids` and simplify
Add `sudo()` to call `get_param` where necessary, and make the web client use a
controller instead of directly accessing parameters.
Diffstat (limited to 'odoo/addons/base/ir/ir_config_parameter.py')
| -rw-r--r-- | odoo/addons/base/ir/ir_config_parameter.py | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/odoo/addons/base/ir/ir_config_parameter.py b/odoo/addons/base/ir/ir_config_parameter.py index bca68a4638b..cbb44ca6457 100644 --- a/odoo/addons/base/ir/ir_config_parameter.py +++ b/odoo/addons/base/ir/ir_config_parameter.py @@ -16,10 +16,10 @@ _logger = logging.getLogger(__name__) A dictionary holding some configuration parameters to be initialized when the database is created. """ _default_parameters = { - "database.secret": lambda: (str(uuid.uuid4()), ['base.group_erp_manager']), - "database.uuid": lambda: (str(uuid.uuid1()), []), - "database.create_date": lambda: (fields.Datetime.now(), ['base.group_user']), - "web.base.url": lambda: ("http://localhost:%s" % config.get('xmlrpc_port'), []), + "database.secret": lambda: str(uuid.uuid4()), + "database.uuid": lambda: str(uuid.uuid1()), + "database.create_date": fields.Datetime.now, + "web.base.url": lambda: "http://localhost:%s" % config.get('xmlrpc_port'), } @@ -30,7 +30,6 @@ class IrConfigParameter(models.Model): key = fields.Char(required=True, index=True) value = fields.Text(required=True) - group_ids = fields.Many2many('res.groups', 'ir_config_parameter_groups_rel', 'icp_id', 'group_id', string='Groups') _sql_constraints = [ ('key_uniq', 'unique (key)', 'Key must be unique.') @@ -47,8 +46,7 @@ class IrConfigParameter(models.Model): # force=True skips search and always performs the 'if' body (because ids=False) params = self.sudo().search([('key', '=', key)]) if force or not params: - value, groups = func() - params.set_param(key, value, groups=groups) + params.set_param(key, func()) @api.model def get_param(self, key, default=False): @@ -68,43 +66,33 @@ class IrConfigParameter(models.Model): return params[0]['value'] if params else None @api.model - def set_param(self, key, value, groups=()): + def set_param(self, key, value): """Sets the value of a parameter. :param string key: The key of the parameter value to set. :param string value: The value to set. - :param list of string groups: List of group (xml_id allowed) to read this key. :return: the previous value of the parameter or False if it did not exist. :rtype: string """ - self._get_param.clear_cache(self) param = self.search([('key', '=', key)]) - - gids = [] - for group_xml in groups: - group = self.env.ref(group_xml, raise_if_not_found=False) - if group: - gids.append((4, group.id)) - else: - _logger.warning('Potential Security Issue: Group [%s] is not found.' % group_xml) - - vals = {'value': value} - if gids: - vals.update(group_ids=gids) if param: old = param.value if value is not False and value is not None: - param.write(vals) + param.write({'value': value}) else: param.unlink() return old else: - vals.update(key=key) if value is not False and value is not None: - self.create(vals) + self.create({'key': key, 'value': value}) return False + @api.model + def create(self, vals): + self.clear_caches() + return super(IrConfigParameter, self).create(vals) + @api.multi def write(self, vals): self.clear_caches() |
