Allow unauthorized users to search and spectate.

This commit is contained in:
2024-11-03 15:53:13 -06:00
parent 8a415a6c9d
commit 0a62eb7582
12 changed files with 72 additions and 74 deletions

View File

@@ -56,9 +56,16 @@ else
if (this.session != null)
{
var state = await authenticationState;
var accountId = state.User.Claims.First(c => c.Type == ClaimTypes.Name).Value;
this.perspective = accountId == session.Player1 ? WhichPlayer.Player1 : WhichPlayer.Player2;
this.isSpectating = !(accountId == this.session.Player1 || accountId == this.session.Player2);
var accountId = state.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
if (accountId == null)
{
this.isSpectating = true;
}
else
{
this.perspective = accountId == session.Player1 ? WhichPlayer.Player1 : WhichPlayer.Player2;
this.isSpectating = !(accountId == this.session.Player1 || accountId == this.session.Player2);
}
}
StateHasChanged();
}

View File

@@ -74,9 +74,11 @@
<div class="player-area">
@if (Perspective == WhichPlayer.Player2 && string.IsNullOrEmpty(Session.Player2))
{
<div class="place-self-center">
<button @onclick="OnClickJoinGameInternal">Join Game</button>
</div>
<AuthorizeView>
<div class="place-self-center">
<button @onclick="OnClickJoinGameInternal">Join Game</button>
</div>
</AuthorizeView>
}
else
{

View File

@@ -115,23 +115,19 @@
{
var pieceBeingMoved = Session.BoardState.Board[selectedBoardPosition];
var isPromotedAlready = pieceBeingMoved != null && pieceBeingMoved.IsPromoted;
Console.WriteLine("Is promoted? {0}", isPromotedAlready);
// Moving to an empty space or capturing an opponent's piece.
if (!isPromotedAlready && (IsWithinPromoteArea(position) || IsWithinPromoteArea(selectedBoardPosition)))
{
Console.WriteLine("Prompt!");
moveTo = position;
showPromotePrompt = true;
}
else
{
var success = await ShogiApi.Move(Session.SessionId, new MovePieceCommand(selectedBoardPosition, position, false));
Console.WriteLine("Success? {0}", success);
if (!success)
{
selectedBoardPosition = null;
showError = true;
Console.WriteLine("Show error");
}
}
StateHasChanged();

View File

@@ -2,10 +2,12 @@
@using System.Net
@inject ShogiApi ShogiApi
<GameBoardPresentation IsSpectating="true"
Perspective="WhichPlayer.Player2"
Session="Session"
OnClickJoinGame="OnClickJoinGame" />
<Stretch style="position: relative;">
<GameBoardPresentation IsSpectating="true"
Perspective="WhichPlayer.Player2"
Session="Session"
OnClickJoinGame="OnClickJoinGame" />
</Stretch>
@code {
[Parameter]