From 6c92f3728e4b5f7330101cf63896eacae8cb3c27 Mon Sep 17 00:00:00 2001 From: Mia Winter Date: Wed, 6 Mar 2024 14:22:38 +0100 Subject: [PATCH] fixed Article View buttons --- Wave/Components/Pages/ArticleView.razor | 12 +++++++++++- Wave/Components/ReaderToggle.razor | 2 +- Wave/wwwroot/css/main.min.css | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Wave/Components/Pages/ArticleView.razor b/Wave/Components/Pages/ArticleView.razor index ac991aa..f6818c4 100644 --- a/Wave/Components/Pages/ArticleView.razor +++ b/Wave/Components/Pages/ArticleView.razor @@ -54,7 +54,10 @@
- @Localizer["Edit"] + @if (CanEdit) { + @Localizer["Edit"] + } @if (Article.Status is ArticleStatus.Draft) {
@@ -124,6 +127,8 @@ [CascadingParameter] public HttpContext HttpContext { get; set; } = default!; + private bool CanEdit { get; set; } + private Article GetArticlePublic() { if (Article is null) throw new ApplicationException("Article not found."); if (Article.Status >= ArticleStatus.Published && Article.PublishDate <= DateTimeOffset.UtcNow) { @@ -138,17 +143,21 @@ // The Article is publicly available if (Article.Status >= ArticleStatus.Published && Article.PublishDate <= DateTimeOffset.UtcNow) { + if (principal.IsInRole("Admin")) + CanEdit = true; return Article; } // Admins always get access if (principal.IsInRole("Admin")) { + CanEdit = true; return Article; } // You can only access your own drafts if (Article.Status is ArticleStatus.Draft) { if (Article.Author.Id == principal.FindFirst("Id")!.Value) { + CanEdit = true; return Article; } throw new ApplicationException("Cannot access draft article without being author or admin."); @@ -156,6 +165,7 @@ // InReview Articles can only be accessed by reviewers if (Article.Status is ArticleStatus.InReview) { if (principal.IsInRole("Reviewer")) { + CanEdit = true; return Article; } throw new ApplicationException("Cannot access in-review article without being a reviewer or admin."); diff --git a/Wave/Components/ReaderToggle.razor b/Wave/Components/ReaderToggle.razor index ef977af..3187f33 100644 --- a/Wave/Components/ReaderToggle.razor +++ b/Wave/Components/ReaderToggle.razor @@ -1,4 +1,4 @@ -