Multi-tenant role authorization
This commit is contained in:
		@ -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>";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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 />";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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 />";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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 />";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user