aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-11-21 11:08:48 +0800
committercrupest <crupest@outlook.com>2022-11-21 11:08:48 +0800
commit7e44b56ec4112f5e131c7fb96838b18550a62c85 (patch)
treee3e55a3984664fc60f51b10a37c321aabd38f17d /BackEnd/Timeline/Configs/ApplicationConfiguration.cs
parent473720658913997919c680df6c82a75d429711d1 (diff)
downloadtimeline-7e44b56ec4112f5e131c7fb96838b18550a62c85.tar.gz
timeline-7e44b56ec4112f5e131c7fb96838b18550a62c85.tar.bz2
timeline-7e44b56ec4112f5e131c7fb96838b18550a62c85.zip
Fix #1354 #1355 .
Diffstat (limited to 'BackEnd/Timeline/Configs/ApplicationConfiguration.cs')
-rw-r--r--BackEnd/Timeline/Configs/ApplicationConfiguration.cs39
1 files changed, 38 insertions, 1 deletions
diff --git a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
index c7c679d1..c808e946 100644
--- a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
+++ b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
@@ -1,4 +1,8 @@
-namespace Timeline.Configs
+using System;
+using System.Collections.Generic;
+using Microsoft.Extensions.Configuration;
+
+namespace Timeline.Configs
{
public static class ApplicationConfiguration
{
@@ -7,5 +11,38 @@
public const string DatabaseFileName = "timeline.db";
public const string DatabaseBackupDirectoryName = "backup";
public const string FrontEndKey = "FrontEnd";
+ public const string DisableAutoBackupKey = "DisableAutoBackup";
+ public const string EnableForwardedHeadersKey = "EnableForwardedHeaders";
+ public const string ForwardedHeadersAllowedProxyHostsKey = "ForwardedHeadersAllowedProxyHosts";
+
+ public static bool CheckIsValidBoolString(string? value, string configPath, Boolean defaultValue)
+ {
+ if (value is null)
+ {
+ return defaultValue;
+ }
+
+ var true_strings = new List<string> { "true", "1", "y", "yes", "on" };
+ var false_strings = new List<string> { "false", "0", "n", "no", "off" };
+
+ if (true_strings.Contains(value.ToLowerInvariant()))
+ {
+ return true;
+ }
+ else if (false_strings.Contains(value.ToLowerInvariant()))
+ {
+ return false;
+ }
+ else
+ {
+ throw new Exception($"Invalid boolean value {value} in config {configPath}.");
+ }
+ }
+
+ public static bool GetBoolConfig(IConfiguration configuration, string configPath, bool defaultValue)
+ {
+ var value = configuration.GetValue<string?>(configPath);
+ return CheckIsValidBoolString(value, configPath, defaultValue);
+ }
}
}