- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat.php
- Класс: BitrixImV2Chat
- Вызов: Chat::setManagers
public function setManagers(array $managerIds): self
{
if (!$this->getChatId() || empty($managerIds) || !count($managerIds))
{
return $this;
}
$managerIds = filter_var(
$managerIds,
FILTER_VALIDATE_INT,
[
'flags' => FILTER_REQUIRE_ARRAY,
'options' => ['min_range' => 1],
]
);
foreach ($managerIds as $key => $managerId)
{
if (!is_int($managerId))
{
unset($managerIds[$key]);
}
}
$relations = $this->getRelations([
'CHAT_ID' => $this->getChatId(),
]);
$relationIds = [];
$unsetManagerIds = [];
/** @var Relation $relation */
foreach ($relations as $relation)
{
if (in_array($relation->getUserId(), $managerIds, true))
{
$relationIds[] = $relation->getPrimaryId();
}
elseif ($relation->getManager())
{
$unsetManagerIds[] = $relation->getPrimaryId();
}
}
if ($unsetManagerIds)
{
RelationTable::updateMulti(
$unsetManagerIds,
[
'MANAGER' => 'N',
]
);
}
RelationTable::updateMulti(
$relationIds,
[
'MANAGER' => 'Y',
]
);
return $this;
}