From 985f003e6d7b06c12f0b85ab0465162310671b6f Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Tue, 26 Jul 2022 10:12:54 -0400 Subject: [PATCH] add ability to supply connection string in Add Site --- .../Installer/Controls/SqlServerConfig.razor | 4 +- Oqtane.Client/Installer/Installer.razor | 28 ++++--- Oqtane.Client/Modules/Admin/Sites/Add.razor | 79 ++++++++++++++----- .../Resources/Modules/Admin/Sites/Add.resx | 12 +++ .../Repository/PermissionRepository.cs | 4 +- 5 files changed, 94 insertions(+), 33 deletions(-) diff --git a/Oqtane.Client/Installer/Controls/SqlServerConfig.razor b/Oqtane.Client/Installer/Controls/SqlServerConfig.razor index 12c4b981..f3ef53fb 100644 --- a/Oqtane.Client/Installer/Controls/SqlServerConfig.razor +++ b/Oqtane.Client/Installer/Controls/SqlServerConfig.razor @@ -4,7 +4,7 @@ @inject IStringLocalizer SharedLocalizer
- +
@@ -51,7 +51,7 @@ @if (_encryption == "true") {
- +
- @foreach (var database in _databases) - { - - } - +
+ + @if (!_showConnectionString) + { + + } + else + { + + } +
}
@@ -41,8 +51,6 @@ { @DatabaseConfigComponent } -
- } else { @@ -52,8 +60,6 @@
-
- } @@ -151,7 +157,7 @@ try { _databaseName = (string)eventArgs.Value; - + _showConnectionString = false; LoadDatabaseConfigComponent(); } catch diff --git a/Oqtane.Client/Modules/Admin/Sites/Add.razor b/Oqtane.Client/Modules/Admin/Sites/Add.razor index c3e06dd0..f1ac13fe 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Add.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Add.razor @@ -128,18 +128,43 @@ else
- -
+ @if (_databases != null) + { +
+ + @if (!_showConnectionString) + { + + } + else + { + + } +
+ } +
- if (_databaseConfigType != null) - { - @DatabaseConfigComponent; - } + @if (!_showConnectionString) + { + if (_databaseConfigType != null) + { + @DatabaseConfigComponent + } + } + else + { +
+ +
+ +
+
+ }
@@ -169,6 +194,8 @@ else private Type _databaseConfigType; private object _databaseConfig; private RenderFragment DatabaseConfigComponent { get; set; } + private bool _showConnectionString = false; + private string _connectionString = string.Empty; private List _themeList; private List _themes = new List(); @@ -218,7 +245,7 @@ else try { _databaseName = (string)eventArgs.Value; - + _showConnectionString = false; LoadDatabaseConfigComponent(); } catch @@ -312,12 +339,19 @@ else user = await UserService.LoginUserAsync(user); if (user.IsAuthenticated) { - var connectionString = String.Empty; - if (_databaseConfig is IDatabaseConfigControl databaseConfigControl) - { - connectionString = databaseConfigControl.GetConnectionString(); - } - var database = _databases.SingleOrDefault(d => d.Name == _databaseName); + var database = _databases.SingleOrDefault(d => d.Name == _databaseName); + var connectionString = String.Empty; + if (_showConnectionString) + { + connectionString = _connectionString; + } + else + { + if (_databaseConfig is IDatabaseConfigControl databaseConfigControl) + { + connectionString = databaseConfigControl.GetConnectionString(); + } + } if (connectionString != "") { @@ -398,4 +432,13 @@ else AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } + + private void ToggleConnectionString() + { + if (_databaseConfig is IDatabaseConfigControl databaseConfigControl) + { + _connectionString = databaseConfigControl.GetConnectionString(); + } + _showConnectionString = !_showConnectionString; + } } diff --git a/Oqtane.Client/Resources/Modules/Admin/Sites/Add.resx b/Oqtane.Client/Resources/Modules/Admin/Sites/Add.resx index b939b88a..79980b5d 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Sites/Add.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Sites/Add.resx @@ -270,4 +270,16 @@ Runtime: + + Enter a complete connection string including all parameters and delimiters + + + String: + + + Enter Connection Parameters + + + Enter Connection String + \ No newline at end of file diff --git a/Oqtane.Server/Repository/PermissionRepository.cs b/Oqtane.Server/Repository/PermissionRepository.cs index c76cd98e..1941f85f 100644 --- a/Oqtane.Server/Repository/PermissionRepository.cs +++ b/Oqtane.Server/Repository/PermissionRepository.cs @@ -143,8 +143,8 @@ namespace Oqtane.Repository private void ClearCache(string entityName) { - var alias = _accessor.HttpContext.GetAlias(); - if (alias != null) + var alias = _siteState?.Alias; + if (alias != null && alias.SiteId != -1) { _cache.Remove($"permissions:{alias.SiteKey}:{entityName}"); }