@@ -4,6 +4,9 @@ import cn from 'bem-cn-lite';
44import { useLocation } from 'react-router' ;
55import qs from 'qs' ;
66
7+ import EmptyState from '../../components/EmptyState/EmptyState' ;
8+ import { Illustration } from '../../components/Illustration' ;
9+
710import ObjectSummary from './ObjectSummary/ObjectSummary' ;
811import { setHeader } from '../../store/reducers/header' ;
912import ObjectGeneral from './ObjectGeneral/ObjectGeneral' ;
@@ -53,6 +56,9 @@ function Tenant(props: TenantProps) {
5356 ( state : any ) => state . schema ,
5457 ) ;
5558
59+ const { data : { status : tenantStatus = 200 } = { } } = useSelector ( ( state : any ) => state . tenant ) ;
60+ const { error : { status : schemaStatus = 200 } = { } } = useSelector ( ( state : any ) => state . schema ) ;
61+
5662 const dispatch = useDispatch ( ) ;
5763
5864 const location = useLocation ( ) ;
@@ -111,29 +117,39 @@ function Tenant(props: TenantProps) {
111117 dispatchSummaryVisibilityAction ( PaneVisibilityActionTypes . clear ) ;
112118 } ;
113119
120+ const showBlockingError = tenantStatus === 403 || schemaStatus === 403 ;
121+
114122 return (
115123 < div className = { b ( ) } >
116- < SplitPane
117- defaultSizePaneKey = { DEFAULT_SIZE_TENANT_KEY }
118- defaultSizes = { [ 25 , 75 ] }
119- triggerCollapse = { summaryVisibilityState . triggerCollapse }
120- triggerExpand = { summaryVisibilityState . triggerExpand }
121- minSize = { [ 36 , 200 ] }
122- onSplitStartDragAdditional = { onSplitStartDragAdditional }
123- >
124- < ObjectSummary
125- type = { currentPathType }
126- onCollapseSummary = { onCollapseSummaryHandler }
127- onExpandSummary = { onExpandSummaryHandler }
128- isCollapsed = { summaryVisibilityState . collapsed }
129- additionalTenantInfo = { props . additionalTenantInfo }
130- />
131- < ObjectGeneral
132- type = { currentPathType }
133- additionalTenantInfo = { props . additionalTenantInfo }
134- additionalNodesInfo = { props . additionalNodesInfo }
124+ { showBlockingError ? (
125+ < EmptyState
126+ image = { < Illustration name = "403" /> }
127+ title = "Access denied"
128+ description = "You don’t have the necessary roles to view this page."
135129 />
136- </ SplitPane >
130+ ) : (
131+ < SplitPane
132+ defaultSizePaneKey = { DEFAULT_SIZE_TENANT_KEY }
133+ defaultSizes = { [ 25 , 75 ] }
134+ triggerCollapse = { summaryVisibilityState . triggerCollapse }
135+ triggerExpand = { summaryVisibilityState . triggerExpand }
136+ minSize = { [ 36 , 200 ] }
137+ onSplitStartDragAdditional = { onSplitStartDragAdditional }
138+ >
139+ < ObjectSummary
140+ type = { currentPathType }
141+ onCollapseSummary = { onCollapseSummaryHandler }
142+ onExpandSummary = { onExpandSummaryHandler }
143+ isCollapsed = { summaryVisibilityState . collapsed }
144+ additionalTenantInfo = { props . additionalTenantInfo }
145+ />
146+ < ObjectGeneral
147+ type = { currentPathType }
148+ additionalTenantInfo = { props . additionalTenantInfo }
149+ additionalNodesInfo = { props . additionalNodesInfo }
150+ />
151+ </ SplitPane >
152+ ) }
137153 </ div >
138154 ) ;
139155}
0 commit comments