openreplay/frontend/app/components/hocs/withPermissions.js
2022-06-07 15:41:36 +02:00

22 lines
No EOL
781 B
JavaScript

import React from 'react';
import { connect } from 'react-redux';
import { NoPermission, NoSessionPermission } from 'UI';
export default (requiredPermissions, className, isReplay = false) => BaseComponent =>
@connect((state, props) => ({
permissions: state.getIn([ 'user', 'account', 'permissions' ]) || [],
isEnterprise: state.getIn([ 'user', 'account', 'edition' ]) === 'ee',
}))
class extends React.PureComponent {
render() {
const hasPermission = requiredPermissions.every(permission => this.props.permissions.includes(permission));
return (
(!this.props.isEnterprise || hasPermission) ?
<BaseComponent {...this.props} /> :
<div className={className}>
{ isReplay ? <NoSessionPermission /> : <NoPermission /> }
</div>
)
}
}