From 03d68743413c02d2f01d9f96acb5fd0975610f58 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 28 Dec 2020 10:17:12 +0300 Subject: [PATCH 1/4] Fix SolutionModuleAdder.RemoveProjectByPostFix --- .../Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 4eae8ace8f..acb723236b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -206,6 +206,12 @@ namespace Volo.Abp.Cli.ProjectModification { var srcPath = Path.Combine(Path.GetDirectoryName(moduleSolutionFile), targetFolder); var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d=> d.EndsWith(postFix)); + + if(projectFolderPath == null) + { + return; + } + await SolutionFileModifier.RemoveProjectFromSolutionFileAsync(moduleSolutionFile, new DirectoryInfo(projectFolderPath).Name); if (Directory.Exists(projectFolderPath)) From 55f8c1670c8faecc3bbbb1c9c4968e6f9baf71b0 Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Mon, 28 Dec 2020 17:27:10 +0300 Subject: [PATCH 2/4] set lookup property display name to the text field. --- .../ObjectExtending/Modularity/EntityExtensionConfiguration.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs index 6733688a91..c2b56515b4 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs @@ -67,7 +67,8 @@ namespace Volo.Abp.ObjectExtending.Modularity lookupTextPropertyName, () => new ExtensionPropertyConfiguration(this, typeof(string), lookupTextPropertyName) ); - lookupTextPropertyInfo.DisplayName = propertyInfo.DisplayName ?? new FixedLocalizableString(propertyInfo.Name); + + lookupTextPropertyInfo.DisplayName = propertyInfo.DisplayName; } [NotNull] From 5c91b5af8ef95fc447f0ab35457de387eac53b1e Mon Sep 17 00:00:00 2001 From: Ilkay Ilknur Date: Mon, 28 Dec 2020 17:27:47 +0300 Subject: [PATCH 3/4] handle lookup property table header localization. --- .../ui-extensions.js | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js index eacfecc867..e6061219b0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js @@ -96,7 +96,7 @@ get: _get }; })(); - + function initializeObjectExtensions() { var getShortEnumTypeName = function (enumType) { @@ -149,7 +149,7 @@ return defaultValue; } - + function localizeEnumMember(property, enumMemberValue) { var enumType = property.config.type; var enumInfo = abp.objectExtensions.enums[enumType]; @@ -188,10 +188,28 @@ var propertyName = propertyNames[i]; var propertyConfig = objectConfig.properties[propertyName]; if (propertyConfig.ui.onTable.isVisible) { - tableProperties.push({ - name: propertyName, - config: propertyConfig - }); + if (propertyName.endsWith("_Text")) { + var lookupPropertyName = propertyName.replace("_Text", ""); + var lookupProperty = objectConfig.properties[lookupPropertyName]; + if (lookupProperty) { + tableProperties.push({ + name: propertyName, + config: propertyConfig, + lookupPropertyName: lookupPropertyName, + lookupPropertyDisplayName: lookupProperty.displayName + }); + } else { + tableProperties.push({ + name: propertyName, + config: propertyConfig, + }); + } + } else { + tableProperties.push({ + name: propertyName, + config: propertyConfig, + }); + } } } @@ -199,19 +217,23 @@ } function getValueFromRow(property, row) { - return row.extraProperties[property.name];; + return row.extraProperties[property.name]; } function convertPropertyToColumnConfig(property) { var columnConfig = { - title: localizeDisplayName(property.name, property.config.displayName), data: "extraProperties." + property.name, orderable: false }; + if (property.lookupPropertyName) { + columnConfig.title = localizeDisplayName(property.lookupPropertyName, property.lookupPropertyDisplayName); + } else { + columnConfig.title = localizeDisplayName(property.name, property.config.displayName); + } if (property.config.typeSimple === 'enum') { - columnConfig.render = function(data, type, row) { + columnConfig.render = function (data, type, row) { var value = getValueFromRow(property, row); return localizeEnumMember(property, value); } From 912a24702653845632dc9f42ce5930b801ab0f78 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 31 Dec 2020 16:22:40 +0800 Subject: [PATCH 4/4] Remove permission Grants when role is delete --- .../Identity/RoleDeletedEventHandler.cs | 26 +++++++++++++++++++ .../IPermissionManager.cs | 4 ++- .../PermissionManagement/PermissionManager.cs | 12 ++++++++- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleDeletedEventHandler.cs diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleDeletedEventHandler.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleDeletedEventHandler.cs new file mode 100644 index 0000000000..806a37de7c --- /dev/null +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleDeletedEventHandler.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.EventBus; +using Volo.Abp.Identity; + +namespace Volo.Abp.PermissionManagement.Identity +{ + public class RoleDeletedEventHandler : + ILocalEventHandler>, + ITransientDependency + { + protected IPermissionManager PermissionManager { get; } + + public RoleDeletedEventHandler(IPermissionManager permissionManager) + { + PermissionManager = permissionManager; + } + + public virtual async Task HandleEventAsync(EntityDeletedEventData eventData) + { + await PermissionManager.DeleteAsync(RolePermissionValueProvider.ProviderName, eventData.Entity.Name); + } + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManager.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManager.cs index 26310a12fe..70bb83a7d0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManager.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManager.cs @@ -15,5 +15,7 @@ namespace Volo.Abp.PermissionManagement Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted); Task UpdateProviderKeyAsync(PermissionGrant permissionGrant, string providerKey); + + Task DeleteAsync(string providerName, string providerKey); } -} \ No newline at end of file +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs index 9a2a89e340..fc8da0c6c5 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs @@ -111,6 +111,16 @@ namespace Volo.Abp.PermissionManagement return await PermissionGrantRepository.UpdateAsync(permissionGrant); } + public virtual async Task DeleteAsync(string providerName, string providerKey) + { + var permissionGrants = await PermissionGrantRepository.GetListAsync(providerName, providerKey); + //TODO: Use DeleteManyAsync method + foreach (var permissionGrant in permissionGrants) + { + await PermissionGrantRepository.DeleteAsync(permissionGrant); + } + } + protected virtual async Task GetInternalAsync(PermissionDefinition permission, string providerName, string providerKey) { var result = new PermissionWithGrantedProviders(permission.Name, false); @@ -143,4 +153,4 @@ namespace Volo.Abp.PermissionManagement return result; } } -} \ No newline at end of file +}