Просмотр исходного кода

fix: update getServerSideProps to include ACL check for user group detail page

Shun Miyazawa 4 месяцев назад
Родитель
Сommit
8808da15f8
1 измененных файлов с 20 добавлено и 1 удалено
  1. 20 1
      apps/app/src/pages/admin/user-group-detail/[userGroupId].page.tsx

+ 20 - 1
apps/app/src/pages/admin/user-group-detail/[userGroupId].page.tsx

@@ -1,11 +1,14 @@
 import { useMemo } from 'react';
+import type { GetServerSideProps, GetServerSidePropsContext } from 'next';
 import dynamic from 'next/dynamic';
 import { useRouter } from 'next/router';
 import { useHydrateAtoms } from 'jotai/utils';
 
+import type { CrowiRequest } from '~/interfaces/crowi-request';
 import { isAclEnabledAtom } from '~/states/server-configurations';
 
 import type { NextPageWithLayout } from '../../_app.page';
+import { mergeGetServerSidePropsResults } from '../../utils/server-side-props';
 import type { AdminCommonProps } from '../_shared';
 import {
   createAdminPageLayout,
@@ -45,6 +48,22 @@ AdminUserGroupDetailPage.getLayout = createAdminPageLayout<Props>({
   title: (_p, t) => t('user_group_management.user_group_management'),
 });
 
-export const getServerSideProps = getServerSideAdminCommonProps;
+
+export const getServerSideProps: GetServerSideProps<Props> = async (
+  context: GetServerSidePropsContext,
+) => {
+  const commonResult = await getServerSideAdminCommonProps(context);
+
+  const req: CrowiRequest = context.req as CrowiRequest;
+  const { crowi } = req;
+
+  const UserGroupDetailPropsFragment = {
+    props: {
+      isAclEnabled: crowi.aclService.isAclEnabled(),
+    },
+  } satisfies { props: PageProps };
+
+  return mergeGetServerSidePropsResults(commonResult, UserGroupDetailPropsFragment);
+};
 
 export default AdminUserGroupDetailPage;