Пример #1
0
 /**
  *
  * @param UserProfileModel $user
  * @param ProjectSettingsModel $project
  * @param string $subject
  * @param string $smsTemplate
  * @param string $emailTemplate
  * @param string $htmlEmailTemplate
  * @param DeliveryInterface $delivery
  */
 public static function communicateToUser($user, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate = '', DeliveryInterface $delivery = null)
 {
     // Prepare the email message if required
     if ($user->communicate_via == UserModel::COMMUNICATE_VIA_EMAIL || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) {
         $from = array($project->emailSettings->fromAddress => $project->emailSettings->fromName);
         $to = array($user->email => $user->name);
         $vars = array('user' => $user, 'project' => $project);
         $template = CommunicateHelper::templateFromString($emailTemplate);
         $content = $template->render($vars);
         $htmlContent = '';
         if ($htmlEmailTemplate) {
             $template = CommunicateHelper::templateFromString($emailTemplate);
             $htmlContent = $template->render($vars);
         }
         CommunicateHelper::deliverEmail($from, $to, $subject, $content, $htmlContent, $delivery);
     }
     // Prepare the sms message if required
     if ($project->smsSettings->hasValidCredentials()) {
         if ($user->communicate_via == UserModel::COMMUNICATE_VIA_SMS || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) {
             $databaseName = $project->databaseName();
             $sms = new SmsModel($databaseName);
             $sms->providerInfo = $project->smsSettings->accountId . '|' . $project->smsSettings->authToken;
             $sms->to = $user->mobile_phone;
             $sms->from = $project->smsSettings->fromNumber;
             $vars = array('user' => $user, 'project' => $project);
             $template = CommunicateHelper::templateFromString($smsTemplate);
             $sms->message = $template->render($vars);
             CommunicateHelper::deliverSMS($sms, $delivery);
         }
     }
 }
 public function testReadSettings_CanReadSettings()
 {
     $this->environ->clean();
     // setup project and users
     $project = $this->environ->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE);
     $projectId = $project->id->asString();
     $projectSettings = new ProjectSettingsModel($projectId);
     $projectSettings->smsSettings->accountId = "12345";
     $projectSettings->write();
     $user1Id = $this->environ->createUser("user1name", "User1 Name", "*****@*****.**");
     $result = ProjectCommands::readProjectSettings($projectId, $user1Id);
     $this->assertEqual($result['sms']['accountId'], "12345");
 }
Пример #3
0
 public static function updateProjectSettings($projectId, $smsSettingsArray, $emailSettingsArray)
 {
     $smsSettings = new \Api\Model\Sms\SmsSettings();
     $emailSettings = new \Api\Model\EmailSettings();
     JsonDecoder::decode($smsSettings, $smsSettingsArray);
     JsonDecoder::decode($emailSettings, $emailSettingsArray);
     $projectSettings = new ProjectSettingsModel($projectId);
     $projectSettings->smsSettings = $smsSettings;
     $projectSettings->emailSettings = $emailSettings;
     $result = $projectSettings->write();
     return $result;
 }