Fix comments not being disabled if banned (#647)

Hotfix for #646
This commit is contained in:
Zaprit 2023-01-27 01:03:14 +00:00 committed by GitHub
commit 17a06dee2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,4 +1,4 @@
@using System.Web @using System.Web
@using System.IO @using System.IO
@using LBPUnion.ProjectLighthouse.Localization @using LBPUnion.ProjectLighthouse.Localization
@using LBPUnion.ProjectLighthouse.PlayerData.Profiles @using LBPUnion.ProjectLighthouse.PlayerData.Profiles
@ -26,7 +26,7 @@
<i>Comments are disabled.</i> <i>Comments are disabled.</i>
</b> </b>
} }
else if (Model.Comments.Count > 50) else if (Model.Comments.Count >= 50)
{ {
<p>There are more than 50 comments. Displaying the newest ones.</p> <p>There are more than 50 comments. Displaying the newest ones.</p>
} }
@ -36,7 +36,7 @@
<p>There @(count == 1 ? "is" : "are") @count comment@(count == 1 ? "" : "s").</p> <p>There @(count == 1 ? "is" : "are") @count comment@(count == 1 ? "" : "s").</p>
} }
@if (Model.CommentsEnabled && Model.User != null) @if (!Model.ProfileUser.IsBanned && Model.CommentsEnabled && Model.User != null)
{ {
<div class="ui divider"></div> <div class="ui divider"></div>
<form class="ui reply form" action="@Url.RouteUrl(ViewContext.RouteData.Values)/postComment" method="post"> <form class="ui reply form" action="@Url.RouteUrl(ViewContext.RouteData.Values)/postComment" method="post">
@ -51,64 +51,67 @@
} }
} }
@for(int i = 0; i < Model.Comments.Count; i++) @if (!Model.ProfileUser.IsBanned)
{ {
Comment comment = Model.Comments[i]; @for(int i = 0; i < Model.Comments.Count; i++)
DateTimeOffset timestamp = DateTimeOffset.FromUnixTimeSeconds(comment.Timestamp / 1000).ToLocalTime(); {
StringWriter messageWriter = new(); Comment comment = Model.Comments[i];
HttpUtility.HtmlDecode(comment.getComment(), messageWriter); DateTimeOffset timestamp = DateTimeOffset.FromUnixTimeSeconds(comment.Timestamp / 1000).ToLocalTime();
StringWriter messageWriter = new();
HttpUtility.HtmlDecode(comment.getComment(), messageWriter);
string decodedMessage = messageWriter.ToString(); string decodedMessage = messageWriter.ToString();
string? url = Url.RouteUrl(ViewContext.RouteData.Values); string? url = Url.RouteUrl(ViewContext.RouteData.Values);
if (url == null) continue; if (url == null) continue;
int rating = comment.ThumbsUp - comment.ThumbsDown; int rating = comment.ThumbsUp - comment.ThumbsDown;
<div style="display: flex" id="@comment.CommentId"> <div style="display: flex" id="@comment.CommentId">
@{ @{
string style = ""; string style = "";
if (Model.User?.UserId == comment.PosterUserId) if (Model.User?.UserId == comment.PosterUserId)
{ {
style = "pointer-events: none"; style = "pointer-events: none";
}
} }
} <div class="voting" style="@(style)">
<div class="voting" style="@(style)"> <a href="@url/rateComment?commentId=@(comment.CommentId)&rating=@(comment.YourThumb == 1 ? 0 : 1)">
<a href="@url/rateComment?commentId=@(comment.CommentId)&rating=@(comment.YourThumb == 1 ? 0 : 1)"> <i class="fitted @(comment.YourThumb == 1 ? "green" : "grey") arrow up link icon" style="display: block"></i>
<i class="fitted @(comment.YourThumb == 1 ? "green" : "grey") arrow up link icon" style="display: block"></i> </a>
</a> <span style="text-align: center; margin: auto; @(rating < 0 ? "margin-left: -5px" : "")">@(rating)</span>
<span style="text-align: center; margin: auto; @(rating < 0 ? "margin-left: -5px" : "")">@(rating)</span> <a href="@url/rateComment?commentId=@(comment.CommentId)&rating=@(comment.YourThumb == -1 ? 0 : -1)">
<a href="@url/rateComment?commentId=@(comment.CommentId)&rating=@(comment.YourThumb == -1 ? 0 : -1)"> <i class="fitted @(comment.YourThumb == -1 ? "red" : "grey") arrow down link icon" style="display: block"></i>
<i class="fitted @(comment.YourThumb == -1 ? "red" : "grey") arrow down link icon" style="display: block"></i> </a>
</a> </div>
</div>
<div class="comment"> <div class="comment">
<b>@await comment.Poster.ToLink(Html, ViewData, language): </b> <b>@await comment.Poster.ToLink(Html, ViewData, language): </b>
@if (comment.Deleted) @if (comment.Deleted)
{ {
<i> <i>
<span>@decodedMessage</span>
</i>
}
else
{
<span>@decodedMessage</span> <span>@decodedMessage</span>
</i> }
} @if (((Model.User?.IsModerator ?? false) || Model.User?.UserId == comment.PosterUserId || Model.User?.UserId == pageOwnerId) && !comment.Deleted)
else {
{ <button class="ui red icon button" style="display:inline-flex; float: right" onclick="deleteComment(@comment.CommentId)">
<span>@decodedMessage</span> <i class="trash icon"></i>
} </button>
@if (((Model.User?.IsModerator ?? false) || Model.User?.UserId == comment.PosterUserId || Model.User?.UserId == pageOwnerId) && !comment.Deleted) }
{ <p>
<button class="ui red icon button" style="display:inline-flex; float: right" onclick="deleteComment(@comment.CommentId)"> <i>@TimeZoneInfo.ConvertTime(timestamp, timeZoneInfo).ToString("M/d/yyyy @ h:mm:ss tt")</i>
<i class="trash icon"></i> </p>
</button> @if (i != Model.Comments.Count - 1)
} {
<p> <div class="ui divider"></div>
<i>@TimeZoneInfo.ConvertTime(timestamp, timeZoneInfo).ToString("M/d/yyyy @ h:mm:ss tt")</i> }
</p> </div>
@if (i != Model.Comments.Count - 1)
{
<div class="ui divider"></div>
}
</div> </div>
</div> }
} }
<script> <script>
function deleteComment(commentId){ function deleteComment(commentId){
@ -118,4 +121,4 @@
} }
} }
</script> </script>
</div> </div>