- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/contactcenter.php
- Класс: BitrixIntranetContactCenter
- Вызов: ContactCenter::getImopenlinesConfigList
private function getImopenlinesConfigList(): array
{
if (!Loader::includeModule("imopenlines"))
{
return [];
}
$userPermissions = Permissions::createWithCurrentUser();
$allowedUserIds = Helper::getAllowedUserIds(
Helper::getCurrentUserId(),
$userPermissions->getPermission(Permissions::ENTITY_CONNECTORS, Permissions::ACTION_MODIFY)
);
$limit = null;
if (is_array($allowedUserIds))
{
$limit = array();
$orm = BitrixImOpenlinesModelQueueTable::getList(Array(
'filter' => Array(
'=USER_ID' => $allowedUserIds
)
));
while ($row = $orm->fetch())
{
$limit[$row['CONFIG_ID']] = $row['CONFIG_ID'];
}
}
$configManager = new BitrixImOpenLinesConfig();
$result = $configManager->getList([
'select' => [
'ID',
'NAME' => 'LINE_NAME',
'IS_ACTIVE' => 'ACTIVE',
'MODIFY_USER_ID'
],
'filter' => ['=TEMPORARY' => 'N'],
'order' => ['LINE_NAME']
]);
foreach ($result as $id => $config)
{
if (!is_null($limit))
{
if (!isset($limit[$config['ID']]) && !in_array($config['MODIFY_USER_ID'], $allowedUserIds, true))
{
unset($result[$id]);
continue;
}
}
$result[$id] = $config;
}
return $result;
}