protected function preFilter($filterChain)
 {
     $sendGridPluginEnabled = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid');
     try {
         if ($sendGridPluginEnabled) {
             SendGridEmailAccount::getByUserAndName(Yii::app()->user->userModel, null);
         } else {
             EmailAccount::getByUserAndName(Yii::app()->user->userModel);
         }
     } catch (NotFoundException $e) {
         $redirectUrl = Yii::app()->request->getParam('redirectUrl');
         if ($sendGridPluginEnabled) {
             try {
                 EmailAccount::getByUserAndName(Yii::app()->user->userModel);
             } catch (NotFoundException $ex) {
                 $messageView = new NoUserEmailConfigurationYetView($redirectUrl);
                 $view = new ModalView($this->controller, $messageView);
                 Yii::app()->getClientScript()->setToAjaxMode();
                 echo $view->render();
                 return false;
             }
         } else {
             $messageView = new NoUserEmailConfigurationYetView($redirectUrl);
             $view = new ModalView($this->controller, $messageView);
             Yii::app()->getClientScript()->setToAjaxMode();
             echo $view->render();
             return false;
         }
     }
     return true;
 }
 /**
  * @param string $content
  * @param bool $isHtmlContent
  */
 public static function setContentByType($content, $isHtmlContent)
 {
     assert('is_string($content)');
     assert('is_bool($isHtmlContent)');
     $key = static::resolveConfigKeyByContentType((bool) $isHtmlContent);
     ZurmoConfigurationUtil::setByModuleName(static::CONFIG_MODULE_NAME, $key, $content);
 }
 public function testMakeFormAndSetConfigurationFromForm()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->timeZoneHelper->setTimeZone('America/New_York');
     Yii::app()->pagination->setGlobalValueByType('listPageSize', 50);
     Yii::app()->pagination->setGlobalValueByType('subListPageSize', 51);
     Yii::app()->pagination->setGlobalValueByType('modalListPageSize', 52);
     Yii::app()->pagination->setGlobalValueByType('dashboardListPageSize', 53);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', 'demoCompany');
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/New_York', $form->timeZone);
     $this->assertEquals(50, $form->listPageSize);
     $this->assertEquals(51, $form->subListPageSize);
     $this->assertEquals(52, $form->modalListPageSize);
     $this->assertEquals(53, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany', $form->applicationName);
     $form->timeZone = 'America/Chicago';
     $form->listPageSize = 60;
     $form->subListPageSize = 61;
     $form->modalListPageSize = 62;
     $form->dashboardListPageSize = 63;
     $form->applicationName = 'demoCompany2';
     ZurmoConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/Chicago', $form->timeZone);
     $this->assertEquals(60, $form->listPageSize);
     $this->assertEquals(61, $form->subListPageSize);
     $this->assertEquals(62, $form->modalListPageSize);
     $this->assertEquals(63, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany2', $form->applicationName);
 }
 public function testListDefault()
 {
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     ZurmoConfigurationUtil::setByUserAndModuleName($super, 'ZurmoModule', 'defaultPermissionSetting', null);
     ZurmoConfigurationUtil::setByUserAndModuleName($super, 'ZurmoModule', 'defaultPermissionGroupSetting', null);
     $this->assertNull(UserConfigurationFormAdapter::resolveAndGetValue($super, 'defaultPermissionGroupSetting', false));
     $this->assertEquals(UserConfigurationFormAdapter::resolveAndGetDefaultPermissionSetting($super), UserConfigurationForm::DEFAULT_PERMISSIONS_SETTING_EVERYONE);
     $authenticationData = $this->login();
     $headers = array('Accept: application/json', 'ZURMO_SESSION_ID: ' . $authenticationData['sessionId'], 'ZURMO_TOKEN: ' . $authenticationData['token'], 'ZURMO_API_REQUEST_TYPE: REST');
     $response = $this->listDefaultPermissionsForCurrentUser($headers);
     $response = json_decode($response, true);
     $this->assertEquals(ApiResponse::STATUS_SUCCESS, $response['status']);
     $this->assertArrayHasKey('data', $response);
     $this->assertCount(2, $response['data']);
     $this->assertArrayHasKey('owner', $response['data']);
     $this->assertCount(1, $response['data']['owner']);
     $this->assertArrayHasKey('id', $response['data']['owner']);
     $this->assertEquals($super->id, $response['data']['owner']['id']);
     $this->assertArrayHasKey('explicitReadWriteModelPermissions', $response['data']);
     $this->assertCount(2, $response['data']['explicitReadWriteModelPermissions']);
     $this->assertArrayHasKey('type', $response['data']['explicitReadWriteModelPermissions']);
     $this->assertEquals(1, $response['data']['explicitReadWriteModelPermissions']['type']);
     $this->assertArrayHasKey('nonEveryoneGroup', $response['data']['explicitReadWriteModelPermissions']);
     $this->assertEquals('', $response['data']['explicitReadWriteModelPermissions']['nonEveryoneGroup']);
 }
 protected static function setConfigForKey($key, $value)
 {
     if ($key == 'bounceImapPassword') {
         $value = ZurmoPasswordSecurityUtil::encrypt($value);
     }
     ZurmoConfigurationUtil::setByModuleName(static::CONFIG_MODULE_NAME, $key, $value);
 }
Example #6
0
 protected function renderContent()
 {
     $homeUrl = Yii::app()->createUrl('home/default');
     $content = '<div class="clearfix">';
     $content .= '<a href="#" id="nav-trigger" title="Toggle Navigation">&rsaquo;</a>';
     $content .= '<div id="corp-logo">';
     if ($logoFileModelId = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'logoFileModelId')) {
         $logoFileModel = FileModel::getById($logoFileModelId);
         $logoFileSrc = Yii::app()->getAssetManager()->getPublishedUrl(Yii::getPathOfAlias('application.runtime.uploads') . DIRECTORY_SEPARATOR . $logoFileModel->name);
     } else {
         $logoFileSrc = Yii::app()->themeManager->baseUrl . '/default/images/Zurmo_logo.png';
     }
     $logoHeight = ZurmoConfigurationFormAdapter::resolveLogoHeight();
     $logoWidth = ZurmoConfigurationFormAdapter::resolveLogoWidth();
     if (Yii::app()->userInterface->isMobile()) {
         $content .= '<a href="' . $homeUrl . '"><img src="' . $logoFileSrc . '" alt="Zurmo Logo" /></a>';
         //make sure width and height are NEVER defined
     } else {
         $content .= '<a href="' . $homeUrl . '"><img src="' . $logoFileSrc . '" alt="Zurmo Logo" height="' . $logoHeight . '" width="' . $logoWidth . '" /></a>';
     }
     if ($this->applicationName != null) {
         $content .= ZurmoHtml::tag('span', array(), $this->applicationName);
     }
     $content .= '</div>';
     if (!empty($this->userMenuItems) && !empty($this->settingsMenuItems)) {
         $content .= '<div id="user-toolbar" class="clearfix">';
         $content .= static::renderHeaderMenus($this->userMenuItems, $this->settingsMenuItems);
         $content .= '</div>';
     }
     $content .= '</div>';
     return $content;
 }
 /**
  * Gets the geocode api key from the cofig table.
  * @return string $apiKey or null - geocode Api Key.
  */
 public static function getGeoCodeApiKey()
 {
     if (null != ($apiKey = ZurmoConfigurationUtil::getByModuleName('MapsModule', 'googleMapApiKey'))) {
         return $apiKey;
     } else {
         return null;
     }
 }
 public function getTitle()
 {
     $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName');
     if ($applicationName != null) {
         $applicationName = ' - ' . $applicationName;
     }
     return Zurmo::t('MarketingListsModule', 'My Subscriptions') . $applicationName;
 }
 /**
  * @return int
  */
 public static function getMaxCount()
 {
     $maxCount = ZurmoConfigurationUtil::getByModuleName(static::CONFIG_MODULE_NAME, static::CONFIG_KEY);
     if ($maxCount == null) {
         $maxCount = static::$maxCount;
     }
     return (int) $maxCount;
 }
Example #10
0
 /**
  * Get the global page title value.
  * @return string - page title.
  */
 public function getTitle()
 {
     if (null != ($pageTitle = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'pageTitle'))) {
         return $pageTitle;
     } else {
         return Zurmo::t('ZurmoModule', 'ZurmoCRM');
     }
 }
 /**
  * @depends testResolveBaseUrl
  */
 public function testResolveApplicationName()
 {
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', 'Demo App');
     $resolvedApplicationName = SpecialMergeTagsAdapter::resolve('applicationName', null);
     $expectedApplicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName');
     $this->assertNotNull($resolvedApplicationName);
     $this->assertEquals($expectedApplicationName, $resolvedApplicationName);
 }
 protected function isSetCaptchaKeys()
 {
     $reCaptchaPrivateKey = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'reCaptchaPrivateKey');
     $reCaptchaPublicKey = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'reCaptchaPublicKey');
     if ($reCaptchaPrivateKey === null || empty($reCaptchaPrivateKey) || $reCaptchaPublicKey === null || empty($reCaptchaPublicKey)) {
         return false;
     }
     return true;
 }
Example #13
0
 /**
  * A test job. This test job will update the config table with a datetime stamp.
  * (non-PHPdoc)
  * @see BaseJob::run()
  */
 public function run()
 {
     ZurmoConfigurationUtil::setByModuleName('JobsManagerModule', 'test', $this->testValue);
     if ($this->causeFailure) {
         $this->errorMessage = 'The test job failed';
         return false;
     }
     return true;
 }
 public static function setUpBeforeClass()
 {
     parent::setUpBeforeClass();
     $super = SecurityTestHelper::createSuperAdmin();
     if (Yii::app()->params['testGoogleGeoCodeApiKey'] != null) {
         ZurmoConfigurationUtil::setByModuleName('MapsModule', 'googleMapApiKey', Yii::app()->params['testGoogleGeoCodeApiKey']);
     }
     Yii::app()->user->userModel = $super;
     AddressGeoCodeTestHelper::createAndRemoveAccountWithAddress($super);
 }
 public function __construct(CController $controller, SplashView $splashView)
 {
     $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName');
     $header = new HeaderLinksView(array(), array());
     $gridView = new GridView(3, 1);
     $gridView->setView($header, 0, 0);
     $gridView->setView($splashView, 1, 0);
     $gridView->setView(new FooterView(), 2, 0);
     parent::__construct($gridView);
 }
 /**
  * @depends testGetUserToRunAsWithoutSetOnMissingReturnsDefault
  */
 public function testGetUserToRunAsWithSetOnMissingReturnsDefault()
 {
     $util = static::resolveConfigUtilClassName();
     $user = $util::getUserToRunAs();
     $this->assertEquals(Yii::app()->user->userModel, $user);
     $configModuleName = $util::CONFIG_MODULE_NAME;
     $configKey = $util::CONFIG_KEY;
     $userIdInConfig = ZurmoConfigurationUtil::getByModuleName($configModuleName, $configKey);
     $this->assertNotNull($userIdInConfig);
     $this->assertEquals($user->id, $userIdInConfig);
 }
 public function testMakeFormAndSetConfigurationFromForm()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->timeZoneHelper->setTimeZone('America/New_York');
     Yii::app()->pagination->setGlobalValueByType('listPageSize', 50);
     Yii::app()->pagination->setGlobalValueByType('subListPageSize', 51);
     Yii::app()->pagination->setGlobalValueByType('modalListPageSize', 52);
     Yii::app()->pagination->setGlobalValueByType('dashboardListPageSize', 53);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', 'demoCompany');
     $logoFileName = 'testLogo.png';
     $logoFilePath = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName;
     ZurmoConfigurationFormAdapter::resizeLogoImageFile($logoFilePath, $logoFilePath, null, ZurmoConfigurationForm::DEFAULT_LOGO_HEIGHT);
     $logoFileId = ZurmoConfigurationFormAdapter::saveLogoFile($logoFileName, $logoFilePath, 'logoFileModelId');
     ZurmoConfigurationFormAdapter::publishLogo($logoFileName, $logoFilePath);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoFileModelId', $logoFileId);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoThumbFileModelId', $logoFileId);
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/New_York', $form->timeZone);
     $this->assertEquals(50, $form->listPageSize);
     $this->assertEquals(51, $form->subListPageSize);
     $this->assertEquals(52, $form->modalListPageSize);
     $this->assertEquals(53, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany', $form->applicationName);
     $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals(UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(false), $form->autoresponderOrCampaignFooterPlainText);
     $this->assertEquals(UnsubscribeAndManageSubscriptionsPlaceholderUtil::getContentByType(true), $form->autoresponderOrCampaignFooterRichText);
     $this->assertEquals($logoFileName, $form->logoFileData['name']);
     $form->timeZone = 'America/Chicago';
     $form->listPageSize = 60;
     $form->subListPageSize = 61;
     $form->modalListPageSize = 62;
     $form->dashboardListPageSize = 63;
     $form->applicationName = 'demoCompany2';
     $form->autoresponderOrCampaignBatchSize = 20;
     $logoFileName2 = 'testLogo2.png';
     $form->autoresponderOrCampaignFooterPlainText = 'abc';
     $form->autoresponderOrCampaignFooterRichText = 'def';
     $logoFilePath2 = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName2;
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . $logoFileName2);
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . ZurmoConfigurationForm::LOGO_THUMB_FILE_NAME_PREFIX . $logoFileName2);
     Yii::app()->user->setState('logoFileName', $logoFileName2);
     ZurmoConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('America/Chicago', $form->timeZone);
     $this->assertEquals(60, $form->listPageSize);
     $this->assertEquals(61, $form->subListPageSize);
     $this->assertEquals(62, $form->modalListPageSize);
     $this->assertEquals(63, $form->dashboardListPageSize);
     $this->assertEquals('demoCompany2', $form->applicationName);
     $this->assertEquals(20, $form->autoresponderOrCampaignBatchSize);
     $this->assertEquals('abc', $form->autoresponderOrCampaignFooterPlainText);
     $this->assertEquals('def', $form->autoresponderOrCampaignFooterRichText);
     $this->assertEquals($logoFileName2, $form->logoFileData['name']);
 }
 /**
  * Get a persistent config value for current user against portletId and keyName.
  * @param $portletId integer Id of the portlet or string representation of the unique id of the portlet to get value against
  * @param $keyName string Name of the key that should be returned
  * @param bool $returnBoolean bool Force return value to be boolean (explicit type casting)
  * @return bool|null|string
  */
 public static function getForCurrentUserByPortletIdAndKey($portletId, $keyName, $returnBoolean = false)
 {
     assert('is_int($portletId) || is_string($portletId)');
     assert('is_string($keyName)');
     $moduleName = static::getModuleName();
     $keyName = static::resolveKeyNameByPortletId($portletId, $keyName);
     $value = ZurmoConfigurationUtil::getForCurrentUserByModuleName($moduleName, $keyName);
     if ($returnBoolean) {
         $value = (bool) $value;
     }
     return $value;
 }
Example #19
0
 public function getModalNotificationsEnabled()
 {
     if (ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'gamificationModalNotificationsEnabled') !== null) {
         return ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'gamificationModalNotificationsEnabled');
     } else {
         if (isset($this->_modalNotificationsEnabled)) {
             return $this->_modalNotificationsEnabled;
         } else {
             return true;
         }
     }
 }
 public function testSuperUserSendGridDefaultControllerActions()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     //Load configuration list for Maps.
     $this->runControllerWithNoExceptionsAndGetContent('sendGrid/default/configurationView');
     //Save the configuration details.
     $this->setPostArray(array('SendGridConfigurationForm' => array('enableSendgrid' => true), 'save' => 'Save'));
     $content = $this->runControllerWithRedirectExceptionAndGetContent('sendGrid/default/configurationView');
     $this->assertEquals('Sendgrid configuration saved successfully.', Yii::app()->user->getFlash('notification'));
     //Check whether key is set.
     $enableSendGrid = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid');
     $this->assertEquals(true, $enableSendGrid);
 }
 public function __construct(CController $controller, MetadataView $listView)
 {
     $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName');
     $header = new HeaderLinksView(array(), array(), $applicationName);
     $flashMessageView = new FlashMessageView($controller);
     $gridView = new GridView(4, 1);
     $gridView->setView($header, 0, 0);
     $gridView->setView($listView, 1, 0);
     $gridView->setView($flashMessageView, 2, 0);
     $gridView->setView(new FooterView(false), 3, 0);
     $this->registerScripts();
     parent::__construct($gridView);
 }
 /**
  * Override so that job could be tested with test data.
  * (non-PHPdoc)
  * @see BaseJob::run()
  */
 public function run()
 {
     $sendGridPluginEnabled = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid');
     if ($sendGridPluginEnabled) {
         $logPath = SendGridLogUtil::getLogFilePath('testemailjob');
         if (file_exists($logPath)) {
             @file_put_contents($logPath, '');
         }
         $rawData = file_get_contents(dirname(__FILE__) . '/files/testsendgridwebhookdump.log');
         self::writeLog('testemailjob', $rawData);
         $this->processEventData($logPath);
         @unlink($logPath);
     }
     return true;
 }
Example #23
0
 public function actionLogin()
 {
     $formModel = new LoginForm();
     if (isset($_POST['ajax']) && $_POST['ajax'] == 'login-form') {
         echo ZurmoActiveForm::validate($formModel);
         Yii::app()->end(0, false);
     } elseif (isset($_POST['LoginForm'])) {
         $formModel->attributes = $_POST['LoginForm'];
         if ($formModel->validate() && $formModel->login()) {
             $this->redirect(Yii::app()->user->returnUrl);
         }
     }
     $extraHeaderContent = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'loginViewExtraHeaderContent');
     $view = new LoginPageView($this, $formModel, $extraHeaderContent);
     echo $view->render();
 }
Example #24
0
 /**
  * Admin configuration action for entering the google map api key.
  */
 public function actionConfigurationView()
 {
     $configurationForm = new MapsConfigurationForm();
     $configurationForm->apiKey = Yii::app()->mappingHelper->getGeoCodeApiKey();
     $postVariableName = get_class($configurationForm);
     if (isset($_POST[$postVariableName])) {
         $configurationForm->setAttributes($_POST[$postVariableName]);
         if ($configurationForm->validate()) {
             ZurmoConfigurationUtil::setByModuleName('MapsModule', 'googleMapApiKey', $configurationForm->apiKey);
             Yii::app()->user->setFlash('notification', Zurmo::t('MapsModule', 'Maps configuration saved successfully.'));
             $this->redirect(Yii::app()->createUrl('maps/default/configurationView'));
         }
     }
     $editView = new MapConfigurationView('Edit', $this->getId(), $this->getModule()->getId(), $configurationForm);
     $editView->setCssClasses(array('AdministrativeArea'));
     $view = new ZurmoConfigurationPageView(ZurmoDefaultAdminViewUtil::makeStandardViewForCurrentUser($this, $editView));
     echo $view->render();
 }
 public function testMakeFormAndSetConfigurationFromForm()
 {
     $form = BounceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertNull($form->imapHost);
     $this->assertNull($form->imapPort);
     $this->assertNull($form->imapUsername);
     $this->assertNull($form->imapPassword);
     $this->assertNull($form->imapSSL);
     $this->assertNull($form->imapFolder);
     $this->assertNull($form->returnPath);
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapHost', 'bounce.com');
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapPort', '420');
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapSSL', '1');
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapUsername', 'bouncy');
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapPassword', ZurmoPasswordSecurityUtil::encrypt('bounces'));
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceImapFolder', 'BOUNCES');
     ZurmoConfigurationUtil::setByModuleName('EmailMessagesModule', 'bounceReturnPath', '*****@*****.**');
     $form = BounceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('bounce.com', $form->imapHost);
     $this->assertEquals('420', $form->imapPort);
     $this->assertEquals('bouncy', $form->imapUsername);
     $this->assertEquals('bounces', $form->imapPassword);
     $this->assertEquals('1', $form->imapSSL);
     $this->assertEquals('BOUNCES', $form->imapFolder);
     $this->assertEquals('*****@*****.**', $form->returnPath);
     $form = BounceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $form->imapHost = 'example.com';
     $form->imapPort = '111';
     $form->imapSSL = '0';
     $form->imapUsername = '******';
     $form->imapPassword = '******';
     $form->imapFolder = 'folder';
     $form->returnPath = 'path';
     BounceConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = BounceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('example.com', $form->imapHost);
     $this->assertEquals('111', $form->imapPort);
     $this->assertEquals('user', $form->imapUsername);
     $this->assertEquals('password', $form->imapPassword);
     $this->assertEquals('0', $form->imapSSL);
     $this->assertEquals('folder', $form->imapFolder);
     $this->assertEquals('path', $form->returnPath);
 }
 protected static function resolveContentForEmailOpenTracking(&$content, $isHtmlContent = false)
 {
     if (!$isHtmlContent) {
         return false;
     }
     $hash = StringUtil::resolveHashForQueryStringArray(static::$baseQueryStringArray);
     $trackingUrl = static::resolveAbsoluteTrackingUrlByHash($hash);
     $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName');
     if (!isset($applicationName)) {
         $applicationName = 'Tracker';
     }
     $imageTag = ZurmoHtml::image($trackingUrl, $applicationName, array('width' => 1, 'height' => 1));
     $imageTag = ZurmoHtml::tag('br') . $imageTag;
     if ($bodyTagPosition = strpos($content, '</body>')) {
         $content = substr_replace($content, $imageTag . '</body>', $bodyTagPosition, strlen('</body>'));
     } else {
         $content .= $imageTag;
     }
     return true;
 }
Example #27
0
 /**
  * @param DemoDataHelper $demoDataHelper
  */
 public function makeAll(&$demoDataHelper)
 {
     assert('$demoDataHelper instanceof DemoDataHelper');
     $currency = new Currency();
     $currency->code = 'EUR';
     $currency->rateToBase = 1.5;
     $saved = $currency->save();
     assert('$saved');
     $currency = new Currency();
     $currency->code = 'CAD';
     $currency->rateToBase = 1.1;
     $saved = $currency->save();
     assert('$saved');
     $currency = new Currency();
     $currency->code = 'JPY';
     $currency->rateToBase = 0.75;
     $saved = $currency->save();
     assert('$saved');
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'applicationName', 'Demo Company Inc.');
 }
 /**
  * Given post data and an email message, populate the sender and account on the email message if possible.
  * Also add message recipients and any attachments.
  * @param array $postData
  * @param CreateEmailMessageForm $emailMessageForm
  * @param User $userToSendMessagesFrom
  * @return CreateEmailMessageForm
  */
 public static function resolveEmailMessageFromPostData(array &$postData, CreateEmailMessageForm $emailMessageForm, User $userToSendMessagesFrom)
 {
     $postVariableName = get_class($emailMessageForm);
     $toRecipients = explode(",", $postData[$postVariableName]['recipientsData']['to']);
     // Not Coding Standard
     static::attachRecipientsToMessage($toRecipients, $emailMessageForm->getModel(), EmailMessageRecipient::TYPE_TO);
     if (ArrayUtil::getArrayValue($postData[$postVariableName]['recipientsData'], 'cc') != null) {
         $ccRecipients = explode(",", $postData[$postVariableName]['recipientsData']['cc']);
         // Not Coding Standard
         static::attachRecipientsToMessage($ccRecipients, $emailMessageForm->getModel(), EmailMessageRecipient::TYPE_CC);
     }
     if (ArrayUtil::getArrayValue($postData[$postVariableName]['recipientsData'], 'bcc') != null) {
         $bccRecipients = explode(",", $postData[$postVariableName]['recipientsData']['bcc']);
         // Not Coding Standard
         static::attachRecipientsToMessage($bccRecipients, $emailMessageForm->getModel(), EmailMessageRecipient::TYPE_BCC);
     }
     if (isset($postData['filesIds'])) {
         static::attachFilesToMessage($postData['filesIds'], $emailMessageForm->getModel());
     }
     $sender = new EmailMessageSender();
     $sendGridPluginEnabled = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid');
     if ($sendGridPluginEnabled) {
         try {
             $emailAccount = SendGridEmailAccount::getByUserAndName($userToSendMessagesFrom);
             $emailMessageForm->sendGridAccount = $emailAccount;
         } catch (NotFoundException $e) {
             $emailAccount = EmailAccount::getByUserAndName($userToSendMessagesFrom);
             $emailMessageForm->account = $emailAccount;
         }
     } else {
         $emailAccount = EmailAccount::getByUserAndName($userToSendMessagesFrom);
         $emailMessageForm->account = $emailAccount;
     }
     $sender->fromName = $emailAccount->fromName;
     $sender->fromAddress = $emailAccount->fromAddress;
     $sender->personsOrAccounts->add($userToSendMessagesFrom);
     $emailMessageForm->sender = $sender;
     $box = EmailBoxUtil::getDefaultEmailBoxByUser($userToSendMessagesFrom);
     $emailMessageForm->folder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_OUTBOX);
     return $emailMessageForm;
 }
 public function testMakeFormAndSetConfigurationFromForm()
 {
     $billy = User::getByUsername('billy');
     Yii::app()->themeManager->customThemeColorsArray = array('#111111', '#222222', '#333333');
     Yii::app()->themeManager->globalThemeColor = 'custom';
     Yii::app()->themeManager->forceAllUsersTheme = true;
     $logoFileName = 'testLogo.png';
     $logoFilePath = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName;
     ZurmoUserInterfaceConfigurationFormAdapter::resizeLogoImageFile($logoFilePath, $logoFilePath, null, ZurmoUserInterfaceConfigurationForm::DEFAULT_LOGO_HEIGHT);
     $logoFileId = ZurmoUserInterfaceConfigurationFormAdapter::saveLogoFile($logoFileName, $logoFilePath, 'logoFileModelId');
     ZurmoUserInterfaceConfigurationFormAdapter::publishLogo($logoFileName, $logoFilePath);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoFileModelId', $logoFileId);
     ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'logoThumbFileModelId', $logoFileId);
     //Getting values
     $form = ZurmoUserInterfaceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals($logoFileName, $form->logoFileData['name']);
     $this->assertEquals('custom', $form->themeColor);
     $this->assertEquals('#111111', $form->customThemeColor1);
     $this->assertEquals('#222222', $form->customThemeColor2);
     $this->assertEquals('#333333', $form->customThemeColor3);
     $this->assertEquals('1', $form->forceAllUsersTheme);
     //Setting values
     $form->themeColor = 'lime';
     $form->customThemeColor1 = '#999999';
     $form->customThemeColor2 = '#888888';
     $form->customThemeColor3 = '#777777';
     $form->forceAllUsersTheme = false;
     $logoFileName2 = 'testLogo2.png';
     $logoFilePath2 = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files') . DIRECTORY_SEPARATOR . $logoFileName2;
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . $logoFileName2);
     copy($logoFilePath2, sys_get_temp_dir() . DIRECTORY_SEPARATOR . ZurmoUserInterfaceConfigurationForm::LOGO_THUMB_FILE_NAME_PREFIX . $logoFileName2);
     Yii::app()->user->setState('logoFileName', $logoFileName2);
     ZurmoUserInterfaceConfigurationFormAdapter::setConfigurationFromForm($form);
     $form = ZurmoUserInterfaceConfigurationFormAdapter::makeFormFromGlobalConfiguration();
     $this->assertEquals('lime', $form->themeColor);
     $this->assertEquals('#999999', $form->customThemeColor1);
     $this->assertEquals('#888888', $form->customThemeColor2);
     $this->assertEquals('#777777', $form->customThemeColor3);
     $this->assertEquals(false, $form->forceAllUsersTheme);
     $this->assertEquals($logoFileName2, $form->logoFileData['name']);
 }
 /**
  * Admin configuration action for enabling sendgrid plugin.
  */
 public function actionConfigurationView()
 {
     $breadCrumbLinks = array(Zurmo::t('SendGridModule', 'SendGrid Configuration'));
     $configurationForm = new SendGridConfigurationForm();
     $configurationForm->enableSendgrid = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid');
     $postVariableName = get_class($configurationForm);
     if (isset($_POST[$postVariableName])) {
         $_POST[$postVariableName]['enableSendgrid'] = (bool) $_POST[$postVariableName]['enableSendgrid'];
         $configurationForm->setAttributes($_POST[$postVariableName]);
         if ($configurationForm->validate()) {
             ZurmoConfigurationUtil::setByModuleName('SendGridModule', 'enableSendgrid', $configurationForm->enableSendgrid);
             Yii::app()->user->setFlash('notification', Zurmo::t('SendGridModule', 'Sendgrid configuration saved successfully.'));
             if ($configurationForm->enableSendgrid) {
                 $this->redirect(Yii::app()->createUrl('sendGrid/default/configurationEditOutbound'));
             } else {
                 $this->redirect(Yii::app()->createUrl('sendGrid/default/configurationView'));
             }
         }
     }
     $editView = new SendGridConfigurationView('Edit', $this->getId(), $this->getModule()->getId(), $configurationForm);
     $editView->setCssClasses(array('AdministrativeArea'));
     $view = new ZurmoConfigurationPageView(ZurmoDefaultAdminViewUtil::makeViewWithBreadcrumbsForCurrentUser($this, $editView, $breadCrumbLinks, 'PluginsBreadCrumbView'));
     echo $view->render();
 }