mirror of
https://github.com/zulip/zulip-desktop.git
synced 2025-11-01 20:43:33 +00:00
Merge pull request #141 from Lplenka/Certificate_Issue
✨ Added support for self-signed certificate fixes #126
This commit is contained in:
@@ -67,7 +67,13 @@ function serverError(targetURL) {
|
||||
}
|
||||
});
|
||||
req.on('error', e => {
|
||||
console.error(e);
|
||||
if (e.toString().indexOf('Error: self signed certificate') >= 0) {
|
||||
const url = targetURL.replace(/^https?:\/\//, '');
|
||||
console.log('Server StatusCode:', 200);
|
||||
console.log('You are connected to:', url);
|
||||
} else {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
req.end();
|
||||
} else if (data.domain) {
|
||||
@@ -256,9 +262,27 @@ function createMainWindow() {
|
||||
// app.commandLine.appendSwitch('ignore-certificate-errors', 'true');
|
||||
|
||||
// For self-signed certificate
|
||||
ipc.on('certificate-err', (e, domain) => {
|
||||
const detail = `URL: ${domain} \n Error: Self-Signed Certificate`;
|
||||
dialog.showMessageBox(mainWindow, {
|
||||
title: 'Certificate error',
|
||||
message: `Do you trust certificate from ${domain}?`,
|
||||
// eslint-disable-next-line object-shorthand
|
||||
detail: detail,
|
||||
type: 'warning',
|
||||
buttons: ['Yes', 'No'],
|
||||
cancelId: 1
|
||||
// eslint-disable-next-line object-shorthand
|
||||
}, response => {
|
||||
if (response === 0) {
|
||||
// eslint-disable-next-line object-shorthand
|
||||
db.push('/domain', domain);
|
||||
mainWindow.loadURL(domain);
|
||||
}
|
||||
});
|
||||
});
|
||||
// eslint-disable-next-line max-params
|
||||
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
|
||||
console.log('warning: ', url, ' certificate-error');
|
||||
event.preventDefault();
|
||||
callback(true);
|
||||
});
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
Zulip Server URL
|
||||
</label>
|
||||
<input type="text" id="url" autofocus="autofocus" spellcheck="false" placeholder="Server URL">
|
||||
<button type="submit" id="main" class="btn-primary btn-large" value="Submit"
|
||||
onclick="addDomain();">Connect</button>
|
||||
<button type="submit" id="main" class="btn-primary btn-large" value="Submit">Connect</button>
|
||||
<p id="error"></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -59,6 +59,9 @@ window.addDomain = function () {
|
||||
$el.main.innerHTML = 'Connect';
|
||||
db.push('/domain', domain);
|
||||
ipcRenderer.send('new-domain', domain);
|
||||
} else if (error.toString().indexOf('Error: self signed certificate') >= 0) {
|
||||
$el.main.innerHTML = 'Connect';
|
||||
ipcRenderer.send('certificate-err', domain);
|
||||
} else {
|
||||
$el.main.innerHTML = 'Connect';
|
||||
displayError('Not a valid Zulip server');
|
||||
|
||||
@@ -20,9 +20,7 @@ window.prefDomain = function () {
|
||||
const ipcRenderer = require('electron').ipcRenderer;
|
||||
const JsonDB = require('node-json-db');
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
const {
|
||||
app
|
||||
} = require('electron').remote;
|
||||
const {app} = require('electron').remote;
|
||||
|
||||
const db = new JsonDB(app.getPath('userData') + '/domain.json', true, true);
|
||||
|
||||
@@ -57,6 +55,10 @@ window.prefDomain = function () {
|
||||
document.getElementById('urladded').innerHTML = 'Switched to ' + newDomain;
|
||||
db.push('/domain', domain);
|
||||
ipcRenderer.send('new-domain', domain);
|
||||
} else if (error.toString().indexOf('Error: self signed certificate') >= 0) {
|
||||
document.getElementById('main').innerHTML = 'Switch';
|
||||
ipcRenderer.send('certificate-err', domain);
|
||||
document.getElementById('urladded').innerHTML = 'Switched to ' + newDomain;
|
||||
} else {
|
||||
document.getElementById('main').innerHTML = 'Switch';
|
||||
document.getElementById('urladded').innerHTML = 'Not a valid Zulip Server.';
|
||||
|
||||
Reference in New Issue
Block a user