Ejemplo n.º 1
0
 public static function closeChat($params)
 {
     if (isset($params['no_ui_update'])) {
         $permissionsArray = erLhcoreClassRole::accessArrayByUserID($params['user']->id);
         if ($params['chat']->user_id == $params['user']->id || erLhcoreClassRole::canUseByModuleAndFunction($permissionsArray, 'lhchat', 'allowcloseremote')) {
             erLhcoreClassChatHelper::closeChat($params);
             return array('processed' => true, 'process_status' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/chatcommand', 'Chat was closed!'));
         } else {
             return array('processed' => true, 'process_status' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/chatcommand', 'You do not have permission to close a chat!'));
         }
     } else {
         // Schedule interface update
         $params['chat']->operation_admin .= "lhinst.closeActiveChatDialog('{$params['chat']->id}',\$('#tabs'),true);";
         // 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 was closed!'));
     }
 }
Ejemplo n.º 2
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;