Only call the API if values have changed for operators or access controls
This commit is contained in:
@@ -456,6 +456,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
ftp: false,
|
||||
ssoAuth: false,
|
||||
accessRestrictionOption: 'any',
|
||||
accessRestrictionOptionCur: 'any',
|
||||
accessRestriction: { users: [], groups: [] },
|
||||
|
||||
operators: { users: [], groups: [] },
|
||||
@@ -472,6 +473,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
$scope.access.ftp = app.manifest.addons.localstorage && app.manifest.addons.localstorage.ftp;
|
||||
$scope.access.ssoAuth = (app.manifest.addons['ldap'] || app.manifest.addons['proxyAuth']) && app.sso;
|
||||
$scope.access.accessRestrictionOption = app.accessRestriction ? 'groups' : 'any';
|
||||
$scope.access.accessRestrictionOptionCur = app.accessRestriction ? 'groups' : 'any';
|
||||
$scope.access.accessRestriction = { users: [], groups: [] };
|
||||
|
||||
$scope.access.operators = { users: [], groups: [] };
|
||||
@@ -517,17 +519,25 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
operators.groups = $scope.access.operators.groups.map(function (g) { return g.id; });
|
||||
}
|
||||
|
||||
Client.configureApp($scope.app.id, 'access_restriction', { accessRestriction: accessRestriction }, function (error) {
|
||||
async.series([
|
||||
function (callback) {
|
||||
if ($scope.access.accessRestrictionOption === $scope.access.accessRestrictionOptionCur && !$scope.accessForm.accessUsersSelect.$dirty && !$scope.accessForm.accessGroupsSelect.$dirty) return callback();
|
||||
|
||||
Client.configureApp($scope.app.id, 'access_restriction', { accessRestriction: accessRestriction }, callback);
|
||||
},
|
||||
function (callback) {
|
||||
if (!$scope.accessForm.operatorsUsersSelect.$dirty && !$scope.accessForm.operatorsGroupsSelect.$dirty) return callback();
|
||||
|
||||
Client.configureApp($scope.app.id, 'operators', { operators: operators }, callback);
|
||||
}
|
||||
], function (error) {
|
||||
if (error) return Client.error(error);
|
||||
|
||||
Client.configureApp($scope.app.id, 'operators', { operators: operators }, function (error) {
|
||||
if (error) return Client.error(error);
|
||||
$scope.accessForm.$setPristine();
|
||||
|
||||
$timeout(function () {
|
||||
$scope.access.success = true;
|
||||
$scope.access.busy = false;
|
||||
}, 1000);
|
||||
});
|
||||
$scope.access.accessRestrictionOptionCur = $scope.access.accessRestrictionOption;
|
||||
$scope.access.success = true;
|
||||
$scope.access.busy = false;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user