当我尝试创建新的菜单项以在 OpenERP 6.1 中打开窗口时,出现以下错误:
访问错误
访问规则禁止的操作,或对已删除的文档执行的操作(操作:创建,文档类型:ir.values)。
我总是可以使用绕过所有安全检查的神奇管理员帐户,但如果可能的话,我宁愿有更好的控制。为什么会失败?如何允许某些管理员创建菜单项?
我特别感兴趣,因为我想编写一个创建菜单项的模块。
经过一番挖掘,我找到了错误的原因。有一条记录规则叫做“默认:仅改变个人价值观”。这是添加在修订版 3560.1.7 http://bazaar.launchpad.net/%7Eopenerp/openobject-server/6.1/revision/3560.1.7并合并在修订版 3713 http://bazaar.launchpad.net/%7Eopenerp/openobject-server/6.1/revision/3713。提交评论说:
[IMP] ir.values:提高安全性:用户只能写入他们的个人默认值
需要管理员访问权限才能设置默认值
每个人,以及改变动作绑定。
看起来您应该只能使用魔法管理员帐户更改操作绑定,并且更改菜单项需要您更改操作绑定。
如何解决这个问题?嗯,你可以让记录规则更加复杂。您需要限制大多数用户编辑自己的默认值,并让管理用户编辑ir_values
桌子。我们的所有用户都位于人力资源/员工组中,因此我将该组添加到“默认:仅更改个人价值观”规则中,以阻止其成为全局规则。然后我添加了一条新规则ir_values
称为“默认值和操作:更改任何值”。我使用了虚拟域过滤器:[(1,'=',1)]
并将其分配给管理/配置组。现在,大多数用户只会匹配第一条规则,并且只能编辑自己的默认值。配置组中的任何人都将匹配这两个规则,因此规则将与 OR 组合,他们将能够编辑表中的所有记录。要使这项工作顺利进行,最重要的是您需要一个或一组所有用户都是其成员的组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)