Skip to content

Commit

Permalink
Implemented RedirectUri for Login and Logout
Browse files Browse the repository at this point in the history
  • Loading branch information
linkdotnet committed Jan 15, 2022
1 parent bf23159 commit e3a014d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 7 deletions.
14 changes: 10 additions & 4 deletions src/LinkDotNet.Blog.Web/Shared/AccessControl.razor
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Authorized>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
aria-expanded="false">
Admin
</a>
<ul class="dropdown-menu original" aria-labelledby="navbarDropdown">
Expand All @@ -19,9 +19,15 @@
<li><a class="dropdown-item" target="_blank" href="https://github.com/linkdotnet/Blog/releases">Version 2.12</a></li>
</ul>
</li>
<li class="nav-item"><a class="nav-link" href="logout">Log out</a></li>
<li class="nav-item"><a class="nav-link" href="logout?redirectUri=@CurrentUri">Log out</a></li>
</Authorized>
<NotAuthorized>
<li class="nav-item"><a class="nav-link" href="login?redirectUri=/">Log in</a></li>
<li class="nav-item"><a class="nav-link" href="login?redirectUri=@CurrentUri">Log in</a></li>
</NotAuthorized>
</AuthorizeView>
</AuthorizeView>

@code {
[Parameter]
public string CurrentUri { get; set; } = string.Empty;

}
2 changes: 1 addition & 1 deletion src/LinkDotNet.Blog.Web/Shared/NavMenu.razor
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
me</a></li>
}

<AccessControl></AccessControl>
<AccessControl CurrentUri="@navigationManager.Uri"></AccessControl>
<li class="nav-item d-flex">
<SearchInput SearchEntered="NavigateToSearchPage"></SearchInput>
</li>
Expand Down
30 changes: 28 additions & 2 deletions tests/LinkDotNet.Blog.UnitTests/Web/AccessControlTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Bunit;
using AngleSharp.Html.Dom;
using AngleSharpWrappers;
using Bunit;
using Bunit.TestDoubles;
using FluentAssertions;
using LinkDotNet.Blog.Web.Shared;
Expand Down Expand Up @@ -29,4 +31,28 @@ public void ShouldShowLogoutAndAdminWhenLoggedIn()
cut.FindAll("a:contains('Admin')").Should().HaveCount(1);
cut.FindAll("a:contains('Log out')").Should().HaveCount(1);
}
}

[Fact]
public void LoginShouldHaveCurrentUriAsRedirectUri()
{
const string currentUri = "http://localhost/test";
this.AddTestAuthorization();

var cut = RenderComponent<AccessControl>(
p => p.Add(s => s.CurrentUri, currentUri));

((IHtmlAnchorElement)cut.Find("a:contains('Log in')").Unwrap()).Href.Should().Contain(currentUri);
}

[Fact]
public void LogoutShouldHaveCurrentUriAsRedirectUri()
{
const string currentUri = "http://localhost/test";
this.AddTestAuthorization().SetAuthorized("steven");

var cut = RenderComponent<AccessControl>(
p => p.Add(s => s.CurrentUri, currentUri));

((IHtmlAnchorElement)cut.Find("a:contains('Log out')").Unwrap()).Href.Should().Contain(currentUri);
}
}

0 comments on commit e3a014d

Please sign in to comment.