import React from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Layout from '../components/Layout'; import Login from '../containers/Login'; import { FullLoading } from '../components/FullLoading'; import BanUserDialog from './BanUserDialog'; import SuspendUserDialog from './SuspendUserDialog'; import RejectUsernameDialog from './RejectUsernameDialog'; import { toggleModal as toggleShortcutModal } from '../actions/moderation'; import { logout } from 'coral-framework/actions/auth'; import { can } from 'coral-framework/services/perms'; import UserDetail from 'coral-admin/src/containers/UserDetail'; import PropTypes from 'prop-types'; import Forbidden from '../components/Forbidden'; class LayoutContainer extends React.Component { render() { const { currentUser, checkedInitialLogin, children, logout, toggleShortcutModal, } = this.props; if (!checkedInitialLogin) { return ; } if (!currentUser) { return ; } if (currentUser) { if (can(currentUser, 'ACCESS_ADMIN')) { return ( {children} ); } else { return ( ); } } return ; } } LayoutContainer.propTypes = { children: PropTypes.node, currentUser: PropTypes.object, checkedInitialLogin: PropTypes.bool, logout: PropTypes.func, toggleShortcutModal: PropTypes.func, }; const mapStateToProps = state => ({ currentUser: state.auth.user, checkedInitialLogin: state.auth.checkedInitialLogin, }); const mapDispatchToProps = dispatch => bindActionCreators( { toggleShortcutModal, logout, }, dispatch ); export default connect( mapStateToProps, mapDispatchToProps )(LayoutContainer);