/**
  * @see	\wcf\system\moderation\queue\IModerationQueueHandler::isAffectedUser()
  */
 public function isAffectedUser(ModerationQueue $queue, $userID)
 {
     $user = new UserProfile(new User($userID));
     return $user->getPermission($this->requiredPermission);
 }
 /**
  * Validates the given participant.
  * 
  * @param	\wcf\data\user\UserProfile	$user
  * @param	string				$field
  */
 public static function validateParticipant(UserProfile $user, $field = 'participants')
 {
     // check participant's settings and permissions
     if (!$user->getPermission('user.conversation.canUseConversation')) {
         throw new UserInputException($field, 'canNotUseConversation');
     }
     if (!WCF::getSession()->getPermission('user.profile.cannotBeIgnored')) {
         // check if user wants to receive any conversations
         if ($user->canSendConversation == 2) {
             throw new UserInputException($field, 'doesNotAcceptConversation');
         }
         // check if user only wants to receive conversations by
         // users they are following and if the active user is followed
         // by the relevant user
         if ($user->canSendConversation == 1 && !$user->isFollowing(WCF::getUser()->userID)) {
             throw new UserInputException($field, 'doesNotAcceptConversation');
         }
         // active user is ignored by participant
         if ($user->isIgnoredUser(WCF::getUser()->userID)) {
             throw new UserInputException($field, 'ignoresYou');
         }
         // check participant's mailbox quota
         if (ConversationHandler::getInstance()->getConversationCount($user->userID) >= $user->getPermission('user.conversation.maxConversations')) {
             throw new UserInputException($field, 'mailboxIsFull');
         }
     }
 }