Пример #1
0
 } 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']));
Пример #2
0
 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"]));
                     }
                 }
             }
         }
     }
 }