X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/f9dde5c781766b8be71d43d0f031c201a0edcfbb..6522c126265875505b3f616c867ef7d655a4da80:/src/views-components/context-menu/action-sets/user-action-set.ts diff --git a/src/views-components/context-menu/action-sets/user-action-set.ts b/src/views-components/context-menu/action-sets/user-action-set.ts index 7b0884e6..c00b7f1f 100644 --- a/src/views-components/context-menu/action-sets/user-action-set.ts +++ b/src/views-components/context-menu/action-sets/user-action-set.ts @@ -2,10 +2,22 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { ContextMenuActionSet } from "~/views-components/context-menu/context-menu-action-set"; -import { AdvancedIcon, ProjectIcon, AttributesIcon, UserPanelIcon } from "~/components/icon/icon"; -import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab'; -import { openUserAttributes, openUserProjects } from "~/store/users/users-actions"; +import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set"; +import { + AdvancedIcon, + ProjectIcon, + AttributesIcon, + DeactivateUserIcon, + UserPanelIcon, + LoginAsIcon, + AdminMenuIcon, + ActiveIcon, +} from "components/icon/icon"; +import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab'; +import { loginAs, openUserAttributes, openUserProjects } from "store/users/users-actions"; +import { openSetupDialog, openDeactivateDialog, openActivateDialog } from "store/user-profile/user-profile-actions"; +import { navigateToUserProfile } from "store/navigation/navigation-action"; +import { canActivateUser, canDeactivateUser, canSetupUser, isAdmin, needsUserProfileLink, isOtherUser } from "store/context-menu/context-menu-filters"; export const userActionSet: ContextMenuActionSet = [[{ name: "Attributes", @@ -20,16 +32,56 @@ export const userActionSet: ContextMenuActionSet = [[{ dispatch(openUserProjects(uuid)); } }, { - name: "Advanced", + name: "API Details", icon: AdvancedIcon, execute: (dispatch, { uuid }) => { dispatch(openAdvancedTabDialog(uuid)); } -}, -{ - name: "Manage", +}, { + name: "Account Settings", icon: UserPanelIcon, execute: (dispatch, { uuid }) => { - dispatch(openAdvancedTabDialog(uuid)); - } + dispatch(navigateToUserProfile(uuid)); + }, + filters: [needsUserProfileLink] +}],[{ + name: "Activate User", + icon: ActiveIcon, + execute: (dispatch, { uuid }) => { + dispatch(openActivateDialog(uuid)); + }, + filters: [ + isAdmin, + canActivateUser, + ], +}, { + name: "Setup User", + icon: AdminMenuIcon, + execute: (dispatch, { uuid }) => { + dispatch(openSetupDialog(uuid)); + }, + filters: [ + isAdmin, + canSetupUser, + ], +}, { + name: "Deactivate User", + icon: DeactivateUserIcon, + execute: (dispatch, { uuid }) => { + dispatch(openDeactivateDialog(uuid)); + }, + filters: [ + isAdmin, + canDeactivateUser, + ], +}, { + name: "Login As User", + icon: LoginAsIcon, + execute: (dispatch, { uuid }) => { + dispatch(loginAs(uuid)); + }, + filters: [ + isAdmin, + isOtherUser, + ], }]];