From: Marcel Werk Date: Sun, 21 Apr 2013 16:58:53 +0000 (+0200) Subject: Fixed multiple issues X-Git-Tag: 2.0.0_Beta_1~35 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=ad478273ea641616a4091cbaaca1a48e91651759;p=GitHub%2FWoltLab%2Fcom.woltlab.wcf.conversation.git Fixed multiple issues --- diff --git a/files/lib/data/conversation/ConversationEditor.class.php b/files/lib/data/conversation/ConversationEditor.class.php index 2ab2c05..4f96ad1 100644 --- a/files/lib/data/conversation/ConversationEditor.class.php +++ b/files/lib/data/conversation/ConversationEditor.class.php @@ -97,12 +97,14 @@ class ConversationEditor extends DatabaseObjectEditor { WHERE conversation_to_user.conversationID = conversation.conversationID AND conversation_to_user.hideConversation <> ? AND conversation_to_user.participantID <> ? + AND conversation_to_user.isInvisible = ? ) WHERE conversation.conversationID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array( Conversation::STATE_LEFT, $this->userID, + 0, $this->conversationID )); } diff --git a/files/lib/data/conversation/message/ConversationMessageAction.class.php b/files/lib/data/conversation/message/ConversationMessageAction.class.php index 9597bd9..69dd90b 100644 --- a/files/lib/data/conversation/message/ConversationMessageAction.class.php +++ b/files/lib/data/conversation/message/ConversationMessageAction.class.php @@ -94,13 +94,19 @@ class ConversationMessageAction extends AbstractDatabaseObjectAction implements } } - // make invisible participant visible - $sql = "UPDATE wcf".WCF_N."_conversation_to_user - SET isInvisible = 0 - WHERE participantID = ? - AND conversationID = ?"; - $statement = WCF::getDB()->prepareStatement($sql); - $statement->execute(array($message->userID, $conversation->conversationID)); + $userConversation = Conversation::getUserConversation($conversation->conversationID, $message->userID); + if ($userConversation !== null && $userConversation->isInvisible) { + // make invisible participant visible + $sql = "UPDATE wcf".WCF_N."_conversation_to_user + SET isInvisible = 0 + WHERE participantID = ? + AND conversationID = ?"; + $statement = WCF::getDB()->prepareStatement($sql); + $statement->execute(array($message->userID, $conversation->conversationID)); + + $conversationEditor->updateParticipantSummary(); + $conversationEditor->updateParticipantCount(); + } // reset visibility if it was hidden but not left $sql = "UPDATE wcf".WCF_N."_conversation_to_user