[MM-21075] Prevent known teams to open in a new app window (#1130)

* [MM-21075] prevent known teams to open a new
window

* improve naming

* allow anything that is not a team to open a window
This commit is contained in:
Guillermo Vayá
2019-12-13 16:20:10 +01:00
committed by GitHub
parent a46e3f4342
commit efd56d7ac3

View File

@@ -432,6 +432,10 @@ function handleAppWebContentsCreated(dc, contents) {
log.info(`Untrusted popup window blocked: ${url}`);
return;
}
if (isTeamUrl(url) === true) {
log.info(`${url} is a known team, preventing to open a new window`);
return;
}
if (popupWindow && popupWindow.getURL() === url) {
log.info(`Popup window already open at provided url: ${url}`);
return;
@@ -852,6 +856,18 @@ function parseURL(url) {
}
}
function isTeamUrl(url) {
const parsedURL = parseURL(url);
if (!parsedURL) {
return null;
}
if (isCustomLoginURL(parsedURL)) {
return false;
}
const nonTeamUrlPaths = ['plugins', 'signup', 'login', 'admin', 'channel', 'post', 'api', 'oauth'];
return !(nonTeamUrlPaths.some((testPath) => parsedURL.pathname.toLowerCase().startsWith(`/${testPath}/`)));
}
function isTrustedURL(url) {
const parsedURL = parseURL(url);
if (!parsedURL) {