/**
  * Returns the conversation label management.
  * 
  * @return	array
  */
 public function getLabelManagement()
 {
     WCF::getTPL()->assign(array('cssClassNames' => ConversationLabel::getLabelCssClassNames(), 'labelList' => ConversationLabel::getLabelsByUser()));
     return array('actionName' => 'getLabelManagement', 'template' => WCF::getTPL()->fetch('conversationLabelManagement'), 'maxLabels' => WCF::getSession()->getPermission('user.conversation.maxLabels'), 'labelCount' => count(ConversationLabel::getLabelsByUser()));
 }
 /**
  * Validates parameters to add a new label.
  */
 public function validateAdd()
 {
     if (!WCF::getSession()->getPermission('user.conversation.canUseConversation')) {
         throw new PermissionDeniedException();
     }
     // check if user has already created maximum number of labels
     if (count(ConversationLabel::getLabelsByUser()) >= WCF::getSession()->getPermission('user.conversation.maxLabels')) {
         throw new PermissionDeniedException();
     }
     $this->readString('labelName', false, 'data');
     $this->readString('cssClassName', false, 'data');
     if (!in_array($this->parameters['data']['cssClassName'], ConversationLabel::getLabelCssClassNames())) {
         throw new UserInputException('cssClassName');
     }
     // 'none' is a pseudo value
     if ($this->parameters['data']['cssClassName'] == 'none') {
         $this->parameters['data']['cssClassName'] = '';
     }
 }