Skip to content

Commit acbb128

Browse files
author
himaniraghav3
committed
PM-1157 Add fallback content for copilot requests when access denied
1 parent 6471e31 commit acbb128

File tree

1 file changed

+17
-1
lines changed
  • src/apps/copilots/src/pages/copilot-requests

1 file changed

+17
-1
lines changed

src/apps/copilots/src/pages/copilot-requests/index.tsx

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { FC, useCallback, useMemo } from 'react'
1+
import { FC, useCallback, useContext, useMemo } from 'react'
22
import { find } from 'lodash'
33
import { NavigateFunction, Params, useNavigate, useParams } from 'react-router-dom'
44

@@ -14,6 +14,7 @@ import {
1414
TableColumn,
1515
useConfirmationModal,
1616
} from '~/libs/ui'
17+
import { profileContext, ProfileContextData, UserRole } from '~/libs/core'
1718

1819
import { ProjectTypeLabels } from '../../constants'
1920
import { approveCopilotRequest, CopilotRequestsResponse, useCopilotRequests } from '../../services/copilot-requests'
@@ -121,6 +122,12 @@ const CopilotRequestsPage: FC = () => {
121122
const navigate: NavigateFunction = useNavigate()
122123
const routeParams: Params<string> = useParams()
123124

125+
const { profile }: ProfileContextData = useContext(profileContext)
126+
const isAdminOrPM: boolean = useMemo(
127+
() => !!profile?.roles?.some(role => role === UserRole.administrator || role === UserRole.projectManager),
128+
[profile],
129+
)
130+
124131
const { data: requests = [], isValidating: requestsLoading }: CopilotRequestsResponse = useCopilotRequests()
125132
const projectIds = useMemo(() => (
126133
(new Set(requests.map(r => r.projectId))
@@ -158,6 +165,15 @@ const CopilotRequestsPage: FC = () => {
158165
onClick: () => navigate(copilotRoutesMap.CopilotRequestForm),
159166
}
160167

168+
if (!isAdminOrPM) {
169+
return (
170+
<ContentLayout title='Copilot Requests'>
171+
<PageTitle>Access Denied</PageTitle>
172+
<p>You do not have required permissions to access this page.</p>
173+
</ContentLayout>
174+
)
175+
}
176+
161177
return (
162178
<ContentLayout
163179
title='Copilot Requests'

0 commit comments

Comments
 (0)