Add directory config ui
This commit is contained in:
@@ -406,6 +406,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
|
||||
// this._config.features.privateDockerRegistry = false;
|
||||
// this._config.features.branding = true;
|
||||
// this._config.features.support = true;
|
||||
// this._config.features.directoryConfig = true;
|
||||
|
||||
this._configListener.forEach(function (callback) {
|
||||
callback(that._config);
|
||||
@@ -702,6 +703,24 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.setDirectoryConfig = function (config, callback) {
|
||||
post('/api/v1/settings/directory_config', config, null, function (error, data, status) {
|
||||
if (error) return callback(error);
|
||||
if (status !== 200) return callback(new ClientError(status, data));
|
||||
|
||||
callback(null);
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.getDirectoryConfig = function (callback) {
|
||||
get('/api/v1/settings/directory_config', null, function (error, data, status) {
|
||||
if (error) return callback(error);
|
||||
if (status !== 200) return callback(new ClientError(status, data));
|
||||
|
||||
callback(null, data);
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.setSysinfoConfig = function (config, callback) {
|
||||
post('/api/v1/settings/sysinfo_config', config, null, function (error, data, status) {
|
||||
if (error) return callback(error);
|
||||
|
||||
+35
-5
@@ -398,12 +398,12 @@
|
||||
<div class="content content-large">
|
||||
|
||||
<div class="text-left">
|
||||
<h1>
|
||||
<h2>
|
||||
Users
|
||||
<button class="btn btn-primary btn-outline pull-right" ng-click="useradd.show()">
|
||||
<i class="fa fa-user-plus"></i> New User
|
||||
</button>
|
||||
</h1>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@@ -478,10 +478,10 @@
|
||||
<br/>
|
||||
|
||||
<div class="text-left">
|
||||
<h1>
|
||||
<h2>
|
||||
Groups
|
||||
<button class="btn btn-primary btn-outline pull-right" ng-click="groupAdd.show()"><i class="fa fa-plus"></i> New Group</button>
|
||||
</h1>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="card card-large">
|
||||
@@ -522,7 +522,37 @@
|
||||
</div>
|
||||
|
||||
<div class="text-left" style="margin-top: 50px;" ng-show="user.isAtLeastAdmin">
|
||||
<h1>LDAP</h1>
|
||||
<h2>Settings</h2>
|
||||
</div>
|
||||
|
||||
<div class="card card-large" ng-show="user.isAtLeastAdmin">
|
||||
<form name="directoryConfigForm" role="form" novalidate ng-submit="directoryConfig.submit()" autocomplete="off">
|
||||
<fieldset>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="directoryConfig.editableUserProfiles"> Allow users to edit their profile <sup><a ng-href="{{ config.webServerOrigin }}/documentation/user-management/#lock-profile" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<span ng-hide="config.features.directoryConfig">Directory configuration is only available is only available in the paid plans. <a href="" ng-click="openSubscriptionSetup()">Setup Subscription Now</a></span>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<button class="btn btn-outline btn-primary pull-right" ng-click="directoryConfig.submit()" ng-disabled="!directoryConfigForm.$dirty || directoryConfig.busy || !config.features.directoryConfig">
|
||||
<i class="fa fa-circle-notch fa-spin" ng-show="directoryConfig.busy"></i> Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="text-left" style="margin-top: 50px;" ng-show="user.isAtLeastAdmin">
|
||||
<h2>LDAP</h2>
|
||||
</div>
|
||||
|
||||
<div class="card card-large" ng-show="user.isAtLeastAdmin">
|
||||
|
||||
@@ -464,6 +464,42 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
}
|
||||
};
|
||||
|
||||
$scope.directoryConfig = {
|
||||
editableUserProfiles: true,
|
||||
error: {},
|
||||
|
||||
loadDirectoryConfig: function () {
|
||||
Client.getDirectoryConfig(function (error, result) {
|
||||
if (error) return console.error('Unable to get directory config.', error);
|
||||
|
||||
$scope.directoryConfig.editableUserProfiles = !result.lockUserProfiles;
|
||||
});
|
||||
},
|
||||
|
||||
submit: function () {
|
||||
$scope.directoryConfig.error = '';
|
||||
$scope.directoryConfig.busy = true;
|
||||
$scope.directoryConfig.success = false;
|
||||
|
||||
var data = {
|
||||
lockUserProfiles: !$scope.directoryConfig.editableUserProfiles
|
||||
};
|
||||
|
||||
Client.setDirectoryConfig(data, function (error) {
|
||||
if (error) $scope.directoryConfig.error = error.message;
|
||||
|
||||
$scope.directoryConfig.success = true;
|
||||
|
||||
$scope.directoryConfigForm.$setUntouched();
|
||||
$scope.directoryConfigForm.$setPristine();
|
||||
|
||||
$timeout(function () {
|
||||
$scope.directoryConfig.busy = false;
|
||||
}, 3000);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.externalLdap = {
|
||||
busy: false,
|
||||
percent: 0,
|
||||
@@ -722,6 +758,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
|
||||
Client.onReady(refresh);
|
||||
Client.onReady(function () { if ($scope.user.isAtLeastAdmin) loadExternalLdapConfig(); });
|
||||
Client.onReady(function () { if ($scope.user.isAtLeastAdmin) $scope.directoryConfig.loadDirectoryConfig(); });
|
||||
Client.onReady(refreshAllUsers);
|
||||
Client.onReady(function () {
|
||||
$scope.roles = [
|
||||
|
||||
Reference in New Issue
Block a user