X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Fcomponents%2FComposerApp.js;h=629f409dc96faad286e7461eb4aad73f8c70797e;hb=2da8b7a246ba17396c5bc218a0b7f1685fb8d304;hp=6507b3419647f06ddc7f1b50888cc169a3a13351;hpb=ab1296ba58f614eaf228c718e171d7dd59e76388;p=osm%2FUI.git
diff --git a/skyquake/plugins/composer/src/src/components/ComposerApp.js b/skyquake/plugins/composer/src/src/components/ComposerApp.js
index 6507b3419..629f409dc 100644
--- a/skyquake/plugins/composer/src/src/components/ComposerApp.js
+++ b/skyquake/plugins/composer/src/src/components/ComposerApp.js
@@ -48,6 +48,9 @@ import TooltipManager from '../libraries/TooltipManager'
import CatalogItemsActions from '../actions/CatalogItemsActions'
import CommonUtils from 'utils/utils.js'
import FileManagerActions from './filemanager/FileManagerActions';
+import {SkyquakeRBAC, isRBACValid} from 'widgets/skyquake_rbac/skyquakeRBAC.jsx';
+import ROLES from 'utils/roleConstants.js';
+
import 'normalize.css'
import '../styles/AppRoot.scss'
import 'style/layout.scss'
@@ -60,6 +63,8 @@ const clearLocalStorage = utils.getSearchParams(window.location).hasOwnProperty(
const preventDefault = e => e.preventDefault();
const clearDragState = () => ComposerAppActions.setDragState(null);
+const PROJECT_ROLES = ROLES.PROJECT;
+const PLATFORM = ROLES.PLATFORM;
const ComposerApp = React.createClass({
mixins: [PureRenderMixin],
@@ -69,6 +74,10 @@ const ComposerApp = React.createClass({
getDefaultProps() {
return {};
},
+ contextTypes: {
+ router: React.PropTypes.object,
+ userProfile: React.PropTypes.object
+ },
componentWillMount() {
if (clearLocalStorage) {
window.localStorage.clear();
@@ -147,6 +156,8 @@ const ComposerApp = React.createClass({
render() {
let html = null;
let self = this;
+ const User = this.context.userProfile || {};
+ const rbacDisabled = !isRBACValid(User, [PROJECT_ROLES.CAT_ADMIN]);
if(this.state.hasModel) {
function onClickUpdateSelection(event) {
@@ -195,7 +206,8 @@ const ComposerApp = React.createClass({
+ filterByType={self.state.filterCatalogByTypeValue}
+ rbacDisabled={rbacDisabled} />
{
(self.state.panelTabShown == 'descriptor') ?
@@ -224,7 +238,7 @@ const ComposerApp = React.createClass({
isEditingVNFD={isEditingVNFD}
isModified={isModified}
isNew={isNew}
- disabled={!hasItem}
+ disabled={!hasItem || rbacDisabled}
onClick={event => event.stopPropagation()}
panelTabShown={self.state.panelTabShown}/>
@@ -269,4 +283,5 @@ const ComposerApp = React.createClass({
});
+
export default ComposerApp;