Merge pull request #2841 from Budibase/fix/redirects

Fix redirects and prevent admin / org screens in cloud
This commit is contained in:
Rory Powell 2021-10-01 12:55:13 +01:00 committed by GitHub
commit 15ebaa382a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 9 deletions

View File

@ -4,9 +4,6 @@
import { onMount } from "svelte" import { onMount } from "svelte"
let loaded = false let loaded = false
// don't react to these
let cloud = $admin.cloud
let shouldRedirect = !cloud || $admin.disableAccountPortal
$: multiTenancyEnabled = $admin.multiTenancy $: multiTenancyEnabled = $admin.multiTenancy
$: hasAdminUser = $admin?.checklist?.adminUser?.checked $: hasAdminUser = $admin?.checklist?.adminUser?.checked
@ -14,6 +11,8 @@
$: cloud = $admin.cloud $: cloud = $admin.cloud
$: user = $auth.user $: user = $auth.user
$: useAccountPortal = cloud && !$admin.disableAccountPortal
const validateTenantId = async () => { const validateTenantId = async () => {
// set the tenant from the url in the cloud // set the tenant from the url in the cloud
const tenantId = window.location.host.split(".")[0] const tenantId = window.location.host.split(".")[0]
@ -41,12 +40,11 @@
}) })
$: { $: {
// We should never see the org or admin user creation screens in the cloud
const apiReady = $admin.loaded && $auth.loaded const apiReady = $admin.loaded && $auth.loaded
// if tenant is not set go to it // if tenant is not set go to it
if ( if (
loaded && loaded &&
shouldRedirect && !useAccountPortal &&
apiReady && apiReady &&
multiTenancyEnabled && multiTenancyEnabled &&
!tenantSet !tenantSet
@ -54,7 +52,7 @@
$redirect("./auth/org") $redirect("./auth/org")
} }
// Force creation of an admin user if one doesn't exist // Force creation of an admin user if one doesn't exist
else if (loaded && shouldRedirect && apiReady && !hasAdminUser) { else if (loaded && !useAccountPortal && apiReady && !hasAdminUser) {
$redirect("./admin") $redirect("./admin")
} }
// Redirect to log in at any time if the user isn't authenticated // Redirect to log in at any time if the user isn't authenticated

View File

@ -5,8 +5,11 @@
let loaded = false let loaded = false
$: cloud = $admin.cloud
$: useAccountPortal = cloud && !$admin.disableAccountPortal
onMount(() => { onMount(() => {
if ($admin?.checklist?.adminUser.checked) { if ($admin?.checklist?.adminUser.checked || useAccountPortal) {
$redirect("../") $redirect("../")
} else { } else {
loaded = true loaded = true

View File

@ -9,7 +9,8 @@
let tenantId = get(auth).tenantSet ? get(auth).tenantId : "" let tenantId = get(auth).tenantSet ? get(auth).tenantId : ""
$: multiTenancyEnabled = $admin.multiTenancy $: multiTenancyEnabled = $admin.multiTenancy
$: cloud = $admin.cloud $: cloud = $admin.cloud
$: disableAccountPortal = $admin.disableAccountPortal
$: useAccountPortal = cloud && !$admin.disableAccountPortal
async function setOrg() { async function setOrg() {
if (tenantId == null || tenantId === "") { if (tenantId == null || tenantId === "") {
@ -27,7 +28,7 @@
onMount(async () => { onMount(async () => {
await auth.checkQueryString() await auth.checkQueryString()
if (!multiTenancyEnabled || (cloud && !disableAccountPortal)) { if (!multiTenancyEnabled || useAccountPortal) {
$goto("../") $goto("../")
} else { } else {
admin.unload() admin.unload()