我正在尝试使“项目”表单上的“编辑”按钮仅在登录系统的用户是该项目的项目经理时才可见。我一直在网上阅读有关这方面的各种答案,收集了对访问权限与记录规则的一些理解但我无法使其工作。根据我的理解,访问权限覆盖记录规则。因此,如果我在“项目/用户”组下创建一个记录规则,该记录规则对域具有读写访问权限,如下所示:
[('user_id','=',user.id)]
这将被项目/用户访问权限覆盖吗?那我怎么能让这个工作? 感谢任何可以提供帮助的人。
答案 0 :(得分:1)
据我所知,记录规则可以覆盖访问权限。
以下是一个示例,其中记录规则用于根据任务base_user
更改state
编辑功能:https://github.com/OCA/project-service/tree/8.0/project_baseuser/security
但是,根据任务状态,“编辑”按钮不会动态显示:它始终可见,但规则可能允许也可能不允许在“保存”上写入。
答案 1 :(得分:1)
在记录规则之前检查访问控制列表。
因为访问控制列表是模型上的CRUD安全性(创建/读取/更新/删除)。
只有在传递ACL时,才会出现下一个记录级安全性。
据我了解,您希望授予项目用户编辑自己项目的权限(他在项目用户组中而不是项目经理,但由项目经理组用户LOL设置为项目管理员的确切项目。)
我通过以下方式做到了这一点:
1)为项目用户提供项目经理角色。
2)将它们限制为仅修改自己的项目,方法是在更新/删除操作中使用以下域创建全局规则(未设置组):
['|', ('user_id','=',user.id),('create_uid','=',user.id)]
P,S,这是截图 - http://awesomescreenshot.com/0083nqyf76
答案 2 :(得分:0)
对于model.project模型,仅向组项目管理器提供写入权限。转到settings / techical / security。在那里你可以看到访问控制列表。 CHeck为项目管理员提供的所有组都提供给项目。项目模型。删除写入权限
答案 3 :(得分:0)
"记录规则有可能覆盖访问权限。 您可以在odoo模块中的CSV文件中添加访问控制列表,该模块描述了模型上组用户的 CRUD安全性(创建/读取/更新/删除)。
如果要修改特定型号上的组安全性,可以覆盖自定义模块中的访问权限 记录用于根据条件限制记录访问的规则
您可以创建额外的规则(ir.rule)和用于限制用户的domain_force
<field name=""domain_force"">[('user_id', '=', user.id)]</field>"