1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { RootState } from "store/store";
6 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
7 import { getUserAccountStatus, UserAccountStatus } from "store/users/users-actions";
8 import { matchMyAccountRoute, matchUserProfileRoute } from "routes/routes";
10 export const isAdmin = (state: RootState, resource: ContextMenuResource) => {
11 return state.auth.user!.isAdmin;
14 export const canActivateUser = (state: RootState, resource: ContextMenuResource) => {
15 const status = getUserAccountStatus(state, resource.uuid);
16 return status === UserAccountStatus.INACTIVE ||
17 status === UserAccountStatus.SETUP;
20 export const canDeactivateUser = (state: RootState, resource: ContextMenuResource) => {
21 const status = getUserAccountStatus(state, resource.uuid);
22 return status === UserAccountStatus.SETUP ||
23 status === UserAccountStatus.ACTIVE;
26 export const canSetupUser = (state: RootState, resource: ContextMenuResource) => {
27 const status = getUserAccountStatus(state, resource.uuid);
28 return status === UserAccountStatus.INACTIVE;
31 export const needsUserProfileLink = (state: RootState, resource: ContextMenuResource) => (
32 state.router.location ?
33 !(matchUserProfileRoute(state.router.location.pathname)
34 || matchMyAccountRoute(state.router.location.pathname)
38 export const isOtherUser = (state: RootState, resource: ContextMenuResource) => {
39 return state.auth.user!.uuid !== resource.uuid;