From a8e99109b1eeb44c1c7583a34ef3afb063f6b0a2 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Feb 2017 11:45:28 +0000 Subject: [PATCH] Support InteractiveAuth based registration Passes in a function to make a register URL rather than just passing in the URL base --- src/vector/index.js | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/vector/index.js b/src/vector/index.js index 05346888e..8b0da6fa3 100644 --- a/src/vector/index.js +++ b/src/vector/index.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2017 Vector Creations Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -147,16 +148,30 @@ var onNewScreen = function(screen) { // If we're in electron, we should never pass through a file:// URL otherwise // the identity server will try to 302 the browser to it, which breaks horribly. // so in that instance, hardcode to use riot.im/app for now instead. -var makeRegistrationUrl = function() { +var makeRegistrationUrl = function(params) { + let url; if (window.location.protocol === "file:") { - return 'https://riot.im/app/#/register'; + url = 'https://riot.im/app/#/register'; + } else { + url = ( + window.location.protocol + '//' + + window.location.host + + window.location.pathname + + '#/register' + ); } - else { - return window.location.protocol + '//' + - window.location.host + - window.location.pathname + - '#/register'; + + const keys = Object.keys(params); + for (let i = 0; i < keys.length; ++i) { + if (i == 0) { + url += '?'; + } else { + url += '&'; + } + const k = keys[i]; + url += k + '=' + encodeURIComponent(params[k]); } + return url; } window.addEventListener('hashchange', onHashChange); @@ -258,7 +273,7 @@ async function loadApp() { window.matrixChat = ReactDOM.render(