Skip to content

Commit

Permalink
Stop using CascadingAuthenticationState (components will use Authenti…
Browse files Browse the repository at this point in the history
…cationStateProvider/AuthState task as needed)
  • Loading branch information
calledude committed Sep 1, 2024
1 parent 22abf8c commit 36d37ac
Show file tree
Hide file tree
Showing 8 changed files with 567 additions and 591 deletions.
138 changes: 68 additions & 70 deletions src/Modix.Web.Wasm/Components/Configuration/Channels.razor
Original file line number Diff line number Diff line change
Expand Up @@ -10,81 +10,79 @@
<PageTitle>Modix - Channels</PageTitle>
<MudText Typo="Typo.h4">Channel Designations</MudText>

<CascadingAuthenticationState>
@if (DesignatedChannelMappings is not null && DesignatedChannelTypes is not null)
{
<MudDialog @bind-IsVisible="_createDialogVisible" Options="new DialogOptions { FullWidth= true }">
<TitleContent>
<MudText Typo="Typo.h5">Assign a Channel</MudText>
</TitleContent>
<DialogContent>
<AutoComplete T="ChannelInformation"
SearchFunc="(query) => AutoCompleteChannels(query)"
Placeholder="@("#general")"
SelectedItemChanged="SelectedChannelChanged"
Title="Channel Name" />
<MudText Class="mt-5" Typo="Typo.h5">Designation</MudText>
<MudSelect T="DesignatedChannelType?" @bind-Value="_selectedDesignatedChannelType">
@foreach (var designation in DesignatedChannelTypes)
{
<MudSelectItem T="DesignatedChannelType?" Value="@designation"></MudSelectItem>
}
</MudSelect>
</DialogContent>
<DialogActions>
<MudButton Variant="Variant.Filled"
Disabled="_selectedDesignatedChannelType is null || _selectedChannel is null"
Color="Color.Success"
OnClick="SaveDesignation">
Assign
</MudButton>
<MudSpacer />
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="ToggleCreateDialog">Cancel</MudButton>
</DialogActions>
</MudDialog>

<MudPaper>
<MudList Clickable="true" DisablePadding="true">
@foreach (var designatedChannelType in DesignatedChannelTypes.OrderBy(x => x.ToString()))
@if (DesignatedChannelMappings is not null && DesignatedChannelTypes is not null)
{
<MudDialog @bind-IsVisible="_createDialogVisible" Options="new DialogOptions { FullWidth= true }">
<TitleContent>
<MudText Typo="Typo.h5">Assign a Channel</MudText>
</TitleContent>
<DialogContent>
<AutoComplete T="ChannelInformation"
SearchFunc="(query) => AutoCompleteChannels(query)"
Placeholder="@("#general")"
SelectedItemChanged="SelectedChannelChanged"
Title="Channel Name" />
<MudText Class="mt-5" Typo="Typo.h5">Designation</MudText>
<MudSelect T="DesignatedChannelType?" @bind-Value="_selectedDesignatedChannelType">
@foreach (var designation in DesignatedChannelTypes)
{
<MudListItem DisableRipple="true">
<div class="d-flex align-center">
<div>
<MudText>
<b>@designatedChannelType.ToString().Titleize()</b>
<MudSelectItem T="DesignatedChannelType?" Value="@designation"></MudSelectItem>
}
</MudSelect>
</DialogContent>
<DialogActions>
<MudButton Variant="Variant.Filled"
Disabled="_selectedDesignatedChannelType is null || _selectedChannel is null"
Color="Color.Success"
OnClick="SaveDesignation">
Assign
</MudButton>
<MudSpacer />
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="ToggleCreateDialog">Cancel</MudButton>
</DialogActions>
</MudDialog>

<MudPaper>
<MudList Clickable="true" DisablePadding="true">
@foreach (var designatedChannelType in DesignatedChannelTypes.OrderBy(x => x.ToString()))
{
<MudListItem DisableRipple="true">
<div class="d-flex align-center">
<div>
<MudText>
<b>@designatedChannelType.ToString().Titleize()</b>
</MudText>
@if (!DesignatedChannelMappings.TryGetValue(designatedChannelType, out var channelDesignations) || !channelDesignations.Any())
{
<MudText Style="color: grey; letter-spacing: 1px" Typo="Typo.caption">
<b>NONE ASSIGNED</b>
</MudText>
@if (!DesignatedChannelMappings.TryGetValue(designatedChannelType, out var channelDesignations) || !channelDesignations.Any())
{
<MudText Style="color: grey; letter-spacing: 1px" Typo="Typo.caption">
<b>NONE ASSIGNED</b>
</MudText>
}
else
}
else
{
@foreach (var designatedChannelMapping in channelDesignations)
{
@foreach (var designatedChannelMapping in channelDesignations)
{
<IndividualDesignation AuthorizationRoleForDelete="@nameof(AuthorizationClaim.DesignatedChannelMappingDelete)"
Id="@designatedChannelMapping.Id"
NamePrefix="@("#")"
Name="@designatedChannelMapping.Name"
RemoveDesignation="(id) => RemoveDesignation(id, designatedChannelMapping.ChannelDesignation)" />
}
<IndividualDesignation AuthorizationRoleForDelete="@nameof(AuthorizationClaim.DesignatedChannelMappingDelete)"
Id="@designatedChannelMapping.Id"
NamePrefix="@("#")"
Name="@designatedChannelMapping.Name"
RemoveDesignation="(id) => RemoveDesignation(id, designatedChannelMapping.ChannelDesignation)" />
}
</div>
<MudSpacer />
<div>
<AuthorizeView Roles="@nameof(AuthorizationClaim.DesignatedChannelMappingCreate)">
<MudIconButton OnClick="ToggleCreateDialog" Icon="@Icons.Material.Filled.Add" Variant="Variant.Filled" Color="Color.Success" />
</AuthorizeView>
</div>
}
</div>
</MudListItem>
<MudDivider />
}
</MudList>
</MudPaper>
}
</CascadingAuthenticationState>
<MudSpacer />
<div>
<AuthorizeView Roles="@nameof(AuthorizationClaim.DesignatedChannelMappingCreate)">
<MudIconButton OnClick="ToggleCreateDialog" Icon="@Icons.Material.Filled.Add" Variant="Variant.Filled" Color="Color.Success" />
</AuthorizeView>
</div>
</div>
</MudListItem>
<MudDivider />
}
</MudList>
</MudPaper>
}

@code {
[Inject]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,49 +1,47 @@
@using Microsoft.AspNetCore.Components.Authorization
@using MudBlazor

<CascadingAuthenticationState>
<MudButtonGroup Class="mr-1" OverrideStyles="false">
<MudButton Style="text-transform: unset"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Info">
@NamePrefix@Name
</MudButton>
<AuthorizeView Roles="@AuthorizationRoleForDelete">
@if (!_showConfirm)
{
<MudButton OnClick="() => _showConfirm = true"
Style="min-width: unset"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Error">
X
</MudButton>
}
else
{
<MudButton Disabled="true">Remove Designation?</MudButton>

<MudButton OnClick="() => RemoveDesignation.InvokeAsync(Id)"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Success">
Yes
</MudButton>
<MudButton OnClick="() => _showConfirm = false"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Error">
No
</MudButton>
}
</AuthorizeView>
</MudButtonGroup>
</CascadingAuthenticationState>
<MudButtonGroup Class="mr-1" OverrideStyles="false">
<MudButton Style="text-transform: unset"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Info">
@NamePrefix@Name
</MudButton>
<AuthorizeView Roles="@AuthorizationRoleForDelete">
@if (!_showConfirm)
{
<MudButton OnClick="() => _showConfirm = true"
Style="min-width: unset"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Error">
X
</MudButton>
}
else
{
<MudButton Disabled="true">Remove Designation?</MudButton>

<MudButton OnClick="() => RemoveDesignation.InvokeAsync(Id)"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Success">
Yes
</MudButton>
<MudButton OnClick="() => _showConfirm = false"
DisableElevation="true"
Size="Size.Small"
Variant="Variant.Filled"
Color="Color.Error">
No
</MudButton>
}
</AuthorizeView>
</MudButtonGroup>

@code {
[Parameter, EditorRequired]
Expand Down
142 changes: 70 additions & 72 deletions src/Modix.Web.Wasm/Components/Configuration/Roles.razor
Original file line number Diff line number Diff line change
Expand Up @@ -8,83 +8,81 @@
<PageTitle>Modix - Roles</PageTitle>
<MudText Typo="Typo.h4">Role Designations</MudText>

<CascadingAuthenticationState>
@if (DesignatedRoleMappings is not null && DesignatedRoleTypes is not null)
{
<MudDialog @bind-IsVisible="_createDialogVisible" Options="new DialogOptions { FullWidth= true }">
<TitleContent>
<MudText Typo="Typo.h5">Assign a Role</MudText>
</TitleContent>
<DialogContent>
<AutoComplete T="RoleInformation"
SearchFunc="(query) => AutoCompleteRoles(query)"
Placeholder="@("@Administrator")"
SelectedItemChanged="SelectedRoleChanged"
Title="Role Name"
/>

<MudText Class="mt-5" Typo="Typo.h5">Designation</MudText>
<MudSelect T="DesignatedRoleType?" @bind-Value="_selectedDesignatedRoleType">
@foreach (var designation in DesignatedRoleTypes)
{
<MudSelectItem T="DesignatedRoleType?" Value="@designation"></MudSelectItem>
}
</MudSelect>
</DialogContent>
<DialogActions>
<MudButton Variant="Variant.Filled"
Disabled="_selectedDesignatedRoleType is null || _selectedRole is null"
Color="Color.Success"
OnClick="SaveDesignation">
Assign
</MudButton>
<MudSpacer />
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="ToggleCreateDialog">Cancel</MudButton>
</DialogActions>
</MudDialog>

<MudPaper>
<MudList Clickable="true" DisablePadding="true">
@foreach (var designatedRoleType in DesignatedRoleTypes.OrderBy(x => x.ToString()))
@if (DesignatedRoleMappings is not null && DesignatedRoleTypes is not null)
{
<MudDialog @bind-IsVisible="_createDialogVisible" Options="new DialogOptions { FullWidth= true }">
<TitleContent>
<MudText Typo="Typo.h5">Assign a Role</MudText>
</TitleContent>
<DialogContent>
<AutoComplete T="RoleInformation"
SearchFunc="(query) => AutoCompleteRoles(query)"
Placeholder="@("@Administrator")"
SelectedItemChanged="SelectedRoleChanged"
Title="Role Name"
/>

<MudText Class="mt-5" Typo="Typo.h5">Designation</MudText>
<MudSelect T="DesignatedRoleType?" @bind-Value="_selectedDesignatedRoleType">
@foreach (var designation in DesignatedRoleTypes)
{
<MudListItem DisableRipple="true">
<div class="d-flex align-center">
<div>
<MudText>
<b>@designatedRoleType.ToString().Titleize()</b>
<MudSelectItem T="DesignatedRoleType?" Value="@designation"></MudSelectItem>
}
</MudSelect>
</DialogContent>
<DialogActions>
<MudButton Variant="Variant.Filled"
Disabled="_selectedDesignatedRoleType is null || _selectedRole is null"
Color="Color.Success"
OnClick="SaveDesignation">
Assign
</MudButton>
<MudSpacer />
<MudButton Variant="Variant.Filled" Color="Color.Error" OnClick="ToggleCreateDialog">Cancel</MudButton>
</DialogActions>
</MudDialog>

<MudPaper>
<MudList Clickable="true" DisablePadding="true">
@foreach (var designatedRoleType in DesignatedRoleTypes.OrderBy(x => x.ToString()))
{
<MudListItem DisableRipple="true">
<div class="d-flex align-center">
<div>
<MudText>
<b>@designatedRoleType.ToString().Titleize()</b>
</MudText>
@if (!DesignatedRoleMappings.TryGetValue(designatedRoleType, out var roleDesignations) || !roleDesignations.Any())
{
<MudText Style="color: grey; letter-spacing: 1px" Typo="Typo.caption">
<b>NONE ASSIGNED</b>
</MudText>
@if (!DesignatedRoleMappings.TryGetValue(designatedRoleType, out var roleDesignations) || !roleDesignations.Any())
{
<MudText Style="color: grey; letter-spacing: 1px" Typo="Typo.caption">
<b>NONE ASSIGNED</b>
</MudText>
}
else
}
else
{
@foreach (var designatedRoleMapping in roleDesignations)
{
@foreach (var designatedRoleMapping in roleDesignations)
{
<IndividualDesignation AuthorizationRoleForDelete="@nameof(AuthorizationClaim.DesignatedRoleMappingDelete)"
Id="@designatedRoleMapping.Id"
NamePrefix="@("@")"
Name="@designatedRoleMapping.Name"
RemoveDesignation="(id) => RemoveDesignation(id, designatedRoleMapping.RoleDesignation)" />
}
<IndividualDesignation AuthorizationRoleForDelete="@nameof(AuthorizationClaim.DesignatedRoleMappingDelete)"
Id="@designatedRoleMapping.Id"
NamePrefix="@("@")"
Name="@designatedRoleMapping.Name"
RemoveDesignation="(id) => RemoveDesignation(id, designatedRoleMapping.RoleDesignation)" />
}
</div>
<MudSpacer />
<div>
<AuthorizeView Roles="@nameof(AuthorizationClaim.DesignatedRoleMappingCreate)">
<MudIconButton OnClick="ToggleCreateDialog" Icon="@Icons.Material.Filled.Add" Variant="Variant.Filled" Color="Color.Success" />
</AuthorizeView>
</div>
}
</div>
</MudListItem>
<MudDivider />
}
</MudList>
</MudPaper>
}
</CascadingAuthenticationState>
<MudSpacer />
<div>
<AuthorizeView Roles="@nameof(AuthorizationClaim.DesignatedRoleMappingCreate)">
<MudIconButton OnClick="ToggleCreateDialog" Icon="@Icons.Material.Filled.Add" Variant="Variant.Filled" Color="Color.Success" />
</AuthorizeView>
</div>
</div>
</MudListItem>
<MudDivider />
}
</MudList>
</MudPaper>
}

@code {
[Inject]
Expand Down
Loading

0 comments on commit 36d37ac

Please sign in to comment.