Sfoglia il codice sorgente

show OidcSecuritySetting

kaori 3 anni fa
parent
commit
dc80307823

+ 1 - 1
packages/app/src/client/services/AdminOidcSecurityContainer.js

@@ -24,7 +24,7 @@ export default class AdminOidcSecurityContainer extends Container {
 
 
     this.state = {
     this.state = {
       retrieveError: null,
       retrieveError: null,
-      callbackUrl: urljoin(pathUtils.removeTrailingSlash(appContainer.config.crowi.url), '/passport/oidc/callback'),
+      // callbackUrl: urljoin(pathUtils.removeTrailingSlash(appContainer.config.crowi.url), '/passport/oidc/callback'),
       // set dummy value tile for using suspense
       // set dummy value tile for using suspense
       oidcProviderName: this.dummyOidcProviderName,
       oidcProviderName: this.dummyOidcProviderName,
       oidcIssuerHost: '',
       oidcIssuerHost: '',

+ 17 - 17
packages/app/src/components/Admin/Security/OidcSecuritySetting.jsx

@@ -14,23 +14,23 @@ import OidcSecurityManagementContents from './OidcSecuritySettingContents';
 let retrieveErrors = null;
 let retrieveErrors = null;
 function OidcSecurityManagement(props) {
 function OidcSecurityManagement(props) {
   const { adminOidcSecurityContainer } = props;
   const { adminOidcSecurityContainer } = props;
-  if (adminOidcSecurityContainer.state.oidcProviderName === adminOidcSecurityContainer.dummyOidcProviderName) {
-    throw (async() => {
-      try {
-        await adminOidcSecurityContainer.retrieveSecurityData();
-      }
-      catch (err) {
-        const errs = toArrayIfNot(err);
-        toastError(errs);
-        retrieveErrors = errs;
-        adminOidcSecurityContainer.setState({ oidcProviderName: adminOidcSecurityContainer.dummyOidcProviderNameForError });
-      }
-    })();
-  }
-
-  if (adminOidcSecurityContainer.state.oidcProviderName === adminOidcSecurityContainer.dummyOidcProviderNameForError) {
-    throw new Error(`${retrieveErrors.length} errors occured`);
-  }
+  // if (adminOidcSecurityContainer.state.oidcProviderName === adminOidcSecurityContainer.dummyOidcProviderName) {
+  //   throw (async() => {
+  //     try {
+  //       await adminOidcSecurityContainer.retrieveSecurityData();
+  //     }
+  //     catch (err) {
+  //       const errs = toArrayIfNot(err);
+  //       toastError(errs);
+  //       retrieveErrors = errs;
+  //       adminOidcSecurityContainer.setState({ oidcProviderName: adminOidcSecurityContainer.dummyOidcProviderNameForError });
+  //     }
+  //   })();
+  // }
+
+  // if (adminOidcSecurityContainer.state.oidcProviderName === adminOidcSecurityContainer.dummyOidcProviderNameForError) {
+  //   throw new Error(`${retrieveErrors.length} errors occured`);
+  // }
 
 
   return <OidcSecurityManagementContents />;
   return <OidcSecurityManagementContents />;
 }
 }

+ 14 - 6
packages/app/src/components/Admin/Security/OidcSecuritySettingContents.jsx

@@ -4,6 +4,11 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
+import urljoin from 'url-join';
+import { pathUtils } from '@growi/core';
+
+import { useSiteUrl } from '~/stores/context';
+
 
 
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
 import AdminOidcSecurityContainer from '~/client/services/AdminOidcSecurityContainer';
@@ -33,8 +38,9 @@ class OidcSecurityManagementContents extends React.Component {
   }
   }
 
 
   render() {
   render() {
-    const { t, adminGeneralSecurityContainer, adminOidcSecurityContainer } = this.props;
+    const { t, adminGeneralSecurityContainer, adminOidcSecurityContainer, siteUrl } = this.props;
     const { isOidcEnabled } = adminGeneralSecurityContainer.state;
     const { isOidcEnabled } = adminGeneralSecurityContainer.state;
+    const  oidcCallbackUrl = urljoin(pathUtils.removeTrailingSlash(siteUrl), '/passport/oidc/callback')
 
 
     return (
     return (
 
 
@@ -69,11 +75,11 @@ class OidcSecurityManagementContents extends React.Component {
             <input
             <input
               className="form-control"
               className="form-control"
               type="text"
               type="text"
-              value={adminOidcSecurityContainer.state.callbackUrl}
+              value={oidcCallbackUrl}
               readOnly
               readOnly
             />
             />
             <p className="form-text text-muted small">{t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })}</p>
             <p className="form-text text-muted small">{t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })}</p>
-            {!adminGeneralSecurityContainer.state.appSiteUrl && (
+            {!siteUrl && (
               <div className="alert alert-danger">
               <div className="alert alert-danger">
                 <i
                 <i
                   className="icon-exclamation"
                   className="icon-exclamation"
@@ -365,11 +371,11 @@ class OidcSecurityManagementContents extends React.Component {
                 <input
                 <input
                   className="form-control"
                   className="form-control"
                   type="text"
                   type="text"
-                  defaultValue={adminOidcSecurityContainer.state.callbackUrl || ''}
+                  defaultValue={oidcCallbackUrl}
                   readOnly
                   readOnly
                 />
                 />
                 <p className="form-text text-muted small">{t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })}</p>
                 <p className="form-text text-muted small">{t('security_setting.desc_of_callback_URL', { AuthName: 'OAuth' })}</p>
-                {!adminGeneralSecurityContainer.state.appSiteUrl && (
+                {!siteUrl && (
                   <div className="alert alert-danger">
                   <div className="alert alert-danger">
                     <i
                     <i
                       className="icon-exclamation"
                       className="icon-exclamation"
@@ -465,11 +471,13 @@ OidcSecurityManagementContents.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   t: PropTypes.func.isRequired, // i18next
   adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
   adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
   adminOidcSecurityContainer: PropTypes.instanceOf(AdminOidcSecurityContainer).isRequired,
   adminOidcSecurityContainer: PropTypes.instanceOf(AdminOidcSecurityContainer).isRequired,
+  siteUrl: PropTypes.string,
 };
 };
 
 
 const OidcSecurityManagementContentsWrapperFC = (props) => {
 const OidcSecurityManagementContentsWrapperFC = (props) => {
   const { t } = useTranslation();
   const { t } = useTranslation();
-  return <OidcSecurityManagementContents t={t} {...props} />;
+  const { data: siteUrl } = useSiteUrl();
+  return <OidcSecurityManagementContents t={t} {...props} siteUrl={siteUrl} />;
 };
 };
 
 
 const OidcSecurityManagementContentsWrapper = withUnstatedContainers(OidcSecurityManagementContentsWrapperFC, [
 const OidcSecurityManagementContentsWrapper = withUnstatedContainers(OidcSecurityManagementContentsWrapperFC, [

+ 2 - 2
packages/app/src/components/Admin/Security/SecurityManagementContents.jsx

@@ -11,7 +11,7 @@ import CustomNav from '../../CustomNavigation/CustomNav';
 // import GoogleSecuritySetting from './GoogleSecuritySetting';
 // import GoogleSecuritySetting from './GoogleSecuritySetting';
 import LdapSecuritySetting from './LdapSecuritySetting';
 import LdapSecuritySetting from './LdapSecuritySetting';
 import LocalSecuritySetting from './LocalSecuritySetting';
 import LocalSecuritySetting from './LocalSecuritySetting';
-// import OidcSecuritySetting from './OidcSecuritySetting';
+import OidcSecuritySetting from './OidcSecuritySetting';
 import SamlSecuritySetting from './SamlSecuritySetting';
 import SamlSecuritySetting from './SamlSecuritySetting';
 import SecuritySetting from './SecuritySetting';
 import SecuritySetting from './SecuritySetting';
 import ShareLinkSetting from './ShareLinkSetting';
 import ShareLinkSetting from './ShareLinkSetting';
@@ -121,7 +121,7 @@ const SecurityManagementContents = () => {
             {activeComponents.has('passport_saml') && <SamlSecuritySetting />}
             {activeComponents.has('passport_saml') && <SamlSecuritySetting />}
           </TabPane>
           </TabPane>
           <TabPane tabId="passport_oidc">
           <TabPane tabId="passport_oidc">
-            {/* {activeComponents.has('passport_oidc') && <OidcSecuritySetting />} */}
+            {activeComponents.has('passport_oidc') && <OidcSecuritySetting />}
           </TabPane>
           </TabPane>
           <TabPane tabId="passport_basic">
           <TabPane tabId="passport_basic">
             {/* {activeComponents.has('passport_basic') && <BasicSecuritySetting />} */}
             {/* {activeComponents.has('passport_basic') && <BasicSecuritySetting />} */}