Browse Source

Added manage connection strings modal to tenant management blazor

pull/5614/head
Ahmet 6 years ago
parent
commit
4c7ff73f5b
  1. 45
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
  2. 62
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs

45
modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor

@ -42,6 +42,14 @@
{
<DropdownItem Clicked="() => OpenEditModalAsync(context.As<TenantDto>().Id)">@L["Edit"]</DropdownItem>
}
@if (HasManageConnectionStringsPermission)
{
<DropdownItem Clicked="() => OpenEditConnectionStringModalAsync(context.As<TenantDto>().Id)">@L["ConnectionStrings"]</DropdownItem>
}
@if (HasManageFeaturesPermission)
{
<DropdownItem Clicked="() => OpenEditConnectionStringModalAsync(context.As<TenantDto>().Id)">@L["Features"]</DropdownItem>
}
@if (HasDeletePermission)
{
<DropdownDivider/>
@ -78,11 +86,11 @@
</Field>
<Field>
<FieldLabel>@L["DisplayName:AdminEmailAddress"]</FieldLabel>
<TextEdit @bind-text="@NewEntity.AdminEmailAddress"/>
<TextEdit Role="@TextRole.Email" @bind-text="@NewEntity.AdminEmailAddress"/>
</Field>
<Field>
<FieldLabel>@L["DisplayName:AdminPassword"]</FieldLabel>
<TextEdit @bind-text="@NewEntity.AdminPassword"/>
<TextEdit Role="@TextRole.Password" @bind-text="@NewEntity.AdminPassword"/>
</Field>
</EditForm>
</ModalBody>
@ -118,4 +126,37 @@
</ModalFooter>
</ModalContent>
</Modal>
}
@* ************************* EDIT CONNECTION STRING MODAL ************************* *@
@if (HasUpdatePermission)
{
<Modal @ref="@ManageConnectionStringModal">
<ModalBackdrop/>
<ModalContent IsCentered="true">
<ModalHeader>
<ModalTitle>@L["ConnectionStrings"]</ModalTitle>
<CloseButton Clicked="CloseEditConnectionStringModal"/>
</ModalHeader>
<ModalBody>
<EditForm id="ConnectionStringEditForm" Model="@TenantInfo" OnValidSubmit="UpdateConnectionStringAsync">
<Field>
<FieldLabel>@L["DisplayName:DefaultConnectionString"]</FieldLabel>
<Check TValue="bool" @bind-Checked="@TenantInfo.UseSharedDatabase" Cursor="@Cursor.Pointer" />
</Field>
@if (!TenantInfo.UseSharedDatabase)
{
<Field>
<FieldLabel>@L["DisplayName:DefaultConnectionString"]</FieldLabel>
<TextEdit @bind-text="@TenantInfo.DefaultConnectionString"/>
</Field>
}
</EditForm>
</ModalBody>
<ModalFooter>
<Button Color="Color.Secondary" Clicked="CloseEditConnectionStringModal">@L["Cancel"]</Button>
<Button form="ConnectionStringEditForm" Color="Color.Primary" Clicked="UpdateConnectionStringAsync">@L["Save"]</Button>
</ModalFooter>
</ModalContent>
</Modal>
}

62
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<ITenantAppService, TenantDto, Guid, GetTenantsInput, TenantCreateDto, TenantUpdateDto>
{
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; }
}
}
Loading…
Cancel
Save