Files
project-tools/project_visibility_followers_portal/security/project_security.xml

64 lines
2.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record model="ir.rule" id="project_project_rule_followers_portal">
<field name="name">Project: Invited internal users and invited portal users</field>
<field name="model_id" ref="model_project_project"/>
<field name="domain_force">[
('privacy_visibility', '=', 'followers_portal'),
('message_partner_ids', 'in', [user.partner_id.id])
]</field>
<field name="groups" eval="[(4, ref('base.group_user')),(4, ref('base.group_portal'))]"/>
</record>
<record model="ir.rule" id="project_task_rule_followers_portal">
<field name="name">Task: Invited internal users and invited portal users</field>
<field name="model_id" ref="model_project_task"/>
<field name="domain_force">[
('project_id.privacy_visibility', '=', 'followers_portal'),
'|',
('project_id.message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
]</field>
<field name="groups" eval="[(4, ref('base.group_user')),(4, ref('base.group_portal'))]"/>
</record>
<!-- extend existing rule -->
<record model="ir.rule" id="project.project_public_members_rule">
<field name="domain_force">[
'|',
('privacy_visibility', '!=', 'followers_portal'),
('message_partner_ids', 'in', [user.partner_id.id]),
'|',
('privacy_visibility', '!=', 'followers'),
('message_partner_ids', 'in', [user.partner_id.id])
]</field>
</record>
<record model="ir.rule" id="project.task_visibility_rule">
<field name="domain_force">[
'|',
'&amp;',
('project_id', '!=', False),
(
'|',
('project_id.privacy_visibility', '!=', 'followers_portal'),
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'|',
('project_id.privacy_visibility', '!=', 'followers'),
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
),
'|',
('message_partner_ids', 'in', [user.partner_id.id]),
# to subscribe check access to the record, follower is not enough at creation
('user_ids', 'in', user.id)
]</field>
<field name="groups" eval="[(4,ref('base.group_user'))]"/>
</record>
</data>
</odoo>