Skip to content

Commit 020a380

Browse files
authored
Merge of #10519
2 parents dc8bbee + 02ef08c commit 020a380

24 files changed

+276
-435
lines changed

apps/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@growi/app",
3-
"version": "7.3.6",
3+
"version": "7.3.7-RC.0",
44
"license": "MIT",
55
"private": "true",
66
"scripts": {

apps/app/src/client/components/Admin/AdminHome/AdminHome.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { withUnstatedContainers } from '../../UnstatedUtils';
1717
import { EnvVarsTable } from './EnvVarsTable';
1818
import SystemInfomationTable from './SystemInfomationTable';
1919

20+
2021
const logger = loggerFactory('growi:admin');
2122

2223
const AdminHome = (props) => {
@@ -59,7 +60,7 @@ const AdminHome = (props) => {
5960
)
6061
}
6162
{
62-
// Alert message will be displayed in case that V5 migration has not been compleated
63+
// Alert message will be displayed in case that V5 migration has not been compleated
6364
(migrationStatus != null && !migrationStatus.isV5Compatible)
6465
&& (
6566
<div className={`alert ${migrationStatus.isV5Compatible == null ? 'alert-warning' : 'alert-info'}`}>
@@ -90,7 +91,7 @@ const AdminHome = (props) => {
9091
<p>{t('admin:admin_top.env_var_priority')}</p>
9192
{/* eslint-disable-next-line react/no-danger */}
9293
<p dangerouslySetInnerHTML={{ __html: t('admin:admin_top.about_security') }} />
93-
{adminHomeContainer.state.envVars && <EnvVarsTable envVars={adminHomeContainer.state.envVars} />}
94+
<EnvVarsTable envVars={adminHomeContainer.state.envVars} />
9495
</div>
9596
</div>
9697

apps/app/src/client/components/Admin/AdminHome/EnvVarsTable.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
import React, { type JSX } from 'react';
22

3+
import { LoadingSpinner } from '@growi/ui/dist/components';
4+
35
type EnvVarsTableProps = {
4-
envVars: Record<string, string | number | boolean>,
6+
envVars?: Record<string, string | number | boolean>,
57
}
68

79
export const EnvVarsTable: React.FC<EnvVarsTableProps> = (props: EnvVarsTableProps) => {
10+
const { envVars } = props;
11+
if (envVars == null) {
12+
return <LoadingSpinner />;
13+
}
14+
815
const envVarRows: JSX.Element[] = [];
916

10-
for (const [key, value] of Object.entries(props.envVars)) {
17+
for (const [key, value] of Object.entries(envVars ?? {})) {
1118
if (value != null) {
1219
envVarRows.push(
1320
<tr key={key}>

apps/app/src/client/components/Admin/AdminHome/SystemInfomationTable.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import React from 'react';
22

3+
import { LoadingSpinner } from '@growi/ui/dist/components';
4+
35
import AdminHomeContainer from '~/client/services/AdminHomeContainer';
46

57
import { withUnstatedContainers } from '../../UnstatedUtils';
@@ -17,7 +19,7 @@ const SystemInformationTable = (props: Props) => {
1719
} = adminHomeContainer.state;
1820

1921
if (growiVersion == null || nodeVersion == null || npmVersion == null || pnpmVersion == null) {
20-
return <></>;
22+
return <LoadingSpinner />;
2123
}
2224

2325
return (

apps/app/src/client/components/Admin/Security/GitHubSecuritySettingContents.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ const GitHubSecurityManagementContents = (props) => {
3636

3737
const onClickSubmit = useCallback(async(data) => {
3838
try {
39-
await adminGitHubSecurityContainer.changeGitHubClientId(data.githubClientId ?? '');
40-
await adminGitHubSecurityContainer.changeGitHubClientSecret(data.githubClientSecret ?? '');
41-
await adminGitHubSecurityContainer.updateGitHubSetting();
39+
await adminGitHubSecurityContainer.updateGitHubSetting({
40+
githubClientId: data.githubClientId ?? '',
41+
githubClientSecret: data.githubClientSecret ?? '',
42+
isSameUsernameTreatedAsIdenticalUser: adminGitHubSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser,
43+
});
4244
await adminGeneralSecurityContainer.retrieveSetupStratedies();
4345
toastSuccess(t('security_settings.OAuth.GitHub.updated_github'));
4446
}

apps/app/src/client/components/Admin/Security/GoogleSecuritySettingContents.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ const GoogleSecurityManagementContents = (props) => {
3434

3535
const onClickSubmit = useCallback(async(data) => {
3636
try {
37-
await adminGoogleSecurityContainer.changeGoogleClientId(data.googleClientId ?? '');
38-
await adminGoogleSecurityContainer.changeGoogleClientSecret(data.googleClientSecret ?? '');
39-
await adminGoogleSecurityContainer.updateGoogleSetting();
37+
await adminGoogleSecurityContainer.updateGoogleSetting({
38+
googleClientId: data.googleClientId ?? '',
39+
googleClientSecret: data.googleClientSecret ?? '',
40+
isSameEmailTreatedAsIdenticalUser: adminGoogleSecurityContainer.state.isSameEmailTreatedAsIdenticalUser,
41+
});
4042
await adminGeneralSecurityContainer.retrieveSetupStratedies();
4143
toastSuccess(t('security_settings.OAuth.Google.updated_google'));
4244
}

apps/app/src/client/components/Admin/Security/LdapSecuritySettingContents.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,20 @@ const LdapSecuritySettingContents = (props: Props) => {
5656

5757
const onSubmit = useCallback(async(data) => {
5858
try {
59-
await adminLdapSecurityContainer.changeServerUrl(data.serverUrl);
60-
await adminLdapSecurityContainer.changeBindDN(data.ldapBindDN);
61-
await adminLdapSecurityContainer.changeBindDNPassword(data.ldapBindDNPassword);
62-
await adminLdapSecurityContainer.changeSearchFilter(data.ldapSearchFilter);
63-
await adminLdapSecurityContainer.changeAttrMapUsername(data.ldapAttrMapUsername);
64-
await adminLdapSecurityContainer.changeAttrMapMail(data.ldapAttrMapMail);
65-
await adminLdapSecurityContainer.changeAttrMapName(data.ldapAttrMapName);
66-
await adminLdapSecurityContainer.changeGroupSearchBase(data.ldapGroupSearchBase);
67-
await adminLdapSecurityContainer.changeGroupSearchFilter(data.ldapGroupSearchFilter);
68-
await adminLdapSecurityContainer.changeGroupDnProperty(data.ldapGroupDnProperty);
69-
await adminLdapSecurityContainer.updateLdapSetting();
59+
await adminLdapSecurityContainer.updateLdapSetting({
60+
serverUrl: data.serverUrl,
61+
isUserBind: adminLdapSecurityContainer.state.isUserBind,
62+
ldapBindDN: data.ldapBindDN,
63+
ldapBindDNPassword: data.ldapBindDNPassword,
64+
ldapSearchFilter: data.ldapSearchFilter,
65+
ldapAttrMapUsername: data.ldapAttrMapUsername,
66+
isSameUsernameTreatedAsIdenticalUser: adminLdapSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser,
67+
ldapAttrMapMail: data.ldapAttrMapMail,
68+
ldapAttrMapName: data.ldapAttrMapName,
69+
ldapGroupSearchBase: data.ldapGroupSearchBase,
70+
ldapGroupSearchFilter: data.ldapGroupSearchFilter,
71+
ldapGroupDnProperty: data.ldapGroupDnProperty,
72+
});
7073
await adminGeneralSecurityContainer.retrieveSetupStratedies();
7174
toastSuccess(t('security_settings.ldap.updated_ldap'));
7275
}

apps/app/src/client/components/Admin/Security/LocalSecuritySettingContents.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,12 @@ const LocalSecuritySettingContents = (props: Props): JSX.Element => {
3838

3939
const onSubmit = useCallback(async(data) => {
4040
try {
41-
await adminLocalSecurityContainer.changeRegistrationWhitelist(data.registrationWhitelist);
42-
await adminLocalSecurityContainer.updateLocalSecuritySetting();
41+
await adminLocalSecurityContainer.updateLocalSecuritySetting({
42+
registrationMode: adminLocalSecurityContainer.state.registrationMode,
43+
registrationWhitelist: data.registrationWhitelist.split('\n'),
44+
isPasswordResetEnabled: adminLocalSecurityContainer.state.isPasswordResetEnabled,
45+
isEmailAuthenticationEnabled: adminLocalSecurityContainer.state.isEmailAuthenticationEnabled,
46+
});
4347
await adminGeneralSecurityContainer.retrieveSetupStratedies();
4448
toastSuccess(t('security_settings.updated_general_security_setting'));
4549
}

apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.tsx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,26 @@ const OidcSecurityManagementContents = (props: Props) => {
6868

6969
const onSubmit = useCallback(async(data) => {
7070
try {
71-
await adminOidcSecurityContainer.changeOidcProviderName(data.oidcProviderName);
72-
await adminOidcSecurityContainer.changeOidcIssuerHost(data.oidcIssuerHost);
73-
await adminOidcSecurityContainer.changeOidcClientId(data.oidcClientId);
74-
await adminOidcSecurityContainer.changeOidcClientSecret(data.oidcClientSecret);
75-
await adminOidcSecurityContainer.changeOidcAuthorizationEndpoint(data.oidcAuthorizationEndpoint);
76-
await adminOidcSecurityContainer.changeOidcTokenEndpoint(data.oidcTokenEndpoint);
77-
await adminOidcSecurityContainer.changeOidcRevocationEndpoint(data.oidcRevocationEndpoint);
78-
await adminOidcSecurityContainer.changeOidcIntrospectionEndpoint(data.oidcIntrospectionEndpoint);
79-
await adminOidcSecurityContainer.changeOidcUserInfoEndpoint(data.oidcUserInfoEndpoint);
80-
await adminOidcSecurityContainer.changeOidcEndSessionEndpoint(data.oidcEndSessionEndpoint);
81-
await adminOidcSecurityContainer.changeOidcRegistrationEndpoint(data.oidcRegistrationEndpoint);
82-
await adminOidcSecurityContainer.changeOidcJWKSUri(data.oidcJWKSUri);
83-
await adminOidcSecurityContainer.changeOidcAttrMapId(data.oidcAttrMapId);
84-
await adminOidcSecurityContainer.changeOidcAttrMapUserName(data.oidcAttrMapUserName);
85-
await adminOidcSecurityContainer.changeOidcAttrMapName(data.oidcAttrMapName);
86-
await adminOidcSecurityContainer.changeOidcAttrMapEmail(data.oidcAttrMapEmail);
87-
await adminOidcSecurityContainer.updateOidcSetting();
71+
await adminOidcSecurityContainer.updateOidcSetting({
72+
oidcProviderName: data.oidcProviderName,
73+
oidcIssuerHost: data.oidcIssuerHost,
74+
oidcClientId: data.oidcClientId,
75+
oidcClientSecret: data.oidcClientSecret,
76+
oidcAuthorizationEndpoint: data.oidcAuthorizationEndpoint,
77+
oidcTokenEndpoint: data.oidcTokenEndpoint,
78+
oidcRevocationEndpoint: data.oidcRevocationEndpoint,
79+
oidcIntrospectionEndpoint: data.oidcIntrospectionEndpoint,
80+
oidcUserInfoEndpoint: data.oidcUserInfoEndpoint,
81+
oidcEndSessionEndpoint: data.oidcEndSessionEndpoint,
82+
oidcRegistrationEndpoint: data.oidcRegistrationEndpoint,
83+
oidcJWKSUri: data.oidcJWKSUri,
84+
oidcAttrMapId: data.oidcAttrMapId,
85+
oidcAttrMapUserName: data.oidcAttrMapUserName,
86+
oidcAttrMapName: data.oidcAttrMapName,
87+
oidcAttrMapEmail: data.oidcAttrMapEmail,
88+
isSameUsernameTreatedAsIdenticalUser: adminOidcSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser,
89+
isSameEmailTreatedAsIdenticalUser: adminOidcSecurityContainer.state.isSameEmailTreatedAsIdenticalUser,
90+
});
8891
await adminGeneralSecurityContainer.retrieveSetupStratedies();
8992
toastSuccess(t('security_settings.OAuth.OIDC.updated_oidc'));
9093
}

apps/app/src/client/components/Admin/Security/SamlSecuritySettingContents.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,20 @@ const SamlSecurityManagementContents = (props: Props) => {
4646
}, [adminSamlSecurityContainer.state, reset]);
4747

4848
const onSubmit = useCallback(async(data) => {
49-
adminSamlSecurityContainer.changeSamlEntryPoint(data.samlEntryPoint);
50-
adminSamlSecurityContainer.changeSamlIssuer(data.samlIssuer);
51-
adminSamlSecurityContainer.changeSamlCert(data.samlCert);
52-
adminSamlSecurityContainer.changeSamlAttrMapId(data.samlAttrMapId);
53-
adminSamlSecurityContainer.changeSamlAttrMapUserName(data.samlAttrMapUsername);
54-
adminSamlSecurityContainer.changeSamlAttrMapMail(data.samlAttrMapMail);
55-
adminSamlSecurityContainer.changeSamlAttrMapFirstName(data.samlAttrMapFirstName);
56-
adminSamlSecurityContainer.changeSamlAttrMapLastName(data.samlAttrMapLastName);
57-
adminSamlSecurityContainer.changeSamlABLCRule(data.samlABLCRule);
58-
5949
try {
60-
await adminSamlSecurityContainer.updateSamlSetting();
50+
await adminSamlSecurityContainer.updateSamlSetting({
51+
samlEntryPoint: data.samlEntryPoint,
52+
samlIssuer: data.samlIssuer,
53+
samlCert: data.samlCert,
54+
samlAttrMapId: data.samlAttrMapId,
55+
samlAttrMapUsername: data.samlAttrMapUsername,
56+
samlAttrMapMail: data.samlAttrMapMail,
57+
samlAttrMapFirstName: data.samlAttrMapFirstName,
58+
samlAttrMapLastName: data.samlAttrMapLastName,
59+
isSameUsernameTreatedAsIdenticalUser: adminSamlSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser,
60+
isSameEmailTreatedAsIdenticalUser: adminSamlSecurityContainer.state.isSameEmailTreatedAsIdenticalUser,
61+
samlABLCRule: data.samlABLCRule,
62+
});
6163
toastSuccess(t('security_settings.SAML.updated_saml'));
6264
}
6365
catch (err) {

0 commit comments

Comments
 (0)