summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backendhelper.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backendhelper.js')
-rw-r--r--server/lib/external-backends/backendhelper.js21
1 files changed, 18 insertions, 3 deletions
diff --git a/server/lib/external-backends/backendhelper.js b/server/lib/external-backends/backendhelper.js
index dc4324c..752ccf7 100644
--- a/server/lib/external-backends/backendhelper.js
+++ b/server/lib/external-backends/backendhelper.js
@@ -28,9 +28,24 @@ module.exports = {
}
// Convert the parent group id to the external backend parentId.
- if (client.parentId) {
- var element = backend.mappedGroups.find(x => x.id === parseInt(client.parentId))
- if (element) tmpClient['parentId'] = element.backend_x_group.externalId
+ // if (client.parentId) {
+ if (client.parents) {
+ var elements = backend.mappedGroups.filter(x => client.parents.includes(x.id))
+ if (elements.length > 1) {
+ // TODO ADD MERGE CONFLICT
+ const conflict = await db.conflict.create({ description: 'Multiple parents found' })
+
+ // Add backend to the conflict.
+ conflict.createObject({ objectType: 'BACKEND', objectId: backend.id })
+
+ // Add the groups to the conflict.
+ for (let element of elements) {
+ conflict.createObject({ objectType: 'GROUP', objectId: element.id })
+ }
+ } else if (elements.length === 1) tmpClient['parentId'] = elements[0].backend_x_group.externalId
+
+ // var element = backend.mappedGroups.find(x => x.id === parseInt(client.parentId))
+ // if (element) tmpClient['parentId'] = element.backend_x_group.externalId
}
var addClient = await instance.addClient(backend.credentials, tmpClient)