From a4b069cf6fd22d638cf95fa7e69ba81d4b91651e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Feb 2019 11:55:14 +0300 Subject: [PATCH] permission modal refactor --- .../PermissionGrantInfoDto.cs | 4 ++- .../PermissionAppService.cs | 5 +-- .../PermissionManagementModal.cshtml | 8 ++--- .../PermissionManagementModal.cshtml.cs | 8 +++-- .../permission-management-modal.js | 34 +++++++++++++------ 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs index de99509fd6..4bb3423bd4 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs @@ -12,6 +12,8 @@ namespace Volo.Abp.PermissionManagement public bool IsGranted { get; set; } - public List Providers { get; set; } + public List AllowedProviders { get; set; } + + public List GrantedProviders { get; set; } } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index a1ec3e99fc..560c5b87f1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -62,7 +62,8 @@ namespace Volo.Abp.PermissionManagement Name = permission.Name, DisplayName = permission.DisplayName.Localize(_stringLocalizerFactory), ParentName = permission.Parent?.Name, - Providers = new List() + AllowedProviders = permission.Providers, + GrantedProviders = new List() }; var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey); @@ -71,7 +72,7 @@ namespace Volo.Abp.PermissionManagement foreach (var provider in grantInfo.Providers) { - grantInfoDto.Providers.Add(new ProviderInfoDto + grantInfoDto.GrantedProviders.Add(new ProviderInfoDto { ProviderName = provider.Name, ProviderKey = provider.Key, diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index 61af1ac21a..c9c47d4483 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -25,8 +25,8 @@ @L["All"] - @@ -38,7 +38,7 @@ var hideTabOnProviderToggle = true; @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - if (!((Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true)) + if (!(!Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true)) { hideTabOnProviderToggle = false; break; @@ -48,7 +48,7 @@ @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - var hidePermissonOnProviderToggle = (Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true; + var hidePermissonOnProviderToggle = !Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true;
Providers { get; set; } + public List AllowedProviders { get; set; } + + public List GrantedProviders { get; set; } public bool IsDisabled(string currentProviderName) { - return IsGranted && Providers.All(p => p.ProviderName != currentProviderName); + return IsGranted && GrantedProviders.All(p => p.ProviderName != currentProviderName); } public string GetShownName(string currentProviderName) @@ -124,7 +126,7 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement return string.Format( "{0} ({1})", DisplayName, - Providers + GrantedProviders .Where(p => p.ProviderName != currentProviderName) .Select(p => p.ProviderName) .JoinAsString(", ") diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 438433b6be..900e404c09 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -35,6 +35,17 @@ }); } + function togglePermissions(radioButton) { + if (radioButton.val() == '1') { + $('.hidePermissonOnProviderToggle').slideUp(); + $('.hideTabOnProviderToggle').slideUp(); + } + else { + $('.hidePermissonOnProviderToggle').slideDown(); + $('.hideTabOnProviderToggle').slideDown(); + } + } + this.initDom = function($el) { $el.find('.tab-pane').each(function () { var $tab = $(this); @@ -48,18 +59,19 @@ } }); }); - $('input:radio[name="ShowOnlyProviderPermissonsToggle"]').change( - function () { - if ($(this).val() == '1') { - $('.hidePermissonOnProviderToggle').slideUp(); - $('.hideTabOnProviderToggle').slideUp(); - } - else { - $('.hidePermissonOnProviderToggle').slideDown(); - $('.hideTabOnProviderToggle').slideDown(); - } - }); }); + + var radioButton = $('input:radio[name="ShowOnlyProviderPermissonsToggle"]'); + + if ($('#ShowOnlyProviderPermissonsLabel').hasClass('active')) { + $('.hidePermissonOnProviderToggle').slideUp(); + $('.hideTabOnProviderToggle').slideUp(); + } + + radioButton.change( + function () { + togglePermissions($(this)); + }); }; }; })(jQuery); \ No newline at end of file