X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Fcomponents%2FCatalogPanel.js;h=8de0f00122abcb96dded54ec4c29eadc182f4ebd;hp=0314e19ff4a99b3e8939d5fcdc9d38841cab2660;hb=refs%2Ftags%2Fv3.0.0rc2;hpb=f2dc2462571800e62cba969964de621dca09299c diff --git a/skyquake/plugins/composer/src/src/components/CatalogPanel.js b/skyquake/plugins/composer/src/src/components/CatalogPanel.js index 0314e19ff..8de0f0012 100644 --- a/skyquake/plugins/composer/src/src/components/CatalogPanel.js +++ b/skyquake/plugins/composer/src/src/components/CatalogPanel.js @@ -39,6 +39,8 @@ import ComposerAppStore from '../stores/ComposerAppStore' import CatalogPanelStore from '../stores/CatalogPanelStore' import LoadingIndicator from './LoadingIndicator' import SelectionManager from '../libraries/SelectionManager' +import { isRBACValid } from 'widgets/skyquake_rbac/skyquakeRBAC'; +import ROLES from 'utils/roleConstants.js'; import '../styles/CatalogPanel.scss' @@ -80,7 +82,12 @@ const CatalogPanel = React.createClass({ document.body.removeEventListener('dragend', this.onDragEnd); window.removeEventListener('dragend', this.onDragEnd); }, + contextTypes: { + userProfile: React.PropTypes.object + }, render() { + const User = this.context.userProfile || {}; + const isModifiableByUser = isRBACValid(User, [ROLES.PROJECT.PROJECT_ADMIN, ROLES.PROJECT.CATALOG_ADMIN]); const onDropCatalogItem = e => { e.preventDefault(); @@ -112,12 +119,30 @@ const CatalogPanel = React.createClass({ const isDraggingFiles = uiTransientState.isDragging && uiTransientState.isDraggingFiles; const updateDropZone = createDropZone.bind(this, UploadDropZone.ACTIONS.update, '.action-update-catalog-package'); const onboardDropZone = createDropZone.bind(this, UploadDropZone.ACTIONS.onboard, '.action-onboard-catalog-package'); - const className = ClassNames('CatalogPanel', {'-is-tray-open': this.state.isTrayOpen}); + const className = ClassNames('CatalogPanel', { '-is-tray-open': this.state.isTrayOpen }); const hasNoCatalogs = this.props.hasNoCatalogs; const isLoading = this.props.isLoading; + const packageManagerPanel = ( + + + + Export catalog item. + + + + + On-board new catalog package. + + + Update existing catalog package. + + + + + ); return ( -
- +
+
{(() => { if (isLoading) { @@ -128,7 +153,7 @@ const CatalogPanel = React.createClass({ ) } if (hasNoCatalogs) { - return messages.catalogWelcome; + return messages.catalogWelcome(isModifiableByUser); } return (
@@ -138,22 +163,7 @@ const CatalogPanel = React.createClass({ ); })()}
- - - - Export catalog item. - - - - - On-board new catalog package. - - - Update existing catalog package. - - - - + {isModifiableByUser ? packageManagerPanel : null}
);