def _get_api_key_name(cls, auth_api_key):
     for section in serv_config.sections():
         if section.startswith("api_key_") and serv_config.has_option(
                 section, "key"):
             if tools.consteq(auth_api_key, serv_config.get(section,
                                                            "key")):
                 return section
     return None
Ejemplo n.º 2
0
 def _search_enabled(self, operator, value):
     enabled_provider_ids = []
     for provider in self.search([]):
         provider_section_name = provider._get_provider_section_name()
         if serv_config.has_option(provider_section_name, 'enabled') \
                 and serv_config.get(provider_section_name, 'enabled'):
             enabled_provider_ids.append(provider.id)
     return [('id', 'in', enabled_provider_ids)]
Ejemplo n.º 3
0
 def write(self, vals):
     for rec in self:
         key = vals.get('key') or rec.key
         if serv_config.has_option(SECTION, key):
             # enforce value from config file
             newvals = dict(vals, value=serv_config.get(SECTION, key))
         else:
             newvals = vals
         super(IrConfigParameter, rec).write(newvals)
Ejemplo n.º 4
0
 def write(self, vals):
     for rec in self:
         key = vals.get("key") or rec.key
         if serv_config.has_option(SECTION, key):
             # enforce value from config file
             newvals = dict(vals, value=serv_config.get(SECTION, key))
         else:
             newvals = vals
         super().write(newvals)
     return True
 def _compute_user_id(self):
     for rec in self:
         section = rec.auth_api_key_name
         login_name = serv_config.get(section, "user")
         user_model = self.env["res.users"]
         if serv_config.has_option(section, "allow_inactive_user"):
             allow_inactive_user = serv_config.getboolean(
                 section, "allow_inactive_user")
             if allow_inactive_user:
                 user_model = user_model.with_context(active_test=False)
         rec.user_id = user_model.search([("login", "=", login_name)])
Ejemplo n.º 6
0
    def _retrieve_uid_from_api_key(self, api_key):
        if not self.env.user.has_group("base.group_system"):
            raise AccessError(_("User is not allowed"))

        for section in serv_config.sections():
            if section.startswith("api_key_") and serv_config.has_option(
                    section, "key"):
                if not consteq(api_key, serv_config.get(section, "key")):
                    continue

                login_name = serv_config.get(section, "user")
                uid = self.env["res.users"].search([("login", "=", login_name)
                                                    ]).id

                if not uid:
                    raise ValidationError(
                        _("No user found with login %s") % login_name)

                return uid
        return False
Ejemplo n.º 7
0
 def _compute_server_env(self):
     for backend in self:
         for field_name in self._server_env_fields:
             section_name = '.'.join(
                 (self._name.replace('.', '_'), backend.name))
             try:
                 value = serv_config.get(section_name, field_name)
                 backend[field_name] = value
             except:
                 _logger.exception(
                     'error trying to read field %s '
                     'in section %s', field_name, section_name)
Ejemplo n.º 8
0
 def _compute_server_env(self):
     for backend in self:
         for field_name in ('uri', 'verify_ssl', 'odoo_webhook_base_url'):
             section_name = '.'.join(
                 (self._name.replace('.', '_'), backend.name))
             try:
                 value = serv_config.get(section_name, field_name)
                 if field_name == 'verify_ssl' and value:
                     value = is_true(value)
                 setattr(backend, field_name, value)
             except:
                 _logger.exception(
                     'error trying to read field %s '
                     'in section %s', field_name, section_name)
Ejemplo n.º 9
0
def migrate(cr, version):
    _logger.info("Create auth_api.key records from odoo config")
    with odoo.api.Environment.manage():
        env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
        for section in serv_config.sections():
            if section.startswith("api_key_") and serv_config.has_option(
                    section, "key"):
                login_name = serv_config.get(section, "user")
                name = section.replace("api_key_", "")
                key = "<set from server environment>"
                user = env["res.users"].search([("login", "=", login_name)])
                env["auth.api.key"].create({
                    "name": name,
                    "key": key,
                    "user_id": user.id
                })
                _logger.info("API Key record created for %s", section)
Ejemplo n.º 10
0
 def get_param(self, key, default=False):
     value = super(IrConfigParameter, self).get_param(key, default=None)
     if serv_config.has_option(SECTION, key):
         cvalue = serv_config.get(SECTION, key)
         if not cvalue:
             raise UserError(_("Key %s is empty in "
                               "server_environment_file") %
                             (key, ))
         if cvalue != value:
             # we write in db on first access;
             # should we have preloaded values in database at,
             # server startup, modules loading their parameters
             # from data files would break on unique key error.
             self.sudo().set_param(key, cvalue)
             value = cvalue
     if value is None:
         return default
     return value
Ejemplo n.º 11
0
 def create(self, vals):
     key = vals.get('key')
     if serv_config.has_option(SECTION, key):
         # enforce value from config file
         vals = dict(vals, value=serv_config.get(SECTION, key))
     return super(IrConfigParameter, self).create(vals)
Ejemplo n.º 12
0
 def test_value_retrival(self):
     val = serv_config.get('external_service.ftp', 'user')
     self.assertEqual(val, 'toto')
Ejemplo n.º 13
0
 def create(self, vals):
     key = vals.get("key")
     if serv_config.has_option(SECTION, key):
         # enforce value from config file
         vals = dict(vals, value=serv_config.get(SECTION, key))
     return super().create(vals)