Browse Source

Remove RequiredPolicy from entity actions and use Visible property.

pull/6647/head
Ilkay Ilknur 6 years ago
parent
commit
13099f702a
  1. 3
      framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/EntityActions/EntityAction.cs
  2. 2
      framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
  3. 6
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor
  4. 11
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs
  5. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor
  6. 6
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs
  7. 2
      framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs
  8. 6
      modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs
  9. 6
      modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs
  10. 6
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs

3
framework/src/Volo.Abp.AspNetCore.Components.Web/Volo/Abp/AspNetCore/Components/Web/Extensibility/EntityActions/EntityAction.cs

@ -7,12 +7,11 @@ namespace Volo.Abp.AspNetCore.Components.Web.Extensibility.EntityActions
{
public string Text { get; set; }
public Func<object, Task> Clicked { get; set; }
public string RequiredPolicy { get; set; }
public Func<object, string> ConfirmationMessage { get; set; }
public bool Primary { get; set; }
public object Color { get; set; }
public string Icon { get; set; }
public Func<object, Task<bool>> Visible { get; set; }
public Func<object, bool> Visible { get; set; }
public bool Equals(EntityAction other)
{
return string.Equals(Text, other?.Text, StringComparison.OrdinalIgnoreCase);

2
framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs

@ -214,11 +214,11 @@ namespace Volo.Abp.BlazoriseUI
protected override async Task OnInitializedAsync()
{
await SetPermissionsAsync();
await SetEntityActionsAsync();
await SetTableColumnsAsync();
await SetToolbarItemsAsync();
await SetBreadcrumbItemsAsync();
await SetPermissionsAsync();
}
protected virtual async Task SetPermissionsAsync()

6
framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor

@ -25,23 +25,21 @@
if (action.ConfirmationMessage != null)
{
<EntityAction TItem="TItem"
RequiredPolicy="@action.RequiredPolicy"
Color="@(action.Color!=null ? (Blazorise.Color)action.Color : Blazorise.Color.Primary)"
Icon="@action.Icon"
Clicked="async () => await action.Clicked(context)"
ConfirmationMessage="() => action.ConfirmationMessage.Invoke(context)"
Visible="async () => await VisibleCore(action, context)"
Visible="@(action.Visible!=null ? action.Visible(context) : true)"
Text="@action.Text">
</EntityAction>
}
else
{
<EntityAction TItem="TItem"
RequiredPolicy="@action.RequiredPolicy"
Clicked="async () => await action.Clicked(context)"
Color="@(action.Color!=null ? (Blazorise.Color)action.Color : Blazorise.Color.None)"
Icon="@action.Icon"
Visible="async () => await VisibleCore(action, context)"
Visible="@(action.Visible!=null ? action.Visible(context) : true)"
Text="@action.Text">
</EntityAction>
}

11
framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs

@ -46,16 +46,5 @@ namespace Volo.Abp.BlazoriseUI.Components
builder.CloseComponent();
};
}
protected async Task<bool> VisibleCore(EntityAction action, TItem item)
{
var isVisible = true;
if (action.Visible != null)
{
isVisible = await action.Visible.Invoke(item);
}
return isVisible;
}
}
}

2
framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor

@ -1,6 +1,6 @@
@typeparam TItem
@if (IsVisible && HasPermission)
@if (Visible && HasPermission)
{
if (ParentActions.Type == ActionType.Dropdown)
{

6
framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs

@ -10,7 +10,7 @@ namespace Volo.Abp.BlazoriseUI.Components
public partial class EntityAction<TItem> : ComponentBase
{
[Parameter]
public bool IsVisible { get; set; } = true;
public bool Visible { get; set; }
internal bool HasPermission { get; set; } = true;
@ -36,9 +36,6 @@ namespace Volo.Abp.BlazoriseUI.Components
[Parameter]
public string Icon { get; set; }
[Parameter]
public Func<Task<bool>> Visible { get; set; }
[CascadingParameter]
public EntityActions<TItem> ParentActions { get; set; }
@ -52,6 +49,7 @@ namespace Volo.Abp.BlazoriseUI.Components
{
await base.OnInitializedAsync();
await SetDefaultValuesAsync();
if (!RequiredPolicy.IsNullOrEmpty())
{
HasPermission = await AuthorizationService.IsGrantedAsync(RequiredPolicy);

2
framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs

@ -52,7 +52,7 @@ namespace Volo.Abp.BlazoriseUI.Components
{
if (ParentEntityActionsColumn != null)
{
ParentEntityActionsColumn.Displayable = Actions.Any(t => t.IsVisible && t.HasPermission);
ParentEntityActionsColumn.Displayable = Actions.Any(t => t.Visible && t.HasPermission);
}
await InvokeAsync(StateHasChanged);

6
modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs

@ -48,13 +48,13 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
new EntityAction
{
Text = L["Edit"],
RequiredPolicy = UpdatePolicyName,
Visible = (data) => HasUpdatePermission,
Clicked = async (data) => { await OpenEditModalAsync(data.As<IdentityRoleDto>()); }
},
new EntityAction
{
Text = L["Permissions"],
RequiredPolicy = ManagePermissionsPolicyName,
Visible = (data) => HasManagePermissionsPermission,
Clicked = async (data) =>
{
await PermissionManagementModal.OpenAsync(PermissionProviderName,
@ -64,7 +64,7 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
new EntityAction
{
Text = L["Delete"],
RequiredPolicy = DeletePolicyName,
Visible = (data) => HasDeletePermission,
Clicked = async (data) => await DeleteEntityAsync(data.As<IdentityRoleDto>()),
ConfirmationMessage = (data) => GetDeleteConfirmationMessage(data.As<IdentityRoleDto>())
}

6
modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs

@ -137,13 +137,13 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
new EntityAction
{
Text = L["Edit"],
RequiredPolicy = UpdatePolicyName,
Visible = (data) => HasUpdatePermission,
Clicked = async (data) => await OpenEditModalAsync(data.As<IdentityUserDto>())
},
new EntityAction
{
Text = L["Permissions"],
RequiredPolicy = ManagePermissionsPolicyName,
Visible = (data) => HasManagePermissionsPermission,
Clicked = async (data) =>
{
await PermissionManagementModal.OpenAsync(PermissionProviderName,
@ -153,7 +153,7 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
new EntityAction
{
Text = L["Delete"],
RequiredPolicy = DeletePolicyName,
Visible = (data) => HasDeletePermission,
Clicked = async (data) => await DeleteEntityAsync(data.As<IdentityUserDto>()),
ConfirmationMessage = (data) => GetDeleteConfirmationMessage(data.As<IdentityUserDto>())
}

6
modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs

@ -70,13 +70,13 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
new EntityAction
{
Text = L["Edit"],
RequiredPolicy = UpdatePolicyName,
Visible = (data) => HasUpdatePermission,
Clicked = async (data) => { await OpenEditModalAsync(data.As<TenantDto>()); }
},
new EntityAction
{
Text = L["Features"],
RequiredPolicy = ManageFeaturesPolicyName,
Visible = (data) => HasManageFeaturesPermission,
Clicked = async (data) =>
{
var tenant = data.As<TenantDto>();
@ -86,7 +86,7 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
new EntityAction
{
Text = L["Delete"],
RequiredPolicy = DeletePolicyName,
Visible = (data) => HasDeletePermission,
Clicked = async (data) => await DeleteEntityAsync(data.As<TenantDto>()),
ConfirmationMessage = (data) => GetDeleteConfirmationMessage(data.As<TenantDto>())
}

Loading…
Cancel
Save