@page "/settings/{id:guid}" @attribute [Authorize] @using System.Security.Claims @using Microsoft.AspNetCore.Components.Authorization @using Microsoft.EntityFrameworkCore @using PlaylistShared.Data.Entities @inject AuthenticationStateProvider AuthenticationStateProvider @inject AppDbContext Db @inject NavigationManager Navigation

Настройки плейлиста

@if (playlist == null) {

Загрузка...

} else if (!isOwner) {

Только владелец может изменять настройки.

} else {
} @code { [Parameter] public Guid id { get; set; } private SharedPlaylist? playlist; private bool isOwner; private string? currentUserId; protected override async Task OnInitializedAsync() { var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); currentUserId = authState.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; playlist = await Db.SharedPlaylists .Include(p => p.Owner) .FirstOrDefaultAsync(p => p.Id == id); if (playlist != null) { isOwner = currentUserId == playlist.OwnerUserId; } } private async Task SaveSettings() { if (playlist != null) { Db.SharedPlaylists.Update(playlist); await Db.SaveChangesAsync(); Navigation.NavigateTo("/myplaylists"); } } }