Fix Electron SSO handling to support multiple profiles

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Michael Telatynski 2020-04-04 00:22:15 +01:00
parent a377ca7b85
commit 8ca9e4ccb1
2 changed files with 21 additions and 1 deletions

View file

@ -68,7 +68,14 @@ if (argv["help"]) {
app.exit();
}
if (argv['profile-dir']) {
// check if we are passed a profile in the SSO callback url
const deeplinkUrl = argv["_"].find(arg => arg.startsWith('riot://'));
if (deeplinkUrl && deeplinkUrl.includes('riot-desktop-user-data-path')) {
const parsedUrl = new URL(deeplinkUrl);
if (parsedUrl.protocol === 'riot:') {
app.setPath('userData', parsedUrl.searchParams.get('riot-desktop-user-data-path'));
}
} else if (argv['profile-dir']) {
app.setPath('userData', argv['profile-dir']);
} else if (argv['profile']) {
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
@ -233,6 +240,11 @@ ipcMain.on('ipcCall', async function(ev, payload) {
case 'getConfig':
ret = vectorConfig;
break;
case 'getUserDataPath':
if (argv['profile-dir'] || argv['profile']) {
ret = app.getPath('userData');
}
break;
default:
mainWindow.webContents.send('ipcReply', {