in nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webapp/components/administration/workflow/dialogs/edit-bucket-policy/nf-registry-edit-bucket-policy.js [96:351]
applyPolicy: function () {
var self = this;
var action = '';
var resource = '/buckets';
var permissions = [];
if (this.readCheckbox.checked) {
action = 'read';
permissions.push(action);
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'read';
if (policy.status && policy.status === 404) {
// resource does NOT exist, let's create it
var users = [];
var groups = [];
if (self.userOrGroup.type === 'user') {
users.push(self.userOrGroup);
} else {
groups.push(self.userOrGroup);
}
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
function () {
// policy created!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
} else {
// resource exists, let's update it
if (self.userOrGroup.type === 'user') {
policy.users.push(self.userOrGroup);
} else {
policy.userGroups.push(self.userOrGroup);
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
} else {
action = 'read';
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'read';
if (policy.status && policy.status === 404) {
// resource does NOT exist so we have nothing to do
} else {
// resource exists, let's remove it
if (self.userOrGroup.type === 'user') {
policy.users = policy.users.filter(function (user) {
return (self.userOrGroup.identity !== user.identity);
});
} else {
policy.userGroups = policy.userGroups.filter(function (group) {
return (self.userOrGroup.identity !== group.identity);
});
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
}
if (this.writeCheckbox.checked) {
action = 'write';
permissions.push(action);
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'write';
if (policy.status && policy.status === 404) {
// resource does NOT exist, let's create it
var users = [];
var groups = [];
if (self.userOrGroup.type === 'user') {
users.push(self.userOrGroup);
} else {
groups.push(self.userOrGroup);
}
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
function () {
// policy created!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
} else {
// resource exists, let's update it
if (self.userOrGroup.type === 'user') {
policy.users.push(self.userOrGroup);
} else {
policy.userGroups.push(self.userOrGroup);
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
} else {
action = 'write';
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'write';
if (policy.status && policy.status === 404) {
// resource does NOT exist so we have nothing to do
} else {
// resource exists, let's remove it
if (self.userOrGroup.type === 'user') {
policy.users = policy.users.filter(function (user) {
return (self.userOrGroup.identity !== user.identity);
});
} else {
policy.userGroups = policy.userGroups.filter(function (group) {
return (self.userOrGroup.identity !== group.identity);
});
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
}
if (this.deleteCheckbox.checked) {
action = 'delete';
permissions.push(action);
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'delete';
if (policy.status && policy.status === 404) {
// resource does NOT exist, let's create it
var users = [];
var groups = [];
if (self.userOrGroup.type === 'user') {
users.push(self.userOrGroup);
} else {
groups.push(self.userOrGroup);
}
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
function () {
// policy created!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
} else {
// resource exists, let's update it
if (self.userOrGroup.type === 'user') {
policy.users.push(self.userOrGroup);
} else {
policy.userGroups.push(self.userOrGroup);
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
} else {
action = 'delete';
this.nfRegistryApi.getResourcePoliciesById(action, resource, this.nfRegistryService.bucket.identifier).subscribe(function (policy) {
action = 'delete';
if (policy.status && policy.status === 404) {
// resource does NOT exist so we have nothing to do
} else {
// resource exists, let's remove it
if (self.userOrGroup.type === 'user') {
policy.users = policy.users.filter(function (user) {
return (self.userOrGroup.identity !== user.identity);
});
} else {
policy.userGroups = policy.userGroups.filter(function (group) {
return (self.userOrGroup.identity !== group.identity);
});
}
self.nfRegistryApi.putPolicyActionResource(
policy.identifier,
policy.action,
policy.resource,
policy.users,
policy.userGroups,
policy.revision
).subscribe(
function () {
// policy updated!!!...now update the view
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
self.nfRegistryService.bucket = response;
});
}
);
}
});
}
this.dialogRef.close({userOrGroup: self.userOrGroup, permissions: permissions});
},