diff --git a/src/docker.js b/src/docker.js index ff1304463..7225c953f 100644 --- a/src/docker.js +++ b/src/docker.js @@ -271,8 +271,8 @@ async function createSubcontainer(app, name, cmd, options) { 'CLOUDRON=1', 'CLOUDRON_PROXY_IP=172.18.0.1', `CLOUDRON_APP_HOSTNAME=${app.id}`, - `CLOUDRON_WEBADMIN_ORIGIN=${settings.dashboardOrigin()}`, - `CLOUDRON_API_ORIGIN=${settings.dashboardOrigin()}`, + `CLOUDRON_WEBADMIN_ORIGIN=https://${settings.dashboardFqdn()}`, + `CLOUDRON_API_ORIGIN=https://${settings.dashboardFqdn()}`, `CLOUDRON_APP_ORIGIN=https://${domain}`, `CLOUDRON_APP_DOMAIN=${domain}` ]; diff --git a/src/mailer.js b/src/mailer.js index d7057c264..6658dba9c 100644 --- a/src/mailer.js +++ b/src/mailer.js @@ -101,11 +101,11 @@ async function sendInvite(user, invitor, email, inviteLink) { const templateData = { user: user.displayName || user.username || user.email, - webadminUrl: settings.dashboardOrigin(), + webadminUrl: `https://${settings.dashboardFqdn()}`, inviteLink: inviteLink, invitor: invitor ? invitor.email : null, cloudronName: mailConfig.cloudronName, - cloudronAvatarUrl: settings.dashboardOrigin() + '/api/v1/cloudron/avatar' + cloudronAvatarUrl: `https://${settings.dashboardFqdn()}/api/v1/cloudron/avatar` }; const mailOptions = { @@ -140,7 +140,7 @@ async function sendNewLoginLocation(user, loginLocation) { country, city, cloudronName: mailConfig.cloudronName, - cloudronAvatarUrl: settings.dashboardOrigin() + '/api/v1/cloudron/avatar' + cloudronAvatarUrl: `https://${settings.dashboardFqdn()}/api/v1/cloudron/avatar` }; const mailOptions = { @@ -166,7 +166,7 @@ async function passwordReset(user, email, resetLink) { user: user.displayName || user.username || user.email, resetLink: resetLink, cloudronName: mailConfig.cloudronName, - cloudronAvatarUrl: settings.dashboardOrigin() + '/api/v1/cloudron/avatar' + cloudronAvatarUrl: `https://${settings.dashboardFqdn()}/api/v1/cloudron/avatar` }; const mailOptions = { diff --git a/src/notifications.js b/src/notifications.js index d5ef3a7cc..3f770c24b 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -136,10 +136,10 @@ async function oomEvent(eventId, containerId, app, addonName /*, event*/) { } else { title = `The ${addonName} service ran out of memory`; } - message = `The service has been restarted automatically. If you see this notification often, consider increasing the [memory limit](${settings.dashboardOrigin()}/#/services)`; + message = `The service has been restarted automatically. If you see this notification often, consider increasing the [memory limit](https://${settings.dashboardFqdn()}/#/services)`; } else if (app) { title = `The app at ${app.fqdn} ran out of memory.`; - message = `The app has been restarted automatically. If you see this notification often, consider increasing the [memory limit](${settings.dashboardOrigin()}/#/app/${app.id}/resources)`; + message = `The app has been restarted automatically. If you see this notification often, consider increasing the [memory limit](https://${settings.dashboardFqdn()}/#/app/${app.id}/resources)`; } await add(title, message, { eventId }); @@ -220,7 +220,7 @@ async function backupFailed(eventId, taskId, errorMessage) { const superadmins = await users.getSuperadmins(); for (const superadmin of superadmins) { - await mailer.backupFailed(superadmin.email, errorMessage, `${settings.dashboardOrigin()}/logs.html?taskId=${taskId}`); + await mailer.backupFailed(superadmin.email, errorMessage, `https://${settings.dashboardFqdn()}/logs.html?taskId=${taskId}`); } } diff --git a/src/oidc.js b/src/oidc.js index 06cd657c5..709749b7d 100644 --- a/src/oidc.js +++ b/src/oidc.js @@ -87,7 +87,7 @@ async function clientsGet(id) { application_type: 'web', response_types: ['code', 'code token'], grant_types: ['authorization_code', 'implicit'], - loginRedirectUri: settings.dashboardOrigin() + '/authcallback.html' + loginRedirectUri: `https://${settings.dashboardFqdn()}/authcallback.html` }; } else if (id === DEV_CLIENT_ID) { return { @@ -667,7 +667,7 @@ async function findAccount(ctx, id) { async function renderError(ctx, out, error) { const data = { - dashboardOrigin: settings.dashboardOrigin(), + dashboardOrigin: `https://${settings.dashboardFqdn()}`, errorMessage: error.error_description || error.error_detail || 'Unknown error' }; diff --git a/src/proxyauth.js b/src/proxyauth.js index 22d0f62de..9b12c4b10 100644 --- a/src/proxyauth.js +++ b/src/proxyauth.js @@ -101,7 +101,7 @@ async function loginPage(req, res, next) { } const icon = 'data:image/png;base64,' + iconBuffer.toString('base64'); - const dashboardOrigin = settings.dashboardOrigin(); + const dashboardOrigin = `https://${settings.dashboardFqdn()}`; try { finalContent = ejs.render(translatedContent, { title, icon, dashboardOrigin }); diff --git a/src/settings.js b/src/settings.js index 6286c1fbf..245df4624 100644 --- a/src/settings.js +++ b/src/settings.js @@ -6,8 +6,6 @@ exports = module.exports = { // these values come from the cache dashboardDomain, setDashboardLocation, - - dashboardOrigin, dashboardFqdn, get, @@ -161,4 +159,3 @@ async function setDashboardLocation(dashboardDomain, dashboardFqdn) { function dashboardDomain() { return gCache.dashboardDomain; } function dashboardFqdn() { return gCache.dashboardFqdn; } -function dashboardOrigin() { return 'https://' + dashboardFqdn(); } diff --git a/src/users.js b/src/users.js index 99a4188a3..bcef0f019 100644 --- a/src/users.js +++ b/src/users.js @@ -667,7 +667,7 @@ async function getPasswordResetLink(user, auditSource) { await update(user, { resetToken, resetTokenCreationTime }, auditSource); } - const resetLink = `${settings.dashboardOrigin()}/passwordreset.html?resetToken=${resetToken}`; + const resetLink = `https://${settings.dashboardFqdn()}/passwordreset.html?resetToken=${resetToken}`; return resetLink; } @@ -796,7 +796,7 @@ async function getInviteLink(user, auditSource) { if (!user.inviteToken) throw new BoxError(BoxError.BAD_STATE, 'User already used invite link'); const directoryConfig = await getProfileConfig(); - let inviteLink = `${settings.dashboardOrigin()}/setupaccount.html?inviteToken=${user.inviteToken}&email=${encodeURIComponent(user.email)}`; + let inviteLink = `https://${settings.dashboardFqdn()}/setupaccount.html?inviteToken=${user.inviteToken}&email=${encodeURIComponent(user.email)}`; if (user.username) inviteLink += `&username=${encodeURIComponent(user.username)}`; if (user.displayName) inviteLink += `&displayName=${encodeURIComponent(user.displayName)}`; @@ -909,13 +909,13 @@ function compareRoles(role1, role2) { async function getAvatarUrl(user) { assert.strictEqual(typeof user, 'object'); - const fallbackUrl = `${settings.dashboardOrigin()}/img/avatar-default-symbolic.svg`; + const fallbackUrl = `https://${settings.dashboardFqdn()}/img/avatar-default-symbolic.svg`; const result = await getAvatar(user.id); if (result.equals(constants.AVATAR_NONE)) return fallbackUrl; else if (result.equals(constants.AVATAR_GRAVATAR)) return `https://www.gravatar.com/avatar/${require('crypto').createHash('md5').update(user.email).digest('hex')}.jpg`; - else if (result) return `${settings.dashboardOrigin()}/api/v1/profile/avatar/${user.id}`; + else if (result) return `https://${settings.dashboardFqdn()}/api/v1/profile/avatar/${user.id}`; else return fallbackUrl; }