import './skyquakeNav.scss';
import SelectOption from '../form_controls/selectOption.jsx';
import {FormSection} from '../form_controls/formControls.jsx';
-import SkyquakeRBAC from 'widgets/skyquake_rbac/skyquakeRBAC.jsx';
+import {isRBACValid, SkyquakeRBAC} from 'widgets/skyquake_rbac/skyquakeRBAC.jsx';
//Temporary, until api server is on same port as webserver
var rw = require('utils/rw.js');
skyquakeNav.defaultProps = {
nav: {}
}
+skyquakeNav.contextTypes = {
+ userProfile: React.PropTypes.object
+};
/**
* Returns a React Component
* @param {object} link Information about the nav link
let secondaryNav = [];
let adminNav = [];
let self = this;
+ const User = this.context.userProfile;
self.hasSubNav = {};
let secondaryNavHTML = (
<div className="secondaryNav" key="secondaryNav">
label: nav[k].label || k,
route: route
});
+ let shouldAllow = nav[k].allow || ['*'];
if (nav[k].pluginName == currentPlugin) {
navClass += " active";
}
navItem.priority = nav[k].priority;
navItem.order = nav[k].order;
if(nav[k].admin_link) {
- adminNav.push((
- <li key={nav[k].name}>
- {dashboardLink}
- </li>
- ))
+
+ if (isRBACValid(User, shouldAllow) ){
+ adminNav.push((
+ <li key={nav[k].name}>
+ {dashboardLink}
+ </li>
+ ))
+ }
} else {
- navItem.html = (
- <SkyquakeRBAC allow={nav[k].allow || ['*']} key={k} className={navClass}>
- <h2>{dashboardLink} {self.hasSubNav[k] ? <span className="oi" data-glyph="caret-bottom"></span> : ''}</h2>
- <ul className="menu">
- {
- NavList
- }
- </ul>
- </SkyquakeRBAC>
- );
+ if (isRBACValid(User, shouldAllow) ){
+ navItem.html = (
+ <div key={k} className={navClass}>
+ <h2>{dashboardLink} {self.hasSubNav[k] ? <span className="oi" data-glyph="caret-bottom"></span> : ''}</h2>
+ <ul className="menu">
+ {
+ NavList
+ }
+ </ul>
+ </div>
+ );
+ }
navList.push(navItem)
}