User
Manager
Task's Work on Tasks
Time Estimation on Tasks
Project: multi-company
['|',
('company_id', '=', False),
('company_id', 'child_of', [user.company_id.id]),
]
Project: project manager: see all
[(1, '=', 1)]
Project: employees: portal, employees or followers
['|',
('privacy_visibility', 'in', ['portal', 'employees']),
('message_partner_ids', 'in', [user.partner_id.id])
]
Project/Task: multi-company
['|',
('company_id', '=', False),
('company_id', 'child_of', [user.company_id.id]),
]
Project/Task: employees: portal or employee or (followers and following)
[
'|',
('project_id.privacy_visibility', 'in', ['portal', 'employees']),
'|',
'&',
('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_id', '=', user.id)
]
Project/Task: project manager: see all
[(1, '=', 1)]
Project: portal users: portal or following
[
'|',
'&',
('privacy_visibility', '=', 'portal'),
('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
'&',
('privacy_visibility', '=', 'followers'),
('message_partner_ids', 'in', [user.partner_id.id])
]
Project/Task: portal users: (portal and colleagues following) or (followers and following)
[
'|',
'|',
'&',
('project_id.privacy_visibility', '=', 'portal'),
('project_id.message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]),
'&',
('project_id.privacy_visibility', '=', 'followers'),
('project_id.message_partner_ids', 'in', [user.partner_id.id]),
'&',
# on employee project can receive messages but not access the object
('project_id.privacy_visibility', '!=', 'employees'),
('message_partner_ids', 'in', [user.partner_id.id])
]
Task Analysis multi-company
['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]