Browse Source

permission modal refactor

pull/827/head
Yunus Emre Kalkan 8 years ago
parent
commit
a4b069cf6f
  1. 4
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs
  2. 5
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs
  3. 8
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml
  4. 8
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs
  5. 34
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js

4
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 bool IsGranted { get; set; }
public List<ProviderInfoDto> Providers { get; set; } public List<string> AllowedProviders { get; set; }
public List<ProviderInfoDto> GrantedProviders { get; set; }
} }
} }

5
modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs

@ -62,7 +62,8 @@ namespace Volo.Abp.PermissionManagement
Name = permission.Name, Name = permission.Name,
DisplayName = permission.DisplayName.Localize(_stringLocalizerFactory), DisplayName = permission.DisplayName.Localize(_stringLocalizerFactory),
ParentName = permission.Parent?.Name, ParentName = permission.Parent?.Name,
Providers = new List<ProviderInfoDto>() AllowedProviders = permission.Providers,
GrantedProviders = new List<ProviderInfoDto>()
}; };
var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey); var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey);
@ -71,7 +72,7 @@ namespace Volo.Abp.PermissionManagement
foreach (var provider in grantInfo.Providers) foreach (var provider in grantInfo.Providers)
{ {
grantInfoDto.Providers.Add(new ProviderInfoDto grantInfoDto.GrantedProviders.Add(new ProviderInfoDto
{ {
ProviderName = provider.Name, ProviderName = provider.Name,
ProviderKey = provider.Key, ProviderKey = provider.Key,

8
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml

@ -25,8 +25,8 @@
<input type="radio" value="0" name="ShowOnlyProviderPermissonsToggle" autocomplete="off" <input type="radio" value="0" name="ShowOnlyProviderPermissonsToggle" autocomplete="off"
@(Model.ShowOnlyProviderPermissons ? "" : "checked") /> @L["All"] @(Model.ShowOnlyProviderPermissons ? "" : "checked") /> @L["All"]
</label> </label>
<label class="btn btn-light btn-sm @(!Model.ShowOnlyProviderPermissons? "":"active")"> <label id="ShowOnlyProviderPermissonsLabel" class="btn btn-light btn-sm @(!Model.ShowOnlyProviderPermissons? "":"active")">
<input type="radio" value="1" name="ShowOnlyProviderPermissonsToggle" autocomplete="off" <input type="radio" value="1" name="ShowOnlyProviderPermissonsToggle" id="ShowOnlyProviderPermissonsInput" autocomplete="off"
@(!Model.ShowOnlyProviderPermissons ? "" : "checked") /> @L["OnlyProviderPermissons"] @(!Model.ShowOnlyProviderPermissons ? "" : "checked") /> @L["OnlyProviderPermissons"]
</label> </label>
</div> </div>
@ -38,7 +38,7 @@
var hideTabOnProviderToggle = true; var hideTabOnProviderToggle = true;
@for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) @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; hideTabOnProviderToggle = false;
break; break;
@ -48,7 +48,7 @@
<abp-tab header-class="@(hideTabOnProviderToggle?"hideTabOnProviderToggle":"")" title="@Model.Groups[i].DisplayName" name="v-pills-tab-@Model.Groups[i].GetNormalizedGroupName()"> <abp-tab header-class="@(hideTabOnProviderToggle?"hideTabOnProviderToggle":"")" title="@Model.Groups[i].DisplayName" name="v-pills-tab-@Model.Groups[i].GetNormalizedGroupName()">
@for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) @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;
<div class="@(hidePermissonOnProviderToggle?"hidePermissonOnProviderToggle":"")"> <div class="@(hidePermissonOnProviderToggle?"hidePermissonOnProviderToggle":"")">
<abp-input asp-for="@Model.Groups[i].Permissions[j].IsGranted" <abp-input asp-for="@Model.Groups[i].Permissions[j].IsGranted"
label="@Model.Groups[i].Permissions[j].GetShownName(Model.ProviderName)" label="@Model.Groups[i].Permissions[j].GetShownName(Model.ProviderName)"

8
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs

@ -107,11 +107,13 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement
public bool IsGranted { get; set; } public bool IsGranted { get; set; }
public List<ProviderInfoViewModel> Providers { get; set; } public List<string> AllowedProviders { get; set; }
public List<ProviderInfoViewModel> GrantedProviders { get; set; }
public bool IsDisabled(string currentProviderName) 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) public string GetShownName(string currentProviderName)
@ -124,7 +126,7 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement
return string.Format( return string.Format(
"{0} <span class=\"text-muted\">({1})</span>", "{0} <span class=\"text-muted\">({1})</span>",
DisplayName, DisplayName,
Providers GrantedProviders
.Where(p => p.ProviderName != currentProviderName) .Where(p => p.ProviderName != currentProviderName)
.Select(p => p.ProviderName) .Select(p => p.ProviderName)
.JoinAsString(", ") .JoinAsString(", ")

34
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) { this.initDom = function($el) {
$el.find('.tab-pane').each(function () { $el.find('.tab-pane').each(function () {
var $tab = $(this); 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); })(jQuery);
Loading…
Cancel
Save