From ff58a5664bdf3e54079ab8fb6222f2b897e2d5df Mon Sep 17 00:00:00 2001
From: Hugo Renard <hugo.renard@protonmail.com>
Date: Fri, 29 Apr 2022 10:42:03 +0200
Subject: [PATCH] remove toggle federation when syncing

---
 src/main/java/sh/libre/scim/core/ScimClient.java              | 4 ++++
 .../sh/libre/scim/storage/ScimStorageProviderFactory.java     | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main/java/sh/libre/scim/core/ScimClient.java b/src/main/java/sh/libre/scim/core/ScimClient.java
index 3551c50..7b28823 100644
--- a/src/main/java/sh/libre/scim/core/ScimClient.java
+++ b/src/main/java/sh/libre/scim/core/ScimClient.java
@@ -72,6 +72,10 @@ public class ScimClient {
             M kcModel) {
         var adapter = getAdapter(aClass);
         adapter.apply(kcModel);
+        // If mapping exist then it was created by import so skip.
+        if (adapter.query("findById", adapter.getId()).getSingleResult() != null) {
+            return;
+        }
         var retry = registry.retry("create-" + adapter.getId());
         var resource = retry.executeSupplier(() -> {
             try {
diff --git a/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java b/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java
index 081a1c6..272fc48 100644
--- a/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java
+++ b/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java
@@ -110,13 +110,9 @@ public class ScimStorageProviderFactory
                 RealmModel realm = session.realms().getRealm(realmId);
                 session.getContext().setRealm(realm);
                 var client = new ScimClient(model, session);
-                model.setEnabled(false);
-                realm.updateComponent(model);
                 client.sync(UserAdapter.class, result);
                 client.sync(GroupAdapter.class, result);
                 client.close();
-                model.setEnabled(true);
-                realm.updateComponent(model);
             }
 
         });
-- 
GitLab