仅在 odoo 12 中将任务访问限制为指定用户

restrict access of tasks to assigned users only in odoo 12

我想限制对任务中指定用户的访问。因此,用户只能看到分配的任务,而现在用户可以看到所有任务。我试过下面的东西,但它不起作用。

<record id="group_project_user_developer" model="res.groups">
            <field name="name">Developer</field>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
            <field name="category_id" ref="base.module_category_project_management"/>
        </record>

        <record id="project.group_project_user" model="res.groups">
            <field name="name">User</field>
            <field name="implied_ids" eval="[(4, ref('project_custom.group_project_user_developer'))]"/>
            <field name="category_id" ref="base.module_category_project_management"/>
        </record>

        <record model="ir.rule" id="own_task_view_rule">
            <field name="name">See own tasks only</field>
            <field name="model_id" ref="project.model_project_task"/>
            <field name="groups" eval="[(4, ref('project_custom.group_project_user_developer'))]" />
            <field name="domain_force">[('user_id','=',user.id)]</field>
        </record>

此处拥有 Developer 组的用户可以访问所有任务,但实际上它应该只允许访问分配的任务。

那是由于你的Record Rule执行,

<field name="domain_force">[('user_id','=',user.id)]</field>

在模型 ['project.task'] 上,登录用户将只能访问 his/her 分配任务。

谢谢

您可以通过操作 domain:

<record id="project.act_project_project_2_project_task_all" model="ir.actions.act_window">
    <field name="domain">[('user_id', '=', uid)]</field>
</record>

<delete model="ir.rule" id="project.task_visibility_rule"/> 在 Odoo 13 中可能在 Odoo 12 中具有相同的 ID。此规则允许向用户显示所有项目任务,而不管您的规则如何,因此要使您的规则有效,您必须删除此规则
删除以下规则或将其停用以检查您的代码是否正常工作然后通过 XML 添加它以删除代码也允许管理器因此您的权限只有在您设置项目任务和 fsm 任务 = 用户访问权限时才有效
如果您在查找此规则时遇到问题,只需在代码 XML 文件中搜索即可查找此规则

follow required for follower-only projects

这是允许管理员查看所有任务的规则
一般来说,必须有另一条规则允许你可能不允许的事情,所以当你的规则不起作用时请记住这一点