diff --git a/src/views/users.html b/src/views/users.html index 69049e5ee..90e1d95ed 100644 --- a/src/views/users.html +++ b/src/views/users.html @@ -482,59 +482,59 @@ Provider
- {{ externalLdap.provider }} + {{ externalLdap.currentConfig.provider }}
-
+
Server URL
- {{ externalLdap.url }} + {{ externalLdap.currentConfig.url }}
-
+
Base DN
- {{ externalLdap.baseDn }} + {{ externalLdap.currentConfig.baseDn }}
-
+
Filter
- {{ externalLdap.filter }} + {{ externalLdap.currentConfig.filter }}
-
+
Username Field
- {{ externalLdap.usernameField || 'uid' }} + {{ externalLdap.currentConfig.usernameField || 'uid' }}
-
+
Auth
- {{ externalLdap.bindDn ? 'Yes' : 'No' }} + {{ externalLdap.currentConfig.bindDn ? 'Yes' : 'No' }}

-
+
@@ -542,15 +542,15 @@
-

{{ externalLdap.message }}

-

+

{{ externalLdap.message }}

+

{{ externalLdap.errorMessage }}

- + Show Logs
diff --git a/src/views/users.js b/src/views/users.js index 6668933e8..a07435daa 100644 --- a/src/views/users.js +++ b/src/views/users.js @@ -439,6 +439,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio error: {}, taskId: 0, + syncBusy: false, + // fields provider: 'noop', url: '', @@ -448,6 +450,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio bindPassword: '', usernameField: '', + currentConfig: {}, + checkStatus: function () { Client.getLatestTaskByType('syncExternalLdap', function (error, task) { if (error) return console.error(error); @@ -460,11 +464,11 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio }, sync: function () { - $scope.externalLdap.busy = true; + $scope.externalLdap.syncBusy = true; Client.startExternalLdapSync(function (error, taskId) { if (error) { - $scope.externalLdap.busy = false; + $scope.externalLdap.syncBusy = false; console.error('Unable to start ldap syncer task.', error); return; } @@ -479,7 +483,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio if (error) return window.setTimeout($scope.externalLdap.updateStatus, 5000); if (!data.active) { - $scope.externalLdap.busy = false; + $scope.externalLdap.syncBusy = false; $scope.externalLdap.message = ''; $scope.externalLdap.percent = 100; // indicates that 'result' is valid $scope.externalLdap.errorMessage = data.success ? '' : data.error.message; @@ -487,7 +491,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio return refreshUsers(); } - $scope.externalLdap.busy = true; + $scope.externalLdap.syncBusy = true; $scope.externalLdap.percent = data.percent; $scope.externalLdap.message = data.message; window.setTimeout($scope.externalLdap.updateStatus, 3000); @@ -498,6 +502,14 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio $scope.externalLdap.busy = false; $scope.externalLdap.error = {}; + $scope.externalLdap.provider = $scope.externalLdap.currentConfig.provider; + $scope.externalLdap.url = $scope.externalLdap.currentConfig.url; + $scope.externalLdap.baseDn = $scope.externalLdap.currentConfig.baseDn; + $scope.externalLdap.filter = $scope.externalLdap.currentConfig.filter; + $scope.externalLdap.bindDn = $scope.externalLdap.currentConfig.bindDn; + $scope.externalLdap.bindPassword = $scope.externalLdap.currentConfig.bindPassword; + $scope.externalLdap.usernameField = $scope.externalLdap.currentConfig.usernameField; + $('#externalLdapModal').modal('show'); }, @@ -541,6 +553,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio } } else { $('#externalLdapModal').modal('hide'); + + loadExternalLdapConfig(); } }); } @@ -625,23 +639,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio Client.getExternalLdapConfig(function (error, result) { if (error) return console.error('Unable to get external ldap config.', error); - $scope.externalLdap.provider = result.provider; - if (result.provider !== 'noop') { - $scope.externalLdap.url = result.url; - $scope.externalLdap.baseDn = result.baseDn; - $scope.externalLdap.filter = result.filter; - $scope.externalLdap.bindDn = result.bindDn; - $scope.externalLdap.bindPassword = result.bindPassword; - $scope.externalLdap.usernameField = result.usernameField; - } - - Client.getLatestTaskByType('syncExternalLdap', function (error, task) { - if (error) return console.error(error); - - if (!task) return; - - $scope.externalLdap.taskId = task.id; - }); + $scope.externalLdap.currentConfig = result; }); } @@ -662,7 +660,10 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio }; Client.onReady(refresh); - Client.onReady(loadExternalLdapConfig); + Client.onReady(function () { + loadExternalLdapConfig(); + $scope.externalLdap.checkStatus(); + }); Client.onReady(function () { Client.getUsers(function (error, results) { if (error) return console.error(error);