- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/bizproc/document/task.php
- Класс: BitrixTasksIntegrationBizprocDocumentTask
- Вызов: Task::getUsersFromUserGroup
static function getUsersFromUserGroup($group, $documentId)
{
if ($group === 'responsible')
{
$member = MemberTable::getList([
'filter' => ['=TASK_ID' => $documentId, '=TYPE' => MemberTable::MEMBER_TYPE_RESPONSIBLE],
'select' => ['USER_ID']
])->fetch();
return $member ? [$member['USER_ID']] : [];
}
elseif (strpos($group, 'scrum_') === 0)
{
$projectId = static::getProjectId($documentId);
if ($projectId && MainLoader::includeModule('socialnetwork'))
{
$workGroup = SocialnetworkItemWorkgroup::getById($projectId);
$scrumMaster = (int)$workGroup->getScrumMaster();
if ($group === 'scrum_master')
{
return [$scrumMaster];
}
if ($group === 'scrum_owner')
{
$owner = SocialnetworkUserToGroupTable::getList([
'filter' => [
'=ROLE' => SocialnetworkUserToGroupTable::ROLE_OWNER,
'=GROUP_ID' => $projectId,
],
'cache' => [
'ttl' => 3600
],
])->fetch();
return $owner ? [$owner['USER_ID']] : [];
}
//else ($group === 'scrum_team')
$teamRows = SocialnetworkUserToGroupTable::getList([
'filter' => [
'=ROLE' => SocialnetworkUserToGroupTable::ROLE_MODERATOR,
'=GROUP_ID' => $projectId,
],
'cache' => [
'ttl' => 3600
],
])->fetchAll();
$team = array_column($teamRows, 'USER_ID');
$team = array_map(fn($user) => (int)$user, $team);
return array_filter($team, fn($user) => $user !== $scrumMaster);
}
}
return [];
}