diff --git a/agent_service/config.py b/agent_service/config.py index fed19b9..508061e 100644 --- a/agent_service/config.py +++ b/agent_service/config.py @@ -8,6 +8,7 @@ class Settings(BaseSettings): # Odoo odoo_url: str = 'http://localhost:8069' odoo_db: str = 'odoo' + odoo_user: str = '__system__' odoo_api_key: str = '' # Ollama diff --git a/agent_service/main.py b/agent_service/main.py index aee302d..13a3612 100644 --- a/agent_service/main.py +++ b/agent_service/main.py @@ -85,6 +85,7 @@ async def lifespan(app: FastAPI): url=settings.odoo_url, db=settings.odoo_db, api_key=settings.odoo_api_key, + user=settings.odoo_user, ) logger.info('Odoo client initialised (%s)', settings.odoo_url) except Exception as exc: diff --git a/agent_service/tools/odoo_client.py b/agent_service/tools/odoo_client.py index 6749b8a..9600061 100644 --- a/agent_service/tools/odoo_client.py +++ b/agent_service/tools/odoo_client.py @@ -37,10 +37,11 @@ class OdooWriteError(Exception): pass class OdooClient: - def __init__(self, url, db, api_key, pg_dsn=None, pg_pool_min=2, pg_pool_max=10): + def __init__(self, url, db, api_key, user='__system__', pg_dsn=None, pg_pool_min=2, pg_pool_max=10): self._url = url.rstrip('/') self._db = db self._api_key = api_key + self._user = user self._pg_dsn = pg_dsn self._pg_pool_min = pg_pool_min self._pg_pool_max = pg_pool_max @@ -77,7 +78,7 @@ class OdooClient: try: uid = await self._xmlrpc_call( self._common, 'authenticate', - self._db, '__system__', self._api_key, {}) + self._db, self._user, self._api_key, {}) if not uid: raise OdooAuthError('Authentication failed - check ODOO_API_KEY') self._uid = uid