@@ -89,6 +89,11 @@ const ChangeRequestDetailPage: FC<ChangeRequestPageType> = ({ match }) => {
8989 permission : EnvironmentPermission . UPDATE_FEATURE_STATE ,
9090 tags : projectFlag ?. tags ,
9191 } )
92+ const isEnvironmentAdmin = useHasPermission ( {
93+ id : environmentId ,
94+ level : 'environment' ,
95+ permission : EnvironmentPermission . ADMIN ,
96+ } )
9297
9398 useEffect ( ( ) => {
9499 AppActions . getChangeRequest ( id , projectId , environmentId )
@@ -338,6 +343,7 @@ const ChangeRequestDetailPage: FC<ChangeRequestPageType> = ({ match }) => {
338343 />
339344 < ChangeRequestPageInner
340345 hidePublish = { ! projectFlag }
346+ canManageChangeRequests = { isEnvironmentAdmin ?. permission }
341347 publishChangeRequest = { publishChangeRequest }
342348 approvePermission = { approvePermission ?. permission }
343349 approveChangeRequest = { approveChangeRequest }
@@ -420,6 +426,7 @@ type ChangeRequestPageInnerType = {
420426 approvePermission : boolean | undefined
421427 publishPermission : boolean | undefined
422428 isScheduled : boolean
429+ canManageChangeRequests ?: boolean
423430 hidePublish ?: boolean
424431 scheduledDate ?: moment . Moment | null
425432 changeRequest : ProjectChangeRequest | ChangeRequest | undefined
@@ -434,6 +441,7 @@ export const ChangeRequestPageInner: FC<ChangeRequestPageInnerType> = ({
434441 addOwner,
435442 approveChangeRequest,
436443 approvePermission,
444+ canManageChangeRequests,
437445 changeRequest,
438446 deleteChangeRequest,
439447 editChangeRequest,
@@ -539,13 +547,13 @@ export const ChangeRequestPageInner: FC<ChangeRequestPageInnerType> = ({
539547 changeRequest &&
540548 changeRequest . user &&
541549 orgUsers . find ( ( v ) => v . id === changeRequest . user )
542- const isYours = AccountStore . getUserId ( ) === changeRequest . user
550+
543551 return (
544552 < div >
545553 < PageTitle
546554 cta = {
547555 ( ! changeRequest . committed_at || isScheduled ) &&
548- isYours && (
556+ ( isYourChangeRequest || ! ! canManageChangeRequests ) && (
549557 < Row >
550558 < Button theme = 'secondary' onClick = { deleteChangeRequest } >
551559 Delete
@@ -564,7 +572,7 @@ export const ChangeRequestPageInner: FC<ChangeRequestPageInnerType> = ({
564572 by { user ? `${ user . first_name } ${ user . last_name } ` : 'Unknown user' }
565573 </ PageTitle >
566574 < p className = 'mt-2' > { changeRequest . description } </ p >
567- { hasApprovals && isYours && ! changeRequest . committed_at && (
575+ { hasApprovals && isYourChangeRequest && ! changeRequest . committed_at && (
568576 < div className = 'col-md-6 mb-4' >
569577 < InfoMessage >
570578 This change request has been approved and can no longer be edited.
@@ -652,7 +660,9 @@ export const ChangeRequestPageInner: FC<ChangeRequestPageInnerType> = ({
652660 < Row
653661 key = { g . id }
654662 onClick = {
655- hasApprovals ? undefined : ( ) => removeOwner ( g . id , false )
663+ hasApprovals
664+ ? undefined
665+ : ( ) => removeOwner ( g . id , false )
656666 }
657667 className = 'chip'
658668 style = { {
0 commit comments