Tree.pm 48.8 KB
Newer Older
1 2 3 4 5 6 7 8 9
# This file describes the manager tree.
# You can only use the following keys:
#  * title: the name of the node
#  * nodes: the subnodes of the node
#  * group: grouped subnodes (see RSAKey form for example)
#  * form: only for nodes, the form to display when selected
#
# Conf parameters are just strings in the `nodes` array
#
Xavier Guimard's avatar
Xavier Guimard committed
10 11 12 13
# Important point: fields preceded by '*' are downloaded during manager
# initialization and available directly in $scope array. Example: '*portal'
# implies that portal value is available in $scope.portal
#
14
# All other ideas have to be set in Manager/Build/Attributes.pm !
15

Xavier Guimard's avatar
Xavier Guimard committed
16
# DON'T FORGET TO RUN "make json" AFTER EACH CHANGE
17

18
package Lemonldap::NG::Manager::Build::Tree;
19

20
our $VERSION = '2.0.2';
21

Xavier Guimard's avatar
Xavier Guimard committed
22
# TODO: Missing:
23 24 25 26
#  * activeTimer
#  * confirmFormMethod
#  * redirectFormMethod
sub tree {
Xavier Guimard's avatar
Xavier Guimard committed
27
    return [ {
28
            title => 'generalParameters',
Xavier Guimard's avatar
Xavier Guimard committed
29
            nodes => [ {
30
                    title => 'portalParams',
31 32
                    help  => 'portal.html',
                    nodes => [
33
                        '*portal',
34 35
                        {
                            title => 'portalMenu',
36
                            help  => 'portalmenu.html',
Xavier Guimard's avatar
Xavier Guimard committed
37
                            nodes => [ {
38
                                    title => 'portalModules',
39 40 41 42 43
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'portalDisplayLogout',
                                        'portalDisplayChangePassword',
                                        'portalDisplayAppslist',
44 45
                                        'portalDisplayLoginHistory',
                                        'portalDisplayOidcConsents',
46 47 48 49 50
                                    ]
                                },
                                'applicationList'
                            ]
                        },
51 52
                        {
                            title => 'portalCustomization',
53 54
                            help  => 'portalcustom.html',
                            nodes => [
55
                                'portalMainLogo',
56
                                'showLanguages',
57
                                'portalSkin',
58
                                'portalSkinBackground',
59
                                'portalSkinRules',
60 61
                                {
                                    title => 'portalButtons',
62
                                    help  => 'portalcustom.html#buttons',
63 64 65 66
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'portalCheckLogins',
                                        'portalDisplayResetPassword',
67
                                        'passwordResetAllowedRetries',
68 69 70
                                        'portalDisplayRegister'
                                    ]
                                },
71 72
                                {
                                    title => 'passwordManagement',
73
                                    help =>
74
                                      'portalcustom.html#password_management',
75 76 77 78 79 80 81
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'portalRequireOldPassword',
                                        'hideOldPassword',
                                        'mailOnPasswordChange'
                                    ]
                                },
82 83
                                {
                                    title => 'portalOther',
84
                                    help =>
85
                                      'portalcustom.html#other_parameters',
86 87 88 89 90
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'portalUserAttr',
                                        'portalOpenLinkInNewWindow',
                                        'portalAntiFrame',
91
                                        'portalPingInterval',
92 93
                                        'portalErrorOnExpiredSession',
                                        'portalErrorOnMailNotFound'
94 95 96 97
                                    ]
                                }
                            ]
                        },
98 99
                        {
                            title => 'portalCaptcha',
100
                            help  => 'captcha.html',
101
                            form  => 'simpleInputContainer',
102 103 104 105 106 107 108 109 110
                            nodes => [
                                'captcha_login_enabled',
                                'captcha_mail_enabled',
                                'captcha_register_enabled',
                                'captcha_size',
                            ]
                        }
                    ]
                },
111 112
                {
                    title => 'authParams',
113
                    help =>
114
                      'start.html#authentication_users_and_password_databases',
115
                    form  => 'authParams',
116
                    nodes => [
117
                        'authentication', 'userDB', 'passwordDB', 'registerDB'
118
                    ],
Xavier Guimard's avatar
Xavier Guimard committed
119
                    nodes_cond => [ {
120
                            title => 'adParams',
121
                            help  => 'authad.html',
122
                            form  => 'simpleInputContainer',
123 124
                            nodes => [ 'ADPwdMaxAge', 'ADPwdExpireWarning' ]
                        },
125 126
                        {
                            title => 'choiceParams',
127
                            help  => 'authchoice.html',
128
                            nodes => [ 'authChoiceParam', 'authChoiceModules' ]
129
                        },
130 131
                        {
                            title => 'apacheParams',
132 133 134 135
                            help  => 'authapache.html',
                            form  => 'simpleInputContainer',
                            nodes => ['apacheAuthnLevel']
                        },
136 137
                        {
                            title => 'casParams',
138
                            help  => 'authcas.html',
139
                            form  => 'simpleInputContainer',
140
                            nodes => ['casAuthnLevel']
141
                        },
142 143
                        {
                            title => 'dbiParams',
144 145 146 147
                            help  => 'authdbi.html',
                            nodes => [
                                'dbiAuthnLevel',
                                'dbiExportedVars',
148 149
                                {
                                    title => 'dbiConnection',
150
                                    help  => 'authdbi.html#connection',
Xavier Guimard's avatar
Xavier Guimard committed
151
                                    nodes => [ {
152
                                            title => 'dbiConnectionAuth',
153 154 155 156 157 158 159
                                            form  => 'simpleInputContainer',
                                            nodes => [
                                                'dbiAuthChain',
                                                'dbiAuthUser',
                                                'dbiAuthPassword'
                                            ]
                                        },
160 161
                                        {
                                            title => 'dbiConnectionUser',
162 163 164 165 166 167 168
                                            form  => 'simpleInputContainer',
                                            nodes => [
                                                'dbiUserChain',
                                                'dbiUserUser',
                                                'dbiUserPassword'
                                            ]
                                        }
169 170
                                    ]
                                },
171 172
                                {
                                    title => 'dbiSchema',
173 174 175 176 177 178 179 180 181 182 183
                                    help  => 'authdbi.html#schema',
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'dbiAuthTable',
                                        'dbiUserTable',
                                        'dbiAuthLoginCol',
                                        'dbiAuthPasswordCol',
                                        'dbiPasswordMailCol',
                                        'userPivot'
                                    ]
                                },
184 185
                                {
                                    title => 'dbiPassword',
186
                                    help  => 'authdbi.html#password',
dcoutadeur dcoutadeur's avatar
dcoutadeur dcoutadeur committed
187 188
                                    nodes => [
                                        'dbiAuthPasswordHash',
189 190
                                        {
                                            title => 'dbiDynamicHash',
dcoutadeur dcoutadeur's avatar
dcoutadeur dcoutadeur committed
191 192 193 194 195
                                            help  => 'authdbi.html#password',
                                            form  => 'simpleInputContainer',
                                            nodes => [
                                                'dbiDynamicHashEnabled',
                                                'dbiDynamicHashValidSchemes',
196 197
'dbiDynamicHashValidSaltedSchemes',
'dbiDynamicHashNewPasswordScheme'
dcoutadeur dcoutadeur's avatar
dcoutadeur dcoutadeur committed
198 199 200
                                            ]
                                        }
                                    ]
201 202 203
                                }
                            ]
                        },
204 205
                        {
                            title => 'demoParams',
206 207 208
                            help  => 'authdemo.html',
                            nodes => ['demoExportedVars']
                        },
209 210
                        {
                            title => 'facebookParams',
211 212
                            help  => 'authfacebook.html',
                            nodes => [
213 214
                                'facebookAuthnLevel', 'facebookExportedVars',
                                'facebookAppId',      'facebookAppSecret',
215
                                'facebookUserField'
216 217
                            ]
                        },
218 219
                        {
                            title => 'kerberosParams',
220
                            form  => 'simpleInputContainer',
221
                            help  => 'authkerberos.html',
222 223 224 225
                            nodes => [
                                'krbKeytab',     'krbByJs',
                                'krbAuthnLevel', 'krbRemoveDomain'
                            ]
226
                        },
227 228
                        {
                            title => 'ldapParams',
229 230 231 232
                            help  => 'authldap.html',
                            nodes => [
                                'ldapAuthnLevel',
                                'ldapExportedVars',
233 234
                                {
                                    title => 'ldapConnection',
235 236 237 238 239 240 241 242 243
                                    help  => 'authldap.html#connection',
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'ldapServer',      'ldapPort',
                                        'ldapBase',        'managerDn',
                                        'managerPassword', 'ldapTimeout',
                                        'ldapVersion',     'ldapRaw'
                                    ]
                                },
244 245
                                {
                                    title => 'ldapFilters',
246 247 248
                                    help  => 'authldap.html#filters',
                                    form  => 'simpleInputContainer',
                                    nodes => [
249 250
                                        'LDAPFilter',     'AuthLDAPFilter',
                                        'mailLDAPFilter', 'ldapSearchDeref',
251 252
                                    ]
                                },
253 254
                                {
                                    title => 'ldapGroups',
255 256 257 258 259 260 261 262
                                    help  => 'authldap.html#groups',
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'ldapGroupBase',
                                        'ldapGroupObjectClass',
                                        'ldapGroupAttributeName',
                                        'ldapGroupAttributeNameUser',
                                        'ldapGroupAttributeNameSearch',
263
                                        'ldapGroupDecodeSearchedValue',
264 265 266 267
                                        'ldapGroupRecursive',
                                        'ldapGroupAttributeNameGroup'
                                    ]
                                },
268 269
                                {
                                    title => 'ldapPassword',
270 271 272 273 274 275 276 277 278
                                    help  => 'authldap.html#password',
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'ldapPpolicyControl',
                                        'ldapSetPassword',
                                        'ldapChangePasswordAsUser',
                                        'ldapPwdEnc',
                                        'ldapUsePasswordResetAttribute',
                                        'ldapPasswordResetAttribute',
279 280
                                        'ldapPasswordResetAttributeValue',
                                        'ldapAllowResetExpiredPassword'
281
                                    ]
282
                                },
283 284
                            ]
                        },
285 286
                        {
                            title => 'linkedinParams',
287
                            help  => 'authlinkedin.html',
288
                            form  => 'simpleInputContainer',
289 290 291 292 293 294
                            nodes => [
                                'linkedInAuthnLevel',   'linkedInClientID',
                                'linkedInClientSecret', 'linkedInFields',
                                'linkedInUserField',    'linkedInScope'
                            ]
                        },
295 296
                        {
                            title => 'combinationParams',
297
                            help  => 'authcombination.html',
298
                            nodes => [ 'combination', 'combModules' ]
299
                        },
300 301
                        {
                            title => 'nullParams',
302 303 304 305
                            help  => 'authnull.html',
                            form  => 'simpleInputContainer',
                            nodes => ['nullAuthnLevel']
                        },
306 307
                        {
                            title => 'openidParams',
308 309 310 311 312 313
                            help  => 'authopenid.html',
                            nodes => [
                                'openIdAuthnLevel', 'openIdExportedVars',
                                'openIdSecret',     'openIdIDPList'
                            ]
                        },
314 315
                        {
                            title => 'oidcParams',
316
                            help  => 'authopenidconnect.html',
317
                            form  => 'simpleInputContainer',
318 319 320 321 322 323
                            nodes => [
                                'oidcAuthnLevel',
                                'oidcRPCallbackGetParam',
                                'oidcRPStateTimeout'
                            ]
                        },
324 325 326 327 328 329 330 331
                        {
                            title => 'gpgParams',
                            help  => 'authgpg.html',
                            form  => 'simpleInputContainer',
                            nodes => ['gpgDb'],
                        },
                        {
                            title => 'proxyParams',
332 333 334
                            help  => 'authproxy.html',
                            form  => 'simpleInputContainer',
                            nodes => [
Xavier Guimard's avatar
Xavier Guimard committed
335 336 337
                                'proxyAuthService', 'proxySessionService',
                                'remoteCookieName', 'proxyAuthnLevel',
                                'proxyUseSoap'
338 339
                            ]
                        },
340 341
                        {
                            title => 'pamParams',
342 343 344 345
                            help  => 'authpam.html',
                            form  => 'simpleInputContainer',
                            nodes => [ 'pamService', 'pamAuthnLevel', ]
                        },
346 347
                        {
                            title => 'radiusParams',
348 349 350 351 352 353 354
                            help  => 'authradius.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'radiusAuthnLevel', 'radiusSecret',
                                'radiusServer'
                            ]
                        },
355 356
                        {
                            title => 'restParams',
357 358 359 360 361 362 363
                            help  => 'authrest.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'restAuthUrl',       'restUserDBUrl',
                                'restPwdConfirmUrl', 'restPwdModifyUrl'
                            ]
                        },
364 365
                        {
                            title => 'remoteParams',
366 367 368 369 370 371 372 373
                            help  => 'authremote.html',
                            nodes => [
                                'remotePortal',
                                'remoteCookieName',
                                'remoteGlobalStorage',
                                'remoteGlobalStorageOptions'
                            ]
                        },
374 375
                        {
                            title => 'slaveParams',
376 377 378
                            help  => 'authslave.html',
                            nodes => [
                                'slaveAuthnLevel', 'slaveExportedVars',
379 380
                                'slaveUserHeader', 'slaveMasterIP',
                                'slaveHeaderName', 'slaveHeaderContent'
381 382
                            ]
                        },
383 384
                        {
                            title => 'sslParams',
385
                            help  => 'authssl.html',
386 387 388 389 390
                            nodes => [
                                'SSLAuthnLevel', 'SSLVar',
                                'SSLVarIf',      'sslByAjax',
                                'sslHost',
                            ]
391
                        },
392 393
                        {
                            title => 'twitterParams',
394 395 396 397
                            help  => 'authtwitter.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'twitterAuthnLevel', 'twitterKey',
398 399
                                'twitterSecret',     'twitterAppName',
                                'twitterUserField'
400 401
                            ]
                        },
402 403
                        {
                            title => 'webidParams',
404 405 406 407 408 409
                            help  => 'authwebid.html',
                            nodes => [
                                'webIDAuthnLevel', 'webIDExportedVars',
                                'webIDWhitelist'
                            ]
                        },
410 411
                        {
                            title => 'customParams',
412 413 414 415
                            help  => 'authcustom.html',
                            nodes => [
                                'customAuth',     'customUserDB',
                                'customPassword', 'customRegister',
416
                                'customAddParams',
417 418
                            ]
                        },
419 420 421
                    ],
                    'nodes_filter' => 'authParams'
                },
422 423
                {
                    title => 'issuerParams',
424
                    help  => 'start.html#identity_provider',
Xavier Guimard's avatar
Xavier Guimard committed
425
                    nodes => [ {
426
                            title => 'issuerDBSAML',
427 428 429
                            help  => 'idpsaml.html',
                            form  => 'simpleInputContainer',
                            nodes => [
430
                                'issuerDBSAMLActivation', 'issuerDBSAMLPath',
431 432 433
                                'issuerDBSAMLRule'
                            ]
                        },
434 435
                        {
                            title => 'issuerDBCAS',
436
                            help  => 'idpcas.html#enabling_cas',
437
                            form  => 'simpleInputContainer',
438
                            nodes => [
439
                                'issuerDBCASActivation', 'issuerDBCASPath',
440 441 442
                                'issuerDBCASRule',
                            ]
                        },
443 444
                        {
                            title => 'issuerDBOpenID',
445 446 447 448 449
                            help  => 'idpopenid.html',
                            nodes => [
                                'issuerDBOpenIDActivation',
                                'issuerDBOpenIDPath',
                                'issuerDBOpenIDRule',
450 451
                                {
                                    title => 'issuerDBOpenIDOptions',
452 453 454 455
                                    nodes => [
                                        'openIdIssuerSecret',
                                        'openIdAttr',
                                        'openIdSPList',
456 457
                                        {
                                            title => 'openIdSreg',
458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474
                                            form  => 'simpleInputContainer',
                                            nodes => [
                                                'openIdSreg_fullname',
                                                'openIdSreg_nickname',
                                                'openIdSreg_language',
                                                'openIdSreg_postcode',
                                                'openIdSreg_timezone',
                                                'openIdSreg_country',
                                                'openIdSreg_gender',
                                                'openIdSreg_email',
                                                'openIdSreg_dob'
                                            ]
                                        }
                                    ]
                                }
                            ]
                        },
475 476
                        {
                            title => 'issuerDBOpenIDConnect',
477
                            help  => 'idpopenidconnect.html',
478
                            form  => 'simpleInputContainer',
479 480 481 482 483
                            nodes => [
                                'issuerDBOpenIDConnectActivation',
                                'issuerDBOpenIDConnectPath',
                                'issuerDBOpenIDConnectRule',
                            ]
484
                        },
485 486
                        {
                            title => 'issuerDBGet',
Xavier Guimard's avatar
Xavier Guimard committed
487
                            help  => 'issuerdbget.html',
488 489 490 491 492 493 494
                            nodes => [
                                'issuerDBGetActivation',
                                'issuerDBGetPath',
                                'issuerDBGetRule',
                                'issuerDBGetParameters'
                            ]
                        },
495 496
                    ]
                },
497 498
                {
                    title => 'logParams',
499 500
                    help  => 'logs.html',
                    form  => 'simpleInputContainer',
501
                    nodes =>
502
                      [ 'whatToTrace', 'hiddenAttributes' ]
503
                },
504 505
                {
                    title => 'cookieParams',
506 507 508
                    help  => 'ssocookie.html',
                    form  => 'simpleInputContainer',
                    nodes => [
509
                        'cookieName', '*domain',
510 511 512 513
                        'cda',        'securedCookie',
                        'httpOnly',   'cookieExpiration'
                    ]
                },
514 515
                {
                    title => 'sessionParams',
516 517 518 519 520
                    help  => 'sessions.html',
                    nodes => [
                        'storePassword',
                        'timeout',
                        'timeoutActivity',
521
                        'timeoutActivityInterval',
522
                        'grantSessionRules',
523 524
                        {
                            title => 'sessionStorage',
525 526 527 528 529 530 531 532
                            help  => 'start.html#sessions_database',
                            nodes => [
                                'globalStorage',
                                'globalStorageOptions',
                                'localSessionStorage',
                                'localSessionStorageOptions'
                            ]
                        },
533 534
                        {
                            title => 'multipleSessions',
535 536 537 538 539 540 541
                            form  => 'simpleInputContainer',
                            nodes => [
                                'singleSession',  'singleIP',
                                'singleUserByIP', 'singleSessionUserByIP',
                                'notifyDeleted',  'notifyOther'
                            ]
                        },
542 543
                        {
                            title => 'persistentSessions',
544
                            nodes => [
545
                                'persistentStorage', 'persistentStorageOptions'
546 547 548 549
                            ]
                        }
                    ]
                },
550 551
                {
                    title => 'reloadParams',
552
                    help  => 'configlocation.html#configuration_reload',
553 554
                    nodes => [ 'reloadUrls', 'reloadTimeout', ]
                },
555 556
                {
                    title => 'plugins',
557
                    help  => 'start.html#plugins',
558
                    nodes => [
559
                        'stayConnected',
560
                        'portalStatus',
561
                        'upgradeSession',
562 563
                        {
                            title => 'portalServers',
564
                            help  => 'portalservers.html',
565
                            form  => 'simpleInputContainer',
566
                            nodes => [
567 568 569
                                'wsdlServer',       'restSessionServer',
                                'restConfigServer', 'soapSessionServer',
                                'soapConfigServer', 'exportedAttr',
570
                            ]
571
                        },
572 573
                        {
                            title => 'loginHistory',
574 575 576 577 578 579 580 581
                            help  => 'loginhistory.html',
                            nodes => [
                                'loginHistoryEnabled',
                                'successLoginNumber',
                                'failedLoginNumber',
                                'sessionDataToRemember'
                            ]
                        },
582 583
                        {
                            title => 'notifications',
584 585 586
                            help  => 'notifications.html',
                            nodes => [
                                'notification',
587
                                'notificationServer',
588
                                'oldNotifFormat',
589 590 591 592 593 594
                                'notificationStorage',
                                'notificationStorageOptions',
                                'notificationWildcard',
                                'notificationXSLTfile'
                            ]
                        },
595 596
                        {
                            title => 'passwordManagement',
597
                            help  => 'resetpassword.html',
Xavier Guimard's avatar
Xavier Guimard committed
598
                            nodes => [ {
599
                                    title => 'mailContent',
600 601
                                    form  => 'simpleInputContainer',
                                    nodes => [
602 603 604 605
                                        'mailSubject',
                                        'mailBody',
                                        'mailConfirmSubject',
                                        'mailConfirmBody'
606 607
                                    ]
                                },
608 609
                                {
                                    title => 'mailOther',
610 611
                                    form  => 'simpleInputContainer',
                                    nodes => [
612
                                        'mailUrl', 'mailTimeout',
613
                                        'randomPasswordRegexp',
614 615 616 617
                                    ]
                                }
                            ]
                        },
618 619
                        {
                            title => 'register',
620 621 622
                            help  => 'register.html',
                            form  => 'simpleInputContainer',
                            nodes => [
623
                                'registerUrl',
624 625 626 627 628
                                'registerTimeout',
                                'registerConfirmSubject',
                                'registerDoneSubject'
                            ]
                        },
629 630
                        {
                            title => 'autoSignin',
631
                            help  => 'autosignin.html',
632
                            nodes => ['autoSigninRules'],
633
                        },
634 635
                        {
                            title => 'stateCheck',
636
                            help  => 'checkstate.html',
637
                            form  => 'simpleInputContainer',
638
                            nodes => [ 'checkState', 'checkStateSecret', ],
639
                        },
640 641 642 643 644 645 646 647 648 649 650
                        {
                            title => 'checkUsers',
                            help  => 'checkuser.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'checkUser',
                                'checkUserHiddenAttributes',
                                'checkUserDisplayPersistentInfo',
                                'checkUserDisplayEmptyValues',
                            ]
                        },
651 652 653 654 655 656 657 658 659 660 661 662
                        {
                            title => 'spoofingIds',
                            help  => 'idspoofing.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'idSpoofing',
                                'idSpoofingRule',
                                'idSpoofingPrefix',
                                'idSpoofingHiddenAttributes',
                                'idSpoofingSkipEmptyValues',
                            ]
                        },
663 664
                    ]
                },
665 666
                {
                    title => 'secondFactors',
667
                    help  => 'secondfactor.html',
Xavier Guimard's avatar
Xavier Guimard committed
668
                    nodes => [ {
669
                            title => 'utotp2f',
670 671
                            help  => 'utotp2f.html',
                            form  => 'simpleInputContainer',
672
                            nodes =>
673
                              [ 'utotp2fActivation', 'utotp2fAuthnLevel' ]
674
                        },
675 676
                        {
                            title => 'totp',
677
                            help  => 'totp2f.html',
678 679
                            form  => 'simpleInputContainer',
                            nodes => [
680 681 682 683 684 685
                                'totp2fActivation',
                                'totp2fSelfRegistration',
                                'totp2fAuthnLevel',
                                'totp2fIssuer',
                                'totp2fInterval',
                                'totp2fRange',
Xavier Guimard's avatar
Xavier Guimard committed
686
                                'totp2fDigits',
687 688
                                'totp2fDisplayExistingSecret',
                                'totp2fUserCanChangeKey',
689
                                'totp2fUserCanRemoveKey',
690 691
                            ]
                        },
692 693
                        {
                            title => 'u2f',
694 695 696
                            help  => 'u2f.html',
                            form  => 'simpleInputContainer',
                            nodes => [
697 698
                                'u2fActivation', 'u2fSelfRegistration',
                                'u2fAuthnLevel', 'u2fUserCanRemoveKey',
699 700
                            ]
                        },
701 702
                        {
                            title => 'mail2f',
703 704 705
                            help  => 'mail2f.html',
                            form  => 'simpleInputContainer',
                            nodes => [
706 707 708
                                'mail2fActivation', 'mail2fCodeRegex',
                                'mail2fTimeout',    'mail2fSubject',
                                'mail2fBody',       'mail2fAuthnLevel',
709 710 711
                                'mail2fLogo',
                            ]
                        },
712 713
                        {
                            title => 'external2f',
714 715 716
                            help  => 'external2f.html',
                            form  => 'simpleInputContainer',
                            nodes => [
717 718 719
                                'ext2fActivation',  'ext2fCodeActivation',
                                'ext2FSendCommand', 'ext2FValidateCommand',
                                'ext2fAuthnLevel',  'ext2fLogo',
720
                            ]
721
                        },
722 723
                        {
                            title => 'rest2f',
724 725
                            help  => 'rest2f.html',
                            nodes => [
726 727 728
                                'rest2fActivation', 'rest2fInitUrl',
                                'rest2fInitArgs',   'rest2fVerifyUrl',
                                'rest2fVerifyArgs', 'rest2fAuthnLevel',
Xavier Guimard's avatar
Xavier Guimard committed
729
                                'rest2fLogo',
730
                            ]
731
                        },
732 733
                        {
                            title => 'yubikey2f',
734 735 736 737 738 739 740 741 742 743 744
                            help  => 'yubikey2f.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'yubikey2fActivation',
                                'yubikey2fSelfRegistration',
                                'yubikey2fAuthnLevel',
                                'yubikey2fClientID',
                                'yubikey2fSecretKey',
                                'yubikey2fNonce',
                                'yubikey2fUrl',
                                'yubikey2fPublicIDSize',
745
                                'yubikey2fUserCanRemoveKey',
746 747
                            ],
                        },
748
                        'sfRequired',
749 750
                    ]
                },
751 752
                {
                    title => 'advancedParams',
753 754 755
                    help  => 'start.html#advanced_features',
                    nodes => [
                        'customFunctions',
756
                        'multiValuesSeparator',
757 758 759 760 761 762 763 764 765 766 767 768 769 770
                        {
                            title => 'SMTP',
                            help  => 'smtp.html',
                            nodes => [
                                'mailSessionKey',
                                'SMTPServer',
                                'SMTPPort',
                                'SMTPAuthUser',
                                'SMTPAuthPass',
                                'SMTPTLS',
                                'SMTPTLSOpts',
                                {
                                    title => 'mailHeaders',
                                    form  => 'simpleInputContainer',
771
                                    nodes => [
772 773
                                        'mailFrom', 'mailReplyTo',
                                        'mailCharset'
774
                                    ]
775 776
                                },
                            ]
777
                        },
778 779 780
                        {
                            title => 'security',
                            help => 'security.html#configure_security_settings',
781
                            nodes => [
782
                                'userControl',
783
                                'portalForceAuthn',
784 785 786 787
                                'portalForceAuthnInterval',
                                'key',
                                'trustedDomains',
                                'useSafeJail',
788
                                'checkXSS',
789
                                'bruteForceProtection',
790 791 792
                                'requireToken',
                                'formTimeout',
                                'tokenUseGlobalStorage',
793
                                'lwpOpts',
794
                                'lwpSslOpts',
795 796
                                {
                                    title => 'contentSecurityPolicy',
797
                                    help  => 'security.html#portal',
798 799 800 801
                                    form  => 'simpleInputContainer',
                                    nodes => [
                                        'cspDefault', 'cspImg',
                                        'cspScript',  'cspStyle',
802 803
                                        'cspFont',    'cspFormAction',
                                        'cspConnect',
804
                                    ]
805
                                },
806 807
                            ]
                        },
808 809
                        {
                            title => 'redirection',
810 811 812 813 814 815 816
                            help  => 'redirections.html',
                            form  => 'simpleInputContainer',
                            nodes => [
                                'https',
                                'port',
                                'useRedirectOnForbidden',
                                'useRedirectOnError',
817
                                'maintenance'
818 819
                            ]
                        },
820 821
                        {
                            title => 'portalRedirection',
822 823
                            help  => 'redirections.html#portal_redirections',
                            form  => 'simpleInputContainer',
824
                            nodes => [
825
                                'jsRedirect', 'noAjaxHook',
826 827
                                'skipRenewConfirmation',
                            ]
828
                        },
829
                        'nginxCustomHandlers',
830
                        'logoutServices',
831 832
                        {
                            title => 'forms',
833
                            form  => 'simpleInputContainer',
834
                            nodes => [
835 836
                                'infoFormMethod',     'confirmFormMethod',
                                'redirectFormMethod', 'activeTimer',
837
                            ]
838
                        },
839 840 841 842
                    ]
                }
            ]
        },
843 844
        {
            title => 'variables',
Xavier Guimard's avatar
Xavier Guimard committed
845
            help  => 'variables.html',
846 847 848
            nodes => [ 'exportedVars', 'macros', 'groups' ]
        },
        'virtualHosts',
849 850
        {
            title => 'samlServiceMetaData',
851 852 853
            help  => 'samlservice.html',
            nodes => [
                'samlEntityID',
854 855
                {
                    title => 'samlServiceSecurity',
856
                    help  => 'samlservice.html#security_parameters',
Xavier Guimard's avatar
Xavier Guimard committed
857
                    nodes => [ {
858
                            title => 'samlServiceSecuritySig',
859 860 861 862 863 864 865
                            form  => 'RSAKey',
                            group => [
                                'samlServicePrivateKeySig',
                                'samlServicePrivateKeySigPwd',
                                'samlServicePublicKeySig'
                            ]
                        },
866 867
                        {
                            title => 'samlServiceSecurityEnc',
868 869 870 871 872 873
                            form  => 'RSAKey',
                            group => [
                                'samlServicePrivateKeyEnc',
                                'samlServicePrivateKeyEncPwd',
                                'samlServicePublicKeyEnc'
                            ]
874
                        },
875 876
                        'samlServiceUseCertificateInResponse',
                        'samlServiceSignatureMethod'
877 878
                    ]
                },
879 880
                {
                    title => 'samlNameIDFormatMap',
881 882 883 884 885 886 887 888 889
                    help  => 'samlservice.html#nameid_formats',
                    form  => 'simpleInputContainer',
                    nodes => [
                        'samlNameIDFormatMapEmail',
                        'samlNameIDFormatMapX509',
                        'samlNameIDFormatMapWindows',
                        'samlNameIDFormatMapKerberos'
                    ]
                },
890 891
                {
                    title => 'samlAuthnContextMap',
892 893 894 895 896 897 898 899 900
                    help  => 'samlservice.html#authentication_contexts',
                    form  => 'simpleInputContainer',
                    nodes => [
                        'samlAuthnContextMapPassword',
                        'samlAuthnContextMapPasswordProtectedTransport',
                        'samlAuthnContextMapTLSClient',
                        'samlAuthnContextMapKerberos'
                    ]
                },
901 902
                {
                    title => 'samlOrganization',
903 904 905
                    help  => 'samlservice.html#organization',
                    form  => 'simpleInputContainer',
                    nodes => [
906
                        'samlOrganizationDisplayName', 'samlOrganizationName',
907 908 909
                        'samlOrganizationURL'
                    ]
                },
910 911
                {
                    title => 'samlSPSSODescriptor',
912 913 914 915
                    help  => 'samlservice.html#service_provider',
                    nodes => [
                        'samlSPSSODescriptorAuthnRequestsSigned',
                        'samlSPSSODescriptorWantAssertionsSigned',
916 917
                        {
                            title => 'samlSPSSODescriptorSingleLogoutService',
918
                            nodes => [
919 920
'samlSPSSODescriptorSingleLogoutServiceHTTPRedirect',
'samlSPSSODescriptorSingleLogoutServiceHTTPPost',
921 922 923
                                'samlSPSSODescriptorSingleLogoutServiceSOAP'
                            ]
                        },
924 925 926
                        {
                            title =>
                              'samlSPSSODescriptorAssertionConsumerService',
927
                            nodes => [
928 929
'samlSPSSODescriptorAssertionConsumerServiceHTTPArtifact',
'samlSPSSODescriptorAssertionConsumerServiceHTTPPost'
930 931
                            ]
                        },
932 933 934
                        {
                            title =>
                              'samlSPSSODescriptorArtifactResolutionService',
935
                            nodes => [
936
'samlSPSSODescriptorArtifactResolutionServiceArtifact'
937 938 939 940
                            ]
                        }
                    ]
                },
941 942
                {
                    title => 'samlIDPSSODescriptor',
943 944 945
                    help  => 'samlservice.html#identity_provider',
                    nodes => [
                        'samlIDPSSODescriptorWantAuthnRequestsSigned',
946 947
                        {
                            title => 'samlIDPSSODescriptorSingleSignOnService',
948
                            nodes => [
949 950 951
'samlIDPSSODescriptorSingleSignOnServiceHTTPRedirect',
'samlIDPSSODescriptorSingleSignOnServiceHTTPPost',
'samlIDPSSODescriptorSingleSignOnServiceHTTPArtifact',
952 953
                            ]
                        },
954 955
                        {
                            title => 'samlIDPSSODescriptorSingleLogoutService',
956
                            nodes => [
957 958
'samlIDPSSODescriptorSingleLogoutServiceHTTPRedirect',
'samlIDPSSODescriptorSingleLogoutServiceHTTPPost',
959 960 961
                                'samlIDPSSODescriptorSingleLogoutServiceSOAP'
                            ]
                        },
962 963 964
                        {
                            title =>
                              'samlIDPSSODescriptorArtifactResolutionService',
965
                            nodes => [
966
'samlIDPSSODescriptorArtifactResolutionServiceArtifact'
967 968 969 970
                            ]
                        }
                    ]
                },
971 972
                {
                    title => 'samlAttributeAuthorityDescriptor',
973
                    help  => 'samlservice.html#attribute_authority',
Xavier Guimard's avatar
Xavier Guimard committed
974
                    nodes => [ {
975 976
                            title =>
'samlAttributeAuthorityDescriptorAttributeService',
977
                            nodes => [
978
'samlAttributeAuthorityDescriptorAttributeServiceSOAP'
979 980 981 982
                            ]
                        }
                    ]
                },
983 984
                {
                    title => 'samlAdvanced',
985 986 987 988 989 990 991 992
                    help  => 'samlservice.html#advanced',
                    nodes => [
                        'samlIdPResolveCookie',
                        'samlMetadataForceUTF8',
                        'samlStorage',
                        'samlStorageOptions',
                        'samlRelayStateTimeout',
                        'samlUseQueryStringSpecific',
993 994
                        {
                            title => 'samlCommonDomainCookie',
995 996 997 998 999 1000 1001
                            form  => 'simpleInputContainer',
                            nodes => [
                                'samlCommonDomainCookieActivation',
                                'samlCommonDomainCookieDomain',
                                'samlCommonDomainCookieReader',
                                'samlCommonDomainCookieWriter'
                            ]
1002
                        },
1003 1004
                        {
                            title => 'samlDiscoveryProtocol',
1005 1006 1007 1008 1009 1010 1011
                            form  => 'simpleInputContainer',
                            nodes => [
                                'samlDiscoveryProtocolActivation',
                                'samlDiscoveryProtocolURL',
                                'samlDiscoveryProtocolPolicy',
                                'samlDiscoveryProtocolIsPassive'
                            ]
1012 1013
                        },
                        'samlOverrideIDPEntityID',
1014 1015 1016 1017 1018 1019
                    ]
                }
            ]
        },
        'samlIDPMetaDataNodes',
        'samlSPMetaDataNodes',
1020 1021
        {
            title => 'oidcServiceMetaData',
1022
            help  => 'openidconnectservice.html#service_configuration',
1023 1024
            nodes => [
                'oidcServiceMetaDataIssuer',
1025 1026
                {
                    title => 'oidcServiceMetaDataEndPoints',
1027
                    form  => 'simpleInputContainer',
1028 1029 1030 1031 1032 1033 1034
                    nodes => [
                        'oidcServiceMetaDataAuthorizeURI',
                        'oidcServiceMetaDataTokenURI',
                        'oidcServiceMetaDataUserInfoURI',
                        'oidcServiceMetaDataJWKSURI',
                        'oidcServiceMetaDataRegistrationURI',
                        'oidcServiceMetaDataEndSessionURI',
1035
                        'oidcServiceMetaDataCheckSessionURI',
1036 1037
                        'oidcServiceMetaDataFrontChannelURI',
                        'oidcServiceMetaDataBackChannelURI',
1038 1039 1040
                    ]
                },
                'oidcServiceMetaDataAuthnContext',
1041 1042
                {
                    title => 'oidcServiceMetaDataSecurity',
Xavier Guimard's avatar
Xavier Guimard committed
1043
                    nodes => [ {
1044
                            title => 'oidcServiceMetaDataKeys',
1045 1046 1047 1048 1049 1050
                            form  => 'RSAKeyNoPassword',
                            group => [
                                'oidcServicePrivateKeySig',
                                'oidcServicePublicKeySig',
                            ],
                        },
1051
                        'oidcServiceKeyIdSig',
1052 1053 1054 1055
                        'oidcServiceAllowDynamicRegistration',
                        'oidcServiceAllowAuthorizationCodeFlow',
                        'oidcServiceAllowImplicitFlow',
                        'oidcServiceAllowHybridFlow',
1056
                    ],
1057
                },
1058 1059
                {
                    title => "oidcServiceMetaDataSessions",
1060 1061
                    nodes => [ 'oidcStorage', 'oidcStorageOptions', ],
                },
1062 1063 1064 1065
            ]
        },
        'oidcOPMetaDataNodes',
        'oidcRPMetaDataNodes',
1066 1067 1068
        {
            title => 'casServiceMetadata',
            help  => 'idpcas.html#configuring_the_cas_service',
1069 1070
            nodes => [
                'casAttr',
1071 1072 1073
                'casAccessControlPolicy',
                'casStorage',
                'casStorageOptions',
1074 1075 1076
                'casAttributes',

            ]
1077
        },
1078 1079
        'casSrvMetaDataNodes',
        'casAppMetaDataNodes',
1080 1081 1082 1083
    ];
}

1;