-
@@ -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);