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); }
protected function renderContent() { $homeUrl = Yii::app()->createUrl('home/default'); $content = '<div class="clearfix">'; $content .= '<a href="#" id="nav-trigger" title="Toggle Navigation">›</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; }
/** * 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; }
/** * 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; }
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; }
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(); }
/** * 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; }
/** * @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(); }