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; }
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; }
protected static function getConfigForKey($key) { $value = ZurmoConfigurationUtil::getByModuleName(static::CONFIG_MODULE_NAME, $key); if ($key == 'bounceImapPassword') { $value = ZurmoPasswordSecurityUtil::decrypt($value); } return $value; }
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); }
/** * Creates a form populated with the marketing configuration global stored values. * @return MarketingConfigurationForm */ public static function makeFormFromMarketingConfiguration() { $form = new MarketingConfigurationForm(); $form->autoresponderOrCampaignFooterPlainText = GlobalMarketingFooterUtil::getContentByType(false); $form->autoresponderOrCampaignFooterRichText = GlobalMarketingFooterUtil::getContentByType(true); $form->useAutoresponderOrCampaignOwnerMailSettings = ZurmoConfigurationUtil::getByModuleName('MarketingModule', 'UseAutoresponderOrCampaignOwnerMailSettings'); return $form; }
/** * 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; } }
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; }
public static function getContentByType($isHtmlContent, $returnDefault = true) { $key = static::resolveConfigKeyByContentType($isHtmlContent); $content = ZurmoConfigurationUtil::getByModuleName(static::CONFIG_MODULE_NAME, $key); if (empty($content) && $returnDefault) { $content = static::resolveDefaultValue(); } return $content; }
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); }
/** * @param bool $returnDefaultIfMissing * @param bool $setDefaultIfMissing * @return configuration|int $size */ public static function getBatchSize($returnDefaultIfMissing = true, $setDefaultIfMissing = false) { $size = ZurmoConfigurationUtil::getByModuleName(static::CONFIG_MODULE_NAME, static::CONFIG_KEY); if (empty($size) && $returnDefaultIfMissing) { $size = static::CONFIG_DEFAULT_VALUE; if ($setDefaultIfMissing) { static::setBatchSize($size); } } return $size; }
/** * Loads state data from persistent storage(database). * @return mixed state data. Null if no state data available. */ public function load() { if (RedBeanDatabase::isSetup()) { $content = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'globalState'); $content = unserialize($content); if ($content) { return $content; } } return null; }
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(); }
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; }
/** * 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; }
/** * When running a special action or a job an elevated user must be used in order to ensure the activities can * be processed properly. if there is not a user specified, then a fall back of the first user that is a super * administrator will be returned * @param boolean $setOnMissing whether function set the fallback user inside config for future requests or not * @return User $user * @throws NotSupportedException if there is no user specified and there are no users in the super admin group * @throws MissingASuperAdministratorException if there are no super administrators available */ public static function getUserToRunAs($setOnMissing = true) { $configModuleName = static::getConfigModuleId(); $configKey = static::getConfigKey(); $superGroup = Group::getByName(Group::SUPER_ADMINISTRATORS_GROUP_NAME); if (null != ($userId = ZurmoConfigurationUtil::getByModuleName($configModuleName, $configKey))) { try { $user = User::getById($userId); if ($user->groups->contains($superGroup)) { return $user; } } catch (NotFoundException $e) { } } if ($superGroup->users->count() == 0) { throw new MissingASuperAdministratorException(); } else { $user = $superGroup->users->offsetGet(0); if ($setOnMissing) { ZurmoConfigurationUtil::setByModuleName($configModuleName, $configKey, $user->id); } return $user; } }
/** * 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(); }
protected static function makeHeaderView(CController $controller) { $headerView = null; $settingsMenuItems = MenuUtil::getOrderedAccessibleHeaderMenuForCurrentUser(); $settingsMenuItems = static::resolveHeaderMenuItemsForMobile($settingsMenuItems); $userMenuItems = static::getAndResolveUserMenuItemsForHeader(); $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName'); if (Yii::app()->userInterface->isMobile()) { $headerView = new MobileHeaderView($settingsMenuItems, $userMenuItems, $applicationName); } else { $shortcutsCreateMenuItems = MenuUtil::getAccessibleShortcutsCreateMenuByCurrentUser(); $moduleNamesAndLabels = GlobalSearchUtil::getGlobalSearchScopingModuleNamesAndLabelsDataByUser(Yii::app()->user->userModel); $sourceUrl = Yii::app()->createUrl('zurmo/default/globalSearchAutoComplete'); GlobalSearchUtil::resolveModuleNamesAndLabelsDataWithAllOption($moduleNamesAndLabels); $headerView = new HeaderView($controller->getId(), $controller->getModule()->getId(), $settingsMenuItems, $userMenuItems, $shortcutsCreateMenuItems, $moduleNamesAndLabels, $sourceUrl, $applicationName); } return $headerView; }
/** * Get spam content for drill down. * @param CampaignItem $campaignItem * @return string */ protected static function getSpamContentForDrillDown(CampaignItem $campaignItem) { $content = null; $sendGridPluginEnabled = (bool) ZurmoConfigurationUtil::getByModuleName('SendGridModule', 'enableSendgrid'); if ($sendGridPluginEnabled) { $content = self::resolveContentForSendGridBounceOrSpamEventActivity($campaignItem, CampaignItemActivity::TYPE_SPAM); } return $content; }
/** * Get the global configuration value. * @return string - time zone. */ public function getGlobalValue() { if (null != ($timeZone = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'timeZone'))) { return $timeZone; } else { return $this->_timeZone; } }
protected static function resolveApplicationName() { return ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName'); }
/** * Get outbound settings. * @return array */ public function getOutboundSettings() { $settings = array(); foreach (static::$settingsToLoad as $keyName) { if ($keyName == 'outboundPassword') { $encryptedKeyValue = ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', $keyName); if ($encryptedKeyValue !== '' && $encryptedKeyValue !== null) { $keyValue = ZurmoPasswordSecurityUtil::decrypt($encryptedKeyValue); } else { $keyValue = null; } } elseif ($keyName == 'outboundType') { $keyValue = ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'outboundType'); if ($keyValue == null) { $keyValue = self::OUTBOUND_TYPE_SMTP; } } else { $keyValue = ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', $keyName); } if (null !== $keyValue) { $settings[$keyName] = $keyValue; } else { $settings[$keyName] = null; } } return $settings; }
public function testInit() { $this->skipTestIfMissingSettings(); $imap = new ZurmoImap(); $this->assertEquals(null, $imap->imapHost); $this->assertEquals(null, $imap->imapUsername); $this->assertEquals(null, $imap->imapPassword); $this->assertEquals(143, $imap->imapPort); $this->assertEquals(null, $imap->imapSSL); $this->assertEquals('INBOX', $imap->imapFolder); $imap->init(); $this->assertEquals(null, $imap->imapHost); $this->assertEquals(null, $imap->imapUsername); $this->assertEquals(null, $imap->imapPassword); $this->assertEquals(143, $imap->imapPort); $this->assertEquals(null, $imap->imapSSL); $this->assertEquals('INBOX', $imap->imapFolder); $imap->imapHost = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapHost']; $imap->imapUsername = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapUsername']; $imap->imapPassword = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPassword']; $imap->imapPort = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPort']; $imap->imapSSL = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapSSL']; $imap->imapFolder = Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapFolder']; $imap->setInboundSettings(); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapHost'], ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapHost')); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapUsername'], ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapUsername')); //$this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPassword'], // ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapPassword')); $this->assertFalse(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPassword'] == ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapPassword')); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPort'], ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapPort')); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapSSL'], ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapSSL')); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapFolder'], ZurmoConfigurationUtil::getByModuleName('EmailMessagesModule', 'imapFolder')); $imap->init(); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapHost'], $imap->imapHost); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapUsername'], $imap->imapUsername); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPassword'], $imap->imapPassword); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapPort'], $imap->imapPort); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapSSL'], $imap->imapSSL); $this->assertEquals(Yii::app()->params['emailTestAccounts']['dropboxImapSettings']['imapFolder'], $imap->imapFolder); }