Multi-tenant role authorization

This commit is contained in:
Shaun Walker
2019-08-25 14:52:25 -04:00
parent ad2d865d7c
commit f037898c6e
34 changed files with 312 additions and 252 deletions

View File

@ -51,20 +51,20 @@
private async Task Login()
{
User user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = Username;
user.Password = Password;
user.IsPersistent = Remember;
user = await UserService.LoginUserAsync(user);
if (user.IsAuthenticated)
{
string ReturnUrl = PageState.QueryString["returnurl"];
string ReturnUrl = PageState.QueryString["returnurl"];
var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider));
if (authstateprovider == null)
var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider));
if (authstateprovider == null)
{
// server-side Blazor
User user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = Username;
user.Password = Password;
user = await UserService.LoginUserAsync(user, false, false);
if (user.IsAuthenticated)
{
// server-side Blazor
// complete the login on the server so that the cookies are set correctly on SignalR
var interop = new Interop(jsRuntime);
string antiforgerytoken = await interop.GetElementByName("__RequestVerificationToken");
var fields = new { __RequestVerificationToken = antiforgerytoken, username = Username, password = Password, remember = Remember, returnurl = ReturnUrl };
@ -72,15 +72,27 @@
}
else
{
// client-side Blazor
authstateprovider.NotifyAuthenticationChanged();
PageState.Reload = Constants.ReloadPage;
UriHelper.NavigateTo(NavigateUrl(ReturnUrl));
Message = "<div class=\"alert alert-danger\" role=\"alert\">Login Failed. Please Remember That Passwords Are Case Sensitive.</div>";
}
}
else
{
Message = "<div class=\"alert alert-danger\" role=\"alert\">Login Failed. Please Remember That Passwords Are Case Sensitive.</div>";
// client-side Blazor
User user = new User();
user.SiteId = PageState.Site.SiteId;
user.Username = Username;
user.Password = Password;
user = await UserService.LoginUserAsync(user, true, Remember);
if (user.IsAuthenticated)
{
authstateprovider.NotifyAuthenticationChanged();
PageState.Reload = Constants.ReloadSite;
UriHelper.NavigateTo(NavigateUrl(ReturnUrl));
}
else
{
Message = "<div class=\"alert alert-danger\" role=\"alert\">Login Failed. Please Remember That Passwords Are Case Sensitive.</div>";
}
}
}

View File

@ -8,7 +8,7 @@
@inject IPageService PageService
@inject IThemeService ThemeService
@message
@((MarkupString)message)
<table class="form-group">
<tr>
@ -144,7 +144,7 @@
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
@ -185,11 +185,18 @@
await PageService.AddPageAsync(page);
PageState.Reload = Constants.ReloadSite;
UriHelper.NavigateTo(NavigateUrl(path));
if (PageState.Page.Name == "Page Management")
{
UriHelper.NavigateTo(NavigateUrl());
}
else
{
UriHelper.NavigateTo(NavigateUrl(path));
}
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
}

View File

@ -9,7 +9,7 @@
@inject IPageService PageService
@inject IThemeService ThemeService
@message
@((MarkupString)message)
<table class="form-group">
<tr>
@ -116,7 +116,8 @@
</table>
<button type="button" class="btn btn-danger" @onclick="@DeletePage">Delete</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
<br /><br />
<br />
<br />
<AuditInfo CreatedBy="@createdby" CreatedOn="@createdon" ModifiedBy="@modifiedby" ModifiedOn="@modifiedon"></AuditInfo>
@code {
@ -172,7 +173,7 @@
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
@ -182,11 +183,18 @@
{
await PageService.DeletePageAsync(Int32.Parse(PageState.QueryString["id"]));
PageState.Reload = Constants.ReloadSite;
UriHelper.NavigateTo(NavigateUrl());
if (PageState.Page.Name == "Page Management")
{
UriHelper.NavigateTo(NavigateUrl());
}
else
{
UriHelper.NavigateTo(NavigateUrl(""));
}
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
}

View File

@ -9,7 +9,7 @@
@inject IPageService PageService
@inject IThemeService ThemeService
@message
@((MarkupString)message)
<table class="form-group">
<tr>
@ -116,7 +116,8 @@
</table>
<button type="button" class="btn btn-success" @onclick="@SavePage">Save</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
<br /><br />
<br />
<br />
<AuditInfo CreatedBy="@createdby" CreatedOn="@createdon" ModifiedBy="@modifiedby" ModifiedOn="@modifiedon"></AuditInfo>
@code {
@ -179,7 +180,7 @@
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
@ -220,11 +221,18 @@
await PageService.UpdatePageAsync(page);
PageState.Reload = Constants.ReloadSite;
UriHelper.NavigateTo(NavigateUrl(path));
if (PageState.Page.Name == "Page Management")
{
UriHelper.NavigateTo(NavigateUrl());
}
else
{
UriHelper.NavigateTo(NavigateUrl(path));
}
}
catch (Exception ex)
{
message = ex.Message;
message = "<div class=\"alert alert-danger\" role=\"alert\">" + ex.Message + "</div><br /><br />";
}
}
}

View File

@ -20,7 +20,6 @@
public string Style { get; set; }
string text = "";
string style = "";
protected override void OnInitialized()
{