lemonldap-ng/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/CTrees.pm

312 lines
13 KiB
Perl

# This file contains the description of special subtrees of the manager
# interface.
# 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
#
# All other ideas have to be set in Manager/Build/Attributes.pm !
# DON'T FORGET TO RUN "make json" AFTER EACH CHANGE
package Lemonldap::NG::Manager::Build::CTrees;
our $VERSION = '2.0.15';
sub cTrees {
return {
virtualHost => [
'locationRules',
'exportedHeaders',
'post',
{
title => 'vhostOptions',
help => 'configvhost.html#options',
form => 'simpleInputContainer',
nodes => [
'vhostPort', 'vhostHttps',
'vhostMaintenance', 'vhostAliases',
'vhostAccessToTrace', 'vhostAuthnLevel',
'vhostType', 'vhostDevOpsRulesUrl',
'vhostServiceTokenTTL', 'vhostComment'
],
},
],
samlIDPMetaDataNode => [
'samlIDPMetaDataXML',
'samlIDPMetaDataExportedAttributes',
{
title => "samlIDPMetaDataOptionsSession",
form => 'simpleInputContainer',
nodes => [
"samlIDPMetaDataOptionsAdaptSessionUtime",
"samlIDPMetaDataOptionsForceUTF8",
"samlIDPMetaDataOptionsStoreSAMLToken",
"samlIDPMetaDataOptionsUserAttribute"
]
},
{
title => "samlIDPMetaDataOptionsSignature",
form => 'simpleInputContainer',
nodes => [
"samlIDPMetaDataOptionsSignatureMethod",
"samlIDPMetaDataOptionsSignSSOMessage",
"samlIDPMetaDataOptionsCheckSSOMessageSignature",
"samlIDPMetaDataOptionsSignSLOMessage",
"samlIDPMetaDataOptionsCheckSLOMessageSignature"
]
},
{
title => "samlIDPMetaDataOptionsBinding",
form => 'simpleInputContainer',
nodes => [
"samlIDPMetaDataOptionsSSOBinding",
"samlIDPMetaDataOptionsSLOBinding"
]
},
{
title => "samlIDPMetaDataOptionsSecurity",
form => 'simpleInputContainer',
nodes => [
"samlIDPMetaDataOptionsEncryptionMode",
"samlIDPMetaDataOptionsCheckTime",
"samlIDPMetaDataOptionsCheckAudience"
]
},
{
title => 'samlIDPMetaDataOptions',
help => 'authsaml.html#options',
form => 'simpleInputContainer',
nodes => [
'samlIDPMetaDataOptionsNameIDFormat',
'samlIDPMetaDataOptionsForceAuthn',
'samlIDPMetaDataOptionsIsPassive',
'samlIDPMetaDataOptionsAllowLoginFromIDP',
'samlIDPMetaDataOptionsRequestedAuthnContext',
'samlIDPMetaDataOptionsRelayStateURL',
],
},
{
title => "samlIDPMetaDataOptionsDisplay",
form => 'simpleInputContainer',
nodes => [
"samlIDPMetaDataOptionsDisplayName",
"samlIDPMetaDataOptionsIcon",
'samlIDPMetaDataOptionsResolutionRule',
"samlIDPMetaDataOptionsSortNumber"
]
}
],
samlSPMetaDataNode => [
"samlSPMetaDataXML",
"samlSPMetaDataExportedAttributes",
{
title => "samlSPMetaDataOptions",
help => 'idpsaml.html#options',
nodes => [ {
title => "samlSPMetaDataOptionsAuthnResponse",
form => 'simpleInputContainer',
nodes => [
"samlSPMetaDataOptionsNameIDFormat",
"samlSPMetaDataOptionsNameIDSessionKey",
"samlSPMetaDataOptionsOneTimeUse",
"samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",
"samlSPMetaDataOptionsNotOnOrAfterTimeout",
"samlSPMetaDataOptionsForceUTF8"
]
},
{
title => "samlSPMetaDataOptionsSignature",
form => 'simpleInputContainer',
nodes => [
"samlSPMetaDataOptionsSignatureMethod",
"samlSPMetaDataOptionsSignSSOMessage",
"samlSPMetaDataOptionsCheckSSOMessageSignature",
"samlSPMetaDataOptionsSignSLOMessage",
"samlSPMetaDataOptionsCheckSLOMessageSignature",
]
},
{
title => "samlSPMetaDataOptionsSecurity",
form => 'simpleInputContainer',
nodes => [
"samlSPMetaDataOptionsEncryptionMode",
"samlSPMetaDataOptionsEnableIDPInitiatedURL",
"samlSPMetaDataOptionsAuthnLevel",
"samlSPMetaDataOptionsRule",
]
}
]
},
"samlSPMetaDataMacros",
],
oidcOPMetaDataNode => [
'oidcOPMetaDataJSON',
'oidcOPMetaDataJWKS',
'oidcOPMetaDataExportedVars',
{
title => 'oidcOPMetaDataOptions',
nodes => [ {
title => 'oidcOPMetaDataOptionsConfiguration',
form => 'simpleInputContainer',
nodes => [
'oidcOPMetaDataOptionsConfigurationURI',
'oidcOPMetaDataOptionsJWKSTimeout',
'oidcOPMetaDataOptionsClientID',
'oidcOPMetaDataOptionsClientSecret',
'oidcOPMetaDataOptionsStoreIDToken'
]
},
{
title => 'oidcOPMetaDataOptionsProtocol',
form => 'simpleInputContainer',
nodes => [
'oidcOPMetaDataOptionsScope',
'oidcOPMetaDataOptionsDisplay',
'oidcOPMetaDataOptionsPrompt',
'oidcOPMetaDataOptionsMaxAge',
'oidcOPMetaDataOptionsUiLocales',
'oidcOPMetaDataOptionsAcrValues',
'oidcOPMetaDataOptionsTokenEndpointAuthMethod',
'oidcOPMetaDataOptionsCheckJWTSignature',
'oidcOPMetaDataOptionsIDTokenMaxAge',
'oidcOPMetaDataOptionsUseNonce'
]
},
]
},
{
title => 'oidcOPMetaDataOptionsDisplayParams',
form => 'simpleInputContainer',
nodes => [
'oidcOPMetaDataOptionsDisplayName',
'oidcOPMetaDataOptionsIcon',
'oidcOPMetaDataOptionsResolutionRule',
'oidcOPMetaDataOptionsSortNumber'
]
},
],
oidcRPMetaDataNode => [
'oidcRPMetaDataExportedVars',
'oidcRPMetaDataOptionsExtraClaims',
'oidcRPMetaDataScopeRules',
{
title => 'oidcRPMetaDataOptions',
help => 'idpopenidconnect.html#options',
nodes => [ {
title => 'oidcRPMetaDataOptionsBasic',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsPublic',
'oidcRPMetaDataOptionsClientID',
'oidcRPMetaDataOptionsClientSecret',
'oidcRPMetaDataOptionsRedirectUris',
]
},
{
title => 'oidcRPMetaDataOptionsAdvanced',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsBypassConsent',
'oidcRPMetaDataOptionsIDTokenForceClaims',
'oidcRPMetaDataOptionsAccessTokenJWT',
'oidcRPMetaDataOptionsAccessTokenClaims',
'oidcRPMetaDataOptionsRefreshToken',
'oidcRPMetaDataOptionsUserIDAttr',
'oidcRPMetaDataOptionsAdditionalAudiences',
]
},
{
title => 'security',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsIDTokenSignAlg',
'oidcRPMetaDataOptionsAccessTokenSignAlg',
'oidcRPMetaDataOptionsUserInfoSignAlg',
'oidcRPMetaDataOptionsRequirePKCE',
'oidcRPMetaDataOptionsAllowOffline',
'oidcRPMetaDataOptionsAllowPasswordGrant',
'oidcRPMetaDataOptionsAllowClientCredentialsGrant',
'oidcRPMetaDataOptionsAuthnLevel',
'oidcRPMetaDataOptionsRule',
]
},
{
title => 'oidcRPMetaDataOptionsTimeouts',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsAuthorizationCodeExpiration',
'oidcRPMetaDataOptionsIDTokenExpiration',
'oidcRPMetaDataOptionsAccessTokenExpiration',
'oidcRPMetaDataOptionsOfflineSessionExpiration',
]
},
{
title => 'logout',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsLogoutBypassConfirm',
'oidcRPMetaDataOptionsLogoutSessionRequired',
'oidcRPMetaDataOptionsLogoutType',
'oidcRPMetaDataOptionsLogoutUrl',
'oidcRPMetaDataOptionsPostLogoutRedirectUris',
]
},
]
},
'oidcRPMetaDataMacros',
{
title => 'oidcRPMetaDataOptionsDisplay',
form => 'simpleInputContainer',
nodes => [
'oidcRPMetaDataOptionsDisplayName',
'oidcRPMetaDataOptionsIcon'
],
},
],
casSrvMetaDataNode => [
'casSrvMetaDataExportedVars',
'casSrvMetaDataOptionsProxiedServices',
{
title => 'casSrvMetaDataOptions',
form => 'simpleInputContainer',
nodes => [
'casSrvMetaDataOptionsUrl',
'casSrvMetaDataOptionsRenew',
'casSrvMetaDataOptionsGateway',
]
},
{
title => 'casSrvMetaDataOptionsDisplay',
form => 'simpleInputContainer',
nodes => [
'casSrvMetaDataOptionsDisplayName',
'casSrvMetaDataOptionsIcon',
'casSrvMetaDataOptionsResolutionRule',
'casSrvMetaDataOptionsSortNumber',
]
},
],
casAppMetaDataNode => [
'casAppMetaDataExportedVars',
{
title => 'casAppMetaDataOptions',
form => 'simpleInputContainer',
nodes => [
'casAppMetaDataOptionsService',
'casAppMetaDataOptionsUserAttribute',
'casAppMetaDataOptionsAuthnLevel',
'casAppMetaDataOptionsRule'
]
},
'casAppMetaDataMacros',
],
};
}
1;