} else { if ($_POST['IM_CHAT_EXTEND'] == 'Y') { $_POST['USERS'] = CUtil::JsObjectToPhp($_POST['USERS']); $errorMessage = ""; $CIMChat = new CIMChat(); $result = $CIMChat->AddUser($_POST['CHAT_ID'], $_POST['USERS']); if (!$result) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage = $e->GetString(); } } echo CUtil::PhpToJsObject(array('ERROR' => $errorMessage)); } else { if ($_POST['IM_CHAT_LEAVE'] == 'Y') { $CIMChat = new CIMChat(); $result = $CIMChat->DeleteUser($_POST['CHAT_ID'], intval($_POST['USER_ID']) > 0 ? intval($_POST['USER_ID']) : $USER->GetID()); echo CUtil::PhpToJsObject(array('CHAT_ID' => intval($_POST['CHAT_ID']), 'USER_ID' => intval($_POST['USER_ID']), 'ERROR' => $result ? '' : 'AUTHORIZE_ERROR')); } else { if ($_POST['IM_CHAT_RENAME'] == 'Y') { CUtil::decodeURIComponent($_POST); $CIMChat = new CIMChat(); $CIMChat->Rename($_POST['CHAT_ID'], $_POST['CHAT_TITLE']); echo CUtil::PhpToJsObject(array('CHAT_ID' => intval($_POST['CHAT_ID']), 'CHAT_TITLE' => $_POST['CHAT_TITLE'], 'ERROR' => '')); } else { if ($_POST['IM_CALL'] == 'Y') { $errorMessage = ""; if ($_POST['COMMAND'] == 'invite') { CIMMessenger::CallCommand($_POST['RECIPIENT_ID'], $_POST['COMMAND'], array('video' => $_POST['VIDEO'] == 'Y')); } else { if ($_POST['COMMAND'] == 'signaling') { CIMMessenger::CallCommand($_POST['RECIPIENT_ID'], $_POST['COMMAND'], array('peer' => $_POST['PEER']));
public static function OnAfterUserUpdate($arParams) { $commonChatId = CIMChat::GetGeneralChatId(); if ($commonChatId > 0 && (isset($arParams['ACTIVE']) || isset($arParams['UF_DEPARTMENT']))) { if ($arParams['ACTIVE'] == 'N') { CIMMessage::SetReadMessageAll($arParams['ID']); if ($commonChatId && CIMChat::GetRelationById($commonChatId, $arParams["ID"])) { $CIMChat = new CIMChat($arParams["ID"]); $CIMChat->DeleteUser($commonChatId, $arParams["ID"]); } } else { $commonChatId = CIMChat::GetGeneralChatId(); if ($commonChatId) { $userInChat = CIMChat::GetRelationById($commonChatId, $arParams["ID"]); $userCanJoin = CIMChat::CanJoinGeneralChatId($arParams["ID"]); if ($userInChat && !$userCanJoin) { $CIMChat = new CIMChat($arParams["ID"]); $CIMChat->DeleteUser($commonChatId, $arParams["ID"]); } else { if (!$userInChat && $userCanJoin) { $CIMChat = new CIMChat(0); $CIMChat->AddUser($commonChatId, array($arParams["ID"])); } } } } } }