Control de acceso
Cinco verificaciones antes de ejecutar.
Desde la sesión del usuario hasta la herramienta
MCP que toca la DB, cada paso valida permisos,
cuotas y parámetros. Si una capa rechaza, la
consulta no avanza.
Usuario
Sesión Odoo autenticada
ACL Odoo
ir.model.access + record rules
Agente.group_ids
Filtra catálogo del router
MCP tool.group_ids
+ params_restrict
Token quota
Paquete cíclico o one-time
Ejecución
env(uid) = usuario real
ACL Odoo
ir.model.access sobre ia.chat.message, ia.agent, ia.mcp.tool. Sin overrides en código — patrón estándar Odoo.
Agente.group_ids
is_accessible_by_user() filtra catálogo del router. Vacío = acceso universal; con grupos = solo miembros autorizados.
MCP tool.group_ids
get_user_blocked_tools() excluye tools prohibidas. Aplica también params_restrict: domain locked, fields_allowed, max_records.
Token quota
ia.token.assignment con paquetes cíclicos (diario/semanal/mensual) o one-time. Consumo FIFO con SELECT FOR UPDATE para concurrencia.