Browse Source

Merge pull request #7659 from abpframework/maliming/Remove-connection-string

Remove setting connection string on the tenant management UI.
pull/6764/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
32b312293e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 43
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
  2. 56
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs
  3. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs
  4. 26
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml
  5. 61
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml.cs
  6. 20
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.js
  7. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml
  8. 16
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js

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

@ -40,10 +40,6 @@
RequiredPolicy="@UpdatePolicyName" RequiredPolicy="@UpdatePolicyName"
Clicked="() => OpenEditModalAsync(context)" Clicked="() => OpenEditModalAsync(context)"
Text="@L["Edit"]"></EntityAction> Text="@L["Edit"]"></EntityAction>
<EntityAction TItem="TenantDto"
RequiredPolicy="@ManageConnectionStringsPolicyName"
Clicked="() => OpenEditConnectionStringModalAsync(context)"
Text="@L["ConnectionStrings"]"></EntityAction>
<EntityAction TItem="TenantDto" <EntityAction TItem="TenantDto"
RequiredPolicy="@ManageFeaturesPolicyName" RequiredPolicy="@ManageFeaturesPolicyName"
Clicked="() => FeatureManagementModal.OpenAsync(FeatureProviderName, context.Id.ToString())" Clicked="() => FeatureManagementModal.OpenAsync(FeatureProviderName, context.Id.ToString())"
@ -154,45 +150,6 @@
</Modal> </Modal>
} }
@* ************************* EDIT CONNECTION STRING MODAL ************************* *@
@if (HasManageConnectionStringsPermission)
{
<Modal @ref="@ManageConnectionStringModal">
<ModalBackdrop />
<ModalContent Centered="true">
<Form>
<ModalHeader>
<ModalTitle>@L["ConnectionStrings"]</ModalTitle>
<CloseButton Clicked="CloseEditConnectionStringModal" />
</ModalHeader>
<ModalBody>
<Validations @ref="@ManageConnectionStringValidations" Model="@TenantInfo" ValidateOnLoad="false">
<Validation MessageLocalizer="@LH.Localize">
<Field>
<FieldLabel>@L["DisplayName:UseSharedDatabase"]</FieldLabel>
<Check TValue="bool" @bind-Checked="@TenantInfo.UseSharedDatabase" Cursor="@Cursor.Pointer" />
</Field>
</Validation>
@if (!TenantInfo.UseSharedDatabase)
{
<Validation MessageLocalizer="@LH.Localize">
<Field>
<FieldLabel>@L["DisplayName:DefaultConnectionString"]</FieldLabel>
<TextEdit @bind-Text="@TenantInfo.DefaultConnectionString" />
</Field>
</Validation>
}
</Validations>
</ModalBody>
<ModalFooter>
<Button Color="Color.Secondary" Clicked="CloseEditConnectionStringModal">@L["Cancel"]</Button>
<SubmitButton Clicked="@UpdateConnectionStringAsync" />
</ModalFooter>
</Form>
</ModalContent>
</Modal>
}
@if (HasManageFeaturesPermission) @if (HasManageFeaturesPermission)
{ {
<FeatureManagementModal @ref="FeatureManagementModal" /> <FeatureManagementModal @ref="FeatureManagementModal" />

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

@ -13,16 +13,11 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
{ {
protected const string FeatureProviderName = "T"; protected const string FeatureProviderName = "T";
protected bool HasManageConnectionStringsPermission;
protected bool HasManageFeaturesPermission; protected bool HasManageFeaturesPermission;
protected string ManageConnectionStringsPolicyName;
protected string ManageFeaturesPolicyName; protected string ManageFeaturesPolicyName;
protected FeatureManagementModal FeatureManagementModal; protected FeatureManagementModal FeatureManagementModal;
protected Modal ManageConnectionStringModal;
protected Validations ManageConnectionStringValidations;
protected TenantInfoModel TenantInfo; protected TenantInfoModel TenantInfo;
public TenantManagement() public TenantManagement()
@ -33,7 +28,7 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
CreatePolicyName = TenantManagementPermissions.Tenants.Create; CreatePolicyName = TenantManagementPermissions.Tenants.Create;
UpdatePolicyName = TenantManagementPermissions.Tenants.Update; UpdatePolicyName = TenantManagementPermissions.Tenants.Update;
DeletePolicyName = TenantManagementPermissions.Tenants.Delete; DeletePolicyName = TenantManagementPermissions.Tenants.Delete;
ManageConnectionStringsPolicyName = TenantManagementPermissions.Tenants.ManageConnectionStrings;
ManageFeaturesPolicyName = TenantManagementPermissions.Tenants.ManageFeatures; ManageFeaturesPolicyName = TenantManagementPermissions.Tenants.ManageFeatures;
TenantInfo = new TenantInfoModel(); TenantInfo = new TenantInfoModel();
@ -43,51 +38,9 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
{ {
await base.SetPermissionsAsync(); await base.SetPermissionsAsync();
HasManageConnectionStringsPermission = await AuthorizationService.IsGrantedAsync(ManageConnectionStringsPolicyName);
HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(ManageFeaturesPolicyName); HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(ManageFeaturesPolicyName);
} }
protected virtual async Task OpenEditConnectionStringModalAsync(TenantDto entity)
{
ManageConnectionStringValidations.ClearAll();
var tenantConnectionString = await AppService.GetDefaultConnectionStringAsync(entity.Id);
TenantInfo = new TenantInfoModel
{
Id = entity.Id,
DefaultConnectionString = tenantConnectionString,
UseSharedDatabase = tenantConnectionString.IsNullOrWhiteSpace()
};
ManageConnectionStringModal.Show();
}
protected virtual Task CloseEditConnectionStringModal()
{
ManageConnectionStringModal.Hide();
return Task.CompletedTask;
}
protected virtual async Task UpdateConnectionStringAsync()
{
if (ManageConnectionStringValidations.ValidateAll())
{
await CheckPolicyAsync(ManageConnectionStringsPolicyName);
if (TenantInfo.UseSharedDatabase || TenantInfo.DefaultConnectionString.IsNullOrWhiteSpace())
{
await AppService.DeleteDefaultConnectionStringAsync(TenantInfo.Id);
}
else
{
await AppService.UpdateDefaultConnectionStringAsync(TenantInfo.Id, TenantInfo.DefaultConnectionString);
}
ManageConnectionStringModal.Hide();
}
}
protected override string GetDeleteConfirmationMessage(TenantDto entity) protected override string GetDeleteConfirmationMessage(TenantDto entity)
{ {
return string.Format(L["TenantDeletionConfirmationMessage"], entity.Name); return string.Format(L["TenantDeletionConfirmationMessage"], entity.Name);
@ -97,10 +50,5 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement
public class TenantInfoModel public class TenantInfoModel
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public bool UseSharedDatabase { get; set; }
[Required]
public string DefaultConnectionString { get; set; }
} }
} }

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs

@ -61,7 +61,6 @@ namespace Volo.Abp.TenantManagement.Web
options.Conventions.AuthorizePage("/TenantManagement/Tenants/Index", TenantManagementPermissions.Tenants.Default); options.Conventions.AuthorizePage("/TenantManagement/Tenants/Index", TenantManagementPermissions.Tenants.Default);
options.Conventions.AuthorizePage("/TenantManagement/Tenants/CreateModal", TenantManagementPermissions.Tenants.Create); options.Conventions.AuthorizePage("/TenantManagement/Tenants/CreateModal", TenantManagementPermissions.Tenants.Create);
options.Conventions.AuthorizePage("/TenantManagement/Tenants/EditModal", TenantManagementPermissions.Tenants.Update); options.Conventions.AuthorizePage("/TenantManagement/Tenants/EditModal", TenantManagementPermissions.Tenants.Update);
options.Conventions.AuthorizePage("/TenantManagement/Tenants/ConnectionStrings", TenantManagementPermissions.Tenants.ManageConnectionStrings);
}); });
Configure<AbpPageToolbarOptions>(options => Configure<AbpPageToolbarOptions>(options =>

26
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml

@ -1,26 +0,0 @@
@page
@using Microsoft.Extensions.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@using Volo.Abp.TenantManagement.Localization
@using Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
@model ConnectionStringsModal
@inject IStringLocalizer<AbpTenantManagementResource> L
@{
Layout = null;
}
<form method="post" asp-page="/TenantManagement/Tenants/ConnectionStringsModal">
<abp-modal>
<abp-modal-header title="@L["ConnectionStrings"]"></abp-modal-header>
<abp-modal-body>
<abp-input asp-for="Tenant.Id"></abp-input>
<abp-input asp-for="Tenant.UseSharedDatabase"></abp-input>
<div id="Tenant_DefaultConnectionString_Wrap" class="@(Model.Tenant.UseSharedDatabase ? "d-none" : "")" >
<abp-input asp-for="Tenant.DefaultConnectionString"></abp-input>
</div>
</abp-modal-body>
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer>
</abp-modal>
</form>

61
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml.cs

@ -1,61 +0,0 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Validation;
namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
{
public class ConnectionStringsModal : TenantManagementPageModel
{
[BindProperty]
public TenantInfoModel Tenant { get; set; }
protected ITenantAppService TenantAppService { get; }
public ConnectionStringsModal(ITenantAppService tenantAppService)
{
TenantAppService = tenantAppService;
}
public virtual async Task<IActionResult> OnGetAsync(Guid id)
{
var defaultConnectionString = await TenantAppService.GetDefaultConnectionStringAsync(id);
Tenant = new TenantInfoModel
{
Id = id,
DefaultConnectionString = defaultConnectionString,
UseSharedDatabase = defaultConnectionString.IsNullOrWhiteSpace()
};
return Page();
}
public virtual async Task<IActionResult> OnPostAsync()
{
ValidateModel();
if (Tenant.UseSharedDatabase || Tenant.DefaultConnectionString.IsNullOrWhiteSpace())
{
await TenantAppService.DeleteDefaultConnectionStringAsync(Tenant.Id);
}
else
{
await TenantAppService.UpdateDefaultConnectionStringAsync(Tenant.Id, Tenant.DefaultConnectionString);
}
return NoContent();
}
public class TenantInfoModel
{
[HiddenInput]
public Guid Id { get; set; }
public bool UseSharedDatabase { get; set; }
[DynamicStringLength(typeof(TenantConnectionStringConsts), nameof(TenantConnectionStringConsts.MaxValueLength))]
public string DefaultConnectionString { get; set; }
}
}
}

20
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.js

@ -1,20 +0,0 @@
(function ($) {
abp.modals.TenantConnectionStringManagement = function () {
var initModal = function (publicApi, args) {
publicApi
.getModal()
.find('input[name="Tenant.UseSharedDatabase"]')
.change(function () {
var $this = $(this);
$('#Tenant_DefaultConnectionString_Wrap').toggleClass(
'd-none'
);
$this.val($this.prop('checked'));
});
};
return {
initModal: initModal,
};
};
})(jQuery);

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.cshtml

@ -20,7 +20,6 @@
@section scripts { @section scripts {
<abp-script-bundle name="@typeof(IndexModel).FullName"> <abp-script-bundle name="@typeof(IndexModel).FullName">
<abp-script src="/Pages/FeatureManagement/feature-management-modal.js" /> <abp-script src="/Pages/FeatureManagement/feature-management-modal.js" />
<abp-script src="/Pages/TenantManagement/Tenants/ConnectionStringsModal.js" />
<abp-script src="/Pages/TenantManagement/Tenants/Index.js" /> <abp-script src="/Pages/TenantManagement/Tenants/Index.js" />
</abp-script-bundle> </abp-script-bundle>
} }

16
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js

@ -11,11 +11,6 @@
var _featuresModal = new abp.ModalManager( var _featuresModal = new abp.ModalManager(
abp.appPath + 'FeatureManagement/FeatureManagementModal' abp.appPath + 'FeatureManagement/FeatureManagementModal'
); );
var _connectionStringsModal = new abp.ModalManager({
viewUrl:
abp.appPath + 'TenantManagement/Tenants/ConnectionStringsModal',
modalClass: 'TenantConnectionStringManagement',
});
var _dataTable = null; var _dataTable = null;
@ -34,17 +29,6 @@
}); });
}, },
}, },
{
text: l('ConnectionStrings'),
visible: abp.auth.isGranted(
'AbpTenantManagement.Tenants.ManageConnectionStrings'
),
action: function (data) {
_connectionStringsModal.open({
id: data.record.id,
});
},
},
{ {
text: l('Features'), text: l('Features'),
visible: abp.auth.isGranted( visible: abp.auth.isGranted(

Loading…
Cancel
Save