Files
sentinel/static/app/views/permissionDenied.tsx
2024-02-15 17:01:50 +00:00

46 lines
1.4 KiB
TypeScript

import {useEffect} from 'react';
import * as Sentry from '@sentry/react';
import * as Layout from 'sentry/components/layouts/thirds';
import ExternalLink from 'sentry/components/links/externalLink';
import LoadingError from 'sentry/components/loadingError';
import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle';
import {t, tct} from 'sentry/locale';
import getRouteStringFromRoutes from 'sentry/utils/getRouteStringFromRoutes';
import {useRoutes} from 'sentry/utils/useRoutes';
const ERROR_NAME = 'Permission Denied';
function PermissionDenied() {
const routes = useRoutes();
useEffect(() => {
const route = getRouteStringFromRoutes(routes);
Sentry.addBreadcrumb({
category: 'auth',
message: `${ERROR_NAME}${route ? ` : ${route}` : ''}`,
level: 'error',
});
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
<SentryDocumentTitle title={t('Permission Denied')}>
<Layout.Page withPadding>
<LoadingError
message={tct(
`Your role does not have the necessary permissions to access this
resource, please read more about [link:organizational roles]`,
{
link: (
<ExternalLink href="https://docs.sentry.io/product/accounts/membership/" />
),
}
)}
/>
</Layout.Page>
</SentryDocumentTitle>
);
}
export default PermissionDenied;