/**
  * @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();
     }
 }
示例#3
0
 /**
  * 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;
 }
示例#4
0
 /**
  * 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();
     }
 }
示例#7
0
 /**
  * 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;
 }