[ARVADOS-WORKBENCH2] updated: 1.3.0-76-g6c0ca05
Git user
git at public.curoverse.com
Mon Dec 10 05:14:31 EST 2018
Summary of changes:
src/store/users/users-actions.ts | 15 +++++++++++++--
src/store/virtual-machines/virtual-machines-actions.ts | 10 ++++++++--
src/views-components/main-app-bar/admin-menu.tsx | 4 ++--
3 files changed, 23 insertions(+), 6 deletions(-)
via 6c0ca05293d2d1bb5b4b0df63f541eb4f75428c3 (commit)
from 88c4b93c3e4f05afff419374277299d61ac61176 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 6c0ca05293d2d1bb5b4b0df63f541eb4f75428c3
Author: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
Date: Mon Dec 10 11:14:12 2018 +0100
disallow-to-see-admin-panels-when-no-admin-permissions
Feature #14566
Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
diff --git a/src/store/users/users-actions.ts b/src/store/users/users-actions.ts
index 51c9ba0..585a366 100644
--- a/src/store/users/users-actions.ts
+++ b/src/store/users/users-actions.ts
@@ -11,7 +11,7 @@ import { startSubmit, reset } from "redux-form";
import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions';
import { UserResource } from "~/models/user";
import { getResource } from '~/store/resources/resources';
-import { navigateToProject } from "~/store/navigation/navigation-action";
+import { navigateToProject, navigateToUsers, navigateToRootProject } from "~/store/navigation/navigation-action";
export const USERS_PANEL_ID = 'usersPanel';
export const USER_ATTRIBUTES_DIALOG = 'userAttributesDialog';
@@ -58,7 +58,18 @@ export const createUser = (user: UserCreateFormDialogData) =>
dispatch(userBindedActions.REQUEST_ITEMS());
return newUser;
} catch (e) {
- return ;
+ return;
+ }
+ };
+
+export const openUserPanel = () =>
+ async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ const user = getState().auth.user;
+ if (user && user.isAdmin) {
+ dispatch<any>(navigateToUsers);
+ } else {
+ dispatch<any>(navigateToRootProject);
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: "You don't have permissions to view this page", hideDuration: 2000 }));
}
};
diff --git a/src/store/virtual-machines/virtual-machines-actions.ts b/src/store/virtual-machines/virtual-machines-actions.ts
index ea6d1af..1e9825c 100644
--- a/src/store/virtual-machines/virtual-machines-actions.ts
+++ b/src/store/virtual-machines/virtual-machines-actions.ts
@@ -5,7 +5,7 @@
import { Dispatch } from "redux";
import { RootState } from '~/store/store';
import { ServiceRepository } from "~/services/services";
-import { navigateToUserVirtualMachines, navigateToAdminVirtualMachines } from "~/store/navigation/navigation-action";
+import { navigateToUserVirtualMachines, navigateToAdminVirtualMachines, navigateToRootProject } from "~/store/navigation/navigation-action";
import { bindDataExplorerActions } from '~/store/data-explorer/data-explorer-action';
import { formatDate } from "~/common/formatters";
import { unionize, ofType, UnionOf } from "~/common/unionize";
@@ -35,7 +35,13 @@ export const openUserVirtualMachines = () =>
export const openAdminVirtualMachines = () =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch<any>(navigateToAdminVirtualMachines);
+ const user = getState().auth.user;
+ if (user && user.isAdmin) {
+ dispatch<any>(navigateToAdminVirtualMachines);
+ } else {
+ dispatch<any>(navigateToRootProject);
+ dispatch(snackbarActions.OPEN_SNACKBAR({ message: "You don't have permissions to view this page", hideDuration: 2000 }));
+ }
};
export const openVirtualMachineAttributes = (uuid: string) =>
diff --git a/src/views-components/main-app-bar/admin-menu.tsx b/src/views-components/main-app-bar/admin-menu.tsx
index 8185f47..40ba916 100644
--- a/src/views-components/main-app-bar/admin-menu.tsx
+++ b/src/views-components/main-app-bar/admin-menu.tsx
@@ -16,7 +16,7 @@ import {
navigateToApiClientAuthorizations
} from '~/store/navigation/navigation-action';
import { openAdminVirtualMachines } from "~/store/virtual-machines/virtual-machines-actions";
-import { navigateToUsers } from '~/store/navigation/navigation-action';
+import { openUserPanel } from "~/store/users/users-actions";
interface AdminMenuProps {
user?: User;
@@ -37,7 +37,7 @@ export const AdminMenu = connect(mapStateToProps)(
<MenuItem onClick={() => dispatch(openAdminVirtualMachines())}>Virtual Machines</MenuItem>
<MenuItem onClick={() => dispatch(navigateToSshKeysAdmin)}>Ssh Keys</MenuItem>
<MenuItem onClick={() => dispatch(navigateToApiClientAuthorizations)}>Api Tokens</MenuItem>
- <MenuItem onClick={() => dispatch(navigateToUsers)}>Users</MenuItem>
+ <MenuItem onClick={() => dispatch(openUserPanel())}>Users</MenuItem>
<MenuItem onClick={() => dispatch(navigateToComputeNodes)}>Compute Nodes</MenuItem>
<MenuItem onClick={() => dispatch(navigateToKeepServices)}>Keep Services</MenuItem>
<MenuItem onClick={() => dispatch(logout())}>Logout</MenuItem>
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list