Пример #1
0
<?php

$tpl = erLhcoreClassTemplate::getInstance('lhchat/changestatus.tpl.php');
$chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
$tpl->set('chat', $chat);
if (erLhcoreClassChat::hasAccessToRead($chat)) {
    $currentUser = erLhcoreClassUser::instance();
    if (isset($_POST['ChatStatus']) && is_numeric($_POST['ChatStatus'])) {
        $userData = $currentUser->getUserData();
        $changeStatus = (int) $_POST['ChatStatus'];
        if (in_array($changeStatus, array(erLhcoreClassModelChat::STATUS_ACTIVE_CHAT, erLhcoreClassModelChat::STATUS_PENDING_CHAT, erLhcoreClassModelChat::STATUS_CLOSED_CHAT, erLhcoreClassModelChat::STATUS_CHATBOX_CHAT, erLhcoreClassModelChat::STATUS_OPERATORS_CHAT))) {
            erLhcoreClassChatHelper::changeStatus(array('user' => $userData, 'chat' => $chat, 'status' => $changeStatus, 'allow_close_remote' => $currentUser->hasAccessTo('lhchat', 'allowcloseremote')));
            echo json_encode(array('error' => 'false'));
            exit;
        } else {
            echo json_encode(array('error' => 'true', 'result' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/adminchat', 'Invalid chat status')));
            exit;
        }
    }
}
print $tpl->fetch();
exit;
Пример #2
0
 public static function activeChat($params)
 {
     erLhcoreClassChatHelper::changeStatus(array('user' => $params['user'], 'chat' => &$params['chat'], 'status' => erLhcoreClassModelChat::STATUS_ACTIVE_CHAT, 'allow_close_remote' => erLhcoreClassRole::canUseByModuleAndFunction(erLhcoreClassRole::accessArrayByUserID($params['user']->id), 'lhchat', 'allowcloseremote')));
     if (!isset($params['no_ui_update'])) {
         $params['chat']->operation_admin .= "lhinst.updateVoteStatus(" . $params['chat']->id . ");";
         // Update only
         $db = ezcDbInstance::get();
         $stmt = $db->prepare('UPDATE lh_chat SET operation_admin = :operation_admin WHERE id = :id');
         $stmt->bindValue(':id', $params['chat']->id, PDO::PARAM_INT);
         $stmt->bindValue(':operation_admin', $params['chat']->operation_admin, PDO::PARAM_STR);
         $stmt->execute();
     }
     return array('processed' => true, 'process_status' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/chatcommand', 'Chat status was changed to active!'));
 }
Пример #3
0
<?php

$chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
if (erLhcoreClassChat::hasAccessToRead($chat)) {
    $currentUser = erLhcoreClassUser::instance();
    if (!isset($_SERVER['HTTP_X_CSRFTOKEN']) || !$currentUser->validateCSFRToken($_SERVER['HTTP_X_CSRFTOKEN'])) {
        echo json_encode(array('error' => 'true', 'result' => 'Invalid CSRF Token'));
        exit;
    }
    $userData = $currentUser->getUserData();
    erLhcoreClassChatHelper::redirectToContactForm(array('user' => $userData, 'chat' => $chat));
}
echo json_encode(array('error' => 'false'));
exit;
Пример #4
0
<?php

// Set new chat owner
$currentUser = erLhcoreClassUser::instance();
$currentUser->getUserID();
$chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
// Chat can be closed only by owner
if ($chat->user_id == $currentUser->getUserID() || $currentUser->hasAccessTo('lhchat', 'allowcloseremote')) {
    if (!$currentUser->validateCSFRToken($Params['user_parameters_unordered']['csfr'])) {
        die('Invalid CSRF Token');
        exit;
    }
    $userData = $currentUser->getUserData(true);
    erLhcoreClassChatHelper::closeChat(array('user' => $userData, 'chat' => $chat));
}
CSCacheAPC::getMem()->removeFromArray('lhc_open_chats', (int) $Params['user_parameters']['chat_id']);
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;