Merge branch 'master' of https://github.com/odoo/odoo
[odoo/odoo.git] / addons / portal_project / security / portal_security.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <openerp>
3     <data noupdate="1">
4
5         <record model="ir.rule" id="project.project_public_members_rule">
6             <field name="name">Project: employees: public, portal, employees or following</field>
7             <field name="domain_force">['|',
8                                             ('privacy_visibility', 'in', ['public', 'portal', 'employees']),
9                                             '&amp;',
10                                                 ('privacy_visibility', '=', 'followers'),
11                                                 ('message_follower_ids', 'in', [user.partner_id.id]),
12                                         ]</field>
13             <field name="groups" eval="[(4, ref('base.group_user'))]"/>
14         </record>
15
16         <record id="portal_project_rule" model="ir.rule">
17             <field name="name">Project: portal users: public, portal or following</field>
18             <field name="model_id" ref="project.model_project_project"/>
19             <field name="domain_force">[
20                 '|',
21                     '|',
22                         ('privacy_visibility', '=', 'public'),
23                         '&amp;',
24                             ('privacy_visibility', '=', 'portal'),
25                             ('message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
26                     '&amp;',
27                         ('privacy_visibility', '=', 'followers'),
28                         ('message_follower_ids', 'in', [user.partner_id.id])
29             ]</field>
30             <field name="groups" eval="[(4, ref('base.group_portal'))]"/>
31         </record>
32
33         <record model="ir.rule" id="project_public_rule">
34             <field name="name">Project: public users: public only</field>
35             <field name="model_id" ref="project.model_project_project"/>
36             <field name="domain_force">[('privacy_visibility', '=', 'public')]</field>
37             <field name="groups" eval="[(4, ref('base.group_public'))]"/>
38         </record>
39
40         <record model="ir.rule" id="project.task_visibility_rule">
41             <field name="name">Project/Task: employees: public, portal, employee or (followers and following)</field>
42             <field name="domain_force">[
43             '|',
44                 ('project_id.privacy_visibility', 'in', ['public', 'portal', 'employees']),
45                 '|',
46                     '&amp;',
47                         ('project_id.privacy_visibility', '=', 'followers'),
48                         ('project_id.message_follower_ids', 'in', [user.partner_id.id]),
49                     '|',
50                         ('message_follower_ids', 'in', [user.partner_id.id]),
51                         ('user_id', '=', user.id)
52             ]</field>
53         </record>
54
55         <record id="portal_task_rule" model="ir.rule">
56             <field name="name">Project/Task: portal users: public or (portal and colleagues following) or (followers and following)</field>
57             <field name="model_id" ref="project.model_project_task"/>
58             <field name="domain_force">[
59             '|',
60                 '|',
61                     '|',
62                         ('project_id.privacy_visibility', '=', 'public'),
63                         '&amp;',
64                             ('project_id.privacy_visibility', '=', 'portal'),
65                             ('project_id.message_follower_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
66                     '&amp;',
67                         ('project_id.privacy_visibility', '=', 'followers'),
68                         ('project_id.message_follower_ids', 'in', [user.partner_id.id]),
69                 '&amp;',
70                     # on employee project can receive messages but not access the object
71                     ('project_id.privacy_visibility', '!=', 'employees'),
72                     ('message_follower_ids', 'in', [user.partner_id.id])
73             ]</field>
74             <field name="groups" eval="[(4, ref('base.group_portal'))]"/>
75         </record>
76
77         <record model="ir.rule" id="task_public_rule">
78             <field name="name">Project/Task: public users: public only</field>
79             <field name="model_id" ref="project.model_project_task"/>
80             <field name="domain_force">[('project_id.privacy_visibility', '=', 'public')]</field>
81             <field name="groups" eval="[(4, ref('base.group_public'))]"/>
82         </record>
83
84     </data>
85 </openerp>