/
ClientAddPage.js
96 lines (94 loc) · 3.04 KB
/
ClientAddPage.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import React, { useEffect } from 'react'
import { connect } from 'react-redux'
import ClientWizardForm from './ClientWizardForm'
import GluuLoader from '../../../../app/routes/Apps/Gluu/GluuLoader'
import { useHistory } from 'react-router-dom'
import { addNewClientAction } from '../../redux/actions/OIDCActions'
import { getScopes } from '../../redux/actions/ScopeActions'
import { getCustomScripts } from '../../../admin/redux/actions/CustomScriptActions'
import { buildPayload } from '../../../../app/utils/PermChecker'
function ClientAddPage({ permissions, scopes, scripts, loading, dispatch }) {
const userAction = {}
const options = {}
options['limit'] = parseInt(100000)
useEffect(() => {
buildPayload(userAction, '', options)
if (scopes.length < 1) {
dispatch(getScopes(userAction))
}
if (scripts.length < 1) {
dispatch(getCustomScripts(userAction))
}
}, [])
const history = useHistory()
scopes = scopes.map((item) => ({ dn: item.dn, name: item.id }))
function handleSubmit(data) {
if (data) {
const postBody = {}
postBody['client'] = data
buildPayload(userAction, data.action_message, postBody)
dispatch(addNewClientAction(userAction))
history.push('/auth-server/clients')
}
}
const clientData = {
frontChannelLogoutSessionRequired: false,
includeClaimsInIdToken: false,
redirectUris: [],
claimRedirectUris: [],
responseTypes: [],
policyuri: '',
logoURI: '',
sectorIdentifierUri: '',
grantTypes: [],
requireAuthTime: false,
postLogoutRedirectUris: [],
oxAuthScopes: [],
trustedClient: false,
persistClientAuthorizations: false,
customAttributes: [],
customObjectClasses: ['top'],
rptAsJwt: false,
accessTokenAsJwt: false,
backchannelUserCodeParameter: false,
disabled: false,
runIntrospectionScriptBeforeAccessTokenAsJwtCreationAndIncludeClaims: false,
keepClientAuthorizationAfterExpiration: false,
allowSpontaneousScopes: false,
backchannelLogoutSessionRequired: false,
attributes: {
tlsClientAuthSubjectDn: null,
runIntrospectionScriptBeforeAccessTokenAsJwtCreationAndIncludeClaims: false,
keepClientAuthorizationAfterExpiration: false,
allowSpontaneousScopes: false,
backchannelLogoutSessionRequired: false,
backchannelLogoutUri: [],
rptClaimsScripts: [],
consentGatheringScripts: [],
spontaneousScopeScriptDns: [],
introspectionScripts: [],
postAuthnScripts: [],
additionalAudience: [],
},
}
return (
<GluuLoader blocking={loading}>
<ClientWizardForm
client_data={clientData}
scopes={scopes}
scripts={scripts}
permissions={permissions}
customOnSubmit={handleSubmit}
/>
</GluuLoader>
)
}
const mapStateToProps = (state) => {
return {
permissions: state.authReducer.permissions,
scopes: state.scopeReducer.items,
scripts: state.initReducer.scripts,
loading: state.oidcReducer.loading,
}
}
export default connect(mapStateToProps)(ClientAddPage)