From 9917db889166adddf654708c75eb4483bf97c36a Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 26 Mar 2020 14:16:55 +0100 Subject: [PATCH] Ajout AuthorizedComponent --- .../src/components/AuthorizedComponent.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 frontend/src/components/AuthorizedComponent.js diff --git a/frontend/src/components/AuthorizedComponent.js b/frontend/src/components/AuthorizedComponent.js new file mode 100644 index 0000000..5c22df9 --- /dev/null +++ b/frontend/src/components/AuthorizedComponent.js @@ -0,0 +1,26 @@ +import React from 'react'; +import { Route } from 'react-router'; +import PropTypes from 'prop-types'; +import { useSelector } from 'react-redux'; + +export function AuthorizedComponent({ required, roles, children }) { + if ( !roles.includes(required) ) { + return null; + } + + return ( + <> + {children} + + ); +} + +export function ConnectedAuthorizedComponent({ ...props }) { + const roles = useSelector(({ session }) => ( session.user ? session.user.roles : [] )); + return +} + +AuthorizedComponent.propTypes = { + required: PropTypes.string.isRequired, + roles: PropTypes.arrayOf(PropTypes.string).isRequired +};