/** * @see \wcf\system\moderation\queue\report\IModerationQueueReportHandler::canReport() */ public function canReport($objectID) { if (!$this->isValid($objectID)) { return false; } if (!Conversation::isParticipant(array($this->getMessage($objectID)->conversationID))) { return false; } return true; }
/** * Validates parameters to remove a participant from a conversation. */ public function validateRemoveParticipant() { $this->readInteger('userID'); // validate conversation $this->conversation = $this->getSingleObject(); if (!$this->conversation->conversationID) { throw new UserInputException('objectIDs'); } // check ownership if ($this->conversation->userID != WCF::getUser()->userID) { throw new PermissionDeniedException(); } // validate participants if ($this->parameters['userID'] == WCF::getUser()->userID || !Conversation::isParticipant(array($this->conversation->conversationID)) || !Conversation::isParticipant(array($this->conversation->conversationID), $this->parameters['userID'])) { throw new PermissionDeniedException(); } }
/** * judge can delete_conversation * * @param Object $oMbqEtPc * @param Integer $mode * @return Boolean */ public function canAclDeleteConversation($oMbqEtPc, $mode) { if (MbqMain::hasLogin() && ($mode == 1 || $mode == 2)) { //ref wcf\data\conversation\ConversationAction::validateHideConversation() // validate participation if (Conversation::isParticipant(array($oMbqEtPc->convId->oriValue))) { return true; } } return false; }
/** * init one private conversation by condition * * @param Mixed $var * @param Array $mbqOpt * $mbqOpt['case'] = 'oViewableConversation' means init private conversation by oViewableConversation * @return Mixed */ public function initOMbqEtPc($var, $mbqOpt) { if ($mbqOpt['case'] == 'oViewableConversation') { $oConversation = $var->getDecoratedObject(); $oMbqEtPc = MbqMain::$oClk->newObj('MbqEtPc'); $oMbqEtPc->convId->setOriValue($oConversation->conversationID); $oMbqEtPc->convTitle->setOriValue($oConversation->subject); $oMbqEtPc->totalMessageNum->setOriValue($oConversation->replies + 1); $oMbqEtPc->participantCount->setOriValue($oConversation->participantCount + 1); $oMbqEtPc->startUserId->setOriValue($oConversation->userID); $oMbqEtPc->startConvTime->setOriValue($oConversation->time); $oMbqEtPc->lastUserId->setOriValue($oConversation->lastPosterID); $oMbqEtPc->lastConvTime->setOriValue($oConversation->lastPostTime); $oMbqEtPc->newPost->setOriValue($oConversation->isNew() ? MbqBaseFdt::getFdt('MbqFdtPc.MbqEtPc.newPost.range.yes') : MbqBaseFdt::getFdt('MbqFdtPc.MbqEtPc.newPost.range.no')); //ref wcf\data\conversation\ConversationAction::validateGetAddParticipantsForm() if (!Conversation::isParticipant(array($oConversation->conversationID)) || !$oConversation->canAddParticipants()) { $oMbqEtPc->canInvite->setOriValue(MbqBaseFdt::getFdt('MbqFdtPc.MbqEtPc.canInvite.range.no')); } else { $oMbqEtPc->canInvite->setOriValue(MbqBaseFdt::getFdt('MbqFdtPc.MbqEtPc.canInvite.range.yes')); } $oMbqEtPc->deleteMode->setOriValue(MbqBaseFdt::getFdt('MbqFdtPc.MbqEtPc.deleteMode.range.soft-and-hard-delete')); $oMbqEtPc->firstMsgId->setOriValue($oConversation->firstMessageID); $oMbqEtPc->mbqBind['oViewableConversation'] = $var; return $oMbqEtPc; } MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.' . MBQ_ERR_INFO_UNKNOWN_CASE); }
/** * @see \wcf\data\IMessageQuoteAction::validateSaveQuote() */ public function validateSaveQuote() { $this->readString('message'); $this->readBoolean('renderQuote', true); $this->message = $this->getSingleObject(); if (!Conversation::isParticipant(array($this->message->conversationID))) { throw new PermissionDeniedException(); } }
/** * Validates parameters for label assignment form. */ public function validateGetLabelForm() { if (!WCF::getSession()->getPermission('user.conversation.canUseConversation')) { throw new PermissionDeniedException(); } // validate conversation id $this->parameters['conversationIDs'] = isset($this->parameters['conversationIDs']) ? ArrayUtil::toIntegerArray($this->parameters['conversationIDs']) : array(); if (empty($this->parameters['conversationIDs'])) { throw new UserInputException('conversationID'); } if (!Conversation::isParticipant($this->parameters['conversationIDs'])) { throw new PermissionDeniedException(); } // validate available labels $this->labelList = ConversationLabel::getLabelsByUser(); if (!count($this->labelList)) { throw new IllegalLinkException(); } }
/** * judge can delete_conversation * * @param Object $oMbqEtPc * @param Integer $mode * @return Boolean */ public function canAclDeleteConversation($oMbqEtPc = null, $mode = null) { if (!WCF::getSession()->getPermission('user.conversation.canUseConversation')) { return false; } if (MbqMain::hasLogin() && ($mode == 1 || $mode == 2)) { //ref wcf\data\conversation\ConversationAction::validateHideConversation() // validate participation if (Conversation::isParticipant(array($oMbqEtPc->convId->oriValue))) { return true; } } return false; }