Browse Source

feat(permission-management): update resource permission management modal with dynamic provider key selection

pull/24374/head
maliming 11 months ago
parent
commit
0e5cce38b1
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 3
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs
  2. 3
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserResourcePermissionProviderKeyLookupService.cs
  3. 9
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/AddResourcePermissionManagementModal.cshtml
  4. 36
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/add-resource-permission-management-modal.js

3
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions.Resources;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Identity.Localization;
@ -11,7 +12,7 @@ namespace Volo.Abp.PermissionManagement.Identity;
public class RoleResourcePermissionProviderKeyLookupService : IResourcePermissionProviderKeyLookupService, ITransientDependency
{
public string Name => "Role";
public string Name => RoleResourcePermissionValueProvider.ProviderName;
public ILocalizableString DisplayName { get; }

3
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserResourcePermissionProviderKeyLookupService.cs

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions.Resources;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Identity.Localization;
@ -11,7 +12,7 @@ namespace Volo.Abp.PermissionManagement.Identity;
public class UserResourcePermissionProviderKeyLookupService : IResourcePermissionProviderKeyLookupService, ITransientDependency
{
public string Name => "User";
public string Name => UserResourcePermissionValueProvider.ProviderName;
public ILocalizableString DisplayName { get; }

9
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/AddResourcePermissionManagementModal.cshtml

@ -16,7 +16,7 @@
<script src="/Pages/AbpPermissionManagement/add-resource-permission-management-modal.js"></script>
<form method="post" asp-page="/AbpPermissionManagement/AddResourcePermissionManagementModal">
<abp-modal>
<abp-modal id="addResourcePermissionManagementModal">
<abp-modal-header title="@(L["AddResourcePermissions"].Value)"></abp-modal-header>
<input asp-for="@Model.ResourceName" />
<input asp-for="@Model.ResourceKey" />
@ -38,7 +38,12 @@
}
</div>
</div>
<abp-input asp-for="@Model.AddModel.ProviderKey"/>
<div class="mb-3">
<label class="form-label" for="AddModel.ProviderKey">ProviderKey:</label>
<select asp-for="@Model.AddModel.ProviderKey" id="AddModel.ProviderKey" class="form-control"></select>
</div>
<div class="mb-3" id="permissionList">
<div class="mb-1 d-flex align-items-center justify-content-between">
<label class="form-labe">Permissions:</label>

36
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/add-resource-permission-management-modal.js

@ -8,4 +8,40 @@ var abp = abp || {};
$items.on("change", function () {
$all.prop("checked", $items.length === $items.filter(":checked").length);
});
var $providerKey = $("#AddModel\\.ProviderKey");
$providerKey.select2({
ajax: {
url: '/api/permission-management/permissions/search-resource-provider-keys',
delay: 250,
dataType: "json",
data: function (params) {
var query = {};
query["serviceName"] = $('input[name="AddModel.ProviderName"]:checked').val();
query["filter"] = params.term;
return query;
},
processResults: function (data) {
var keyValues = [];
data.keys.forEach(function (item, index) {
keyValues.push({
id: item["providerKey"],
text: item["providerDisplayName"],
displayName: item["providerDisplayName"]
})
});
return {
results: keyValues
};
}
},
width: '100%',
dropdownParent: $('#addResourcePermissionManagementModal'),
language: abp.localization.currentCulture.cultureName
});
$('input[name="AddModel.ProviderName"]').change(function () {
$providerKey.val(null).trigger('change');
});
})(jQuery);

Loading…
Cancel
Save