mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
Add configuration option for default passkeys group
This commit is contained in:
parent
aa288ff797
commit
8f28059ac3
6 changed files with 40 additions and 4 deletions
|
|
@ -714,6 +714,10 @@
|
|||
"message": "Separate the group with slashes, for example: Group/ChildGroup.",
|
||||
"description": "Default group help text."
|
||||
},
|
||||
"optionsLabelDefaultPasskeyGroup": {
|
||||
"message": "Default group for saving new passkeys:",
|
||||
"description": "Default passkey group options text."
|
||||
},
|
||||
"optionsLabelDefaultGroupCheckboxText": {
|
||||
"message": "Always ask where to save new credentials",
|
||||
"description": "Default group checkbox help text."
|
||||
|
|
|
|||
|
|
@ -608,15 +608,13 @@ keepass.passkeysRegister = async function(tab, args = []) {
|
|||
|
||||
const kpAction = kpActions.PASSKEYS_REGISTER;
|
||||
const nonce = keepassClient.getNonce();
|
||||
|
||||
// Parse publicKey
|
||||
const publicKey = args[0];
|
||||
const origin = args[1];
|
||||
const [ publicKey, origin ] = args;
|
||||
|
||||
const messageData = {
|
||||
action: kpAction,
|
||||
publicKey: JSON.parse(JSON.stringify(publicKey)),
|
||||
origin: origin,
|
||||
groupName: page?.settings?.defaultPasskeyGroup,
|
||||
keys: keepass.getCryptoKeys()
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ const defaultSettings = {
|
|||
credentialSorting: SORT_BY_GROUP_AND_TITLE,
|
||||
debugLogging: false,
|
||||
defaultGroup: '',
|
||||
defaultPasskeyGroup: '',
|
||||
defaultGroupAlwaysAsk: false,
|
||||
downloadFaviconAfterSave: false,
|
||||
passkeys: false,
|
||||
|
|
|
|||
|
|
@ -368,6 +368,23 @@
|
|||
<div class="form-text help-text" data-i18n="optionsPasskeysEnableFallbackHelpText"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Default group for saving passkeys -->
|
||||
<div class="form-group pb-2">
|
||||
<label for="defaultPasskeyGroup" class="pb-2" data-i18n="optionsLabelDefaultPasskeyGroup"></label>
|
||||
<div class="input-group w-75">
|
||||
<input class="form-control form-control-sm" type="text" id="defaultPasskeyGroup" placeholder="KeePassXC-Browser Passkeys">
|
||||
<button class="btn btn-sm btn-primary" type="button" id="defaultPasskeyGroupButton">
|
||||
<i class="fa fa-save" aria-hidden="true"></i>
|
||||
<span data-i18n="optionsButtonSave"></span>
|
||||
</button>
|
||||
<button class="btn btn-sm btn-danger" type="button" id="defaultPasskeyGroupButtonReset">
|
||||
<i class="fa fa-remove" aria-hidden="true"></i>
|
||||
<span data-i18n="optionsButtonReset"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-text help-text" data-i18n="optionsDefaultGroupHelpText"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ options.initGeneralSettings = async function() {
|
|||
$('#tab-general-settings select#afterFillSorting').value = options.settings['afterFillSorting'];
|
||||
$('#tab-general-settings select#afterFillSortingTotp').value = options.settings['afterFillSortingTotp'];
|
||||
$('#tab-general-settings input#defaultGroup').value = options.settings['defaultGroup'];
|
||||
$('#tab-general-settings input#defaultPasskeyGroup').value = options.settings['defaultPasskeyGroup'];
|
||||
$('#tab-general-settings input#clearCredentialTimeout').value = options.settings['clearCredentialsTimeout'];
|
||||
|
||||
const generalSettingsRadioInputs = document.querySelectorAll('#tab-general-settings input[type=radio]');
|
||||
|
|
@ -203,6 +204,7 @@ options.initGeneralSettings = async function() {
|
|||
});
|
||||
});
|
||||
|
||||
// Default group
|
||||
$('#defaultGroupButton').addEventListener('click', async function() {
|
||||
const value = $('#defaultGroup').value;
|
||||
options.settings['defaultGroup'] = (value.length > 0 ? value : '');
|
||||
|
|
@ -215,6 +217,19 @@ options.initGeneralSettings = async function() {
|
|||
await options.saveSettings();
|
||||
});
|
||||
|
||||
// Default passkey group
|
||||
$('#defaultPasskeyGroupButton').addEventListener('click', async function() {
|
||||
const value = $('#defaultPasskeyGroup').value;
|
||||
options.settings['defaultPasskeyGroup'] = (value.length > 0 ? value : '');
|
||||
await options.saveSettings();
|
||||
});
|
||||
|
||||
$('#defaultPasskeyGroupButtonReset').addEventListener('click', async function() {
|
||||
$('#defaultPasskeyGroup').value = '';
|
||||
options.settings['defaultPasskeyGroup'] = '';
|
||||
await options.saveSettings();
|
||||
});
|
||||
|
||||
let temporarySettings;
|
||||
const dialogImportSettingsModal = new bootstrap.Modal('#dialogImportSettings',
|
||||
{ keyboard: true, focus: false, backdrop: true });
|
||||
|
|
|
|||
|
|
@ -483,6 +483,7 @@ Unencrypted message:
|
|||
"action": "passkeys-register",
|
||||
"publicKey": PublicKeyCredentialCreationOptions,
|
||||
"origin": "tZvLrBzkQ9GxXq9PvKJj4iAnfPT0VZ3Q",
|
||||
"groupName": "<optional, KeePassXC 2.7.10 and newer>",
|
||||
"keys: [
|
||||
{
|
||||
"id": "<saved database identifier received from associate>",
|
||||
|
|
|
|||
Loading…
Reference in a new issue