Manager Manager: Own Projects [('user_id', '=', user.id)] Project/Task: project supervisor: see all tasks linked to his assigned project or its own tasks [ ('project_id.user_id','=',user.id), '|', ('project_id', '!=', False), ('user_ids', 'in', user.id), ] Project/Task: project users: don't see non generic tasks [ '&', '&', ('project_id', '!=', False), ('is_generic', '=', False), ('user_ids', 'not in', user.id), ] Project/Task: project lead: see all tasks [ '&', '&', '&', ('project_id', '!=', False), ('project_id.project_lead', '=', user.id), '|', ('is_generic', '=', True), ('is_generic', '=', False), '|', ('user_ids', 'in', user.id), ('user_ids', 'not in', user.id) ]