fixed Article View buttons
This commit is contained in:
		
							parent
							
								
									4f81a292cf
								
							
						
					
					
						commit
						6c92f3728e
					
				|  | @ -54,7 +54,10 @@ | |||
| 			<Authorized> | ||||
| 				<ArticleComponent Article="@GetArticleProtected(context.User)" /> | ||||
| 				<div class="flex gap-2 mt-3 flex-wrap"> | ||||
| 					<a class="btn btn-info w-full sm:btn-wide" href="article/@Article.Id/edit" data-enhance-nav="false">@Localizer["Edit"]</a> | ||||
| 					@if (CanEdit) { | ||||
| 						<a class="btn btn-info w-full sm:btn-wide" href="article/@Article!.Id/edit"  | ||||
| 						   data-enhance-nav="false">@Localizer["Edit"]</a> | ||||
| 					} | ||||
| 					@if (Article.Status is ArticleStatus.Draft) { | ||||
| 						<form @formname="submit-for-review" method="post" @onsubmit="SubmitForReview" class="max-sm:w-full"> | ||||
| 							<AntiforgeryToken /> | ||||
|  | @ -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."); | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| <label for="narrow-reading-toggle" class="narrow-reading-toggle btn btn-square btn-sm swap" title="@Label" onclick="this.classList.toggle('swap-active')"> | ||||
| <label for="narrow-reading-toggle" class="narrow-reading-toggle btn btn-square btn-sm swap max-lg:hidden" title="@Label" onclick="this.classList.toggle('swap-active')"> | ||||
| 	<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="currentColor" class="swap-on fill-current"> | ||||
| 		<path fill-rule="evenodd" d="M15 3.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V5.56l-3.97 3.97a.75.75 0 1 1-1.06-1.06l3.97-3.97h-2.69a.75.75 0 0 1-.75-.75Zm-12 0A.75.75 0 0 1 3.75 3h4.5a.75.75 0 0 1 0 1.5H5.56l3.97 3.97a.75.75 0 0 1-1.06 1.06L4.5 5.56v2.69a.75.75 0 0 1-1.5 0v-4.5Zm11.47 11.78a.75.75 0 1 1 1.06-1.06l3.97 3.97v-2.69a.75.75 0 0 1 1.5 0v4.5a.75.75 0 0 1-.75.75h-4.5a.75.75 0 0 1 0-1.5h2.69l-3.97-3.97Zm-4.94-1.06a.75.75 0 0 1 0 1.06L5.56 19.5h2.69a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75v-4.5a.75.75 0 0 1 1.5 0v2.69l3.97-3.97a.75.75 0 0 1 1.06 0Z" clip-rule="evenodd"/> | ||||
| 	</svg> | ||||
|  |  | |||
							
								
								
									
										2
									
								
								Wave/wwwroot/css/main.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								Wave/wwwroot/css/main.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
		Reference in a new issue