change(ui): permission check for service accountts condition with or

This commit is contained in:
Shekar Siri 2024-07-04 16:21:43 +02:00
parent 3dfacb47bf
commit 11e600ee61
4 changed files with 16 additions and 18 deletions

View file

@ -15,7 +15,6 @@ function Assist(props: Props) {
return (
<AssistRouter />
);
}
const Cont = connect((state: any) => ({
@ -25,5 +24,5 @@ const Cont = connect((state: any) => ({
}))(Assist);
export default withPageTitle('Assist - OpenReplay')(
withPermissions(['ASSIST_LIVE', 'SERVICE_ASSIST_LIVE'])(withRouter(Cont))
withPermissions(['ASSIST_LIVE', 'SERVICE_ASSIST_LIVE'], '', false, false)(withRouter(Cont))
);

View file

@ -72,9 +72,7 @@ function Session({
}
export default withPermissions(
['SESSION_REPLAY', 'SERVICE_SESSION_REPLAY'],
'',
true
['SESSION_REPLAY', 'SERVICE_SESSION_REPLAY'], '', true, false
)(
connect(
(state: any, props: any) => {

View file

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

View file

@ -186,7 +186,7 @@ function LiveSessionList(props: Props) {
);
}
export default withPermissions(['ASSIST_LIVE', 'SERVICE_ASSIST_LIVE'])(
export default withPermissions(['ASSIST_LIVE', 'SERVICE_ASSIST_LIVE'], '', false, false)(
connect(
(state: any) => ({
list: state.getIn(['liveSearch', 'list']),