123456789101112131415161718192021222324252627282930313233 |
- import React from 'react';
- import { Route, Redirect } from 'react-router-dom';
- import * as routes from './../../../constants/routes';
- import PermissionDenied from './../../public-components/permissionDenied';
- export default ({ component: Component, user, access, ...rest }) => (
- <Route
- {...rest}
- render={props => {
- if (access === 'public') {
- return <Component {...props} />
- }
-
- if ( (access === 'user-only' || access === 'admin-only') && !user.data ) {
- return <Redirect to={routes.SIGN_IN}/>
- }
-
- if (access === 'user-only' && user.data) {
- return <Component {...props} />
- }
- if (access === 'admin-only') {
- if (user.isAdmin) {
- return <Component {...props} />
- }
- return <PermissionDenied />
- }
-
- }}
- />
- )
|