@implements IDisposable @inject NavigationManager NavigationManager @inject AuthenticationStateProvider AuthStateProvider @inject EntKube.Web.Services.UserAccessService UserAccessService @inject IConfiguration Configuration @code { private string? currentUrl; private bool showTenantsLink; private bool allowRegistration = true; protected override async Task OnInitializedAsync() { currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri); NavigationManager.LocationChanged += OnLocationChanged; allowRegistration = Configuration.GetValue("Auth:AllowRegistration", true); AuthenticationState authState = await AuthStateProvider.GetAuthenticationStateAsync(); System.Security.Claims.ClaimsPrincipal user = authState.User; if (user.Identity?.IsAuthenticated == true) { string? userId = user.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier)?.Value; if (userId is not null) showTenantsLink = await UserAccessService.HasAnyAccessAsync(userId); } } private void OnLocationChanged(object? sender, LocationChangedEventArgs e) { currentUrl = NavigationManager.ToBaseRelativePath(e.Location); StateHasChanged(); } public void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; } }