1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-21 10:43:35 +00:00

[BEEEP/PM-15871] Add SSH-agent "never" and "remember until lock" reprompt settings (#13995)

* Add remember ssh authorizations setting

* Fix tests

* Fix authorization setting

* More detailed setting

* Add default value

* Cleanup
This commit is contained in:
Bernd Schoolmann
2025-05-05 23:09:27 +02:00
committed by GitHub
parent 669762a7f8
commit 961be9ed6a
7 changed files with 128 additions and 13 deletions

View File

@@ -45,6 +45,7 @@ import { DialogService } from "@bitwarden/components";
import { KeyService, BiometricStateService, BiometricsStatus } from "@bitwarden/key-management";
import { SetPinComponent } from "../../auth/components/set-pin.component";
import { SshAgentPromptType } from "../../autofill/models/ssh-agent-setting";
import { DesktopAutofillSettingsService } from "../../autofill/services/desktop-autofill-settings.service";
import { DesktopBiometricsService } from "../../key-management/biometrics/desktop.biometrics.service";
import { DesktopSettingsService } from "../../platform/services/desktop-settings.service";
@@ -63,6 +64,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
localeOptions: any[];
themeOptions: any[];
clearClipboardOptions: any[];
sshAgentPromptBehaviorOptions: any[];
supportsBiometric: boolean;
private timerId: any;
showAlwaysShowDock = false;
@@ -126,6 +128,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
}),
enableHardwareAcceleration: true,
enableSshAgent: false,
sshAgentPromptBehavior: SshAgentPromptType.Always,
allowScreenshots: false,
enableDuckDuckGoBrowserIntegration: false,
theme: [null as Theme | null],
@@ -212,6 +215,17 @@ export class SettingsComponent implements OnInit, OnDestroy {
{ name: this.i18nService.t("twoMinutes"), value: 120 },
{ name: this.i18nService.t("fiveMinutes"), value: 300 },
];
this.sshAgentPromptBehaviorOptions = [
{
name: this.i18nService.t("sshAgentPromptBehaviorAlways"),
value: SshAgentPromptType.Always,
},
{ name: this.i18nService.t("sshAgentPromptBehaviorNever"), value: SshAgentPromptType.Never },
{
name: this.i18nService.t("sshAgentPromptBehaviorRememberUntilLock"),
value: SshAgentPromptType.RememberUntilLock,
},
];
}
async ngOnInit() {
@@ -312,6 +326,9 @@ export class SettingsComponent implements OnInit, OnDestroy {
this.desktopSettingsService.hardwareAcceleration$,
),
enableSshAgent: await firstValueFrom(this.desktopSettingsService.sshAgentEnabled$),
sshAgentPromptBehavior: await firstValueFrom(
this.desktopSettingsService.sshAgentPromptBehavior$,
),
allowScreenshots: !(await firstValueFrom(this.desktopSettingsService.preventScreenshots$)),
theme: await firstValueFrom(this.themeStateService.selectedTheme$),
locale: await firstValueFrom(this.i18nService.userSetLocale$),
@@ -779,10 +796,15 @@ export class SettingsComponent implements OnInit, OnDestroy {
}
async saveSshAgent() {
this.logService.debug("Saving Ssh Agent settings", this.form.value.enableSshAgent);
await this.desktopSettingsService.setSshAgentEnabled(this.form.value.enableSshAgent);
}
async saveSshAgentPromptBehavior() {
await this.desktopSettingsService.setSshAgentPromptBehavior(
this.form.value.sshAgentPromptBehavior,
);
}
async savePreventScreenshots() {
await this.desktopSettingsService.setPreventScreenshots(!this.form.value.allowScreenshots);