web - fix bad credentials lookup

This commit is contained in:
Benjamin Pasero
2020-09-10 13:47:37 +02:00
parent 015c3afe96
commit a5a54adba8

View File

@@ -27,13 +27,6 @@ class LocalStorageCredentialsProvider implements ICredentialsProvider {
static readonly CREDENTIALS_OPENED_KEY = 'credentials.provider';
constructor(credentials: ICredential[]) {
this._credentials = credentials;
for (const { service, account, password } of this._credentials) {
this.setPassword(service, account, password);
}
}
private _credentials: ICredential[] | undefined;
private get credentials(): ICredential[] {
if (!this._credentials) {
@@ -437,16 +430,20 @@ class WindowIndicator implements IWindowIndicator {
window.location.href = `${window.location.origin}?${queryString}`;
};
// Find credentials from DOM
// Credentials (with support of predefined ones via meta element)
const credentialsProvider = new LocalStorageCredentialsProvider();
const credentialsElement = document.getElementById('vscode-workbench-credentials');
const credentialsElementAttribute = credentialsElement ? credentialsElement.getAttribute('data-settings') : undefined;
let credentials = undefined;
if (credentialsElementAttribute) {
try {
credentials = JSON.parse(credentialsElementAttribute);
for (const { service, account, password } of credentials) {
credentialsProvider.setPassword(service, account, password);
}
} catch (error) { /* Invalid credentials are passed. Ignore. */ }
}
const credentialsProvider = new LocalStorageCredentialsProvider(credentials || []);
// Finally create workbench
create(document.body, {