From: Janicki Artur Date: Mon, 3 Dec 2018 11:06:06 +0000 (+0100) Subject: fix issue with isAdmin for user and modify keep services actions X-Git-Tag: 1.4.0~99^2~2 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/33916938dc164fa0cca9e8abb693b3048fc931ab fix issue with isAdmin for user and modify keep services actions Feature #14503_keep_services_panel Arvados-DCO-1.1-Signed-off-by: Janicki Artur --- diff --git a/src/services/auth-service/auth-service.ts b/src/services/auth-service/auth-service.ts index edc6e24f..69e3a79d 100644 --- a/src/services/auth-service/auth-service.ts +++ b/src/services/auth-service/auth-service.ts @@ -52,7 +52,7 @@ export class AuthService { } public getIsAdmin(): boolean { - return !!localStorage.getItem(USER_IS_ADMIN); + return localStorage.getItem(USER_IS_ADMIN) === 'true'; } public getUser(): User | undefined { diff --git a/src/store/keep-services/keep-services-actions.ts b/src/store/keep-services/keep-services-actions.ts index bf7c45ec..1de6802e 100644 --- a/src/store/keep-services/keep-services-actions.ts +++ b/src/store/keep-services/keep-services-actions.ts @@ -10,11 +10,11 @@ import { ServiceRepository } from "~/services/services"; import { KeepServiceResource } from '~/models/keep-services'; import { dialogActions } from '~/store/dialog/dialog-actions'; import { snackbarActions } from '~/store/snackbar/snackbar-actions'; +import { navigateToRootProject } from '~/store/navigation/navigation-action'; export const keepServicesActions = unionize({ SET_KEEP_SERVICES: ofType(), - REMOVE_KEEP_SERVICE: ofType(), - RESET_KEEP_SERVICES: ofType<{}>() + REMOVE_KEEP_SERVICE: ofType() }); export type KeepServicesActions = UnionOf; @@ -22,15 +22,20 @@ export type KeepServicesActions = UnionOf; export const KEEP_SERVICE_REMOVE_DIALOG = 'keepServiceRemoveDialog'; export const KEEP_SERVICE_ATTRIBUTES_DIALOG = 'keepServiceAttributesDialog'; -// ToDo: access denied for loading keepService and reset data and redirect export const loadKeepServicesPanel = () => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - try { - dispatch(setBreadcrumbs([{ label: 'Keep Services' }])); - const response = await services.keepService.list(); - dispatch(keepServicesActions.SET_KEEP_SERVICES(response.items)); - } catch (e) { - return; + const user = getState().auth.user; + if(user && user.isAdmin) { + try { + dispatch(setBreadcrumbs([{ label: 'Keep Services' }])); + const response = await services.keepService.list(); + dispatch(keepServicesActions.SET_KEEP_SERVICES(response.items)); + } catch (e) { + return; + } + } else { + dispatch(navigateToRootProject); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: "You don't have permissions to view this page", hideDuration: 2000 })); } }; @@ -53,7 +58,6 @@ export const openKeepServiceRemoveDialog = (uuid: string) => })); }; -// ToDo: access denied for removing keepService and reset data and redirect export const removeKeepService = (uuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removing ...' })); diff --git a/src/store/keep-services/keep-services-reducer.ts b/src/store/keep-services/keep-services-reducer.ts index 53ef678d..043c010a 100644 --- a/src/store/keep-services/keep-services-reducer.ts +++ b/src/store/keep-services/keep-services-reducer.ts @@ -13,6 +13,5 @@ export const keepServicesReducer = (state: KeepSericesState = initialState, acti keepServicesActions.match(action, { SET_KEEP_SERVICES: items => items, REMOVE_KEEP_SERVICE: (uuid: string) => state.filter((keepService) => keepService.uuid !== uuid), - RESET_KEEP_SERVICES: () => [], default: () => state }); \ No newline at end of file