Odoo 为什么列表能看见,点进去却报权限错误:ACL 与记录规则域合并顺序
用户能在列表里看到记录,点进详情却报权限错,常见原因不是单纯“没给权限”,而是 ACL、全局规则、组规则和关联模型读取顺序叠在了一起。
TOPIC PICKS
用户能在列表里看到记录,点进详情却报权限错,常见原因不是单纯“没给权限”,而是 ACL、全局规则、组规则和关联模型读取顺序叠在了一起。
可以顺着继续读的相邻方向
很多人把 ACL 和记录规则混成“同一种权限”。其实 Odoo 先用 ir.model.access 判断你能不能碰这个模型,再用 ir.rule 缩小你能看见或操作的记录集合。
Odoo 的权限不是一把锁,而是多层门禁:模型访问、记录规则、组继承和 sudo 各管一段,缺一层就会误判。
很多人以为发票二维码只是报表上塞一张图片,但从 account_move.py、res_partner_bank.py 和 account_qr_code_emv 的实现看,Odoo 真正做的是先挑可用的 QR 方法,再校验银行账户是否满足国家规则,最后把金额、币种、商户信息和引用组装成 EMV 字符串并交给条码引擎渲染。
related 字段很方便,但很多人对它的默认权限语义理解并不完整。本文从 fields.py 默认值、测试模型与 read_group 测试讲清 related_sudo 为什么会影响展示、搜索与分组边界。
解释 Odoo 数据导入的前后端链路:上传、映射、校验、创建/更新记录,以及为什么导入失败通常不是“模型写不进去”。
结合 auth_totp_mail 与 auth_timeout 源码,讲清 Odoo 邮箱验证码如何用 login_date 派生密钥、小时窗口验证、发送/校验双限流,以及在会话重认证中如何和 password / TOTP 协作。