fix #2567 - migrate tenant connection string details from database to appsettings.json
This commit is contained in:
@ -52,7 +52,7 @@ namespace Oqtane.Controllers
|
||||
{
|
||||
var installation = new Installation { Success = false, Message = "" };
|
||||
|
||||
if (ModelState.IsValid && (User.IsInRole(RoleNames.Host) || string.IsNullOrEmpty(_configManager.GetSetting("ConnectionStrings:" + SettingKeys.ConnectionStringKey, ""))))
|
||||
if (ModelState.IsValid && (User.IsInRole(RoleNames.Host) || string.IsNullOrEmpty(_configManager.GetSetting($"{SettingKeys.ConnectionStringsSection}:{SettingKeys.ConnectionStringKey}", ""))))
|
||||
{
|
||||
installation = _databaseManager.Install(config);
|
||||
|
||||
|
@ -32,13 +32,23 @@ namespace Oqtane.Controllers
|
||||
{
|
||||
var results = new List<Dictionary<string, string>>();
|
||||
Dictionary<string, string> row;
|
||||
Tenant tenant = _tenants.GetTenant(sqlquery.TenantId);
|
||||
|
||||
if (string.IsNullOrEmpty(sqlquery.DBType) || string.IsNullOrEmpty(sqlquery.DBConnectionString))
|
||||
{
|
||||
Tenant tenant = _tenants.GetTenant(sqlquery.TenantId);
|
||||
if (tenant != null)
|
||||
{
|
||||
sqlquery.DBType = tenant.DBType;
|
||||
sqlquery.DBConnectionString = tenant.DBConnectionString;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
foreach (string query in sqlquery.Query.Split("GO", StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
IDataReader dr = _sql.ExecuteReader(tenant, query);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Other, "Sql Query {Query} Executed on Tenant {TenantId}", query, sqlquery.TenantId);
|
||||
IDataReader dr = _sql.ExecuteReader(sqlquery.DBType, sqlquery.DBConnectionString, query);
|
||||
_logger.Log(LogLevel.Information, this, LogFunction.Other, "Sql Query {Query} Executed on Database {DBType} and Connection {DBConnectionString}", query, sqlquery.DBType, sqlquery.DBConnectionString);
|
||||
while (dr.Read())
|
||||
{
|
||||
row = new Dictionary<string, string>();
|
||||
@ -53,7 +63,7 @@ namespace Oqtane.Controllers
|
||||
catch (Exception ex)
|
||||
{
|
||||
results.Add(new Dictionary<string, string>() { { "Error", ex.Message } });
|
||||
_logger.Log(LogLevel.Warning, this, LogFunction.Other, "Sql Query {Query} Executed on Tenant {TenantId} Resulted In An Error {Error}", sqlquery.Query, sqlquery.TenantId, ex.Message);
|
||||
_logger.Log(LogLevel.Warning, this, LogFunction.Other, "Sql Query {Query} Executed on Database {DBType} and Connection {DBConnectionString} Resulted In An Error {Error}", sqlquery.Query, sqlquery.DBType, sqlquery.DBConnectionString, ex.Message);
|
||||
}
|
||||
sqlquery.Results = results;
|
||||
return sqlquery;
|
||||
|
@ -63,6 +63,12 @@ namespace Oqtane.Controllers
|
||||
}
|
||||
systeminfo.Add("Log", log);
|
||||
break;
|
||||
case "connectionstrings":
|
||||
foreach (var kvp in _configManager.GetSettings(SettingKeys.ConnectionStringsSection))
|
||||
{
|
||||
systeminfo.Add(kvp.Key, kvp.Value);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return systeminfo;
|
||||
@ -88,19 +94,11 @@ namespace Oqtane.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
// PUT: api/<controller>
|
||||
[HttpPut("{key}/{value}")]
|
||||
[Authorize(Roles = RoleNames.Host)]
|
||||
public void Put(string key, object value)
|
||||
{
|
||||
UpdateSetting(key, value);
|
||||
}
|
||||
|
||||
private void UpdateSetting(string key, object value)
|
||||
{
|
||||
switch (key)
|
||||
switch (key.ToLower())
|
||||
{
|
||||
case "Log":
|
||||
case "clearlog":
|
||||
string path = Path.Combine(_environment.ContentRootPath, "Content", "Log", "error.log");
|
||||
if (System.IO.File.Exists(path))
|
||||
{
|
||||
|
Reference in New Issue
Block a user