@page "/tenants/{Slug}" @using EntKube.Web.Data @using EntKube.Web.Services @using Microsoft.EntityFrameworkCore @rendermode InteractiveServer @inject TenantService TenantService @inject UserAccessService UserAccessService @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager Navigation @(tenant?.Name ?? "Tenant") @if (tenant is null) {

Loading tenant...

} else {

@tenant.Name

@tenant.Slug
@switch (activeTab) { case "environments": break; case "customers": break; case "vault": break; case "groups": break; case "databases": break; case "storage": break; case "identity": break; case "registry": break; case "messaging": break; case "cache": break; case "overview": break; case "incidents": break; case "notifications": break; case "maintenance": break; case "sla": break; case "networking": break; case "git": break; }
} @code { [Parameter] public string Slug { get; set; } = ""; private Tenant? tenant; private string activeTab = "environments"; protected override async Task OnInitializedAsync() { AuthenticationState authState = await AuthStateProvider.GetAuthenticationStateAsync(); System.Security.Claims.ClaimsPrincipal user = authState.User; if (user.Identity?.IsAuthenticated != true) { Navigation.NavigateTo("/Account/Login", forceLoad: true); return; } string? userId = user.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier)?.Value; if (userId is null) { Navigation.NavigateTo("/Account/Login", forceLoad: true); return; } tenant = await TenantService.GetTenantBySlugAsync(Slug); if (tenant is null) { Navigation.NavigateTo("/tenants"); return; } bool canAccess = await UserAccessService.HasTenantAccessAsync(userId, tenant.Id); if (!canAccess) { bool hasMembership = await UserAccessService.HasAnyTenantMembershipAsync(userId); Navigation.NavigateTo(hasMembership ? "/tenants" : "/portal"); } } }