当我尝试创建一个新菜单项以在OpenERP 6.1中打开一个窗口时,我收到以下错误:
AccessError
访问规则禁止的操作,或对已删除的文档执行的操作(操作:创建,文档类型:ir.values)。
我总是可以使用绕过所有安全检查的魔术管理员帐户,但如果可能的话,我宁愿进行更好的控制。为什么会失败,我如何允许一些管理员创建菜单项?
我特别感兴趣,因为我想写一个创建菜单项的模块。
答案 0 :(得分:2)
经过一堆挖掘,我找到了错误的原因。有一条记录规则称为“默认值:仅改变个人价值”。这已在revision 3560.1.7中添加,并在revision 3713中合并。提交评论说:
[IMP] ir.values:提高安全性:用户只能写入他们的个人默认值
需要管理员访问权限才能设置默认值 每个人,以及改变动作绑定。
您似乎只能使用魔术管理员帐户更改操作绑定,更改菜单项需要您更改操作绑定。
你怎么解决这个问题?那么,你可以使记录规则更复杂。您需要限制大多数用户编辑自己的默认值,并让管理用户编辑ir_values
表中的所有记录。我们所有的用户都在人力资源/员工组中,因此我将该组添加到“默认值:仅限个人值”规则中,以阻止其成为全局规则。然后我为ir_values
添加了一个名为“默认值和操作:更改任何值”的新规则。我使用了虚拟域过滤器:[(1,'=',1)]
并将其分配给管理/配置组。现在大多数用户只匹配第一个规则,只能编辑自己的默认值。配置组中的任何人都将匹配这两个规则,因此规则将与OR组合,并且他们将能够编辑表中的所有记录。使这项工作变得重要的是,您需要一组或一组所有用户都是其成员。