1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-19 09:43:15 +00:00

sync interval setting

This commit is contained in:
Kyle Spearrin
2017-05-16 17:32:14 -04:00
parent 23d3300c4f
commit 7189703841
3 changed files with 30 additions and 1 deletions

View File

@@ -220,6 +220,7 @@ namespace Bit.Console
{ {
Con.WriteLine("{0}. {1}", i + 1, result.Organizations[i].Name); Con.WriteLine("{0}. {1}", i + 1, result.Organizations[i].Name);
} }
Con.WriteLine();
Con.Write("Select your organization: "); Con.Write("Select your organization: ");
var orgIndexInput = Con.ReadLine().Trim(); var orgIndexInput = Con.ReadLine().Trim();
int orgIndex; int orgIndex;
@@ -488,6 +489,12 @@ namespace Bit.Console
config.SyncGroups = parameters.ContainsKey("g"); config.SyncGroups = parameters.ContainsKey("g");
config.SyncUsers = parameters.ContainsKey("u"); config.SyncUsers = parameters.ContainsKey("u");
int intervalMinutes;
if(parameters.ContainsKey("i") && int.TryParse(parameters["i"], out intervalMinutes))
{
config.IntervalMinutes = intervalMinutes;
}
if(Core.Services.SettingsService.Instance.Server.Type != Core.Enums.DirectoryType.AzureActiveDirectory) if(Core.Services.SettingsService.Instance.Server.Type != Core.Enums.DirectoryType.AzureActiveDirectory)
{ {
if(parameters.ContainsKey("gf")) if(parameters.ContainsKey("gf"))
@@ -607,6 +614,15 @@ namespace Bit.Console
} }
} }
Con.Write("Sync interval (minutes, minimum {1}) [{0}]: ", config.IntervalMinutes,
SettingsService.Instance.Server.Type == Core.Enums.DirectoryType.Other ? "30" : "1");
input = Con.ReadLine();
int intervalMinutes;
if(!string.IsNullOrEmpty(input) && int.TryParse(input, out intervalMinutes))
{
config.IntervalMinutes = intervalMinutes;
}
input = null; input = null;
} }

View File

@@ -33,6 +33,7 @@ namespace Bit.Core.Models
UserEmailSuffix = null; UserEmailSuffix = null;
break; break;
case DirectoryType.Other: case DirectoryType.Other:
IntervalMinutes = 30;
break; break;
default: default:
break; break;
@@ -51,5 +52,6 @@ namespace Bit.Core.Models
public string UserEmailSuffix { get; set; } = "@companyname.com"; public string UserEmailSuffix { get; set; } = "@companyname.com";
public string CreationDateAttribute { get; set; } public string CreationDateAttribute { get; set; }
public string RevisionDateAttribute { get; set; } public string RevisionDateAttribute { get; set; }
public int IntervalMinutes { get; set; } = 5;
} }
} }

View File

@@ -77,8 +77,19 @@ namespace Service
return; return;
} }
var intervalMinutes = SettingsService.Instance.Sync.IntervalMinutes;
if(SettingsService.Instance.Server.Type == Bit.Core.Enums.DirectoryType.Other && intervalMinutes < 30)
{
intervalMinutes = 30;
}
else if(intervalMinutes < 1)
{
intervalMinutes = 1;
}
_eventLog.WriteEntry($"Starting timer with {intervalMinutes} minute interval.", EventLogEntryType.Information);
var timerDelegate = new TimerCallback(Callback); var timerDelegate = new TimerCallback(Callback);
_timer = new Timer(timerDelegate, null, 1000, 60 * 1000); _timer = new Timer(timerDelegate, null, 1000, 60 * 1000 * intervalMinutes);
} }
protected override void OnStop() protected override void OnStop()