This commit is contained in:
the-djmaze 2024-06-10 12:28:58 +02:00
parent a3fb5a30ee
commit 13c76d395e
43 changed files with 103 additions and 43 deletions

View file

@ -26,9 +26,9 @@ export class UserSettingsSecurity extends AbstractViewSettings {
this.autoLogoutOptions = koComputable(() => {
translateTrigger();
return [
{ id: 0, name: i18n('SETTINGS_SECURITY/AUTOLOGIN_NEVER_OPTION_NAME') },
{ id: 0, name: i18n('SETTINGS_SECURITY/NEVER') },
{ id: 5, name: relativeTime(300) },
{ id: 10, name: relativeTime(600) },
{ id: 15, name: relativeTime(900) },
{ id: 30, name: relativeTime(1800) },
{ id: 60, name: relativeTime(3600) },
{ id: 120, name: relativeTime(7200) },
@ -38,6 +38,9 @@ export class UserSettingsSecurity extends AbstractViewSettings {
});
this.addSetting('AutoLogout');
this.keyPassForget = SettingsUserStore.keyPassForget;
this.addSetting('keyPassForget');
this.gnupgPublicKeys = GnuPGUserStore.publicKeys;
this.gnupgPrivateKeys = GnuPGUserStore.privateKeys;

View file

@ -1,4 +1,5 @@
import { AskPopupView } from 'View/Popup/Ask';
import { SettingsUserStore } from 'Stores/User/Settings';
export const Passphrases = new WeakMap();
@ -8,12 +9,13 @@ Passphrases.ask = async (key, sAskDesc, btnText) =>
: await AskPopupView.password(sAskDesc, btnText, 5);
const timeouts = {};
// get/set accessor to control deletion after 15 minutes of inactivity
// get/set accessor to control deletion after N minutes of inactivity
Passphrases.handle = (key, pass) => {
if (!timeouts[key]) {
timeouts[key] = (()=>Passphrases.delete(key)).debounce(900000);
const timeout = SettingsUserStore.keyPassForget();
if (timeout && !timeouts[key]) {
timeouts[key] = (()=>Passphrases.delete(key)).debounce(timeout * 1000);
}
pass && Passphrases.set(key, pass);
timeouts[key]();
timeout && timeouts[key]();
return Passphrases.get(key);
};

View file

@ -35,6 +35,7 @@ export const SettingsUserStore = new class {
hideDeleted: 1,
unhideKolabFolders: 0,
autoLogout: 0,
keyPassForget: 15,
showUnreadCount: 0,
messageNewWindow: 0,
messageReadAuto: 0,
@ -157,5 +158,6 @@ export const SettingsUserStore = new class {
self.checkMailInterval(pInt(SettingsGet('CheckMailInterval')));
self.messageReadDelay(pInt(SettingsGet('MessageReadDelay')));
self.autoLogout(pInt(SettingsGet('AutoLogout')));
self.keyPassForget(pInt(SettingsGet('keyPassForget')));
}
};

View file

@ -598,6 +598,7 @@ class Actions
'UseCheckboxesInList' => (bool) $oConfig->Get('defaults', 'view_use_checkboxes', true),
'showNextMessage' => (bool) $oConfig->Get('defaults', 'view_show_next_message', false),
'AutoLogout' => (int) $oConfig->Get('defaults', 'autologout', 30),
'keyPassForget' => 15,
'AllowDraftAutosave' => (bool) $oConfig->Get('defaults', 'allow_draft_autosave', true),
'ContactsAutosave' => (bool) $oConfig->Get('defaults', 'contacts_autosave', true)
],
@ -691,6 +692,7 @@ class Actions
$aResult['showNextMessage'] = (bool)$oSettings->GetConf('showNextMessage', $aResult['showNextMessage']);
$aResult['AllowDraftAutosave'] = (bool)$oSettings->GetConf('AllowDraftAutosave', $aResult['AllowDraftAutosave']);
$aResult['AutoLogout'] = (int)$oSettings->GetConf('AutoLogout', $aResult['AutoLogout']);
$aResult['keyPassForget'] = (int)$oSettings->GetConf('keyPassForget', $aResult['keyPassForget']);
$aResult['Layout'] = (int)$oSettings->GetConf('Layout', $aResult['Layout']);
$aResult['Resizer4Width'] = (int)$oSettings->GetConf('Resizer4Width', 0);
$aResult['Resizer5Width'] = (int)$oSettings->GetConf('Resizer5Width', 0);

View file

@ -192,6 +192,7 @@ trait User
$this->setSettingsFromParams($oSettings, 'UseCheckboxesInList', 'bool');
$this->setSettingsFromParams($oSettings, 'AllowDraftAutosave', 'bool');
$this->setSettingsFromParams($oSettings, 'AutoLogout', 'int');
$this->setSettingsFromParams($oSettings, 'keyPassForget', 'int');
$this->setSettingsFromParams($oSettings, 'messageNewWindow', 'bool');
$this->setSettingsFromParams($oSettings, 'messageReadAuto', 'bool');
$this->setSettingsFromParams($oSettings, 'MessageReadDelay', 'int');

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "الأمان",
"LABEL_AUTOLOGOUT": "تسجيل الخروج التلقائي",
"AUTOLOGIN_NEVER_OPTION_NAME": "أبداَ"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "أبداَ"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "اللغة",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Бяспека",
"LABEL_AUTOLOGOUT": "Азтаматычны ўваход",
"AUTOLOGIN_NEVER_OPTION_NAME": "Ніколі"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Ніколі"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Мова",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Сигурност",
"LABEL_AUTOLOGOUT": "Автоматично излизане",
"AUTOLOGIN_NEVER_OPTION_NAME": "Никога"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Никога"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Език",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Zabezpečení",
"LABEL_AUTOLOGOUT": "Automatické odhlášení",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nikdy"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nikdy"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Jazyk",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sikkerhed",
"LABEL_AUTOLOGOUT": "Automatisk log ud",
"AUTOLOGIN_NEVER_OPTION_NAME": "Aldrig"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Aldrig"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Sprog",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sicherheit",
"LABEL_AUTOLOGOUT": "Automatische Abmeldung",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nie"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nie"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Sprache",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Ασφάλεια",
"LABEL_AUTOLOGOUT": "Αυτόματη αποσύνδεση",
"AUTOLOGIN_NEVER_OPTION_NAME": "Ποτέ"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Ποτέ"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Γλώσσα",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Security",
"LABEL_AUTOLOGOUT": "Auto Logout",
"AUTOLOGIN_NEVER_OPTION_NAME": "Never"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Never"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Language",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Seguridad",
"LABEL_AUTOLOGOUT": "Salir Automáticamente",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nunca"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nunca"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Idioma",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Turvalisus",
"LABEL_AUTOLOGOUT": "Automaatne välja logimine",
"AUTOLOGIN_NEVER_OPTION_NAME": "Mitte kunagi"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Mitte kunagi"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Keel",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Segurtasuna",
"LABEL_AUTOLOGOUT": "Saioa automatikoki itxi",
"AUTOLOGIN_NEVER_OPTION_NAME": "Inoiz"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Inoiz"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Hizkuntza",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "امنیت",
"LABEL_AUTOLOGOUT": "خروج خودکار",
"AUTOLOGIN_NEVER_OPTION_NAME": "هرگز"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "هرگز"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "زبان",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Turvallisuus",
"LABEL_AUTOLOGOUT": "Automaattinen uloskirjautuminen",
"AUTOLOGIN_NEVER_OPTION_NAME": "Ei koskaan"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Ei koskaan"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Kieli",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sécurité",
"LABEL_AUTOLOGOUT": "Déconnexion automatique",
"AUTOLOGIN_NEVER_OPTION_NAME": "Jamais"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Jamais"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Langue",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Biztonság",
"LABEL_AUTOLOGOUT": "Automatikus kijelentkezés",
"AUTOLOGIN_NEVER_OPTION_NAME": "Soha"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Soha"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Nyelv",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Keamanan",
"LABEL_AUTOLOGOUT": "Logout otomatis",
"AUTOLOGIN_NEVER_OPTION_NAME": "Tidak pernah"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Tidak pernah"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Bahasa",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Öryggi",
"LABEL_AUTOLOGOUT": "Sjálfvirk útskráning",
"AUTOLOGIN_NEVER_OPTION_NAME": "Aldrei"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Aldrei"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Tungumál",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sicurezza",
"LABEL_AUTOLOGOUT": "Disconnessione automatica",
"AUTOLOGIN_NEVER_OPTION_NAME": "Mai"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Mai"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Lingua",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "セキュリティ",
"LABEL_AUTOLOGOUT": "自動ログアウト",
"AUTOLOGIN_NEVER_OPTION_NAME": "しない"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "しない"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "言語",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "보안",
"LABEL_AUTOLOGOUT": "자동 로그아웃",
"AUTOLOGIN_NEVER_OPTION_NAME": "설정하지 않음"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "설정하지 않음"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "언어",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sauga",
"LABEL_AUTOLOGOUT": "Automatinis atsijungimas",
"AUTOLOGIN_NEVER_OPTION_NAME": "Niekada"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Niekada"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Kalba",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Security",
"LABEL_AUTOLOGOUT": "Auto Logout",
"AUTOLOGIN_NEVER_OPTION_NAME": "Never"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Never"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Valoda",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Sikkerhet",
"LABEL_AUTOLOGOUT": "Logg ut automatisk etter",
"AUTOLOGIN_NEVER_OPTION_NAME": "Aldri"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Aldri"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Språk",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Beveiliging",
"LABEL_AUTOLOGOUT": "Automatisch uitloggen",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nooit"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nooit"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Taal",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Bezpieczeństwo",
"LABEL_AUTOLOGOUT": "Automatyczne wylogowanie",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nigdy"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nigdy"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Język",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Segurança",
"LABEL_AUTOLOGOUT": "Deslogar Automaticamente",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nunca"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nunca"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Idioma",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Segurança",
"LABEL_AUTOLOGOUT": "Terminar sessão auto.",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nunca"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nunca"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Idioma",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Security",
"LABEL_AUTOLOGOUT": "Auto Logout",
"AUTOLOGIN_NEVER_OPTION_NAME": "Never"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Never"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Limbă",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Безопасность",
"LABEL_AUTOLOGOUT": "Автоматический выход",
"AUTOLOGIN_NEVER_OPTION_NAME": "Никогда"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Никогда"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Язык",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Security",
"LABEL_AUTOLOGOUT": "Auto Logout",
"AUTOLOGIN_NEVER_OPTION_NAME": "Never"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Never"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Jazyk",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Varnost",
"LABEL_AUTOLOGOUT": "Samodejna odjava",
"AUTOLOGIN_NEVER_OPTION_NAME": "Nikoli"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Nikoli"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Jezik",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Säkerhet",
"LABEL_AUTOLOGOUT": "Automatisk utloggning",
"AUTOLOGIN_NEVER_OPTION_NAME": "Aldrig"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Aldrig"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Språk",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Security",
"LABEL_AUTOLOGOUT": "Auto Logout",
"AUTOLOGIN_NEVER_OPTION_NAME": "Never"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Never"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Dil",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "Безпека",
"LABEL_AUTOLOGOUT": "Автовихід",
"AUTOLOGIN_NEVER_OPTION_NAME": "Ніколи"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Ніколи"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Мова",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "An ninh",
"LABEL_AUTOLOGOUT": "Tự động đăng xuất",
"AUTOLOGIN_NEVER_OPTION_NAME": "Không tự động đăng xuất"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "Không tự động đăng xuất"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "Ngôn ngữ",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "安全性",
"LABEL_AUTOLOGOUT": "自動登出",
"AUTOLOGIN_NEVER_OPTION_NAME": "永不"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "永不"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "語言",

View file

@ -443,7 +443,8 @@
"SETTINGS_SECURITY": {
"LEGEND_SECURITY": "安全",
"LABEL_AUTOLOGOUT": "自动登出",
"AUTOLOGIN_NEVER_OPTION_NAME": "从不"
"FORGET_KEY_PASS": "Forget private key passphrase",
"NEVER": "从不"
},
"SETTINGS_GENERAL": {
"LANGUAGE": "语言",

View file

@ -13,6 +13,19 @@
}
}"></div>
</div>
<div class="control-group">
<label data-i18n="SETTINGS_SECURITY/FORGET_KEY_PASS"></label>
<div data-bind="component: {
name: 'Select',
params: {
options: autoLogoutOptions,
value: keyPassForget,
trigger: keyPassForgetTrigger,
optionsText: 'name',
optionsValue: 'id'
}
}"></div>
</div>
</div>
<div class="legend">OpenPGP</div>