diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json
index c4c04ead..0436352e 100644
--- a/src/locales/en/messages.json
+++ b/src/locales/en/messages.json
@@ -577,5 +577,8 @@
"example": "server"
}
}
+ },
+ "overwriteExisting": {
+ "message": "Overwrite existing organization users based on current sync settings."
}
}
diff --git a/src/models/syncConfiguration.ts b/src/models/syncConfiguration.ts
index 87c8506d..7da06bd7 100644
--- a/src/models/syncConfiguration.ts
+++ b/src/models/syncConfiguration.ts
@@ -5,6 +5,7 @@ export class SyncConfiguration {
userFilter: string;
groupFilter: string;
removeDisabled = false;
+ overwriteExisting = false;
// Ldap properties
groupObjectClass: string;
userObjectClass: string;
diff --git a/src/services/sync.service.ts b/src/services/sync.service.ts
index a90a89c5..2c25de80 100644
--- a/src/services/sync.service.ts
+++ b/src/services/sync.service.ts
@@ -48,7 +48,7 @@ export class SyncService {
this.messagingService.send('dirSyncStarted');
try {
- const entries = await directoryService.getEntries(force, test);
+ const entries = await directoryService.getEntries(force || syncConfig.overwriteExisting, test);
let groups = entries[0];
let users = entries[1];
@@ -65,7 +65,7 @@ export class SyncService {
return [groups, users];
}
- const req = this.buildRequest(groups, users, syncConfig.removeDisabled);
+ const req = this.buildRequest(groups, users, syncConfig.removeDisabled, syncConfig.overwriteExisting);
const reqJson = JSON.stringify(req);
let hash: string = null;
@@ -128,8 +128,10 @@ export class SyncService {
}
}
- private buildRequest(groups: GroupEntry[], users: UserEntry[], removeDisabled: boolean): ImportDirectoryRequest {
+ private buildRequest(groups: GroupEntry[], users: UserEntry[], removeDisabled: boolean,
+ overwriteExisting: boolean): ImportDirectoryRequest {
const model = new ImportDirectoryRequest();
+ model.overwriteExisting = overwriteExisting;
if (groups != null) {
for (const g of groups) {