- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task.php
- Класс: BitrixTasksRestControllersTask
- Вызов: Task::processFilterRoleId
private function processFilterRoleId(array $filter, int $userId, string $roleId): array
{
if (!$roleId)
{
return $filter;
}
switch ($roleId)
{
case 'R':
$filter['=RESPONSIBLE_ID'] = $userId;
break;
case 'A':
$filter['=ACCOMPLICE'] = $userId;
break;
case 'U':
$filter['=AUDITOR'] = $userId;
break;
case 'O':
$filter['=CREATED_BY'] = $userId;
$filter['!REFERENCE:RESPONSIBLE_ID'] = 'CREATED_BY';
break;
default:
if (array_key_exists('GROUP_ID', $filter))
{
$filter['MEMBER'] = $userId;
}
$filter['::SUBFILTER-OR-ORIGIN'] = [
'::LOGIC' => 'OR',
'::SUBFILTER-1' => [
'REAL_STATUS' => $filter['REAL_STATUS'],
],
'::SUBFILTER-2' => [
'=CREATED_BY' => $userId,
'REAL_STATUS' => Status::SUPPOSEDLY_COMPLETED,
],
];
unset($filter['REAL_STATUS']);
break;
}
unset($filter['ROLE']);
return $filter;
}