2016-07-07 18:54:16 -07:00
|
|
|
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
|
|
|
//
|
|
|
|
// This software (Documize Community Edition) is licensed under
|
|
|
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
|
|
|
//
|
|
|
|
// You can operate outside the AGPL restrictions by purchasing
|
|
|
|
// Documize Enterprise Edition and obtaining a commercial license
|
|
|
|
// by contacting <sales@documize.com>.
|
|
|
|
//
|
|
|
|
// https://documize.com
|
|
|
|
|
|
|
|
function getSubdomain() {
|
2019-03-03 13:10:04 +00:00
|
|
|
if (isIPv4(window.location.host)) {
|
2016-07-07 18:54:16 -07:00
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
let domain = "";
|
|
|
|
let parts = window.location.host.split(".");
|
|
|
|
|
|
|
|
if (parts.length > 1) {
|
|
|
|
domain = parts[0].toLowerCase();
|
|
|
|
}
|
|
|
|
|
|
|
|
return domain;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getAppUrl(domain) {
|
|
|
|
let parts = window.location.host.split(".");
|
|
|
|
parts.removeAt(0);
|
|
|
|
|
|
|
|
let leftOvers = parts.join(".");
|
|
|
|
|
2019-03-03 13:10:04 +00:00
|
|
|
if (_.isEmpty(domain)) {
|
2016-07-07 18:54:16 -07:00
|
|
|
domain = "";
|
|
|
|
} else {
|
|
|
|
domain = domain + ".";
|
|
|
|
}
|
|
|
|
|
|
|
|
return window.location.protocol + "//" + domain + leftOvers;
|
|
|
|
}
|
|
|
|
|
|
|
|
function isAjaxAccessError(reason) {
|
2017-07-17 10:28:32 +01:00
|
|
|
if (typeof reason === "undefined") {
|
2016-07-07 18:54:16 -07:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2017-07-17 11:50:29 +01:00
|
|
|
// Sometimes we get not error code back so we detect failure to get all spaces for user.
|
2017-07-17 10:28:32 +01:00
|
|
|
if (reason.message === 'Ajax authorization failed') {
|
2016-07-07 18:54:16 -07:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2017-07-18 11:13:20 +01:00
|
|
|
if (typeof reason.errors !== "undefined") {
|
2017-07-17 10:28:32 +01:00
|
|
|
if (reason.errors.length > 0 && (reason.errors[0].status === "401" || reason.errors[0].status === "403")) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-07-07 18:54:16 -07:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2016-11-20 13:41:43 -08:00
|
|
|
function isAjaxNotFoundError(reason) {
|
|
|
|
if (typeof reason === "undefined" || typeof reason.errors === "undefined") {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (reason.errors.length > 0 && (reason.errors[0].status === "404")) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2017-02-23 16:39:23 -08:00
|
|
|
function isInvalidLicenseError(reason) {
|
|
|
|
if (typeof reason === "undefined" || typeof reason.errors === "undefined") {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (reason.errors.length > 0 && reason.errors[0].status === "402") {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2019-03-03 13:10:04 +00:00
|
|
|
function isIPv4(ip) {
|
|
|
|
var re = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
|
|
return re.test(ip);
|
|
|
|
}
|
|
|
|
|
2016-07-07 18:54:16 -07:00
|
|
|
export default {
|
|
|
|
getSubdomain,
|
|
|
|
getAppUrl,
|
|
|
|
isAjaxAccessError,
|
2016-11-20 13:41:43 -08:00
|
|
|
isAjaxNotFoundError,
|
2017-02-23 16:39:23 -08:00
|
|
|
isInvalidLicenseError,
|
2019-03-03 13:10:04 +00:00
|
|
|
isIPv4,
|
2016-11-20 13:41:43 -08:00
|
|
|
};
|