Ejemplo n.º 1
0
 public function postReplyMessage(OW_Event $event)
 {
     $params = $event->getParams();
     if (empty($params['mode']) && empty($params['conversationId'])) {
         $data = array('error' => true, 'message' => 'Undefined conversation');
         $event->setData($data);
         return $data;
     }
     $checkResult = $this->service->checkUser($params['userId'], $params['opponentId']);
     if ($checkResult['isSuspended']) {
         $data = array('error' => true, 'message' => $checkResult['suspendReasonMessage'], 'suspendReason' => $checkResult['suspendReason']);
         $event->setData($data);
         return $data;
     }
     $conversationId = $params['conversationId'];
     $actionName = 'reply_to_message';
     $isAuthorized = OW::getUser()->isAuthorized('mailbox', $actionName);
     if (!$isAuthorized) {
         $status = BOL_AuthorizationService::getInstance()->getActionStatus('mailbox', $actionName);
         if ($status['status'] == BOL_AuthorizationService::STATUS_PROMOTED) {
             $data = array('error' => true, 'message' => strip_tags($status['msg']), "promoted" => true);
         } else {
             if ($status['status'] != BOL_AuthorizationService::STATUS_AVAILABLE) {
                 $language = OW::getLanguage();
                 $data = array('error' => true, 'message' => $language->text('mailbox', $actionName . '_permission_denied'), "promoted" => false);
             }
         }
         $event->setData($data);
         return $data;
     }
     if (!empty($params['mode']) && $params['mode'] == 'mail') {
         $conversation = $this->service->getConversation($conversationId);
         $message = $this->service->createMessage($conversation, $params['userId'], $params['text']);
         if (isset($params['isSystem']) && $params['isSystem']) {
             $this->service->markMessageAsSystem($message->id);
         }
         $this->service->markUnread(array($conversationId), $params['opponentId']);
         $messageData = $this->service->getMessageDataForApi($message);
         $data = array('error' => false, 'message' => $messageData);
         $event->setData($data);
         BOL_AuthorizationService::getInstance()->trackAction('mailbox', $actionName);
         return $data;
     }
 }