|
|
@@ -1,21 +1,17 @@
|
|
|
-import { isClient } from '@growi/core/dist/utils';
|
|
|
-import {
|
|
|
+import { useEffect, useMemo } from 'react';
|
|
|
+
|
|
|
+import type {
|
|
|
NextPage, GetServerSideProps, GetServerSidePropsContext,
|
|
|
} from 'next';
|
|
|
import { useTranslation } from 'next-i18next';
|
|
|
import dynamic from 'next/dynamic';
|
|
|
import Head from 'next/head';
|
|
|
-import { Container, Provider } from 'unstated';
|
|
|
-
|
|
|
-import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
|
|
|
-import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
|
|
|
-import AdminGoogleSecurityContainer from '~/client/services/AdminGoogleSecurityContainer';
|
|
|
-import AdminLdapSecurityContainer from '~/client/services/AdminLdapSecurityContainer';
|
|
|
-import AdminLocalSecurityContainer from '~/client/services/AdminLocalSecurityContainer';
|
|
|
-import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
|
|
|
-import AdminSamlSecurityContainer from '~/client/services/AdminSamlSecurityContainer';
|
|
|
-import { CrowiRequest } from '~/interfaces/crowi-request';
|
|
|
-import { CommonProps, generateCustomTitle } from '~/pages/utils/commons';
|
|
|
+import type { Container } from 'unstated';
|
|
|
+import { Provider } from 'unstated';
|
|
|
+
|
|
|
+import type { CrowiRequest } from '~/interfaces/crowi-request';
|
|
|
+import type { CommonProps } from '~/pages/utils/commons';
|
|
|
+import { generateCustomTitle } from '~/pages/utils/commons';
|
|
|
import { useCurrentUser, useIsMailerSetup, useSiteUrl } from '~/stores/context';
|
|
|
|
|
|
import { retrieveServerSideProps } from '../../utils/admin-page-util';
|
|
|
@@ -39,18 +35,30 @@ const AdminSecuritySettingsPage: NextPage<Props> = (props) => {
|
|
|
|
|
|
const componentTitle = t('security_settings.security_settings');
|
|
|
const pageTitle = generateCustomTitle(props, componentTitle);
|
|
|
- const adminSecurityContainers: Container<any>[] = [];
|
|
|
|
|
|
- if (isClient()) {
|
|
|
- const adminSecuritySettingElem = document.getElementById('admin-security-setting');
|
|
|
+ const adminSecurityContainers: Container<any>[] = useMemo(() => [], []);
|
|
|
|
|
|
- if (adminSecuritySettingElem != null) {
|
|
|
+ useEffect(() => {
|
|
|
+ (async() => {
|
|
|
+ const AdminGeneralSecurityContainer = (await import('~/client/services/AdminGeneralSecurityContainer')).default;
|
|
|
const adminGeneralSecurityContainer = new AdminGeneralSecurityContainer();
|
|
|
+
|
|
|
+ const AdminLocalSecurityContainer = (await import('~/client/services/AdminLocalSecurityContainer')).default;
|
|
|
const adminLocalSecurityContainer = new AdminLocalSecurityContainer();
|
|
|
+
|
|
|
+ const AdminLdapSecurityContainer = (await import('~/client/services/AdminLdapSecurityContainer')).default;
|
|
|
const adminLdapSecurityContainer = new AdminLdapSecurityContainer();
|
|
|
+
|
|
|
+ const AdminSamlSecurityContainer = (await import('~/client/services/AdminSamlSecurityContainer')).default;
|
|
|
const adminSamlSecurityContainer = new AdminSamlSecurityContainer();
|
|
|
+
|
|
|
+ const AdminOidcSecurityContainer = (await import('~/client/services/AdminOidcSecurityContainer')).default;
|
|
|
const adminOidcSecurityContainer = new AdminOidcSecurityContainer();
|
|
|
+
|
|
|
+ const AdminGoogleSecurityContainer = (await import('~/client/services/AdminGoogleSecurityContainer')).default;
|
|
|
const adminGoogleSecurityContainer = new AdminGoogleSecurityContainer();
|
|
|
+
|
|
|
+ const AdminGitHubSecurityContainer = (await import('~/client/services/AdminGitHubSecurityContainer')).default;
|
|
|
const adminGitHubSecurityContainer = new AdminGitHubSecurityContainer();
|
|
|
|
|
|
adminSecurityContainers.push(
|
|
|
@@ -62,8 +70,8 @@ const AdminSecuritySettingsPage: NextPage<Props> = (props) => {
|
|
|
adminGoogleSecurityContainer,
|
|
|
adminGitHubSecurityContainer,
|
|
|
);
|
|
|
- }
|
|
|
- }
|
|
|
+ })();
|
|
|
+ }, [adminSecurityContainers]);
|
|
|
|
|
|
if (props.isAccessDeniedForNonAdminUser) {
|
|
|
return <ForbiddenPage />;
|