keycloak-aplcache

Details

diff --git a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
index 6a438e4..b54ea0f 100644
--- a/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/controllers/realm.js
@@ -860,9 +860,11 @@ module.controller('RealmIdentityProviderCtrl', function($scope, $filter, $upload
     $scope.serverInfo = serverInfo;
 
     $scope.allProviders = angular.copy(serverInfo.identityProviders);
-
+    
     $scope.configuredProviders = angular.copy(realm.identityProviders);
 
+    removeUsedSocial();
+    
     $scope.authFlows = [];
     for (var i=0 ; i<authFlows.length ; i++) {
         if (authFlows[i].providerId == 'basic-flow') {
@@ -1045,6 +1047,20 @@ module.controller('RealmIdentityProviderCtrl', function($scope, $filter, $upload
             });
         });
     };
+    
+    // KEYCLOAK-5932: remove social providers that have already been defined
+    function removeUsedSocial() {
+        var i = $scope.allProviders.length;
+        while (i--) {
+            if ($scope.allProviders[i].groupName !== 'Social') continue;
+            for (var j = 0; j < $scope.configuredProviders.length; j++) {
+                if ($scope.configuredProviders[j].providerId === $scope.allProviders[i].id) {
+                    $scope.allProviders.splice(i, 1);
+                    break;
+                }
+            }
+        }
+    };
 
 });