Skip to content

Commit 0e26b3c

Browse files
authored
Merge pull request #10540 from growilabs/fix/admin-form-degradation
fix: Admin form degradation
2 parents c963b15 + d7ff405 commit 0e26b3c

14 files changed

+206
-413
lines changed

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) {

apps/app/src/client/components/Admin/Security/SecuritySetting/index.tsx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,21 @@ const SecuritySettingComponent: React.FC<Props> = ({ adminGeneralSecurityContain
3636

3737
const onSubmit = useCallback(async(data: FormData) => {
3838
try {
39-
// Update sessionMaxAge from form data
40-
await adminGeneralSecurityContainer.setSessionMaxAge(data.sessionMaxAge);
41-
// Save all security settings
42-
await adminGeneralSecurityContainer.updateGeneralSecuritySetting();
39+
// Save all security settings with form data
40+
await adminGeneralSecurityContainer.updateGeneralSecuritySetting({
41+
sessionMaxAge: data.sessionMaxAge,
42+
restrictGuestMode: adminGeneralSecurityContainer.state.currentRestrictGuestMode,
43+
pageDeletionAuthority: adminGeneralSecurityContainer.state.currentPageDeletionAuthority,
44+
pageCompleteDeletionAuthority: adminGeneralSecurityContainer.state.currentPageCompleteDeletionAuthority,
45+
pageRecursiveDeletionAuthority: adminGeneralSecurityContainer.state.currentPageRecursiveDeletionAuthority,
46+
pageRecursiveCompleteDeletionAuthority: adminGeneralSecurityContainer.state.currentPageRecursiveCompleteDeletionAuthority,
47+
isAllGroupMembershipRequiredForPageCompleteDeletion: adminGeneralSecurityContainer.state.isAllGroupMembershipRequiredForPageCompleteDeletion,
48+
hideRestrictedByGroup: adminGeneralSecurityContainer.state.currentGroupRestrictionDisplayMode === 'Hidden',
49+
hideRestrictedByOwner: adminGeneralSecurityContainer.state.currentOwnerRestrictionDisplayMode === 'Hidden',
50+
isUsersHomepageDeletionEnabled: adminGeneralSecurityContainer.state.isUsersHomepageDeletionEnabled,
51+
isForceDeleteUserHomepageOnUserDeletion: adminGeneralSecurityContainer.state.isForceDeleteUserHomepageOnUserDeletion,
52+
isRomUserAllowedToComment: adminGeneralSecurityContainer.state.isRomUserAllowedToComment,
53+
});
4354
toastSuccess(t('security_settings.updated_general_security_setting'));
4455
}
4556
catch (err) {

apps/app/src/client/services/AdminGeneralSecurityContainer.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,22 @@ export default class AdminGeneralSecurityContainer extends Container {
239239
* @memberOf AdminGeneralSecuritySContainer
240240
* @return {string} Appearance
241241
*/
242-
async updateGeneralSecuritySetting() {
243-
244-
let requestParams = {
242+
async updateGeneralSecuritySetting(formData) {
243+
244+
let requestParams = formData != null ? {
245+
sessionMaxAge: formData.sessionMaxAge,
246+
restrictGuestMode: formData.restrictGuestMode,
247+
pageDeletionAuthority: formData.pageDeletionAuthority,
248+
pageCompleteDeletionAuthority: formData.pageCompleteDeletionAuthority,
249+
pageRecursiveDeletionAuthority: formData.pageRecursiveDeletionAuthority,
250+
pageRecursiveCompleteDeletionAuthority: formData.pageRecursiveCompleteDeletionAuthority,
251+
isAllGroupMembershipRequiredForPageCompleteDeletion: formData.isAllGroupMembershipRequiredForPageCompleteDeletion,
252+
hideRestrictedByGroup: formData.hideRestrictedByGroup,
253+
hideRestrictedByOwner: formData.hideRestrictedByOwner,
254+
isUsersHomepageDeletionEnabled: formData.isUsersHomepageDeletionEnabled,
255+
isForceDeleteUserHomepageOnUserDeletion: formData.isForceDeleteUserHomepageOnUserDeletion,
256+
isRomUserAllowedToComment: formData.isRomUserAllowedToComment,
257+
} : {
245258
sessionMaxAge: this.state.sessionMaxAge,
246259
restrictGuestMode: this.state.currentRestrictGuestMode,
247260
pageDeletionAuthority: this.state.currentPageDeletionAuthority,

apps/app/src/client/services/AdminGitHubSecurityContainer.js

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,6 @@ export default class AdminGitHubSecurityContainer extends Container {
6161
return 'AdminGitHubSecurityContainer';
6262
}
6363

64-
/**
65-
* Change githubClientId
66-
*/
67-
changeGitHubClientId(value) {
68-
this.setState({ githubClientId: value });
69-
}
70-
71-
/**
72-
* Change githubClientSecret
73-
*/
74-
changeGitHubClientSecret(value) {
75-
this.setState({ githubClientSecret: value });
76-
}
77-
7864
/**
7965
* Switch isSameUsernameTreatedAsIdenticalUser
8066
*/
@@ -85,10 +71,16 @@ export default class AdminGitHubSecurityContainer extends Container {
8571
/**
8672
* Update githubSetting
8773
*/
88-
async updateGitHubSetting() {
89-
const { githubClientId, githubClientSecret, isSameUsernameTreatedAsIdenticalUser } = this.state;
90-
91-
let requestParams = { githubClientId, githubClientSecret, isSameUsernameTreatedAsIdenticalUser };
74+
async updateGitHubSetting(formData) {
75+
let requestParams = formData != null ? {
76+
githubClientId: formData.githubClientId,
77+
githubClientSecret: formData.githubClientSecret,
78+
isSameUsernameTreatedAsIdenticalUser: formData.isSameUsernameTreatedAsIdenticalUser,
79+
} : {
80+
githubClientId: this.state.githubClientId,
81+
githubClientSecret: this.state.githubClientSecret,
82+
isSameUsernameTreatedAsIdenticalUser: this.state.isSameUsernameTreatedAsIdenticalUser,
83+
};
9284

9385
requestParams = await removeNullPropertyFromObject(requestParams);
9486
const response = await apiv3Put('/security-setting/github-oauth', requestParams);

apps/app/src/client/services/AdminGoogleSecurityContainer.js

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,6 @@ export default class AdminGoogleSecurityContainer extends Container {
6262
return 'AdminGoogleSecurityContainer';
6363
}
6464

65-
/**
66-
* Change googleClientId
67-
*/
68-
changeGoogleClientId(value) {
69-
this.setState({ googleClientId: value });
70-
}
71-
72-
/**
73-
* Change googleClientSecret
74-
*/
75-
changeGoogleClientSecret(value) {
76-
this.setState({ googleClientSecret: value });
77-
}
78-
7965
/**
8066
* Switch isSameEmailTreatedAsIdenticalUser
8167
*/
@@ -87,11 +73,15 @@ export default class AdminGoogleSecurityContainer extends Container {
8773
/**
8874
* Update googleSetting
8975
*/
90-
async updateGoogleSetting() {
91-
const { googleClientId, googleClientSecret, isSameEmailTreatedAsIdenticalUser } = this.state;
92-
93-
let requestParams = {
94-
googleClientId, googleClientSecret, isSameEmailTreatedAsIdenticalUser,
76+
async updateGoogleSetting(formData) {
77+
let requestParams = formData != null ? {
78+
googleClientId: formData.googleClientId,
79+
googleClientSecret: formData.googleClientSecret,
80+
isSameEmailTreatedAsIdenticalUser: formData.isSameEmailTreatedAsIdenticalUser,
81+
} : {
82+
googleClientId: this.state.googleClientId,
83+
googleClientSecret: this.state.googleClientSecret,
84+
isSameEmailTreatedAsIdenticalUser: this.state.isSameEmailTreatedAsIdenticalUser,
9585
};
9686

9787
requestParams = await removeNullPropertyFromObject(requestParams);

0 commit comments

Comments
 (0)