forked from baron/baron-sso
fix(adminfront): ensure tenant admin can always access their tenant even if manageable list is empty
This commit is contained in:
@@ -60,8 +60,8 @@ function AppLayout() {
|
|||||||
icon: Building2,
|
icon: Building2,
|
||||||
});
|
});
|
||||||
} else if (isTenantAdmin) {
|
} else if (isTenantAdmin) {
|
||||||
if (manageableCount === 1 && profile?.tenantId) {
|
if (manageableCount <= 1 && profile?.tenantId) {
|
||||||
// Direct link if only one tenant
|
// Direct link if only one (or zero in array but has tenantId) tenant
|
||||||
items.splice(1, 0, {
|
items.splice(1, 0, {
|
||||||
label: "ui.admin.nav.my_tenant",
|
label: "ui.admin.nav.my_tenant",
|
||||||
to: `/tenants/${profile.tenantId}`,
|
to: `/tenants/${profile.tenantId}`,
|
||||||
|
|||||||
@@ -36,11 +36,12 @@ function TenantListPage() {
|
|||||||
queryFn: fetchMe,
|
queryFn: fetchMe,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Redirect tenant_admin ONLY if they have exactly one manageable tenant
|
// Redirect tenant_admin ONLY if they have one or fewer manageable tenants in the list
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (profile?.role === "tenant_admin") {
|
if (profile?.role === "tenant_admin") {
|
||||||
const manageableCount = profile.manageableTenants?.length ?? 0;
|
const manageableCount = profile.manageableTenants?.length ?? 0;
|
||||||
if (manageableCount === 1 && profile.tenantId) {
|
// If only 1 in array, OR array is empty but we have a primary tenantId
|
||||||
|
if ((manageableCount === 1 || manageableCount === 0) && profile.tenantId) {
|
||||||
navigate(`/tenants/${profile.tenantId}`, { replace: true });
|
navigate(`/tenants/${profile.tenantId}`, { replace: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user