appointment.type: apt internal rule (read self-staff and resources)
[
'|',
('staff_user_ids', 'in', [user.id, False]),
('schedule_based_on', '=', 'resources')]
appointment.type: apt internal rule (read published)
[('is_published', '=', True)]
appointment.type: apt user rule (read self-create, self-staff and resources)
[
'|', '|',
('create_uid', '=', user.id),
('staff_user_ids', 'in', [user.id, False]),
('schedule_based_on', '=', 'resources')]
appointment.type: apt user rule (write/unlink = own only)
[('create_uid', '=', user.id)]
appointment.type: apt administrator rule
[(1, '=', 1)]
appointment.slot: apt internal rule (read self-staff and resources)
[
('appointment_type_id', 'any', [
'|',
('staff_user_ids', 'in', [user.id, False]),
('schedule_based_on', '=', 'resources')
])
]
appointment.slot: apt internal rule (read published)
[('appointment_type_id.is_published', '=', True)]
appointment.slot: apt user rule (read self-create, self-staff and resources)
[
('appointment_type_id', 'any', [
'|', '|',
('create_uid', '=', user.id),
('staff_user_ids', 'in', [user.id, False]),
('schedule_based_on', '=', 'resources'),
])
]
appointment.slot: apt user rule (write/unlink = own only)
[
'|',
('appointment_type_id.create_uid', '=', user.id),
('create_uid', '=', user.id)]
appointment.slot: apt administrator rule
[(1, '=', 1)]
appointment.invite: user and internal rule (read self-create and self-staff)
['|', ('create_uid', '=', user.id), ('staff_user_ids', '=', user.id)]
appointment.invite: apt user and internal rule (write/unlink = own only)
[('create_uid', '=', user.id)]
appointment.invite: apt administrator rule
[(1, '=', 1)]