2

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

访问错误

访问规则禁止的操作,或对已删除的文档执行的操作(操作:创建,文档类型:ir.values)。

我总是可以使用绕过所有安全检查的神奇管理员帐户,但如果可能的话,我宁愿进行更好的控制。为什么会失败,如何允许某些管理员创建菜单项?

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

4

1 回答 1

2

经过一堆挖掘,我找到了错误的原因。有一条记录规则叫做“默认值:仅更改个人价值观”。这是在修订版 3560.1.7中添加的,并在修订版 3713中合并。提交评论说:

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

需要管理员访问权限才能为每个人设置默认值,以及更改操作绑定。

看来您应该只能使用魔术管理员帐户更改操作绑定,并且更改菜单项需要您更改操作绑定。

你怎么能解决这个问题?好吧,您可以使记录规则更加复杂。您需要限制大多数用户编辑他们自己的默认值,并让管理用户编辑ir_values表中的所有记录。我们所有的用户都在 Human Resources/Employee 组中,所以我将该组添加到“默认值:仅更改个人值”规则中,以阻止它成为全局规则。ir_values然后我添加了一个名为“默认值和操作:更改任何值”的新规则。我使用了一个虚拟域过滤器:[(1,'=',1)]并将其分配给管理/配置组。现在大多数用户只会匹配第一条规则,并且只能编辑自己的默认值。配置组中的任何人都将匹配这两个规则,因此这些规则将与 OR 组合在一起,他们将能够编辑表中的所有记录。完成这项工作的重要一点是,您需要一个或一组所有用户都是其成员的组。

于 2013-02-19T00:52:56.727 回答