Skip to content

Commit

Permalink
fix: only use management access and update bulkUpdate logic
Browse files Browse the repository at this point in the history
Signed-off-by: tygao <tygao@amazon.com>
  • Loading branch information
raintygao committed Aug 10, 2023
1 parent ab0881d commit 897800e
Showing 1 changed file with 12 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ export class WorkspaceSavedObjectsClientWrapper {
) => {
if (this.isRelatedToWorkspace(type)) {
await this.validateSingleWorkspacePermissions(id, wrapperOptions.request, [
PermissionMode.LibraryWrite,
PermissionMode.Management,
]);
}
Expand All @@ -180,7 +179,6 @@ export class WorkspaceSavedObjectsClientWrapper {
): Promise<SavedObjectsUpdateResponse<T>> => {
if (this.isRelatedToWorkspace(type)) {
await this.validateSingleWorkspacePermissions(id, wrapperOptions.request, [
PermissionMode.LibraryWrite,
PermissionMode.Management,
]);
}
Expand All @@ -191,13 +189,19 @@ export class WorkspaceSavedObjectsClientWrapper {
objects: Array<SavedObjectsBulkUpdateObject<T>>,
options?: SavedObjectsBulkUpdateOptions
): Promise<SavedObjectsBulkUpdateResponse<T>> => {
for (const object of objects) {
if (this.isRelatedToWorkspace(object.type)) {
await this.validateSingleWorkspacePermissions(object.id, wrapperOptions.request, [
PermissionMode.LibraryWrite,
PermissionMode.Management,
]);
const workspaceIds = objects.reduce<string[]>((acc, cur) => {
if (this.isRelatedToWorkspace(cur.type)) {
acc.push(cur.id);
}
return acc;
}, []);
const permittedWorkspaceIds =
(await this.permissionControl.getPermittedWorkspaceIds(wrapperOptions.request, [
PermissionMode.Management,
])) ?? [];
const workspacePermitted = workspaceIds.every((id) => permittedWorkspaceIds?.includes(id));
if (!workspacePermitted) {
throw generateWorkspacePermissionError();
}

return await wrapperOptions.client.bulkUpdate(objects, options);
Expand Down

0 comments on commit 897800e

Please sign in to comment.