Auth. guard now only renders child if authenticated.
This commit is contained in:
parent
525c2b6d5a
commit
92289c87b3
@ -23,7 +23,11 @@ export default class AuthenticationGuard extends React.Component {
|
||||
}
|
||||
|
||||
render() {
|
||||
return null;
|
||||
if (this.context.user) {
|
||||
return this.props.children;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,4 +37,5 @@ AuthenticationGuard.defaultProps = {
|
||||
|
||||
AuthenticationGuard.propTypes = {
|
||||
accessLevel: propTypes.number,
|
||||
children: propTypes.any
|
||||
};
|
@ -11,7 +11,7 @@ export default class SportInfoCard extends React.Component {
|
||||
<Card style={{ width: "20rem" }}>
|
||||
<Card.Body>
|
||||
<Card.Title>{this.props.sport.name}</Card.Title>
|
||||
<Card.Subtitle className="mb-2 text-muted">{this.props.sport.minPlayers.toString()}</Card.Subtitle>
|
||||
<Card.Subtitle className="mb-2 text-muted">Requires a minimum of {this.props.sport.minPlayers.toString()} players.</Card.Subtitle>
|
||||
<Card.Text>
|
||||
{this.props.sport.description}
|
||||
</Card.Text>
|
||||
|
@ -41,32 +41,31 @@ export default class Dashboard extends React.Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="page-root">
|
||||
<AuthenticationGuard />
|
||||
<React.Fragment>
|
||||
<h1></h1>
|
||||
<InputGroup className="w-50">
|
||||
<FormControl
|
||||
placeholder="Search for Matches"
|
||||
aria-label="Search Bar"
|
||||
aria-describedby="basic-addon2"
|
||||
/>
|
||||
<Button variant="outline-secondary" id="button-addon2">
|
||||
Search
|
||||
</Button>
|
||||
</InputGroup>
|
||||
<div className="p-4">
|
||||
<h2>Available Matches</h2>
|
||||
<MatchInfoCardDisplay recommendedmatches={this.state.displayedMatches} />
|
||||
</div>
|
||||
<div className="p-4">
|
||||
<h2>Available Sports</h2>
|
||||
<SportInfoCardDisplay recommendedsports={this.state.displayedSports} />
|
||||
</div>
|
||||
|
||||
|
||||
</React.Fragment>
|
||||
</div>
|
||||
<AuthenticationGuard>
|
||||
<div className="page-root">
|
||||
<React.Fragment>
|
||||
<h1></h1>
|
||||
<InputGroup className="w-50">
|
||||
<FormControl
|
||||
placeholder="Search for Matches"
|
||||
aria-label="Search Bar"
|
||||
aria-describedby="basic-addon2"
|
||||
/>
|
||||
<Button variant="outline-secondary" id="button-addon2">
|
||||
Search
|
||||
</Button>
|
||||
</InputGroup>
|
||||
<div className="p-4">
|
||||
<h2>Available Matches</h2>
|
||||
<MatchInfoCardDisplay recommendedmatches={this.state.displayedMatches} />
|
||||
</div>
|
||||
<div className="p-4">
|
||||
<h2>Available Sports</h2>
|
||||
<SportInfoCardDisplay recommendedsports={this.state.displayedSports} />
|
||||
</div>
|
||||
</React.Fragment>
|
||||
</div>
|
||||
</AuthenticationGuard>
|
||||
);
|
||||
}
|
||||
}
|
@ -177,38 +177,37 @@ export default class Admin extends React.Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="page-root">
|
||||
<AuthenticationGuard accessLevel={3} />
|
||||
<React.Fragment>
|
||||
|
||||
<div className='center'>
|
||||
<h1 id='title'>Administration</h1>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["black", "", ""] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[0],
|
||||
}} variant="outline-secondary">Matches</Button>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["", "black", ""] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[1],
|
||||
}} variant="outline-secondary">Users</Button>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["", "", "black"] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[2],
|
||||
}} variant="outline-secondary">Suspended Users</Button></div>
|
||||
<Table striped bordered hover>
|
||||
{this.renderTableHead()}
|
||||
<tbody>
|
||||
{this.renderTableData()}
|
||||
{/* {this.matchUserTableData()} */}
|
||||
</tbody>
|
||||
</Table>
|
||||
|
||||
</React.Fragment>
|
||||
<AuthenticationGuard accessLevel={3}>
|
||||
<React.Fragment>
|
||||
<div className='center'>
|
||||
<h1 id='title'>Administration</h1>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["black", "", ""] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[0],
|
||||
}} variant="outline-secondary">Matches</Button>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["", "black", ""] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[1],
|
||||
}} variant="outline-secondary">Users</Button>
|
||||
<Button onClick={() => {
|
||||
this.setState({ buttonColors: ["", "", "black"] });
|
||||
}} sx={{
|
||||
margin: 3,
|
||||
backgroundColor: this.state.buttonColors[2],
|
||||
}} variant="outline-secondary">Suspended Users</Button></div>
|
||||
<Table striped bordered hover>
|
||||
{this.renderTableHead()}
|
||||
<tbody>
|
||||
{this.renderTableData()}
|
||||
{/* {this.matchUserTableData()} */}
|
||||
</tbody>
|
||||
</Table>
|
||||
</React.Fragment>
|
||||
</AuthenticationGuard >
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user