X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/9a37cc202448e431064b247d36ac0229a6bfa9b2..3b53b656e65fdabc32b3bc748074eb35e9df98eb:/src/store/context-menu/context-menu-actions.ts diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index c43d5685..431d15e8 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -17,7 +17,6 @@ import { RepositoryResource } from '~/models/repositories'; import { SshKeyResource } from '~/models/ssh-key'; import { VirtualMachinesResource } from '~/models/virtual-machines'; import { KeepServiceResource } from '~/models/keep-services'; -import { ApiClientAuthorization } from '~/models/api-client-authorization'; import { ProcessResource } from '~/models/process'; export const contextMenuActions = unionize({ @@ -36,6 +35,7 @@ export type ContextMenuResource = { menuKind: ContextMenuKind; isTrashed?: boolean; outputUuid?: string; + workflowUuid?: string; }; export const isKeyboardClick = (event: React.MouseEvent) => event.nativeEvent.detail === 0; @@ -123,12 +123,12 @@ export const openComputeNodeContextMenu = (event: React.MouseEvent, }; export const openApiClientAuthorizationContextMenu = - (event: React.MouseEvent, apiClientAuthorization: ApiClientAuthorization) => + (event: React.MouseEvent, resourceUuid: string) => (dispatch: Dispatch) => { dispatch(openContextMenu(event, { name: '', - uuid: apiClientAuthorization.uuid, - ownerUuid: apiClientAuthorization.ownerUuid, + uuid: resourceUuid, + ownerUuid: '', kind: ResourceKind.API_CLIENT_AUTHORIZATION, menuKind: ContextMenuKind.API_CLIENT_AUTHORIZATION })); @@ -152,12 +152,13 @@ export const openRootProjectContextMenu = (event: React.MouseEvent, export const openProjectContextMenu = (event: React.MouseEvent, projectUuid: string) => (dispatch: Dispatch, getState: () => RootState) => { const res = getResource(projectUuid)(getState().resources); + const isAdmin = getState().auth.user!.isAdmin; if (res) { dispatch(openContextMenu(event, { name: res.name, uuid: res.uuid, kind: res.kind, - menuKind: ContextMenuKind.PROJECT, + menuKind: !isAdmin ? ContextMenuKind.PROJECT : ContextMenuKind.PROJECT_ADMIN, ownerUuid: res.ownerUuid, isTrashed: res.isTrashed })); @@ -187,20 +188,21 @@ export const openProcessContextMenu = (event: React.MouseEvent, pro name: res.name, description: res.description, outputUuid: res.outputUuid || '', + workflowUuid: res.properties.workflowUuid || '', menuKind: ContextMenuKind.PROCESS })); } }; -export const resourceKindToContextMenuKind = (uuid: string) => { +export const resourceKindToContextMenuKind = (uuid: string, isAdmin?: boolean) => { const kind = extractUuidKind(uuid); switch (kind) { case ResourceKind.PROJECT: - return ContextMenuKind.PROJECT; + return !isAdmin ? ContextMenuKind.PROJECT : ContextMenuKind.PROJECT_ADMIN; case ResourceKind.COLLECTION: - return ContextMenuKind.COLLECTION_RESOURCE; + return !isAdmin ? ContextMenuKind.COLLECTION_RESOURCE : ContextMenuKind.COLLECTION_ADMIN; case ResourceKind.PROCESS: - return ContextMenuKind.PROCESS_RESOURCE; + return !isAdmin ? ContextMenuKind.PROCESS_RESOURCE : ContextMenuKind.PROCESS_ADMIN; case ResourceKind.USER: return ContextMenuKind.ROOT_PROJECT; case ResourceKind.LINK: