Ejemplo n.º 1
0
 public function testSendMessageObject()
 {
     $strText = generateSystemid() . " autotest";
     $strTitle = generateSystemid() . " title";
     $strIdentifier = generateSystemid() . " identifier";
     $strSender = generateSystemid();
     $strReference = generateSystemid();
     $objMessage = new class_module_messaging_message();
     $objMessage->setStrTitle($strTitle);
     $objMessage->setStrBody($strText);
     $objMessage->setStrInternalIdentifier($strIdentifier);
     $objMessage->setObjMessageProvider(new class_messageprovider_exceptions());
     $objMessage->setStrSenderId($strSender);
     $objMessage->setStrMessageRefId($strReference);
     $objMessageHandler = new class_module_messaging_messagehandler();
     $objMessageHandler->sendMessageObject($objMessage, new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_")));
     $objGroup = new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_"));
     $arrUsers = $objGroup->getObjSourceGroup()->getUserIdsForGroup();
     foreach ($arrUsers as $objOneUser) {
         $bitFound = false;
         $arrMessages = class_module_messaging_message::getObjectList($objOneUser);
         foreach ($arrMessages as $objOneMessage) {
             if ($objOneMessage->getStrBody() == $strText && $objOneMessage->getStrMessageProvider() == "class_messageprovider_exceptions") {
                 $bitFound = true;
                 $this->assertEquals($objOneMessage->getStrTitle(), $strTitle);
                 $this->assertEquals($objOneMessage->getStrInternalIdentifier(), $strIdentifier);
                 $this->assertEquals($objOneMessage->getStrSenderId(), $strSender);
                 $this->assertEquals($objOneMessage->getStrMessageRefId(), $strReference);
                 $this->assertTrue($objOneMessage->deleteObjectFromDatabase());
             }
         }
         $this->assertTrue($bitFound);
     }
     $this->flushDBCache();
 }
 /**
  * Sends a message.
  * If the list of recipients contains a group, the message is duplicated for each member.
  *
  *
  * @param class_module_messaging_message $objMessage
  * @param class_module_user_group[]|class_module_user_user[]|class_module_user_group|class_module_user_user $arrRecipients
  *
  * @return bool
  */
 public function sendMessageObject(class_module_messaging_message $objMessage, $arrRecipients)
 {
     $objValidator = new class_email_validator();
     if ($arrRecipients instanceof class_module_user_group || $arrRecipients instanceof class_module_user_user) {
         $arrRecipients = array($arrRecipients);
     }
     $arrRecipients = $this->getRecipientsFromArray($arrRecipients);
     foreach ($arrRecipients as $objOneUser) {
         //skip inactive users
         if ($objOneUser->getIntActive() != 1) {
             continue;
         }
         $objConfig = class_module_messaging_config::getConfigForUserAndProvider($objOneUser->getSystemid(), $objMessage->getObjMessageProvider());
         if ($objConfig->getBitEnabled()) {
             //clone the message
             $objCurrentMessage = new class_module_messaging_message();
             $objCurrentMessage->setStrTitle($objMessage->getStrTitle());
             $objCurrentMessage->setStrBody($objMessage->getStrBody());
             $objCurrentMessage->setStrUser($objOneUser->getSystemid());
             $objCurrentMessage->setStrInternalIdentifier($objMessage->getStrInternalIdentifier());
             $objCurrentMessage->setStrMessageProvider($objMessage->getStrMessageProvider());
             $objCurrentMessage->setStrMessageRefId($objMessage->getStrMessageRefId());
             $objCurrentMessage->setStrSenderId(validateSystemid($objMessage->getStrSenderId()) ? $objMessage->getStrSenderId() : class_carrier::getInstance()->getObjSession()->getUserID());
             $objCurrentMessage->updateObjectToDb();
             if ($objConfig->getBitBymail() && $objValidator->validate($objOneUser->getStrEmail())) {
                 $this->sendMessageByMail($objCurrentMessage, $objOneUser);
             }
         }
     }
 }
 /**
  * @param interface_packagemanager_packagemanager $objPackage
  * @param string $strLatestVersion
  * @return void
  */
 private function sendUpdateAvailableMessage(interface_packagemanager_packagemanager $objPackage, $strLatestVersion)
 {
     //check, if not already sent
     $strIdentifier = sha1(__CLASS__ . $objPackage->getObjMetadata()->getStrTitle() . $strLatestVersion);
     if (count(class_module_messaging_message::getMessagesByIdentifier($strIdentifier)) == 0) {
         $strMailtext = class_carrier::getInstance()->getObjLang()->getLang("update_notification_package", "packagemanager") . " " . $objPackage->getObjMetadata()->getStrTitle() . "\n";
         $strMailtext .= class_carrier::getInstance()->getObjLang()->getLang("update_notification_verinst", "packagemanager") . " " . $objPackage->getObjMetadata()->getStrVersion() . "\n";
         $strMailtext .= class_carrier::getInstance()->getObjLang()->getLang("update_notification_verav", "packagemanager") . " " . $strLatestVersion . "\n";
         $objMessageHandler = new class_module_messaging_messagehandler();
         $objMessage = new class_module_messaging_message();
         $objMessage->setStrTitle(class_carrier::getInstance()->getObjLang()->getLang("update_notification_intro", "packagemanager"));
         $objMessage->setStrBody($strMailtext);
         $objMessage->setObjMessageProvider(new class_messageprovider_packageupdate());
         $objMessage->setStrInternalIdentifier($strIdentifier);
         $objMessageHandler->sendMessageObject($objMessage, new class_module_user_group(class_module_system_setting::getConfigValue("_admins_group_id_")));
     }
 }