From 381140c32e26b10082cf434537e46af9d69b9da5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 18 Apr 2019 14:02:31 +0300 Subject: [PATCH] AbpTenantManagement permisson improvements --- ...bpTenantManagementPermissionDefinitionProvider.cs | 1 + .../Localization/ApplicationContracts/en.json | 1 + .../Localization/ApplicationContracts/tr.json | 1 + .../TenantManagement/TenantManagementPermissions.cs | 4 +++- .../Volo/Abp/TenantManagement/TenantAppService.cs | 3 +++ .../AbpTenantManagementWebModule.cs | 1 + .../Pages/TenantManagement/Tenants/Index.js | 12 ++++-------- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs index 5a2e2e9d46..980e7ccbbc 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/AbpTenantManagementPermissionDefinitionProvider.cs @@ -16,6 +16,7 @@ namespace Volo.Abp.TenantManagement tenantsPermission.AddChild(TenantManagementPermissions.Tenants.Update, L("Permission:Edit"), multiTenancySide: MultiTenancySides.Host); tenantsPermission.AddChild(TenantManagementPermissions.Tenants.Delete, L("Permission:Delete"), multiTenancySide: MultiTenancySides.Host); tenantsPermission.AddChild(TenantManagementPermissions.Tenants.ManageFeatures, L("Permission:ManageFeatures"), multiTenancySide: MultiTenancySides.Host); + tenantsPermission.AddChild(TenantManagementPermissions.Tenants.ManageConnectionStrings, L("Permission:ManageConnectionStrings"), multiTenancySide: MultiTenancySides.Host); } private static LocalizableString L(string name) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json index c153af5e10..5107cd269b 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/en.json @@ -5,6 +5,7 @@ "Permission:Create": "Create", "Permission:Edit": "Edit", "Permission:Delete": "Delete", + "Permission:ManageConnectionStrings": "Manage connection strings", "Permission:ManageFeatures": "Manage features" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json index 8ff9d2c2d5..d745a400c3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/Localization/ApplicationContracts/tr.json @@ -5,6 +5,7 @@ "Permission:Create": "Oluşturma", "Permission:Edit": "Düzenleme", "Permission:Delete": "Silme", + "Permission:ManageConnectionStrings": "Bağlantı cümlelerini yönet", "Permission:ManageFeatures": "Özellikleri yönet" } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs index 8afdfbe8d5..6bc90271bc 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementPermissions.cs @@ -11,6 +11,7 @@ public const string Update = Default + ".Update"; public const string Delete = Default + ".Delete"; public const string ManageFeatures = Default + ".ManageFeatures"; + public const string ManageConnectionStrings = Default + ".ManageConnectionStrings"; } public static string[] GetAll() @@ -22,7 +23,8 @@ Tenants.Create, Tenants.Update, Tenants.Delete, - Tenants.ManageFeatures + Tenants.ManageFeatures, + Tenants.ManageConnectionStrings }; } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs index fa1571a617..6019b67f1c 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs @@ -80,12 +80,14 @@ namespace Volo.Abp.TenantManagement await TenantRepository.DeleteAsync(tenant); } + [Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] public async Task GetDefaultConnectionStringAsync(Guid id) { var tenant = await TenantRepository.GetAsync(id); return tenant?.FindDefaultConnectionString(); } + [Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] public async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString) { var tenant = await TenantRepository.GetAsync(id); @@ -93,6 +95,7 @@ namespace Volo.Abp.TenantManagement await TenantRepository.UpdateAsync(tenant); } + [Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)] public async Task DeleteDefaultConnectionStringAsync(Guid id) { var tenant = await TenantRepository.GetAsync(id); diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs index 8ea03c99f3..855fa24bb3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs @@ -61,6 +61,7 @@ namespace Volo.Abp.TenantManagement.Web options.Conventions.AuthorizePage("/TenantManagement/Tenants/Index", TenantManagementPermissions.Tenants.Default); options.Conventions.AuthorizePage("/TenantManagement/Tenants/CreateModal", TenantManagementPermissions.Tenants.Create); options.Conventions.AuthorizePage("/TenantManagement/Tenants/EditModal", TenantManagementPermissions.Tenants.Update); + options.Conventions.AuthorizePage("/TenantManagement/Tenants/ConnectionStrings", TenantManagementPermissions.Tenants.ManageConnectionStrings); }); } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js index 09a9cc90c5..18d0cceafc 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js @@ -25,7 +25,7 @@ [ { text: l('Edit'), - visible: function () { return true; }, //TODO: Check permission + visible: abp.auth.isGranted('AbpTenantManagement.Tenants.Update'), action: function (data) { _editModal.open({ id: data.record.id @@ -34,9 +34,7 @@ }, { text: l('ConnectionStrings'), - visible: function () { - return true; //TODO: Check permission - }, + visible: abp.auth.isGranted('AbpTenantManagement.Tenants.ManageConnectionStrings'), action: function (data) { _connectionStringsModal.open({ id: data.record.id @@ -45,9 +43,7 @@ }, { text: l('Features'), - visible: function () { - return true; //TODO: Check permission - }, + visible: abp.auth.isGranted('AbpTenantManagement.Tenants.ManageFeatures'), action: function (data) { _featuresModal.open({ providerName: 'Tenant', @@ -57,7 +53,7 @@ }, { text: l('Delete'), - visible: function () { return true; }, //TODO: Check permission + visible: abp.auth.isGranted('AbpTenantManagement.Tenants.Delete'), confirmMessage: function (data) { return l('TenantDeletionConfirmationMessage', data.record.name)}, action: function (data) { _tenantAppService