1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
Chat.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Controller;
4
5use Bitrix\Im\Dialog;
6use Bitrix\Im\Recent;
7use Bitrix\Im\V2\Chat\ChannelChat;
8use Bitrix\Im\V2\Chat\ChatError;
9use Bitrix\Im\V2\Chat\ChatFactory;
10use Bitrix\Im\V2\Chat\CollabChat;
11use Bitrix\Im\V2\Chat\CommentChat;
12use Bitrix\Im\V2\Chat\ExternalChat;
13use Bitrix\Im\V2\Chat\GeneralChat;
14use Bitrix\Im\V2\Chat\GroupChat;
15use Bitrix\Im\V2\Chat\MessagesAutoDelete\MessagesAutoDeleteConfigs;
16use Bitrix\Im\V2\Chat\OpenChannelChat;
17use Bitrix\Im\V2\Chat\OpenChat;
18use Bitrix\Im\V2\Chat\OpenLineChat;
19use Bitrix\Im\V2\Chat\Param\Params;
20use Bitrix\Im\V2\Chat\ExtendedType;
21use Bitrix\Im\V2\Controller\Filter\DiskQuickAccessGrantor;
22use Bitrix\Im\V2\Permission;
23use Bitrix\Im\V2\Chat\Update\UpdateFields;
24use Bitrix\Im\V2\Controller\Chat\Pin;
25use Bitrix\Im\V2\Controller\Filter\ChatTypeFilter;
26use Bitrix\Im\V2\Controller\Filter\CheckActionAccess;
27use Bitrix\Im\V2\Controller\Filter\CheckChatAccess;
28use Bitrix\Im\V2\Controller\Filter\CheckFileAccess;
29use Bitrix\Im\V2\Controller\Filter\ExtendPullWatchPrefilter;
30use Bitrix\Im\V2\Controller\Filter\UpdateStatus;
31use Bitrix\Im\V2\Entity\File\ChatAvatar;
32use Bitrix\Im\V2\Entity\User\UserPopupItem;
33use Bitrix\Im\V2\Message;
34use Bitrix\Im\V2\Relation\AddUsersConfig;
35use Bitrix\Im\V2\Rest\RestAdapter;
36use Bitrix\Im\V2\Chat\Update\UpdateService;
37use Bitrix\Im\V2\Result;
38use Bitrix\Intranet\ActionFilter\IntranetUser;
39use Bitrix\Main\Engine\ActionFilter\Base;
40use Bitrix\Main\Engine\AutoWire\ExactParameter;
41use Bitrix\Main\Engine\CurrentUser;
42use Bitrix\Main\Engine\Response\Converter;
43
44class Chat extends BaseController
45{
46 public function configureActions()
47 {
48 return [
49 'add' => [
50 '+prefilters' => [
52 Permission\GlobalAction::CreateChat,
53 fn (Base $filter) => [
54 'TYPE' => $this->getValidatedType(
55 $filter->getAction()->getArguments()['fields']['type'] ?? ''
56 ),
57 'ENTITY_TYPE' => $this->getValidatedEntityType(
58 $filter->getAction()->getArguments()['fields']['entityType'] ?? null
59 ),
60 ]
61 ),
62 new CheckFileAccess(['fields', 'avatar']),
63 ],
64 ],
65 'update' => [
66 '+prefilters' => [
67 new CheckFileAccess(['fields', 'avatar']),
68 new CheckActionAccess(Permission\Action::Update),
69 new ChatTypeFilter([GroupChat::class]),
70 ],
71 ],
72 'delete' => [
73 '+prefilters' => [
74 new CheckActionAccess(Permission\Action::Delete),
75 ],
76 ],
77 'updateAvatar' => [
78 '+prefilters' => [
79 new CheckFileAccess(['avatar']),
80 new CheckActionAccess(Permission\Action::ChangeAvatar),
81 ],
82 ],
83 'setOwner' => [
84 '+prefilters' => [
85 new CheckChatAccess(),
86 new CheckActionAccess(Permission\Action::ChangeOwner),
87 ]
88 ],
89 'setTitle' => [
90 '+prefilters' => [
91 new CheckChatAccess(),
92 new CheckActionAccess(Permission\Action::Rename),
93 ]
94 ],
95 'setDescription' => [
96 '+prefilters' => [
97 new CheckChatAccess(),
98 new CheckActionAccess(Permission\Action::ChangeDescription),
99 ]
100 ],
101 'setColor' => [
102 '+prefilters' => [
103 new CheckChatAccess(),
104 new CheckActionAccess(Permission\Action::ChangeColor),
105 ]
106 ],
107 'setAvatarId' => [
108 '+prefilters' => [
109 new CheckChatAccess(),
110 new CheckActionAccess(Permission\Action::ChangeAvatar),
111 new CheckFileAccess(['avatarId']),
112 ]
113 ],
114 'setAvatar' => [
115 '+prefilters' => [
116 new CheckChatAccess(),
117 new CheckActionAccess(Permission\Action::ChangeAvatar),
118 ]
119 ],
120 'addUsers' => [
121 '+prefilters' => [
122 new CheckChatAccess(),
123 new CheckActionAccess(Permission\Action::Extend),
124 ]
125 ],
126 'deleteUser' => [
127 '+prefilters' => [
128 new CheckChatAccess(),
130 Permission\Action::Kick,
131 fn (Base $filter) => (int)($filter->getAction()->getArguments()['userId'] ?? 0)
132 ),
133 ]
134 ],
135 'setManagers' => [
136 '+prefilters' => [
137 new CheckChatAccess(),
138 new CheckActionAccess(Permission\Action::ChangeManagers),
139 ]
140 ],
141 'addManagers' => [
142 '+prefilters' => [
143 new CheckChatAccess(),
144 new CheckActionAccess(Permission\Action::ChangeManagers),
145 new ChatTypeFilter([GroupChat::class]),
146 ]
147 ],
148 'deleteManagers' => [
149 '+prefilters' => [
150 new CheckChatAccess(),
151 new CheckActionAccess(Permission\Action::ChangeManagers),
152 new ChatTypeFilter([GroupChat::class]),
153 ]
154 ],
155 'setManageUsersAdd' => [
156 '+prefilters' => [
157 new CheckChatAccess(),
158 new CheckActionAccess(Permission\Action::ChangeRight),
159 ]
160 ],
161 'setManageUsersDelete' => [
162 '+prefilters' => [
163 new CheckChatAccess(),
164 new CheckActionAccess(Permission\Action::ChangeRight),
165 ]
166 ],
167 'setManageUI' => [
168 '+prefilters' => [
169 new CheckChatAccess(),
170 new CheckActionAccess(Permission\Action::ChangeRight),
171 ]
172 ],
173 'setManageSettings' => [
174 '+prefilters' => [
175 new CheckChatAccess(),
176 new CheckActionAccess(Permission\Action::ChangeRight),
177 ]
178 ],
179 'setMessagesAutoDeleteDelay' => [
180 '+prefilters' => [
181 new CheckChatAccess(),
182 new CheckActionAccess(Permission\Action::ChangeMessagesAutoDeleteDelay),
183 ]
184 ],
185 'setManageMessages' => [
186 '+prefilters' => [
187 new CheckChatAccess(),
188 new CheckActionAccess(Permission\Action::ChangeRight),
189 ]
190 ],
191 'load' => [
192 '+prefilters' => [
195 ],
196 ],
197 'loadInContext' => [
198 '+prefilters' => [
200 ],
201 ],
202 'join' => [
203 '+prefilters' => [
204 new ChatTypeFilter([
205 OpenChat::class,
206 OpenLineChat::class,
207 GeneralChat::class,
208 OpenChannelChat::class,
209 CommentChat::class,
210 ExternalChat::class,
211 ]),
212 ],
213 ],
214 'extendPullWatch' => [
215 '+prefilters' => [
216 new ChatTypeFilter([OpenChat::class, OpenLineChat::class, ChannelChat::class]),
217 ],
218 ],
219 'pin' => [
220 '+prefilters' => [
221 new CheckActionAccess(Permission\Action::PinChat),
222 ],
223 ],
224 'sortPin' => [
225 '+prefilters' => [
226 new CheckActionAccess(Permission\Action::PinChat),
227 ],
228 ],
229 ];
230 }
231
233 {
234 return new ExactParameter(
235 \Bitrix\Im\V2\Chat::class,
236 'chat',
237 function ($className, $id) {
238 return \Bitrix\Im\V2\Chat::getInstance((int)$id);
239 }
240 );
241 }
242
246 public function shallowLoadAction(\Bitrix\Im\V2\Chat $chat): ?array
247 {
248 return $this->toRestFormat($chat);
249 }
250
254 public function loadAction(
255 \Bitrix\Im\V2\Chat $chat,
256 int $messageLimit = Chat\Message::DEFAULT_LIMIT,
257 int $pinLimit = Pin::DEFAULT_LIMIT,
258 string $ignoreMark = 'N'
259 ): ?array
260 {
261 $result = $this->load($chat, $messageLimit, $pinLimit, $this->convertCharToBool($ignoreMark));
262
263 if (!empty($this->getErrors()))
264 {
265 return null;
266 }
267
268 return $result;
269 }
270
274 public function loadInContextAction(
276 int $messageLimit = Chat\Message::DEFAULT_LIMIT,
277 int $pinLimit = Pin::DEFAULT_LIMIT
278 ): ?array
279 {
280 $result = $this->load($message->getChat(), $messageLimit, $pinLimit, false, $message);
281
282 if (!empty($this->getErrors()))
283 {
284 return null;
285 }
286
287 return $result;
288 }
289
293 public function getAction(\Bitrix\Im\V2\Chat $chat): ?array
294 {
295 return (new RestAdapter($chat))->toRestFormat(['POPUP_DATA_EXCLUDE' => [UserPopupItem::class]]);
296 }
297
301 public function listSharedAction(array $filter, int $limit = self::DEFAULT_LIMIT, int $offset = 0): ?array
302 {
303 if (!isset($filter['userId']))
304 {
305 $this->addError(new ChatError(ChatError::USER_ID_EMPTY_ERROR));
306
307 return null;
308 }
309 $userId = (int)$filter['userId'];
310 $chats = \Bitrix\Im\V2\Chat::getSharedChatsWithUser($userId, $this->getLimit($limit), $offset);
311 \Bitrix\Im\V2\Chat::fillSelfRelations($chats);
312 $result = ['chats' => []];
313
314 foreach ($chats as $chat)
315 {
316 $result['chats'][] = $chat->toRestFormat(['CHAT_SHORT_FORMAT' => true, 'CHAT_WITH_DATE_MESSAGE' => true]);
317 }
318
319 return $result;
320 }
321
326 public function getDialogIdAction(string $externalId): ?array
327 {
328 $chatId = Dialog::getChatId($externalId);
329
330 if ($chatId === false || $chatId === 0)
331 {
332 $this->addError(new ChatError(ChatError::NOT_FOUND));
333
334 return null;
335 }
336
337 return ['dialogId' => "chat{$chatId}"];
338 }
339
343 public function readAction(\Bitrix\Im\V2\Chat $chat, string $onlyRecent = 'N'): ?array
344 {
345 $result = $chat->read($this->convertCharToBool($onlyRecent));
346
347 return $this->convertKeysToCamelCase($result->getResult());
348 }
349
354 {
355 \Bitrix\Im\V2\Chat::readAllChats((int)$user->getId());
356
357 return [];
358 }
359
363 public function unreadAction(\Bitrix\Im\V2\Chat $chat): ?array
364 {
365 Recent::unread($chat->getDialogId(), true);
366
367 return [];
368 }
369
373 public function startRecordVoiceAction(\Bitrix\Im\V2\Chat $chat): ?array
374 {
375 $chat->startRecordVoice();
376
377 return ['result' => true];
378 }
379
383 public function addAction(array $fields): ?array
384 {
385 $fields['type'] = $this->getValidatedType($fields['type'] ?? null);
386 $fields['entityType'] = $this->getValidatedEntityType($fields['entityType'] ?? null);
387
388 if (
389 !isset($fields['entityType'])
390 || $fields['entityType'] !== 'VIDEOCONF'
391 || !isset($fields['conferencePassword'])
392 )
393 {
394 unset($fields['conferencePassword']);
395 }
396
397 if (isset($fields['copilotMainRole']))
398 {
399 $fields['chatParams'][] = [
400 'paramName' => Params::COPILOT_MAIN_ROLE,
401 'paramValue' => $fields['copilotMainRole']
402 ];
403 }
404
405 $data = self::recursiveWhiteList($fields, \Bitrix\Im\V2\Chat::AVAILABLE_PARAMS);
406 if (isset($data['OWNER_ID']))
407 {
408 $data['AUTHOR_ID'] = $data['OWNER_ID'];
409 }
410
412 if (!$result->isSuccess())
413 {
414 $this->addErrors($result->getErrors());
415 return null;
416 }
417
418 return $this->convertKeysToCamelCase($result->getResult());
419 }
420
421 //region Update Chat
425 public function updateAction(GroupChat $chat, array $fields)
426 {
427 $converter = new Converter(Converter::TO_SNAKE | Converter::TO_UPPER | Converter::KEYS);
428 $updateService = new UpdateService($chat, UpdateFields::create($converter->process($fields)));
429
430 $result = $updateService->updateChat();
431 if (!$result->isSuccess())
432 {
433 $this->addError($result->getErrors()[0]);
434
435 return null;
436 }
437
438 return ['result' => true];
439 }
440
441 //region Delete Chat
442
447 public function deleteAction(\Bitrix\Im\V2\Chat $chat)
448 {
449 $result = $chat->deleteChat();
450
451 if (!$result->isSuccess())
452 {
453 $this->addError($result->getErrors()[0]);
454
455 return null;
456 }
457
458 return ['result' => true];
459 }
460
461 //region Manage Users
465 public function addUsersAction(\Bitrix\Im\V2\Chat $chat, array $userIds, ?string $hideHistory = null): ?array
466 {
467 $hideHistoryBool = $hideHistory === null ? null : $this->convertCharToBool($hideHistory, true);
468 $chat->addUsers($userIds, new AddUsersConfig(hideHistory: $hideHistoryBool));
469
470 return ['result' => true];
471 }
472
476 public function joinAction(\Bitrix\Im\V2\Chat $chat): ?array
477 {
478 $chat->join();
479
480 return ['result' => true];
481 }
482
486 public function extendPullWatchAction(\Bitrix\Im\V2\Chat $chat): ?array
487 {
488 if ($chat instanceof OpenChat || $chat instanceof OpenLineChat || $chat instanceof ChannelChat)
489 {
490 $chat->extendPullWatch();
491 }
492
493 return ['result' => true];
494 }
495
499 public function deleteUserAction(\Bitrix\Im\V2\Chat $chat, int $userId): ?array
500 {
501 $result = $chat->deleteUser($userId);
502
503 if (!$result->isSuccess())
504 {
505 $this->addErrors($result->getErrors());
506
507 return null;
508 }
509
510 return ['result' => true];
511 }
512 //endregion
513
514 //region Manage UI
518 public function setTitleAction(\Bitrix\Im\V2\Chat $chat, string $title)
519 {
520 $chat->setTitle($title);
521 $result = $chat->save();
522 if (!$result->isSuccess())
523 {
524 return $this->convertKeysToCamelCase($result->getErrors());
525 }
526
527 return $result->isSuccess();
528 }
529
533 public function setDescriptionAction(\Bitrix\Im\V2\Chat $chat, string $description)
534 {
535 $chat->setDescription($description);
536 $result = $chat->save();
537 if (!$result->isSuccess())
538 {
539 return $this->convertKeysToCamelCase($result->getErrors());
540 }
541
542 return $result->isSuccess();
543 }
544
548 public function setColorAction(\Bitrix\Im\V2\Chat $chat, string $color)
549 {
550 $result = $chat->validateColor();
551 if (!$result->isSuccess())
552 {
553 return $this->convertKeysToCamelCase($result->getErrors());
554 }
555
556 $chat->setColor($color);
557 $result = $chat->save();
558
559 if (!$result->isSuccess())
560 {
561 return $this->convertKeysToCamelCase($result->getErrors());
562 }
563
564 return $result->isSuccess();
565 }
566
570 public function updateAvatarAction(\Bitrix\Im\V2\Chat $chat, string $avatar)
571 {
572 $result = (new ChatAvatar($chat))->update($avatar);
573
574 if (!$result->isSuccess())
575 {
576 $this->addErrors($result->getErrors());
577
578 return null;
579 }
580
581 return ['result' => true];
582 }
583
587 public function setAvatarIdAction(\Bitrix\Im\V2\Chat $chat, int $avatarId)
588 {
589 $result = (new ChatAvatar($chat))->update($avatarId);
590
591 if (!$result->isSuccess())
592 {
593 return $this->convertKeysToCamelCase($result->getErrors());
594 }
595
596 return ['result' => true];
597 }
598
602 public function setAvatarAction(\Bitrix\Im\V2\Chat $chat, string $avatarBase64)
603 {
604 $result = (new ChatAvatar($chat))->update($avatarBase64);
605
606 if (!$result->isSuccess())
607 {
608 return $this->convertKeysToCamelCase($result->getErrors());
609 }
610
611 return ['avatarId' => $result->getResult()];
612 }
613 //endregion
614
615 //region Manage Settings
619 public function setMessagesAutoDeleteDelayAction(\Bitrix\Im\V2\Chat $chat, int $hours)
620 {
621 $result = match (true)
622 {
625 };
626
630 if (!$result->isSuccess())
631 {
632 $this->addErrors($result->getErrors());
633
634 return null;
635 }
636
637 return [
638 'messagesAutoDeleteConfigs' => $result->getResult()?->showDefaultValues()?->toRestFormat() ?? [],
639 ];
640 }
641
645 public function setOwnerAction(\Bitrix\Im\V2\Chat $chat, int $ownerId)
646 {
647 $chat->setAuthorId($ownerId);
648 $result = $chat->save();
649 if (!$result->isSuccess())
650 {
651 return $this->convertKeysToCamelCase($result->getErrors());
652 }
653
654 return $result->isSuccess();
655 }
656
660 public function setManagersAction(\Bitrix\Im\V2\Chat $chat, array $userIds)
661 {
662 $chat->setManagers($userIds);
663 $result = $chat->save();
664 if (!$result->isSuccess())
665 {
666 return $this->convertKeysToCamelCase($result->getErrors());
667 }
668
669 return $result->isSuccess();
670 }
671
675 public function addManagersAction(GroupChat $chat, array $userIds): ?array
676 {
677 $chat->addManagers($userIds);
678
679 return ['result' => true];
680 }
681
685 public function deleteManagersAction(GroupChat $chat, array $userIds): ?array
686 {
687 $chat->deleteManagers($userIds);
688
689 return ['result' => true];
690 }
691
695 public function setManageUsersAddAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
696 {
697 $chat->setManageUsersAdd(mb_strtoupper($rightsLevel));
698 $result = $chat->save();
699 if (!$result->isSuccess())
700 {
701 return $this->convertKeysToCamelCase($result->getErrors());
702 }
703
704 return $result->isSuccess();
705 }
706
710 public function setManageUsersDeleteAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
711 {
712 $chat->setManageUsersDelete(mb_strtoupper($rightsLevel));
713 $result = $chat->save();
714 if (!$result->isSuccess())
715 {
716 return $this->convertKeysToCamelCase($result->getErrors());
717 }
718
719 return $result->isSuccess();
720 }
721
725 public function setManageUIAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
726 {
727 $chat->setManageUI(mb_strtoupper($rightsLevel));
728 $result = $chat->save();
729 if (!$result->isSuccess())
730 {
731 return $this->convertKeysToCamelCase($result->getErrors());
732 }
733
734 return $result->isSuccess();
735 }
736
740 public function setManageSettingsAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
741 {
742 $chat->setManageSettings(mb_strtoupper($rightsLevel));
743 $result = $chat->save();
744 if (!$result->isSuccess())
745 {
746 return $this->convertKeysToCamelCase($result->getErrors());
747 }
748
749 return $result->isSuccess();
750
751 }
752
756 public function setManageMessagesAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
757 {
758 $chat->setManageMessages(mb_strtoupper($rightsLevel));
759 $result = $chat->save();
760 if (!$result->isSuccess())
761 {
762 return $this->convertKeysToCamelCase($result->getErrors());
763 }
764
765 return $result->isSuccess();
766 }
767
771 public function pinAction(\Bitrix\Im\V2\Chat $chat, CurrentUser $user): ?array
772 {
773 Recent::pin($chat->getDialogId(), true, $user->getId());
774
776 {
777 $this->addError(new ChatError(ChatError::MAX_PINNED_CHATS_ERROR));
778
779 return null;
780 }
781
782 return ['result' => true];
783 }
784
788 public function unpinAction(\Bitrix\Im\V2\Chat $chat, CurrentUser $user): ?array
789 {
790 Recent::pin($chat->getDialogId(), false, $user->getId());
791
792 return ['result' => true];
793 }
794
798 public function sortPinAction(\Bitrix\Im\V2\Chat $chat, int $newPosition, CurrentUser $user): ?array
799 {
800 if ($newPosition <= 0 || $newPosition > Recent::getPinLimit())
801 {
802 $this->addError(new ChatError(ChatError::INVALID_PIN_POSITION));
803
804 return null;
805 }
806
807 Recent::sortPin($chat, $newPosition, $user->getId());
808
809 return ['result' => true];
810 }
811
812 private function getValidatedType(?string $type): string
813 {
814 return match ($type)
815 {
816 'CHANNEL' => \Bitrix\Im\V2\Chat::IM_TYPE_CHANNEL,
817 'COPILOT' => \Bitrix\Im\V2\Chat::IM_TYPE_COPILOT,
818 'COLLAB' => \Bitrix\Im\V2\Chat::IM_TYPE_COLLAB,
819 'AI_ASSISTANT' => \Bitrix\Im\V2\Chat::IM_TYPE_AI_ASSISTANT,
820 default => \Bitrix\Im\V2\Chat::IM_TYPE_CHAT,
821 };
822 }
823
824 private function getValidatedEntityType(?string $entityType): ?string
825 {
826 $convertedEntityType = (string)(new Converter(Converter::TO_UPPER))->process($entityType);
827 $extendedType = ExtendedType::tryFrom($convertedEntityType);
828
829 return $extendedType?->isInternal() ? null : $convertedEntityType;
830 }
831 //endregion
832 //endregion
833}
$type
Определения options.php:106
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
const AVAILABLE_PARAMS
Определения conference.php:44
static getChatId($dialogId, $userId=null)
Определения dialog.php:93
static sortPin(\Bitrix\Im\V2\Chat $chat, int $newPosition, int $userId)
Определения recent.php:1456
static unread($dialogId, $unread, $userId=null, ?int $markedId=null, ?string $itemTypes=null)
Определения recent.php:1674
static getPinLimit()
Определения recent.php:1554
static isLimitError()
Определения recent.php:2223
static pin($dialogId, $pin, $userId=null)
Определения recent.php:1258
const MAX_PINNED_CHATS_ERROR
Определения ChatError.php:26
const INVALID_PIN_POSITION
Определения ChatError.php:25
const NOT_FOUND
Определения ChatError.php:20
const USER_ID_EMPTY_ERROR
Определения ChatError.php:27
static getInstance()
Определения ChatFactory.php:37
deleteManagers(array $userIds, bool $sendPush=true)
Определения GroupChat.php:278
addManagers(array $userIds, bool $sendPush=true)
Определения GroupChat.php:273
static create(array $fields)
Определения UpdateFields.php:31
toRestFormat(RestConvertible ... $entities)
Определения BaseController.php:108
convertCharToBool(string $char, bool $default=false)
Определения BaseController.php:220
load(\Bitrix\Im\V2\Chat $chat, int $messageLimit, int $pinLimit, bool $ignoreMark=false, ?Message $targetMessage=null)
Определения BaseController.php:113
addManagersAction(GroupChat $chat, array $userIds)
Определения Chat.php:675
addUsersAction(\Bitrix\Im\V2\Chat $chat, array $userIds, ?string $hideHistory=null)
Определения Chat.php:465
loadInContextAction(Message $message, int $messageLimit=Chat\Message::DEFAULT_LIMIT, int $pinLimit=Pin::DEFAULT_LIMIT)
Определения Chat.php:274
setManageUsersAddAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
Определения Chat.php:695
setColorAction(\Bitrix\Im\V2\Chat $chat, string $color)
Определения Chat.php:548
deleteManagersAction(GroupChat $chat, array $userIds)
Определения Chat.php:685
addAction(array $fields)
Определения Chat.php:383
unpinAction(\Bitrix\Im\V2\Chat $chat, CurrentUser $user)
Определения Chat.php:788
setManageUsersDeleteAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
Определения Chat.php:710
setTitleAction(\Bitrix\Im\V2\Chat $chat, string $title)
Определения Chat.php:518
setManageMessagesAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
Определения Chat.php:756
getPrimaryAutoWiredParameter()
Определения Chat.php:232
setManageSettingsAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
Определения Chat.php:740
extendPullWatchAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:486
readAllAction(CurrentUser $user)
Определения Chat.php:353
joinAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:476
deleteAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:447
unreadAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:363
setOwnerAction(\Bitrix\Im\V2\Chat $chat, int $ownerId)
Определения Chat.php:645
pinAction(\Bitrix\Im\V2\Chat $chat, CurrentUser $user)
Определения Chat.php:771
listSharedAction(array $filter, int $limit=self::DEFAULT_LIMIT, int $offset=0)
Определения Chat.php:301
loadAction(\Bitrix\Im\V2\Chat $chat, int $messageLimit=Chat\Message::DEFAULT_LIMIT, int $pinLimit=Pin::DEFAULT_LIMIT, string $ignoreMark='N')
Определения Chat.php:254
shallowLoadAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:246
deleteUserAction(\Bitrix\Im\V2\Chat $chat, int $userId)
Определения Chat.php:499
setManagersAction(\Bitrix\Im\V2\Chat $chat, array $userIds)
Определения Chat.php:660
sortPinAction(\Bitrix\Im\V2\Chat $chat, int $newPosition, CurrentUser $user)
Определения Chat.php:798
updateAvatarAction(\Bitrix\Im\V2\Chat $chat, string $avatar)
Определения Chat.php:570
configureActions()
Определения Chat.php:46
readAction(\Bitrix\Im\V2\Chat $chat, string $onlyRecent='N')
Определения Chat.php:343
getAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:293
setAvatarAction(\Bitrix\Im\V2\Chat $chat, string $avatarBase64)
Определения Chat.php:602
setAvatarIdAction(\Bitrix\Im\V2\Chat $chat, int $avatarId)
Определения Chat.php:587
setDescriptionAction(\Bitrix\Im\V2\Chat $chat, string $description)
Определения Chat.php:533
startRecordVoiceAction(\Bitrix\Im\V2\Chat $chat)
Определения Chat.php:373
getDialogIdAction(string $externalId)
Определения Chat.php:326
setManageUIAction(\Bitrix\Im\V2\Chat $chat, string $rightsLevel)
Определения Chat.php:725
updateAction(GroupChat $chat, array $fields)
Определения Chat.php:425
static disappearChat(Chat $chat, int $delay)
Определения DisappearService.php:101
static disappearCollab(Chat\CollabChat $chat, int $delay)
Определения DisappearService.php:153
$hours
Определения cron_html_pages.php:15
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
if(Loader::includeModule( 'bitrix24')) elseif(Loader::includeModule('intranet') &&CIntranetUtils::getPortalZone() !=='ru') $description
Определения .description.php:24
$filter
Определения iblock_catalog_list.php:54
Определения Uuid.php:3
Определения ActionUuid.php:3
$user
Определения mysql_to_pgsql.php:33
getErrors()
Определения errorableimplementation.php:34
$message
Определения payment.php:8
$title
Определения pdf.php:123
$fields
Определения yandex_run.php:501