mirror of
https://github.com/bitwarden/browser
synced 2025-12-10 21:33:27 +00:00
Merge branch 'master' into ac/ac-1139/deprecate-custom-collection-perm
This commit is contained in:
@@ -22,3 +22,6 @@
|
||||
193434461dbd9c48fe5dcbad95693470aec422ac
|
||||
# Jslib: Monorepository https://github.com/bitwarden/clients/pull/2824/commits/d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
||||
d7492e3cf320410e74ebd0e0675ab994e64bd01a
|
||||
|
||||
# All Clients: Apply Prettier https://github.com/bitwarden/clients/pull/7014
|
||||
28de9439beb87133c8683434df952a0c0be94100
|
||||
|
||||
8
.github/whitelist-capital-letters.txt
vendored
8
.github/whitelist-capital-letters.txt
vendored
@@ -40,14 +40,6 @@
|
||||
./apps/browser/README.md
|
||||
./apps/browser/store/windows/AppxManifest.xml
|
||||
./apps/browser/src/background/nativeMessaging.background.ts
|
||||
./apps/browser/src/background/models/addLoginRuntimeMessage.ts
|
||||
./apps/browser/src/background/models/addChangePasswordQueueMessage.ts
|
||||
./apps/browser/src/background/models/addLoginQueueMessage.ts
|
||||
./apps/browser/src/background/models/changePasswordRuntimeMessage.ts
|
||||
./apps/browser/src/background/models/notificationQueueMessage.ts
|
||||
./apps/browser/src/background/models/notificationQueueMessageType.ts
|
||||
./apps/browser/src/background/models/lockedVaultPendingNotificationsItem.ts
|
||||
./apps/browser/src/background/webRequest.background.ts
|
||||
./apps/browser/src/popup/services/debounceNavigationService.ts
|
||||
./apps/browser/src/models/browserComponentState.ts
|
||||
./apps/browser/src/models/browserSendComponentState.ts
|
||||
|
||||
6
.github/workflows/build-browser.yml
vendored
6
.github/workflows/build-browser.yml
vendored
@@ -136,16 +136,10 @@ jobs:
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
npm --version
|
||||
node-gyp --version
|
||||
|
||||
- name: Build sources for reviewers
|
||||
run: |
|
||||
|
||||
10
.github/workflows/build-cli.yml
vendored
10
.github/workflows/build-cli.yml
vendored
@@ -104,11 +104,6 @@ jobs:
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install
|
||||
run: npm ci
|
||||
working-directory: ./
|
||||
@@ -179,11 +174,6 @@ jobs:
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
node-version: ${{ env._NODE_VERSION }}
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Get pkg-fetch
|
||||
shell: pwsh
|
||||
run: |
|
||||
|
||||
30
.github/workflows/build-desktop.yml
vendored
30
.github/workflows/build-desktop.yml
vendored
@@ -162,11 +162,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -279,11 +274,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
||||
|
||||
@@ -493,11 +483,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Rust
|
||||
shell: pwsh
|
||||
run: rustup target install aarch64-apple-darwin
|
||||
@@ -646,11 +631,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Rust
|
||||
shell: pwsh
|
||||
run: rustup target install aarch64-apple-darwin
|
||||
@@ -844,11 +824,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Rust
|
||||
shell: pwsh
|
||||
run: rustup target install aarch64-apple-darwin
|
||||
@@ -1034,11 +1009,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
|
||||
18
.github/workflows/deploy-eu-qa-web.yml
vendored
18
.github/workflows/deploy-eu-qa-web.yml
vendored
@@ -11,6 +11,21 @@ on:
|
||||
default: master
|
||||
|
||||
jobs:
|
||||
notify-start:
|
||||
name: Notify Slack with start message
|
||||
runs-on: ubuntu-22.04
|
||||
if: always()
|
||||
steps:
|
||||
- uses: bitwarden/gh-actions/report-deployment-status-to-slack@main
|
||||
with:
|
||||
project: Web
|
||||
environment: EU QA Cloud
|
||||
tag: ${{ github.ref_name }}
|
||||
slack-channel: team-eng-qa-devops
|
||||
event: 'start'
|
||||
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
|
||||
azure-deploy:
|
||||
name: Deploy to Azure
|
||||
runs-on: ubuntu-22.04
|
||||
@@ -71,5 +86,6 @@ jobs:
|
||||
environment: EU QA Cloud
|
||||
tag: ${{ github.event.inputs.tag }}
|
||||
slack-channel: team-eng-qa-devops
|
||||
failure: ${{ needs.azure-deploy.result == 'failure' }}
|
||||
event: ${{ needs.azure-deploy.result }}
|
||||
url: https://github.com/bitwarden/devops/actions/runs/${{ github.run_id }}
|
||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
|
||||
18
.github/workflows/deploy-non-prod-web.yml
vendored
18
.github/workflows/deploy-non-prod-web.yml
vendored
@@ -57,6 +57,21 @@ jobs:
|
||||
echo "environment-artifact=web-*-cloud-COMMERCIAL.zip" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
notify-start:
|
||||
name: Notify Slack with start message
|
||||
runs-on: ubuntu-22.04
|
||||
if: always()
|
||||
steps:
|
||||
- uses: bitwarden/gh-actions/report-deployment-status-to-slack@main
|
||||
with:
|
||||
project: Web
|
||||
environment: US ${{ inputs.environment }} Cloud
|
||||
tag: ${{ github.ref_name }}
|
||||
slack-channel: team-eng-qa-devops
|
||||
event: 'start'
|
||||
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
|
||||
artifact-check:
|
||||
name: Check if Web artifact is present
|
||||
runs-on: ubuntu-22.04
|
||||
@@ -253,5 +268,6 @@ jobs:
|
||||
environment: US ${{ inputs.environment }} Cloud
|
||||
tag: ${{ github.ref_name }}
|
||||
slack-channel: team-eng-qa-devops
|
||||
failure: ${{ needs.cfpages-deploy.result == 'failure' }}
|
||||
event: ${{ needs.cfpages-deploy.result }}
|
||||
url: https://github.com/bitwarden/clients/actions/runs/${{ github.run_id }}
|
||||
AZURE_KV_CI_SERVICE_PRINCIPAL: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
|
||||
25
.github/workflows/release-desktop-beta.yml
vendored
25
.github/workflows/release-desktop-beta.yml
vendored
@@ -138,11 +138,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Set up environment
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -235,11 +230,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
run: dotnet tool install --global AzureSignTool --version 4.0.1
|
||||
|
||||
@@ -431,11 +421,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
@@ -561,11 +546,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
@@ -764,11 +744,6 @@ jobs:
|
||||
- name: Set Node options
|
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV
|
||||
|
||||
- name: Install node-gyp
|
||||
run: |
|
||||
npm install -g node-gyp
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Print environment
|
||||
run: |
|
||||
node --version
|
||||
|
||||
@@ -48,7 +48,7 @@ const decorator = componentWrapperDecorator(
|
||||
},
|
||||
({ globals }) => {
|
||||
return { theme: `${globals["theme"]}` };
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
const preview: Preview = {
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
const child = require("child_process");
|
||||
const fs = require("fs");
|
||||
|
||||
const del = require("del");
|
||||
const { rimraf } = require("rimraf");
|
||||
const gulp = require("gulp");
|
||||
const filter = require("gulp-filter");
|
||||
const gulpif = require("gulp-if");
|
||||
const jeditor = require("gulp-json-editor");
|
||||
const replace = require("gulp-replace");
|
||||
const zip = require("gulp-zip");
|
||||
|
||||
const manifest = require("./src/manifest.json");
|
||||
|
||||
@@ -47,7 +45,10 @@ function distFileName(browserName, ext) {
|
||||
return `dist-${browserName}${buildString()}.${ext}`;
|
||||
}
|
||||
|
||||
function dist(browserName, manifest) {
|
||||
async function dist(browserName, manifest) {
|
||||
const { default: zip } = await import("gulp-zip");
|
||||
const { default: filter } = await import("gulp-filter");
|
||||
|
||||
return gulp
|
||||
.src(paths.build + "**/*")
|
||||
.pipe(filter(["**"].concat(filters.fonts).concat(filters.safari)))
|
||||
@@ -130,7 +131,7 @@ function distSafariApp(cb, subBuildPath) {
|
||||
];
|
||||
}
|
||||
|
||||
return del([buildPath + "**/*"])
|
||||
return rimraf([buildPath + "**/*"], { glob: true })
|
||||
.then(() => safariCopyAssets(paths.safari + "**/*", buildPath))
|
||||
.then(() => safariCopyBuild(paths.build + "**/*", buildPath + "safari/app"))
|
||||
.then(() => {
|
||||
@@ -144,7 +145,9 @@ function distSafariApp(cb, subBuildPath) {
|
||||
stdOutProc(proc);
|
||||
return new Promise((resolve) => proc.on("close", resolve));
|
||||
})
|
||||
.then(() => {
|
||||
.then(async () => {
|
||||
const { default: filter } = await import("gulp-filter");
|
||||
|
||||
const libs = fs
|
||||
.readdirSync(builtAppexFrameworkPath)
|
||||
.filter((p) => p.endsWith(".dylib"))
|
||||
@@ -168,7 +171,7 @@ function distSafariApp(cb, subBuildPath) {
|
||||
},
|
||||
() => {
|
||||
return cb;
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -179,7 +182,7 @@ function safariCopyAssets(source, dest) {
|
||||
.on("error", reject)
|
||||
.pipe(gulpif("safari/Info.plist", replace("0.0.1", manifest.version)))
|
||||
.pipe(
|
||||
gulpif("safari/Info.plist", replace("0.0.2", process.env.BUILD_NUMBER || manifest.version))
|
||||
gulpif("safari/Info.plist", replace("0.0.2", process.env.BUILD_NUMBER || manifest.version)),
|
||||
)
|
||||
.pipe(gulpif("desktop.xcodeproj/project.pbxproj", replace("../../../build", "../safari/app")))
|
||||
.pipe(gulp.dest(dest))
|
||||
@@ -187,7 +190,9 @@ function safariCopyAssets(source, dest) {
|
||||
});
|
||||
}
|
||||
|
||||
function safariCopyBuild(source, dest) {
|
||||
async function safariCopyBuild(source, dest) {
|
||||
const { default: filter } = await import("gulp-filter");
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
gulp
|
||||
.src(source)
|
||||
@@ -203,8 +208,8 @@ function safariCopyBuild(source, dest) {
|
||||
delete manifest.optional_permissions;
|
||||
manifest.permissions.push("nativeMessaging");
|
||||
return manifest;
|
||||
})
|
||||
)
|
||||
}),
|
||||
),
|
||||
)
|
||||
.pipe(gulp.dest(dest))
|
||||
.on("end", resolve);
|
||||
@@ -216,7 +221,10 @@ function stdOutProc(proc) {
|
||||
proc.stderr.on("data", (data) => console.error(data.toString()));
|
||||
}
|
||||
|
||||
function ciCoverage(cb) {
|
||||
async function ciCoverage(cb) {
|
||||
const { default: zip } = await import("gulp-zip");
|
||||
const { default: filter } = await import("gulp-filter");
|
||||
|
||||
return gulp
|
||||
.src(paths.coverage + "**/*")
|
||||
.pipe(filter(["**", "!coverage/coverage*.zip"]))
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Fayl parolunu təsdiqlə"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Keçid açarı"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Keçid açarı kopyalanmır"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Пацвердзіць пароль файла"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2264,7 +2264,7 @@
|
||||
"message": "Как се ползва автоматичното попълване"
|
||||
},
|
||||
"autofillSelectInfoWithCommand": {
|
||||
"message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
|
||||
"message": "Изберете елемент на този екран, използвайте комбинацията $COMMAND$ или разгледайте други опции в настройките.",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@@ -2273,7 +2273,7 @@
|
||||
}
|
||||
},
|
||||
"autofillSelectInfoWithoutCommand": {
|
||||
"message": "Select an item from this screen, or explore other options in settings."
|
||||
"message": "Изберете елемент на този екран или разгледайте други опции в настройките."
|
||||
},
|
||||
"gotIt": {
|
||||
"message": "Разбрано"
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Потвърждаване на паролата на файла"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Секретен ключ"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Секретният ключ няма да бъде копиран"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2264,7 +2264,7 @@
|
||||
"message": "Com emplenar automàticament"
|
||||
},
|
||||
"autofillSelectInfoWithCommand": {
|
||||
"message": "Select an item from this screen, use the shortcut $COMMAND$, or explore other options in settings.",
|
||||
"message": "Seleccioneu un element d'aquesta pantalla, utilitzeu la drecera $COMMAND$ o exploreu altres opcions a la configuració.",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@@ -2273,7 +2273,7 @@
|
||||
}
|
||||
},
|
||||
"autofillSelectInfoWithoutCommand": {
|
||||
"message": "Select an item from this screen, or explore other options in settings."
|
||||
"message": "Seleccioneu un element d'aquesta pantalla, o exploreu altres opcions a la configuració."
|
||||
},
|
||||
"gotIt": {
|
||||
"message": "D'acord"
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirma la contrasenya del fitxer"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Clau de pas"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "La clau de pas no es copiarà"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Potvrzení hesla souboru"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Přístupový klíč"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Přístupový klíč nebude zkopírován"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Bekræft filadgangskode"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Adgangsnøgle"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Adgangsnøglen kopieres ikke"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Dateipasswort bestätigen"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey wird nicht kopiert"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Επιβεβαίωση κωδικού πρόσβασης αρχείου"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirmar contraseña del archivo"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "La clave de acceso no se copiará"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Pääsukoodi ei kopeerita"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "کلید عبور کپی نمیشود"
|
||||
},
|
||||
|
||||
@@ -658,10 +658,10 @@
|
||||
"message": "Ask to update a login's password when a change is detected on a website. Applies to all logged in accounts."
|
||||
},
|
||||
"enableUsePasskeys": {
|
||||
"message": "Ask to save and use passkeys"
|
||||
"message": "Pyydä tallentamaan ja käyttämään salausavaimia"
|
||||
},
|
||||
"usePasskeysDesc": {
|
||||
"message": "Ask to save new passkeys or log in with passkeys stored in your vault. Applies to all logged in accounts."
|
||||
"message": "Pyydä tallentamaan uusia salausavaimia tai kirjaudu sisään holviisi tallennetuilla salausavaimilla. Koskee kaikkia sisäänkirjautuneita tilejä."
|
||||
},
|
||||
"notificationChangeDesc": {
|
||||
"message": "Haluatko päivittää salasanan Bitwardeniin?"
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Vahvista tiedoston salasana"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Suojausavain"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Suojausavainta ei kopioida"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirmez le mot de passe du fichier"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Clé d'accès"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "La clé d'accès ne sera pas copiée"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Potvrdi lozinku datoteke"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Pristupni ključ neće biti kopiran"
|
||||
},
|
||||
|
||||
@@ -658,10 +658,10 @@
|
||||
"message": "A bejelentkezési jelszó frissítésének kérése, ha változást lett érzékelve egy webhelyen. Minden bejelentkezett fiókra vonatkozik."
|
||||
},
|
||||
"enableUsePasskeys": {
|
||||
"message": "Kérés a jelszó mentésére és használatára"
|
||||
"message": "Kérés a jhozzáférési kulcs mentésére és használatára"
|
||||
},
|
||||
"usePasskeysDesc": {
|
||||
"message": "Kérés az új jelszavak mentésére vagy bejelentkezés a széfben tárolt jelszavakkal. Minden bejelentkezett fiókra vonatkozik."
|
||||
"message": "Kérés az új hozzáféréi kulcsok mentésére vagy bejelentkezés a széfben tárolt hozzáférési kulcsokkal. Minden bejelentkezett fiókra vonatkozik."
|
||||
},
|
||||
"notificationChangeDesc": {
|
||||
"message": "Frissítésre kerüljön a jelszó a Bitwardenben?"
|
||||
@@ -1021,14 +1021,14 @@
|
||||
"message": "A környezeti webcímek mentésre kerültek."
|
||||
},
|
||||
"showAutoFillMenuOnFormFields": {
|
||||
"message": "Show auto-fill menu on form fields",
|
||||
"message": "Automatikus kitöltés menü megjelenítése az űrlapmezőkön",
|
||||
"description": "Represents the message for allowing the user to enable the auto-fill overlay"
|
||||
},
|
||||
"showAutoFillMenuOnFormFieldsDescAlt": {
|
||||
"message": "Minden bejelentkezett fiókra vonatkozik."
|
||||
},
|
||||
"autofillOverlayVisibilityOff": {
|
||||
"message": "Off",
|
||||
"message": "Ki",
|
||||
"description": "Overlay setting select option for disabling autofill overlay"
|
||||
},
|
||||
"autofillOverlayVisibilityOnFieldFocus": {
|
||||
@@ -1036,7 +1036,7 @@
|
||||
"description": "Overlay appearance select option for showing the field on focus of the input element"
|
||||
},
|
||||
"autofillOverlayVisibilityOnButtonClick": {
|
||||
"message": "When auto-fill icon is selected",
|
||||
"message": "Ha az automatikus kitöltés menü került kiválasztásra",
|
||||
"description": "Overlay appearance select option for showing the field on click of the overlay icon"
|
||||
},
|
||||
"enableAutoFillOnPageLoad": {
|
||||
@@ -2503,7 +2503,7 @@
|
||||
"description": "Screen reader and tool tip label for the overlay button"
|
||||
},
|
||||
"bitwardenVault": {
|
||||
"message": "Bitwarden auto-fill menu",
|
||||
"message": "Bitwarden automatikus kitöltési menü",
|
||||
"description": "Page title in overlay"
|
||||
},
|
||||
"unlockYourAccountToViewMatchingLogins": {
|
||||
@@ -2511,27 +2511,27 @@
|
||||
"description": "Text to display in overlay when the account is locked."
|
||||
},
|
||||
"unlockAccount": {
|
||||
"message": "Unlock account",
|
||||
"message": "Fiók feloldása",
|
||||
"description": "Button text to display in overlay when the account is locked."
|
||||
},
|
||||
"fillCredentialsFor": {
|
||||
"message": "Fill credentials for",
|
||||
"message": "Töltse kia hitelesítő adatokat",
|
||||
"description": "Screen reader text for when overlay item is in focused"
|
||||
},
|
||||
"partialUsername": {
|
||||
"message": "Partial username",
|
||||
"message": "Részleges felhasználónév",
|
||||
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
||||
},
|
||||
"noItemsToShow": {
|
||||
"message": "No items to show",
|
||||
"message": "Nincsenek megjeleníthető elemek",
|
||||
"description": "Text to show in overlay if there are no matching items"
|
||||
},
|
||||
"newItem": {
|
||||
"message": "New item",
|
||||
"message": "Új elem",
|
||||
"description": "Button text to display in overlay when there are no matching items"
|
||||
},
|
||||
"addNewVaultItem": {
|
||||
"message": "Add new vault item",
|
||||
"message": "Elem hozzáadása",
|
||||
"description": "Screen reader text (aria-label) for new item button in overlay"
|
||||
},
|
||||
"bitwardenOverlayMenuAvailable": {
|
||||
@@ -2551,21 +2551,21 @@
|
||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||
},
|
||||
"turnOn": {
|
||||
"message": "Turn on"
|
||||
"message": "Bekapcsolás"
|
||||
},
|
||||
"ignore": {
|
||||
"message": "Ignore"
|
||||
"message": "Mellőz"
|
||||
},
|
||||
"overrideBrowserAutoFillSettings": {
|
||||
"message": "Override browser auto-fill settings",
|
||||
"message": "A böngésző automatikus kitöltési beállításainak felülbírálása",
|
||||
"description": "Label for the setting that allows overriding the default browser autofill settings"
|
||||
},
|
||||
"extensionPrivacyPermissionNotGrantedTitle": {
|
||||
"message": "Unable to override browser auto-fill",
|
||||
"message": "Nem lehet felülbírálni a böngésző automatikus kitöltését",
|
||||
"description": "Title for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
||||
},
|
||||
"extensionPrivacyPermissionNotGrantedDescription": {
|
||||
"message": "Bitwarden must have access to the extension's privacy permission to override browser auto-fill settings.",
|
||||
"message": "A Bitwardennek hozzáféréssel kell rendelkeznie a bővítmény adatvédelmi engedélyéhez, hogy felülbírálhassa a böngésző automatikus kitöltési beállításait.",
|
||||
"description": "Description for the dialog that appears when the user has not granted the extension permission to set privacy settings"
|
||||
},
|
||||
"importData": {
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Fájl jelszó megerősítés"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Hozzáférési kulcs"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "A hozzáférési kulcs nem kerül másolásra."
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Conferma password del file"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "La passkey non sarà copiata"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "ファイルパスワードの確認"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "パスキー"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "パスキーはコピーされません"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Prieigos raktas"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Apstiprināt datnes paroli"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Piekļuves atslēga netiks ievietota starpliktuvē"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Bestandswachtwoord bevestigen"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey wordt niet gekopieerd"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Potwierdź hasło pliku"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey nie zostanie skopiowany"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirmar a palavra-passe do ficheiro"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Chave de acesso"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "A chave de acesso não será copiada"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Подтвердите пароль к файлу"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Ключ доступа"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Ключ доступа не будет скопирован"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Potvrdiť heslo súboru"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Prístupový kľúč"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Prístupový kód sa neskopíruje"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Потврдити лозинку датотеке"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Приступачни кључ"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Приступачни кључ неће бити копиран"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2499,7 +2499,7 @@
|
||||
"description": "Page title for the iframe containing the overlay button"
|
||||
},
|
||||
"toggleBitwardenVaultOverlay": {
|
||||
"message": "Toggle Bitwarden auto-fill menu",
|
||||
"message": "Bitwarden otomatik doldurma menüsünü aç/kapat",
|
||||
"description": "Screen reader and tool tip label for the overlay button"
|
||||
},
|
||||
"bitwardenVault": {
|
||||
@@ -2507,15 +2507,15 @@
|
||||
"description": "Page title in overlay"
|
||||
},
|
||||
"unlockYourAccountToViewMatchingLogins": {
|
||||
"message": "Eşleşen giriş bilgilerini görüntülemek için hesabınızın kilidini açın",
|
||||
"message": "Eşleşen hesaplarınızı görmek için hesabınızın kilidini açın",
|
||||
"description": "Text to display in overlay when the account is locked."
|
||||
},
|
||||
"unlockAccount": {
|
||||
"message": "Hesabın kilidini açın",
|
||||
"message": "Hesap kilidini aç",
|
||||
"description": "Button text to display in overlay when the account is locked."
|
||||
},
|
||||
"fillCredentialsFor": {
|
||||
"message": "Kimlik bilgilerini doldurun",
|
||||
"message": "Bilgileri doldur",
|
||||
"description": "Screen reader text for when overlay item is in focused"
|
||||
},
|
||||
"partialUsername": {
|
||||
@@ -2523,15 +2523,15 @@
|
||||
"description": "Screen reader text for when a login item is focused where a partial username is displayed. SR will announce this phrase before reading the text of the partial username"
|
||||
},
|
||||
"noItemsToShow": {
|
||||
"message": "Gösterilecek öğe yok",
|
||||
"message": "Gösterilecek kayıt yok",
|
||||
"description": "Text to show in overlay if there are no matching items"
|
||||
},
|
||||
"newItem": {
|
||||
"message": "Yeni öge",
|
||||
"message": "Yeni kayıt",
|
||||
"description": "Button text to display in overlay when there are no matching items"
|
||||
},
|
||||
"addNewVaultItem": {
|
||||
"message": "Add new vault item",
|
||||
"message": "Kasaya yeni kayıt ekle",
|
||||
"description": "Screen reader text (aria-label) for new item button in overlay"
|
||||
},
|
||||
"bitwardenOverlayMenuAvailable": {
|
||||
@@ -2543,7 +2543,7 @@
|
||||
"description": "Dialog title facilitating the ability to override a chrome browser's default autofill behavior"
|
||||
},
|
||||
"overrideBrowserAutofillDescription": {
|
||||
"message": "Bu ayarı kapalı bırakmak, Bitwarden otomatik doldurma menüsü ile tarayıcınızınki arasında çakışmalara neden olabilir.",
|
||||
"message": "Bu ayarı kapalı bırakırsanız Bitwarden otomatik doldurma menüsüyle tarayıcınızınki arasında çakışma yaşanabilir.",
|
||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||
},
|
||||
"overrideBrowserAutofillPrivacyRequiredDescription": {
|
||||
@@ -2551,10 +2551,10 @@
|
||||
"description": "Dialog message facilitating the ability to override a chrome browser's default autofill behavior"
|
||||
},
|
||||
"turnOn": {
|
||||
"message": "Turn on"
|
||||
"message": "Aç"
|
||||
},
|
||||
"ignore": {
|
||||
"message": "Yoksay"
|
||||
"message": "Yok say"
|
||||
},
|
||||
"overrideBrowserAutoFillSettings": {
|
||||
"message": "Tarayıcının otomatik doldurma ayarlarını geçersiz kıl",
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Dosya parolasını onaylayın"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Geçiş anahtarı"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Підтвердьте пароль файлу"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Ключ доступу"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Ключ доступу не буде скопійовано"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "Confirm file password"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "Passkey will not be copied"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "确认文件密码"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "通行密钥"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "通行密钥不会被复制"
|
||||
},
|
||||
|
||||
@@ -2679,6 +2679,9 @@
|
||||
"confirmFilePassword": {
|
||||
"message": "確認檔案密碼"
|
||||
},
|
||||
"typePasskey": {
|
||||
"message": "Passkey"
|
||||
},
|
||||
"passkeyNotCopied": {
|
||||
"message": "密碼金鑰不會被複製"
|
||||
},
|
||||
|
||||
@@ -18,12 +18,12 @@ export type OrganizationServiceInitOptions = OrganizationServiceFactoryOptions &
|
||||
|
||||
export function organizationServiceFactory(
|
||||
cache: { organizationService?: AbstractOrganizationService } & CachedServices,
|
||||
opts: OrganizationServiceInitOptions
|
||||
opts: OrganizationServiceInitOptions,
|
||||
): Promise<AbstractOrganizationService> {
|
||||
return factory(
|
||||
cache,
|
||||
"organizationService",
|
||||
opts,
|
||||
async () => new BrowserOrganizationService(await stateServiceFactory(cache, opts))
|
||||
async () => new BrowserOrganizationService(await stateServiceFactory(cache, opts)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ export type PolicyServiceInitOptions = PolicyServiceFactoryOptions &
|
||||
|
||||
export function policyServiceFactory(
|
||||
cache: { policyService?: AbstractPolicyService } & CachedServices,
|
||||
opts: PolicyServiceInitOptions
|
||||
opts: PolicyServiceInitOptions,
|
||||
): Promise<AbstractPolicyService> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -33,7 +33,7 @@ export function policyServiceFactory(
|
||||
async () =>
|
||||
new BrowserPolicyService(
|
||||
await stateServiceFactory(cache, opts),
|
||||
await organizationServiceFactory(cache, opts)
|
||||
)
|
||||
await organizationServiceFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ export class BrowserPolicyService extends PolicyService {
|
||||
if (activated === undefined) {
|
||||
this.stateService.setActivateAutoFillOnPageLoadFromPolicy(!autofillEnabled);
|
||||
}
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ export type AccountServiceInitOptions = AccountServiceFactoryOptions &
|
||||
|
||||
export function accountServiceFactory(
|
||||
cache: { accountService?: AccountService } & CachedServices,
|
||||
opts: AccountServiceInitOptions
|
||||
opts: AccountServiceInitOptions,
|
||||
): Promise<AccountService> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -38,7 +38,7 @@ export function accountServiceFactory(
|
||||
new AccountServiceImplementation(
|
||||
await messagingServiceFactory(cache, opts),
|
||||
await logServiceFactory(cache, opts),
|
||||
await globalStateProviderFactory(cache, opts)
|
||||
)
|
||||
await globalStateProviderFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,12 +18,12 @@ export type AuthRequestCryptoServiceInitOptions = AuthRequestCryptoServiceFactor
|
||||
|
||||
export function authRequestCryptoServiceFactory(
|
||||
cache: { authRequestCryptoService?: AuthRequestCryptoServiceAbstraction } & CachedServices,
|
||||
opts: AuthRequestCryptoServiceInitOptions
|
||||
opts: AuthRequestCryptoServiceInitOptions,
|
||||
): Promise<AuthRequestCryptoServiceAbstraction> {
|
||||
return factory(
|
||||
cache,
|
||||
"authRequestCryptoService",
|
||||
opts,
|
||||
async () => new AuthRequestCryptoServiceImplementation(await cryptoServiceFactory(cache, opts))
|
||||
async () => new AuthRequestCryptoServiceImplementation(await cryptoServiceFactory(cache, opts)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ export type AuthServiceInitOptions = AuthServiceFactoyOptions &
|
||||
|
||||
export function authServiceFactory(
|
||||
cache: { authService?: AbstractAuthService } & CachedServices,
|
||||
opts: AuthServiceInitOptions
|
||||
opts: AuthServiceInitOptions,
|
||||
): Promise<AbstractAuthService> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -113,7 +113,7 @@ export function authServiceFactory(
|
||||
await passwordStrengthServiceFactory(cache, opts),
|
||||
await policyServiceFactory(cache, opts),
|
||||
await deviceTrustCryptoServiceFactory(cache, opts),
|
||||
await authRequestCryptoServiceFactory(cache, opts)
|
||||
)
|
||||
await authRequestCryptoServiceFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ export type DeviceTrustCryptoServiceInitOptions = DeviceTrustCryptoServiceFactor
|
||||
|
||||
export function deviceTrustCryptoServiceFactory(
|
||||
cache: { deviceTrustCryptoService?: DeviceTrustCryptoServiceAbstraction } & CachedServices,
|
||||
opts: DeviceTrustCryptoServiceInitOptions
|
||||
opts: DeviceTrustCryptoServiceInitOptions,
|
||||
): Promise<DeviceTrustCryptoServiceAbstraction> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -68,7 +68,7 @@ export function deviceTrustCryptoServiceFactory(
|
||||
await appIdServiceFactory(cache, opts),
|
||||
await devicesApiServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await platformUtilsServiceFactory(cache, opts)
|
||||
)
|
||||
await platformUtilsServiceFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ export type KeyConnectorServiceInitOptions = KeyConnectorServiceFactoryOptions &
|
||||
|
||||
export function keyConnectorServiceFactory(
|
||||
cache: { keyConnectorService?: AbstractKeyConnectorService } & CachedServices,
|
||||
opts: KeyConnectorServiceInitOptions
|
||||
opts: KeyConnectorServiceInitOptions,
|
||||
): Promise<AbstractKeyConnectorService> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -65,7 +65,7 @@ export function keyConnectorServiceFactory(
|
||||
await logServiceFactory(cache, opts),
|
||||
await organizationServiceFactory(cache, opts),
|
||||
await cryptoFunctionServiceFactory(cache, opts),
|
||||
opts.keyConnectorServiceOptions.logoutCallback
|
||||
)
|
||||
opts.keyConnectorServiceOptions.logoutCallback,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@ export type TokenServiceInitOptions = TokenServiceFactoryOptions & StateServiceI
|
||||
|
||||
export function tokenServiceFactory(
|
||||
cache: { tokenService?: AbstractTokenService } & CachedServices,
|
||||
opts: TokenServiceInitOptions
|
||||
opts: TokenServiceInitOptions,
|
||||
): Promise<AbstractTokenService> {
|
||||
return factory(
|
||||
cache,
|
||||
"tokenService",
|
||||
opts,
|
||||
async () => new TokenService(await stateServiceFactory(cache, opts))
|
||||
async () => new TokenService(await stateServiceFactory(cache, opts)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ export type TwoFactorServiceInitOptions = TwoFactorServiceFactoryOptions &
|
||||
|
||||
export async function twoFactorServiceFactory(
|
||||
cache: { twoFactorService?: AbstractTwoFactorService } & CachedServices,
|
||||
opts: TwoFactorServiceInitOptions
|
||||
opts: TwoFactorServiceInitOptions,
|
||||
): Promise<AbstractTwoFactorService> {
|
||||
const service = await factory(
|
||||
cache,
|
||||
@@ -32,8 +32,8 @@ export async function twoFactorServiceFactory(
|
||||
async () =>
|
||||
new TwoFactorService(
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await platformUtilsServiceFactory(cache, opts)
|
||||
)
|
||||
await platformUtilsServiceFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
service.init();
|
||||
return service;
|
||||
|
||||
@@ -18,12 +18,12 @@ export type UserVerificationApiServiceInitOptions = UserVerificationApiServiceFa
|
||||
|
||||
export function userVerificationApiServiceFactory(
|
||||
cache: { userVerificationApiService?: UserVerificationApiServiceAbstraction } & CachedServices,
|
||||
opts: UserVerificationApiServiceInitOptions
|
||||
opts: UserVerificationApiServiceInitOptions,
|
||||
): Promise<UserVerificationApiServiceAbstraction> {
|
||||
return factory(
|
||||
cache,
|
||||
"userVerificationApiService",
|
||||
opts,
|
||||
async () => new UserVerificationApiService(await apiServiceFactory(cache, opts))
|
||||
async () => new UserVerificationApiService(await apiServiceFactory(cache, opts)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ export type UserVerificationServiceInitOptions = UserVerificationServiceFactoryO
|
||||
|
||||
export function userVerificationServiceFactory(
|
||||
cache: { userVerificationService?: AbstractUserVerificationService } & CachedServices,
|
||||
opts: UserVerificationServiceInitOptions
|
||||
opts: UserVerificationServiceInitOptions,
|
||||
): Promise<AbstractUserVerificationService> {
|
||||
return factory(
|
||||
cache,
|
||||
@@ -45,7 +45,7 @@ export function userVerificationServiceFactory(
|
||||
await stateServiceFactory(cache, opts),
|
||||
await cryptoServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await userVerificationApiServiceFactory(cache, opts)
|
||||
)
|
||||
await userVerificationApiServiceFactory(cache, opts),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import { BrowserRouterService } from "../../platform/popup/services/browser-rout
|
||||
*/
|
||||
export const fido2AuthGuard: CanActivateFn = async (
|
||||
route: ActivatedRouteSnapshot,
|
||||
state: RouterStateSnapshot
|
||||
state: RouterStateSnapshot,
|
||||
) => {
|
||||
const routerService = inject(BrowserRouterService);
|
||||
const authService = inject(AuthService);
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
import { Component } from "@angular/core";
|
||||
import { Router } from "@angular/router";
|
||||
|
||||
import { BrowserRouterService } from "../../../platform/popup/services/browser-router.service";
|
||||
import { AccountSwitcherService } from "../services/account-switcher.service";
|
||||
|
||||
@Component({
|
||||
templateUrl: "account-switcher.component.html",
|
||||
})
|
||||
export class AccountSwitcherComponent {
|
||||
constructor(private accountSwitcherService: AccountSwitcherService, private router: Router) {}
|
||||
constructor(
|
||||
private accountSwitcherService: AccountSwitcherService,
|
||||
private router: Router,
|
||||
private routerService: BrowserRouterService,
|
||||
) {}
|
||||
|
||||
get accountOptions$() {
|
||||
return this.accountSwitcherService.accountOptions$;
|
||||
@@ -15,6 +20,6 @@ export class AccountSwitcherComponent {
|
||||
|
||||
async selectAccount(id: string) {
|
||||
await this.accountSwitcherService.selectAccount(id);
|
||||
this.router.navigate(["/home"]);
|
||||
this.router.navigate([this.routerService.getPreviousUrl() ?? "/home"]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div *ngIf="currentAccount$ | async as currentAccount">
|
||||
<div (click)="currentAccountClicked()" class="tw-mr-1 tw-mt-1">
|
||||
<bit-avatar [id]="currentAccount.id" [text]="currentAccount.name"></bit-avatar>
|
||||
<bit-avatar [id]="currentAccount.id" [text]="currentAccountName$ | async"></bit-avatar>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,20 +1,33 @@
|
||||
import { Component } from "@angular/core";
|
||||
import { Router } from "@angular/router";
|
||||
import { map } from "rxjs";
|
||||
|
||||
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
||||
import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||
|
||||
@Component({
|
||||
selector: "app-current-account",
|
||||
templateUrl: "current-account.component.html",
|
||||
})
|
||||
export class CurrentAccountComponent {
|
||||
constructor(private accountService: AccountService, private router: Router) {}
|
||||
constructor(
|
||||
private accountService: AccountService,
|
||||
private router: Router,
|
||||
) {}
|
||||
|
||||
get currentAccount$() {
|
||||
return this.accountService.activeAccount$;
|
||||
}
|
||||
|
||||
currentAccountClicked() {
|
||||
this.router.navigate(["/account-switcher"]);
|
||||
get currentAccountName$() {
|
||||
return this.currentAccount$.pipe(
|
||||
map((a) => {
|
||||
return Utils.isNullOrWhitespace(a.name) ? a.email : a.name;
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
async currentAccountClicked() {
|
||||
await this.router.navigate(["/account-switcher"]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export class EnvironmentComponent extends BaseEnvironmentComponent implements On
|
||||
public environmentService: BrowserEnvironmentService,
|
||||
i18nService: I18nService,
|
||||
private router: Router,
|
||||
modalService: ModalService
|
||||
modalService: ModalService,
|
||||
) {
|
||||
super(platformUtilsService, environmentService, i18nService, modalService);
|
||||
this.showCustom = true;
|
||||
|
||||
@@ -20,7 +20,7 @@ export class HintComponent extends BaseHintComponent {
|
||||
apiService: ApiService,
|
||||
logService: LogService,
|
||||
private route: ActivatedRoute,
|
||||
loginService: LoginService
|
||||
loginService: LoginService,
|
||||
) {
|
||||
super(router, i18nService, apiService, platformUtilsService, logService, loginService);
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ export class HomeComponent implements OnInit, OnDestroy {
|
||||
private router: Router,
|
||||
private i18nService: I18nService,
|
||||
private environmentService: EnvironmentService,
|
||||
private loginService: LoginService
|
||||
private loginService: LoginService,
|
||||
) {}
|
||||
|
||||
async ngOnInit(): Promise<void> {
|
||||
@@ -73,7 +73,7 @@ export class HomeComponent implements OnInit, OnDestroy {
|
||||
this.platformUtilsService.showToast(
|
||||
"error",
|
||||
this.i18nService.t("errorOccured"),
|
||||
this.i18nService.t("invalidEmail")
|
||||
this.i18nService.t("invalidEmail"),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
: ("yourVaultIsLocked" | i18n)
|
||||
}}
|
||||
</p>
|
||||
{{ "loggedInAsOn" | i18n : email : webVaultHostname }}
|
||||
{{ "loggedInAsOn" | i18n: email : webVaultHostname }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="box" *ngIf="biometricLock">
|
||||
|
||||
@@ -56,7 +56,7 @@ export class LockComponent extends BaseLockComponent {
|
||||
dialogService: DialogService,
|
||||
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
||||
userVerificationService: UserVerificationService,
|
||||
private routerService: BrowserRouterService
|
||||
private routerService: BrowserRouterService,
|
||||
) {
|
||||
super(
|
||||
router,
|
||||
@@ -76,7 +76,7 @@ export class LockComponent extends BaseLockComponent {
|
||||
passwordStrengthService,
|
||||
dialogService,
|
||||
deviceTrustCryptoService,
|
||||
userVerificationService
|
||||
userVerificationService,
|
||||
);
|
||||
this.successRoute = "/tabs/current";
|
||||
this.isInitialLockScreen = (window as any).previousPopupUrl == null;
|
||||
|
||||
@@ -48,7 +48,7 @@ export class LoginViaAuthRequestComponent
|
||||
syncService: SyncService,
|
||||
deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction,
|
||||
authReqCryptoService: AuthRequestCryptoServiceAbstraction,
|
||||
private location: Location
|
||||
private location: Location,
|
||||
) {
|
||||
super(
|
||||
router,
|
||||
@@ -67,7 +67,7 @@ export class LoginViaAuthRequestComponent
|
||||
stateService,
|
||||
loginService,
|
||||
deviceTrustCryptoService,
|
||||
authReqCryptoService
|
||||
authReqCryptoService,
|
||||
);
|
||||
super.onSuccessfulLogin = async () => {
|
||||
await syncService.fullSync(true);
|
||||
|
||||
@@ -45,7 +45,7 @@ export class LoginComponent extends BaseLoginComponent {
|
||||
formValidationErrorService: FormValidationErrorsService,
|
||||
route: ActivatedRoute,
|
||||
loginService: LoginService,
|
||||
webAuthnLoginService: WebAuthnLoginServiceAbstraction
|
||||
webAuthnLoginService: WebAuthnLoginServiceAbstraction,
|
||||
) {
|
||||
super(
|
||||
devicesApiService,
|
||||
@@ -64,7 +64,7 @@ export class LoginComponent extends BaseLoginComponent {
|
||||
formValidationErrorService,
|
||||
route,
|
||||
loginService,
|
||||
webAuthnLoginService
|
||||
webAuthnLoginService,
|
||||
);
|
||||
super.onSuccessfulLogin = async () => {
|
||||
await syncService.fullSync(true);
|
||||
@@ -123,7 +123,7 @@ export class LoginComponent extends BaseLoginComponent {
|
||||
"&codeChallenge=" +
|
||||
codeChallenge +
|
||||
"&email=" +
|
||||
encodeURIComponent(this.formGroup.controls.email.value)
|
||||
encodeURIComponent(this.formGroup.controls.email.value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ export class RegisterComponent extends BaseRegisterComponent {
|
||||
environmentService: EnvironmentService,
|
||||
logService: LogService,
|
||||
auditService: AuditService,
|
||||
dialogService: DialogService
|
||||
dialogService: DialogService,
|
||||
) {
|
||||
super(
|
||||
formValidationErrorService,
|
||||
@@ -54,7 +54,7 @@ export class RegisterComponent extends BaseRegisterComponent {
|
||||
environmentService,
|
||||
logService,
|
||||
auditService,
|
||||
dialogService
|
||||
dialogService,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div class="box">
|
||||
<div class="box-content">
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<p>{{ "convertOrganizationEncryptionDesc" | i18n : organization.name }}</p>
|
||||
<p>{{ "convertOrganizationEncryptionDesc" | i18n: organization.name }}</p>
|
||||
</div>
|
||||
<div class="box-content-row">
|
||||
<button
|
||||
|
||||
@@ -26,7 +26,7 @@ describe("AccountSwitcherService", () => {
|
||||
accountSwitcherService = new AccountSwitcherService(
|
||||
accountService,
|
||||
stateService,
|
||||
messagingService
|
||||
messagingService,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -45,7 +45,7 @@ describe("AccountSwitcherService", () => {
|
||||
activeAccountSubject.next(Object.assign(user1AccountInfo, { id: "1" as UserId }));
|
||||
|
||||
const accounts = await firstValueFrom(
|
||||
accountSwitcherService.accountOptions$.pipe(timeout(20))
|
||||
accountSwitcherService.accountOptions$.pipe(timeout(20)),
|
||||
);
|
||||
expect(accounts).toHaveLength(2);
|
||||
expect(accounts[0].id).toBe("1");
|
||||
@@ -68,7 +68,7 @@ describe("AccountSwitcherService", () => {
|
||||
}
|
||||
accountsSubject.next(seedAccounts);
|
||||
activeAccountSubject.next(
|
||||
Object.assign(seedAccounts["1" as UserId], { id: "1" as UserId })
|
||||
Object.assign(seedAccounts["1" as UserId], { id: "1" as UserId }),
|
||||
);
|
||||
|
||||
const accounts = await firstValueFrom(accountSwitcherService.accountOptions$);
|
||||
@@ -77,7 +77,7 @@ describe("AccountSwitcherService", () => {
|
||||
accounts.forEach((account) => {
|
||||
expect(account.id).not.toBe("addAccount");
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -99,7 +99,7 @@ describe("AccountSwitcherService", () => {
|
||||
"switchAccount",
|
||||
matches((payload) => {
|
||||
return payload.userId === "1";
|
||||
})
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ export class AccountSwitcherService {
|
||||
constructor(
|
||||
private accountService: AccountService,
|
||||
private stateService: StateService,
|
||||
private messagingService: MessagingService
|
||||
private messagingService: MessagingService,
|
||||
) {}
|
||||
|
||||
get accountOptions$() {
|
||||
@@ -31,7 +31,7 @@ export class AccountSwitcherService {
|
||||
id: id,
|
||||
isSelected: id === activeAccount?.id,
|
||||
};
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
if (!hasMaxAccounts) {
|
||||
@@ -43,7 +43,7 @@ export class AccountSwitcherService {
|
||||
}
|
||||
|
||||
return options;
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ export class AccountSwitcherService {
|
||||
return;
|
||||
}
|
||||
|
||||
this.accountService.switchAccount(id as UserId);
|
||||
await this.accountService.switchAccount(id as UserId);
|
||||
this.messagingService.send("switchAccount", { userId: id });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent {
|
||||
route: ActivatedRoute,
|
||||
organizationApiService: OrganizationApiServiceAbstraction,
|
||||
organizationUserService: OrganizationUserService,
|
||||
dialogService: DialogService
|
||||
dialogService: DialogService,
|
||||
) {
|
||||
super(
|
||||
i18nService,
|
||||
@@ -53,7 +53,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent {
|
||||
stateService,
|
||||
organizationApiService,
|
||||
organizationUserService,
|
||||
dialogService
|
||||
dialogService,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ export class SsoComponent extends BaseSsoComponent {
|
||||
environmentService: EnvironmentService,
|
||||
logService: LogService,
|
||||
configService: ConfigServiceAbstraction,
|
||||
@Inject(WINDOW) private win: Window
|
||||
@Inject(WINDOW) private win: Window,
|
||||
) {
|
||||
super(
|
||||
authService,
|
||||
@@ -51,7 +51,7 @@ export class SsoComponent extends BaseSsoComponent {
|
||||
environmentService,
|
||||
passwordGenerationService,
|
||||
logService,
|
||||
configService
|
||||
configService,
|
||||
);
|
||||
|
||||
const url = this.environmentService.getWebVaultUrl();
|
||||
|
||||
@@ -16,7 +16,7 @@ export class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {
|
||||
router: Router,
|
||||
i18nService: I18nService,
|
||||
platformUtilsService: PlatformUtilsService,
|
||||
private activatedRoute: ActivatedRoute
|
||||
private activatedRoute: ActivatedRoute,
|
||||
) {
|
||||
super(twoFactorService, router, i18nService, platformUtilsService, window);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user