Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKate Butler <kate@innocraft.com>2019-10-11 01:20:09 +0300
committerThomas Steur <tsteur@users.noreply.github.com>2019-10-11 01:20:09 +0300
commitda92367838fa85b806dfd2486b6e91c308cb5e46 (patch)
treeb680b8311c69ea8d9dad409c8fcd1f1f410b5486 /plugins/CoreAdminHome
parent2956209a7af53cfad8231a1f0625a19bb20decf1 (diff)
Allow noreply email address/from to be set in admin panel (#14975)
Diffstat (limited to 'plugins/CoreAdminHome')
-rw-r--r--plugins/CoreAdminHome/Controller.php24
-rw-r--r--plugins/CoreAdminHome/angularjs/smtp/mail-smtp.controller.js2
-rw-r--r--plugins/CoreAdminHome/lang/en.json1
-rw-r--r--plugins/CoreAdminHome/templates/generalSettings.twig26
4 files changed, 46 insertions, 7 deletions
diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php
index 51c03b89d2..cfe6090540 100644
--- a/plugins/CoreAdminHome/Controller.php
+++ b/plugins/CoreAdminHome/Controller.php
@@ -13,6 +13,7 @@ use Piwik\API\ResponseBuilder;
use Piwik\ArchiveProcessor\Rules;
use Piwik\Common;
use Piwik\Config;
+use Piwik\Mail;
use Piwik\Menu\MenuTop;
use Piwik\Piwik;
use Piwik\Plugin;
@@ -124,6 +125,8 @@ class Controller extends ControllerAdmin
'ssl' => 'SSL',
'tls' => 'TLS'
);
+ $mail = new Mail();
+ $view->mailHost = $mail->getMailHost();
$view->language = LanguagesManager::getLanguageCodeForCurrentUser();
$this->setBasicVariablesView($view);
@@ -161,6 +164,22 @@ class Controller extends ControllerAdmin
Config::getInstance()->mail = $mail;
+ $general = Config::getInstance()->General;
+ $fromName = Common::getRequestVar('mailFromName', '');
+ $general['noreply_email_name'] = Common::unsanitizeInputValue($fromName);
+
+ $mailFrom = Common::getRequestVar('mailFromAddress', '');
+ if (empty($mailFrom)) {
+ $mailFrom = 'noreply@{DOMAIN}';
+ } else {
+ $mailFrom = Common::unsanitizeInputValue($mailFrom);
+ }
+ if (!Piwik::isValidEmailString($mailFrom) && !Common::stringEndsWith($mailFrom, '@{DOMAIN}')) {
+ throw new Exception(Piwik::translate('CoreAdminHome_ErrorEmailFromAddressNotValid'));
+ }
+ $general['noreply_email_address'] = $mailFrom;
+ Config::getInstance()->General = $general;
+
Config::getInstance()->forceSave();
$toReturn = $response->getResponse();
@@ -275,7 +294,10 @@ class Controller extends ControllerAdmin
$view->todayArchiveTimeToLiveDefault = Rules::getTodayArchiveTimeToLiveDefault();
$view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving;
- $view->mail = Config::getInstance()->mail;
+ $mail = Config::getInstance()->mail;
+ $mail['noreply_email_address'] = Config::getInstance()->General['noreply_email_address'];
+ $mail['noreply_email_name'] = Config::getInstance()->General['noreply_email_name'];
+ $view->mail = $mail;
}
}
diff --git a/plugins/CoreAdminHome/angularjs/smtp/mail-smtp.controller.js b/plugins/CoreAdminHome/angularjs/smtp/mail-smtp.controller.js
index 98b8f9743d..e90503b883 100644
--- a/plugins/CoreAdminHome/angularjs/smtp/mail-smtp.controller.js
+++ b/plugins/CoreAdminHome/angularjs/smtp/mail-smtp.controller.js
@@ -29,6 +29,8 @@
mailHost: this.mailHost,
mailType: this.mailType,
mailUsername: this.mailUsername,
+ mailFromAddress: this.mailFromAddress,
+ mailFromName: this.mailFromName,
mailEncryption: this.mailEncryption
};
diff --git a/plugins/CoreAdminHome/lang/en.json b/plugins/CoreAdminHome/lang/en.json
index 3ae7269d9f..c84b970b4a 100644
--- a/plugins/CoreAdminHome/lang/en.json
+++ b/plugins/CoreAdminHome/lang/en.json
@@ -4,6 +4,7 @@
"Administration": "Administration",
"ArchivingSettings": "Archiving settings",
"BrandingSettings": "Branding settings",
+ "ErrorEmailFromAddressNotValid": "The SMTP from address is not valid",
"ReleaseChannel": "Release channel",
"ClickHereToOptIn": "Click here to opt in.",
"ClickHereToOptOut": "Click here to opt out.",
diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig
index 84a47c88e5..d959492b89 100644
--- a/plugins/CoreAdminHome/templates/generalSettings.twig
+++ b/plugins/CoreAdminHome/templates/generalSettings.twig
@@ -51,7 +51,7 @@
{{ 'General_ReportsContainingTodayWillBeProcessedAtMostEvery'|translate }}
</h3>
<div class="input-field col s12 m6">
- <input type="text" value='{{ todayArchiveTimeToLive }}' id='todayArchiveTimeToLive' {% if not isGeneralSettingsAdminEnabled %}disabled="disabled"{% endif %} />
+ <input type="text" value='{{ todayArchiveTimeToLive|e('html_attr') }}' id='todayArchiveTimeToLive' {% if not isGeneralSettingsAdminEnabled %}disabled="disabled"{% endif %} />
<span class="form-description">
{{ 'General_RearchiveTimeIntervalOnlyForTodayReports'|translate }}
</span>
@@ -93,26 +93,26 @@
<div piwik-field uicontrol="text" name="mailHost"
ng-model="mailSettings.mailHost"
data-title="{{ 'General_SmtpServerAddress'|translate|e('html_attr') }}"
- value="{{ mail.host }}">
+ value="{{ mail.host|e('html_attr') }}">
</div>
<div piwik-field uicontrol="text" name="mailPort"
ng-model="mailSettings.mailPort"
data-title="{{ 'General_SmtpPort'|translate|e('html_attr') }}"
- value="{{ mail.port }}" inline-help="{{ 'General_OptionalSmtpPort'|translate|e('html_attr') }}">
+ value="{{ mail.port|e('html_attr') }}" inline-help="{{ 'General_OptionalSmtpPort'|translate|e('html_attr') }}">
</div>
<div piwik-field uicontrol="select" name="mailType"
ng-model="mailSettings.mailType"
data-title="{{ 'General_AuthenticationMethodSmtp'|translate|e('html_attr') }}"
options="{{ mailTypes|json_encode }}"
- value="{{ mail.type }}" inline-help="{{ 'General_OnlyUsedIfUserPwdIsSet'|translate|e('html_attr') }}">
+ value="{{ mail.type|e('html_attr') }}" inline-help="{{ 'General_OnlyUsedIfUserPwdIsSet'|translate|e('html_attr') }}">
</div>
<div piwik-field uicontrol="text" name="mailUsername"
ng-model="mailSettings.mailUsername"
data-title="{{ 'General_SmtpUsername'|translate|e('html_attr') }}"
- value="{{ mail.username }}" inline-help="{{ 'General_OnlyEnterIfRequired'|translate|e('html_attr') }}"
+ value="{{ mail.username|e('html_attr') }}" inline-help="{{ 'General_OnlyEnterIfRequired'|translate|e('html_attr') }}"
autocomplete="off">
</div>
@@ -129,11 +129,25 @@
autocomplete="off">
</div>
+ <div piwik-field uicontrol="text" name="mailFromAddress"
+ ng-model="mailSettings.mailFromAddress"
+ title="{{ 'General_SmtpFromAddress'|translate|e('html_attr') }}"
+ value="{{ mail.noreply_email_address|e('html_attr') }}" inline-help="{{ 'General_SmtpFromEmailHelp'|translate(mailHost)|e('html_attr') }}"
+ autocomplete="off">
+ </div>
+
+ <div piwik-field uicontrol="text" name="mailFromName"
+ ng-model="mailSettings.mailFromName"
+ title="{{ 'General_SmtpFromName'|translate|e('html_attr') }}"
+ value="{{ mail.noreply_email_name|e('html_attr') }}" inline-help="{{ 'General_NameShownInTheSenderColumn'|translate|e('html_attr') }}"
+ autocomplete="off">
+ </div>
+
<div piwik-field uicontrol="select" name="mailEncryption"
ng-model="mailSettings.mailEncryption"
data-title="{{ 'General_SmtpEncryption'|translate|e('html_attr') }}"
options="{{ mailEncryptions|json_encode }}"
- value="{{ mail.encryption }}" inline-help="{{ 'General_EncryptedSmtpTransport'|translate|e('html_attr') }}">
+ value="{{ mail.encryption|e('html_attr') }}" inline-help="{{ 'General_EncryptedSmtpTransport'|translate|e('html_attr') }}">
</div>
</div>