在OpenERP 6.1中创建菜单项时因访问规则被禁止的操作

2 投票
1 回答
1385 浏览
提问于 2025-04-17 16:19

当我尝试在OpenERP 6.1中创建一个新的菜单项来打开一个窗口时,出现了以下错误:

访问错误

由于访问规则的限制,或者在一个已经被删除的文档上执行操作(操作:创建,文档类型:ir.values)。

我总是可以使用那个神奇的管理员账户,它可以绕过所有的安全检查,但我更希望能有更细致的控制。如果可能的话,为什么会失败,我该如何让一些管理员能够创建菜单项呢?

我特别感兴趣,因为我想写一个模块来创建菜单项。

1 个回答

2

经过一番深入的调查,我找到了错误的原因。这里有一个叫做“默认:仅修改个人值”的记录规则。这个规则是在修订版 3560.1.7中添加的,并在修订版 3713中合并。提交的评论是:

[IMP] ir.values: 提高安全性:用户只能写入他们的个人默认值

需要管理员权限才能为所有人设置默认值,以及修改操作绑定。

看起来这个规则的设计是为了让你只能通过神奇的管理员账户来修改操作绑定,而更改菜单项也需要修改操作绑定。

那么,如何解决这个问题呢?你可以让记录规则更复杂一些。你需要限制大多数用户只能编辑自己的默认值,而让管理员用户可以编辑ir_values表中的所有记录。我们的所有用户都在“人力资源/员工”组里,所以我把这个组添加到“默认:仅修改个人值”规则中,这样它就不会成为一个全局规则。然后我为ir_values添加了一个新规则,叫做“默认和操作:修改任何值”。我使用了一个虚拟的域过滤器:[(1,'=',1)],并将其分配给“管理/配置”组。现在大多数用户只会匹配第一个规则,只能编辑自己的默认值。而在配置组中的任何人都会匹配两个规则,所以这些规则会用“或”结合在一起,他们就可以编辑表中的所有记录。要让这一切正常工作,重要的是你需要有一个用户都属于的组或一组组。

撰写回答