mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-06 07:57:02 +03:00
Improving change password functional
This commit is contained in:
parent
cdbc5904fb
commit
db5835a4c3
34 changed files with 388 additions and 71 deletions
|
|
@ -339,6 +339,12 @@ Enums.Notification = {
|
||||||
'AccountTwoFactorAuthRequired': 120,
|
'AccountTwoFactorAuthRequired': 120,
|
||||||
'AccountTwoFactorAuthError': 121,
|
'AccountTwoFactorAuthError': 121,
|
||||||
|
|
||||||
|
'CouldNotSaveNewPassword': 130,
|
||||||
|
'CurrentPasswordIncorrect': 131,
|
||||||
|
'NewPasswordShort': 132,
|
||||||
|
'NewPasswordWeak': 133,
|
||||||
|
'NewPasswordForbidden': 134,
|
||||||
|
|
||||||
'CantGetMessageList': 201,
|
'CantGetMessageList': 201,
|
||||||
'CantGetMessage': 202,
|
'CantGetMessage': 202,
|
||||||
'CantDeleteMessage': 203,
|
'CantDeleteMessage': 203,
|
||||||
|
|
|
||||||
|
|
@ -571,6 +571,12 @@ Utils.initNotificationLanguage = function ()
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
||||||
|
|
||||||
|
NotificationI18N[Enums.Notification.CouldNotSaveNewPassword] = Utils.i18n('NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD');
|
||||||
|
NotificationI18N[Enums.Notification.CurrentPasswordIncorrect] = Utils.i18n('NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordShort] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_SHORT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordWeak] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_WEAK');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordForbidden] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT');
|
||||||
|
|
||||||
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
||||||
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
||||||
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
||||||
|
|
|
||||||
|
|
@ -7,33 +7,57 @@ function SettingsChangePasswordScreen()
|
||||||
{
|
{
|
||||||
this.changeProcess = ko.observable(false);
|
this.changeProcess = ko.observable(false);
|
||||||
|
|
||||||
|
this.errorDescription = ko.observable('');
|
||||||
|
this.passwordMismatch = ko.observable(false);
|
||||||
this.passwordUpdateError = ko.observable(false);
|
this.passwordUpdateError = ko.observable(false);
|
||||||
this.passwordUpdateSuccess = ko.observable(false);
|
this.passwordUpdateSuccess = ko.observable(false);
|
||||||
|
|
||||||
this.currentPassword = ko.observable('');
|
this.currentPassword = ko.observable('');
|
||||||
|
this.currentPassword.error = ko.observable(false);
|
||||||
this.newPassword = ko.observable('');
|
this.newPassword = ko.observable('');
|
||||||
|
this.newPassword2 = ko.observable('');
|
||||||
|
|
||||||
this.currentPassword.subscribe(function () {
|
this.currentPassword.subscribe(function () {
|
||||||
this.passwordUpdateError(false);
|
this.passwordUpdateError(false);
|
||||||
this.passwordUpdateSuccess(false);
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.newPassword.subscribe(function () {
|
this.newPassword.subscribe(function () {
|
||||||
this.passwordUpdateError(false);
|
this.passwordUpdateError(false);
|
||||||
this.passwordUpdateSuccess(false);
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
}, this);
|
||||||
|
|
||||||
|
this.newPassword2.subscribe(function () {
|
||||||
|
this.passwordUpdateError(false);
|
||||||
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.saveNewPasswordCommand = Utils.createCommand(this, function () {
|
this.saveNewPasswordCommand = Utils.createCommand(this, function () {
|
||||||
|
|
||||||
this.changeProcess(true);
|
if (this.newPassword() !== this.newPassword2())
|
||||||
|
{
|
||||||
this.passwordUpdateError(false);
|
this.passwordMismatch(true);
|
||||||
this.passwordUpdateSuccess(false);
|
this.errorDescription(Utils.i18n('SETTINGS_CHANGE_PASSWORD/ERROR_PASSWORD_MISMATCH'));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.changeProcess(true);
|
||||||
|
|
||||||
RL.remote().changePassword(this.onChangePasswordResponse, this.currentPassword(), this.newPassword());
|
this.passwordUpdateError(false);
|
||||||
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.errorDescription('');
|
||||||
|
|
||||||
|
RL.remote().changePassword(this.onChangePasswordResponse, this.currentPassword(), this.newPassword());
|
||||||
|
}
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
return !this.changeProcess() && '' !== this.currentPassword() && '' !== this.newPassword();
|
return !this.changeProcess() && '' !== this.currentPassword() &&
|
||||||
|
'' !== this.newPassword() && '' !== this.newPassword2();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.onChangePasswordResponse = _.bind(this.onChangePasswordResponse, this);
|
this.onChangePasswordResponse = _.bind(this.onChangePasswordResponse, this);
|
||||||
|
|
@ -46,20 +70,37 @@ SettingsChangePasswordScreen.prototype.onHide = function ()
|
||||||
this.changeProcess(false);
|
this.changeProcess(false);
|
||||||
this.currentPassword('');
|
this.currentPassword('');
|
||||||
this.newPassword('');
|
this.newPassword('');
|
||||||
|
this.newPassword2('');
|
||||||
|
this.errorDescription('');
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sResult, oData)
|
SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sResult, oData)
|
||||||
{
|
{
|
||||||
this.changeProcess(false);
|
this.changeProcess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.errorDescription('');
|
||||||
|
this.currentPassword.error(false);
|
||||||
|
|
||||||
if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
|
if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
|
||||||
{
|
{
|
||||||
this.currentPassword('');
|
this.currentPassword('');
|
||||||
this.newPassword('');
|
this.newPassword('');
|
||||||
|
this.newPassword2('');
|
||||||
|
|
||||||
this.passwordUpdateSuccess(true);
|
this.passwordUpdateSuccess(true);
|
||||||
|
this.currentPassword.error(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (oData && Enums.Notification.CurrentPasswordIncorrect === oData.ErrorCode)
|
||||||
|
{
|
||||||
|
this.currentPassword.error(true);
|
||||||
|
}
|
||||||
|
|
||||||
this.passwordUpdateError(true);
|
this.passwordUpdateError(true);
|
||||||
|
this.errorDescription(oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) :
|
||||||
|
Utils.getNotification(Enums.Notification.CouldNotSaveNewPassword));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,15 @@ html.no-rgba .modal {
|
||||||
z-index: 2001 !important;
|
z-index: 2001 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-horizontal.long-label .control-group {
|
||||||
|
.control-label {
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
.controls {
|
||||||
|
margin-left: 180px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.control-label.remove-padding-top {
|
.control-label.remove-padding-top {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -529,7 +529,7 @@ class Actions
|
||||||
if (null === $this->oChangePasswordProvider)
|
if (null === $this->oChangePasswordProvider)
|
||||||
{
|
{
|
||||||
$this->oChangePasswordProvider = new \RainLoop\Providers\ChangePassword(
|
$this->oChangePasswordProvider = new \RainLoop\Providers\ChangePassword(
|
||||||
$this, $this->fabrica('change-password')
|
$this, $this->fabrica('change-password'), !!$this->Config()->Get('labs', 'check_new_password_strength', false)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3371,25 +3371,27 @@ class Actions
|
||||||
*/
|
*/
|
||||||
public function DoChangePassword()
|
public function DoChangePassword()
|
||||||
{
|
{
|
||||||
$bResult = false;
|
|
||||||
$oAccount = $this->getAccountFromToken();
|
$oAccount = $this->getAccountFromToken();
|
||||||
|
|
||||||
if ($oAccount)
|
if ($oAccount)
|
||||||
{
|
{
|
||||||
$bResult = $this->ChangePasswordProvider()->ChangePassword(
|
try
|
||||||
$oAccount,
|
{
|
||||||
$this->GetActionParam('PrevPassword', ''),
|
$this->ChangePasswordProvider()->ChangePassword(
|
||||||
$this->GetActionParam('NewPassword', '')
|
$oAccount,
|
||||||
);
|
$this->GetActionParam('PrevPassword', ''),
|
||||||
|
$this->GetActionParam('NewPassword', '')
|
||||||
if (!$bResult)
|
);
|
||||||
|
}
|
||||||
|
catch (\Exception $oException)
|
||||||
{
|
{
|
||||||
$this->loginErrorDelay();
|
$this->loginErrorDelay();
|
||||||
$this->Logger()->Write('Error: Can\'t change password for '.$oAccount->Email().' account.', \MailSo\Log\Enumerations\Type::NOTICE);
|
$this->Logger()->Write('Error: Can\'t change password for '.$oAccount->Email().' account.', \MailSo\Log\Enumerations\Type::NOTICE);
|
||||||
|
|
||||||
|
throw $oException;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->DefaultResponse(__FUNCTION__, $bResult);
|
return $this->TrueResponse(__FUNCTION__);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -208,6 +208,7 @@ Enables caching in the system'),
|
||||||
'ignore_folders_subscription' => array(false,
|
'ignore_folders_subscription' => array(false,
|
||||||
'Experimental settings. Handle with care.
|
'Experimental settings. Handle with care.
|
||||||
'),
|
'),
|
||||||
|
'check_new_password_strength' => array(true),
|
||||||
'allow_prefetch' => array(true),
|
'allow_prefetch' => array(true),
|
||||||
'allow_smart_html_links' => array(true),
|
'allow_smart_html_links' => array(true),
|
||||||
'cache_system_data' => array(true),
|
'cache_system_data' => array(true),
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,12 @@ class Notifications
|
||||||
const AccountTwoFactorAuthRequired = 120;
|
const AccountTwoFactorAuthRequired = 120;
|
||||||
const AccountTwoFactorAuthError = 121;
|
const AccountTwoFactorAuthError = 121;
|
||||||
|
|
||||||
|
const CouldNotSaveNewPassword = 130;
|
||||||
|
const CurrentPasswordIncorrect = 131;
|
||||||
|
const NewPasswordShort = 132;
|
||||||
|
const NewPasswordWeak = 133;
|
||||||
|
const NewPasswordForbidden = 134;
|
||||||
|
|
||||||
const CantGetMessageList = 201;
|
const CantGetMessageList = 201;
|
||||||
const CantGetMessage = 202;
|
const CantGetMessage = 202;
|
||||||
const CantDeleteMessage = 203;
|
const CantDeleteMessage = 203;
|
||||||
|
|
@ -81,6 +87,13 @@ class Notifications
|
||||||
self::AccountNotAllowed => 'AccountNotAllowed',
|
self::AccountNotAllowed => 'AccountNotAllowed',
|
||||||
self::AccountTwoFactorAuthRequired => 'AccountTwoFactorAuthRequired',
|
self::AccountTwoFactorAuthRequired => 'AccountTwoFactorAuthRequired',
|
||||||
self::AccountTwoFactorAuthError => 'AccountTwoFactorAuthError',
|
self::AccountTwoFactorAuthError => 'AccountTwoFactorAuthError',
|
||||||
|
|
||||||
|
self::CouldNotSaveNewPassword => 'CouldNotSaveNewPassword',
|
||||||
|
self::CurrentPasswordIncorrect => 'CurrentPasswordIncorrect',
|
||||||
|
self::NewPasswordShort => 'NewPasswordShort',
|
||||||
|
self::NewPasswordWeak => 'NewPasswordWeak',
|
||||||
|
self::NewPasswordForbidden => 'NewPasswordForbidden',
|
||||||
|
|
||||||
self::CantGetMessageList => 'CantGetMessageList',
|
self::CantGetMessageList => 'CantGetMessageList',
|
||||||
self::CantGetMessage => 'CantGetMessage',
|
self::CantGetMessage => 'CantGetMessage',
|
||||||
self::CantDeleteMessage => 'CantDeleteMessage',
|
self::CantDeleteMessage => 'CantDeleteMessage',
|
||||||
|
|
|
||||||
|
|
@ -14,16 +14,23 @@ class ChangePassword extends \RainLoop\Providers\AbstractProvider
|
||||||
*/
|
*/
|
||||||
private $oDriver;
|
private $oDriver;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
private $bCheckWeak;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \RainLoop\Actions $oActions
|
* @param \RainLoop\Actions $oActions
|
||||||
* @param \RainLoop\Providers\ChangePassword\ChangePasswordInterface|null $oDriver = null
|
* @param \RainLoop\Providers\ChangePassword\ChangePasswordInterface|null $oDriver = null
|
||||||
|
* @param bool $bCheckWeak = false
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function __construct($oActions, $oDriver = null)
|
public function __construct($oActions, $oDriver = null, $bCheckWeak = false)
|
||||||
{
|
{
|
||||||
$this->oActions = $oActions;
|
$this->oActions = $oActions;
|
||||||
$this->oDriver = $oDriver;
|
$this->oDriver = $oDriver;
|
||||||
|
$this->bCheckWeak = !!$bCheckWeak;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,24 +50,42 @@ class ChangePassword extends \RainLoop\Providers\AbstractProvider
|
||||||
* @param \RainLoop\Account $oAccount
|
* @param \RainLoop\Account $oAccount
|
||||||
* @param string $sPrevPassword
|
* @param string $sPrevPassword
|
||||||
* @param string $sNewPassword
|
* @param string $sNewPassword
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
*/
|
||||||
public function ChangePassword(\RainLoop\Account $oAccount, $sPrevPassword, $sNewPassword)
|
public function ChangePassword(\RainLoop\Account $oAccount, $sPrevPassword, $sNewPassword)
|
||||||
{
|
{
|
||||||
$bResult = false;
|
|
||||||
if ($this->oDriver instanceof \RainLoop\Providers\ChangePassword\ChangePasswordInterface &&
|
if ($this->oDriver instanceof \RainLoop\Providers\ChangePassword\ChangePasswordInterface &&
|
||||||
$this->PasswordChangePossibility($oAccount) && $sPrevPassword === $oAccount->Password())
|
$this->PasswordChangePossibility($oAccount))
|
||||||
{
|
{
|
||||||
if ($this->oDriver->ChangePassword($oAccount, $sPrevPassword, $sNewPassword))
|
if ($sPrevPassword !== $oAccount->Password())
|
||||||
{
|
{
|
||||||
$oAccount->SetPassword($sNewPassword);
|
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::CurrentPasswordIncorrect);
|
||||||
$this->oActions->SetAuthToken($oAccount);
|
|
||||||
$bResult = true;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $bResult;
|
if (4 > \strlen($sNewPassword))
|
||||||
|
{
|
||||||
|
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::NewPasswordShort);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->bCheckWeak)
|
||||||
|
{
|
||||||
|
if (7 > \strlen($sNewPassword))
|
||||||
|
{
|
||||||
|
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::NewPasswordWeak);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->oDriver->ChangePassword($oAccount, $sPrevPassword, $sNewPassword))
|
||||||
|
{
|
||||||
|
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::CouldNotSaveNewPassword);
|
||||||
|
}
|
||||||
|
|
||||||
|
$oAccount->SetPassword($sNewPassword);
|
||||||
|
$this->oActions->SetAuthToken($oAccount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::CouldNotSaveNewPassword);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -70,4 +95,20 @@ class ChangePassword extends \RainLoop\Providers\AbstractProvider
|
||||||
{
|
{
|
||||||
return $this->oDriver instanceof \RainLoop\Providers\ChangePassword\ChangePasswordInterface;
|
return $this->oDriver instanceof \RainLoop\Providers\ChangePassword\ChangePasswordInterface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $sPassword
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function weaknessCheck($sPassword)
|
||||||
|
{
|
||||||
|
$sPassword = \trim($sPassword);
|
||||||
|
if (4 > \strlen($sPassword))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sLine = ' password 123.456 12345678 abc123 qwerty monkey letmein dragon 111.111 baseball iloveyou trustno1 1234567 sunshine master 123.123 welcome shadow ashley football jesus michael ninja mustang password1 123456 123456789 qwerty 111111 1234567 666666 12345678 7777777 123321 654321 1234567890 123123 555555 vkontakte gfhjkm 159753 777777 temppassword qazwsx 1q2w3e 1234 112233 121212 qwertyuiop qq18ww899 987654321 12345 zxcvbn zxcvbnm 999999 samsung ghbdtn 1q2w3e4r 1111111 123654 159357 131313 qazwsxedc 123qwe 222222 asdfgh 333333 9379992 asdfghjkl 4815162342 12344321 88888888 11111111 knopka 789456 qwertyu 1q2w3e4r5t iloveyou vfhbyf marina password qweasdzxc 10203 987654 yfnfif cjkysirj nikita 888888 vfrcbv k.,jdm qwertyuiop[] qwe123 qweasd natasha 123123123 fylhtq q1w2e3 stalker 1111111111 q1w2e3r4 nastya 147258369 147258 fyfcnfcbz 1234554321 1qaz2wsx andrey 111222 147852 genius sergey 7654321 232323 123789 fktrcfylh spartak admin test 123 azerty abc123 lol123 easytocrack1 hello saravn holysh!t test123 tundra_cool2 456 dragon thomas killer root 1111 pass master aaaaaa a monkey daniel asdasd e10adc3949ba59abbe56e057f20f883e changeme computer jessica letmein mirage loulou lol superman shadow admin123 secret administrator sophie kikugalanetroot doudou liverpool hallo sunshine charlie parola 100827092 michael andrew password1 fuckyou matrix cjmasterinf internet hallo123 eminem demo gewinner pokemon abcd1234 guest ngockhoa martin sandra asdf hejsan george qweqwe lollipop lovers q1q1q1 tecktonik naruto 12 password12 password123 password1234 password12345 password123456 password1234567 password12345678 password123456789 000000 maximius 123abc baseball1 football1 soccer princess slipknot 11111 nokia super star 666999 12341234 1234321 135790 159951 212121 zzzzzz 121314 134679 142536 19921992 753951 7007 1111114 124578 19951995 258456 qwaszx zaqwsx 55555 77777 54321 qwert 22222 33333 99999 88888 66666 ';
|
||||||
|
return false === \strpos($sLine, \strtolower($sPassword));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,45 @@
|
||||||
<div class="b-settings-general g-ui-user-select-none">
|
<div class="b-settings-general g-ui-user-select-none">
|
||||||
<div class="form-horizontal">
|
<div class="form-horizontal long-label">
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LEGEND_CHANGE_PASSWORD"></span>
|
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LEGEND_CHANGE_PASSWORD"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="row">
|
||||||
<label class="control-label">
|
<div class="span6">
|
||||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_CURRENT_PASSWORD"></span>
|
<div class="control-group" data-bind="css: {'error': currentPassword.error}">
|
||||||
</label>
|
<label class="control-label">
|
||||||
<div class="controls">
|
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_CURRENT_PASSWORD"></span>
|
||||||
<input type="password" data-bind="value: currentPassword, valueUpdate: 'afterkeydown'" />
|
</label>
|
||||||
</div>
|
<div class="controls">
|
||||||
</div>
|
<input type="password" data-bind="value: currentPassword, valueUpdate: 'afterkeydown'" />
|
||||||
<div class="control-group">
|
</div>
|
||||||
<label class="control-label">
|
</div>
|
||||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_NEW_PASSWORD"></span>
|
<div class="control-group" data-bind="css: {'error': passwordMismatch}">
|
||||||
</label>
|
<label class="control-label">
|
||||||
<div class="controls">
|
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_NEW_PASSWORD"></span>
|
||||||
<input type="password" data-bind="value: newPassword, valueUpdate: 'afterkeydown'" />
|
</label>
|
||||||
</div>
|
<div class="controls">
|
||||||
</div>
|
<input type="password" data-bind="value: newPassword, valueUpdate: 'afterkeydown'" />
|
||||||
<div class="control-group">
|
</div>
|
||||||
<div class="controls">
|
</div>
|
||||||
<a class="btn" data-bind="command: saveNewPasswordCommand, css: { 'btn-success': passwordUpdateSuccess, 'btn-danger': passwordUpdateError }">
|
<div class="control-group" data-bind="css: {'error': passwordMismatch}">
|
||||||
<i data-bind="css: {'icon-spinner animated': changeProcess(), 'icon-key': !changeProcess(), 'icon-white': passwordUpdateSuccess() || passwordUpdateError() }"></i>
|
<label class="control-label">
|
||||||
|
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LABEL_REPEAT_PASSWORD"></span>
|
||||||
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/BUTTON_UPDATE_PASSWORD"></span>
|
</label>
|
||||||
</a>
|
<div class="controls">
|
||||||
|
<input type="password" data-bind="value: newPassword2, valueUpdate: 'afterkeydown'" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<a class="btn" data-bind="command: saveNewPasswordCommand, css: { 'btn-success': passwordUpdateSuccess, 'btn-danger': passwordUpdateError }">
|
||||||
|
<i data-bind="css: {'icon-spinner animated': changeProcess(), 'icon-key': !changeProcess(), 'icon-white': passwordUpdateSuccess() || passwordUpdateError() }"></i>
|
||||||
|
|
||||||
|
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/BUTTON_UPDATE_PASSWORD"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="span4 alert alert-error alert-null-left-margin" data-bind="visible: '' !== errorDescription(), text: errorDescription"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Aktuelles Passwort"
|
||||||
LABEL_NEW_PASSWORD = "Neues Passwordt"
|
LABEL_NEW_PASSWORD = "Neues Passwordt"
|
||||||
LABEL_REPEAT_PASSWORD = "Neues Passwort erneut eingeben"
|
LABEL_REPEAT_PASSWORD = "Neues Passwort erneut eingeben"
|
||||||
BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen"
|
BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Diese Domain ist nicht zugelassen."
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Die Nachrichten-Liste ist nicht verfügbar"
|
CANT_GET_MESSAGE_LIST = "Die Nachrichten-Liste ist nicht verfügbar"
|
||||||
CANT_GET_MESSAGE = "Diese Nachricht ist nicht verfügbar"
|
CANT_GET_MESSAGE = "Diese Nachricht ist nicht verfügbar"
|
||||||
CANT_DELETE_MESSAGE = "Diese Nachricht kann nicht gelöscht werden"
|
CANT_DELETE_MESSAGE = "Diese Nachricht kann nicht gelöscht werden"
|
||||||
|
|
|
||||||
|
|
@ -457,8 +457,9 @@ DELETING_ASK = "Are you sure?"
|
||||||
LEGEND_CHANGE_PASSWORD = "Change Password"
|
LEGEND_CHANGE_PASSWORD = "Change Password"
|
||||||
LABEL_CURRENT_PASSWORD = "Current password"
|
LABEL_CURRENT_PASSWORD = "Current password"
|
||||||
LABEL_NEW_PASSWORD = "New password"
|
LABEL_NEW_PASSWORD = "New password"
|
||||||
LABEL_REPEAT_PASSWORD = "New password again"
|
LABEL_REPEAT_PASSWORD = "Confirm New Password"
|
||||||
BUTTON_UPDATE_PASSWORD = "Set New Password"
|
BUTTON_UPDATE_PASSWORD = "Set New Password"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -533,6 +534,11 @@ DOMAIN_NOT_ALLOWED = "Domain is not allowed"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
||||||
CANT_GET_MESSAGE = "Can't get message"
|
CANT_GET_MESSAGE = "Can't get message"
|
||||||
CANT_DELETE_MESSAGE = "Can't delete message"
|
CANT_DELETE_MESSAGE = "Can't delete message"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Contraseña actual"
|
||||||
LABEL_NEW_PASSWORD = "Nueva contraseña"
|
LABEL_NEW_PASSWORD = "Nueva contraseña"
|
||||||
LABEL_REPEAT_PASSWORD = "Otra vez su Nueva contraseña"
|
LABEL_REPEAT_PASSWORD = "Otra vez su Nueva contraseña"
|
||||||
BUTTON_UPDATE_PASSWORD = "Establecer nueva contraseña"
|
BUTTON_UPDATE_PASSWORD = "Establecer nueva contraseña"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Dominio no permitido"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "No se puede obtener la lista de mensajes"
|
CANT_GET_MESSAGE_LIST = "No se puede obtener la lista de mensajes"
|
||||||
CANT_GET_MESSAGE = "No se puede obtener el mensaje"
|
CANT_GET_MESSAGE = "No se puede obtener el mensaje"
|
||||||
CANT_DELETE_MESSAGE = "No se puede eliminar el mensaje"
|
CANT_DELETE_MESSAGE = "No se puede eliminar el mensaje"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Mot de passe actuel"
|
||||||
LABEL_NEW_PASSWORD = "Nouveau mot de passe"
|
LABEL_NEW_PASSWORD = "Nouveau mot de passe"
|
||||||
LABEL_REPEAT_PASSWORD = "Confirmation du nouveau mot de passe"
|
LABEL_REPEAT_PASSWORD = "Confirmation du nouveau mot de passe"
|
||||||
BUTTON_UPDATE_PASSWORD = "Enregistrer le nouveau mot de passe"
|
BUTTON_UPDATE_PASSWORD = "Enregistrer le nouveau mot de passe"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Ce domaine n'est pas autorisé"
|
||||||
ACCOUNT_NOT_ALLOWED = "Ce compte n'est pas autorisé"
|
ACCOUNT_NOT_ALLOWED = "Ce compte n'est pas autorisé"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Impossible d'obtenir la liste des messages"
|
CANT_GET_MESSAGE_LIST = "Impossible d'obtenir la liste des messages"
|
||||||
CANT_GET_MESSAGE = "Impossible d'obtenir le message"
|
CANT_GET_MESSAGE = "Impossible d'obtenir le message"
|
||||||
CANT_DELETE_MESSAGE = "Impossible de supprimer le message"
|
CANT_DELETE_MESSAGE = "Impossible de supprimer le message"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Current password"
|
||||||
LABEL_NEW_PASSWORD = "New password"
|
LABEL_NEW_PASSWORD = "New password"
|
||||||
LABEL_REPEAT_PASSWORD = "New password again"
|
LABEL_REPEAT_PASSWORD = "New password again"
|
||||||
BUTTON_UPDATE_PASSWORD = "Set New Password"
|
BUTTON_UPDATE_PASSWORD = "Set New Password"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Domain is not allowed"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
||||||
CANT_GET_MESSAGE = "Can't get message"
|
CANT_GET_MESSAGE = "Can't get message"
|
||||||
CANT_DELETE_MESSAGE = "Can't delete message"
|
CANT_DELETE_MESSAGE = "Can't delete message"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Núverandi lykilorð"
|
||||||
LABEL_NEW_PASSWORD = "Nýtt lykilorð"
|
LABEL_NEW_PASSWORD = "Nýtt lykilorð"
|
||||||
LABEL_REPEAT_PASSWORD = "Nýtt lykilorð aftur"
|
LABEL_REPEAT_PASSWORD = "Nýtt lykilorð aftur"
|
||||||
BUTTON_UPDATE_PASSWORD = "Setja nýtt lykilorð"
|
BUTTON_UPDATE_PASSWORD = "Setja nýtt lykilorð"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Lén ekki leyft"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Get ekki sótt bréfa lista"
|
CANT_GET_MESSAGE_LIST = "Get ekki sótt bréfa lista"
|
||||||
CANT_GET_MESSAGE = "Get ekki sótt bréf"
|
CANT_GET_MESSAGE = "Get ekki sótt bréf"
|
||||||
CANT_DELETE_MESSAGE = "Get ekki eytt bréfi"
|
CANT_DELETE_MESSAGE = "Get ekki eytt bréfi"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Password attuale"
|
||||||
LABEL_NEW_PASSWORD = "Nuova password"
|
LABEL_NEW_PASSWORD = "Nuova password"
|
||||||
LABEL_REPEAT_PASSWORD = "Ripeti nuova password"
|
LABEL_REPEAT_PASSWORD = "Ripeti nuova password"
|
||||||
BUTTON_UPDATE_PASSWORD = "Cambia password"
|
BUTTON_UPDATE_PASSWORD = "Cambia password"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Il dominio non è autorizzato"
|
||||||
ACCOUNT_NOT_ALLOWED = "L'account non è autorizzato"
|
ACCOUNT_NOT_ALLOWED = "L'account non è autorizzato"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Impossibile ottenere la lista dei messaggi"
|
CANT_GET_MESSAGE_LIST = "Impossibile ottenere la lista dei messaggi"
|
||||||
CANT_GET_MESSAGE = "Impossibile ottenere il messaggio"
|
CANT_GET_MESSAGE = "Impossibile ottenere il messaggio"
|
||||||
CANT_DELETE_MESSAGE = "Impossibile cancellare il messaggio"
|
CANT_DELETE_MESSAGE = "Impossibile cancellare il messaggio"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "現在のパスワード"
|
||||||
LABEL_NEW_PASSWORD = "新しいパスワード"
|
LABEL_NEW_PASSWORD = "新しいパスワード"
|
||||||
LABEL_REPEAT_PASSWORD = "新しいパスワードの確認"
|
LABEL_REPEAT_PASSWORD = "新しいパスワードの確認"
|
||||||
BUTTON_UPDATE_PASSWORD = "パスワードを変更"
|
BUTTON_UPDATE_PASSWORD = "パスワードを変更"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Domain is not allowed"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
||||||
CANT_GET_MESSAGE = "Can't get message"
|
CANT_GET_MESSAGE = "Can't get message"
|
||||||
CANT_DELETE_MESSAGE = "Can't delete message"
|
CANT_DELETE_MESSAGE = "Can't delete message"
|
||||||
|
|
|
||||||
|
|
@ -454,6 +454,7 @@ LABEL_CURRENT_PASSWORD = "현재 비밀번호"
|
||||||
LABEL_NEW_PASSWORD = "새 비밀번호"
|
LABEL_NEW_PASSWORD = "새 비밀번호"
|
||||||
LABEL_REPEAT_PASSWORD = "비밀번호 재입력"
|
LABEL_REPEAT_PASSWORD = "비밀번호 재입력"
|
||||||
BUTTON_UPDATE_PASSWORD = "비밀번호 변경"
|
BUTTON_UPDATE_PASSWORD = "비밀번호 변경"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -528,6 +529,11 @@ DOMAIN_NOT_ALLOWED = "허용된 도메인이 아닙니다."
|
||||||
ACCOUNT_NOT_ALLOWED = "허용된 계정이 아닙니다."
|
ACCOUNT_NOT_ALLOWED = "허용된 계정이 아닙니다."
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "메시지 목록을 불러 올 수 없습니다."
|
CANT_GET_MESSAGE_LIST = "메시지 목록을 불러 올 수 없습니다."
|
||||||
CANT_GET_MESSAGE = "메시지를 가져올 수 없습니다."
|
CANT_GET_MESSAGE = "메시지를 가져올 수 없습니다."
|
||||||
CANT_DELETE_MESSAGE = "메시지를 삭제할 수 없습니다."
|
CANT_DELETE_MESSAGE = "메시지를 삭제할 수 없습니다."
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Tagadējā parole"
|
||||||
LABEL_NEW_PASSWORD = "Jaunā parole"
|
LABEL_NEW_PASSWORD = "Jaunā parole"
|
||||||
LABEL_REPEAT_PASSWORD = "Jaunā parole vēlreiz"
|
LABEL_REPEAT_PASSWORD = "Jaunā parole vēlreiz"
|
||||||
BUTTON_UPDATE_PASSWORD = "Saglabāt paroli"
|
BUTTON_UPDATE_PASSWORD = "Saglabāt paroli"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Šis domēns nav atļauts"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Nevar ielādēt ziņojumu sarakstu"
|
CANT_GET_MESSAGE_LIST = "Nevar ielādēt ziņojumu sarakstu"
|
||||||
CANT_GET_MESSAGE = "Nevar ielādēt ziņojumu"
|
CANT_GET_MESSAGE = "Nevar ielādēt ziņojumu"
|
||||||
CANT_DELETE_MESSAGE = "Nevar izdzēst ziņojumu"
|
CANT_DELETE_MESSAGE = "Nevar izdzēst ziņojumu"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Huidig paswoord"
|
||||||
LABEL_NEW_PASSWORD = "Nieuw paswoord"
|
LABEL_NEW_PASSWORD = "Nieuw paswoord"
|
||||||
LABEL_REPEAT_PASSWORD = "Nieuw paswoord opnieuw"
|
LABEL_REPEAT_PASSWORD = "Nieuw paswoord opnieuw"
|
||||||
BUTTON_UPDATE_PASSWORD = "Instellen nieuw paswoord"
|
BUTTON_UPDATE_PASSWORD = "Instellen nieuw paswoord"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "domein is niet toegestaan"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is niet toegestaan"
|
ACCOUNT_NOT_ALLOWED = "Account is niet toegestaan"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
CANT_GET_MESSAGE_LIST = "Can't get message list"
|
||||||
CANT_GET_MESSAGE = "Can't get message"
|
CANT_GET_MESSAGE = "Can't get message"
|
||||||
CANT_DELETE_MESSAGE = "Kan bericht niet verwijderen"
|
CANT_DELETE_MESSAGE = "Kan bericht niet verwijderen"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Gjeldende passord"
|
||||||
LABEL_NEW_PASSWORD = "Nytt passord"
|
LABEL_NEW_PASSWORD = "Nytt passord"
|
||||||
LABEL_REPEAT_PASSWORD = "Nytt passord på nytt"
|
LABEL_REPEAT_PASSWORD = "Nytt passord på nytt"
|
||||||
BUTTON_UPDATE_PASSWORD = "Sett nytt passord"
|
BUTTON_UPDATE_PASSWORD = "Sett nytt passord"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Domene er ikke tillatt"
|
||||||
ACCOUNT_NOT_ALLOWED = "Kontoen er ikke tillatt"
|
ACCOUNT_NOT_ALLOWED = "Kontoen er ikke tillatt"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Kan ikke få meldingsliste"
|
CANT_GET_MESSAGE_LIST = "Kan ikke få meldingsliste"
|
||||||
CANT_GET_MESSAGE = "Kan ikke få meldingen"
|
CANT_GET_MESSAGE = "Kan ikke få meldingen"
|
||||||
CANT_DELETE_MESSAGE = "Kan ikke slette meldingen"
|
CANT_DELETE_MESSAGE = "Kan ikke slette meldingen"
|
||||||
|
|
|
||||||
|
|
@ -456,6 +456,7 @@ LABEL_CURRENT_PASSWORD = "Aktualne hasło"
|
||||||
LABEL_NEW_PASSWORD = "Nowe hasło"
|
LABEL_NEW_PASSWORD = "Nowe hasło"
|
||||||
LABEL_REPEAT_PASSWORD = "Powtórz nowe hasło"
|
LABEL_REPEAT_PASSWORD = "Powtórz nowe hasło"
|
||||||
BUTTON_UPDATE_PASSWORD = "Zmień hasło na nowe"
|
BUTTON_UPDATE_PASSWORD = "Zmień hasło na nowe"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -530,6 +531,11 @@ DOMAIN_NOT_ALLOWED = "Domena nie dozwolona"
|
||||||
ACCOUNT_NOT_ALLOWED = "Konto nie jest dozwolone"
|
ACCOUNT_NOT_ALLOWED = "Konto nie jest dozwolone"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Nie jest możliwe pobranie listy wiadomości"
|
CANT_GET_MESSAGE_LIST = "Nie jest możliwe pobranie listy wiadomości"
|
||||||
CANT_GET_MESSAGE = "Nie można pobrać wiadomości"
|
CANT_GET_MESSAGE = "Nie można pobrać wiadomości"
|
||||||
CANT_DELETE_MESSAGE = "Nie można usunąć wiadomości"
|
CANT_DELETE_MESSAGE = "Nie można usunąć wiadomości"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Senha atual"
|
||||||
LABEL_NEW_PASSWORD = "Nova senha"
|
LABEL_NEW_PASSWORD = "Nova senha"
|
||||||
LABEL_REPEAT_PASSWORD = "Repita a nova senha"
|
LABEL_REPEAT_PASSWORD = "Repita a nova senha"
|
||||||
BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
|
BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -530,6 +531,11 @@ DOMAIN_NOT_ALLOWED = "Este domínio não é permitido"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Não é possível obter a lista de mensagens"
|
CANT_GET_MESSAGE_LIST = "Não é possível obter a lista de mensagens"
|
||||||
CANT_GET_MESSAGE = "Não é possível obter a mensagem"
|
CANT_GET_MESSAGE = "Não é possível obter a mensagem"
|
||||||
CANT_DELETE_MESSAGE = "Não é possível excluir a mensagem"
|
CANT_DELETE_MESSAGE = "Não é possível excluir a mensagem"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Senha atual"
|
||||||
LABEL_NEW_PASSWORD = "Nova senha"
|
LABEL_NEW_PASSWORD = "Nova senha"
|
||||||
LABEL_REPEAT_PASSWORD = "Repita a nova senha"
|
LABEL_REPEAT_PASSWORD = "Repita a nova senha"
|
||||||
BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
|
BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Este domínio não é permitido"
|
||||||
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
ACCOUNT_NOT_ALLOWED = "Account is not allowed"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Não é possível obter a lista de mensagens"
|
CANT_GET_MESSAGE_LIST = "Não é possível obter a lista de mensagens"
|
||||||
CANT_GET_MESSAGE = "Não é possível obter a mensagem"
|
CANT_GET_MESSAGE = "Não é possível obter a mensagem"
|
||||||
CANT_DELETE_MESSAGE = "Não é possível excluir a mensagem"
|
CANT_DELETE_MESSAGE = "Não é possível excluir a mensagem"
|
||||||
|
|
|
||||||
|
|
@ -456,6 +456,7 @@ LABEL_CURRENT_PASSWORD = "Parola curentă"
|
||||||
LABEL_NEW_PASSWORD = "Noua parolă"
|
LABEL_NEW_PASSWORD = "Noua parolă"
|
||||||
LABEL_REPEAT_PASSWORD = "Confirmați parola"
|
LABEL_REPEAT_PASSWORD = "Confirmați parola"
|
||||||
BUTTON_UPDATE_PASSWORD = "Salvați noua parolă"
|
BUTTON_UPDATE_PASSWORD = "Salvați noua parolă"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -530,6 +531,11 @@ DOMAIN_NOT_ALLOWED = "Domeniul nu apartine de Wey5"
|
||||||
ACCOUNT_NOT_ALLOWED = "Contul nu are permisiunea de conectare"
|
ACCOUNT_NOT_ALLOWED = "Contul nu are permisiunea de conectare"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Nu găsesc o lista de scrisori"
|
CANT_GET_MESSAGE_LIST = "Nu găsesc o lista de scrisori"
|
||||||
CANT_GET_MESSAGE = "Nu pot obține scrisoarea. Încercați din nou"
|
CANT_GET_MESSAGE = "Nu pot obține scrisoarea. Încercați din nou"
|
||||||
CANT_DELETE_MESSAGE = "Nu pot șterge scrisoarea. Încercați din nou"
|
CANT_DELETE_MESSAGE = "Nu pot șterge scrisoarea. Încercați din nou"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Текущий пароль"
|
||||||
LABEL_NEW_PASSWORD = "Новый пароль"
|
LABEL_NEW_PASSWORD = "Новый пароль"
|
||||||
LABEL_REPEAT_PASSWORD = "Повторить"
|
LABEL_REPEAT_PASSWORD = "Повторить"
|
||||||
BUTTON_UPDATE_PASSWORD = "Установить Новый Пароль"
|
BUTTON_UPDATE_PASSWORD = "Установить Новый Пароль"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Пароли не совпадают, попробуйте еще раз"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -532,6 +533,11 @@ DOMAIN_NOT_ALLOWED = "Данный домен не разрешен"
|
||||||
ACCOUNT_NOT_ALLOWED = "Данный аккаунт не разрешен"
|
ACCOUNT_NOT_ALLOWED = "Данный аккаунт не разрешен"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Необходима двухфакторная верификация"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Необходима двухфакторная верификация"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Ошибка двухфакторной верификации"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Ошибка двухфакторной верификации"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Не удалось сохранить новый пароль"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Текущий пароль неверный"
|
||||||
|
NEW_PASSWORD_SHORT = "Пароль слишком короткий"
|
||||||
|
NEW_PASSWORD_WEAK = "Пароль слишком простой"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Пароль содержит запрещенные символы"
|
||||||
CANT_GET_MESSAGE_LIST = "Не могу получить список писем"
|
CANT_GET_MESSAGE_LIST = "Не могу получить список писем"
|
||||||
CANT_GET_MESSAGE = "Не могу получить письмо"
|
CANT_GET_MESSAGE = "Не могу получить письмо"
|
||||||
CANT_DELETE_MESSAGE = "Не могу удалить письмо"
|
CANT_DELETE_MESSAGE = "Не могу удалить письмо"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "Súčasné heslo"
|
||||||
LABEL_NEW_PASSWORD = "Nové heslo"
|
LABEL_NEW_PASSWORD = "Nové heslo"
|
||||||
LABEL_REPEAT_PASSWORD = "Nové heslo znova"
|
LABEL_REPEAT_PASSWORD = "Nové heslo znova"
|
||||||
BUTTON_UPDATE_PASSWORD = "Nastaviť nové heslo"
|
BUTTON_UPDATE_PASSWORD = "Nastaviť nové heslo"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "Doména nie je povolená"
|
||||||
ACCOUNT_NOT_ALLOWED = "Účet nie je povolený"
|
ACCOUNT_NOT_ALLOWED = "Účet nie je povolený"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "Chyba pri vytváraní zoznamu správ."
|
CANT_GET_MESSAGE_LIST = "Chyba pri vytváraní zoznamu správ."
|
||||||
CANT_GET_MESSAGE = "Správu sa nepodarilo načítať"
|
CANT_GET_MESSAGE = "Správu sa nepodarilo načítať"
|
||||||
CANT_DELETE_MESSAGE = "Správu sa nepodarilo odstrániť"
|
CANT_DELETE_MESSAGE = "Správu sa nepodarilo odstrániť"
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ LABEL_CURRENT_PASSWORD = "当前密码"
|
||||||
LABEL_NEW_PASSWORD = "新密码"
|
LABEL_NEW_PASSWORD = "新密码"
|
||||||
LABEL_REPEAT_PASSWORD = "再次新密码"
|
LABEL_REPEAT_PASSWORD = "再次新密码"
|
||||||
BUTTON_UPDATE_PASSWORD = "设置新密码"
|
BUTTON_UPDATE_PASSWORD = "设置新密码"
|
||||||
|
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again"
|
||||||
|
|
||||||
[SETTINGS_OPEN_PGP]
|
[SETTINGS_OPEN_PGP]
|
||||||
LEGEND_OPEN_PGP = "OpenPGP"
|
LEGEND_OPEN_PGP = "OpenPGP"
|
||||||
|
|
@ -531,6 +532,11 @@ DOMAIN_NOT_ALLOWED = "域不允许"
|
||||||
ACCOUNT_NOT_ALLOWED = "账户不允许"
|
ACCOUNT_NOT_ALLOWED = "账户不允许"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required"
|
||||||
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error"
|
||||||
|
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password"
|
||||||
|
CURRENT_PASSWORD_INCORRECT = "Current password incorrect"
|
||||||
|
NEW_PASSWORD_SHORT = "Password is too short"
|
||||||
|
NEW_PASSWORD_WEAK = "Password is too easy"
|
||||||
|
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters"
|
||||||
CANT_GET_MESSAGE_LIST = "无法获取邮件列表"
|
CANT_GET_MESSAGE_LIST = "无法获取邮件列表"
|
||||||
CANT_GET_MESSAGE = "无法获取邮件"
|
CANT_GET_MESSAGE = "无法获取邮件"
|
||||||
CANT_DELETE_MESSAGE = "无法删除邮件"
|
CANT_DELETE_MESSAGE = "无法删除邮件"
|
||||||
|
|
|
||||||
|
|
@ -6460,6 +6460,12 @@ html.no-rgba .modal {
|
||||||
.picker.picker-dialog {
|
.picker.picker-dialog {
|
||||||
z-index: 2001 !important;
|
z-index: 2001 !important;
|
||||||
}
|
}
|
||||||
|
.form-horizontal.long-label .control-group .control-label {
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
.form-horizontal.long-label .control-group .controls {
|
||||||
|
margin-left: 180px;
|
||||||
|
}
|
||||||
.control-label.remove-padding-top {
|
.control-label.remove-padding-top {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
2
rainloop/v/0.0.0/static/css/app.min.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -689,6 +689,12 @@ Enums.Notification = {
|
||||||
'AccountTwoFactorAuthRequired': 120,
|
'AccountTwoFactorAuthRequired': 120,
|
||||||
'AccountTwoFactorAuthError': 121,
|
'AccountTwoFactorAuthError': 121,
|
||||||
|
|
||||||
|
'CouldNotSaveNewPassword': 130,
|
||||||
|
'CurrentPasswordIncorrect': 131,
|
||||||
|
'NewPasswordShort': 132,
|
||||||
|
'NewPasswordWeak': 133,
|
||||||
|
'NewPasswordForbidden': 134,
|
||||||
|
|
||||||
'CantGetMessageList': 201,
|
'CantGetMessageList': 201,
|
||||||
'CantGetMessage': 202,
|
'CantGetMessage': 202,
|
||||||
'CantDeleteMessage': 203,
|
'CantDeleteMessage': 203,
|
||||||
|
|
@ -1301,6 +1307,12 @@ Utils.initNotificationLanguage = function ()
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
||||||
|
|
||||||
|
NotificationI18N[Enums.Notification.CouldNotSaveNewPassword] = Utils.i18n('NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD');
|
||||||
|
NotificationI18N[Enums.Notification.CurrentPasswordIncorrect] = Utils.i18n('NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordShort] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_SHORT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordWeak] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_WEAK');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordForbidden] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT');
|
||||||
|
|
||||||
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
||||||
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
||||||
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
||||||
|
|
|
||||||
2
rainloop/v/0.0.0/static/js/admin.min.js
vendored
2
rainloop/v/0.0.0/static/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -693,6 +693,12 @@ Enums.Notification = {
|
||||||
'AccountTwoFactorAuthRequired': 120,
|
'AccountTwoFactorAuthRequired': 120,
|
||||||
'AccountTwoFactorAuthError': 121,
|
'AccountTwoFactorAuthError': 121,
|
||||||
|
|
||||||
|
'CouldNotSaveNewPassword': 130,
|
||||||
|
'CurrentPasswordIncorrect': 131,
|
||||||
|
'NewPasswordShort': 132,
|
||||||
|
'NewPasswordWeak': 133,
|
||||||
|
'NewPasswordForbidden': 134,
|
||||||
|
|
||||||
'CantGetMessageList': 201,
|
'CantGetMessageList': 201,
|
||||||
'CantGetMessage': 202,
|
'CantGetMessage': 202,
|
||||||
'CantDeleteMessage': 203,
|
'CantDeleteMessage': 203,
|
||||||
|
|
@ -1305,6 +1311,12 @@ Utils.initNotificationLanguage = function ()
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthRequired] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED');
|
||||||
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
NotificationI18N[Enums.Notification.AccountTwoFactorAuthError] = Utils.i18n('NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR');
|
||||||
|
|
||||||
|
NotificationI18N[Enums.Notification.CouldNotSaveNewPassword] = Utils.i18n('NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD');
|
||||||
|
NotificationI18N[Enums.Notification.CurrentPasswordIncorrect] = Utils.i18n('NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordShort] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_SHORT');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordWeak] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_WEAK');
|
||||||
|
NotificationI18N[Enums.Notification.NewPasswordForbidden] = Utils.i18n('NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT');
|
||||||
|
|
||||||
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
NotificationI18N[Enums.Notification.CantGetMessageList] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST');
|
||||||
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
NotificationI18N[Enums.Notification.CantGetMessage] = Utils.i18n('NOTIFICATIONS/CANT_GET_MESSAGE');
|
||||||
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
NotificationI18N[Enums.Notification.CantDeleteMessage] = Utils.i18n('NOTIFICATIONS/CANT_DELETE_MESSAGE');
|
||||||
|
|
@ -14404,33 +14416,57 @@ function SettingsChangePasswordScreen()
|
||||||
{
|
{
|
||||||
this.changeProcess = ko.observable(false);
|
this.changeProcess = ko.observable(false);
|
||||||
|
|
||||||
|
this.errorDescription = ko.observable('');
|
||||||
|
this.passwordMismatch = ko.observable(false);
|
||||||
this.passwordUpdateError = ko.observable(false);
|
this.passwordUpdateError = ko.observable(false);
|
||||||
this.passwordUpdateSuccess = ko.observable(false);
|
this.passwordUpdateSuccess = ko.observable(false);
|
||||||
|
|
||||||
this.currentPassword = ko.observable('');
|
this.currentPassword = ko.observable('');
|
||||||
|
this.currentPassword.error = ko.observable(false);
|
||||||
this.newPassword = ko.observable('');
|
this.newPassword = ko.observable('');
|
||||||
|
this.newPassword2 = ko.observable('');
|
||||||
|
|
||||||
this.currentPassword.subscribe(function () {
|
this.currentPassword.subscribe(function () {
|
||||||
this.passwordUpdateError(false);
|
this.passwordUpdateError(false);
|
||||||
this.passwordUpdateSuccess(false);
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.newPassword.subscribe(function () {
|
this.newPassword.subscribe(function () {
|
||||||
this.passwordUpdateError(false);
|
this.passwordUpdateError(false);
|
||||||
this.passwordUpdateSuccess(false);
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
}, this);
|
||||||
|
|
||||||
|
this.newPassword2.subscribe(function () {
|
||||||
|
this.passwordUpdateError(false);
|
||||||
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.saveNewPasswordCommand = Utils.createCommand(this, function () {
|
this.saveNewPasswordCommand = Utils.createCommand(this, function () {
|
||||||
|
|
||||||
this.changeProcess(true);
|
if (this.newPassword() !== this.newPassword2())
|
||||||
|
{
|
||||||
this.passwordUpdateError(false);
|
this.passwordMismatch(true);
|
||||||
this.passwordUpdateSuccess(false);
|
this.errorDescription(Utils.i18n('SETTINGS_CHANGE_PASSWORD/ERROR_PASSWORD_MISMATCH'));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.changeProcess(true);
|
||||||
|
|
||||||
RL.remote().changePassword(this.onChangePasswordResponse, this.currentPassword(), this.newPassword());
|
this.passwordUpdateError(false);
|
||||||
|
this.passwordUpdateSuccess(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.errorDescription('');
|
||||||
|
|
||||||
|
RL.remote().changePassword(this.onChangePasswordResponse, this.currentPassword(), this.newPassword());
|
||||||
|
}
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
return !this.changeProcess() && '' !== this.currentPassword() && '' !== this.newPassword();
|
return !this.changeProcess() && '' !== this.currentPassword() &&
|
||||||
|
'' !== this.newPassword() && '' !== this.newPassword2();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.onChangePasswordResponse = _.bind(this.onChangePasswordResponse, this);
|
this.onChangePasswordResponse = _.bind(this.onChangePasswordResponse, this);
|
||||||
|
|
@ -14443,21 +14479,38 @@ SettingsChangePasswordScreen.prototype.onHide = function ()
|
||||||
this.changeProcess(false);
|
this.changeProcess(false);
|
||||||
this.currentPassword('');
|
this.currentPassword('');
|
||||||
this.newPassword('');
|
this.newPassword('');
|
||||||
|
this.newPassword2('');
|
||||||
|
this.errorDescription('');
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.currentPassword.error(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sResult, oData)
|
SettingsChangePasswordScreen.prototype.onChangePasswordResponse = function (sResult, oData)
|
||||||
{
|
{
|
||||||
this.changeProcess(false);
|
this.changeProcess(false);
|
||||||
|
this.passwordMismatch(false);
|
||||||
|
this.errorDescription('');
|
||||||
|
this.currentPassword.error(false);
|
||||||
|
|
||||||
if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
|
if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
|
||||||
{
|
{
|
||||||
this.currentPassword('');
|
this.currentPassword('');
|
||||||
this.newPassword('');
|
this.newPassword('');
|
||||||
|
this.newPassword2('');
|
||||||
|
|
||||||
this.passwordUpdateSuccess(true);
|
this.passwordUpdateSuccess(true);
|
||||||
|
this.currentPassword.error(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (oData && Enums.Notification.CurrentPasswordIncorrect === oData.ErrorCode)
|
||||||
|
{
|
||||||
|
this.currentPassword.error(true);
|
||||||
|
}
|
||||||
|
|
||||||
this.passwordUpdateError(true);
|
this.passwordUpdateError(true);
|
||||||
|
this.errorDescription(oData && oData.ErrorCode ? Utils.getNotification(oData.ErrorCode) :
|
||||||
|
Utils.getNotification(Enums.Notification.CouldNotSaveNewPassword));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
16
rainloop/v/0.0.0/static/js/app.min.js
vendored
16
rainloop/v/0.0.0/static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue