Merge pull request #1939 from sbwalker/dev

improvement for updating private/public Settings
This commit is contained in:
Shaun Walker 2022-01-15 09:34:56 -05:00 committed by GitHub
commit 9d7b25ade6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -131,12 +131,21 @@ namespace Oqtane.Services
foreach (KeyValuePair<string, string> kvp in settings) foreach (KeyValuePair<string, string> kvp in settings)
{ {
string value = kvp.Value; string value = kvp.Value;
bool modified = false;
bool isprivate = false; bool isprivate = false;
// manage settings modified with SetSetting method
if (value.StartsWith("[Private]")) if (value.StartsWith("[Private]"))
{ {
value = value.Substring(9); // remove [Private] modified = true;
isprivate = true; isprivate = true;
value = value.Substring(9);
}
if (value.StartsWith("[Public]"))
{
modified = true;
isprivate = false;
value = value.Substring(8);
} }
Setting setting = settingsList.FirstOrDefault(item => item.SettingName.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase)); Setting setting = settingsList.FirstOrDefault(item => item.SettingName.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase));
@ -152,7 +161,7 @@ namespace Oqtane.Services
} }
else else
{ {
if (setting.SettingValue != value) if (setting.SettingValue != value || (modified && setting.IsPrivate != isprivate))
{ {
setting.SettingValue = value; setting.SettingValue = value;
setting.IsPrivate = isprivate; setting.IsPrivate = isprivate;
@ -204,7 +213,7 @@ namespace Oqtane.Services
{ {
settings = new Dictionary<string, string>(); settings = new Dictionary<string, string>();
} }
settingValue = (isPrivate) ? "[Private]" + settingValue : settingValue; settingValue = (isPrivate) ? "[Private]" + settingValue : "[Public]" + settingValue;
if (settings.ContainsKey(settingName)) if (settings.ContainsKey(settingName))
{ {
settings[settingName] = settingValue; settings[settingName] = settingValue;