diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
index d43488e280..6b3320eb9f 100644
--- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
+++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
@@ -42,6 +42,14 @@
{
@L["Edit"]
}
+ @if (HasManageConnectionStringsPermission)
+ {
+ @L["ConnectionStrings"]
+ }
+ @if (HasManageFeaturesPermission)
+ {
+ @L["Features"]
+ }
@if (HasDeletePermission)
{
@@ -78,11 +86,11 @@
@L["DisplayName:AdminEmailAddress"]
-
+
@L["DisplayName:AdminPassword"]
-
+
@@ -118,4 +126,37 @@
+}
+
+@* ************************* EDIT CONNECTION STRING MODAL ************************* *@
+@if (HasUpdatePermission)
+{
+
+
+
+
+ @L["ConnectionStrings"]
+
+
+
+
+
+ @L["DisplayName:DefaultConnectionString"]
+
+
+ @if (!TenantInfo.UseSharedDatabase)
+ {
+
+ @L["DisplayName:DefaultConnectionString"]
+
+
+ }
+
+
+
+
+
+
+
+
}
\ No newline at end of file
diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs
index 5cdb622398..5db7bc35ad 100644
--- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs
+++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs
@@ -1,5 +1,7 @@
using System;
using System.Threading.Tasks;
+using Blazorise;
+using Microsoft.AspNetCore.Authorization;
using Volo.Abp.BlazoriseUI;
namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
@@ -8,6 +10,12 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
: AbpCrudPageBase
{
protected bool ShouldShowEntityActions;
+ protected bool HasManageConnectionStringsPermission;
+ protected bool HasManageFeaturesPermission;
+
+ protected Modal ManageConnectionStringModal;
+
+ protected TenantInfoModel TenantInfo;
public TenantManagementBase()
{
@@ -16,14 +24,66 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
CreatePolicyName = TenantManagementPermissions.Tenants.Create;
UpdatePolicyName = TenantManagementPermissions.Tenants.Update;
DeletePolicyName = TenantManagementPermissions.Tenants.Delete;
+
+ TenantInfo = new TenantInfoModel();
}
protected override async Task SetPermissionsAsync()
{
await base.SetPermissionsAsync();
+ HasManageConnectionStringsPermission = await AuthorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.ManageConnectionStrings);
+ HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.ManageFeatures);
+
ShouldShowEntityActions = HasUpdatePermission ||
- HasDeletePermission;
+ HasDeletePermission ||
+ HasManageConnectionStringsPermission ||
+ HasManageFeaturesPermission;
+ }
+
+ protected virtual async Task OpenEditConnectionStringModalAsync(Guid id)
+ {
+ var tenantConnectionString = await AppService.GetDefaultConnectionStringAsync(id);
+
+ TenantInfo = new TenantInfoModel
+ {
+ Id = id,
+ DefaultConnectionString = tenantConnectionString,
+ UseSharedDatabase = tenantConnectionString.IsNullOrWhiteSpace()
+ };
+
+ ManageConnectionStringModal.Show();
}
+
+ protected virtual Task CloseEditConnectionStringModal()
+ {
+ ManageConnectionStringModal.Hide();
+ return Task.CompletedTask;
+ }
+
+ protected virtual async Task UpdateConnectionStringAsync()
+ {
+ await CheckPolicyAsync(TenantManagementPermissions.Tenants.ManageConnectionStrings);
+
+ if (TenantInfo.UseSharedDatabase || TenantInfo.DefaultConnectionString.IsNullOrWhiteSpace())
+ {
+ await AppService.DeleteDefaultConnectionStringAsync(TenantInfo.Id);
+ }
+ else
+ {
+ await AppService.UpdateDefaultConnectionStringAsync(TenantInfo.Id, TenantInfo.DefaultConnectionString);
+ }
+
+ ManageConnectionStringModal.Hide();
+ }
+ }
+
+ public class TenantInfoModel
+ {
+ public Guid Id { get; set; }
+
+ public bool UseSharedDatabase { get; set; }
+
+ public string DefaultConnectionString { get; set; }
}
}
\ No newline at end of file