@using Iceshrimp.Backend.Core.Configuration @using Iceshrimp.Backend.Core.Database.Tables @using Iceshrimp.Backend.Core.Extensions @using Iceshrimp.Backend.Core.Middleware @using Iceshrimp.Backend.Core.Services @using Microsoft.Extensions.Options @using Microsoft.AspNetCore.Components.Routing @inject IOptions Instance @preservewhitespace true @attribute [RazorSsr] @inherits AsyncComponentBase @(_instanceName ?? "Iceshrimp.NET")
@if (_instanceName != null) { @_instanceName - } Iceshrimp.NET v@(Instance.Value.Version) @if (_user == null) { Login } else { Authenticated as @_user.Username }
@code { [Inject] public required MetaService Meta { get; set; } // This is separate from AuthorizationMiddleware.AuthorizeAttribute, as that middleware is meant for API calls. public class RequireAuthorizationAttribute : Attribute; private string? _instanceName; private User? _user; protected override async Task OnParametersSetAsync() { _instanceName = await Meta.Get(MetaEntity.InstanceName); _user = Context.GetUser(); if (Context.GetEndpoint()?.Metadata.GetMetadata() == null) return; if (_user == null) RedirectToLogin(); } }