mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2025-12-13 17:55:56 +00:00
Merge pull request #224 from antoKeinanen/main
[Feature] Add password protection to askString function
This commit is contained in:
@@ -41,7 +41,7 @@ export class SetupLiveSync extends LiveSyncCommands {
|
|||||||
async realizeSettingSyncMode() { }
|
async realizeSettingSyncMode() { }
|
||||||
|
|
||||||
async command_copySetupURI() {
|
async command_copySetupURI() {
|
||||||
const encryptingPassphrase = await askString(this.app, "Encrypt your settings", "The passphrase to encrypt the setup URI", "");
|
const encryptingPassphrase = await askString(this.app, "Encrypt your settings", "The passphrase to encrypt the setup URI", "", true);
|
||||||
if (encryptingPassphrase === false)
|
if (encryptingPassphrase === false)
|
||||||
return;
|
return;
|
||||||
const setting = { ...this.settings, configPassphraseStore: "", encryptedCouchDBConnection: "", encryptedPassphrase: "" };
|
const setting = { ...this.settings, configPassphraseStore: "", encryptedCouchDBConnection: "", encryptedPassphrase: "" };
|
||||||
@@ -57,7 +57,7 @@ export class SetupLiveSync extends LiveSyncCommands {
|
|||||||
Logger("Setup URI copied to clipboard", LOG_LEVEL.NOTICE);
|
Logger("Setup URI copied to clipboard", LOG_LEVEL.NOTICE);
|
||||||
}
|
}
|
||||||
async command_copySetupURIFull() {
|
async command_copySetupURIFull() {
|
||||||
const encryptingPassphrase = await askString(this.app, "Encrypt your settings", "The passphrase to encrypt the setup URI", "");
|
const encryptingPassphrase = await askString(this.app, "Encrypt your settings", "The passphrase to encrypt the setup URI", "", true);
|
||||||
if (encryptingPassphrase === false)
|
if (encryptingPassphrase === false)
|
||||||
return;
|
return;
|
||||||
const setting = { ...this.settings, configPassphraseStore: "", encryptedCouchDBConnection: "", encryptedPassphrase: "" };
|
const setting = { ...this.settings, configPassphraseStore: "", encryptedCouchDBConnection: "", encryptedPassphrase: "" };
|
||||||
@@ -81,7 +81,7 @@ export class SetupLiveSync extends LiveSyncCommands {
|
|||||||
async setupWizard(confString: string) {
|
async setupWizard(confString: string) {
|
||||||
try {
|
try {
|
||||||
const oldConf = JSON.parse(JSON.stringify(this.settings));
|
const oldConf = JSON.parse(JSON.stringify(this.settings));
|
||||||
const encryptingPassphrase = await askString(this.app, "Passphrase", "The passphrase to decrypt your setup URI", "");
|
const encryptingPassphrase = await askString(this.app, "Passphrase", "The passphrase to decrypt your setup URI", "", true);
|
||||||
if (encryptingPassphrase === false)
|
if (encryptingPassphrase === false)
|
||||||
return;
|
return;
|
||||||
const newConf = await JSON.parse(await decrypt(confString, encryptingPassphrase, false));
|
const newConf = await JSON.parse(await decrypt(confString, encryptingPassphrase, false));
|
||||||
|
|||||||
@@ -43,13 +43,15 @@ export class InputStringDialog extends Modal {
|
|||||||
key: string;
|
key: string;
|
||||||
placeholder: string;
|
placeholder: string;
|
||||||
isManuallyClosed = false;
|
isManuallyClosed = false;
|
||||||
|
isPassword: boolean = false;
|
||||||
|
|
||||||
constructor(app: App, title: string, key: string, placeholder: string, onSubmit: (result: string | false) => void) {
|
constructor(app: App, title: string, key: string, placeholder: string, isPassword: boolean, onSubmit: (result: string | false) => void) {
|
||||||
super(app);
|
super(app);
|
||||||
this.onSubmit = onSubmit;
|
this.onSubmit = onSubmit;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.placeholder = placeholder;
|
this.placeholder = placeholder;
|
||||||
this.key = key;
|
this.key = key;
|
||||||
|
this.isPassword = isPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
onOpen() {
|
onOpen() {
|
||||||
@@ -58,7 +60,7 @@ export class InputStringDialog extends Modal {
|
|||||||
contentEl.createEl("h1", { text: this.title });
|
contentEl.createEl("h1", { text: this.title });
|
||||||
// For enter to submit
|
// For enter to submit
|
||||||
const formEl = contentEl.createEl("form");
|
const formEl = contentEl.createEl("form");
|
||||||
new Setting(formEl).setName(this.key).addText((text) =>
|
new Setting(formEl).setName(this.key).setClass(this.isPassword ? "password-input" : "normal-input").addText((text) =>
|
||||||
text.onChange((value) => {
|
text.onChange((value) => {
|
||||||
this.result = value;
|
this.result = value;
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -405,9 +405,9 @@ export const askSelectString = (app: App, message: string, items: string[]): Pro
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export const askString = (app: App, title: string, key: string, placeholder: string): Promise<string | false> => {
|
export const askString = (app: App, title: string, key: string, placeholder: string, isPassword?: boolean): Promise<string | false> => {
|
||||||
return new Promise((res) => {
|
return new Promise((res) => {
|
||||||
const dialog = new InputStringDialog(app, title, key, placeholder, (result) => res(result));
|
const dialog = new InputStringDialog(app, title, key, placeholder, isPassword, (result) => res(result));
|
||||||
dialog.open();
|
dialog.open();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -737,4 +737,4 @@ export const remoteDatabaseCleanup = async (plugin: ObsidianLiveSyncPlugin, dryR
|
|||||||
Logger(ex, LOG_LEVEL.VERBOSE);
|
Logger(ex, LOG_LEVEL.VERBOSE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -255,4 +255,8 @@ div.sls-setting-menu-btn {
|
|||||||
|
|
||||||
.sls-setting-hidden {
|
.sls-setting-hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.password-input > .setting-item-control >input {
|
||||||
|
-webkit-text-security: disc;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user