disable buttons which are not accessable when non-admin user is authenticated
This commit is contained in:
		| @@ -74,7 +74,7 @@ const styles = theme => ({ | ||||
|   }, | ||||
|   authMenuActions: { | ||||
|     padding: theme.spacing(2), | ||||
|     "& > * + *" :{ | ||||
|     "& > * + *": { | ||||
|       marginLeft: theme.spacing(2), | ||||
|     } | ||||
|   }, | ||||
| @@ -118,31 +118,31 @@ class MenuAppBar extends React.Component { | ||||
|         </Toolbar> | ||||
|         <Divider /> | ||||
|         <List> | ||||
|           <ListItem button component={Link} to='/wifi/' selected={path.startsWith('/wifi/')}> | ||||
|           <ListItem to='/wifi/' selected={path.startsWith('/wifi/')} button component={Link}> | ||||
|             <ListItemIcon> | ||||
|               <WifiIcon /> | ||||
|             </ListItemIcon> | ||||
|             <ListItemText primary="WiFi Connection" /> | ||||
|           </ListItem> | ||||
|           <ListItem button component={Link} to='/ap/' selected={path.startsWith('/ap/')}> | ||||
|           <ListItem to='/ap/' selected={path.startsWith('/ap/')} button component={Link}> | ||||
|             <ListItemIcon> | ||||
|               <SettingsInputAntennaIcon /> | ||||
|             </ListItemIcon> | ||||
|             <ListItemText primary="Access Point" /> | ||||
|           </ListItem> | ||||
|           <ListItem button component={Link} to='/ntp/' selected={path.startsWith('/ntp/')}> | ||||
|           <ListItem to='/ntp/' selected={path.startsWith('/ntp/')} button component={Link}> | ||||
|             <ListItemIcon> | ||||
|               <AccessTimeIcon /> | ||||
|             </ListItemIcon> | ||||
|             <ListItemText primary="Network Time" /> | ||||
|           </ListItem> | ||||
|           <ListItem button component={Link} to='/security/' selected={path.startsWith('/security/')}> | ||||
|           <ListItem to='/security/' selected={path.startsWith('/security/')} button component={Link} disabled={!authenticationContext.isAdmin()}> | ||||
|             <ListItemIcon> | ||||
|               <LockIcon /> | ||||
|             </ListItemIcon> | ||||
|             <ListItemText primary="Security" /> | ||||
|           </ListItem> | ||||
|           <ListItem button component={Link} to='/system/' selected={path.startsWith('/system/')}> | ||||
|           <ListItem to='/system/' selected={path.startsWith('/system/')} button component={Link} > | ||||
|             <ListItemIcon> | ||||
|               <SettingsIcon /> | ||||
|             </ListItemIcon> | ||||
| @@ -189,7 +189,7 @@ class MenuAppBar extends React.Component { | ||||
|                               <AccountCircleIcon /> | ||||
|                             </Avatar> | ||||
|                           </ListItemAvatar> | ||||
|                           <ListItemText primary={"Signed in as: " + authenticationContext.user.username} secondary={ authenticationContext.isAdmin() ? "Admin User" : undefined} /> | ||||
|                           <ListItemText primary={"Signed in as: " + authenticationContext.user.username} secondary={authenticationContext.isAdmin() ? "Admin User" : undefined} /> | ||||
|                         </ListItem> | ||||
|                       </List> | ||||
|                     </CardContent> | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; | ||||
| import MenuAppBar from '../components/MenuAppBar'; | ||||
| import APSettings from '../containers/APSettings'; | ||||
| import APStatus from '../containers/APStatus'; | ||||
| import { withAuthenticationContext } from '../authentication/Context.js'; | ||||
|  | ||||
| class AccessPoint extends Component { | ||||
|  | ||||
| @@ -16,20 +17,21 @@ class AccessPoint extends Component { | ||||
|   }; | ||||
|  | ||||
|   render() { | ||||
|     const { authenticationContext } = this.props; | ||||
|     return ( | ||||
|       <MenuAppBar sectionTitle="Access Point"> | ||||
|         <Tabs value={this.props.match.url} onChange={this.handleTabChange} indicatorColor="primary" textColor="primary" variant="fullWidth"> | ||||
|           <Tab value="/ap/status" label="Access Point Status" /> | ||||
|           <Tab value="/ap/settings" label="Access Point Settings" /> | ||||
|           <Tab value="/ap/settings" label="Access Point Settings" disabled={!authenticationContext.isAdmin()} /> | ||||
|         </Tabs> | ||||
|         <Switch> | ||||
|           <AuthenticatedRoute exact={true} path="/ap/status" component={APStatus} /> | ||||
|           <AuthenticatedRoute exact={true} path="/ap/settings" component={APSettings} /> | ||||
|           <Redirect to="/ap/status" /> | ||||
|         </Switch>         | ||||
|         </Switch> | ||||
|       </MenuAppBar> | ||||
|     ) | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default AccessPoint; | ||||
| export default withAuthenticationContext(AccessPoint); | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; | ||||
| import MenuAppBar from '../components/MenuAppBar'; | ||||
| import NTPSettings from '../containers/NTPSettings'; | ||||
| import NTPStatus from '../containers/NTPStatus'; | ||||
| import { withAuthenticationContext } from '../authentication/Context.js'; | ||||
|  | ||||
| class NetworkTime extends Component { | ||||
|  | ||||
| @@ -16,11 +17,12 @@ class NetworkTime extends Component { | ||||
|   }; | ||||
|  | ||||
|   render() { | ||||
|     const { authenticationContext } = this.props; | ||||
|     return ( | ||||
|       <MenuAppBar sectionTitle="Network Time"> | ||||
|         <Tabs value={this.props.match.url} onChange={this.handleTabChange} indicatorColor="primary" textColor="primary" variant="fullWidth"> | ||||
|           <Tab value="/ntp/status" label="NTP Status" /> | ||||
|           <Tab value="/ntp/settings" label="NTP Settings" /> | ||||
|           <Tab value="/ntp/settings" label="NTP Settings" disabled={!authenticationContext.isAdmin()} /> | ||||
|         </Tabs> | ||||
|         <Switch> | ||||
|           <AuthenticatedRoute exact={true} path="/ntp/status" component={NTPStatus} /> | ||||
| @@ -32,4 +34,4 @@ class NetworkTime extends Component { | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default NetworkTime | ||||
| export default withAuthenticationContext(NetworkTime) | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import AuthenticatedRoute from '../authentication/AuthenticatedRoute'; | ||||
| import MenuAppBar from '../components/MenuAppBar'; | ||||
| import OTASettings from '../containers/OTASettings'; | ||||
| import SystemStatus from '../containers/SystemStatus'; | ||||
| import { withAuthenticationContext } from '../authentication/Context.js'; | ||||
|  | ||||
| class System extends Component { | ||||
|  | ||||
| @@ -16,11 +17,12 @@ class System extends Component { | ||||
|   }; | ||||
|  | ||||
|   render() { | ||||
|     const { authenticationContext } = this.props; | ||||
|     return ( | ||||
|       <MenuAppBar sectionTitle="System"> | ||||
|         <Tabs value={this.props.match.url} onChange={this.handleTabChange} indicatorColor="primary" textColor="primary" variant="fullWidth"> | ||||
|           <Tab value="/system/status" label="System Status" /> | ||||
|           <Tab value="/system/ota" label="OTA Settings" /> | ||||
|           <Tab value="/system/ota" label="OTA Settings" disabled={!authenticationContext.isAdmin()} /> | ||||
|         </Tabs> | ||||
|         <Switch> | ||||
|           <AuthenticatedRoute exact={true} path="/system/status" component={SystemStatus} /> | ||||
| @@ -32,4 +34,4 @@ class System extends Component { | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default System | ||||
| export default withAuthenticationContext(System); | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import MenuAppBar from '../components/MenuAppBar'; | ||||
| import WiFiNetworkScanner from '../containers/WiFiNetworkScanner'; | ||||
| import WiFiSettings from '../containers/WiFiSettings'; | ||||
| import WiFiStatus from '../containers/WiFiStatus'; | ||||
| import { withAuthenticationContext } from '../authentication/Context.js'; | ||||
|  | ||||
| class WiFiConnection extends Component { | ||||
|  | ||||
| @@ -35,6 +36,7 @@ class WiFiConnection extends Component { | ||||
|   }; | ||||
|  | ||||
|   render() { | ||||
|     const { authenticationContext } = this.props; | ||||
|     const ConfiguredWiFiNetworkScanner = (props) => { | ||||
|       return ( | ||||
|         <WiFiNetworkScanner | ||||
| @@ -55,8 +57,8 @@ class WiFiConnection extends Component { | ||||
|       <MenuAppBar sectionTitle="WiFi Connection"> | ||||
|         <Tabs value={this.props.match.url} onChange={this.handleTabChange} indicatorColor="primary" textColor="primary" variant="fullWidth"> | ||||
|           <Tab value="/wifi/status" label="WiFi Status" /> | ||||
|           <Tab value="/wifi/scan" label="Scan Networks" /> | ||||
|           <Tab value="/wifi/settings" label="WiFi Settings" /> | ||||
|           <Tab value="/wifi/scan" label="Scan Networks" disabled={!authenticationContext.isAdmin()} /> | ||||
|           <Tab value="/wifi/settings" label="WiFi Settings" disabled={!authenticationContext.isAdmin()} /> | ||||
|         </Tabs> | ||||
|         <Switch> | ||||
|           <AuthenticatedRoute exact={true} path="/wifi/status" component={WiFiStatus} /> | ||||
| @@ -69,4 +71,4 @@ class WiFiConnection extends Component { | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default WiFiConnection; | ||||
| export default withAuthenticationContext(WiFiConnection); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user