18559: Add tri-state account status indicator and associated context menu actions
[arvados.git] / src / views-components / context-menu / action-sets / user-action-set.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
6 import {
7     AdvancedIcon,
8     ProjectIcon,
9     AttributesIcon,
10     DeactivateUserIcon,
11     UserPanelIcon,
12     LoginAsIcon,
13     AdminMenuIcon,
14     ActiveIcon,
15 } from "components/icon/icon";
16 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
17 import { loginAs, openUserAttributes, openUserProjects } from "store/users/users-actions";
18 import { openSetupDialog, openDeactivateDialog, openActivateDialog } from "store/user-profile/user-profile-actions";
19 import { navigateToUserProfile } from "store/navigation/navigation-action";
20
21 export const userActionSet: ContextMenuActionSet = [[{
22     name: "Attributes",
23     icon: AttributesIcon,
24     execute: (dispatch, { uuid }) => {
25         dispatch<any>(openUserAttributes(uuid));
26     }
27 }, {
28     name: "Project",
29     icon: ProjectIcon,
30     execute: (dispatch, { uuid }) => {
31         dispatch<any>(openUserProjects(uuid));
32     }
33 }, {
34     name: "Advanced",
35     icon: AdvancedIcon,
36     execute: (dispatch, { uuid }) => {
37         dispatch<any>(openAdvancedTabDialog(uuid));
38     }
39 }, {
40     name: "Account Settings",
41     icon: UserPanelIcon,
42     execute: (dispatch, { uuid }) => {
43         dispatch<any>(navigateToUserProfile(uuid));
44     }
45 },], [{
46     name: "Activate User",
47     icon: ActiveIcon,
48     execute: (dispatch, { uuid }) => {
49         dispatch<any>(openActivateDialog(uuid));
50     }
51 },{
52     name: "Setup User",
53     adminOnly: true,
54     icon: AdminMenuIcon,
55     execute: (dispatch, { uuid }) => {
56         dispatch<any>(openSetupDialog(uuid));
57     }
58 }, {
59     name: "Deactivate User",
60     adminOnly: true,
61     icon: DeactivateUserIcon,
62     execute: (dispatch, { uuid }) => {
63         dispatch<any>(openDeactivateDialog(uuid));
64     }
65 }, {
66     name: "Login As User",
67     adminOnly: true,
68     icon: LoginAsIcon,
69     execute: (dispatch, { uuid }) => {
70         dispatch<any>(loginAs(uuid));
71     }
72 },
73
74 ]];