keycloak-uncached

Adding property to configure if userAccountControls should

8/4/2014 4:32:56 PM

Details

diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
index 95b1f51..cbd57d9 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
@@ -445,8 +445,11 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
         $scope.instance.config = {};
         $scope.instance.priority = 0;
         $scope.syncRegistrations = false;
+        $scope.userAccountControlsAfterPasswordUpdate = true;
+        $scope.instance.config.userAccountControlsAfterPasswordUpdate = true;
     } else {
         $scope.syncRegistrations = instance.config.syncRegistrations && instance.config.syncRegistrations == "true";
+        $scope.userAccountControlsAfterPasswordUpdate = instance.config.userAccountControlsAfterPasswordUpdate && instance.config.userAccountControlsAfterPasswordUpdate == "true";
     }
 
     $scope.ldapVendors = [
@@ -474,6 +477,14 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
         }
     })
 
+    $scope.$watch('userAccountControlsAfterPasswordUpdate', function() {
+        if ($scope.userAccountControlsAfterPasswordUpdate) {
+            $scope.instance.config.userAccountControlsAfterPasswordUpdate = "true";
+        } else {
+            $scope.instance.config.userAccountControlsAfterPasswordUpdate = "false";
+        }
+    })
+
     $scope.$watch('instance', function() {
         if (!angular.equals($scope.instance, instance)) {
             $scope.changed = true;
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
index 1be350b..3d5bc52 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
@@ -116,6 +116,12 @@
                         <a class="btn btn-primary" data-ng-click="testAuthentication()">Test authentication</a>
                     </div>
                 </div>
+                <div class="form-group clearfix" data-ng-show="instance.config.vendor === 'ad' ">
+                    <label class="col-sm-2 control-label" for="userAccountControlsAfterPasswordUpdate">Enable Account After Password Update</label>
+                    <div class="col-sm-4">
+                        <input ng-model="userAccountControlsAfterPasswordUpdate" name="userAccountControlsAfterPasswordUpdate" id="userAccountControlsAfterPasswordUpdate" onoffswitch />
+                    </div>
+                </div>
             </fieldset>
 
             <div class="pull-right form-actions" data-ng-show="create && access.manageUsers">
diff --git a/picketlink/keycloak-picketlink-ldap/src/main/java/org/keycloak/picketlink/idm/KeycloakEventBridge.java b/picketlink/keycloak-picketlink-ldap/src/main/java/org/keycloak/picketlink/idm/KeycloakEventBridge.java
index 90a221e..b17e369 100644
--- a/picketlink/keycloak-picketlink-ldap/src/main/java/org/keycloak/picketlink/idm/KeycloakEventBridge.java
+++ b/picketlink/keycloak-picketlink-ldap/src/main/java/org/keycloak/picketlink/idm/KeycloakEventBridge.java
@@ -26,6 +26,9 @@ public class KeycloakEventBridge implements EventBridge {
 
     public KeycloakEventBridge(boolean updateUserAccountAfterPasswordUpdate) {
         this.updateUserAccountAfterPasswordUpdate = updateUserAccountAfterPasswordUpdate;
+        if (updateUserAccountAfterPasswordUpdate) {
+            logger.info("userAccountControl attribute will be updated in Active Directory after user registration");
+        }
     }
 
     @Override