37 $chatTypes = [Chat::IM_TYPE_OPEN, Chat::IM_TYPE_CHAT, Chat::IM_TYPE_OPEN_CHANNEL, Chat::IM_TYPE_CHANNEL];
39 $query = ChatTable::query()
41 ->where(
'AUTHOR_ID', $ownerId)
42 ->whereIn(
'TYPE', $chatTypes)
43 ->setLimit(self::CHAT_LIMIT)
49 $query->where(
'ID',
'>', $targetId);
53 foreach (
$query->fetchAll() as $row)
56 $chatId = (int)$row[
'ID'];
64 RelationTable::updateByFilter(
65 [
'=CHAT_ID' => $chatId,
'=USER_ID' => $chat->getAuthorId()],
71 '!USER_ID' => $chat->getAuthorId(),
73 'ONLY_INTERNAL_TYPE' =>
true,
74 'ONLY_INTRANET' =>
true,
78 foreach ($relations as $relation)
80 $user = $relation->getUser();
83 $chat->setAuthorId(
$user->getId());
84 $relation->setManager(
true);
95 if ($chatCount === self::CHAT_LIMIT)
97 return self::getAgentName($ownerId, $targetId);
137 $generalChatId = \COption::GetOptionInt(
'im',
'general_chat_id');
150 ->setType(Chat::IM_TYPE_OPEN)
151 ->setEntityType(Chat::ENTITY_TYPE_GENERAL)
155 if (!$generalChat || $generalChat instanceof
Chat\
NullChat)
160 $canPostAll = (\COption::GetOptionString(
'im',
'allow_send_to_general_chat_all',
'Y') ===
'Y');
164 ->setManageMessages(Chat::MANAGE_RIGHTS_MEMBER)
170 $chatRights = \COption::GetOptionString(
'im',
'allow_send_to_general_chat_rights');
176 $users = UserAccessTable::getList([
181 '=ACCESS_CODE' => explode(
',', $chatRights)
193 $userIds = array_column($users,
'USER_ID');
195 $relations = $generalChat->getRelations();
196 foreach ($relations as $relation)
198 if (in_array($relation->getUserId(), $userIds))
200 $relation->setManager(
true);
206 ->setManageMessages(Chat::MANAGE_RIGHTS_MANAGERS)