mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-10-30 14:49:14 +00:00
46 lines
1.4 KiB
TypeScript
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;
|