diff options
Diffstat (limited to 'settings')
-rw-r--r-- | settings/Controller/ChangePasswordController.php | 5 | ||||
-rw-r--r-- | settings/Controller/MailSettingsController.php | 65 | ||||
-rw-r--r-- | settings/js/admin.js | 36 | ||||
-rw-r--r-- | settings/l10n/pl.js | 19 | ||||
-rw-r--r-- | settings/l10n/pl.json | 19 | ||||
-rw-r--r-- | settings/l10n/ru.js | 4 | ||||
-rw-r--r-- | settings/l10n/ru.json | 4 | ||||
-rw-r--r-- | settings/templates/admin/additional-mail.php | 64 |
8 files changed, 132 insertions, 84 deletions
diff --git a/settings/Controller/ChangePasswordController.php b/settings/Controller/ChangePasswordController.php index 4faed3a8fa6..cb1a97386a6 100644 --- a/settings/Controller/ChangePasswordController.php +++ b/settings/Controller/ChangePasswordController.php @@ -85,6 +85,7 @@ class ChangePasswordController extends Controller { /** * @NoAdminRequired * @NoSubadminRequired + * @BruteForceProtection(action=changePersonalPassword) * * @param string $oldpassword * @param string $newpassword @@ -95,12 +96,14 @@ class ChangePasswordController extends Controller { /** @var IUser $user */ $user = $this->userManager->checkPassword($this->userId, $oldpassword); if ($user === false) { - return new JSONResponse([ + $response = new JSONResponse([ 'status' => 'error', 'data' => [ 'message' => $this->l->t('Wrong password'), ], ]); + $response->throttle(); + return $response; } try { diff --git a/settings/Controller/MailSettingsController.php b/settings/Controller/MailSettingsController.php index 8137b4da53c..ed742059665 100644 --- a/settings/Controller/MailSettingsController.php +++ b/settings/Controller/MailSettingsController.php @@ -1,5 +1,6 @@ <?php /** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> @@ -25,6 +26,8 @@ namespace OC\Settings\Controller; use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; use OCP\IRequest; use OCP\IL10N; use OCP\IConfig; @@ -84,7 +87,7 @@ class MailSettingsController extends Controller { * @param string $mail_smtpauthtype * @param int $mail_smtpauth * @param string $mail_smtpport - * @return array + * @return DataResponse */ public function setMailSettings($mail_domain, $mail_from_address, @@ -109,12 +112,7 @@ class MailSettingsController extends Controller { $this->config->setSystemValues($configs); - return array('data' => - array('message' => - (string) $this->l10n->t('Saved') - ), - 'status' => 'success' - ); + return new DataResponse(); } /** @@ -124,62 +122,53 @@ class MailSettingsController extends Controller { * * @param string $mail_smtpname * @param string $mail_smtppassword - * @return array + * @return DataResponse */ public function storeCredentials($mail_smtpname, $mail_smtppassword) { + if ($mail_smtppassword === '********') { + return new DataResponse($this->l10n->t('Invalid SMTP password.'), Http::STATUS_BAD_REQUEST); + } + $this->config->setSystemValues([ 'mail_smtpname' => $mail_smtpname, 'mail_smtppassword' => $mail_smtppassword, ]); - return array('data' => - array('message' => - (string) $this->l10n->t('Saved') - ), - 'status' => 'success' - ); + return new DataResponse(); } /** * Send a mail to test the settings - * @return array + * @return DataResponse */ public function sendTestMail() { $email = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'email', ''); if (!empty($email)) { try { + $displayName = $this->userSession->getUser()->getDisplayName(); + + $template = $this->mailer->createEMailTemplate(); + $template->addHeader(); + $template->addHeading($this->l10n->t('Well done, %s!', [$displayName])); + $template->addBodyText($this->l10n->t('If you received this email, the email configuration seems to be correct.')); + $template->addFooter(); + $message = $this->mailer->createMessage(); - $message->setTo([$email => $this->userSession->getUser()->getDisplayName()]); - $message->setFrom([$this->defaultMailAddress]); - $message->setSubject($this->l10n->t('test email settings')); - $message->setPlainBody('If you received this email, the settings seem to be correct.'); + $message->setTo([$email => $displayName]); + $message->setSubject($this->l10n->t('Email setting test')); + $message->setHtmlBody($template->renderHTML()); + $message->setPlainBody($template->renderText()); $errors = $this->mailer->send($message); if (!empty($errors)) { throw new \RuntimeException($this->l10n->t('Mail could not be sent. Check your mail server log')); } + return new DataResponse(); } catch (\Exception $e) { - return [ - 'data' => [ - 'message' => (string) $this->l10n->t('A problem occurred while sending the email. Please revise your settings. (Error: %s)', [$e->getMessage()]), - ], - 'status' => 'error', - ]; + return new DataResponse($this->l10n->t('A problem occurred while sending the email. Please revise your settings. (Error: %s)', [$e->getMessage()]), Http::STATUS_BAD_REQUEST); } - - return array('data' => - array('message' => - (string) $this->l10n->t('Email sent') - ), - 'status' => 'success' - ); } - return array('data' => - array('message' => - (string) $this->l10n->t('You need to set your user email before being able to send test emails.'), - ), - 'status' => 'error' - ); + return new DataResponse($this->l10n->t('You need to set your user email before being able to send test emails.'), Http::STATUS_BAD_REQUEST); } } diff --git a/settings/js/admin.js b/settings/js/admin.js index 985e318e34b..475fecf604e 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -186,11 +186,11 @@ $(document).ready(function(){ url: OC.generateUrl('/settings/admin/mailsettings'), type: 'POST', data: $('#mail_general_settings_form').serialize(), - success: function(data){ - OC.msg.finishedSaving('#mail_settings_msg', data); + success: function(){ + OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved')); }, - error: function(data){ - OC.msg.finishedError('#mail_settings_msg', data.responseJSON.message); + error: function(xhr){ + OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON); } }); }; @@ -206,21 +206,39 @@ $(document).ready(function(){ url: OC.generateUrl('/settings/admin/mailsettings/credentials'), type: 'POST', data: $('#mail_credentials_settings').serialize(), - success: function(data){ - OC.msg.finishedSaving('#mail_settings_msg', data); + success: function(){ + OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved')); }, - error: function(data){ - OC.msg.finishedError('#mail_settings_msg', data.responseJSON.message); + error: function(xhr){ + OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON); } }); }; $('#mail_general_settings_form').change(changeEmailSettings); $('#mail_credentials_settings_submit').click(toggleEmailCredentials); + $('#mail_smtppassword').click(function() { + if (this.type === 'text' && this.value === '********') { + this.type = 'password'; + this.value = ''; + } + }); $('#sendtestemail').click(function(event){ event.preventDefault(); - OC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending...')); + OC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…')); + + $.ajax({ + url: OC.generateUrl('/settings/admin/mailtest'), + type: 'POST', + data: $('#mail_credentials_settings').serialize(), + success: function(){ + OC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent')); + }, + error: function(xhr){ + OC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON); + } + }); $.post(OC.generateUrl('/settings/admin/mailtest'), '', function(data){ OC.msg.finishedAction('#sendtestmail_msg', data); }); diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 8fb56382cb5..bf3f3b863da 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -1,6 +1,13 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} zmienił twoje hasło", + "You changed your password" : "Zmieniłeś/-aś swoje hasło", + "Your password was reset by an administrator" : "Twoj hasło zostało zresetowane przez administratora", + "{actor} changed your email" : "{actor} zmienił twój adres e-mail", + "You changed your email" : "Zmieniłeś/-aś swój adres e-mail", + "Your email was changed by an administrator" : "Twój adres e-mail został zmieniony przez administratora", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", "Enabled" : "Włączone", "Not enabled" : "Nie włączone", "Wrong password" : "Złe hasło", @@ -39,6 +46,18 @@ OC.L10N.register( "Invalid user" : "Nieprawidłowy użytkownik", "Unable to change mail address" : "Nie można zmienić adresu email", "Email saved" : "E-mail zapisany", + "%1$s changed your password on %2$s." : "%1$s zmienił/-a twoje hasło dla %2$s.", + "Your password on %s was changed." : "Twoje hasło dla %s zostało zmienione.", + "Your password on %s was reset by an administrator." : "Twoje hasło dla %s zostało zresetowane przez administratora", + "Password changed for %s" : "Hsło zmieniono dla %s", + "If you did not request this, please contact an administrator." : "Jeśli o to nie prosiłeś skontaktuj się proszę z administratorem", + "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", + "%1$s changed your email address on %2$s." : "%1$s zmienił/-a twój adres e-mail w %2$s.", + "Your email address on %s was changed." : "Twój adres e-mail dla %s został zmieniony.", + "Your email address on %s was changed by an administrator." : "Twój adres e-mail dla %s został zmieniony przez administratora.", + "Email address changed for %s" : "E-mail adres dla %s został zmieniony", + "The new email address is %s" : "Nowy adres e-mail to %s", + "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", "Welcome aboard" : "Witamy na pokładzie", "Welcome aboard %s" : "Witamy na pokładzie %s", "You have now an %s account, you can add, protect, and share your data." : "Masz teraz konto na %s, możesz edytować, chronić i współdzielić dane.", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index e5af6fe304d..11183aa0f27 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -1,4 +1,11 @@ { "translations": { + "{actor} changed your password" : "{actor} zmienił twoje hasło", + "You changed your password" : "Zmieniłeś/-aś swoje hasło", + "Your password was reset by an administrator" : "Twoj hasło zostało zresetowane przez administratora", + "{actor} changed your email" : "{actor} zmienił twój adres e-mail", + "You changed your email" : "Zmieniłeś/-aś swój adres e-mail", + "Your email was changed by an administrator" : "Twój adres e-mail został zmieniony przez administratora", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", "Enabled" : "Włączone", "Not enabled" : "Nie włączone", "Wrong password" : "Złe hasło", @@ -37,6 +44,18 @@ "Invalid user" : "Nieprawidłowy użytkownik", "Unable to change mail address" : "Nie można zmienić adresu email", "Email saved" : "E-mail zapisany", + "%1$s changed your password on %2$s." : "%1$s zmienił/-a twoje hasło dla %2$s.", + "Your password on %s was changed." : "Twoje hasło dla %s zostało zmienione.", + "Your password on %s was reset by an administrator." : "Twoje hasło dla %s zostało zresetowane przez administratora", + "Password changed for %s" : "Hsło zmieniono dla %s", + "If you did not request this, please contact an administrator." : "Jeśli o to nie prosiłeś skontaktuj się proszę z administratorem", + "Password for %1$s changed on %2$s" : "Hasło dla %1$s zostało zmienione w %2$s", + "%1$s changed your email address on %2$s." : "%1$s zmienił/-a twój adres e-mail w %2$s.", + "Your email address on %s was changed." : "Twój adres e-mail dla %s został zmieniony.", + "Your email address on %s was changed by an administrator." : "Twój adres e-mail dla %s został zmieniony przez administratora.", + "Email address changed for %s" : "E-mail adres dla %s został zmieniony", + "The new email address is %s" : "Nowy adres e-mail to %s", + "Email address for %1$s changed on %2$s" : "Adres e-mail dla %1$s zmieniono w %2$s", "Welcome aboard" : "Witamy na pokładzie", "Welcome aboard %s" : "Witamy na pokładzie %s", "You have now an %s account, you can add, protect, and share your data." : "Masz teraz konto na %s, możesz edytować, chronić i współdzielić dane.", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 27058479119..bb3433a34c8 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -18,8 +18,8 @@ OC.L10N.register( "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", "Wrong admin recovery password. Please check the password and try again." : "Неправильный пароль восстановления администратора. Проверьте пароль и попробуйте еще раз.", "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Используемый механизм не поддерживает смену паролей, но пользовательский ключ шифрования был успешно обновлён", - "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или Объединение облачных хранилищ", - "Federated Cloud Sharing" : "Объединение облачных хранилищ", + "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", + "Federated Cloud Sharing" : "Федерация облачных хранилищ", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать надежно.", "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", "Migration Completed" : "Миграция завершена", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index cfe51ecc130..4581cb6a6c8 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -16,8 +16,8 @@ "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", "Wrong admin recovery password. Please check the password and try again." : "Неправильный пароль восстановления администратора. Проверьте пароль и попробуйте еще раз.", "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Используемый механизм не поддерживает смену паролей, но пользовательский ключ шифрования был успешно обновлён", - "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или Объединение облачных хранилищ", - "Federated Cloud Sharing" : "Объединение облачных хранилищ", + "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", + "Federated Cloud Sharing" : "Федерация облачных хранилищ", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать надежно.", "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", "Migration Completed" : "Миграция завершена", diff --git a/settings/templates/admin/additional-mail.php b/settings/templates/admin/additional-mail.php index 23723a423c0..7f8706274f9 100644 --- a/settings/templates/admin/additional-mail.php +++ b/settings/templates/admin/additional-mail.php @@ -44,7 +44,7 @@ $mail_smtpmode = [ if ($_['sendmail_is_available']) { $mail_smtpmode[] = ['sendmail', 'Sendmail']; } -if ($_['mail_smtpmode'] == 'qmail') { +if ($_['mail_smtpmode'] === 'qmail') { $mail_smtpmode[] = ['qmail', 'qmail']; } @@ -60,81 +60,81 @@ if ($_['mail_smtpmode'] == 'qmail') { <p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p> <p> - <label for="mail_smtpmode"><?php p($l->t( 'Send mode' )); ?></label> - <select name='mail_smtpmode' id='mail_smtpmode'> + <label for="mail_smtpmode"><?php p($l->t('Send mode')); ?></label> + <select name="mail_smtpmode" id="mail_smtpmode'> <?php foreach ($mail_smtpmode as $smtpmode): $selected = ''; if ($smtpmode[0] == $_['mail_smtpmode']): $selected = 'selected="selected"'; endif; ?> - <option value='<?php p($smtpmode[0])?>' <?php p($selected) ?>><?php p($smtpmode[1]) ?></option> + <option value="<?php p($smtpmode[0])?>" <?php p($selected) ?>><?php p($smtpmode[1]) ?></option> <?php endforeach;?> </select> <label id="mail_smtpsecure_label" for="mail_smtpsecure" - <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <?php p($l->t( 'Encryption' )); ?> + <?php if ($_['mail_smtpmode'] !== 'smtp') print_unescaped(' class="hidden"'); ?>> + <?php p($l->t('Encryption')); ?> </label> <select name="mail_smtpsecure" id="mail_smtpsecure" - <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <?php if ($_['mail_smtpmode'] !== 'smtp') print_unescaped(' class="hidden"'); ?>> <?php foreach ($mail_smtpsecure as $secure => $name): $selected = ''; if ($secure == $_['mail_smtpsecure']): $selected = 'selected="selected"'; endif; ?> - <option value='<?php p($secure)?>' <?php p($selected) ?>><?php p($name) ?></option> + <option value="<?php p($secure)?>" <?php p($selected) ?>><?php p($name) ?></option> <?php endforeach;?> </select> </p> <p> - <label for="mail_from_address"><?php p($l->t( 'From address' )); ?></label> - <input type="text" name='mail_from_address' id="mail_from_address" placeholder="<?php p($l->t('mail'))?>" - value='<?php p($_['mail_from_address']) ?>' />@ - <input type="text" name='mail_domain' id="mail_domain" placeholder="example.com" - value='<?php p($_['mail_domain']) ?>' /> + <label for="mail_from_address"><?php p($l->t('From address')); ?></label> + <input type="text" name="mail_from_address" id="mail_from_address" placeholder="<?php p($l->t('mail'))?>" + value="<?php p($_['mail_from_address']) ?>" />@ + <input type="text" name="mail_domain" id="mail_domain" placeholder="example.com" + value="<?php p($_['mail_domain']) ?>" /> </p> - <p id="setting_smtpauth" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtpauthtype"><?php p($l->t( 'Authentication method' )); ?></label> - <select name='mail_smtpauthtype' id='mail_smtpauthtype'> + <p id="setting_smtpauth" <?php if ($_['mail_smtpmode'] !== 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtpauthtype"><?php p($l->t('Authentication method')); ?></label> + <select name="mail_smtpauthtype" id="mail_smtpauthtype'> <?php foreach ($mail_smtpauthtype as $authtype => $name): $selected = ''; if ($authtype == $_['mail_smtpauthtype']): $selected = 'selected="selected"'; endif; ?> - <option value='<?php p($authtype)?>' <?php p($selected) ?>><?php p($name) ?></option> + <option value="<?php p($authtype)?>" <?php p($selected) ?>><?php p($name) ?></option> <?php endforeach;?> </select> <input type="checkbox" name="mail_smtpauth" id="mail_smtpauth" class="checkbox" value="1" <?php if ($_['mail_smtpauth']) print_unescaped('checked="checked"'); ?> /> - <label for="mail_smtpauth"><?php p($l->t( 'Authentication required' )); ?></label> + <label for="mail_smtpauth"><?php p($l->t('Authentication required')); ?></label> </p> - <p id="setting_smtphost" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtphost"><?php p($l->t( 'Server address' )); ?></label> - <input type="text" name='mail_smtphost' id="mail_smtphost" placeholder="smtp.example.com" - value='<?php p($_['mail_smtphost']) ?>' /> + <p id="setting_smtphost" <?php if ($_['mail_smtpmode'] !== 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtphost"><?php p($l->t('Server address')); ?></label> + <input type="text" name="mail_smtphost" id="mail_smtphost" placeholder="smtp.example.com" + value="<?php p($_['mail_smtphost']) ?>" /> : - <input type="text" name='mail_smtpport' id="mail_smtpport" placeholder="<?php p($l->t('Port'))?>" - value='<?php p($_['mail_smtpport']) ?>' /> + <input type="text" name="mail_smtpport" id="mail_smtpport" placeholder="<?php p($l->t('Port'))?>" + value="<?php p($_['mail_smtpport']) ?>" /> </p> </form> <form class="mail_settings" id="mail_credentials_settings"> - <p id="mail_credentials" <?php if (!$_['mail_smtpauth'] || $_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtpname"><?php p($l->t( 'Credentials' )); ?></label> - <input type="text" name='mail_smtpname' id="mail_smtpname" placeholder="<?php p($l->t('SMTP Username'))?>" - value='<?php p($_['mail_smtpname']) ?>' /> - <input type="password" name='mail_smtppassword' id="mail_smtppassword" autocomplete="off" - placeholder="<?php p($l->t('SMTP Password'))?>" value='<?php p($_['mail_smtppassword']) ?>' /> + <p id="mail_credentials" <?php if (!$_['mail_smtpauth'] || $_['mail_smtpmode'] !== 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtpname"><?php p($l->t('Credentials')); ?></label> + <input type="text" name="mail_smtpname" id="mail_smtpname" placeholder="<?php p($l->t('SMTP Username'))?>" + value="<?php p($_['mail_smtpname']) ?>" /> + <input type="text" name="mail_smtppassword" id="mail_smtppassword" autocomplete="off" + placeholder="<?php p($l->t('SMTP Password'))?>" value="<?php p($_['mail_smtppassword']) ?>" /> <input id="mail_credentials_settings_submit" type="button" value="<?php p($l->t('Store credentials')) ?>"> </p> </form> <br /> - <em><?php p($l->t( 'Test email settings' )); ?></em> - <input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t( 'Send email' )); ?>"/> + <em><?php p($l->t('Test email settings')); ?></em> + <input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t('Send email')); ?>"/> <span id="sendtestmail_msg" class="msg"></span> </div> |