- Модуль: controller
- Путь к файлу: ~/bitrix/modules/controller/lib/authgrant.php
- Класс: BitrixControllerAuthGrantTable
- Вызов: AuthGrantTable::getGranteeUserList
static function getGranteeUserList($currentUserId)
{
$tasks = array();
$groups = array();
$users = array();
$tasksList = BitrixMainTaskOperationTable::getList(array(
"select" => array("TASK_ID"),
"filter" => array(
"=OPERATION.NAME" => "controller_member_view",
),
));
while($a = $tasksList->fetch())
{
$tasks[$a['TASK_ID']] = $a['TASK_ID'];
}
if ($tasks)
{
$groupsList = BitrixMainGroupTaskTable::getList(array(
"select" => array("GROUP_ID"),
"filter" => array(
"=TASK_ID" => $tasks,
),
));
while($a = $groupsList->fetch())
{
$groups[$a['GROUP_ID']] = $a['GROUP_ID'];
}
}
if ($groups)
{
$usersList = BitrixMainUserGroupTable::getList(array(
"select" => array(
"ID" => "USER.ID",
"LOGIN" => "USER.LOGIN",
"NAME" => "USER.NAME",
"LAST_NAME" => "USER.LAST_NAME",
),
"filter" => array(
"=GROUP_ID" => $groups,
array(
"LOGIC" => "OR",
"=DATE_ACTIVE_FROM" => false,
"<=DATE_ACTIVE_FROM" => new BitrixMainTypeDateTime(),
),
array(
"LOGIC" => "OR",
"=DATE_ACTIVE_TO" => false,
">=DATE_ACTIVE_TO" => new BitrixMainTypeDateTime(),
),
),
));
while($a = $usersList->fetch())
{
if ($a['ID'] != $currentUserId)
{
$users[$a['ID']] = $a['LAST_NAME'].' '.$a['NAME'].' ('.$a['LOGIN'].')';
}
}
}
asort($users);
return $users;
}