From adfd86d7fe910cb098f32a9c50d891b6c01ed080 Mon Sep 17 00:00:00 2001 From: Maxime Besson Date: Tue, 19 Nov 2019 17:24:58 +0100 Subject: [PATCH 1/9] Add script to convert sessions between backends (#2014) --- Makefile | 1 + debian/liblemonldap-ng-common-perl.install | 2 + lemonldap-ng-common/MANIFEST | 1 + lemonldap-ng-common/Makefile.PL | 1 + lemonldap-ng-common/scripts/convertSessions | 250 ++++++++++++++++++++ rpm/lemonldap-ng.spec | 2 + 6 files changed, 257 insertions(+) create mode 100755 lemonldap-ng-common/scripts/convertSessions diff --git a/Makefile b/Makefile index 52d77ab1d..a1f673ee7 100644 --- a/Makefile +++ b/Makefile @@ -623,6 +623,7 @@ install_bin: install_conf_dir ${SRCPORTALDIR}/site/cron/purgeCentralCache \ ${SRCPORTALDIR}/scripts/llngDeleteSession \ ${SRCCOMMONDIR}/scripts/convertConfig \ + ${SRCCOMMONDIR}/scripts/convertSessions \ ${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \ ${SRCCOMMONDIR}/scripts/rotateOidcKeys \ ${SRCMANAGERDIR}/scripts/lmConfigEditor \ diff --git a/debian/liblemonldap-ng-common-perl.install b/debian/liblemonldap-ng-common-perl.install index 353de61df..c7cc2aa90 100644 --- a/debian/liblemonldap-ng-common-perl.install +++ b/debian/liblemonldap-ng-common-perl.install @@ -1,12 +1,14 @@ /etc/lemonldap-ng/lemonldap-ng.ini /etc/lemonldap-ng/for_etc_hosts /usr/share/man/man1/convertConfig.1p +/usr/share/man/man1/convertSessions.1p /usr/share/man/man1/lemonldap-ng-cli.1p /usr/share/man/man3/Lemonldap::NG::Common* /usr/share/perl5/auto/Lemonldap/NG/Common /usr/share/perl5/Lemonldap/NG/Common* /usr/share/lemonldap-ng/ressources /usr/share/lemonldap-ng/bin/convertConfig +/usr/share/lemonldap-ng/bin/convertSessions /usr/share/lemonldap-ng/bin/importMetadata /usr/share/lemonldap-ng/bin/lmMigrateConfFiles2ini /usr/share/lemonldap-ng/bin/rotateOidcKeys diff --git a/lemonldap-ng-common/MANIFEST b/lemonldap-ng-common/MANIFEST index 94f97455b..d7c3d045d 100644 --- a/lemonldap-ng-common/MANIFEST +++ b/lemonldap-ng-common/MANIFEST @@ -70,6 +70,7 @@ META.json META.yml README scripts/convertConfig +scripts/convertSessions scripts/importMetadata scripts/lemonldap-ng-cli scripts/lmMigrateConfFiles2ini diff --git a/lemonldap-ng-common/Makefile.PL b/lemonldap-ng-common/Makefile.PL index 86745216a..8124b7bf5 100644 --- a/lemonldap-ng-common/Makefile.PL +++ b/lemonldap-ng-common/Makefile.PL @@ -90,6 +90,7 @@ WriteMakefile( }, MAN1PODS => { 'scripts/convertConfig' => 'blib/man1/convertConfig.1p', + 'scripts/convertSessions' => 'blib/man1/convertSessions.1p', 'scripts/lemonldap-ng-cli' => 'blib/man1/lemonldap-ng-cli.1p', }, ); diff --git a/lemonldap-ng-common/scripts/convertSessions b/lemonldap-ng-common/scripts/convertSessions new file mode 100755 index 000000000..cb5c8bfd1 --- /dev/null +++ b/lemonldap-ng-common/scripts/convertSessions @@ -0,0 +1,250 @@ +#!/usr/bin/perl +#============================================================================= +# LemonLDAP::NG session conversion tool +# +# This script lets an administrator migrate existing sessions from one backend +# to another. It is mostly useful when run on persistant sessions, but it can be +# useful in some other cases too, such as OIDC Offline sessions +# +# This is part of LemonLDAP::NG product, released under GPL +#============================================================================= + +use Lemonldap::NG::Common::Apache::Session; +use Lemonldap::NG::Common::Session; +use Config::IniFiles; +use strict; +use Getopt::Std; +$Getopt::Std::STANDARD_HELP_VERSION = 1; + +our $VERSION = "2.0.6"; + +# Options +# -d: debug mode +# -c: configuration file +# -i: ignore errors +my $opts = {}; +getopts( 'dic:', $opts ); + +my $debug = $opts->{d}; +my $config_file = $opts->{c}; +my $ignore_errors = $opts->{i}; +my $nb_converted = 0; +my $nb_error = 0; + +sub HELP_MESSAGE { + my $OUT = shift; + print $OUT < '/var/lib/lemonldap-ng/sessions', \\ + 'LockDirectory' => '/var/lib/lemonldap-ng/sessions/lock', \\ +} +# Only convert some session types +# sessionKind = Persistent, SSO + +[sessions_to] +storageModule = Apache::Session::Browseable::Postgres +storageModuleOptions = { \\ + 'DataSource' => 'DBI:Pg:database=lemonldapdb;host=pg.example.com', \\ + 'UserName' => 'lemonldaplogin', \\ + 'Password' => 'lemonldappw', \\ + 'Commit' => 1, \\ + 'Index' => 'ipAddr _whatToTrace user', \\ + 'TableName' => 'sessions', \\ +} + +END_MESSAGE +} + +unless ($config_file) { + HELP_MESSAGE( \*STDERR ); + die "You must provide the -c option"; +} + +my $inicfg = + Config::IniFiles->new( -file => $config_file, -allowcontinue => 1 ); +my $cfg = {}; + +die "Could not read configuration file" unless $inicfg; + +for my $section (qw/sessions_from sessions_to/) { + die "Could not find section $section in configuration file $config_file" + unless $inicfg->SectionExists($section); + + # Load section parameters + my $r; + foreach ( $inicfg->Parameters($section) ) { + $r->{$_} = $inicfg->val( $section, $_ ); + + # Remove spaces before and after value (#1488) + $r->{$_} =~ s/^\s*(.+?)\s*/$1/; + if ( $r->{$_} =~ /^[{\[].*[}\]]$/ || $r->{$_} =~ /^sub\s*{.*}$/ ) { + eval "\$r->{$_} = $r->{$_}"; + if ($@) { + print $@; + return $r; + } + } + } + $cfg->{$section} = $r; +} + +my $backendFrom; +my $backendTo; +my @sessionKindOnly; +if ( $cfg->{sessions_from}->{sessionKind} ) { + @sessionKindOnly = split /\W+/, $cfg->{sessions_from}->{sessionKind}; +} + +if ( $cfg->{sessions_from}->{storageModule} ) { + $backendFrom = $cfg->{sessions_from}->{storageModuleOptions}; + $backendFrom->{backend} = $cfg->{sessions_from}->{storageModule}; +} +else { + die + "[sessions_from] configuration section does not declare a storageModule"; +} + +if ( $cfg->{sessions_to}->{storageModule} ) { + $backendTo = $cfg->{sessions_to}->{storageModuleOptions}; + $backendTo->{backend} = $cfg->{sessions_to}->{storageModule}; +} +else { + die "[sessions_to] configuration section does not declare a storageModule"; +} + +Lemonldap::NG::Common::Apache::Session->get_key_from_all_sessions( + $backendFrom, + sub { + my $entry = shift; + my $id = shift; + + print "Processing session $id\n" if $debug; + my $s = Lemonldap::NG::Common::Session->new( { + storageModule => $backendTo->{backend}, + storageModuleOptions => $backendTo, + id => $id, + info => $entry, + force => 1, + } + ); + + # If filtering sessionKind + if (@sessionKindOnly) { + + unless ( grep { $_ eq $entry->{_session_kind} } @sessionKindOnly ) { + return undef; + } + } + + if ( $s->error ) { + die "Error encountered on session $id" unless $ignore_errors; + $nb_error += 1; + print "Error converting session $id : " . $s->error . "\n"; + } + else { + print "Session $id successfully converted\n" if $debug; + $nb_converted += 1; + } + } +); + +print "$nb_converted sessions have been converted\n"; + +print "$nb_error errors encountered during conversion\n" if $nb_error; + +my $exit = $nb_error ? 1 : 0; +exit $exit; + +__END__ + +=head1 NAME + +=encoding utf8 + +convertSessions - A tool to convert Lemonldap::NG sessions between storage backends. + +=head1 SYNOPSIS + + convertSession [-di] -c parameters.ini + + +=head1 DESCRIPTION + +convertConfig is a command line tool to migrate all sessions stored +in a source backend (sessions_from), into a new backend (sessions_to). + +It requires a special configuration file in which you must list the source +and destination backend modules and parameters. + +Sessions will not be deleted from the source backend. Existing sessions in the +destination backend will be kept, unless they have the same session ID as a +session in the source backend. In that case, the source will overwrite the +destination. + + +=head1 CONFIGURATION FILE FORMAT + +The configuration file needs two sections to describe the source and destination backends + +Here is an example + + [sessions_from] + storageModule = Apache::Session::File + storageModuleOptions = { \ + 'Directory' => '/var/lib/lemonldap-ng/sessions', \ + 'LockDirectory' => '/var/lib/lemonldap-ng/sessions/lock', \ + } + # Only migrate some session types + # sessionKind = Persistent, SSO + + [sessions_to] + storageModule = Apache::Session::Browseable::Postgres + storageModuleOptions = { \ + 'DataSource' => 'DBI:Pg:database=lemonldapdb;host=pg.example.com', \ + 'UserName' => 'lemonldaplogin', \ + 'Password' => 'lemonldappw', \ + 'Commit' => 1, \ + 'Index' => 'ipAddr _whatToTrace user', \ + 'TableName' => 'sessions', \ + } + + +The C parameter may be used to filter only some session types. + +Thanks to this, you can use this script to migrate from one database holding +all your sessions to separate tables from each session type. + + +=head1 SEE ALSO + +L + +=head1 AUTHORS + +=over + +=item Maxime Besson, Emaxime.besson@worteks.comE + +=back + +=head1 BUG REPORT + +Use OW2 system to report bug or ask for features: +L + +=head1 DOWNLOAD + +Lemonldap::NG is available at +L + diff --git a/rpm/lemonldap-ng.spec b/rpm/lemonldap-ng.spec index 02d2e0765..ca8304217 100644 --- a/rpm/lemonldap-ng.spec +++ b/rpm/lemonldap-ng.spec @@ -561,10 +561,12 @@ fi %config(noreplace) %{apache_confdir}/z-lemonldap-ng-manager.conf %config(noreplace) %{apache_confdir}/z-lemonldap-ng-portal.conf %{_mandir}/man1/convertConfig* +%{_mandir}/man1/convertSessions* %dir %{_libexecdir}/%{name} %dir %{lm_sbindir} %dir %{lm_bindir} %{lm_bindir}/convertConfig +%{lm_bindir}/convertSessions %{lm_bindir}/importMetadata %{lm_bindir}/lmMigrateConfFiles2ini %{lm_bindir}/rotateOidcKeys From 4d60dac78dd6c276053f557213aa2e1dae206bcd Mon Sep 17 00:00:00 2001 From: Christophe Maudoux Date: Tue, 19 Nov 2019 22:01:44 +0100 Subject: [PATCH 2/9] Append total of notifications & Fix menu toggle (#2012) --- .../lib/Lemonldap/NG/Manager/Notifications.pm | 13 +++++++------ .../site/coffee/notifications.coffee | 5 +++-- .../site/htdocs/static/js/notifications.js | 7 +++++-- .../site/htdocs/static/js/notifications.min.js | 2 +- .../site/htdocs/static/js/notifications.min.js.map | 2 +- .../site/htdocs/static/languages/ar.json | 1 + .../site/htdocs/static/languages/de.json | 1 + .../site/htdocs/static/languages/en.json | 1 + .../site/htdocs/static/languages/fr.json | 1 + .../site/htdocs/static/languages/it.json | 1 + .../site/htdocs/static/languages/vi.json | 1 + .../site/htdocs/static/languages/zh.json | 1 + .../site/templates/notifications.tpl | 1 + 13 files changed, 25 insertions(+), 12 deletions(-) diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Notifications.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Notifications.pm index c680ebcad..f07f0f0ba 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Notifications.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Notifications.pm @@ -15,10 +15,9 @@ use feature 'state'; extends 'Lemonldap::NG::Common::Conf::AccessLib'; -our $VERSION = '2.0.6'; +our $VERSION = '2.0.7'; has notifAccess => ( is => 'rw' ); - has notifFormat => ( is => 'rw' ); ############################# @@ -75,7 +74,6 @@ sub addRoutes { { done => { ':notificationId' => 'deleteDoneNotification' } }, ['DELETE'] ); - } sub setNotifAccess { @@ -158,6 +156,7 @@ sub notifications { my ( $notifs, $res ); $notifs = $self->notifAccess->$sub(); + my $total = ( keys %$notifs ); # Restrict to wanted values if ( @@ -201,6 +200,7 @@ sub notifications { result => 1, count => $count, values => $res, + total => $total } ); } @@ -221,7 +221,7 @@ sub notifications { } } return $self->sendJSONresponse( $req, - { result => 1, count => scalar(@r), values => \@r } ); + { result => 1, count => scalar(@r), values => \@r, total => $total } ); } } @@ -289,6 +289,7 @@ sub newNotification { $self->logger->debug("Notification Date = $json->{date}"); unless ( $json->{date} =~ /^\d{4}-\d{2}-\d{2}$/ ) { + $self->logger->error("Malformed date"); return $self->sendError( $req, "Malformed date", 200 ); } @@ -312,8 +313,8 @@ sub newNotification { delete $json->{xml}; }; if ($@) { - $self->logger->error("Notification malformed $@"); - return $self->sendError( $req, "Notification malformed: $@", 200 ); + $self->logger->error("Malformed notification $@"); + return $self->sendError( $req, "Malformed notification: $@", 200 ); } $newNotif = to_json($json); } diff --git a/lemonldap-ng-manager/site/coffee/notifications.coffee b/lemonldap-ng-manager/site/coffee/notifications.coffee index 150bc32ff..a0d94b672 100644 --- a/lemonldap-ng-manager/site/coffee/notifications.coffee +++ b/lemonldap-ng-manager/site/coffee/notifications.coffee @@ -125,11 +125,12 @@ llapp.controller 'NotificationsExplorerCtrl', [ '$scope', '$translator', '$locat $scope.waiting = false $scope.init() + # Open node $scope.stoggle = (scope) -> node = scope.$modelValue if node.nodes.length == 0 $scope.updateTree node.value, node.nodes, node.level, node.over, node.query, node.count - scope.toggle() + scope.toggle() $scope.notifDate = (s) -> if s? @@ -182,8 +183,8 @@ llapp.controller 'NotificationsExplorerCtrl', [ '$scope', '$translator', '$locat n.level = level + 1 n.query = query n.over = over - node.push n + $scope.total = data.total if value == '' $scope.waiting = false , (resp) -> $scope.waiting = false diff --git a/lemonldap-ng-manager/site/htdocs/static/js/notifications.js b/lemonldap-ng-manager/site/htdocs/static/js/notifications.js index 5bdc1437f..60ec428dc 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/notifications.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/notifications.js @@ -20,7 +20,7 @@ ]; overScheme = function(v, level, over) { - console.log('overSchema => level', level, 'over', over); + console.log('overScheme => level', level, 'over', over); if (level === 1 && v.length > over) { return "uid=" + v + "*&groupBy=substr(uid," + (level + over + 1) + ")"; } else { @@ -143,8 +143,8 @@ node = scope.$modelValue; if (node.nodes.length === 0) { $scope.updateTree(node.value, node.nodes, node.level, node.over, node.query, node.count); - return scope.toggle(); } + return scope.toggle(); }; $scope.notifDate = function(s) { var d; @@ -207,6 +207,9 @@ } node.push(n); } + if (value === '') { + $scope.total = data.total; + } } return $scope.waiting = false; }, function(resp) { diff --git a/lemonldap-ng-manager/site/htdocs/static/js/notifications.min.js b/lemonldap-ng-manager/site/htdocs/static/js/notifications.min.js index 384a849ed..d3e79296d 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/notifications.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/notifications.min.js @@ -1 +1 @@ -(function(){var u,d,m;m=[function(t){return"groupBy=substr(uid,1)"},function(t){return"uid="+t+"*&groupBy=uid"},function(t){return"uid="+t}],d=function(t,e,n){return console.log("overSchema => level",e,"over",n),1===e&&t.length>n?"uid="+t+"*&groupBy=substr(uid,"+(e+n+1)+")":null},u={actives:[{title:"markAsDone",icon:"check"}],done:[{title:"deleteNotification",icon:"trash"}],new:[{title:"save",icon:"save"}],home:[]},angular.module("llngNotificationsExplorer",["ui.tree","ui.bootstrap","llApp"]).controller("NotificationsExplorerCtrl",["$scope","$translator","$location","$q","$http","$uibModal",function(l,e,t,o,r,a){var f,n,i;return l.links=links,l.menulinks=menulinks,l.staticPrefix=staticPrefix,l.scriptname=scriptname,l.formPrefix=formPrefix,l.availableLanguages=availableLanguages,l.waiting=!0,l.showM=!1,l.showT=!0,l.showForm=!1,l.data=[],l.form={},l.formPost={},l.currentScope=null,l.currentNotification=null,l.menu=u,l.translateP=e.translateP,l.translate=e.translate,l.translateTitle=function(t){return e.translateField(t,"title")},l.menuClick=function(t){if(t.popup)window.open(t.popup);else switch(t.action||(t.action=t.title),typeof t.action){case"function":t.action(l.currentNode,l);break;case"string":l[t.action]();break;default:console.log(typeof t.action)}return l.showM=!1},l.markAsDone=function(){return l.waiting=!0,r.put(scriptname+"notifications/"+l.type+"/"+l.currentNotification.uid+"_"+l.currentNotification.reference,{done:1}).then(function(t){return l.currentNotification=null,l.currentScope.remove(),l.message={title:"notificationDeleted"},l.showModal("alert.html"),l.waiting=!1,l.init()},function(t){return l.message={title:"notificationNotDeleted",message:t.statusText},l.showModal("alert.html"),l.waiting=!1,l.init()})},l.deleteNotification=function(){return l.waiting=!0,r.delete(scriptname+"notifications/"+l.type+"/"+l.currentNotification.uid+"_"+l.currentNotification.reference+"_"+l.currentNotification.done).then(function(t){return l.currentNotification=null,l.currentScope.remove(),l.message={title:"notificationPurged"},l.showModal("alert.html"),l.waiting=!1,l.init()},function(t){return l.message={title:"notificationNotPurged",message:t.statusText},l.showModal("alert.html"),l.waiting=!1,l.init()})},l.stoggle=function(t){var e;if(0===(e=t.$modelValue).nodes.length)return l.updateTree(e.value,e.nodes,e.level,e.over,e.query,e.count),t.toggle()},l.notifDate=function(t){return null!=t?(t.match(/(\d{4})-(\d{2})-(\d{2})/)&&(t=t.substr(0,4)+t.substr(5,2)+t.substr(8,2)),new Date(t.substr(0,4),t.substr(4,2)-1,t.substr(6,2)).toLocaleDateString()):""},l.getLanguage=function(t){return l.lang=t,l.form="white",l.init(),l.showM=!1},l.$on("$locationChangeSuccess",function(t,e,n){var i;return i=e.match(/#!?\/(\w+)/),l.type=null!=i?i[1]:"actives","new"===l.type?l.displayCreateForm():(l.showForm=!1,l.init())}),f=0,l.updateTree=function(t,a,u,c,e,n){var s,i;return l.waiting=!0,s=m[u](t,e),25 level",e,"over",n),1===e&&t.length>n?"uid="+t+"*&groupBy=substr(uid,"+(e+n+1)+")":null},u={actives:[{title:"markAsDone",icon:"check"}],done:[{title:"deleteNotification",icon:"trash"}],new:[{title:"save",icon:"save"}],home:[]},angular.module("llngNotificationsExplorer",["ui.tree","ui.bootstrap","llApp"]).controller("NotificationsExplorerCtrl",["$scope","$translator","$location","$q","$http","$uibModal",function(f,e,t,o,i,r){var d,n,a;return f.links=links,f.menulinks=menulinks,f.staticPrefix=staticPrefix,f.scriptname=scriptname,f.formPrefix=formPrefix,f.availableLanguages=availableLanguages,f.waiting=!0,f.showM=!1,f.showT=!0,f.showForm=!1,f.data=[],f.form={},f.formPost={},f.currentScope=null,f.currentNotification=null,f.menu=u,f.translateP=e.translateP,f.translate=e.translate,f.translateTitle=function(t){return e.translateField(t,"title")},f.menuClick=function(t){if(t.popup)window.open(t.popup);else switch(t.action||(t.action=t.title),typeof t.action){case"function":t.action(f.currentNode,f);break;case"string":f[t.action]();break;default:console.log(typeof t.action)}return f.showM=!1},f.markAsDone=function(){return f.waiting=!0,i.put(scriptname+"notifications/"+f.type+"/"+f.currentNotification.uid+"_"+f.currentNotification.reference,{done:1}).then(function(t){return f.currentNotification=null,f.currentScope.remove(),f.message={title:"notificationDeleted"},f.showModal("alert.html"),f.waiting=!1,f.init()},function(t){return f.message={title:"notificationNotDeleted",message:t.statusText},f.showModal("alert.html"),f.waiting=!1,f.init()})},f.deleteNotification=function(){return f.waiting=!0,i.delete(scriptname+"notifications/"+f.type+"/"+f.currentNotification.uid+"_"+f.currentNotification.reference+"_"+f.currentNotification.done).then(function(t){return f.currentNotification=null,f.currentScope.remove(),f.message={title:"notificationPurged"},f.showModal("alert.html"),f.waiting=!1,f.init()},function(t){return f.message={title:"notificationNotPurged",message:t.statusText},f.showModal("alert.html"),f.waiting=!1,f.init()})},f.stoggle=function(t){var e;return 0===(e=t.$modelValue).nodes.length&&f.updateTree(e.value,e.nodes,e.level,e.over,e.query,e.count),t.toggle()},f.notifDate=function(t){return null!=t?(t.match(/(\d{4})-(\d{2})-(\d{2})/)&&(t=t.substr(0,4)+t.substr(5,2)+t.substr(8,2)),new Date(t.substr(0,4),t.substr(4,2)-1,t.substr(6,2)).toLocaleDateString()):""},f.getLanguage=function(t){return f.lang=t,f.form="white",f.init(),f.showM=!1},f.$on("$locationChangeSuccess",function(t,e,n){var i;return i=e.match(/#!?\/(\w+)/),f.type=null!=i?i[1]:"actives","new"===f.type?f.displayCreateForm():(f.showForm=!1,f.init())}),d=0,f.updateTree=function(a,u,c,s,t,e){var l,n;return f.waiting=!0,l=g[c](a,t),25 +

{{total}}

From 370404006fb8a928552e83686eb4d296e94cf5b7 Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 20 Nov 2019 07:09:32 +0100 Subject: [PATCH 3/9] Update tr --- lemonldap-ng-manager/site/htdocs/static/languages/ar.json | 2 +- lemonldap-ng-manager/site/htdocs/static/languages/it.json | 2 +- lemonldap-ng-manager/site/htdocs/static/languages/vi.json | 2 +- lemonldap-ng-portal/site/templates/common/mail/ms.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json index 149e7a639..9cc26c601 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json @@ -414,7 +414,7 @@ "loadFromUrl":"تحميل من أل يو أر ل", "localSessionStorage":"وحدة ذاكرة التخزين المؤقت", "localSessionStorageOptions":"خيارات وحدة التخزين المؤقت", -"locationRules":"قاعدة الدخول", +"locationRules":"Access rules", "loginHistory":"سجل تسجيل الدخول", "loginHistoryEnabled":"تفعيل", "logo":"شعار", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/it.json b/lemonldap-ng-manager/site/htdocs/static/languages/it.json index f83c2923a..f99c6d84d 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/it.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/it.json @@ -414,7 +414,7 @@ "loadFromUrl":"Carica a partire dall'URL", "localSessionStorage":"Modulo cache", "localSessionStorageOptions":"Opzioni modulo cache", -"locationRules":"Regola di accesso", +"locationRules":"Regole di accesso", "loginHistory":"Cronologia dei login", "loginHistoryEnabled":"Attivazione", "logo":"Logo", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json index 4f9201807..06d571716 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json @@ -414,7 +414,7 @@ "loadFromUrl":"Nạp từ URL", "localSessionStorage":"Mô-đun bộ nhớ cache", "localSessionStorageOptions":"Tùy chọn mô-đun bộ nhớ cache", -"locationRules":"Quy tắc truy cập", +"locationRules":"Access rules", "loginHistory":"Lịch sử đăng nhập", "loginHistoryEnabled":"Kích hoạt", "logo":"Logo", diff --git a/lemonldap-ng-portal/site/templates/common/mail/ms.json b/lemonldap-ng-portal/site/templates/common/mail/ms.json index 2393dbb5d..a76f99514 100644 --- a/lemonldap-ng-portal/site/templates/common/mail/ms.json +++ b/lemonldap-ng-portal/site/templates/common/mail/ms.json @@ -10,7 +10,7 @@ "newPwdIs":"Kata laluan baru anda ialah", "pwdChanged":"Kata laluan anda telah ditukar", "pwdIs":"Kata laluan anda ialah", -"registerConfirmSubject":"[LemonLDAP::NG] Pengesahan pendaftaran akaun", +"registerConfirmSubject":"[LemonLDAP::NG] Pengesahan pendaftaran akaun", "registerDoneSubject":"[LemonLDAP::NG] Akaun baru anda", "requestIssuedFromIP":"Permintaan itu dari alamat IP", "yourLoginCodeIs":"Kod login anda ialah", From 81b00688a8f3c37d1af6d155649b1b7e2dcb4db6 Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 20 Nov 2019 07:27:08 +0100 Subject: [PATCH 4/9] Fix translations using transifex really translated fields --- .../site/htdocs/static/languages/ar.json | 10 ++++----- .../site/htdocs/static/languages/de.json | 2 +- .../site/htdocs/static/languages/it.json | 18 +++++++-------- .../site/htdocs/static/languages/vi.json | 16 +++++++------- .../site/htdocs/static/languages/zh.json | 4 ++-- .../site/htdocs/static/languages/ar.json | 20 ++++++++--------- .../site/htdocs/static/languages/de.json | 18 +++++++-------- .../site/htdocs/static/languages/es.json | 18 +++++++-------- .../site/htdocs/static/languages/fi.json | 16 +++++++------- .../site/htdocs/static/languages/it.json | 22 +++++++++---------- .../site/htdocs/static/languages/nl.json | 6 ++--- .../site/htdocs/static/languages/pt.json | 6 ++--- .../site/htdocs/static/languages/ro.json | 6 ++--- .../site/htdocs/static/languages/vi.json | 18 +++++++-------- .../site/htdocs/static/languages/zh.json | 16 +++++++------- 15 files changed, 98 insertions(+), 98 deletions(-) diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json index 9cc26c601..ad8dbd320 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json @@ -232,7 +232,7 @@ "dbiUserTable":"جدول المستخدم", "decryptValue":"Decrypt value", "decryptValueFunctions":"Decrypt functions", -"decryptValueRule":"Use rule", +"decryptValueRule":"استخدام القاعدة", "default":"الاعْتيادي", "defaultRule":"القاعدة الاعتيادية ", "demoModeOn":"هذا المدير يعمل في طريقة العرض", @@ -593,8 +593,8 @@ "oidcServicePublicKeySig":"توقيع على المفتاح العمومي", "oidcServiceKeyIdSig":"توقيع على هوية المفتاح ", "oidcServiceAuthorizationCodeExpiration":"Authorization Code expiration", -"oidcServiceAccessTokenExpiration":"ﺎﻨﺘﻫﺍﺀ ﺹﻼﺤﻳﺓ ﺎﻠﺗﻮﻜﻧ", -"oidcServiceIDTokenExpiration":" ﺎﻨﺘﻫﺍﺀ ﺹﻼﺤﻳﺓ ﺖﻋﺮﻴﻓ ﺎﻠﺗﻮﻜﻧ", +"oidcServiceAccessTokenExpiration":"انتهاء صلاحية التوكن", +"oidcServiceIDTokenExpiration":" انتهاء صلاحية تعريف التوكن", "oidcServiceOfflineSessionExpiration":"Offline session expiration", "oidcStorage":"اسم وحدة الجلسات", "oidcStorageOptions":"خيارات وحدة الجلسات", @@ -765,7 +765,7 @@ "returnUrl":"إرجاع اليو آر إل", "rp":"Relying Party", "rule":"القاعدة", -"ruleAuthnLevel":"Required authentication level", +"ruleAuthnLevel":"مستوى إثبات الهوية واجب", "rules":"القواعد", "rulesAuthnLevel":"Required authentication levels", "Same":"نفسه", @@ -1079,4 +1079,4 @@ "samlRelayStateTimeout":"تناوب حالة مهلة الجلسة ", "samlUseQueryStringSpecific":"استخدام أسلوب query_string المعين", "samlOverrideIDPEntityID":"Override Entity ID when acting as IDP" -} +} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/de.json b/lemonldap-ng-manager/site/htdocs/static/languages/de.json index 21bf64893..39bc09a9b 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/de.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/de.json @@ -1079,4 +1079,4 @@ "samlRelayStateTimeout":"RelayState session timeout", "samlUseQueryStringSpecific":"Use specific query_string method", "samlOverrideIDPEntityID":"Override Entity ID when acting as IDP" -} +} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/it.json b/lemonldap-ng-manager/site/htdocs/static/languages/it.json index f99c6d84d..963029ee6 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/it.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/it.json @@ -232,7 +232,7 @@ "dbiUserTable":"Tabella utente", "decryptValue":"Decrypt value", "decryptValueFunctions":"Decrypt functions", -"decryptValueRule":"Use rule", +"decryptValueRule":"Utilizza la regola", "default":"Predefinito", "defaultRule":"Regola predefinita", "demoModeOn":"Questo gestore viene eseguito in modalità demo", @@ -561,7 +561,7 @@ "oidcRPMetaDataNode":"Parti basate su OpenID Connect", "oidcRPMetaDataOptions":"Opzioni", "oidcRPMetaDataOptionsAccessTokenExpiration":"Scadenza accesso token", -"oidcRPMetaDataOptionsAuthorizationCodeExpiration":"Scadenza Authorization Code", +"oidcRPMetaDataOptionsAuthorizationCodeExpiration":"Authorization Code expiration", "oidcRPMetaDataOptionsBypassConsent":"Consenso di bypass", "oidcRPMetaDataOptionsClientID":"ID Client", "oidcRPMetaDataOptionsClientSecret":"Segreto Client", @@ -571,7 +571,7 @@ "oidcRPMetaDataOptionsIDTokenExpiration":"Scadenza ID Token", "oidcRPMetaDataOptionsIDTokenSignAlg":"Algoritmo di firma di identificazione di Token", "oidcRPMetaDataOptionsIDTokenForceClaims":"Force claims to be returned in ID Token", -"oidcRPMetaDataOptionsOfflineSessionExpiration":"Scadenza Refresh Token", +"oidcRPMetaDataOptionsOfflineSessionExpiration":"Offline session expiration", "oidcRPMetaDataOptionsRefreshToken":"Use refresh tokens", "oidcRPMetaDataOptionsUserIDAttr":"Attributo utente", "oidcRPName":"Nome di OpenID Connect RP", @@ -592,10 +592,10 @@ "oidcServicePrivateKeySig":"Firma della chiave privata", "oidcServicePublicKeySig":"Firma della chiave pubblica", "oidcServiceKeyIdSig":"ID del codice di accesso", -"oidcServiceAuthorizationCodeExpiration":"Scadenza Authorization Code", +"oidcServiceAuthorizationCodeExpiration":"Authorization Code expiration", "oidcServiceAccessTokenExpiration":"Scadenza accesso token", "oidcServiceIDTokenExpiration":"Scadenza ID Token", -"oidcServiceOfflineSessionExpiration":"Scadenza Refresh Token", +"oidcServiceOfflineSessionExpiration":"Offline session expiration", "oidcStorage":"Nome del modulo Sessioni", "oidcStorageOptions":"Opzioni del modulo Sessioni", "oidcOPMetaDataNodes":"Provider di OpenID Connect", @@ -705,12 +705,12 @@ "proxyUseSoap":"Usa SOAP invece di REST", "publicKey":"Chiave pubblica", "purgeNotification":"Elimina definitivamente la notifica", -"radius2f":"Radius second factor", +"radius2f":"Radius secondo fattore", "radius2fActivation":"Attivazione", "radius2fServer":"Nome host del server", "radius2fSecret":"Segreto condiviso", "radius2fUsernameSessionKey":"Session key containing login", -"radius2fTimeout":"Authentication timeout", +"radius2fTimeout":"Timeout di autenticazione", "radius2fAuthnLevel":"Livello di autenticazione", "radius2fLogo":"Logo", "radius2fLabel":"Label", @@ -765,7 +765,7 @@ "returnUrl":"URL di ritorno", "rp":"Parte facente affidamento", "rule":"Regola", -"ruleAuthnLevel":"Required authentication level", +"ruleAuthnLevel":"Livello di autenticazione richiesto", "rules":"Regole", "rulesAuthnLevel":"Required authentication levels", "Same":"Stesso", @@ -1079,4 +1079,4 @@ "samlRelayStateTimeout":"Timeout di sessione di RelayState", "samlUseQueryStringSpecific":"Utilizza il metodo specifico query_string", "samlOverrideIDPEntityID":"Sostituisci l'ID entità quando agisce come IDP" -} +} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json index 06d571716..6dbf7bd0f 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json @@ -560,8 +560,8 @@ "oidcRPMetaDataExportedVars":"Biến đã được xuất", "oidcRPMetaDataNode":"OpenID Connect Relying Parties", "oidcRPMetaDataOptions":"Tùy chọn", -"oidcRPMetaDataOptionsAccessTokenExpiration":"Hết hạn truy cập Token", -"oidcRPMetaDataOptionsAuthorizationCodeExpiration":"Authorization Code hết hạn", +"oidcRPMetaDataOptionsAccessTokenExpiration":"Access Token expiration", +"oidcRPMetaDataOptionsAuthorizationCodeExpiration":"Authorization Code expiration", "oidcRPMetaDataOptionsBypassConsent":"Bỏ qua sự đồng ý", "oidcRPMetaDataOptionsClientID":"Client ID", "oidcRPMetaDataOptionsClientSecret":"Trình khách bí mật", @@ -571,7 +571,7 @@ "oidcRPMetaDataOptionsIDTokenExpiration":"ID Token hết hạn", "oidcRPMetaDataOptionsIDTokenSignAlg":"Thuật toán chữ ký ID Token", "oidcRPMetaDataOptionsIDTokenForceClaims":"Force claims to be returned in ID Token", -"oidcRPMetaDataOptionsOfflineSessionExpiration":"Refresh Token hết hạn", +"oidcRPMetaDataOptionsOfflineSessionExpiration":"Offline session expiration", "oidcRPMetaDataOptionsRefreshToken":"Use refresh tokens", "oidcRPMetaDataOptionsUserIDAttr":"thuộc tính người dùng", "oidcRPName":"OpenID Connect RP Name", @@ -592,10 +592,10 @@ "oidcServicePrivateKeySig":"Ký khóa cá nhân", "oidcServicePublicKeySig":"Ký khóa công khai", "oidcServiceKeyIdSig":"Khóa ID chính", -"oidcServiceAuthorizationCodeExpiration":"Authorization Code hết hạn", -"oidcServiceAccessTokenExpiration":"Hết hạn truy cập Token", -"oidcServiceIDTokenExpiration":"ID Token hết hạn", -"oidcServiceOfflineSessionExpiration":"Refresh Token hết hạn", +"oidcServiceAuthorizationCodeExpiration":"Authorization Code expiration", +"oidcServiceAccessTokenExpiration":"Access Token expiration", +"oidcServiceIDTokenExpiration":"ID Token expiration", +"oidcServiceOfflineSessionExpiration":"Offline session expiration", "oidcStorage":"Tên mô-đun phiên", "oidcStorageOptions":"Tùy chọn mô-đun phiên", "oidcOPMetaDataNodes":"Nhà cung cấp Kết nối OpenID", @@ -1079,4 +1079,4 @@ "samlRelayStateTimeout":"Thời gian hết hạn phiên RelayState ", "samlUseQueryStringSpecific":"Sử dụng phương pháp query_string cụ thể", "samlOverrideIDPEntityID":"Override Entity ID when acting as IDP" -} +} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json index 01cc8803f..1ac6dcaa8 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json @@ -592,7 +592,7 @@ "oidcServicePrivateKeySig":"Signing private key", "oidcServicePublicKeySig":"Signing public key", "oidcServiceKeyIdSig":"Signing key ID", -"oidcServiceAuthorizationCodeExpiration":"Authorization code expiration", +"oidcServiceAuthorizationCodeExpiration":"Authorization Code expiration", "oidcServiceAccessTokenExpiration":"Access Token expiration", "oidcServiceIDTokenExpiration":"ID Token expiration", "oidcServiceOfflineSessionExpiration":"Offline session expiration", @@ -1079,4 +1079,4 @@ "samlRelayStateTimeout":"RelayState session timeout", "samlUseQueryStringSpecific":"Use specific query_string method", "samlOverrideIDPEntityID":"Override Entity ID when acting as IDP" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/ar.json b/lemonldap-ng-portal/site/htdocs/static/languages/ar.json index db4e2215f..39997a781 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/ar.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/ar.json @@ -83,9 +83,9 @@ "PE91":"Access not granted on OID service", "PE92":"Access not granted on GET service", "PE93":"Access not granted on IMPERSONATION service", -"PE94":"A required attribute is not available", +"PE94":"السمة المطلوبة غير متوفرة", "PE95":"Access not granted on DECRYPT service", -"PE96":"بيانات الإعتماد خاطئة", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"قبول", "accessDenied":"ليس لديك إذن بالدخول لهذا التطبيق", @@ -185,7 +185,7 @@ "notFound":"لم يتم العثور: محاولة الدخول إلى صفحة غير متوفرة", "noTOTPFound":"No TOTP found", "noU2FKeyFound":"No U2F key found", -"oidcConsent":"التطبيق ٪s هل ترغب في معرفة:", +"oidcConsent":"The application %s would like to:", "oidcConsents":"OIDC consents", "oidcConsentsFull":"OpenID Connect consents", "oneExpired2Fremoved":"An expired 2F device has been removed!", @@ -264,19 +264,19 @@ "warning":"تحذير", "welcomeOnPortal":"مرحبا بك على بوابة إثبات الهوية الآمنة.", "yesResendMail":"نعم، أعد إرسال البريد", -"yourAddress":"عنوانك", +"yourAddress":"Know your address", "yourApps":"التطبيقات الخاصة بك", -"yourEmail":"بريدك الالكتروني", -"yourIdentity":"هويتك", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"هويتك هي", "yourKeyIsRegistered":"المفتاح الخاص بك تم تسجيله", "yourKeyIsAlreadyRegistered":"Your key is ALREADY registered!", "yourKeyIsUnregistered":"تمت إزالة المفتاح", "yourKeyIsVerified":"تم اختبار المفتاح الخاص بك بنجاح", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "and access your account while you are offline", -"yourPhone":"رقم هاتفك", -"yourProfile":"ملفك الشخصي", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/de.json b/lemonldap-ng-portal/site/htdocs/static/languages/de.json index b49e35b37..6bad20489 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/de.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/de.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"A required attribute is not available", "PE95":"Access not granted on DECRYPT service", -"PE96":"Benutzername oder Passwort nicht korrekt", +"PE96":"Invalid verification code", "2fRegRequired":"Dieser Dienst benötigt Zwei-Faktor-Authentifizierung. Bitte legen Sie ein Gerät an und gehen dann zum Portal zurück.", "accept":"Akzeptieren", "accessDenied":"Sie haben keine Zugriffsberechtigung für diese Anwendung", @@ -185,7 +185,7 @@ "notFound":"Nicht gefunden: Du versuchst, auf eine nicht verfügbare Seite zuzugreifen", "noTOTPFound":"Kein TOTP gefunden", "noU2FKeyFound":"Kein U2F Schlüssel gefunden", -"oidcConsent":"Die Anwendung %s möchte:", +"oidcConsent":"The application %s would like to:", "oidcConsents":"OIDC consents", "oidcConsentsFull":"OpenID Connect consents", "oneExpired2Fremoved":"An expired 2F device has been removed!", @@ -264,19 +264,19 @@ "warning":"Warnung", "welcomeOnPortal":"Willkommen in Ihrem gesicherten Authentifizierungsportal.", "yesResendMail":"Ja, Mail erneut senden.", -"yourAddress":"Wissen Ihre Adresse", +"yourAddress":"Know your address", "yourApps":"Ihre Applikationen", -"yourEmail":"Wissen Ihre Mailadresse", -"yourIdentity":"Wissen Ihre Identität", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"Ihre Identität ist", "yourKeyIsRegistered":"Ihr Key wurde registriert", "yourKeyIsAlreadyRegistered":"Your key is ALREADY registered!", "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Ihr Key ist bestätigt", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "and access your account while you are offline", -"yourPhone":"Wissen Ihre Telefonnummer", -"yourProfile":"Wissen Ihr Profil", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/es.json b/lemonldap-ng-portal/site/htdocs/static/languages/es.json index 3a2f676bf..59b3515cc 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/es.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/es.json @@ -85,7 +85,7 @@ "PE93":"Acceso no concedido al servicio de SUPLANTACIÓN", "PE94":"Un atributo obligatorio no está presente", "PE95":"Access not granted on DECRYPT service", -"PE96":"Contraseña o identificador incorrecto", +"PE96":"Invalid verification code", "2fRegRequired":"Este servicio necesita la autenticación de dos factores. Registre un dispositivo ahora, luego reingrese al portal.", "accept":"Aceptar", "accessDenied":"No está autorizado a acceder a esta aplicación", @@ -185,7 +185,7 @@ "notFound":"No encontrado: página no disponible", "noTOTPFound":"TOTP no encontrado", "noU2FKeyFound":"Llave U2F no encontrada", -"oidcConsent":"La aplicación %s quisiera saber:", +"oidcConsent":"The application %s would like to:", "oidcConsents":"Permisos OIDC", "oidcConsentsFull":"Permisos OpenID Connect", "oneExpired2Fremoved":"¡Un dispositivo 2F caducado ha sido suprimido!", @@ -264,19 +264,19 @@ "warning":"Precaución", "welcomeOnPortal":"Bienvenido a su portal de autenticación.", "yesResendMail":"Sí, reenviar el e-mail", -"yourAddress":"Su dirección", +"yourAddress":"Know your address", "yourApps":"Sus aplicaciones", -"yourEmail":"Su e-mail", -"yourIdentity":"Su identidad", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"Su identidad es", "yourKeyIsRegistered":"Su llave está registrada", "yourKeyIsAlreadyRegistered":"¡Su llave YA FUE registrada!", "yourKeyIsUnregistered":"Su llave ha sido suprimida", "yourKeyIsVerified":"Su llave está verificada", "yourNewTotpKey":"Su nueva llave TOTP, por favor pruébela e ingrese el código", -"yourOffline": "Access your account while you are offline", -"yourPhone":"Su número telefónico", -"yourProfile":"Su perfil", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Su llave TOTP", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/fi.json b/lemonldap-ng-portal/site/htdocs/static/languages/fi.json index a402a3531..e6619b56a 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/fi.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/fi.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"A required attribute is not available", "PE95":"Access not granted on DECRYPT service", -"PE96":"Virheelliset kirjautumistiedot", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Hyväksy", "accessDenied":"Sinulla ei ole käyttöoikeutta tähän sovellukseen", @@ -264,19 +264,19 @@ "warning":"Varoitus", "welcomeOnPortal":"Welcome on your secured authentication portal.", "yesResendMail":"Kyllä, uudelleen lähetä sähköposti", -"yourAddress":"Osoitteesi", +"yourAddress":"Know your address", "yourApps":"Sovelluksesi", -"yourEmail":"Sähköpostiosoitteesi", -"yourIdentity":"Your identity", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"Your identity is", "yourKeyIsRegistered":"Your key is registered", "yourKeyIsAlreadyRegistered":"Your key is ALREADY registered!", "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Your key is verified", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "and access your account while you are offline", -"yourPhone":"Puhelinnumerosi", -"yourProfile":"Profiilisi", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/it.json b/lemonldap-ng-portal/site/htdocs/static/languages/it.json index 1e6923bb6..52d23cbac 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/it.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/it.json @@ -83,9 +83,9 @@ "PE91":"Accesso non concesso sul servizio OID", "PE92":"Accesso non concesso sul servizio GET", "PE93":"Accesso non concesso sul servizio IMPERSONATION", -"PE94":"A required attribute is not available", -"PE95":"Access not granted on DECRYPT service", -"PE96":"Password o ID errati", +"PE94":"Attributo richiesto non disponibile", +"PE95":"Accesso non concesso sul servizio DECRYPT", +"PE96":"Invalid verification code", "2fRegRequired":"Questo servizio richiede un'autenticazione a doppio fattore. Registrare un dispositivo ora, quindi tornare al portale.", "accept":"Accetta", "accessDenied":"Non hai un'autorizzazione di accesso per questa applicazione", @@ -185,7 +185,7 @@ "notFound":"Non trovato: si tenta di accedere ad una pagina non disponibile", "noTOTPFound":"Nessun TOTP trovato", "noU2FKeyFound":"Nessuna chiave U2F trovata", -"oidcConsent":"L'applicazione %s vorrebbe:", +"oidcConsent":"The application %s would like to:", "oidcConsents":"Consensi OIDC", "oidcConsentsFull":"Consensi OpenID Connect", "oneExpired2Fremoved":"An expired 2F device has been removed!", @@ -264,19 +264,19 @@ "warning":"Avvertimento", "welcomeOnPortal":"Benvenuto sul tuo portale di autenticazione protetta.", "yesResendMail":"Sì, rinvia e-mail", -"yourAddress":"Sapere vostro indirizzo", +"yourAddress":"Know your address", "yourApps":"Le vostre applicazioni", -"yourEmail":"Sapere vostro E-mail", -"yourIdentity":"Sapere vostro Identità", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"La tua identità é", "yourKeyIsRegistered":"La vostra chiave è registrata", "yourKeyIsAlreadyRegistered":"La tua chiave è GIÀ registrata !", "yourKeyIsUnregistered":"La vostra chiave è stata rimossa", "yourKeyIsVerified":"La tua chiave é stata testata con successo", "yourNewTotpKey":"La tua nuova chiave TOTP, per favore provala e inserisci il codice", -"yourOffline": "and access your account while you are offline", -"yourPhone":"Sapere vostro numero di telefono", -"yourProfile":"Sapere vostro profilo", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"La tua chiave TOTP", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/nl.json b/lemonldap-ng-portal/site/htdocs/static/languages/nl.json index 8bbcee607..8b96f2a34 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/nl.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/nl.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"A required attribute is not available", "PE95":"Access not granted on DECRYPT service", -"PE96":"Wachtwoord of identifier is niet correct", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Accept", "accessDenied":"You have no access authorization for this application", @@ -274,9 +274,9 @@ "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Your key is verified", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "Access your account while you are offline", +"yourOffline":"Access your account while you are offline", "yourPhone":"Know your phone number", "yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/pt.json b/lemonldap-ng-portal/site/htdocs/static/languages/pt.json index 18530a466..399a92d4d 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/pt.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/pt.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"Um atributo exigido não está disponível", "PE95":"Access not granted on DECRYPT service", -"PE96":"Senha ou identificante incorretos", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Accept", "accessDenied":"You have no access authorization for this application", @@ -274,9 +274,9 @@ "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Your key is verified", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "Access your account while you are offline", +"yourOffline":"Access your account while you are offline", "yourPhone":"Know your phone number", "yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/ro.json b/lemonldap-ng-portal/site/htdocs/static/languages/ro.json index 2810d7c36..eaa1f6a1e 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/ro.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/ro.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"A required attribute is not available", "PE95":"Access not granted on DECRYPT service", -"PE96":"Parolă sau identificator incorect", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Accept", "accessDenied":"You have no access authorization for this application", @@ -274,9 +274,9 @@ "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Your key is verified", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "Access your account while you are offline", +"yourOffline":"Access your account while you are offline", "yourPhone":"Know your phone number", "yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/vi.json b/lemonldap-ng-portal/site/htdocs/static/languages/vi.json index 93382a1a7..549ff11f1 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/vi.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/vi.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"Một thuộc tính bắt buộc không có sẵn", "PE95":"Access not granted on DECRYPT service", -"PE96":"Thông tin xác thực sai", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Chấp nhận", "accessDenied":"Bạn không có quyền truy cập vào ứng dụng này", @@ -185,7 +185,7 @@ "notFound":"Không tìm thấy: bạn cố gắng truy cập vào một trang không có sẵn", "noTOTPFound":"Đăng xuất khỏi các ứng dụng khác", "noU2FKeyFound":"No U2F key found", -"oidcConsent":"Ứng dụng %s muốn biết:", +"oidcConsent":"The application %s would like to:", "oidcConsents":"OIDC consents", "oidcConsentsFull":"OpenID Connect consents", "oneExpired2Fremoved":"An expired 2F device has been removed!", @@ -264,19 +264,19 @@ "warning":"Cảnh báo", "welcomeOnPortal":"Chào mừng bạn đến với cổng thông tin xác thực được bảo mật của bạn.", "yesResendMail":"Có, gửi lại thư", -"yourAddress":"Địa chỉ của bạn", +"yourAddress":"Know your address", "yourApps":"Ứng dụng của bạn", -"yourEmail":"Email của bạn", -"yourIdentity":"Nhận dạng của bạn", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"Nhận dạng của bạn là", "yourKeyIsRegistered":"Khóa của bạn đã được đăng ký", "yourKeyIsAlreadyRegistered":"Your key is ALREADY registered!", "yourKeyIsUnregistered":"Khóa của bạn đã bị xóa", "yourKeyIsVerified":"Chìa khóa của bạn đã được kiểm tra thành công", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "and access your account while you are offline", -"yourPhone":"Số điện thoại của bạn", -"yourProfile":"Profile của bạn", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file diff --git a/lemonldap-ng-portal/site/htdocs/static/languages/zh.json b/lemonldap-ng-portal/site/htdocs/static/languages/zh.json index f265069ce..fe22ba878 100644 --- a/lemonldap-ng-portal/site/htdocs/static/languages/zh.json +++ b/lemonldap-ng-portal/site/htdocs/static/languages/zh.json @@ -85,7 +85,7 @@ "PE93":"Access not granted on IMPERSONATION service", "PE94":"A required attribute is not available", "PE95":"Access not granted on DECRYPT service", -"PE96":"认证错误", +"PE96":"Invalid verification code", "2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.", "accept":"Accept 方法", "accessDenied":"您无权访问此应用", @@ -264,19 +264,19 @@ "warning":"警告", "welcomeOnPortal":"欢迎来到您的加密认证 portal", "yesResendMail":"好的,重新发送邮件", -"yourAddress":"您的地址", +"yourAddress":"Know your address", "yourApps":"你的应用", -"yourEmail":"您的邮箱", -"yourIdentity":"您的标识", +"yourEmail":"Know your email", +"yourIdentity":"Know your identity", "yourIdentityIs":"您的身份是", "yourKeyIsRegistered":"Your key is registered", "yourKeyIsAlreadyRegistered":"Your key is ALREADY registered!", "yourKeyIsUnregistered":"Your key has been unregistered", "yourKeyIsVerified":"Your key is verified", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code", -"yourOffline": "and access your account while you are offline", -"yourPhone":"您的电话号码", -"yourProfile":"您的档案", +"yourOffline":"Access your account while you are offline", +"yourPhone":"Know your phone number", +"yourProfile":"Know your profile", "yourTotpKey":"Your TOTP key", "yubikey2f":"Yubikey" -} +} \ No newline at end of file From d587a1ce5e0ab9c5a8b61dfd377cf218a91e4354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20OUDOT?= Date: Wed, 20 Nov 2019 12:21:12 +0100 Subject: [PATCH 5/9] Fix default values for LDAP testes --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a1f673ee7..691d6f73c 100644 --- a/Makefile +++ b/Makefile @@ -129,8 +129,8 @@ E2E_TESTS='portal/*.js' # LDAP backend test LLNGTESTLDAP_SLAPD_BIN=/usr/sbin/slapd -LLNGTESTLDAP_SLAPADD_BIN=/usr/sbin/slapdadd -LLNGTESTLDAP_SCHEMA_DIR=/etc/slapd/schema +LLNGTESTLDAP_SLAPADD_BIN=/usr/sbin/slapadd +LLNGTESTLDAP_SCHEMA_DIR=/etc/ldap/schema # Other SRCCOMMONDIR=lemonldap-ng-common From 6cdfd7219797f180c640438490b617a067638fa9 Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 20 Nov 2019 17:47:56 +0100 Subject: [PATCH 6/9] setSecurity skeleton for Combination (#2009) --- .../lib/Lemonldap/NG/Portal/Auth/Combination.pm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm index b900d9de6..8bb0fb3dd 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm @@ -152,6 +152,17 @@ sub authForce { return 0; } +#sub setSecurity { +# my $self = shift; +# my ($req) = @_; +# $self->getStack( $req, 'extractFormInfo' ) or return PE_ERROR; +# $req->userData->{_combinationTry} ||= 0; +# eval { +# $req->data->{combinationStack}->[ $req->userData->{_combinationTry} ] +# ->[0]->( 'setSecurity', @_ ); +# }; +#} + ## UserDB steps ############### # Note that UserDB::Combination uses the same object. From e454905493bb5360ebb46aaefdaf518724d3e81a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20OUDOT?= Date: Wed, 20 Nov 2019 18:18:51 +0100 Subject: [PATCH 7/9] Allow any value for managerDn (#1967) --- .../lib/Lemonldap/NG/Manager/Attributes.pm | 2 +- .../lib/Lemonldap/NG/Manager/Build/Attributes.pm | 2 +- .../site/htdocs/static/js/conftree.min.js | 3 ++- .../site/htdocs/static/js/conftree.min.js.map | 2 +- lemonldap-ng-manager/site/htdocs/static/js/sessions.js | 10 +++++----- .../site/htdocs/static/js/sessions.min.js | 3 ++- .../site/htdocs/static/js/sessions.min.js.map | 2 +- 7 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm index ad23f1640..37d6851ef 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm @@ -1756,7 +1756,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][ 'managerDn' => { 'default' => '', 'msgFail' => '__badValue__', - 'test' => qr/^(?:\w+=.*)?$/, + 'test' => qr/^.*$/, 'type' => 'text' }, 'managerPassword' => { diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm index d099215d7..5ac8b6f7e 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm @@ -2867,7 +2867,7 @@ sub attributes { # LDAP managerDn => { type => 'text', - test => qr/^(?:\w+=.*)?$/, + test => qr/^.*$/, msgFail => '__badValue__', default => '', documentation => 'LDAP manager DN', diff --git a/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js b/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js index 66bb51a5f..74b9c4a3b 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js @@ -1 +1,2 @@ -function templates(t,a){switch(t){case"casAppMetaDataNode":return[{cnodes:t+"s/"+a+"/casAppMetaDataExportedVars",default:[{data:"cn",id:t+"s/"+a+"/casAppMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"mail",id:t+"s/"+a+"/casAppMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"uid",id:t+"s/"+a+"/casAppMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/casAppMetaDataExportedVars",title:"casAppMetaDataExportedVars",type:"keyTextContainer"},{_nodes:[{get:t+"s/"+a+"/casAppMetaDataOptionsService",id:t+"s/"+a+"/casAppMetaDataOptionsService",title:"casAppMetaDataOptionsService"},{get:t+"s/"+a+"/casAppMetaDataOptionsUserAttribute",id:t+"s/"+a+"/casAppMetaDataOptionsUserAttribute",title:"casAppMetaDataOptionsUserAttribute"},{get:t+"s/"+a+"/casAppMetaDataOptionsRule",id:t+"s/"+a+"/casAppMetaDataOptionsRule",title:"casAppMetaDataOptionsRule"}],id:"casAppMetaDataOptions",title:"casAppMetaDataOptions",type:"simpleInputContainer"}];case"casSrvMetaDataNode":return[{cnodes:t+"s/"+a+"/casSrvMetaDataExportedVars",default:[{data:"cn",id:t+"s/"+a+"/casSrvMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"mail",id:t+"s/"+a+"/casSrvMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"uid",id:t+"s/"+a+"/casSrvMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/casSrvMetaDataExportedVars",title:"casSrvMetaDataExportedVars",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/casSrvMetaDataOptionsProxiedServices",id:t+"s/"+a+"/casSrvMetaDataOptionsProxiedServices",title:"casSrvMetaDataOptionsProxiedServices",type:"keyTextContainer"},{_nodes:[{get:t+"s/"+a+"/casSrvMetaDataOptionsUrl",id:t+"s/"+a+"/casSrvMetaDataOptionsUrl",title:"casSrvMetaDataOptionsUrl"},{default:0,get:t+"s/"+a+"/casSrvMetaDataOptionsRenew",id:t+"s/"+a+"/casSrvMetaDataOptionsRenew",title:"casSrvMetaDataOptionsRenew",type:"bool"},{default:0,get:t+"s/"+a+"/casSrvMetaDataOptionsGateway",id:t+"s/"+a+"/casSrvMetaDataOptionsGateway",title:"casSrvMetaDataOptionsGateway",type:"bool"}],id:"casSrvMetaDataOptions",title:"casSrvMetaDataOptions",type:"simpleInputContainer"},{_nodes:[{get:t+"s/"+a+"/casSrvMetaDataOptionsDisplayName",id:t+"s/"+a+"/casSrvMetaDataOptionsDisplayName",title:"casSrvMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/casSrvMetaDataOptionsIcon",id:t+"s/"+a+"/casSrvMetaDataOptionsIcon",title:"casSrvMetaDataOptionsIcon"},{get:t+"s/"+a+"/casSrvMetaDataOptionsSortNumber",id:t+"s/"+a+"/casSrvMetaDataOptionsSortNumber",title:"casSrvMetaDataOptionsSortNumber",type:"int"}],id:"casSrvMetaDataOptionsDisplay",title:"casSrvMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"oidcOPMetaDataNode":return[{get:t+"s/"+a+"/oidcOPMetaDataJSON",id:t+"s/"+a+"/oidcOPMetaDataJSON",title:"oidcOPMetaDataJSON",type:"file"},{get:t+"s/"+a+"/oidcOPMetaDataJWKS",id:t+"s/"+a+"/oidcOPMetaDataJWKS",title:"oidcOPMetaDataJWKS",type:"file"},{cnodes:t+"s/"+a+"/oidcOPMetaDataExportedVars",default:[{data:"name",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"email",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"family_name",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/sn",title:"sn",type:"keyText"},{data:"sub",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/oidcOPMetaDataExportedVars",title:"oidcOPMetaDataExportedVars",type:"keyTextContainer"},{_nodes:[{_nodes:[{get:t+"s/"+a+"/oidcOPMetaDataOptionsConfigurationURI",id:t+"s/"+a+"/oidcOPMetaDataOptionsConfigurationURI",title:"oidcOPMetaDataOptionsConfigurationURI"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsJWKSTimeout",id:t+"s/"+a+"/oidcOPMetaDataOptionsJWKSTimeout",title:"oidcOPMetaDataOptionsJWKSTimeout",type:"int"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsClientID",id:t+"s/"+a+"/oidcOPMetaDataOptionsClientID",title:"oidcOPMetaDataOptionsClientID"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsClientSecret",id:t+"s/"+a+"/oidcOPMetaDataOptionsClientSecret",title:"oidcOPMetaDataOptionsClientSecret",type:"password"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsStoreIDToken",id:t+"s/"+a+"/oidcOPMetaDataOptionsStoreIDToken",title:"oidcOPMetaDataOptionsStoreIDToken",type:"bool"}],id:"oidcOPMetaDataOptionsConfiguration",title:"oidcOPMetaDataOptionsConfiguration",type:"simpleInputContainer"},{_nodes:[{default:"openid profile",get:t+"s/"+a+"/oidcOPMetaDataOptionsScope",id:t+"s/"+a+"/oidcOPMetaDataOptionsScope",title:"oidcOPMetaDataOptionsScope"},{default:"",get:t+"s/"+a+"/oidcOPMetaDataOptionsDisplay",id:t+"s/"+a+"/oidcOPMetaDataOptionsDisplay",select:[{k:"",v:""},{k:"page",v:"page"},{k:"popup",v:"popup"},{k:"touch",v:"touch"},{k:"wap",v:"wap"}],title:"oidcOPMetaDataOptionsDisplay",type:"select"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsPrompt",id:t+"s/"+a+"/oidcOPMetaDataOptionsPrompt",title:"oidcOPMetaDataOptionsPrompt"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsMaxAge",id:t+"s/"+a+"/oidcOPMetaDataOptionsMaxAge",title:"oidcOPMetaDataOptionsMaxAge",type:"int"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsUiLocales",id:t+"s/"+a+"/oidcOPMetaDataOptionsUiLocales",title:"oidcOPMetaDataOptionsUiLocales"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsAcrValues",id:t+"s/"+a+"/oidcOPMetaDataOptionsAcrValues",title:"oidcOPMetaDataOptionsAcrValues"},{default:"client_secret_post",get:t+"s/"+a+"/oidcOPMetaDataOptionsTokenEndpointAuthMethod",id:t+"s/"+a+"/oidcOPMetaDataOptionsTokenEndpointAuthMethod",select:[{k:"client_secret_post",v:"client_secret_post"},{k:"client_secret_basic",v:"client_secret_basic"}],title:"oidcOPMetaDataOptionsTokenEndpointAuthMethod",type:"select"},{default:1,get:t+"s/"+a+"/oidcOPMetaDataOptionsCheckJWTSignature",id:t+"s/"+a+"/oidcOPMetaDataOptionsCheckJWTSignature",title:"oidcOPMetaDataOptionsCheckJWTSignature",type:"bool"},{default:30,get:t+"s/"+a+"/oidcOPMetaDataOptionsIDTokenMaxAge",id:t+"s/"+a+"/oidcOPMetaDataOptionsIDTokenMaxAge",title:"oidcOPMetaDataOptionsIDTokenMaxAge",type:"int"},{default:1,get:t+"s/"+a+"/oidcOPMetaDataOptionsUseNonce",id:t+"s/"+a+"/oidcOPMetaDataOptionsUseNonce",title:"oidcOPMetaDataOptionsUseNonce",type:"bool"}],id:"oidcOPMetaDataOptionsProtocol",title:"oidcOPMetaDataOptionsProtocol",type:"simpleInputContainer"}],id:"oidcOPMetaDataOptions",title:"oidcOPMetaDataOptions"},{_nodes:[{get:t+"s/"+a+"/oidcOPMetaDataOptionsDisplayName",id:t+"s/"+a+"/oidcOPMetaDataOptionsDisplayName",title:"oidcOPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsIcon",id:t+"s/"+a+"/oidcOPMetaDataOptionsIcon",title:"oidcOPMetaDataOptionsIcon"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsSortNumber",id:t+"s/"+a+"/oidcOPMetaDataOptionsSortNumber",title:"oidcOPMetaDataOptionsSortNumber",type:"int"}],id:"oidcOPMetaDataOptionsDisplayParams",title:"oidcOPMetaDataOptionsDisplayParams",type:"simpleInputContainer"}];case"oidcRPMetaDataNode":return[{cnodes:t+"s/"+a+"/oidcRPMetaDataExportedVars",default:[{data:"mail",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/email",title:"email",type:"keyText"},{data:"sn",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/family_name",title:"family_name",type:"keyText"},{data:"cn",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/name",title:"name",type:"keyText"}],id:t+"s/"+a+"/oidcRPMetaDataExportedVars",title:"oidcRPMetaDataExportedVars",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/oidcRPMetaDataOptionsExtraClaims",default:[],id:t+"s/"+a+"/oidcRPMetaDataOptionsExtraClaims",title:"oidcRPMetaDataOptionsExtraClaims",type:"keyTextContainer"},{_nodes:[{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsClientID",id:t+"s/"+a+"/oidcRPMetaDataOptionsClientID",title:"oidcRPMetaDataOptionsClientID"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsClientSecret",id:t+"s/"+a+"/oidcRPMetaDataOptionsClientSecret",title:"oidcRPMetaDataOptionsClientSecret",type:"password"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsPublic",id:t+"s/"+a+"/oidcRPMetaDataOptionsPublic",title:"oidcRPMetaDataOptionsPublic",type:"bool"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsRequirePKCE",id:t+"s/"+a+"/oidcRPMetaDataOptionsRequirePKCE",title:"oidcRPMetaDataOptionsRequirePKCE",type:"bool"}],id:"oidcRPMetaDataOptionsAuthentication",title:"oidcRPMetaDataOptionsAuthentication",type:"simpleInputContainer"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsUserIDAttr",id:t+"s/"+a+"/oidcRPMetaDataOptionsUserIDAttr",title:"oidcRPMetaDataOptionsUserIDAttr"},{default:"HS512",get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenSignAlg",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenSignAlg",select:[{k:"none",v:"None"},{k:"HS256",v:"HS256"},{k:"HS384",v:"HS384"},{k:"HS512",v:"HS512"},{k:"RS256",v:"RS256"},{k:"RS384",v:"RS384"},{k:"RS512",v:"RS512"}],title:"oidcRPMetaDataOptionsIDTokenSignAlg",type:"select"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenExpiration",title:"oidcRPMetaDataOptionsIDTokenExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenForceClaims",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenForceClaims",title:"oidcRPMetaDataOptionsIDTokenForceClaims",type:"bool"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsAccessTokenExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsAccessTokenExpiration",title:"oidcRPMetaDataOptionsAccessTokenExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsAuthorizationCodeExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsAuthorizationCodeExpiration",title:"oidcRPMetaDataOptionsAuthorizationCodeExpiration",type:"int"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsAllowOffline",id:t+"s/"+a+"/oidcRPMetaDataOptionsAllowOffline",title:"oidcRPMetaDataOptionsAllowOffline",type:"bool"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsRefreshToken",id:t+"s/"+a+"/oidcRPMetaDataOptionsRefreshToken",title:"oidcRPMetaDataOptionsRefreshToken",type:"bool"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsOfflineSessionExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsOfflineSessionExpiration",title:"oidcRPMetaDataOptionsOfflineSessionExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsRedirectUris",id:t+"s/"+a+"/oidcRPMetaDataOptionsRedirectUris",title:"oidcRPMetaDataOptionsRedirectUris"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsBypassConsent",help:"openidconnectclaims.html",id:t+"s/"+a+"/oidcRPMetaDataOptionsBypassConsent",title:"oidcRPMetaDataOptionsBypassConsent",type:"bool"},{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsPostLogoutRedirectUris",id:t+"s/"+a+"/oidcRPMetaDataOptionsPostLogoutRedirectUris",title:"oidcRPMetaDataOptionsPostLogoutRedirectUris"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutUrl",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutUrl",title:"oidcRPMetaDataOptionsLogoutUrl"},{default:"front",get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutType",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutType",select:[{k:"front",v:"Front Channel"},{k:"back",v:"Back Channel"}],title:"oidcRPMetaDataOptionsLogoutType",type:"select"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutSessionRequired",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutSessionRequired",title:"oidcRPMetaDataOptionsLogoutSessionRequired",type:"bool"}],id:"logout",title:"logout",type:"simpleInputContainer"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsRule",id:t+"s/"+a+"/oidcRPMetaDataOptionsRule",title:"oidcRPMetaDataOptionsRule"}],id:"oidcRPMetaDataOptions",title:"oidcRPMetaDataOptions"},{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsDisplayName",id:t+"s/"+a+"/oidcRPMetaDataOptionsDisplayName",title:"oidcRPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIcon",id:t+"s/"+a+"/oidcRPMetaDataOptionsIcon",title:"oidcRPMetaDataOptionsIcon"}],id:"oidcRPMetaDataOptionsDisplay",title:"oidcRPMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"samlIDPMetaDataNode":return[{get:t+"s/"+a+"/samlIDPMetaDataXML",id:t+"s/"+a+"/samlIDPMetaDataXML",title:"samlIDPMetaDataXML",type:"file"},{cnodes:t+"s/"+a+"/samlIDPMetaDataExportedAttributes",default:[],help:"authsaml.html#exported_attributes",id:t+"s/"+a+"/samlIDPMetaDataExportedAttributes",title:"samlIDPMetaDataExportedAttributes",type:"samlAttributeContainer"},{_nodes:[{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAdaptSessionUtime",id:t+"s/"+a+"/samlIDPMetaDataOptionsAdaptSessionUtime",title:"samlIDPMetaDataOptionsAdaptSessionUtime",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsForceUTF8",id:t+"s/"+a+"/samlIDPMetaDataOptionsForceUTF8",title:"samlIDPMetaDataOptionsForceUTF8",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsStoreSAMLToken",id:t+"s/"+a+"/samlIDPMetaDataOptionsStoreSAMLToken",title:"samlIDPMetaDataOptionsStoreSAMLToken",type:"bool"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsUserAttribute",id:t+"s/"+a+"/samlIDPMetaDataOptionsUserAttribute",title:"samlIDPMetaDataOptionsUserAttribute"}],id:"samlIDPMetaDataOptionsSession",title:"samlIDPMetaDataOptionsSession",type:"simpleInputContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/samlIDPMetaDataOptionsSignSSOMessage",id:t+"s/"+a+"/samlIDPMetaDataOptionsSignSSOMessage",title:"samlIDPMetaDataOptionsSignSSOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSSOMessageSignature",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSSOMessageSignature",title:"samlIDPMetaDataOptionsCheckSSOMessageSignature",type:"bool"},{default:-1,get:t+"s/"+a+"/samlIDPMetaDataOptionsSignSLOMessage",id:t+"s/"+a+"/samlIDPMetaDataOptionsSignSLOMessage",title:"samlIDPMetaDataOptionsSignSLOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSLOMessageSignature",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSLOMessageSignature",title:"samlIDPMetaDataOptionsCheckSLOMessageSignature",type:"bool"}],id:"samlIDPMetaDataOptionsSignature",title:"samlIDPMetaDataOptionsSignature",type:"simpleInputContainer"},{_nodes:[{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsSSOBinding",id:t+"s/"+a+"/samlIDPMetaDataOptionsSSOBinding",select:[{k:"",v:""},{k:"http-post",v:"POST"},{k:"http-redirect",v:"Redirect"},{k:"artifact-get",v:"Artifact GET"}],title:"samlIDPMetaDataOptionsSSOBinding",type:"select"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsSLOBinding",id:t+"s/"+a+"/samlIDPMetaDataOptionsSLOBinding",select:[{k:"",v:""},{k:"http-post",v:"POST"},{k:"http-redirect",v:"Redirect"},{k:"http-soap",v:"SOAP"}],title:"samlIDPMetaDataOptionsSLOBinding",type:"select"}],id:"samlIDPMetaDataOptionsBinding",title:"samlIDPMetaDataOptionsBinding",type:"simpleInputContainer"},{_nodes:[{default:"none",get:t+"s/"+a+"/samlIDPMetaDataOptionsEncryptionMode",id:t+"s/"+a+"/samlIDPMetaDataOptionsEncryptionMode",select:[{k:"none",v:"None"},{k:"nameid",v:"Name ID"},{k:"assertion",v:"Assertion"}],title:"samlIDPMetaDataOptionsEncryptionMode",type:"select"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckTime",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckTime",title:"samlIDPMetaDataOptionsCheckTime",type:"bool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckAudience",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckAudience",title:"samlIDPMetaDataOptionsCheckAudience",type:"bool"}],id:"samlIDPMetaDataOptionsSecurity",title:"samlIDPMetaDataOptionsSecurity",type:"simpleInputContainer"},{_nodes:[{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsResolutionRule",id:t+"s/"+a+"/samlIDPMetaDataOptionsResolutionRule",title:"samlIDPMetaDataOptionsResolutionRule",type:"longtext"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsNameIDFormat",id:t+"s/"+a+"/samlIDPMetaDataOptionsNameIDFormat",select:[{k:"",v:""},{k:"unspecified",v:"Unspecified"},{k:"email",v:"Email"},{k:"x509",v:"X509 certificate"},{k:"windows",v:"Windows"},{k:"kerberos",v:"Kerberos"},{k:"entity",v:"Entity"},{k:"persistent",v:"Persistent"},{k:"transient",v:"Transient"},{k:"encrypted",v:"Encrypted"}],title:"samlIDPMetaDataOptionsNameIDFormat",type:"select"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsForceAuthn",id:t+"s/"+a+"/samlIDPMetaDataOptionsForceAuthn",title:"samlIDPMetaDataOptionsForceAuthn",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsIsPassive",id:t+"s/"+a+"/samlIDPMetaDataOptionsIsPassive",title:"samlIDPMetaDataOptionsIsPassive",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAllowProxiedAuthn",id:t+"s/"+a+"/samlIDPMetaDataOptionsAllowProxiedAuthn",title:"samlIDPMetaDataOptionsAllowProxiedAuthn",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAllowLoginFromIDP",id:t+"s/"+a+"/samlIDPMetaDataOptionsAllowLoginFromIDP",title:"samlIDPMetaDataOptionsAllowLoginFromIDP",type:"bool"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsRequestedAuthnContext",id:t+"s/"+a+"/samlIDPMetaDataOptionsRequestedAuthnContext",select:[{k:"",v:""},{k:"kerberos",v:"Kerberos"},{k:"password-protected-transport",v:"Password protected transport"},{k:"password",v:"Password"},{k:"tls-client",v:"TLS client certificate"}],title:"samlIDPMetaDataOptionsRequestedAuthnContext",type:"select"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsRelayStateURL",id:t+"s/"+a+"/samlIDPMetaDataOptionsRelayStateURL",title:"samlIDPMetaDataOptionsRelayStateURL",type:"bool"}],help:"authsaml.html#options",id:"samlIDPMetaDataOptions",title:"samlIDPMetaDataOptions",type:"simpleInputContainer"},{_nodes:[{get:t+"s/"+a+"/samlIDPMetaDataOptionsDisplayName",id:t+"s/"+a+"/samlIDPMetaDataOptionsDisplayName",title:"samlIDPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsIcon",id:t+"s/"+a+"/samlIDPMetaDataOptionsIcon",title:"samlIDPMetaDataOptionsIcon"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsSortNumber",id:t+"s/"+a+"/samlIDPMetaDataOptionsSortNumber",title:"samlIDPMetaDataOptionsSortNumber",type:"int"}],id:"samlIDPMetaDataOptionsDisplay",title:"samlIDPMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"samlSPMetaDataNode":return[{get:t+"s/"+a+"/samlSPMetaDataXML",id:t+"s/"+a+"/samlSPMetaDataXML",title:"samlSPMetaDataXML",type:"file"},{cnodes:t+"s/"+a+"/samlSPMetaDataExportedAttributes",default:[],help:"idpsaml.html#exported_attributes",id:t+"s/"+a+"/samlSPMetaDataExportedAttributes",title:"samlSPMetaDataExportedAttributes",type:"samlAttributeContainer"},{_nodes:[{_nodes:[{default:"",get:t+"s/"+a+"/samlSPMetaDataOptionsNameIDFormat",id:t+"s/"+a+"/samlSPMetaDataOptionsNameIDFormat",select:[{k:"",v:""},{k:"unspecified",v:"Unspecified"},{k:"email",v:"Email"},{k:"x509",v:"X509 certificate"},{k:"windows",v:"Windows"},{k:"kerberos",v:"Kerberos"},{k:"entity",v:"Entity"},{k:"persistent",v:"Persistent"},{k:"transient",v:"Transient"},{k:"encrypted",v:"Encrypted"}],title:"samlSPMetaDataOptionsNameIDFormat",type:"select"},{get:t+"s/"+a+"/samlSPMetaDataOptionsNameIDSessionKey",id:t+"s/"+a+"/samlSPMetaDataOptionsNameIDSessionKey",title:"samlSPMetaDataOptionsNameIDSessionKey"},{default:0,get:t+"s/"+a+"/samlSPMetaDataOptionsOneTimeUse",id:t+"s/"+a+"/samlSPMetaDataOptionsOneTimeUse",title:"samlSPMetaDataOptionsOneTimeUse",type:"bool"},{default:72e3,get:t+"s/"+a+"/samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",id:t+"s/"+a+"/samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",title:"samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",type:"int"},{default:72e3,get:t+"s/"+a+"/samlSPMetaDataOptionsNotOnOrAfterTimeout",id:t+"s/"+a+"/samlSPMetaDataOptionsNotOnOrAfterTimeout",title:"samlSPMetaDataOptionsNotOnOrAfterTimeout",type:"int"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsForceUTF8",id:t+"s/"+a+"/samlSPMetaDataOptionsForceUTF8",title:"samlSPMetaDataOptionsForceUTF8",type:"bool"}],id:"samlSPMetaDataOptionsAuthnResponse",title:"samlSPMetaDataOptionsAuthnResponse",type:"simpleInputContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/samlSPMetaDataOptionsSignSSOMessage",id:t+"s/"+a+"/samlSPMetaDataOptionsSignSSOMessage",title:"samlSPMetaDataOptionsSignSSOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsCheckSSOMessageSignature",id:t+"s/"+a+"/samlSPMetaDataOptionsCheckSSOMessageSignature",title:"samlSPMetaDataOptionsCheckSSOMessageSignature",type:"bool"},{default:-1,get:t+"s/"+a+"/samlSPMetaDataOptionsSignSLOMessage",id:t+"s/"+a+"/samlSPMetaDataOptionsSignSLOMessage",title:"samlSPMetaDataOptionsSignSLOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsCheckSLOMessageSignature",id:t+"s/"+a+"/samlSPMetaDataOptionsCheckSLOMessageSignature",title:"samlSPMetaDataOptionsCheckSLOMessageSignature",type:"bool"}],id:"samlSPMetaDataOptionsSignature",title:"samlSPMetaDataOptionsSignature",type:"simpleInputContainer"},{_nodes:[{default:"none",get:t+"s/"+a+"/samlSPMetaDataOptionsEncryptionMode",id:t+"s/"+a+"/samlSPMetaDataOptionsEncryptionMode",select:[{k:"none",v:"None"},{k:"nameid",v:"Name ID"},{k:"assertion",v:"Assertion"}],title:"samlSPMetaDataOptionsEncryptionMode",type:"select"},{default:0,get:t+"s/"+a+"/samlSPMetaDataOptionsEnableIDPInitiatedURL",id:t+"s/"+a+"/samlSPMetaDataOptionsEnableIDPInitiatedURL",title:"samlSPMetaDataOptionsEnableIDPInitiatedURL",type:"bool"},{get:t+"s/"+a+"/samlSPMetaDataOptionsRule",id:t+"s/"+a+"/samlSPMetaDataOptionsRule",title:"samlSPMetaDataOptionsRule"}],id:"samlSPMetaDataOptionsSecurity",title:"samlSPMetaDataOptionsSecurity",type:"simpleInputContainer"}],help:"idpsaml.html#options",id:"samlSPMetaDataOptions",title:"samlSPMetaDataOptions"}];case"virtualHost":return[{cnodes:t+"s/"+a+"/locationRules",default:[{data:"deny",id:t+"s/"+a+"/locationRules/default",re:"default",title:"default",type:"rule"}],help:"writingrulesand_headers.html#rules",id:t+"s/"+a+"/locationRules",title:"locationRules",type:"ruleContainer"},{cnodes:t+"s/"+a+"/exportedHeaders",help:"writingrulesand_headers.html#headers",id:t+"s/"+a+"/exportedHeaders",title:"exportedHeaders",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/post",help:"formreplay.html",id:t+"s/"+a+"/post",title:"post",type:"postContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/vhostPort",id:t+"s/"+a+"/vhostPort",title:"vhostPort",type:"int"},{default:-1,get:t+"s/"+a+"/vhostHttps",id:t+"s/"+a+"/vhostHttps",title:"vhostHttps",type:"trool"},{default:0,get:t+"s/"+a+"/vhostMaintenance",id:t+"s/"+a+"/vhostMaintenance",title:"vhostMaintenance",type:"bool"},{default:"",get:t+"s/"+a+"/vhostAliases",id:t+"s/"+a+"/vhostAliases",title:"vhostAliases"},{default:"Main",get:t+"s/"+a+"/vhostType",id:t+"s/"+a+"/vhostType",select:[{k:"AuthBasic",v:"AuthBasic"},{k:"CDA",v:"CDA"},{k:"DevOps",v:"DevOps"},{k:"DevOpsST",v:"DevOpsST"},{k:"Main",v:"Main"},{k:"OAuth2",v:"OAuth2"},{k:"SecureToken",v:"SecureToken"},{k:"ServiceToken",v:"ServiceToken"},{k:"ZimbraPreAuth",v:"ZimbraPreAuth"}],title:"vhostType",type:"select"},{get:t+"s/"+a+"/vhostAuthnLevel",id:t+"s/"+a+"/vhostAuthnLevel",title:"vhostAuthnLevel",type:"int"},{default:-1,get:t+"s/"+a+"/vhostServiceTokenTTL",id:t+"s/"+a+"/vhostServiceTokenTTL",title:"vhostServiceTokenTTL",type:"int"}],help:"configvhost.html#options",id:"vhostOptions",title:"vhostOptions",type:"simpleInputContainer"}];default:return[]}}function setScopeVars(t){t.portal=t.data[0]._nodes[0]._nodes[0],t.getKey(t.portal),t.domain=t.data[0]._nodes[4]._nodes[1],t.getKey(t.domain)} \ No newline at end of file +function templates(t,a){switch(t){case"casAppMetaDataNode":return[{cnodes:t+"s/"+a+"/casAppMetaDataExportedVars",default:[{data:"cn",id:t+"s/"+a+"/casAppMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"mail",id:t+"s/"+a+"/casAppMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"uid",id:t+"s/"+a+"/casAppMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/casAppMetaDataExportedVars",title:"casAppMetaDataExportedVars",type:"keyTextContainer"},{_nodes:[{get:t+"s/"+a+"/casAppMetaDataOptionsService",id:t+"s/"+a+"/casAppMetaDataOptionsService",title:"casAppMetaDataOptionsService"},{get:t+"s/"+a+"/casAppMetaDataOptionsUserAttribute",id:t+"s/"+a+"/casAppMetaDataOptionsUserAttribute",title:"casAppMetaDataOptionsUserAttribute"},{get:t+"s/"+a+"/casAppMetaDataOptionsRule",id:t+"s/"+a+"/casAppMetaDataOptionsRule",title:"casAppMetaDataOptionsRule"}],id:"casAppMetaDataOptions",title:"casAppMetaDataOptions",type:"simpleInputContainer"}];case"casSrvMetaDataNode":return[{cnodes:t+"s/"+a+"/casSrvMetaDataExportedVars",default:[{data:"cn",id:t+"s/"+a+"/casSrvMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"mail",id:t+"s/"+a+"/casSrvMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"uid",id:t+"s/"+a+"/casSrvMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/casSrvMetaDataExportedVars",title:"casSrvMetaDataExportedVars",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/casSrvMetaDataOptionsProxiedServices",id:t+"s/"+a+"/casSrvMetaDataOptionsProxiedServices",title:"casSrvMetaDataOptionsProxiedServices",type:"keyTextContainer"},{_nodes:[{get:t+"s/"+a+"/casSrvMetaDataOptionsUrl",id:t+"s/"+a+"/casSrvMetaDataOptionsUrl",title:"casSrvMetaDataOptionsUrl"},{default:0,get:t+"s/"+a+"/casSrvMetaDataOptionsRenew",id:t+"s/"+a+"/casSrvMetaDataOptionsRenew",title:"casSrvMetaDataOptionsRenew",type:"bool"},{default:0,get:t+"s/"+a+"/casSrvMetaDataOptionsGateway",id:t+"s/"+a+"/casSrvMetaDataOptionsGateway",title:"casSrvMetaDataOptionsGateway",type:"bool"}],id:"casSrvMetaDataOptions",title:"casSrvMetaDataOptions",type:"simpleInputContainer"},{_nodes:[{get:t+"s/"+a+"/casSrvMetaDataOptionsDisplayName",id:t+"s/"+a+"/casSrvMetaDataOptionsDisplayName",title:"casSrvMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/casSrvMetaDataOptionsIcon",id:t+"s/"+a+"/casSrvMetaDataOptionsIcon",title:"casSrvMetaDataOptionsIcon"},{get:t+"s/"+a+"/casSrvMetaDataOptionsSortNumber",id:t+"s/"+a+"/casSrvMetaDataOptionsSortNumber",title:"casSrvMetaDataOptionsSortNumber",type:"int"}],id:"casSrvMetaDataOptionsDisplay",title:"casSrvMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"oidcOPMetaDataNode":return[{get:t+"s/"+a+"/oidcOPMetaDataJSON",id:t+"s/"+a+"/oidcOPMetaDataJSON",title:"oidcOPMetaDataJSON",type:"file"},{get:t+"s/"+a+"/oidcOPMetaDataJWKS",id:t+"s/"+a+"/oidcOPMetaDataJWKS",title:"oidcOPMetaDataJWKS",type:"file"},{cnodes:t+"s/"+a+"/oidcOPMetaDataExportedVars",default:[{data:"name",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/cn",title:"cn",type:"keyText"},{data:"email",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/mail",title:"mail",type:"keyText"},{data:"family_name",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/sn",title:"sn",type:"keyText"},{data:"sub",id:t+"s/"+a+"/oidcOPMetaDataExportedVars/uid",title:"uid",type:"keyText"}],id:t+"s/"+a+"/oidcOPMetaDataExportedVars",title:"oidcOPMetaDataExportedVars",type:"keyTextContainer"},{_nodes:[{_nodes:[{get:t+"s/"+a+"/oidcOPMetaDataOptionsConfigurationURI",id:t+"s/"+a+"/oidcOPMetaDataOptionsConfigurationURI",title:"oidcOPMetaDataOptionsConfigurationURI"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsJWKSTimeout",id:t+"s/"+a+"/oidcOPMetaDataOptionsJWKSTimeout",title:"oidcOPMetaDataOptionsJWKSTimeout",type:"int"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsClientID",id:t+"s/"+a+"/oidcOPMetaDataOptionsClientID",title:"oidcOPMetaDataOptionsClientID"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsClientSecret",id:t+"s/"+a+"/oidcOPMetaDataOptionsClientSecret",title:"oidcOPMetaDataOptionsClientSecret",type:"password"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsStoreIDToken",id:t+"s/"+a+"/oidcOPMetaDataOptionsStoreIDToken",title:"oidcOPMetaDataOptionsStoreIDToken",type:"bool"}],id:"oidcOPMetaDataOptionsConfiguration",title:"oidcOPMetaDataOptionsConfiguration",type:"simpleInputContainer"},{_nodes:[{default:"openid profile",get:t+"s/"+a+"/oidcOPMetaDataOptionsScope",id:t+"s/"+a+"/oidcOPMetaDataOptionsScope",title:"oidcOPMetaDataOptionsScope"},{default:"",get:t+"s/"+a+"/oidcOPMetaDataOptionsDisplay",id:t+"s/"+a+"/oidcOPMetaDataOptionsDisplay",select:[{k:"",v:""},{k:"page",v:"page"},{k:"popup",v:"popup"},{k:"touch",v:"touch"},{k:"wap",v:"wap"}],title:"oidcOPMetaDataOptionsDisplay",type:"select"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsPrompt",id:t+"s/"+a+"/oidcOPMetaDataOptionsPrompt",title:"oidcOPMetaDataOptionsPrompt"},{default:0,get:t+"s/"+a+"/oidcOPMetaDataOptionsMaxAge",id:t+"s/"+a+"/oidcOPMetaDataOptionsMaxAge",title:"oidcOPMetaDataOptionsMaxAge",type:"int"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsUiLocales",id:t+"s/"+a+"/oidcOPMetaDataOptionsUiLocales",title:"oidcOPMetaDataOptionsUiLocales"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsAcrValues",id:t+"s/"+a+"/oidcOPMetaDataOptionsAcrValues",title:"oidcOPMetaDataOptionsAcrValues"},{default:"client_secret_post",get:t+"s/"+a+"/oidcOPMetaDataOptionsTokenEndpointAuthMethod",id:t+"s/"+a+"/oidcOPMetaDataOptionsTokenEndpointAuthMethod",select:[{k:"client_secret_post",v:"client_secret_post"},{k:"client_secret_basic",v:"client_secret_basic"}],title:"oidcOPMetaDataOptionsTokenEndpointAuthMethod",type:"select"},{default:1,get:t+"s/"+a+"/oidcOPMetaDataOptionsCheckJWTSignature",id:t+"s/"+a+"/oidcOPMetaDataOptionsCheckJWTSignature",title:"oidcOPMetaDataOptionsCheckJWTSignature",type:"bool"},{default:30,get:t+"s/"+a+"/oidcOPMetaDataOptionsIDTokenMaxAge",id:t+"s/"+a+"/oidcOPMetaDataOptionsIDTokenMaxAge",title:"oidcOPMetaDataOptionsIDTokenMaxAge",type:"int"},{default:1,get:t+"s/"+a+"/oidcOPMetaDataOptionsUseNonce",id:t+"s/"+a+"/oidcOPMetaDataOptionsUseNonce",title:"oidcOPMetaDataOptionsUseNonce",type:"bool"}],id:"oidcOPMetaDataOptionsProtocol",title:"oidcOPMetaDataOptionsProtocol",type:"simpleInputContainer"}],id:"oidcOPMetaDataOptions",title:"oidcOPMetaDataOptions"},{_nodes:[{get:t+"s/"+a+"/oidcOPMetaDataOptionsDisplayName",id:t+"s/"+a+"/oidcOPMetaDataOptionsDisplayName",title:"oidcOPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsIcon",id:t+"s/"+a+"/oidcOPMetaDataOptionsIcon",title:"oidcOPMetaDataOptionsIcon"},{get:t+"s/"+a+"/oidcOPMetaDataOptionsSortNumber",id:t+"s/"+a+"/oidcOPMetaDataOptionsSortNumber",title:"oidcOPMetaDataOptionsSortNumber",type:"int"}],id:"oidcOPMetaDataOptionsDisplayParams",title:"oidcOPMetaDataOptionsDisplayParams",type:"simpleInputContainer"}];case"oidcRPMetaDataNode":return[{cnodes:t+"s/"+a+"/oidcRPMetaDataExportedVars",default:[{data:"mail",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/email",title:"email",type:"keyText"},{data:"sn",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/family_name",title:"family_name",type:"keyText"},{data:"cn",id:t+"s/"+a+"/oidcRPMetaDataExportedVars/name",title:"name",type:"keyText"}],id:t+"s/"+a+"/oidcRPMetaDataExportedVars",title:"oidcRPMetaDataExportedVars",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/oidcRPMetaDataOptionsExtraClaims",default:[],id:t+"s/"+a+"/oidcRPMetaDataOptionsExtraClaims",title:"oidcRPMetaDataOptionsExtraClaims",type:"keyTextContainer"},{_nodes:[{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsClientID",id:t+"s/"+a+"/oidcRPMetaDataOptionsClientID",title:"oidcRPMetaDataOptionsClientID"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsClientSecret",id:t+"s/"+a+"/oidcRPMetaDataOptionsClientSecret",title:"oidcRPMetaDataOptionsClientSecret",type:"password"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsPublic",id:t+"s/"+a+"/oidcRPMetaDataOptionsPublic",title:"oidcRPMetaDataOptionsPublic",type:"bool"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsRequirePKCE",id:t+"s/"+a+"/oidcRPMetaDataOptionsRequirePKCE",title:"oidcRPMetaDataOptionsRequirePKCE",type:"bool"}],id:"oidcRPMetaDataOptionsAuthentication",title:"oidcRPMetaDataOptionsAuthentication",type:"simpleInputContainer"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsUserIDAttr",id:t+"s/"+a+"/oidcRPMetaDataOptionsUserIDAttr",title:"oidcRPMetaDataOptionsUserIDAttr"},{default:"HS512",get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenSignAlg",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenSignAlg",select:[{k:"none",v:"None"},{k:"HS256",v:"HS256"},{k:"HS384",v:"HS384"},{k:"HS512",v:"HS512"},{k:"RS256",v:"RS256"},{k:"RS384",v:"RS384"},{k:"RS512",v:"RS512"}],title:"oidcRPMetaDataOptionsIDTokenSignAlg",type:"select"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenExpiration",title:"oidcRPMetaDataOptionsIDTokenExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenForceClaims",id:t+"s/"+a+"/oidcRPMetaDataOptionsIDTokenForceClaims",title:"oidcRPMetaDataOptionsIDTokenForceClaims",type:"bool"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsAccessTokenExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsAccessTokenExpiration",title:"oidcRPMetaDataOptionsAccessTokenExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsAuthorizationCodeExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsAuthorizationCodeExpiration",title:"oidcRPMetaDataOptionsAuthorizationCodeExpiration",type:"int"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsAllowOffline",id:t+"s/"+a+"/oidcRPMetaDataOptionsAllowOffline",title:"oidcRPMetaDataOptionsAllowOffline",type:"bool"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsRefreshToken",id:t+"s/"+a+"/oidcRPMetaDataOptionsRefreshToken",title:"oidcRPMetaDataOptionsRefreshToken",type:"bool"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsOfflineSessionExpiration",id:t+"s/"+a+"/oidcRPMetaDataOptionsOfflineSessionExpiration",title:"oidcRPMetaDataOptionsOfflineSessionExpiration",type:"int"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsRedirectUris",id:t+"s/"+a+"/oidcRPMetaDataOptionsRedirectUris",title:"oidcRPMetaDataOptionsRedirectUris"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsBypassConsent",help:"openidconnectclaims.html",id:t+"s/"+a+"/oidcRPMetaDataOptionsBypassConsent",title:"oidcRPMetaDataOptionsBypassConsent",type:"bool"},{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsPostLogoutRedirectUris",id:t+"s/"+a+"/oidcRPMetaDataOptionsPostLogoutRedirectUris",title:"oidcRPMetaDataOptionsPostLogoutRedirectUris"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutUrl",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutUrl",title:"oidcRPMetaDataOptionsLogoutUrl"},{default:"front",get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutType",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutType",select:[{k:"front",v:"Front Channel"},{k:"back",v:"Back Channel"}],title:"oidcRPMetaDataOptionsLogoutType",type:"select"},{default:0,get:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutSessionRequired",id:t+"s/"+a+"/oidcRPMetaDataOptionsLogoutSessionRequired",title:"oidcRPMetaDataOptionsLogoutSessionRequired",type:"bool"}],id:"logout",title:"logout",type:"simpleInputContainer"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsRule",id:t+"s/"+a+"/oidcRPMetaDataOptionsRule",title:"oidcRPMetaDataOptionsRule"}],id:"oidcRPMetaDataOptions",title:"oidcRPMetaDataOptions"},{_nodes:[{get:t+"s/"+a+"/oidcRPMetaDataOptionsDisplayName",id:t+"s/"+a+"/oidcRPMetaDataOptionsDisplayName",title:"oidcRPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/oidcRPMetaDataOptionsIcon",id:t+"s/"+a+"/oidcRPMetaDataOptionsIcon",title:"oidcRPMetaDataOptionsIcon"}],id:"oidcRPMetaDataOptionsDisplay",title:"oidcRPMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"samlIDPMetaDataNode":return[{get:t+"s/"+a+"/samlIDPMetaDataXML",id:t+"s/"+a+"/samlIDPMetaDataXML",title:"samlIDPMetaDataXML",type:"file"},{cnodes:t+"s/"+a+"/samlIDPMetaDataExportedAttributes",default:[],help:"authsaml.html#exported_attributes",id:t+"s/"+a+"/samlIDPMetaDataExportedAttributes",title:"samlIDPMetaDataExportedAttributes",type:"samlAttributeContainer"},{_nodes:[{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAdaptSessionUtime",id:t+"s/"+a+"/samlIDPMetaDataOptionsAdaptSessionUtime",title:"samlIDPMetaDataOptionsAdaptSessionUtime",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsForceUTF8",id:t+"s/"+a+"/samlIDPMetaDataOptionsForceUTF8",title:"samlIDPMetaDataOptionsForceUTF8",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsStoreSAMLToken",id:t+"s/"+a+"/samlIDPMetaDataOptionsStoreSAMLToken",title:"samlIDPMetaDataOptionsStoreSAMLToken",type:"bool"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsUserAttribute",id:t+"s/"+a+"/samlIDPMetaDataOptionsUserAttribute",title:"samlIDPMetaDataOptionsUserAttribute"}],id:"samlIDPMetaDataOptionsSession",title:"samlIDPMetaDataOptionsSession",type:"simpleInputContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/samlIDPMetaDataOptionsSignSSOMessage",id:t+"s/"+a+"/samlIDPMetaDataOptionsSignSSOMessage",title:"samlIDPMetaDataOptionsSignSSOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSSOMessageSignature",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSSOMessageSignature",title:"samlIDPMetaDataOptionsCheckSSOMessageSignature",type:"bool"},{default:-1,get:t+"s/"+a+"/samlIDPMetaDataOptionsSignSLOMessage",id:t+"s/"+a+"/samlIDPMetaDataOptionsSignSLOMessage",title:"samlIDPMetaDataOptionsSignSLOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSLOMessageSignature",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckSLOMessageSignature",title:"samlIDPMetaDataOptionsCheckSLOMessageSignature",type:"bool"}],id:"samlIDPMetaDataOptionsSignature",title:"samlIDPMetaDataOptionsSignature",type:"simpleInputContainer"},{_nodes:[{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsSSOBinding",id:t+"s/"+a+"/samlIDPMetaDataOptionsSSOBinding",select:[{k:"",v:""},{k:"http-post",v:"POST"},{k:"http-redirect",v:"Redirect"},{k:"artifact-get",v:"Artifact GET"}],title:"samlIDPMetaDataOptionsSSOBinding",type:"select"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsSLOBinding",id:t+"s/"+a+"/samlIDPMetaDataOptionsSLOBinding",select:[{k:"",v:""},{k:"http-post",v:"POST"},{k:"http-redirect",v:"Redirect"},{k:"http-soap",v:"SOAP"}],title:"samlIDPMetaDataOptionsSLOBinding",type:"select"}],id:"samlIDPMetaDataOptionsBinding",title:"samlIDPMetaDataOptionsBinding",type:"simpleInputContainer"},{_nodes:[{default:"none",get:t+"s/"+a+"/samlIDPMetaDataOptionsEncryptionMode",id:t+"s/"+a+"/samlIDPMetaDataOptionsEncryptionMode",select:[{k:"none",v:"None"},{k:"nameid",v:"Name ID"},{k:"assertion",v:"Assertion"}],title:"samlIDPMetaDataOptionsEncryptionMode",type:"select"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckTime",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckTime",title:"samlIDPMetaDataOptionsCheckTime",type:"bool"},{default:1,get:t+"s/"+a+"/samlIDPMetaDataOptionsCheckAudience",id:t+"s/"+a+"/samlIDPMetaDataOptionsCheckAudience",title:"samlIDPMetaDataOptionsCheckAudience",type:"bool"}],id:"samlIDPMetaDataOptionsSecurity",title:"samlIDPMetaDataOptionsSecurity",type:"simpleInputContainer"},{_nodes:[{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsResolutionRule",id:t+"s/"+a+"/samlIDPMetaDataOptionsResolutionRule",title:"samlIDPMetaDataOptionsResolutionRule",type:"longtext"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsNameIDFormat",id:t+"s/"+a+"/samlIDPMetaDataOptionsNameIDFormat",select:[{k:"",v:""},{k:"unspecified",v:"Unspecified"},{k:"email",v:"Email"},{k:"x509",v:"X509 certificate"},{k:"windows",v:"Windows"},{k:"kerberos",v:"Kerberos"},{k:"entity",v:"Entity"},{k:"persistent",v:"Persistent"},{k:"transient",v:"Transient"},{k:"encrypted",v:"Encrypted"}],title:"samlIDPMetaDataOptionsNameIDFormat",type:"select"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsForceAuthn",id:t+"s/"+a+"/samlIDPMetaDataOptionsForceAuthn",title:"samlIDPMetaDataOptionsForceAuthn",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsIsPassive",id:t+"s/"+a+"/samlIDPMetaDataOptionsIsPassive",title:"samlIDPMetaDataOptionsIsPassive",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAllowProxiedAuthn",id:t+"s/"+a+"/samlIDPMetaDataOptionsAllowProxiedAuthn",title:"samlIDPMetaDataOptionsAllowProxiedAuthn",type:"bool"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsAllowLoginFromIDP",id:t+"s/"+a+"/samlIDPMetaDataOptionsAllowLoginFromIDP",title:"samlIDPMetaDataOptionsAllowLoginFromIDP",type:"bool"},{default:"",get:t+"s/"+a+"/samlIDPMetaDataOptionsRequestedAuthnContext",id:t+"s/"+a+"/samlIDPMetaDataOptionsRequestedAuthnContext",select:[{k:"",v:""},{k:"kerberos",v:"Kerberos"},{k:"password-protected-transport",v:"Password protected transport"},{k:"password",v:"Password"},{k:"tls-client",v:"TLS client certificate"}],title:"samlIDPMetaDataOptionsRequestedAuthnContext",type:"select"},{default:0,get:t+"s/"+a+"/samlIDPMetaDataOptionsRelayStateURL",id:t+"s/"+a+"/samlIDPMetaDataOptionsRelayStateURL",title:"samlIDPMetaDataOptionsRelayStateURL",type:"bool"}],help:"authsaml.html#options",id:"samlIDPMetaDataOptions",title:"samlIDPMetaDataOptions",type:"simpleInputContainer"},{_nodes:[{get:t+"s/"+a+"/samlIDPMetaDataOptionsDisplayName",id:t+"s/"+a+"/samlIDPMetaDataOptionsDisplayName",title:"samlIDPMetaDataOptionsDisplayName"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsIcon",id:t+"s/"+a+"/samlIDPMetaDataOptionsIcon",title:"samlIDPMetaDataOptionsIcon"},{get:t+"s/"+a+"/samlIDPMetaDataOptionsSortNumber",id:t+"s/"+a+"/samlIDPMetaDataOptionsSortNumber",title:"samlIDPMetaDataOptionsSortNumber",type:"int"}],id:"samlIDPMetaDataOptionsDisplay",title:"samlIDPMetaDataOptionsDisplay",type:"simpleInputContainer"}];case"samlSPMetaDataNode":return[{get:t+"s/"+a+"/samlSPMetaDataXML",id:t+"s/"+a+"/samlSPMetaDataXML",title:"samlSPMetaDataXML",type:"file"},{cnodes:t+"s/"+a+"/samlSPMetaDataExportedAttributes",default:[],help:"idpsaml.html#exported_attributes",id:t+"s/"+a+"/samlSPMetaDataExportedAttributes",title:"samlSPMetaDataExportedAttributes",type:"samlAttributeContainer"},{_nodes:[{_nodes:[{default:"",get:t+"s/"+a+"/samlSPMetaDataOptionsNameIDFormat",id:t+"s/"+a+"/samlSPMetaDataOptionsNameIDFormat",select:[{k:"",v:""},{k:"unspecified",v:"Unspecified"},{k:"email",v:"Email"},{k:"x509",v:"X509 certificate"},{k:"windows",v:"Windows"},{k:"kerberos",v:"Kerberos"},{k:"entity",v:"Entity"},{k:"persistent",v:"Persistent"},{k:"transient",v:"Transient"},{k:"encrypted",v:"Encrypted"}],title:"samlSPMetaDataOptionsNameIDFormat",type:"select"},{get:t+"s/"+a+"/samlSPMetaDataOptionsNameIDSessionKey",id:t+"s/"+a+"/samlSPMetaDataOptionsNameIDSessionKey",title:"samlSPMetaDataOptionsNameIDSessionKey"},{default:0,get:t+"s/"+a+"/samlSPMetaDataOptionsOneTimeUse",id:t+"s/"+a+"/samlSPMetaDataOptionsOneTimeUse",title:"samlSPMetaDataOptionsOneTimeUse",type:"bool"},{default:72e3,get:t+"s/"+a+"/samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",id:t+"s/"+a+"/samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",title:"samlSPMetaDataOptionsSessionNotOnOrAfterTimeout",type:"int"},{default:72e3,get:t+"s/"+a+"/samlSPMetaDataOptionsNotOnOrAfterTimeout",id:t+"s/"+a+"/samlSPMetaDataOptionsNotOnOrAfterTimeout",title:"samlSPMetaDataOptionsNotOnOrAfterTimeout",type:"int"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsForceUTF8",id:t+"s/"+a+"/samlSPMetaDataOptionsForceUTF8",title:"samlSPMetaDataOptionsForceUTF8",type:"bool"}],id:"samlSPMetaDataOptionsAuthnResponse",title:"samlSPMetaDataOptionsAuthnResponse",type:"simpleInputContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/samlSPMetaDataOptionsSignSSOMessage",id:t+"s/"+a+"/samlSPMetaDataOptionsSignSSOMessage",title:"samlSPMetaDataOptionsSignSSOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsCheckSSOMessageSignature",id:t+"s/"+a+"/samlSPMetaDataOptionsCheckSSOMessageSignature",title:"samlSPMetaDataOptionsCheckSSOMessageSignature",type:"bool"},{default:-1,get:t+"s/"+a+"/samlSPMetaDataOptionsSignSLOMessage",id:t+"s/"+a+"/samlSPMetaDataOptionsSignSLOMessage",title:"samlSPMetaDataOptionsSignSLOMessage",type:"trool"},{default:1,get:t+"s/"+a+"/samlSPMetaDataOptionsCheckSLOMessageSignature",id:t+"s/"+a+"/samlSPMetaDataOptionsCheckSLOMessageSignature",title:"samlSPMetaDataOptionsCheckSLOMessageSignature",type:"bool"}],id:"samlSPMetaDataOptionsSignature",title:"samlSPMetaDataOptionsSignature",type:"simpleInputContainer"},{_nodes:[{default:"none",get:t+"s/"+a+"/samlSPMetaDataOptionsEncryptionMode",id:t+"s/"+a+"/samlSPMetaDataOptionsEncryptionMode",select:[{k:"none",v:"None"},{k:"nameid",v:"Name ID"},{k:"assertion",v:"Assertion"}],title:"samlSPMetaDataOptionsEncryptionMode",type:"select"},{default:0,get:t+"s/"+a+"/samlSPMetaDataOptionsEnableIDPInitiatedURL",id:t+"s/"+a+"/samlSPMetaDataOptionsEnableIDPInitiatedURL",title:"samlSPMetaDataOptionsEnableIDPInitiatedURL",type:"bool"},{get:t+"s/"+a+"/samlSPMetaDataOptionsRule",id:t+"s/"+a+"/samlSPMetaDataOptionsRule",title:"samlSPMetaDataOptionsRule"}],id:"samlSPMetaDataOptionsSecurity",title:"samlSPMetaDataOptionsSecurity",type:"simpleInputContainer"}],help:"idpsaml.html#options",id:"samlSPMetaDataOptions",title:"samlSPMetaDataOptions"}];case"virtualHost":return[{cnodes:t+"s/"+a+"/locationRules",default:[{data:"deny",id:t+"s/"+a+"/locationRules/default",re:"default",title:"default",type:"rule"}],help:"writingrulesand_headers.html#rules",id:t+"s/"+a+"/locationRules",title:"locationRules",type:"ruleContainer"},{cnodes:t+"s/"+a+"/exportedHeaders",help:"writingrulesand_headers.html#headers",id:t+"s/"+a+"/exportedHeaders",title:"exportedHeaders",type:"keyTextContainer"},{cnodes:t+"s/"+a+"/post",help:"formreplay.html",id:t+"s/"+a+"/post",title:"post",type:"postContainer"},{_nodes:[{default:-1,get:t+"s/"+a+"/vhostPort",id:t+"s/"+a+"/vhostPort",title:"vhostPort",type:"int"},{default:-1,get:t+"s/"+a+"/vhostHttps",id:t+"s/"+a+"/vhostHttps",title:"vhostHttps",type:"trool"},{default:0,get:t+"s/"+a+"/vhostMaintenance",id:t+"s/"+a+"/vhostMaintenance",title:"vhostMaintenance",type:"bool"},{default:"",get:t+"s/"+a+"/vhostAliases",id:t+"s/"+a+"/vhostAliases",title:"vhostAliases"},{default:"Main",get:t+"s/"+a+"/vhostType",id:t+"s/"+a+"/vhostType",select:[{k:"AuthBasic",v:"AuthBasic"},{k:"CDA",v:"CDA"},{k:"DevOps",v:"DevOps"},{k:"DevOpsST",v:"DevOpsST"},{k:"Main",v:"Main"},{k:"OAuth2",v:"OAuth2"},{k:"SecureToken",v:"SecureToken"},{k:"ServiceToken",v:"ServiceToken"},{k:"ZimbraPreAuth",v:"ZimbraPreAuth"}],title:"vhostType",type:"select"},{get:t+"s/"+a+"/vhostAuthnLevel",id:t+"s/"+a+"/vhostAuthnLevel",title:"vhostAuthnLevel",type:"int"},{default:-1,get:t+"s/"+a+"/vhostServiceTokenTTL",id:t+"s/"+a+"/vhostServiceTokenTTL",title:"vhostServiceTokenTTL",type:"int"}],help:"configvhost.html#options",id:"vhostOptions",title:"vhostOptions",type:"simpleInputContainer"}];default:return[]}}function setScopeVars(t){t.portal=t.data[0]._nodes[0]._nodes[0],t.getKey(t.portal),t.domain=t.data[0]._nodes[4]._nodes[1],t.getKey(t.domain)} +//# sourceMappingURL=lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map b/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map index 5aa3a710a..a5307bdf1 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map +++ b/lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["lemonldap-ng-manager/site/htdocs/static/js/conftree.js"],"names":["templates","tpl","key","cnodes","default","data","id","title","type","_nodes","get","select","k","v","help","re","setScopeVars","scope","portal","getKey","domain"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["lemonldap-ng-manager/site/htdocs/static/js/conftree.js"],"names":["templates","tpl","key","cnodes","default","data","id","title","type","_nodes","get","select","k","v","help","re","setScopeVars","scope","portal","getKey","domain"],"mappings":"AAAA,QAASA,WAAUC,EAAIC,GASrB,OAAOD,GACP,IAAK,qBACH,QAEEE,OAAWF,EAAI,KAAKC,EAAI,8BACxBE,UAEMC,KAAS,KACTC,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,KACVC,KAAS,YAGTH,KAAS,OACTC,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,OACVC,KAAS,YAGTH,KAAS,MACTC,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,MACVC,KAAS,YAGfF,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,6BACVC,KAAS,qBAGTC,SAEMC,IAAQT,EAAI,KAAKC,EAAI,gCACrBI,GAAOL,EAAI,KAAKC,EAAI,gCACpBK,MAAU,iCAGVG,IAAQT,EAAI,KAAKC,EAAI,sCACrBI,GAAOL,EAAI,KAAKC,EAAI,sCACpBK,MAAU,uCAGVG,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGhBD,GAAO,wBACPC,MAAU,wBACVC,KAAS,wBAIb,KAAK,qBACH,QAEEL,OAAWF,EAAI,KAAKC,EAAI,8BACxBE,UAEMC,KAAS,KACTC,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,KACVC,KAAS,YAGTH,KAAS,OACTC,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,OACVC,KAAS,YAGTH,KAAS,MACTC,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,MACVC,KAAS,YAGfF,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,6BACVC,KAAS,qBAGTL,OAAWF,EAAI,KAAKC,EAAI,wCACxBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBK,MAAU,uCACVC,KAAS,qBAGTC,SAEMC,IAAQT,EAAI,KAAKC,EAAI,4BACrBI,GAAOL,EAAI,KAAKC,EAAI,4BACpBK,MAAU,6BAGVH,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,8BACrBI,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,6BACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,gCACrBI,GAAOL,EAAI,KAAKC,EAAI,gCACpBK,MAAU,+BACVC,KAAS,SAGfF,GAAO,wBACPC,MAAU,wBACVC,KAAS,yBAGTC,SAEMC,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,qCAGVG,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGVG,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,QAGfF,GAAO,+BACPC,MAAU,+BACVC,KAAS,wBAIb,KAAK,qBACH,QAEEE,IAAQT,EAAI,KAAKC,EAAI,sBACrBI,GAAOL,EAAI,KAAKC,EAAI,sBACpBK,MAAU,qBACVC,KAAS,SAGTE,IAAQT,EAAI,KAAKC,EAAI,sBACrBI,GAAOL,EAAI,KAAKC,EAAI,sBACpBK,MAAU,qBACVC,KAAS,SAGTL,OAAWF,EAAI,KAAKC,EAAI,8BACxBE,UAEMC,KAAS,OACTC,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,KACVC,KAAS,YAGTH,KAAS,QACTC,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,OACVC,KAAS,YAGTH,KAAS,cACTC,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,KACVC,KAAS,YAGTH,KAAS,MACTC,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,MACVC,KAAS,YAGfF,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,6BACVC,KAAS,qBAGTC,SAEMA,SAEMC,IAAQT,EAAI,KAAKC,EAAI,yCACrBI,GAAOL,EAAI,KAAKC,EAAI,yCACpBK,MAAU,0CAGVH,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,QAGTE,IAAQT,EAAI,KAAKC,EAAI,iCACrBI,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,kCAGVG,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,aAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,SAGfF,GAAO,qCACPC,MAAU,qCACVC,KAAS,yBAGTC,SAEML,QAAY,iBACZM,IAAQT,EAAI,KAAKC,EAAI,8BACrBI,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,+BAGVH,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,gCACrBI,GAAOL,EAAI,KAAKC,EAAI,gCACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,OACNC,EAAM,SAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGND,EAAM,MACNC,EAAM,QAGZN,MAAU,+BACVC,KAAS,WAGTE,IAAQT,EAAI,KAAKC,EAAI,+BACrBI,GAAOL,EAAI,KAAKC,EAAI,+BACpBK,MAAU,gCAGVH,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,+BACrBI,GAAOL,EAAI,KAAKC,EAAI,+BACpBK,MAAU,8BACVC,KAAS,QAGTE,IAAQT,EAAI,KAAKC,EAAI,kCACrBI,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,mCAGVG,IAAQT,EAAI,KAAKC,EAAI,kCACrBI,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,mCAGVH,QAAY,qBACZM,IAAQT,EAAI,KAAKC,EAAI,gDACrBI,GAAOL,EAAI,KAAKC,EAAI,gDACpBS,SAEMC,EAAM,qBACNC,EAAM,uBAGND,EAAM,sBACNC,EAAM,wBAGZN,MAAU,+CACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,0CACrBI,GAAOL,EAAI,KAAKC,EAAI,0CACpBK,MAAU,yCACVC,KAAS,SAGTJ,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,sCACrBI,GAAOL,EAAI,KAAKC,EAAI,sCACpBK,MAAU,qCACVC,KAAS,QAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,iCACrBI,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,gCACVC,KAAS,SAGfF,GAAO,gCACPC,MAAU,gCACVC,KAAS,yBAGfF,GAAO,wBACPC,MAAU,0BAGVE,SAEMC,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,qCAGVG,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGVG,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,QAGfF,GAAO,qCACPC,MAAU,qCACVC,KAAS,wBAIb,KAAK,qBACH,QAEEL,OAAWF,EAAI,KAAKC,EAAI,8BACxBE,UAEMC,KAAS,OACTC,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,QACVC,KAAS,YAGTH,KAAS,KACTC,GAAOL,EAAI,KAAKC,EAAI,0CACpBK,MAAU,cACVC,KAAS,YAGTH,KAAS,KACTC,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,OACVC,KAAS,YAGfF,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,6BACVC,KAAS,qBAGTL,OAAWF,EAAI,KAAKC,EAAI,oCACxBE,WACAE,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,qBAGTC,SAEMA,SAEMC,IAAQT,EAAI,KAAKC,EAAI,iCACrBI,GAAOL,EAAI,KAAKC,EAAI,iCACpBK,MAAU,kCAGVG,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,aAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,+BACrBI,GAAOL,EAAI,KAAKC,EAAI,+BACpBK,MAAU,8BACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,SAGfF,GAAO,sCACPC,MAAU,sCACVC,KAAS,yBAGTE,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,oCAGVH,QAAY,QACZM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBS,SAEMC,EAAM,OACNC,EAAM,SAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGND,EAAM,QACNC,EAAM,UAGZN,MAAU,sCACVC,KAAS,WAGTE,IAAQT,EAAI,KAAKC,EAAI,0CACrBI,GAAOL,EAAI,KAAKC,EAAI,0CACpBK,MAAU,yCACVC,KAAS,QAGTE,IAAQT,EAAI,KAAKC,EAAI,2CACrBI,GAAOL,EAAI,KAAKC,EAAI,2CACpBK,MAAU,0CACVC,KAAS,SAGTE,IAAQT,EAAI,KAAKC,EAAI,8CACrBI,GAAOL,EAAI,KAAKC,EAAI,8CACpBK,MAAU,6CACVC,KAAS,QAGTE,IAAQT,EAAI,KAAKC,EAAI,oDACrBI,GAAOL,EAAI,KAAKC,EAAI,oDACpBK,MAAU,mDACVC,KAAS,QAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,SAGTE,IAAQT,EAAI,KAAKC,EAAI,iDACrBI,GAAOL,EAAI,KAAKC,EAAI,iDACpBK,MAAU,gDACVC,KAAS,QAGTE,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,sCAGVH,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,sCACrBY,KAAS,2BACTR,GAAOL,EAAI,KAAKC,EAAI,sCACpBK,MAAU,qCACVC,KAAS,SAGTC,SAEMC,IAAQT,EAAI,KAAKC,EAAI,+CACrBI,GAAOL,EAAI,KAAKC,EAAI,+CACpBK,MAAU,gDAGVG,IAAQT,EAAI,KAAKC,EAAI,kCACrBI,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,mCAGVH,QAAY,QACZM,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBS,SAEMC,EAAM,QACNC,EAAM,kBAGND,EAAM,OACNC,EAAM,iBAGZN,MAAU,kCACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,8CACrBI,GAAOL,EAAI,KAAKC,EAAI,8CACpBK,MAAU,6CACVC,KAAS,SAGfF,GAAO,SACPC,MAAU,SACVC,KAAS,yBAGTE,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGhBD,GAAO,wBACPC,MAAU,0BAGVE,SAEMC,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,qCAGVG,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGhBD,GAAO,+BACPC,MAAU,+BACVC,KAAS,wBAIb,KAAK,sBACH,QAEEE,IAAQT,EAAI,KAAKC,EAAI,sBACrBI,GAAOL,EAAI,KAAKC,EAAI,sBACpBK,MAAU,qBACVC,KAAS,SAGTL,OAAWF,EAAI,KAAKC,EAAI,qCACxBE,WACAU,KAAS,oCACTR,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,oCACVC,KAAS,2BAGTC,SAEML,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,2CACrBI,GAAOL,EAAI,KAAKC,EAAI,2CACpBK,MAAU,0CACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,wCACrBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBK,MAAU,uCACVC,KAAS,SAGTE,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBK,MAAU,wCAGhBD,GAAO,gCACPC,MAAU,gCACVC,KAAS,yBAGTC,SAEML,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,wCACrBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBK,MAAU,uCACVC,KAAS,UAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,kDACrBI,GAAOL,EAAI,KAAKC,EAAI,kDACpBK,MAAU,iDACVC,KAAS,SAGTJ,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,wCACrBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBK,MAAU,uCACVC,KAAS,UAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,kDACrBI,GAAOL,EAAI,KAAKC,EAAI,kDACpBK,MAAU,iDACVC,KAAS,SAGfF,GAAO,kCACPC,MAAU,kCACVC,KAAS,yBAGTC,SAEML,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,YACNC,EAAM,SAGND,EAAM,gBACNC,EAAM,aAGND,EAAM,eACNC,EAAM,iBAGZN,MAAU,mCACVC,KAAS,WAGTJ,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,YACNC,EAAM,SAGND,EAAM,gBACNC,EAAM,aAGND,EAAM,YACNC,EAAM,SAGZN,MAAU,mCACVC,KAAS,WAGfF,GAAO,gCACPC,MAAU,gCACVC,KAAS,yBAGTC,SAEML,QAAY,OACZM,IAAQT,EAAI,KAAKC,EAAI,wCACrBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBS,SAEMC,EAAM,OACNC,EAAM,SAGND,EAAM,SACNC,EAAM,YAGND,EAAM,YACNC,EAAM,cAGZN,MAAU,uCACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBK,MAAU,sCACVC,KAAS,SAGfF,GAAO,iCACPC,MAAU,iCACVC,KAAS,yBAGTC,SAEML,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,wCACrBI,GAAOL,EAAI,KAAKC,EAAI,wCACpBK,MAAU,uCACVC,KAAS,aAGTJ,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,sCACrBI,GAAOL,EAAI,KAAKC,EAAI,sCACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,cACNC,EAAM,gBAGND,EAAM,QACNC,EAAM,UAGND,EAAM,OACNC,EAAM,qBAGND,EAAM,UACNC,EAAM,YAGND,EAAM,WACNC,EAAM,aAGND,EAAM,SACNC,EAAM,WAGND,EAAM,aACNC,EAAM,eAGND,EAAM,YACNC,EAAM,cAGND,EAAM,YACNC,EAAM,cAGZN,MAAU,qCACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,2CACrBI,GAAOL,EAAI,KAAKC,EAAI,2CACpBK,MAAU,0CACVC,KAAS,SAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,2CACrBI,GAAOL,EAAI,KAAKC,EAAI,2CACpBK,MAAU,0CACVC,KAAS,SAGTJ,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,+CACrBI,GAAOL,EAAI,KAAKC,EAAI,+CACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,WACNC,EAAM,aAGND,EAAM,+BACNC,EAAM,iCAGND,EAAM,WACNC,EAAM,aAGND,EAAM,aACNC,EAAM,2BAGZN,MAAU,8CACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBK,MAAU,sCACVC,KAAS,SAGfM,KAAS,wBACTR,GAAO,yBACPC,MAAU,yBACVC,KAAS,yBAGTC,SAEMC,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBK,MAAU,sCAGVG,IAAQT,EAAI,KAAKC,EAAI,8BACrBI,GAAOL,EAAI,KAAKC,EAAI,8BACpBK,MAAU,+BAGVG,IAAQT,EAAI,KAAKC,EAAI,oCACrBI,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,QAGfF,GAAO,gCACPC,MAAU,gCACVC,KAAS,wBAIb,KAAK,qBACH,QAEEE,IAAQT,EAAI,KAAKC,EAAI,qBACrBI,GAAOL,EAAI,KAAKC,EAAI,qBACpBK,MAAU,oBACVC,KAAS,SAGTL,OAAWF,EAAI,KAAKC,EAAI,oCACxBE,WACAU,KAAS,mCACTR,GAAOL,EAAI,KAAKC,EAAI,oCACpBK,MAAU,mCACVC,KAAS,2BAGTC,SAEMA,SAEML,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,qCACrBI,GAAOL,EAAI,KAAKC,EAAI,qCACpBS,SAEMC,EAAM,GACNC,EAAM,KAGND,EAAM,cACNC,EAAM,gBAGND,EAAM,QACNC,EAAM,UAGND,EAAM,OACNC,EAAM,qBAGND,EAAM,UACNC,EAAM,YAGND,EAAM,WACNC,EAAM,aAGND,EAAM,SACNC,EAAM,WAGND,EAAM,aACNC,EAAM,eAGND,EAAM,YACNC,EAAM,cAGND,EAAM,YACNC,EAAM,cAGZN,MAAU,oCACVC,KAAS,WAGTE,IAAQT,EAAI,KAAKC,EAAI,yCACrBI,GAAOL,EAAI,KAAKC,EAAI,yCACpBK,MAAU,0CAGVH,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,mCACrBI,GAAOL,EAAI,KAAKC,EAAI,mCACpBK,MAAU,kCACVC,KAAS,SAGTJ,QAAY,KACZM,IAAQT,EAAI,KAAKC,EAAI,mDACrBI,GAAOL,EAAI,KAAKC,EAAI,mDACpBK,MAAU,kDACVC,KAAS,QAGTJ,QAAY,KACZM,IAAQT,EAAI,KAAKC,EAAI,4CACrBI,GAAOL,EAAI,KAAKC,EAAI,4CACpBK,MAAU,2CACVC,KAAS,QAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,kCACrBI,GAAOL,EAAI,KAAKC,EAAI,kCACpBK,MAAU,iCACVC,KAAS,SAGfF,GAAO,qCACPC,MAAU,qCACVC,KAAS,yBAGTC,SAEML,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBK,MAAU,sCACVC,KAAS,UAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,iDACrBI,GAAOL,EAAI,KAAKC,EAAI,iDACpBK,MAAU,gDACVC,KAAS,SAGTJ,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBK,MAAU,sCACVC,KAAS,UAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,iDACrBI,GAAOL,EAAI,KAAKC,EAAI,iDACpBK,MAAU,gDACVC,KAAS,SAGfF,GAAO,iCACPC,MAAU,iCACVC,KAAS,yBAGTC,SAEML,QAAY,OACZM,IAAQT,EAAI,KAAKC,EAAI,uCACrBI,GAAOL,EAAI,KAAKC,EAAI,uCACpBS,SAEMC,EAAM,OACNC,EAAM,SAGND,EAAM,SACNC,EAAM,YAGND,EAAM,YACNC,EAAM,cAGZN,MAAU,sCACVC,KAAS,WAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,8CACrBI,GAAOL,EAAI,KAAKC,EAAI,8CACpBK,MAAU,6CACVC,KAAS,SAGTE,IAAQT,EAAI,KAAKC,EAAI,6BACrBI,GAAOL,EAAI,KAAKC,EAAI,6BACpBK,MAAU,8BAGhBD,GAAO,gCACPC,MAAU,gCACVC,KAAS,yBAGfM,KAAS,uBACTR,GAAO,wBACPC,MAAU,yBAId,KAAK,cACH,QAEEJ,OAAWF,EAAI,KAAKC,EAAI,iBACxBE,UAEMC,KAAS,OACTC,GAAOL,EAAI,KAAKC,EAAI,yBACpBa,GAAO,UACPR,MAAU,UACVC,KAAS,SAGfM,KAAS,qCACTR,GAAOL,EAAI,KAAKC,EAAI,iBACpBK,MAAU,gBACVC,KAAS,kBAGTL,OAAWF,EAAI,KAAKC,EAAI,mBACxBY,KAAS,uCACTR,GAAOL,EAAI,KAAKC,EAAI,mBACpBK,MAAU,kBACVC,KAAS,qBAGTL,OAAWF,EAAI,KAAKC,EAAI,QACxBY,KAAS,kBACTR,GAAOL,EAAI,KAAKC,EAAI,QACpBK,MAAU,OACVC,KAAS,kBAGTC,SAEML,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,aACrBI,GAAOL,EAAI,KAAKC,EAAI,aACpBK,MAAU,YACVC,KAAS,QAGTJ,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,cACrBI,GAAOL,EAAI,KAAKC,EAAI,cACpBK,MAAU,aACVC,KAAS,UAGTJ,QAAY,EACZM,IAAQT,EAAI,KAAKC,EAAI,oBACrBI,GAAOL,EAAI,KAAKC,EAAI,oBACpBK,MAAU,mBACVC,KAAS,SAGTJ,QAAY,GACZM,IAAQT,EAAI,KAAKC,EAAI,gBACrBI,GAAOL,EAAI,KAAKC,EAAI,gBACpBK,MAAU,iBAGVH,QAAY,OACZM,IAAQT,EAAI,KAAKC,EAAI,aACrBI,GAAOL,EAAI,KAAKC,EAAI,aACpBS,SAEMC,EAAM,YACNC,EAAM,cAGND,EAAM,MACNC,EAAM,QAGND,EAAM,SACNC,EAAM,WAGND,EAAM,WACNC,EAAM,aAGND,EAAM,OACNC,EAAM,SAGND,EAAM,SACNC,EAAM,WAGND,EAAM,cACNC,EAAM,gBAGND,EAAM,eACNC,EAAM,iBAGND,EAAM,gBACNC,EAAM,kBAGZN,MAAU,YACVC,KAAS,WAGTE,IAAQT,EAAI,KAAKC,EAAI,mBACrBI,GAAOL,EAAI,KAAKC,EAAI,mBACpBK,MAAU,kBACVC,KAAS,QAGTJ,SAAa,EACbM,IAAQT,EAAI,KAAKC,EAAI,wBACrBI,GAAOL,EAAI,KAAKC,EAAI,wBACpBK,MAAU,uBACVC,KAAS,QAGfM,KAAS,2BACTR,GAAO,eACPC,MAAU,eACVC,KAAS,wBAIb,SACE,UAIJ,QAASQ,cAAaC,GACpBA,EAAMC,OAASD,EAAMZ,KAAK,GAAGI,OAAO,GAAGA,OAAO,GAC9CQ,EAAME,OAAOF,EAAMC,QACnBD,EAAMG,OAASH,EAAMZ,KAAK,GAAGI,OAAO,GAAGA,OAAO,GAC9CQ,EAAME,OAAOF,EAAMG","file":"lemonldap-ng-manager/site/htdocs/static/js/conftree.min.js"} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/js/sessions.js b/lemonldap-ng-manager/site/htdocs/static/js/sessions.js index fc4a5d127..d1ebc0ad6 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/sessions.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/sessions.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.7 +// Generated by CoffeeScript 1.12.8 /* * Sessions explorer @@ -83,7 +83,7 @@ overScheme = { _whatToTrace: function(t, v, level, over) { - console.log('overSchema => level', level, 'over', over); + console.log('overScheme => level', level, 'over', over); if (level === 1 && v.length > over) { return t + "=" + v + "*&groupBy=substr(" + t + "," + (level + over + 1) + ")"; } else { @@ -91,7 +91,7 @@ } }, ipAddr: function(t, v, level, over) { - console.log('overSchema => level', level, 'over', over); + console.log('overScheme => level', level, 'over', over); if (level > 0 && level < 4 && !v.match(/^\d+\.\d/) && over < 2) { return t + "=" + v + "*&groupBy=net(" + t + "," + (16 * level + 4 * (over + 1)) + "," + (1 + level + over) + ")"; } else { @@ -99,7 +99,7 @@ } }, _startTime: function(t, v, level, over) { - console.log('overSchema => level', level, 'over', over); + console.log('overScheme => level', level, 'over', over); if (level > 3) { return t + "=" + v + "*&groupBy=substr(" + t + "," + (10 + level + over) + ")"; } else { @@ -107,7 +107,7 @@ } }, _session_uid: function(t, v, level, over) { - console.log('overSchema => level', level, 'over', over); + console.log('overScheme => level', level, 'over', over); if (level === 1 && v.length > over) { return t + "=" + v + "*&groupBy=substr(" + t + "," + (level + over + 1) + ")"; } else { diff --git a/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js b/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js index fd4883d32..30d7af55a 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js @@ -1 +1,2 @@ -(function(){var M,s,f,h;h={_whatToTrace:[function(e,t){return"groupBy=substr("+e+",1)"},function(e,t){return e+"="+t+"*&groupBy="+e},function(e,t){return e+"="+t}],ipAddr:[function(e,t){return"groupBy=net("+e+",16,1)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",32,2)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",48,3)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",128,4)"},function(e,t){return e+"="+t+"&groupBy=_whatToTrace"},function(e,t,n){return n.replace(/\&groupBy.*$/,"")+"&_whatToTrace="+t}],_startTime:[function(e,t){return"groupBy=substr("+e+",8)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",10)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",11)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",12)"},function(e,t){return e+"="+t+"*&groupBy=_whatToTrace"},function(e,t,n){return console.log(e),console.log(t),console.log(n),n.replace(/\&groupBy.*$/,"")+"&_whatToTrace="+t}],doubleIp:[function(e,t){return e},function(e,t){return"_whatToTrace="+t+"&groupBy=ipAddr"},function(e,t,n){return n.replace(/\&groupBy.*$/,"")+"&ipAddr="+t}],_session_uid:[function(e,t){return"groupBy=substr("+e+",1)"},function(e,t){return e+"="+t+"*&groupBy="+e},function(e,t){return e+"="+t}]},f={_whatToTrace:function(e,t,n,o){return console.log("overSchema => level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null},ipAddr:function(e,t,n,o){return console.log("overSchema => level",n,"over",o),0 level",n,"over",o),3 level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null}},M={dateTitle:["_utime","_startTime","_updateTime","_lastAuthnUTime","_lastSeen"],connectionTitle:["ipAddr","_timezone","_url"],authenticationTitle:["_session_id","_user","_password","authenticationLevel"],modulesTitle:["_auth","_userDB","_passwordDB","_issuerDB","_authChoice","_authMulti","_userDBMulti"],saml:["_idp","_idpConfKey","_samlToken","_lassoSessionDump","_lassoIdentityDump"],groups:["groups","hGroups"],ldap:["dn"],BrowserID:["_browserIdAnswer","_browserIdAnswerRaw"],OpenIDConnect:["_oidc_id_token","_oidc_OP","_oidc_access_token"],sfaTitle:["_2fDevices"],oidcConsents:["_oidcConsents"]},s={session:[{title:"deleteSession",icon:"trash"}],home:[]},angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]).controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(H,t,i,e,o){var d,n,r,g;return H.links=links,H.menulinks=menulinks,H.staticPrefix=staticPrefix,H.scriptname=scriptname,H.formPrefix=formPrefix,H.impPrefix=impPrefix,H.sessionTTL=sessionTTL,H.availableLanguages=availableLanguages,H.waiting=!0,H.showM=!1,H.showT=!0,H.data=[],H.currentScope=null,H.currentSession=null,H.menu=s,H.translateP=t.translateP,H.translate=t.translate,H.translateTitle=function(e){return t.translateField(e,"title")},g="global",H.menuClick=function(e){if(e.popup)window.open(e.popup);else switch(e.action||(e.action=e.title),typeof e.action){case"function":e.action(H.currentNode,H);break;case"string":H[e.action]();break;default:console.log(typeof e.action)}return H.showM=!1},H.deleteOIDCConsent=function(e,t){return angular.element(".data-"+t).remove(),H.waiting=!0,o.delete(scriptname+"sessions/OIDCConsent/"+g+"/"+H.currentSession.id+"?rp="+e+"&epoch="+t).then(function(e){return H.waiting=!1},function(e){return H.waiting=!1}),H.showT=!1},H.deleteSession=function(){return H.waiting=!0,o.delete(scriptname+"sessions/"+g+"/"+H.currentSession.id).then(function(e){return H.currentSession=null,H.currentScope.remove(),H.waiting=!1},function(e){return H.currentSession=null,H.currentScope.remove(),H.waiting=!1})},H.stoggle=function(e){var t;return 0===(t=e.$modelValue).nodes.length&&H.updateTree(t.value,t.nodes,t.level,t.over,t.query,t.count),e.toggle()},H.displaySession=function(e){var t,n;return n=function(s){var e,t,n,o,r,i,u,l,a,c,p,d,g,f,h,_,m,T,y,w,v,S,$,B,b,D,L,A,P,x,C,I,k,O,R,E;for(g in e=function(e,t){var n,o,r,i;for(n in r=[],o=new RegExp(e),s)i=s[n],n.match(o)&&i&&(r.push({title:n,value:i}),delete s[n]);if(0t.title?1:e.title real attribute"),D.push(u)):C.push(u);return R=C.concat(D),P.push({title:"__attributesAndMacros__",nodes:R}),{_utime:k,id:c,nodes:P}},t=(H.currentScope=e).$modelValue.session,o.get(scriptname+"sessions/"+g+"/"+t).then(function(e){return H.currentSession=n(e.data)}),H.showT=!1},H.localeDate=function(e){return new Date(1e3*e).toLocaleString()},H.isValid=function(e,t){var n,o,r;return r=i.path(),o=Date.now()/1e3,console.log("Path",r),console.log("Session epoch",e),console.log("Current date",o),console.log("Session TTL",sessionTTL),n=o-e level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null},ipAddr:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),n>0&&n<4&&!t.match(/^\d+\.\d/)&&o<2?e+"="+t+"*&groupBy=net("+e+","+(16*n+4*(o+1))+","+(1+n+o)+")":null},_startTime:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),n>3?e+"="+t+"*&groupBy=substr("+e+","+(10+n+o)+")":null},_session_uid:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null}},t="_password",e={dateTitle:["_utime","_startTime","_updateTime","_lastAuthnUTime","_lastSeen"],connectionTitle:["ipAddr","_timezone","_url"],authenticationTitle:["_session_id","_user","_password","authenticationLevel"],modulesTitle:["_auth","_userDB","_passwordDB","_issuerDB","_authChoice","_authMulti","_userDBMulti"],saml:["_idp","_idpConfKey","_samlToken","_lassoSessionDump","_lassoIdentityDump"],groups:["groups","hGroups"],ldap:["dn"],BrowserID:["_browserIdAnswer","_browserIdAnswerRaw"],OpenIDConnect:["_oidc_id_token","_oidc_OP","_oidc_access_token"],sfaTitle:["_2fDevices"],oidcConsents:["_oidcConsents"]},r={session:[{title:"deleteSession",icon:"trash"}],home:[]},n=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]),n.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(n,u,l,a,c){var p,d,g,f;return n.links=links,n.menulinks=menulinks,n.staticPrefix=staticPrefix,n.scriptname=scriptname,n.formPrefix=formPrefix,n.impPrefix=impPrefix,n.sessionTTL=sessionTTL,n.availableLanguages=availableLanguages,n.waiting=!0,n.showM=!1,n.showT=!0,n.data=[],n.currentScope=null,n.currentSession=null,n.menu=r,n.translateP=u.translateP,n.translate=u.translate,n.translateTitle=function(e){return u.translateField(e,"title")},f="global",n.menuClick=function(e){if(e.popup)window.open(e.popup);else switch(e.action||(e.action=e.title),typeof e.action){case"function":e.action(n.currentNode,n);break;case"string":n[e.action]();break;default:console.log(typeof e.action)}return n.showM=!1},n.deleteOIDCConsent=function(e,t){var o;return o=angular.element(".data-"+t),o.remove(),n.waiting=!0,c.delete(scriptname+"sessions/OIDCConsent/"+f+"/"+n.currentSession.id+"?rp="+e+"&epoch="+t).then(function(e){return n.waiting=!1},function(e){return n.waiting=!1}),n.showT=!1},n.deleteSession=function(){return n.waiting=!0,c.delete(scriptname+"sessions/"+f+"/"+n.currentSession.id).then(function(e){return n.currentSession=null,n.currentScope.remove(),n.waiting=!1},function(e){return n.currentSession=null,n.currentScope.remove(),n.waiting=!1})},n.stoggle=function(e){var t;return t=e.$modelValue,0===t.nodes.length&&n.updateTree(t.value,t.nodes,t.level,t.over,t.query,t.count),e.toggle()},n.displaySession=function(o){var r,i;return i=function(o){var r,i,s,u,l,a,c,p,d,g,f,h,_,m,T,y,w,v,S,$,B,b,D,L,A,P,x,C,I,k,O,R,E,H,M,U;r=function(e,t){var n,r,i,s;i=[],r=new RegExp(e);for(n in o)s=o[n],n.match(r)&&s&&(i.push({title:n,value:s}),delete o[n]);if(i.length>0)return I.push({title:t,nodes:i})},E=o._utime,g=o._session_id;for(_ in o)U=o[_],U?("string"==typeof o&&U.match(/; /)&&(o[_]=U.split("; ")),"object"!=typeof o[_]&&(t.match(new RegExp("\b"+_+"\b"))?o[_]="********":_.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)?o[_]=n.localeDate(U):_.match(/^(_startTime|_updateTime)$/)&&(o[_]=n.strToLocaleDate(U)))):delete o[_];I=[];for(l in e){for(u=e[l],R=[],d=0,T=u.length;d0&&I.push({title:"__"+l+"__",nodes:R})}if(r("^openid","OpenID"),r("^notification_(.+)","__notificationsDone__"),o._loginHistory){if(M=[],o._loginHistory.successLogin)for(x=o._loginHistory.successLogin,B=0,v=x.length;Bt.title?1:e.title real attribute"),P.push(c)):O.push(c);return M=O.concat(P),I.push({title:"__attributesAndMacros__",nodes:M}),{_utime:E,id:g,nodes:I}},n.currentScope=o,r=o.$modelValue.session,c.get(scriptname+"sessions/"+f+"/"+r).then(function(e){return n.currentSession=i(e.data)}),n.showT=!1},n.localeDate=function(e){var t;return t=new Date(1e3*e),t.toLocaleString()},n.isValid=function(e,t){var n,o,r;return r=l.path(),o=Date.now()/1e3,console.log("Path",r),console.log("Session epoch",e),console.log("Current date",o),console.log("Session TTL",sessionTTL),n=o-eo&&i[n.type]&&(h=i[n.type](n.type,e,r,u,l))?(u++,d=h,r-=1):u=0,c.get(scriptname+"sessions/"+f+"?"+d).then(function(o){var i,s,l,a,c;if(i=o.data,i.result){for(c=i.values,s=0,l=c.length;s Date: Wed, 20 Nov 2019 20:43:55 +0100 Subject: [PATCH 8/9] Don't fail when parsing a bad session (#1983) --- .../lib/Lemonldap/NG/Common/Apache/Session.pm | 96 +++++++++++-------- 1 file changed, 57 insertions(+), 39 deletions(-) diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Apache/Session.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Apache/Session.pm index 8b4e318e1..2ac64fefc 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Apache/Session.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Apache/Session.pm @@ -219,18 +219,24 @@ sub _dbiGKFAS { $sth->execute; my %res; while ( my @row = $sth->fetchrow_array ) { - if ( ref($data) eq 'CODE' ) { - my $tmp = - &$data( $args->{unserialize}->( $row[1], $next ), $row[0] ); - $res{ $row[0] } = $tmp if ( defined($tmp) ); - } - elsif ($data) { - $data = [$data] unless ( ref($data) ); - my $tmp = $args->{unserialize}->( $row[1], $next ); - $res{ $row[0] }->{$_} = $tmp->{$_} foreach (@$data); - } - else { - $res{ $row[0] } = $args->{unserialize}->( $row[1], $next ); + eval { + if ( ref($data) eq 'CODE' ) { + my $tmp = + &$data( $args->{unserialize}->( $row[1], $next ), $row[0] ); + $res{ $row[0] } = $tmp if ( defined($tmp) ); + } + elsif ($data) { + $data = [$data] unless ( ref($data) ); + my $tmp = $args->{unserialize}->( $row[1], $next ); + $res{ $row[0] }->{$_} = $tmp->{$_} foreach (@$data); + } + else { + $res{ $row[0] } = $args->{unserialize}->( $row[1], $next ); + } + }; + if ($@) { + print STDERR "Error in session $row[0]\n"; + delete $res{ $row[0] }; } } return \%res; @@ -249,26 +255,32 @@ sub _FileGKFAS { my %res; for my $f (@t) { open F, '<', "$args->{Directory}/$f"; - my $row = join '', ; - if ( ref($data) eq 'CODE' ) { - eval { $res{$f} = &$data( $args->{unserialize}->($row), $f ); }; - if ($@) { - $res{$f} = &$data( undef, $f ); + eval { + my $row = join '', ; + if ( ref($data) eq 'CODE' ) { + eval { $res{$f} = &$data( $args->{unserialize}->($row), $f ); }; + if ($@) { + $res{$f} = &$data( undef, $f ); + } } - } - elsif ($data) { - $data = [$data] unless ( ref($data) ); - my $tmp; - eval { $tmp = $args->{unserialize}->($row); }; - if ($@) { - $res{$f}->{$_} = undef foreach (@$data); + elsif ($data) { + $data = [$data] unless ( ref($data) ); + my $tmp; + eval { $tmp = $args->{unserialize}->($row); }; + if ($@) { + $res{$f}->{$_} = undef foreach (@$data); + } + else { + $res{$f}->{$_} = $tmp->{$_} foreach (@$data); + } } else { - $res{$f}->{$_} = $tmp->{$_} foreach (@$data); + eval { $res{$f} = $args->{unserialize}->($row); }; } - } - else { - eval { $res{$f} = $args->{unserialize}->($row); }; + }; + if ($@) { + print STDERR "Error in session $f\n"; + delete $res{$f}; } } return \%res; @@ -318,17 +330,23 @@ sub _DBFileGKFAS { my %res; foreach my $k ( keys %{ $class->{dbm} } ) { - if ( ref($data) eq 'CODE' ) { - $res{$k} = - &$data( $args->{unserialize}->( $class->{dbm}->{$k} ), $k ); - } - elsif ($data) { - $data = [$data] unless ( ref($data) ); - my $tmp = $args->{unserialize}->( $class->{dbm}->{$k} ); - $res{$k}->{$_} = $tmp->{$_} foreach (@$data); - } - else { - $res{$k} = $args->{unserialize}->( $class->{dbm}->{$k} ); + eval { + if ( ref($data) eq 'CODE' ) { + $res{$k} = + &$data( $args->{unserialize}->( $class->{dbm}->{$k} ), $k ); + } + elsif ($data) { + $data = [$data] unless ( ref($data) ); + my $tmp = $args->{unserialize}->( $class->{dbm}->{$k} ); + $res{$k}->{$_} = $tmp->{$_} foreach (@$data); + } + else { + $res{$k} = $args->{unserialize}->( $class->{dbm}->{$k} ); + } + }; + if ($@) { + print STDERR "Error in session $k\n"; + delete $res{$k}; } } return \%res; From e130c6160b75c3659e2ac281cb193bda19cf879f Mon Sep 17 00:00:00 2001 From: Maxime Besson Date: Wed, 20 Nov 2019 16:52:04 +0100 Subject: [PATCH 9/9] Validate LDAP connections in getUser (#2018) --- .../lib/Lemonldap/NG/Portal/Lib/LDAP.pm | 9 ++++- .../t/21-Auth-and-password-LDAP.t | 22 ++++++++++-- lemonldap-ng-portal/t/test-ldap.pm | 34 +++++++++++++++---- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/LDAP.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/LDAP.pm index 511018973..da096a30f 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/LDAP.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/LDAP.pm @@ -114,7 +114,14 @@ sub init { sub getUser { my ( $self, $req, %args ) = @_; - return PE_LDAPCONNECTFAILED unless $self->ldap and $self->bind(); + $self->validateLdap; + + unless ( $self->ldap ) { + return PE_LDAPCONNECTFAILED; + } + + $self->bind(); + my $mesg = $self->ldap->search( base => $self->conf->{ldapBase}, scope => 'sub', diff --git a/lemonldap-ng-portal/t/21-Auth-and-password-LDAP.t b/lemonldap-ng-portal/t/21-Auth-and-password-LDAP.t index 23023d515..b99a0fe43 100644 --- a/lemonldap-ng-portal/t/21-Auth-and-password-LDAP.t +++ b/lemonldap-ng-portal/t/21-Auth-and-password-LDAP.t @@ -5,7 +5,7 @@ use IO::String; require 't/test-lib.pm'; my $res; -my $maintests = 3; +my $maintests = 4; SKIP: { skip 'LLNGTESTLDAP is not set', $maintests unless ( $ENV{LLNGTESTLDAP} ); @@ -32,8 +32,24 @@ SKIP: { . '&password=' . ( $ENV{LDAPPWD} || 'dwho' ); - # Try yo authenticate - # ------------------- + # Try to authenticate with + # the server temporarily offline (#2018) + # -------------------------------------- + tempStopLdapServer(); + ok( + $res = $client->_post( + '/', IO::String->new($postString), + length => length($postString) + ), + 'Auth query' + ); + + expectReject( $res, 401, 6 ); + + # Try to authenticate with the + # server back online + # ---------------------------- + tempStartLdapServer(); ok( $res = $client->_post( '/', IO::String->new($postString), diff --git a/lemonldap-ng-portal/t/test-ldap.pm b/lemonldap-ng-portal/t/test-ldap.pm index 94204356c..9a82ce9b7 100644 --- a/lemonldap-ng-portal/t/test-ldap.pm +++ b/lemonldap-ng-portal/t/test-ldap.pm @@ -1,14 +1,19 @@ # Try to launch an LDAP server +my $slapd_bin; +my $slapadd_bin; +my $slapd_schema_dir; + if ( $ENV{LLNGTESTLDAP} ) { - my $slapd_bin = $ENV{LLNGTESTLDAP_SLAPD_BIN} || '/usr/sbin/slapd'; - my $slapadd_bin = $ENV{LLNGTESTLDAP_SLAPADD_BIN} || '/usr/sbin/slapadd'; - my $slapd_schema_dir = ( - $ENV{LLNGTESTLDAP_SCHEMA_DIR} - and -d $ENV{LLNGTESTLDAP_SCHEMA_DIR} ? $ENV{LLNGTESTLDAP_SCHEMA_DIR} - : -d '/etc/slapd/schema' ? '/etc/slapd/schema' + $slapd_bin = $ENV{LLNGTESTLDAP_SLAPD_BIN} || '/usr/sbin/slapd'; + $slapadd_bin = $ENV{LLNGTESTLDAP_SLAPADD_BIN} || '/usr/sbin/slapadd'; + $slapd_schema_dir = ( + ( $ENV{LLNGTESTLDAP_SCHEMA_DIR} and -d $ENV{LLNGTESTLDAP_SCHEMA_DIR} ) + ? $ENV{LLNGTESTLDAP_SCHEMA_DIR} + : -d '/etc/openldap/schema' ? '/etc/openldap/schema' : '/etc/ldap/schema' ); + eval { mkdir 't/testslapd/slapd.d' }; eval { mkdir 't/testslapd/data' }; system('cp t/testslapd/slapd.ldif t/testslapd/slapd-test.ldif'); @@ -27,10 +32,27 @@ sub stopLdapServer { if ( $ENV{LLNGTESTLDAP} ) { open F, 't/testslapd/slapd.pid'; my $pid = join '', ; + close F; system "kill $pid"; system 'rm -rf t/testslapd/slapd.d'; system 'rm -rf t/testslapd/data'; system 'rm -rf t/testslapd/slapd-test.ldif'; } } + +sub tempStopLdapServer { + if ( $ENV{LLNGTESTLDAP} ) { + open F, 't/testslapd/slapd.pid'; + my $pid = join '', ; + close F; + system "kill $pid"; + } +} + +sub tempStartLdapServer { + if ( $ENV{LLNGTESTLDAP} ) { + system( $slapd_bin + . ' -s 256 -h "ldap://127.0.0.1:19389/" -F t/testslapd/slapd.d' ); + } +} 1;