From: Peter Amstutz Date: Mon, 25 Feb 2019 21:27:59 +0000 (-0500) Subject: 14841: Always reload user details on page initialization. X-Git-Tag: 1.4.0~44^2~1 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/ac687c484aeb0d16d4d2765cad4d64b171398b1e 14841: Always reload user details on page initialization. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/src/store/auth/auth-action.ts b/src/store/auth/auth-action.ts index fdaa2e1a..1654f514 100644 --- a/src/store/auth/auth-action.ts +++ b/src/store/auth/auth-action.ts @@ -53,7 +53,10 @@ export const initAuth = (config: Config) => (dispatch: Dispatch, getState: () => dispatch(authActions.CONFIG({ config })); if (token && user) { dispatch(authActions.INIT({ user, token })); - dispatch(initSessions(services.authService, config, user)); + dispatch(getUserDetails()).then((user: User) => { + dispatch(authActions.INIT({ user, token })); + dispatch(initSessions(services.authService, config, user)); + }); } }; diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index 2bac55af..ddfe296c 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -117,31 +117,26 @@ export const loadWorkbench = () => const { auth, router } = getState(); const { user } = auth; if (user) { - const userResource = await dispatch(loadResource(user.uuid)); - if (userResource) { - dispatch(projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })); - dispatch(favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })); - dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns })); - dispatch(sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })); - dispatch(workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })); - dispatch(searchResultsPanelActions.SET_FETCH_MODE({ fetchMode: DataTableFetchMode.INFINITE })); - dispatch(searchResultsPanelActions.SET_COLUMNS({ columns: searchResultsPanelColumns })); - dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns })); - dispatch(groupPanelActions.GroupsPanelActions.SET_COLUMNS({ columns: groupsPanelColumns })); - dispatch(groupDetailsPanelActions.GroupDetailsPanelActions.SET_COLUMNS({columns: groupDetailsPanelColumns})); - dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns })); - dispatch(computeNodesActions.SET_COLUMNS({ columns: computeNodePanelColumns })); - dispatch(apiClientAuthorizationsActions.SET_COLUMNS({ columns: apiClientAuthorizationPanelColumns })); - - dispatch(initSidePanelTree()); - if (router.location) { - const match = matchRootRoute(router.location.pathname); - if (match) { - dispatch(navigateToProject(userResource.uuid)); - } + dispatch(projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })); + dispatch(favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })); + dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns })); + dispatch(sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })); + dispatch(workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })); + dispatch(searchResultsPanelActions.SET_FETCH_MODE({ fetchMode: DataTableFetchMode.INFINITE })); + dispatch(searchResultsPanelActions.SET_COLUMNS({ columns: searchResultsPanelColumns })); + dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns })); + dispatch(groupPanelActions.GroupsPanelActions.SET_COLUMNS({ columns: groupsPanelColumns })); + dispatch(groupDetailsPanelActions.GroupDetailsPanelActions.SET_COLUMNS({ columns: groupDetailsPanelColumns })); + dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns })); + dispatch(computeNodesActions.SET_COLUMNS({ columns: computeNodePanelColumns })); + dispatch(apiClientAuthorizationsActions.SET_COLUMNS({ columns: apiClientAuthorizationPanelColumns })); + + dispatch(initSidePanelTree()); + if (router.location) { + const match = matchRootRoute(router.location.pathname); + if (match) { + dispatch(navigateToProject(user.uuid)); } - } else { - dispatch(userIsNotAuthenticated); } } else { dispatch(userIsNotAuthenticated); @@ -470,9 +465,9 @@ export const loadSshKeys = handleFirstTimeLoad( }); export const loadSiteManager = handleFirstTimeLoad( -async (dispatch: Dispatch) => { - await dispatch(loadSiteManagerPanel()); -}); + async (dispatch: Dispatch) => { + await dispatch(loadSiteManagerPanel()); + }); export const loadMyAccount = handleFirstTimeLoad( (dispatch: Dispatch) => { diff --git a/src/views-components/main-app-bar/account-menu.tsx b/src/views-components/main-app-bar/account-menu.tsx index 3481814d..87bfe0c6 100644 --- a/src/views-components/main-app-bar/account-menu.tsx +++ b/src/views-components/main-app-bar/account-menu.tsx @@ -74,8 +74,8 @@ export const AccountMenu = withStyles(styles)( dispatch(openCurrentTokenDialog)}>Current token dispatch(navigateToSshKeysUser)}>Ssh Keys dispatch(navigateToSiteManager)}>Site Manager - dispatch(navigateToMyAccount)}>My account) - : null} + dispatch(navigateToMyAccount)}>My account + : null} diff --git a/src/views/inactive-panel/inactive-panel.tsx~ b/src/views/inactive-panel/inactive-panel.tsx~ deleted file mode 100644 index eac4034b..00000000 --- a/src/views/inactive-panel/inactive-panel.tsx~ +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (C) The Arvados Authors. All rights reserved. -// -// SPDX-License-Identifier: AGPL-3.0 - -import * as React from 'react'; -import { connect, DispatchProp } from 'react-redux'; -import { Grid, Typography, Button, Select, FormControl } from '@material-ui/core'; -import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; -import { login, authActions } from '~/store/auth/auth-action'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { RootState } from '~/store/store'; -import * as classNames from 'classnames'; - -type CssRules = 'root' | 'container' | 'title' | 'content' | 'content__bolder' | 'button'; - -const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ - root: { - position: 'relative', - backgroundColor: theme.palette.grey["200"], - '&::after': { - content: `''`, - position: 'absolute', - top: 0, - left: 0, - bottom: 0, - right: 0, - background: 'url("arvados-logo-big.png") no-repeat center center', - opacity: 0.2, - } - }, - container: { - width: '560px', - zIndex: 10 - }, - title: { - marginBottom: theme.spacing.unit * 6, - color: theme.palette.grey["800"] - }, - content: { - marginBottom: theme.spacing.unit * 3, - lineHeight: '1.2rem', - color: theme.palette.grey["800"] - }, - 'content__bolder': { - fontWeight: 'bolder' - }, - button: { - boxShadow: 'none' - } -}); - -type LoginPanelProps = DispatchProp & WithStyles & { - remoteHosts: { [key: string]: string }, - homeCluster: string, - uuidPrefix: string -}; - -export const LoginPanel = withStyles(styles)( - connect((state: RootState) => ({ - remoteHosts: state.auth.remoteHosts, - homeCluster: state.auth.homeCluster, - uuidPrefix: state.auth.localCluster - }))(({ classes, dispatch, remoteHosts, homeCluster, uuidPrefix }: LoginPanelProps) => - - - - Welcome to the Arvados Workbench - - - The "Log in" button below will show you a Google sign-in page. - After you assure Google that you want to log in here with your Google account, you will be redirected back here to Arvados Workbench. - - - If you have never used Arvados Workbench before, logging in for the first time will automatically create a new account. - - - IMPORTANT: Please keep in mind to store exploratory data only but not any information used for clinical decision making. - - - Arvados Workbench uses your name and email address only for identification, and does not retrieve any other personal information from Google. - - - {Object.keys(remoteHosts).length > 1 && - - - - } - - - - - - - ));