1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ActiveIcon, AdminMenuIcon, AdvancedIcon, AttributesIcon, DeactivateUserIcon, LoginAsIcon } from 'components/icon/icon';
6 import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames } from './ms-menu-actions';
7 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
8 import { openActivateDialog, openDeactivateDialog, openSetupDialog } from 'store/user-profile/user-profile-actions';
9 import { UserAccountStatus, openUserAttributes } from 'store/users/users-actions';
10 import { loginAs } from 'store/users/users-actions';
12 const { ATTRIBUTES, API_DETAILS, SETUP_USER, ACTIVATE_USER, DEACTIVATE_USER, LOGIN_AS_USER } = MultiSelectMenuActionNames;
14 const msUserAttributes: MultiSelectMenuAction = {
19 execute: (dispatch, resources) => {
20 dispatch<any>(openUserAttributes(resources[0].uuid));
24 const msAdvancedAction: MultiSelectMenuAction = {
29 execute: (dispatch, resources) => {
30 dispatch<any>(openAdvancedTabDialog(resources[0].uuid));
34 const msActivateUser: MultiSelectMenuAction = {
39 execute: (dispatch, resources) => {
40 dispatch<any>(openActivateDialog(resources[0].uuid));
42 filters: [UserAccountStatus.INACTIVE, UserAccountStatus.SETUP],
45 const msSetupUser: MultiSelectMenuAction = {
50 execute: (dispatch, resources) => {
51 dispatch<any>(openSetupDialog(resources[0].uuid));
53 filters: [UserAccountStatus.INACTIVE],
56 const msDeactivateUser: MultiSelectMenuAction = {
57 name: DEACTIVATE_USER,
58 icon: DeactivateUserIcon,
61 execute: (dispatch, resources) => {
62 dispatch<any>(openDeactivateDialog(resources[0].uuid));
64 filters: [UserAccountStatus.ACTIVE, UserAccountStatus.SETUP],
67 const msLoginAsUser: MultiSelectMenuAction = {
72 execute: (dispatch, resources) => {
73 dispatch<any>(loginAs(resources[0].uuid));
75 filters: [UserAccountStatus.OTHER]
78 export const msUserActionSet: MultiSelectMenuActionSet = [[msAdvancedAction, msUserAttributes, msSetupUser, msActivateUser, msDeactivateUser, msLoginAsUser]];
80 export const msUserCommonActionFilter = new Set([ATTRIBUTES, API_DETAILS]);
81 export const msUserAdminActionFilter = new Set([ATTRIBUTES, API_DETAILS, SETUP_USER, ACTIVATE_USER, DEACTIVATE_USER, LOGIN_AS_USER]);