Add IPC events for keytar

This commit is contained in:
Samuel Elliott 2018-08-23 18:35:37 +01:00
parent 60e42cea07
commit 96b7e8d859
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
2 changed files with 26 additions and 3 deletions

View File

@ -112,6 +112,22 @@ const ClientIPC = new class ClientIPC {
return this.send('dba', command); return this.send('dba', command);
} }
getPassword(service, account) {
return this.send('keytar-get', {service, account});
}
setPassword(service, account, password) {
return this.send('keytar-set', {service, account, password});
}
deletePassword(service, account) {
return this.send('keytar-delete', {service, account});
}
findCredentials(service) {
return this.send('keytar-find-credentials', {service});
}
} }
export default ClientIPC; export default ClientIPC;

View File

@ -13,6 +13,7 @@ import sass from 'node-sass';
import { BrowserWindow, dialog, session } from 'electron'; import { BrowserWindow, dialog, session } from 'electron';
import deepmerge from 'deepmerge'; import deepmerge from 'deepmerge';
import ContentSecurityPolicy from 'csp-parse'; import ContentSecurityPolicy from 'csp-parse';
import keytar from 'keytar';
import { FileUtils, BDIpc, Config, WindowUtils, CSSEditor, Database } from './modules'; import { FileUtils, BDIpc, Config, WindowUtils, CSSEditor, Database } from './modules';
@ -57,9 +58,10 @@ const globals = {
const CSP = { const CSP = {
'img-src': ['https://cdn.betterttv.net', 'https://cdn.frankerfacez.com'], 'img-src': ['https://cdn.betterttv.net', 'https://cdn.frankerfacez.com'],
'script-src': [ 'script-src': [
'\'sha256-fSHKdpQGCHaIqWP3SpJOuUHrLp49jy4dWHzZ/RBJ/p4=\'', // React Devtools `'sha256-fSHKdpQGCHaIqWP3SpJOuUHrLp49jy4dWHzZ/RBJ/p4='`, // React Devtools
'\'sha256-VFJcfKY5B3EBkFDgQnv3CozPwBlZcxwssfLVWlPFfZU=\'', // Vue Devtools `'sha256-VFJcfKY5B3EBkFDgQnv3CozPwBlZcxwssfLVWlPFfZU='`, // Vue Devtools
'\'sha256-VzDmLZ4PxPkOS/KY7ITzLQsSWhfCnvUrNculcj8UNgE=\' \'sha256-l6K+77Z1cmldR9gIvaVWlboF/zr5MXCQHcsEHfnr5TU=\''] // Vue Detector `'sha256-VzDmLZ4PxPkOS/KY7ITzLQsSWhfCnvUrNculcj8UNgE=' 'sha256-l6K+77Z1cmldR9gIvaVWlboF/zr5MXCQHcsEHfnr5TU='` // Vue Detector
]
}; };
class PatchedBrowserWindow extends BrowserWindow { class PatchedBrowserWindow extends BrowserWindow {
@ -131,6 +133,11 @@ class Comms {
}); });
BDIpc.on('bd-dba', (event, options) => this.bd.dbInstance.exec(options), true); BDIpc.on('bd-dba', (event, options) => this.bd.dbInstance.exec(options), true);
BDIpc.on('bd-keytar-get', (event, {service, account}) => keytar.getPassword(service, account), true);
BDIpc.on('bd-keytar-set', (event, {service, account, password}) => keytar.setPassword(service, account, password), true);
BDIpc.on('bd-keytar-delete', (event, {service, account}) => keytar.deletePassword(service, account), true);
BDIpc.on('bd-keytar-find-credentials', (event, {service}) => keytar.findCredentials(service), true);
} }
async send(channel, message) { async send(channel, message) {