From 68f224c95b30a5f2c0070eb050ecbb1aa3a65295 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 27 Apr 2021 17:45:40 +0800 Subject: [PATCH] Add IsActive property to TenantConfiguration. --- .../AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs | 4 +++- .../Pages/Abp/MultiTenancy/AbpTenantAppService.cs | 10 ++++++---- .../Pages/Abp/MultiTenancy/TenantSwitchModal.cshtml.cs | 6 +++--- .../Volo/Abp/MultiTenancy/TenantConfiguration.cs | 5 ++++- .../Abp/MultiTenancy/TenantConfigurationProvider.cs | 9 +++++++++ .../AbpTenantManagementDomainMappingProfile.cs | 3 ++- 6 files changed, 27 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs index d85622f0cf..6f834b18ea 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/MultiTenancy/FindTenantResultDto.cs @@ -10,5 +10,7 @@ namespace Volo.Abp.AspNetCore.Mvc.MultiTenancy public Guid? TenantId { get; set; } public string Name { get; set; } + + public bool IsActive { get; set; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs index d0bea87196..60bdb523ba 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/AbpTenantAppService.cs @@ -28,10 +28,11 @@ namespace Pages.Abp.MultiTenancy { Success = true, TenantId = tenant.Id, - Name = tenant.Name + Name = tenant.Name, + IsActive = tenant.IsActive }; } - + public async Task FindTenantByIdAsync(Guid id) { var tenant = await TenantStore.FindAsync(id); @@ -45,8 +46,9 @@ namespace Pages.Abp.MultiTenancy { Success = true, TenantId = tenant.Id, - Name = tenant.Name + Name = tenant.Name, + IsActive = tenant.IsActive }; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/TenantSwitchModal.cshtml.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/TenantSwitchModal.cshtml.cs index bfdbb98db8..d4f0ff2187 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/TenantSwitchModal.cshtml.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Pages/Abp/MultiTenancy/TenantSwitchModal.cshtml.cs @@ -20,7 +20,7 @@ namespace Pages.Abp.MultiTenancy protected AbpAspNetCoreMultiTenancyOptions Options { get; } public TenantSwitchModalModel( - ITenantStore tenantStore, + ITenantStore tenantStore, IOptions options) { TenantStore = tenantStore; @@ -48,7 +48,7 @@ namespace Pages.Abp.MultiTenancy else { var tenant = await TenantStore.FindAsync(Input.Name); - if (tenant == null) + if (tenant == null || !tenant.IsActive) { throw new UserFriendlyException(L["GivenTenantIsNotAvailable", Input.Name]); } @@ -71,4 +71,4 @@ namespace Pages.Abp.MultiTenancy public string Name { get; set; } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfiguration.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfiguration.cs index e586e687c3..35b3a0e52e 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfiguration.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfiguration.cs @@ -13,12 +13,15 @@ namespace Volo.Abp.MultiTenancy public ConnectionStrings ConnectionStrings { get; set; } + public bool IsActive { get; set; } + public TenantConfiguration() { - + IsActive = true; } public TenantConfiguration(Guid id, [NotNull] string name) + : this() { Check.NotNull(name, nameof(name)); diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs index 81a9c72042..1c3223828d 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs @@ -42,6 +42,15 @@ namespace Volo.Abp.MultiTenancy details: "There is no tenant with the tenant id or name: " + resolveResult.TenantIdOrName ); } + + if (!tenant.IsActive) + { + throw new BusinessException( + code: "Volo.AbpIo.MultiTenancy:010002", + message: "Tenant not active!", + details: "The tenant is no active with the tenant id or name: " + resolveResult.TenantIdOrName + ); + } } return tenant; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs index 31eb7c6d19..b8b667cbad 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs @@ -22,7 +22,8 @@ namespace Volo.Abp.TenantManagement return connStrings; }); - }); + }) + .ForMember(x => x.IsActive, x => x.UseDestinationValue()); CreateMap(); }