Remotely/Server/Components/AuthorizedIndex.razor

48 lines
1.3 KiB
Plaintext

@attribute [Authorize]
@inherits AuthComponentBase
@inject NavigationManager NavManager
@inject IApplicationConfig AppConfig
@inject SignInManager<RemotelyUser> SignInManager
@if (!string.IsNullOrWhiteSpace(AppConfig.MessageOfTheDay))
{
<div class="me-5">
<AlertBanner Message="@AppConfig.MessageOfTheDay" StatusClass="info" />
</div>
}
<AlertsFrame />
<DevicesFrame />
<ChatFrame />
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (User is not null &&
AppConfig.Require2FA &&
!User.TwoFactorEnabled)
{
NavManager.NavigateTo("/TwoFactorRequired");
}
await base.OnAfterRenderAsync(firstRender);
}
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
var isAuthenticated = await AuthService.IsAuthenticated();
var userResult = await AuthService.GetUser();
// This handles a weird edge case when the user has been
// deleted but still has an authentication cookie in their
// browser.
if (isAuthenticated == true && !userResult.IsSuccess)
{
await SignInManager.SignOutAsync();
NavManager.NavigateTo("/");
}
}
}