diff --git a/COPYING b/COPYING index d69135c24..774bc8c70 100644 --- a/COPYING +++ b/COPYING @@ -67,6 +67,10 @@ Copyright: https://www.customicondesign.com License: CC-BY-NC-ND-3.0 Comment: Downloaded from https://www.iconspedia.com/ +Files: lemonldap-ng-portal/site/htdocs/static/common/modules/Slave.png +Copyright: Antoine Rosier +License: CC-3 + Files: lemonldap-ng-portal/site/htdocs/static/common/modules/Twitter.png Copyright: Paul Schulerr, https://schulerr.deviantart.com License: CC-3 diff --git a/Makefile b/Makefile index 9c3dd94cb..60b9b9665 100644 --- a/Makefile +++ b/Makefile @@ -311,7 +311,7 @@ $(SRCMANAGERDIR)/site/htdocs/static/js/%.js: $(SRCMANAGERDIR)/site/coffee/%.coff %.min.js: %.js @echo "Compressing $*.js" - @uglifyjs --comments='/Copyr/i' $*.js > $*.min.js + @uglifyjs $*.js --compress --mangle --comments='/Copyr/i' --source-map $*.min.js.map -o $*.min.js fastcgi-server/man/llng-fastcgi-server.1p: fastcgi-server/sbin/llng-fastcgi-server @echo Update FastCGI server man page diff --git a/_example/conf/lmConf-1.json b/_example/conf/lmConf-1.json index c9a77287a..94f5550c0 100644 --- a/_example/conf/lmConf-1.json +++ b/_example/conf/lmConf-1.json @@ -125,9 +125,9 @@ "default" : "accept" }, "manager.__DNSDOMAIN__" : { - "(?#Configuration)^/(manager\\.html|confs|$)" : "$uid eq \"dwho\"", - "(?#Notifications)/notifications" : "$uid eq \"dwho\" or $uid eq \"rtyler\"", - "(?#Sessions)/sessions" : "$uid eq \"dwho\" or $uid eq \"rtyler\"", + "(?#Configuration)^/(.*?\\.(fcgi|psgi)/)?(manager\\.html|confs/|$)" : "$uid eq \"dwho\"", + "(?#Notifications)/(.*?\\.(fcgi|psgi)/)?notifications" : "$uid eq \"dwho\" or $uid eq \"rtyler\"", + "(?#Sessions)/(.*?\\.(fcgi|psgi)/)?sessions" : "$uid eq \"dwho\" or $uid eq \"rtyler\"", "default" : "$uid eq \"dwho\" or $uid eq \"rtyler\"" }, "test1.__DNSDOMAIN__" : { diff --git a/e2e-tests/lemonldap-ng.ini b/e2e-tests/lemonldap-ng.ini index 90c53abc7..ef096b714 100644 --- a/e2e-tests/lemonldap-ng.ini +++ b/e2e-tests/lemonldap-ng.ini @@ -28,6 +28,7 @@ totp2fActivation = 1 totp2fSelfRegistration = 1 captcha_mail_enabled = 0 portalDisplayResetPassword = 1 +;pdataDomain = example.com [handler] diff --git a/fastcgi-server/man/llng-fastcgi-server.1p b/fastcgi-server/man/llng-fastcgi-server.1p index c4a2bf962..f648a53aa 100644 --- a/fastcgi-server/man/llng-fastcgi-server.1p +++ b/fastcgi-server/man/llng-fastcgi-server.1p @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== @@ -54,20 +54,16 @@ .\" Avoid warning from groff about undefined register 'F'. .de IX .. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{\ -. if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.if !\nF .nr F 0 +.if \nF>0 \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 -. \} +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 . \} .\} -.rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -133,7 +129,7 @@ .\" ======================================================================== .\" .IX Title "llng-fastcgi-server 1" -.TH llng-fastcgi-server 1 "2019-07-10" "perl v5.28.1" "User Contributed Perl Documentation" +.TH llng-fastcgi-server 1 "2019-08-15" "perl v5.26.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/lemonldap-ng-common/lemonldap-ng.ini b/lemonldap-ng-common/lemonldap-ng.ini index d57e73000..29b55da08 100644 --- a/lemonldap-ng-common/lemonldap-ng.ini +++ b/lemonldap-ng-common/lemonldap-ng.ini @@ -302,6 +302,10 @@ languages = en, fr, vi, it, ar, de, fi ; Read Lemonldap::NG::Portal::Main::Plugin(3pm) man page. ;customPlugins = My::Package1, My::Package2 +; To avoid bad/expired OTT if authssl and auth are served by different Load Balancers +; you can override OTT configuration to store Upgrade OTT into global storage +;forceGlobalStorageUpgradeOTT = 1 + [handler] ; Handler cache configuration diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm index 9a1ca7ab1..c8d99bff1 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm @@ -184,7 +184,6 @@ sub defaultValues { 'oidcServiceMetaDataCheckSessionURI' => 'checksession.html', 'oidcServiceMetaDataEndSessionURI' => 'logout', 'oidcServiceMetaDataFrontChannelURI' => 'flogout', - 'oidcServiceMetaDataIssuer' => 'http://auth.example.com', 'oidcServiceMetaDataJWKSURI' => 'jwks', 'oidcServiceMetaDataRegistrationURI' => 'register', 'oidcServiceMetaDataTokenURI' => 'token', diff --git a/lemonldap-ng-manager/MANIFEST b/lemonldap-ng-manager/MANIFEST index 4d8113cf2..31b5e457c 100644 --- a/lemonldap-ng-manager/MANIFEST +++ b/lemonldap-ng-manager/MANIFEST @@ -79,6 +79,7 @@ site/htdocs/static/bwr/es5-shim/es5-shim.map site/htdocs/static/bwr/es5-shim/es5-shim.min.js site/htdocs/static/bwr/file-saver.js/FileSaver.js site/htdocs/static/bwr/file-saver.js/FileSaver.min.js +site/htdocs/static/bwr/file-saver.js/FileSaver.min.js.map site/htdocs/static/bwr/jquery-ui/jquery-ui.js site/htdocs/static/bwr/jquery-ui/jquery-ui.min.js site/htdocs/static/bwr/jquery/dist/jquery.js @@ -138,6 +139,8 @@ site/htdocs/static/forms/samlService.html site/htdocs/static/forms/samlSPMetaDataNode.html site/htdocs/static/forms/samlSPMetaDataNodeContainer.html site/htdocs/static/forms/select.html +site/htdocs/static/forms/sfExtra.html +site/htdocs/static/forms/sfExtraContainer.html site/htdocs/static/forms/simpleInputContainer.html site/htdocs/static/forms/text.html site/htdocs/static/forms/trool.html @@ -146,24 +149,34 @@ site/htdocs/static/forms/virtualHostContainer.html site/htdocs/static/forms/white.html site/htdocs/static/js/2ndfa.js site/htdocs/static/js/2ndfa.min.js +site/htdocs/static/js/2ndfa.min.js.map site/htdocs/static/js/conftree.js site/htdocs/static/js/conftree.min.js +site/htdocs/static/js/conftree.min.js.map site/htdocs/static/js/diff.js site/htdocs/static/js/diff.min.js +site/htdocs/static/js/diff.min.js.map site/htdocs/static/js/filterFunctions.js site/htdocs/static/js/filterFunctions.min.js +site/htdocs/static/js/filterFunctions.min.js.map site/htdocs/static/js/llApp.js site/htdocs/static/js/llApp.min.js +site/htdocs/static/js/llApp.min.js.map site/htdocs/static/js/manager.js site/htdocs/static/js/manager.min.js +site/htdocs/static/js/manager.min.js.map site/htdocs/static/js/notifications.js site/htdocs/static/js/notifications.min.js +site/htdocs/static/js/notifications.min.js.map site/htdocs/static/js/sessions.js site/htdocs/static/js/sessions.min.js +site/htdocs/static/js/sessions.min.js.map site/htdocs/static/js/viewDiff.js site/htdocs/static/js/viewDiff.min.js +site/htdocs/static/js/viewDiff.min.js.map site/htdocs/static/js/viewer.js site/htdocs/static/js/viewer.min.js +site/htdocs/static/js/viewer.min.js.map site/htdocs/static/languages/ar.json site/htdocs/static/languages/de.json site/htdocs/static/languages/en.json @@ -209,6 +222,7 @@ t/12-save-changed-conf.t t/14-bad-changes-in-conf.t t/15-combination.t t/16-cli.t +t/17-extra2f.t t/20-test-coverage.t t/40-sessions.t t/50-notifications-DBI.t @@ -227,6 +241,7 @@ t/jsonfiles/11-modified-with-confirmation.json t/jsonfiles/12-modified.json t/jsonfiles/14-bad.json t/jsonfiles/15-combination.json +t/jsonfiles/17-extra2f.json t/jsonfiles/70-diff.json t/lemonldap-ng-dbi.ini t/lemonldap-ng-noDiff.ini diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm index 8cb625140..f525b6085 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm @@ -137,7 +137,7 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a- eval { do { qr/$_[0]/; - } + } }; return $@ ? ( 0, "__badRegexp__: $@" ) : 1; } @@ -218,8 +218,7 @@ m[^(?:(?:\-+\s*BEGIN\s+(?:PUBLIC\s+KEY|CERTIFICATE)\s*\-+\r?\n)?[a-zA-Z0-9/\+\r\ }, 'select' => { 'test' => sub { - my $test = - grep( { $_ eq $_[0]; } + my $test = grep( { $_ eq $_[0]; } map( { $_->{'k'}; } @{ $_[2]{'select'}; } ) ); return $test ? 1 @@ -1593,7 +1592,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][ eval { do { qr/$_[0]/; - } + } }; return $@ ? 0 : 1; }, @@ -2103,8 +2102,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][ 'type' => 'text' }, 'oidcServiceMetaDataIssuer' => { - 'default' => 'http://auth.example.com', - 'type' => 'text' + 'type' => 'text' }, 'oidcServiceMetaDataJWKSURI' => { 'default' => 'jwks', @@ -3649,7 +3647,8 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a- 'type' => 'text' }, 'vhostAliases' => { - 'type' => 'text' + 'default' => '', + 'type' => 'text' }, 'vhostAuthnLevel' => { 'type' => 'int' 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 e0b3a3497..017dc01b6 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm @@ -1896,7 +1896,7 @@ sub attributes { type => 'int', default => -1, }, - vhostAliases => { type => 'text', }, + vhostAliases => { type => 'text', default => '' }, vhostType => { type => 'select', select => [ @@ -1913,7 +1913,7 @@ sub attributes { default => 'Main', documentation => 'Handler type', }, - vhostAuthnLevel => { type => 'int', }, + vhostAuthnLevel => { type => 'int' }, # SecureToken parameters secureTokenAllowOnError => { @@ -3400,7 +3400,7 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?: { k => 'Mail2F', v => 'E-Mail' }, { k => 'REST', v => 'REST' }, { k => 'Ext2F', v => 'External' }, - { k => 'Radius', v => 'Radius' }, + { k => 'Radius', v => 'Radius' }, ], }, @@ -3446,7 +3446,6 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?: # OpenID Connect service oidcServiceMetaDataIssuer => { type => 'text', - default => 'http://auth.example.com', documentation => 'OpenID Connect issuer', }, oidcServiceMetaDataAuthorizeURI => { diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm index 3738051db..d1376aa74 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm @@ -162,10 +162,11 @@ sub zeroConf { }, "manager.$domain" => { 'default' => '$uid eq "dwho" or $uid eq "rtyler"', - '(?#Configuration)^/(manager\.html|confs|$)' => - '$uid eq "dwho"', - '(?#Sessions)/sessions' => '$uid eq "dwho" or $uid eq "rtyler"', - '(?#Notifications)/notifications' => +'(?#Configuration)^/(.*?\.(fcgi|psgi)/)?(manager\.html|confs/|$)' + => '$uid eq "dwho"', + '(?#Sessions)/(.*?\.(fcgi|psgi)/)?sessions' => + '$uid eq "dwho" or $uid eq "rtyler"', + '(?#Notifications)/(.*?\.(fcgi|psgi)/)?notifications' => '$uid eq "dwho" or $uid eq "rtyler"', } }, diff --git a/lemonldap-ng-manager/site/coffee/2ndfa.coffee b/lemonldap-ng-manager/site/coffee/2ndfa.coffee index f49848518..be8b21296 100644 --- a/lemonldap-ng-manager/site/coffee/2ndfa.coffee +++ b/lemonldap-ng-manager/site/coffee/2ndfa.coffee @@ -32,6 +32,7 @@ schemes = overScheme = _whatToTrace: (t,v,level,over) -> + console.log 'overSchema => level', level, 'over', over if level == 1 and v.length > over "#{t}=#{v}*&groupBy=substr(#{t},#{(level+over+1)})" else diff --git a/lemonldap-ng-manager/site/coffee/sessions.coffee b/lemonldap-ng-manager/site/coffee/sessions.coffee index 2a8060775..4608dc5f2 100644 --- a/lemonldap-ng-manager/site/coffee/sessions.coffee +++ b/lemonldap-ng-manager/site/coffee/sessions.coffee @@ -68,19 +68,22 @@ overScheme = _whatToTrace: (t,v,level,over) -> # "v.length > over" avoids a loop if one user opened more than "max" # sessions + console.log 'overSchema => level', level, 'over', over if level == 1 and v.length > over "#{t}=#{v}*&groupBy=substr(#{t},#{(level+over+1)})" else null # Note: IPv4 only ipAddr: (t,v,level,over) -> - if level > 0 and level < 4 - "#{t}=#{v}*&groupBy=net(#{t},#{16*level+4*(over+1)},2)" + console.log 'overSchema => level', level, 'over', over + if level > 0 and level < 4 and !v.match(/^\d+\.\d/) and over < 2 + "#{t}=#{v}*&groupBy=net(#{t},#{16*level+4*(over+1)},#{1+level+over})" else null _startTime: (t,v,level,over) -> + console.log 'overSchema => level', level, 'over', over if level > 3 - "#{t}=#{v}*&groupBy=substr(#{t},#{(9+level+over+1)})" + "#{t}=#{v}*&groupBy=substr(#{t},#{(10+level+over)})" else null @@ -166,8 +169,6 @@ llapp.controller 'SessionsExplorerCtrl', ['$scope', '$translator', '$location', $scope.waiting = false $scope.showT = false - - # Delete $scope.deleteSession = -> $scope.waiting = true diff --git a/lemonldap-ng-manager/site/coffee/viewer.coffee b/lemonldap-ng-manager/site/coffee/viewer.coffee index 6d387578e..c31458949 100644 --- a/lemonldap-ng-manager/site/coffee/viewer.coffee +++ b/lemonldap-ng-manager/site/coffee/viewer.coffee @@ -9,7 +9,7 @@ This file contains: - the AngularJS controller ### -llapp = angular.module 'llngManager', ['ui.tree', 'ui.bootstrap', 'llApp', 'ngCookies'] +llapp = angular.module 'llngViewer', ['ui.tree', 'ui.bootstrap', 'llApp', 'ngCookies'] ### Main AngularJS controller @@ -321,6 +321,22 @@ llapp.controller 'TreeCtrl', [ $scope.showT = false setHelp scope + $scope.keyWritable = (scope) -> + node = scope.$modelValue + # regexp-assemble of: + # authChoice + # cmbModule + # keyText + # menuApp + # menuCat + # rule + # samlAttribute + # samlIDPMetaDataNode + # samlSPMetaDataNode + # sfExtra + # virtualHost + return if node.type and node.type.match /^(?:s(?:aml(?:(?:ID|S)PMetaDataNod|Attribut)e|fExtra)|(?:(?:cmbMod|r)ul|authChoic)e|(?:virtualHos|keyTex)t|menu(?:App|Cat))$/ then true else false + # method `getKey()`: # - return a promise with the data: # - from node when set @@ -351,10 +367,13 @@ llapp.controller 'TreeCtrl', [ node.data = node['default'] else node.data = data.value - if node.data.toString().match /_Hidden_$/ + if (node.data and node.data.toString().match /_Hidden_$/) node.type = 'text' node.data = '######' # Cast int as int (remember that booleans are int for Perl) + if node.type and node.type.match /^(bool|trool|boolOrExpr)$/ + if typeof node.data == 'string' and node.data.match /^(?:-1|0|1)$/ + node.data = parseInt(node.data, 10) if node.type and node.type.match /^int$/ node.data = parseInt(node.data, 10) # Split SAML types @@ -450,5 +469,4 @@ llapp.controller 'TreeCtrl', [ unless c console.log "Redirecting to /view/latest" $location.path '/view/latest' - ] diff --git a/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js b/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js index 75b85a43d..df16b1b37 100644 --- a/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js @@ -1 +1 @@ -var saveAs=saveAs||function(view){"use strict";if(typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var doc=view.document,get_URL=function(){return view.URL||view.webkitURL||view},save_link=doc.createElementNS("http://www.w3.org/1999/xhtml","a"),can_use_save_link="download"in save_link,click=function(node){var event=doc.createEvent("MouseEvents");event.initMouseEvent("click",true,false,view,0,0,0,0,0,false,false,false,false,0,null);node.dispatchEvent(event)},webkit_req_fs=view.webkitRequestFileSystem,req_fs=view.requestFileSystem||webkit_req_fs||view.mozRequestFileSystem,throw_outside=function(ex){(view.setImmediate||view.setTimeout)(function(){throw ex},0)},force_saveable_type="application/octet-stream",fs_min_size=0,arbitrary_revoke_timeout=500,revoke=function(file){var revoker=function(){if(typeof file==="string"){get_URL().revokeObjectURL(file)}else{file.remove()}};if(view.chrome){revoker()}else{setTimeout(revoker,arbitrary_revoke_timeout)}},dispatch=function(filesaver,event_types,event){event_types=[].concat(event_types);var i=event_types.length;while(i--){var listener=filesaver["on"+event_types[i]];if(typeof listener==="function"){try{listener.call(filesaver,event||filesaver)}catch(ex){throw_outside(ex)}}}},auto_bom=function(blob){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)){return new Blob(["\ufeff",blob],{type:blob.type})}return blob},FileSaver=function(blob,name){blob=auto_bom(blob);var filesaver=this,type=blob.type,blob_changed=false,object_url,target_view,dispatch_all=function(){dispatch(filesaver,"writestart progress write writeend".split(" "))},fs_error=function(){if(blob_changed||!object_url){object_url=get_URL().createObjectURL(blob)}if(target_view){target_view.location.href=object_url}else{var new_tab=view.open(object_url,"_blank");if(new_tab==undefined&&typeof safari!=="undefined"){view.location.href=object_url}}filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url)},abortable=function(func){return function(){if(filesaver.readyState!==filesaver.DONE){return func.apply(this,arguments)}}},create_if_not_found={create:true,exclusive:false},slice;filesaver.readyState=filesaver.INIT;if(!name){name="download"}if(can_use_save_link){object_url=get_URL().createObjectURL(blob);save_link.href=object_url;save_link.download=name;click(save_link);filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);return}if(view.chrome&&type&&type!==force_saveable_type){slice=blob.slice||blob.webkitSlice;blob=slice.call(blob,0,blob.size,force_saveable_type);blob_changed=true}if(webkit_req_fs&&name!=="download"){name+=".download"}if(type===force_saveable_type||webkit_req_fs){target_view=view}if(!req_fs){fs_error();return}fs_min_size+=blob.size;req_fs(view.TEMPORARY,fs_min_size,abortable(function(fs){fs.root.getDirectory("saved",create_if_not_found,abortable(function(dir){var save=function(){dir.getFile(name,create_if_not_found,abortable(function(file){file.createWriter(abortable(function(writer){writer.onwriteend=function(event){target_view.location.href=file.toURL();filesaver.readyState=filesaver.DONE;dispatch(filesaver,"writeend",event);revoke(file)};writer.onerror=function(){var error=writer.error;if(error.code!==error.ABORT_ERR){fs_error()}};"writestart progress write abort".split(" ").forEach(function(event){writer["on"+event]=filesaver["on"+event]});writer.write(blob);filesaver.abort=function(){writer.abort();filesaver.readyState=filesaver.DONE};filesaver.readyState=filesaver.WRITING}),fs_error)}),fs_error)};dir.getFile(name,{create:false},abortable(function(file){file.remove();save()}),abortable(function(ex){if(ex.code===ex.NOT_FOUND_ERR){save()}else{fs_error()}}))}),fs_error)}),fs_error)},FS_proto=FileSaver.prototype,saveAs=function(blob,name){return new FileSaver(blob,name)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(blob,name){return navigator.msSaveOrOpenBlob(auto_bom(blob),name)}}FS_proto.abort=function(){var filesaver=this;filesaver.readyState=filesaver.DONE;dispatch(filesaver,"abort")};FS_proto.readyState=FS_proto.INIT=0;FS_proto.WRITING=1;FS_proto.DONE=2;FS_proto.error=FS_proto.onwritestart=FS_proto.onprogress=FS_proto.onwrite=FS_proto.onabort=FS_proto.onerror=FS_proto.onwriteend=null;return saveAs}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!=null){define([],function(){return saveAs})} +var saveAs=saveAs||function(l){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var p=l.document,w=function(){return l.URL||l.webkitURL||l},v=p.createElementNS("http://www.w3.org/1999/xhtml","a"),y="download"in v,m=l.webkitRequestFileSystem,h=l.requestFileSystem||m||l.mozRequestFileSystem,i=function(e){(l.setImmediate||l.setTimeout)(function(){throw e},0)},S="application/octet-stream",O=0,E=function(e){function t(){"string"==typeof e?w().revokeObjectURL(e):e.remove()}l.chrome?t():setTimeout(t,500)},R=function(e,t,n){for(var o=(t=[].concat(t)).length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(e){i(e)}}},b=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},n=function(o,n){o=b(o);function e(){R(f,"writestart progress write writeend".split(" "))}function r(){!s&&t||(t=w().createObjectURL(o)),a?a.location.href=t:null==l.open(t,"_blank")&&"undefined"!=typeof safari&&(l.location.href=t),f.readyState=f.DONE,e(),E(t)}function i(e){return function(){if(f.readyState!==f.DONE)return e.apply(this,arguments)}}var t,a,c,f=this,u=o.type,s=!1,d={create:!0,exclusive:!1};if(f.readyState=f.INIT,n=n||"download",y)return t=w().createObjectURL(o),v.href=t,v.download=n,function(e){var t=p.createEvent("MouseEvents");t.initMouseEvent("click",!0,!1,l,0,0,0,0,0,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}(v),f.readyState=f.DONE,e(),void E(t);l.chrome&&u&&u!==S&&(c=o.slice||o.webkitSlice,o=c.call(o,0,o.size,S),s=!0),m&&"download"!==n&&(n+=".download"),u!==S&&!m||(a=l),h?(O+=o.size,h(l.TEMPORARY,O,i(function(e){e.root.getDirectory("saved",d,i(function(e){function t(){e.getFile(n,d,i(function(n){n.createWriter(i(function(t){t.onwriteend=function(e){a.location.href=n.toURL(),f.readyState=f.DONE,R(f,"writeend",e),E(n)},t.onerror=function(){var e=t.error;e.code!==e.ABORT_ERR&&r()},"writestart progress write abort".split(" ").forEach(function(e){t["on"+e]=f["on"+e]}),t.write(o),f.abort=function(){t.abort(),f.readyState=f.DONE},f.readyState=f.WRITING}),r)}),r)}e.getFile(n,{create:!1},i(function(e){e.remove(),t()}),i(function(e){e.code===e.NOT_FOUND_ERR?t():r()}))}),r)}),r)):r()},e=n.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t){return navigator.msSaveOrOpenBlob(b(e),t)}:(e.abort=function(){this.readyState=this.DONE,R(this,"abort")},e.readyState=e.INIT=0,e.WRITING=1,e.DONE=2,e.error=e.onwritestart=e.onprogress=e.onwrite=e.onabort=e.onerror=e.onwriteend=null,function(e,t){return new n(e,t)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}); \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js.map b/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js.map new file mode 100644 index 000000000..bee642147 --- /dev/null +++ b/lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["lemonldap-ng-manager/site/htdocs/static/bwr/file-saver.js/FileSaver.js"],"names":["saveAs","view","navigator","test","userAgent","doc","document","get_URL","URL","webkitURL","save_link","createElementNS","can_use_save_link","webkit_req_fs","webkitRequestFileSystem","req_fs","requestFileSystem","mozRequestFileSystem","throw_outside","ex","setImmediate","setTimeout","force_saveable_type","fs_min_size","revoke","file","revoker","revokeObjectURL","remove","chrome","dispatch","filesaver","event_types","event","i","concat","length","listener","call","auto_bom","blob","type","Blob","FileSaver","name","dispatch_all","split","fs_error","blob_changed","object_url","createObjectURL","target_view","location","href","undefined","open","safari","readyState","DONE","abortable","func","apply","this","arguments","slice","create_if_not_found","create","exclusive","INIT","download","node","createEvent","initMouseEvent","dispatchEvent","click","webkitSlice","size","TEMPORARY","fs","root","getDirectory","dir","save","getFile","createWriter","writer","onwriteend","toURL","onerror","error","code","ABORT_ERR","forEach","write","abort","WRITING","NOT_FOUND_ERR","FS_proto","prototype","msSaveOrOpenBlob","onwritestart","onprogress","onwrite","onabort","self","window","content","module","exports","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.js b/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.js index 52387c893..9c86640b5 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.8 +// Generated by CoffeeScript 1.12.7 /* * 2ndFA Session explorer @@ -42,6 +42,7 @@ overScheme = { _whatToTrace: function(t, v, level, over) { + console.log('overSchema => 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/2ndfa.min.js b/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.min.js index edf69a7c1..9b65d0356 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/2ndfa.min.js @@ -1 +1,2 @@ -(function(){var categories,displayError,hiddenAttributes,llapp,max,menu,overScheme,schemes,setMsg;setMsg=function(msg,level){$("#msg").html(window.translate(msg));$("#color").removeClass("message-positive message-warning alert-success alert-warning");$("#color").addClass("message-"+level);if(level==="positive"){level="success"}return $("#color").addClass("alert-"+level)};displayError=function(j,status,err){var res;console.log("Error",err);res=JSON.parse(j.responseText);if(res&&res.error){res=res.error.replace(/.* /,"");console.log("Returned error",res);return setMsg(res,"warning")}};max=25;schemes={_whatToTrace:[function(t,v){return"groupBy=substr("+t+",1)"},function(t,v){return t+"="+v+"*"}]};overScheme={_whatToTrace:function(t,v,level,over){if(level===1&&v.length>over){return t+"="+v+"*&groupBy=substr("+t+","+(level+over+1)+")"}else{return null}}};hiddenAttributes="_password";categories={dateTitle:["_utime","_startTime","_updateTime"],sfaTitle:["_2fDevices"]};menu={home:[]};llapp=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]);llapp.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function($scope,$translator,$location,$q,$http){var autoId,c,pathEvent,sessionType;$scope.links=links;$scope.menulinks=menulinks;$scope.staticPrefix=staticPrefix;$scope.scriptname=scriptname;$scope.formPrefix=formPrefix;$scope.availableLanguages=availableLanguages;$scope.waiting=true;$scope.showM=false;$scope.showT=true;$scope.data=[];$scope.currentScope=null;$scope.currentSession=null;$scope.menu=menu;$scope.searchString="";$scope.U2FCheck="1";$scope.TOTPCheck="1";$scope.UBKCheck="1";$scope.translateP=$translator.translateP;$scope.translate=$translator.translate;$scope.translateTitle=function(node){return $translator.translateField(node,"title")};sessionType="persistent";$scope.menuClick=function(button){if(button.popup){window.open(button.popup)}else{if(!button.action){button.action=button.title}switch(typeof button.action){case"function":button.action($scope.currentNode,$scope);$scope[button.action]();break;case"string":$scope[button.action]();break;default:console.log(typeof button.action)}}return $scope.showM=false};$scope.search2FA=function(clear){if(clear){$scope.searchString=""}$scope.currentSession=null;$scope.data=[];return $scope.updateTree2("",$scope.data,0,0)};$scope.delete2FA=function(type,epoch){var item;item=angular.element(".data-"+epoch);item.remove();$scope.waiting=true;$http["delete"](scriptname+"sfa/"+sessionType+"/"+$scope.currentSession.id+"?type="+type+"&epoch="+epoch).then(function(response){return $scope.waiting=false},function(resp){return $scope.waiting=false});return $scope.showT=false};$scope.stoggle=function(scope){var node;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()};$scope.displaySession=function(scope){var sessionId,transformSession;transformSession=function(session){var _insert,_stToStr,array,arrayDate,attr,attrs,category,epoch,i,id,k,key,len,len1,name,pattern,res,sfDevice,subres,time,title,value;_stToStr=function(s){return s};_insert=function(re,title){var key,reg,tmp,value;tmp=[];reg=new RegExp(re);for(key in session){value=session[key];if(key.match(reg)&&value){tmp.push({title:key,value:value});delete session[key]}}if(tmp.length>0){return res.push({title:title,nodes:tmp})}};time=session._utime;id=session._session_id;for(key in session){value=session[key];if(!value){delete session[key]}else{if(typeof session==="string"&&value.match(/; /)){session[key]=value.split("; ")}if(typeof session[key]!=="object"){if(hiddenAttributes.match(new RegExp("\b"+key+"\b"))){session[key]="********"}else if(key.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)){session[key]=$scope.localeDate(value)}else if(key.match(/^(_startTime|_updateTime)$/)){value=_stToStr(value);pattern=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;arrayDate=value.match(pattern);session[key]=arrayDate[3]+"/"+arrayDate[2]+"/"+arrayDate[1]+" à "+arrayDate[4]+":"+arrayDate[5]+":"+arrayDate[6]}}}}res=[];for(category in categories){attrs=categories[category];subres=[];for(i=0,len=attrs.length;i0){res.push({title:"__"+category+"__",nodes:subres})}}return{_utime:time,id:id,nodes:res}};$scope.currentScope=scope;sessionId=scope.$modelValue.session;$http.get(scriptname+"sfa/"+sessionType+"/"+sessionId).then(function(response){return $scope.currentSession=transformSession(response.data)});return $scope.showT=false};$scope.localeDate=function(s){var d;d=new Date(s*1e3);return d.toLocaleString()};$scope.getLanguage=function(lang){$scope.lang=lang;$scope.form="white";$scope.init();return $scope.showM=false};pathEvent=function(event,next,current){var n;n=next.match(/#!?\/(\w+)/);if(n===null||n[1].match(/^(persistent)$/)){$scope.type="_session_uid"}return $scope.init()};$scope.$on("$locationChangeSuccess",pathEvent);autoId=0;$scope.updateTree=function(value,node,level,over,currentQuery,count){var query,scheme,tmp;$scope.waiting=true;scheme=schemes[$scope.type]?schemes[$scope.type]:schemes._whatToTrace;query=scheme[level]($scope.type,value,currentQuery);if(count>max&&overScheme[$scope.type]){if(tmp=overScheme[$scope.type]($scope.type,value,level,over,currentQuery)){over++;query=tmp;level=level-1}else{over=0}}else{over=0}return $http.get(scriptname+"sfa/"+sessionType+"?"+query+"&U2FCheck="+$scope.U2FCheck+"&TOTPCheck="+$scope.TOTPCheck+"&UBKCheck="+$scope.UBKCheck).then(function(response){var data,i,len,n,ref;data=response.data;if(data.result){ref=data.values;for(i=0,len=ref.length;imax&&overScheme[$scope.type]){if(tmp=overScheme[$scope.type]($scope.type,value,level,over,currentQuery)){over++;query=tmp;level=level-1}else{over=0}}else{over=0}return $http.get(scriptname+"sfa/"+sessionType+"?_session_uid="+$scope.searchString+"*&groupBy=substr(_session_uid,"+$scope.searchString.length+")&U2FCheck="+$scope.U2FCheck+"&TOTPCheck="+$scope.TOTPCheck+"&UBKCheck="+$scope.UBKCheck).then(function(response){var data,i,len,n,ref;data=response.data;if(data.result){ref=data.values;for(i=0,len=ref.length;i level",n,"over",a),1===n&&t.length>a?e+"="+t+"*&groupBy=substr("+e+","+(n+a+1)+")":null}},t="_password",e={dateTitle:["_utime","_startTime","_updateTime"],sfaTitle:["_2fDevices"]},r={home:[]},n=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]),n.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(n,s,l,u,c){var h,p,d,g;return n.links=links,n.menulinks=menulinks,n.staticPrefix=staticPrefix,n.scriptname=scriptname,n.formPrefix=formPrefix,n.availableLanguages=availableLanguages,n.waiting=!0,n.showM=!1,n.showT=!0,n.data=[],n.currentScope=null,n.currentSession=null,n.menu=r,n.searchString="",n.U2FCheck="1",n.TOTPCheck="1",n.UBKCheck="1",n.translateP=s.translateP,n.translate=s.translate,n.translateTitle=function(e){return s.translateField(e,"title")},g="persistent",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),n[e.action]();break;case"string":n[e.action]();break;default:console.log(typeof e.action)}return n.showM=!1},n.search2FA=function(e){return e&&(n.searchString=""),n.currentSession=null,n.data=[],n.updateTree2("",n.data,0,0)},n.delete2FA=function(e,t){var a;return a=angular.element(".data-"+t),a.remove(),n.waiting=!0,c.delete(scriptname+"sfa/"+g+"/"+n.currentSession.id+"?type="+e+"&epoch="+t).then(function(e){return n.waiting=!1},function(e){return n.waiting=!1}),n.showT=!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(a){var r,i;return i=function(a){var r,i,o,s,l,u,c,h,p,d,g,f,m,T,w,v,y,_,k,C,S;r=function(e){return e},k=a._utime,p=a._session_id;for(g in a)S=a[g],S?("string"==typeof a&&S.match(/; /)&&(a[g]=S.split("; ")),"object"!=typeof a[g]&&(t.match(new RegExp("\b"+g+"\b"))?a[g]="********":g.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)?a[g]=n.localeDate(S):g.match(/^(_startTime|_updateTime)$/)&&(S=r(S),w=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/,o=S.match(w),a[g]=o[3]+"/"+o[2]+"/"+o[1]+" à "+o[4]+":"+o[5]+":"+o[6]))):delete a[g];v=[];for(u in e){for(l=e[u],_=[],h=0,f=l.length;h0&&v.push({title:"__"+u+"__",nodes:_})}return{_utime:k,id:p,nodes:v}},n.currentScope=a,r=a.$modelValue.session,c.get(scriptname+"sfa/"+g+"/"+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.getLanguage=function(e){return n.lang=e,n.form="white",n.init(),n.showM=!1},d=function(e,t,a){var r;return r=t.match(/#!?\/(\w+)/),(null===r||r[1].match(/^(persistent)$/))&&(n.type="_session_uid"),n.init()},n.$on("$locationChangeSuccess",d),h=0,n.updateTree=function(e,t,r,s,l,u){var p,d,f;return n.waiting=!0,d=o[n.type]?o[n.type]:o._whatToTrace,p=d[r](n.type,e,l),u>a&&i[n.type]&&(f=i[n.type](n.type,e,r,s,l))?(s++,p=f,r-=1):s=0,c.get(scriptname+"sfa/"+g+"?"+p+"&U2FCheck="+n.U2FCheck+"&TOTPCheck="+n.TOTPCheck+"&UBKCheck="+n.UBKCheck).then(function(a){var i,o,l,u,c;if(i=a.data,i.result){for(c=i.values,o=0,l=c.length;oa&&i[n.type]&&(f=i[n.type](n.type,e,r,s,l))?(s++,p=f,r-=1):s=0,c.get(scriptname+"sfa/"+g+"?_session_uid="+n.searchString+"*&groupBy=substr(_session_uid,"+n.searchString.length+")&U2FCheck="+n.U2FCheck+"&TOTPCheck="+n.TOTPCheck+"&UBKCheck="+n.UBKCheck).then(function(a){var i,o,l,u,c;if(i=a.data,i.result){for(c=i.values,o=0,l=c.length;o0){if(offset.length){found=-1;for(i=m=0,len2=offset.length;m",res.lang);res.deferredTr=[];res.translationFields={};res.translate=function(s){if(res.translationFields[s]){s=res.translationFields[s]}return s};res.translateField=function(node,field){return res.translate(node[field])};res.translateP=function(s){if(s&&res.translationFields.portal){s=s.replace(/__(\w+)__/g,function(match,w){return res.translate(w)})}return s};this.$get=["$q","$http",function($q,$http){res.last="";res.init=function(lang){var d;if(!lang){lang=res.lang}d=new Date;d.setTime(d.getTime()+30*864e5);document.cookie="llnglanguage="+lang+"; expires="+d.toUTCString()+"; path=/";d=$q.defer();if(res.last!==lang){res.last=lang;$http.get(window.staticPrefix+"languages/"+lang+".json").then(function(response){var h,l,len2,ref1;res.translationFields=response.data;ref1=res.deferredTr;for(l=0,len2=ref1.length;l$attrs.resizerMax){x=parseInt($attrs.resizerMax)}$($attrs.resizerLeft).css({width:x+"px"});return $($attrs.resizerRight).css({width:rsize-x+"px"})}else{y=event.pageY-$("#navbar").height();$($attrs.resizerTop).css({height:y+"px"});return $($attrs.resizerBottom).css({height:hsize-y+"px"})}};return mouseup=function(){$document.unbind("mousemove",mousemove);return $document.unbind("mouseup",mouseup)}}}]);llapp.factory("$lmhttp",["$q","$location",function($q,$location){return{responseError:function(rejection){if(rejection.status===401&&window.portal){return window.location=window.portal+"?url="+window.btoa(window.location).replace(/\//,"_")}else{return $q.reject(rejection)}}}}]);llapp.config(["$httpProvider",function($httpProvider){return $httpProvider.interceptors.push("$lmhttp")}])}).call(this); +(function(){var e;(e=angular.module("llApp",["ngAria"])).provider("$translator",function(){var e,t,n,r,a,i,o,s,l,u,c,g;if(g={},decodeURIComponent(document.cookie).match(/llnglanguage=(\w+)/))g.lang=RegExp.$1;else if(navigator){for(r=[],a=[],l=[navigator.language],navigator.languages&&(l=navigator.languages),t=0,i=l.length;t",g.lang),g.deferredTr=[],g.translationFields={},g.translate=function(e){return g.translationFields[e]&&(e=g.translationFields[e]),e},g.translateField=function(e,t){return g.translate(e[t])},g.translateP=function(e){return e&&g.translationFields.portal&&(e=e.replace(/__(\w+)__/g,function(e,t){return g.translate(t)})),e},this.$get=["$q","$http",function(t,n){return g.last="",g.init=function(e){var i;return e=e||g.lang,(i=new Date).setTime(i.getTime()+2592e6),document.cookie="llnglanguage="+e+"; expires="+i.toUTCString()+"; path=/",i=t.defer(),g.last!==e?(g.last=e,n.get(window.staticPrefix+"languages/"+e+".json").then(function(e){var t,n,r,a;for(g.translationFields=e.data,n=0,r=(a=g.deferredTr).length;nr.resizerMax&&(t=parseInt(r.resizerMax)),$(r.resizerLeft).css({width:t+"px"}),$(r.resizerRight).css({width:s-t+"px"})):(n=e.pageY-$("#navbar").height(),$(r.resizerTop).css({height:n+"px"}),$(r.resizerBottom).css({height:o-n+"px"}))},a=function(){return i.unbind("mousemove",n),i.unbind("mouseup",a)}}}]),e.factory("$lmhttp",["$q","$location",function(t,e){return{responseError:function(e){return 401===e.status&&window.portal?window.location=window.portal+"?url="+window.btoa(window.location).replace(/\//,"_"):t.reject(e)}}}]),e.config(["$httpProvider",function(e){return e.interceptors.push("$lmhttp")}])}).call(this); \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/js/llApp.min.js.map b/lemonldap-ng-manager/site/htdocs/static/js/llApp.min.js.map new file mode 100644 index 000000000..4ba3970d1 --- /dev/null +++ b/lemonldap-ng-manager/site/htdocs/static/js/llApp.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["lemonldap-ng-manager/site/htdocs/static/js/llApp.js"],"names":["llapp","angular","module","provider","al","j","k","langs","langs2","len","len1","nl","nlangs","re","ref","res","decodeURIComponent","document","cookie","match","lang","RegExp","$1","navigator","language","languages","length","console","log","window","availableLanguages","push","substring","deferredTr","translationFields","translate","s","translateField","node","field","translateP","portal","replace","w","this","$get","$q","$http","last","init","d","Date","setTime","getTime","toUTCString","defer","get","staticPrefix","then","response","h","l","len2","ref1","data","e","f","m","resolve","reject","promise","directive","$translator","restrict","transclude","scope","trspan","link","elem","attr","text","template","params","set","key","obj","menu","$htmlParams","terminal","compile","element","t","type","JSON","parse","error","controller","$scope","$uibModalInstance","currentNode","oldValue","result","ok","close","cancel","dismiss","inSelect","value","select","$parse","attrs","fn","onReadFile","on","onChangeEvent","reader","FileReader","onload","onLoadEvent","$apply","$fileContent","target","readAsText","srcElement","files","$document","hsize","rsize","$element","$attrs","mousemove","mouseup","event","resizer","$","resizerRight","width","resizerLeft","resizerTop","height","resizerBottom","preventDefault","x","y","pageX","resizerMax","parseInt","css","pageY","unbind","factory","$location","responseError","rejection","status","location","btoa","config","$httpProvider","interceptors","call"],"mappings":"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"} \ No newline at end of file diff --git a/lemonldap-ng-manager/site/htdocs/static/js/manager.js b/lemonldap-ng-manager/site/htdocs/static/js/manager.js index 54994fc88..29fb072dc 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/manager.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/manager.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.8 +// Generated by CoffeeScript 1.12.7 /* LemonLDAP::NG Manager client diff --git a/lemonldap-ng-manager/site/htdocs/static/js/manager.min.js b/lemonldap-ng-manager/site/htdocs/static/js/manager.min.js index 77e7c4b2c..9e5cad63e 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/manager.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/manager.min.js @@ -1 +1 @@ -(function(){var llapp;llapp=angular.module("llngManager",["ui.tree","ui.bootstrap","llApp","ngCookies"]);llapp.controller("TreeCtrl",["$scope","$http","$location","$q","$uibModal","$translator","$cookies","$htmlParams",function($scope,$http,$location,$q,$uibModal,$translator,$cookies,$htmlParams){var _checkSaveResponse,_download,_getAll,_stoggle,c,id,pathEvent,readError,setDefault,setHelp;$scope.links=window.links;$scope.menu=$htmlParams.menu;$scope.menulinks=window.menulinks;$scope.staticPrefix=window.staticPrefix;$scope.formPrefix=window.formPrefix;$scope.availableLanguages=window.availableLanguages;$scope.waiting=true;$scope.showM=false;$scope.showT=false;$scope.form="home";$scope.currentCfg={};$scope.confPrefix=window.confPrefix;$scope.message={};$scope.result="";$scope.translateTitle=function(node){return $translator.translateField(node,"title")};$scope.translateP=$translator.translateP;$scope.translate=$translator.translate;$scope.helpUrl="start.html#configuration";$scope.setShowHelp=function(val){var d;if(val==null){val=!$scope.showH}$scope.showH=val;d=new Date(Date.now());d.setFullYear(d.getFullYear()+1);return $cookies.put("showhelp",val?"true":"false",{expires:d})};$scope.showH=$cookies.get("showhelp")==="false"?false:true;if($scope.showH==null){$scope.setShowHelp(true)}readError=function(response){var e,j;e=response.status;j=response.statusLine;$scope.waiting=false;if(e===403){$scope.message={title:"forbidden",message:"",items:[]}}else if(e===401){console.log("Authentication needed");$scope.message={title:"authenticationNeeded",message:"__waitOrF5__",items:[]}}else if(e===400){$scope.message={title:"badRequest",message:j,items:[]}}else if(e>0){$scope.message={title:"badRequest",message:j,items:[]}}else{$scope.message={title:"networkProblem",message:"",items:[]}}return $scope.showModal("message.html")};$scope.showModal=function(tpl,init){var d,modalInstance;modalInstance=$uibModal.open({templateUrl:tpl,controller:"ModalInstanceCtrl",size:"lg",resolve:{elem:function(){return function(s){return $scope[s]}},set:function(){return function(f,s){return $scope[f]=s}},init:function(){return init}}});d=$q.defer();modalInstance.result.then(function(msgok){$scope.message={title:"",message:"",items:[]};return d.resolve(msgok)},function(msgnok){$scope.message={title:"",message:"",items:[]};return d.reject(msgnok)});return d.promise};$scope.menuClick=function(button){if(button.popup){window.open(button.popup)}else{if(!button.action){button.action=button.title}switch(typeof button.action){case"function":button.action($scope.currentNode,$scope);break;case"string":$scope[button.action]();break;default:console.log(typeof button.action)}}return $scope.showM=false};$scope.home=function(){$scope.form="home";return $scope.showM=false};_checkSaveResponse=function(data){var m;$scope.message={title:"",message:"",items:[],itemsE:[],itemsNC:[],itemsW:[]};if(data.needConfirm){$scope.confirmNeeded=true}if(data.message){$scope.message.message=data.message}if(data.details){for(m in data.details){if(m!=="__changes__"){if(m==="__needConfirmation__"){$scope.message.itemsNC.push({message:m,items:data.details[m]});console.log("NeedConfirmation:",$scope.message.itemsNC)}else if(m==="__warnings__"){$scope.message.itemsW.push({message:m,items:data.details[m]});console.log("Warnings:",$scope.message.itemsW)}else{$scope.message.itemsE.push({message:m,items:data.details[m]});console.log("Errors:",$scope.message.itemsE)}}}$scope.message.items=$scope.message.itemsE.concat($scope.message.itemsNC.concat($scope.message.itemsW))}$scope.waiting=false;if(data.result===1){$location.path("/confs/");$scope.message.title="successfullySaved"}else{$scope.message.title="saveReport"}return $scope.showModal("message.html")};$scope.downloadConf=function(){return window.open($scope.confPrefix+$scope.currentCfg.cfgNum+"?full=1")};$scope.save=function(){$scope.showModal("save.html").then(function(){$scope.waiting=true;$scope.data.push({id:"cfgLog",title:"cfgLog",data:$scope.result?$scope.result:""});return $http.post(window.confPrefix+"?cfgNum="+$scope.currentCfg.cfgNum+($scope.forceSave?"&force=1":""),$scope.data).then(function(response){$scope.data.pop();return _checkSaveResponse(response.data)},function(response){readError(response);return $scope.data.pop()})},function(){return console.log("Saving canceled")});return $scope.showM=false};$scope.saveRawConf=function($fileContent){$scope.waiting=true;return $http.post(window.confPrefix+"/raw",$fileContent).then(function(response){return _checkSaveResponse(response.data)},readError)};$scope.restore=function(){$scope.currentNode=null;return $scope.form="restore"};$scope.cancel=function(){$scope.currentNode.data=null;return $scope.getKey($scope.currentNode)};id=1;$scope._findContainer=function(){return $scope._findScopeContainer().$modelValue};$scope._findScopeContainer=function(){var cs;cs=$scope.currentScope;while(!cs.$modelValue.type.match(/Container$/)){cs=cs.$parentNodeScope}return cs};$scope._findScopeByKey=function(k){var cs;cs=$scope.currentScope;while(!(cs.$modelValue.title===k)){cs=cs.$parentNodeScope}return cs};$scope.newGrantRule=function(){var l,n,node;node=$scope._findContainer();l=node.nodes.length;n=l>0?l-1:0;return node.nodes.push({id:node.id+"/n"+id++,title:"New rule",re:"Message",comment:"New rule",data:"1",type:"grant"})};$scope.newRule=function(){var l,n,node;node=$scope._findContainer();l=node.nodes.length;n=l>0?l-1:0;return node.nodes.splice(n,0,{id:node.id+"/n"+id++,title:"New rule",re:"^/new",comment:"New rule",data:"accept",type:"rule"})};$scope.newPost=function(){var node;node=$scope._findContainer();return node.nodes.push({id:node.id+"/n"+id++,title:"/absolute/path/to/form",data:{},type:"post"})};$scope.newPostVar=function(){if($scope.currentNode.data.vars==null){$scope.currentNode.data.vars=[]}return $scope.currentNode.data.vars.push(["var1","$uid"])};$scope.newAuthChoice=function(){var node;node=$scope._findContainer();node.nodes.push({id:node.id+"/n"+id++,title:"1_Key",data:["Null","Null","Null"],type:"authChoice"});return $scope.execFilters($scope._findScopeByKey("authParams"))};$scope.newHashEntry=function(){var node;node=$scope._findContainer();return node.nodes.push({id:node.id+"/n"+id++,title:"new",data:"",type:"keyText"})};$scope.newCat=function(){var cs;cs=$scope.currentScope;if(cs.$modelValue.type==="menuApp"){cs=cs.$parentNodeScope}return cs.$modelValue.nodes.push({id:cs.$modelValue.id+"/n"+id++,title:"New category",type:"menuCat",nodes:[]})};$scope.newApp=function(){var cs;cs=$scope.currentScope;if(cs.$modelValue.type==="menuApp"){cs=cs.$parentNodeScope}return cs.$modelValue.nodes.push({id:cs.$modelValue.id+"/n"+id++,title:"New application",type:"menuApp",data:{description:"New app description",uri:"https://test.example.com/",logo:"network.png",display:"auto"}})};$scope.newCmbMod=function(){var node;node=$scope._findContainer();node.nodes.push({id:node.id+"/n"+id++,title:"new",type:"cmbModule",data:{type:"LDAP",for:"0",over:[]}});return $scope.execFilters($scope._findScopeByKey("authParams"))};$scope.newSfExtra=function(){var node;node=$scope._findContainer();return node.nodes.push({id:node.id+"/n"+id++,title:"new",type:"sfExtra",data:{type:"",rule:"",logo:"",label:"",over:[]}})};$scope.newSfOver=function(){var d;d=$scope.currentNode.data;if(!d.over){d.over=[]}return d.over.push(["new"+id++,""])};$scope.newCmbOver=function(){var d;d=$scope.currentNode.data;if(!d.over){d.over=[]}return d.over.push(["new"+id++,""])};$scope.newChoiceOver=function(){var d;d=$scope.currentNode.data;console.log("data",d);if(!d[5]){d[5]=[]}return d[5].push(["new"+id++,""])};$scope.addHost=function(){var cn;cn=$scope.currentNode;if(!cn.data){cn.data=[]}return cn.data.push({k:"newHost",h:[{k:"key",v:"uid"}]})};$scope.addSamlAttribute=function(){var node;node=$scope._findContainer();return node.nodes.push({id:node.id+"/n"+id++,title:"new",type:"samlAttribute",data:["0","New","",""]})};$scope.addVhost=function(){var name;name=$scope.domain?"."+$scope.domain.data:".example.com";$scope.message={title:"virtualHostName",field:"hostname"};return $scope.showModal("prompt.html",name).then(function(){var n;n=$scope.result;if(n){return $scope.addTemplateNode(n,"virtualHost")}})};$scope.duplicateVhost=function(){var name;name=$scope.domain?"."+$scope.domain.data:".example.com";$scope.message={title:"virtualHostName",field:"hostname"};return $scope.showModal("prompt.html",name).then(function(){var n;n=$scope.result;return $scope.duplicateNode(n,"virtualHost",$scope.currentNode.title)})};$scope.addSamlIDP=function(){return $scope.newTemplateNode("samlIDPMetaDataNode","samlPartnerName","idp-example")};$scope.addSamlSP=function(){return $scope.newTemplateNode("samlSPMetaDataNode","samlPartnerName","sp-example")};$scope.addOidcOp=function(){return $scope.newTemplateNode("oidcOPMetaDataNode","oidcOPName","op-example")};$scope.addOidcRp=function(){return $scope.newTemplateNode("oidcRPMetaDataNode","oidcRPName","rp-example")};$scope.addCasSrv=function(){return $scope.newTemplateNode("casSrvMetaDataNode","casPartnerName","srv-example")};$scope.addCasApp=function(){return $scope.newTemplateNode("casAppMetaDataNode","casPartnerName","app-example")};$scope.newTemplateNode=function(type,title,init){$scope.message={title:title,field:"name"};return $scope.showModal("prompt.html",init).then(function(){var name;name=$scope.result;if(name){return $scope.addTemplateNode(name,type)}})};$scope.addTemplateNode=function(name,type){var cs,t;cs=$scope.currentScope;while(cs.$modelValue.title!==type+"s"){cs=cs.$parentNodeScope}t={id:type+"s/new__"+name,title:name,type:type,nodes:templates(type,"new__"+name)};setDefault(t.nodes);cs.$modelValue.nodes.push(t);cs.expand();return t};setDefault=function(node){var len,n,o;for(o=0,len=node.length;o0){tmp=p.nodes[ind];p.nodes[ind]=p.nodes[ind-1];p.nodes[ind-1]=tmp}return ind};$scope.inSelect=function(value){var len,n,o,ref;ref=$scope.currentNode.select;for(o=0,len=ref.length;o0?node.comment:node.re};$scope.filters={};$scope.execFilters=function(scope){var filter,func,ref;scope=scope?scope:$scope;ref=$scope.filters;for(filter in ref){func=ref[filter];if($scope.filters.hasOwnProperty(filter)){return window.filterFunctions[filter](scope,$q,func)}}return false};$scope.stoggle=function(scope){var node;node=scope.$modelValue;_stoggle(node);return scope.toggle()};_stoggle=function(node){var a,len,len1,len2,n,o,q,r,ref,ref1,ref2;ref=["nodes","nodes_cond"];for(o=0,len=ref.length;o0?{title:"badRequest",message:r,items:[]}:{title:"networkProblem",message:"",items:[]},e.showModal("message.html")},e.showModal=function(t,n){var o,i;return i=a.open({templateUrl:t,controller:"ModalInstanceCtrl",size:"lg",resolve:{elem:function(){return function(t){return e[t]}},set:function(){return function(t,n){return e[t]=n}},init:function(){return n}}}),o=r.defer(),i.result.then(function(t){return e.message={title:"",message:"",items:[]},o.resolve(t)},function(t){return e.message={title:"",message:"",items:[]},o.reject(t)}),o.promise},e.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(e.currentNode,e);break;case"string":e[t.action]();break;default:console.log(typeof t.action)}return e.showM=!1},e.home=function(){return e.form="home",e.showM=!1},u=function(t){var r;if(e.message={title:"",message:"",items:[],itemsE:[],itemsNC:[],itemsW:[]},t.needConfirm&&(e.confirmNeeded=!0),t.message&&(e.message.message=t.message),t.details){for(r in t.details)"__changes__"!==r&&("__needConfirmation__"===r?(e.message.itemsNC.push({message:r,items:t.details[r]}),console.log("NeedConfirmation:",e.message.itemsNC)):"__warnings__"===r?(e.message.itemsW.push({message:r,items:t.details[r]}),console.log("Warnings:",e.message.itemsW)):(e.message.itemsE.push({message:r,items:t.details[r]}),console.log("Errors:",e.message.itemsE)));e.message.items=e.message.itemsE.concat(e.message.itemsNC.concat(e.message.itemsW))}return e.waiting=!1,1===t.result?(n.path("/confs/"),e.message.title="successfullySaved"):e.message.title="saveReport",e.showModal("message.html")},e.downloadConf=function(){return window.open(e.confPrefix+e.currentCfg.cfgNum+"?full=1")},e.save=function(){return e.showModal("save.html").then(function(){return e.waiting=!0,e.data.push({id:"cfgLog",title:"cfgLog",data:e.result?e.result:""}),t.post(window.confPrefix+"?cfgNum="+e.currentCfg.cfgNum+(e.forceSave?"&force=1":""),e.data).then(function(t){return e.data.pop(),u(t.data)},function(t){return g(t),e.data.pop()})},function(){return console.log("Saving canceled")}),e.showM=!1},e.saveRawConf=function(n){return e.waiting=!0,t.post(window.confPrefix+"/raw",n).then(function(e){return u(e.data)},g)},e.restore=function(){return e.currentNode=null,e.form="restore"},e.cancel=function(){return e.currentNode.data=null,e.getKey(e.currentNode)},p=1,e._findContainer=function(){return e._findScopeContainer().$modelValue},e._findScopeContainer=function(){var t;for(t=e.currentScope;!t.$modelValue.type.match(/Container$/);)t=t.$parentNodeScope;return t},e._findScopeByKey=function(t){var n;for(n=e.currentScope;n.$modelValue.title!==t;)n=n.$parentNodeScope;return n},e.newGrantRule=function(){var t,n;return n=e._findContainer(),t=n.nodes.length,t>0?t-1:0,n.nodes.push({id:n.id+"/n"+p++,title:"New rule",re:"Message",comment:"New rule",data:"1",type:"grant"})},e.newRule=function(){var t,n,r;return r=e._findContainer(),t=r.nodes.length,n=t>0?t-1:0,r.nodes.splice(n,0,{id:r.id+"/n"+p++,title:"New rule",re:"^/new",comment:"New rule",data:"accept",type:"rule"})},e.newPost=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"/absolute/path/to/form",data:{},type:"post"})},e.newPostVar=function(){return null==e.currentNode.data.vars&&(e.currentNode.data.vars=[]),e.currentNode.data.vars.push(["var1","$uid"])},e.newAuthChoice=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"1_Key",data:["Null","Null","Null"],type:"authChoice"}),e.execFilters(e._findScopeByKey("authParams"))},e.newHashEntry=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"new",data:"",type:"keyText"})},e.newCat=function(){var t;return t=e.currentScope,"menuApp"===t.$modelValue.type&&(t=t.$parentNodeScope),t.$modelValue.nodes.push({id:t.$modelValue.id+"/n"+p++,title:"New category",type:"menuCat",nodes:[]})},e.newApp=function(){var t;return t=e.currentScope,"menuApp"===t.$modelValue.type&&(t=t.$parentNodeScope),t.$modelValue.nodes.push({id:t.$modelValue.id+"/n"+p++,title:"New application",type:"menuApp",data:{description:"New app description",uri:"https://test.example.com/",logo:"network.png",display:"auto"}})},e.newCmbMod=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"new",type:"cmbModule",data:{type:"LDAP",for:"0",over:[]}}),e.execFilters(e._findScopeByKey("authParams"))},e.newSfExtra=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"new",type:"sfExtra",data:{type:"",rule:"",logo:"",label:"",over:[]}})},e.newSfOver=function(){var t;return t=e.currentNode.data,t.over||(t.over=[]),t.over.push(["new"+p++,""])},e.newCmbOver=function(){var t;return t=e.currentNode.data,t.over||(t.over=[]),t.over.push(["new"+p++,""])},e.newChoiceOver=function(){var t;return t=e.currentNode.data,console.log("data",t),t[5]||(t[5]=[]),t[5].push(["new"+p++,""])},e.addHost=function(){var t;return t=e.currentNode,t.data||(t.data=[]),t.data.push({k:"newHost",h:[{k:"key",v:"uid"}]})},e.addSamlAttribute=function(){var t;return t=e._findContainer(),t.nodes.push({id:t.id+"/n"+p++,title:"new",type:"samlAttribute",data:["0","New","",""]})},e.addVhost=function(){var t;return t=e.domain?"."+e.domain.data:".example.com",e.message={title:"virtualHostName",field:"hostname"},e.showModal("prompt.html",t).then(function(){var t;if(t=e.result)return e.addTemplateNode(t,"virtualHost")})},e.duplicateVhost=function(){var t;return t=e.domain?"."+e.domain.data:".example.com",e.message={title:"virtualHostName",field:"hostname"},e.showModal("prompt.html",t).then(function(){var t;return t=e.result,e.duplicateNode(t,"virtualHost",e.currentNode.title)})},e.addSamlIDP=function(){return e.newTemplateNode("samlIDPMetaDataNode","samlPartnerName","idp-example")},e.addSamlSP=function(){return e.newTemplateNode("samlSPMetaDataNode","samlPartnerName","sp-example")},e.addOidcOp=function(){return e.newTemplateNode("oidcOPMetaDataNode","oidcOPName","op-example")},e.addOidcRp=function(){return e.newTemplateNode("oidcRPMetaDataNode","oidcRPName","rp-example")},e.addCasSrv=function(){return e.newTemplateNode("casSrvMetaDataNode","casPartnerName","srv-example")},e.addCasApp=function(){return e.newTemplateNode("casAppMetaDataNode","casPartnerName","app-example")},e.newTemplateNode=function(t,n,r){return e.message={title:n,field:"name"},e.showModal("prompt.html",r).then(function(){var n;if(n=e.result)return e.addTemplateNode(n,t)})},e.addTemplateNode=function(t,n){var r,a;for(r=e.currentScope;r.$modelValue.title!==n+"s";)r=r.$parentNodeScope;return a={id:n+"s/new__"+t,title:t,type:n,nodes:templates(n,"new__"+t)},h(a.nodes),r.$modelValue.nodes.push(a),r.expand(),a},h=function(e){var t,n,r;for(r=0,t=e.length;r0&&(u=i.nodes[n],i.nodes[n]=i.nodes[n-1],i.nodes[n-1]=u),n},e.inSelect=function(t){var n,r,a,o;for(o=e.currentNode.select,a=0,n=o.length;a0?e.comment:e.re},e.filters={},e.execFilters=function(t){var n,a,o;t=t||e,o=e.filters;for(n in o)if(a=o[n],e.filters.hasOwnProperty(n))return window.filterFunctions[n](t,r,a);return!1},e.stoggle=function(e){var t;return t=e.$modelValue,c(t),e.toggle()},c=function(t){var n,r,a,o,i,s,u,l,d,c,f;for(d=["nodes","nodes_cond"],s=0,r=d.length;s level', level, 'over', over); if (level === 1 && v.length > over) { return t + "=" + v + "*&groupBy=substr(" + t + "," + (level + over + 1) + ")"; } else { @@ -81,15 +82,17 @@ } }, ipAddr: function(t, v, level, over) { - if (level > 0 && level < 4) { - return t + "=" + v + "*&groupBy=net(" + t + "," + (16 * level + 4 * (over + 1)) + ",2)"; + console.log('overSchema => 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 { return null; } }, _startTime: function(t, v, level, over) { + console.log('overSchema => level', level, 'over', over); if (level > 3) { - return t + "=" + v + "*&groupBy=substr(" + t + "," + (9 + level + over + 1) + ")"; + return t + "=" + v + "*&groupBy=substr(" + t + "," + (10 + level + over) + ")"; } else { return null; } 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 fd81b7d01..484af0880 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 categories,hiddenAttributes,llapp,max,menu,overScheme,schemes;max=25;schemes={_whatToTrace:[function(t,v){return"groupBy=substr("+t+",1)"},function(t,v){return t+"="+v+"*&groupBy="+t},function(t,v){return t+"="+v}],ipAddr:[function(t,v){return"groupBy=net("+t+",16,1)"},function(t,v){if(!v.match(/:/)){v=v+"."}return t+"="+v+"*&groupBy=net("+t+",32,2)"},function(t,v){if(!v.match(/:/)){v=v+"."}return t+"="+v+"*&groupBy=net("+t+",48,3)"},function(t,v){if(!v.match(/:/)){v=v+"."}return t+"="+v+"*&groupBy=net("+t+",128,4)"},function(t,v){return t+"="+v+"&groupBy=_whatToTrace"},function(t,v,q){return q.replace(/\&groupBy.*$/,"")+("&_whatToTrace="+v)}],_startTime:[function(t,v){return"groupBy=substr("+t+",8)"},function(t,v){return t+"="+v+"*&groupBy=substr("+t+",10)"},function(t,v){return t+"="+v+"*&groupBy=substr("+t+",11)"},function(t,v){return t+"="+v+"*&groupBy=substr("+t+",12)"},function(t,v){return t+"="+v+"*&groupBy=_whatToTrace"},function(t,v,q){console.log(t);console.log(v);console.log(q);return q.replace(/\&groupBy.*$/,"")+("&_whatToTrace="+v)}],doubleIp:[function(t,v){return t},function(t,v){return"_whatToTrace="+v+"&groupBy=ipAddr"},function(t,v,q){return q.replace(/\&groupBy.*$/,"")+("&ipAddr="+v)}]};overScheme={_whatToTrace:function(t,v,level,over){if(level===1&&v.length>over){return t+"="+v+"*&groupBy=substr("+t+","+(level+over+1)+")"}else{return null}},ipAddr:function(t,v,level,over){if(level>0&&level<4){return t+"="+v+"*&groupBy=net("+t+","+(16*level+4*(over+1))+",2)"}else{return null}},_startTime:function(t,v,level,over){if(level>3){return t+"="+v+"*&groupBy=substr("+t+","+(9+level+over+1)+")"}else{return null}}};hiddenAttributes="_password";categories={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"]};menu={session:[{title:"deleteSession",icon:"trash"}],home:[]};llapp=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]);llapp.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function($scope,$translator,$location,$q,$http){var autoId,c,pathEvent,sessionType;$scope.links=links;$scope.menulinks=menulinks;$scope.staticPrefix=staticPrefix;$scope.scriptname=scriptname;$scope.formPrefix=formPrefix;$scope.impPrefix=impPrefix;$scope.sessionTTL=sessionTTL;$scope.availableLanguages=availableLanguages;$scope.waiting=true;$scope.showM=false;$scope.showT=true;$scope.data=[];$scope.currentScope=null;$scope.currentSession=null;$scope.menu=menu;$scope.translateP=$translator.translateP;$scope.translate=$translator.translate;$scope.translateTitle=function(node){return $translator.translateField(node,"title")};sessionType="global";$scope.menuClick=function(button){if(button.popup){window.open(button.popup)}else{if(!button.action){button.action=button.title}switch(typeof button.action){case"function":button.action($scope.currentNode,$scope);break;case"string":$scope[button.action]();break;default:console.log(typeof button.action)}}return $scope.showM=false};$scope.deleteOIDCConsent=function(rp,epoch){var item;item=angular.element(".data-"+epoch);item.remove();$scope.waiting=true;$http["delete"](scriptname+"sessions/OIDCConsent/"+sessionType+"/"+$scope.currentSession.id+"?rp="+rp+"&epoch="+epoch).then(function(response){return $scope.waiting=false},function(resp){return $scope.waiting=false});return $scope.showT=false};$scope.deleteSession=function(){$scope.waiting=true;return $http["delete"](scriptname+"sessions/"+sessionType+"/"+$scope.currentSession.id).then(function(response){$scope.currentSession=null;$scope.currentScope.remove();return $scope.waiting=false},function(resp){$scope.currentSession=null;$scope.currentScope.remove();return $scope.waiting=false})};$scope.stoggle=function(scope){var node;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()};$scope.displaySession=function(scope){var sessionId,transformSession;transformSession=function(session){var _insert,array,attr,attrs,category,cv,element,epoch,i,id,j,k,key,l,len,len1,len2,len3,len4,len5,m,name,o,oidcConsent,p,real,ref,ref1,res,sfDevice,spoof,subres,time,title,tmp,value;_insert=function(re,title){var key,reg,tmp,value;tmp=[];reg=new RegExp(re);for(key in session){value=session[key];if(key.match(reg)&&value){tmp.push({title:key,value:value});delete session[key]}}if(tmp.length>0){return res.push({title:title,nodes:tmp})}};time=session._utime;id=session._session_id;for(key in session){value=session[key];if(!value){delete session[key]}else{if(typeof session==="string"&&value.match(/; /)){session[key]=value.split("; ")}if(typeof session[key]!=="object"){if(hiddenAttributes.match(new RegExp("\b"+key+"\b"))){session[key]="********"}else if(key.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)){session[key]=$scope.localeDate(value)}else if(key.match(/^(_startTime|_updateTime)$/)){session[key]=$scope.strToLocaleDate(value)}}}}res=[];for(category in categories){attrs=categories[category];subres=[];for(i=0,len=attrs.length;i0){res.push({title:"__"+category+"__",nodes:subres})}}_insert("^openid","OpenID");_insert("^notification_(.+)","__notificationsDone__");if(session._loginHistory){tmp=[];if(session._loginHistory.successLogin){ref=session._loginHistory.successLogin;for(m=0,len3=ref.length;mb.title){return 1}else if(a.title real attribute");real.push(element)}else{spoof.push(element)}}tmp=spoof.concat(real);res.push({title:"__attributesAndMacros__",nodes:tmp});return{_utime:time,id:id,nodes:res}};$scope.currentScope=scope;sessionId=scope.$modelValue.session;$http.get(scriptname+"sessions/"+sessionType+"/"+sessionId).then(function(response){return $scope.currentSession=transformSession(response.data)});return $scope.showT=false};$scope.localeDate=function(s){var d;d=new Date(s*1e3);return d.toLocaleString()};$scope.isValid=function(epoch,type){var isValid,now,path;path=$location.path();now=Date.now()/1e3;console.log("Path",path);console.log("Session epoch",epoch);console.log("Current date",now);console.log("Session TTL",sessionTTL);isValid=now-epochmax&&overScheme[$scope.type]){if(tmp=overScheme[$scope.type]($scope.type,value,level,over,currentQuery)){over++;query=tmp;level=level-1}else{over=0}}else{over=0}return $http.get(scriptname+"sessions/"+sessionType+"?"+query).then(function(response){var data,i,len,n,ref;data=response.data;if(data.result){ref=data.values;for(i=0,len=ref.length;i 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),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("overSchema => level",n,"over",o),n>3?e+"="+t+"*&groupBy=substr("+e+","+(10+n+o)+")":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,a,l,c){var p,d,g,h;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")},h="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/"+h+"/"+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/"+h+"/"+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,a,l,c,p,d,g,h,f,_,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(a in e){for(u=e[a],R=[],d=0,T=u.length;d0&&I.push({title:"__"+a+"__",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/"+h+"/"+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=a.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]&&(f=i[n.type](n.type,e,r,u,a))?(u++,d=f,r-=1):u=0,c.get(scriptname+"sessions/"+h+"?"+d).then(function(o){var i,s,a,l,c;if(i=o.data,i.result){for(c=i.values,s=0,a=c.length;s0){if(offset.length){found=-1;for(i=m=0,len2=offset.length;m0){$scope.message={title:"badRequest",message:j,items:[]}}else{$scope.message={title:"networkProblem",message:"",items:[]}}return $scope.showModal("message.html")};$scope.showModal=function(tpl,init){var d,modalInstance;modalInstance=$uibModal.open({templateUrl:tpl,controller:"ModalInstanceCtrl",size:"lg",resolve:{elem:function(){return function(s){return $scope[s]}},set:function(){return function(f,s){return $scope[f]=s}},init:function(){return init}}});d=$q.defer();modalInstance.result.then(function(msgok){$scope.message={title:"",message:"",items:[]};return d.resolve(msgok)},function(msgnok){$scope.message={title:"",message:"",items:[]};return d.reject(msgnok)});return d.promise};$scope.menuClick=function(button){if(button.popup){window.open(button.popup)}else{if(!button.action){button.action=button.title}switch(typeof button.action){case"function":button.action($scope.currentNode,$scope);break;case"string":$scope[button.action]();break;default:console.log(typeof button.action)}}return $scope.showM=false};$scope.home=function(){$scope.form="homeViewer";return $scope.showM=false};$scope.downloadConf=function(){return window.open($scope.viewPrefix+$scope.currentCfg.cfgNum+"?full=1")};id=1;$scope._findContainer=function(){return $scope._findScopeContainer().$modelValue};$scope._findScopeContainer=function(){var cs;cs=$scope.currentScope;while(!cs.$modelValue.type.match(/Container$/)){cs=cs.$parentNodeScope}return cs};$scope._findScopeByKey=function(k){var cs;cs=$scope.currentScope;while(!(cs.$modelValue.title===k)){cs=cs.$parentNodeScope}return cs};_getAll=function(node){var d,d2;d=$q.defer();d2=$q.defer();if(node._nodes){_stoggle(node);d.resolve()}else if(node.cnodes){_download(node).then(function(){return d.resolve()})}else if(node.nodes||node.data){d.resolve()}else{$scope.getKey(node).then(function(){return d.resolve()})}d.promise.then(function(){var l,len,n,ref,t;t=[];if(node.nodes){ref=node.nodes;for(l=0,len=ref.length;l0){tmp=p.nodes[ind];p.nodes[ind]=p.nodes[ind-1];p.nodes[ind-1]=tmp}return ind};$scope.inSelect=function(value){var l,len,n,ref;ref=$scope.currentNode.select;for(l=0,len=ref.length;l0?node.comment:node.re};$scope.filters={};$scope.execFilters=function(scope){var filter,func,ref;scope=scope?scope:$scope;ref=$scope.filters;for(filter in ref){func=ref[filter];if($scope.filters.hasOwnProperty(filter)){return window.filterFunctions[filter](scope,$q,func)}}return false};$scope.stoggle=function(scope){var node;node=scope.$modelValue;_stoggle(node);return scope.toggle()};_stoggle=function(node){var a,l,len,len1,len2,m,n,o,ref,ref1,ref2;ref=["nodes","nodes_cond"];for(l=0,len=ref.length;l0?{title:"badRequest",message:r,items:[]}:{title:"networkProblem",message:"",items:[]},e.showModal("message.html")},e.showModal=function(t,n){var a,i;return i=o.open({templateUrl:t,controller:"ModalInstanceCtrl",size:"lg",resolve:{elem:function(){return function(t){return e[t]}},set:function(){return function(t,n){return e[t]=n}},init:function(){return n}}}),a=r.defer(),i.result.then(function(t){return e.message={title:"",message:"",items:[]},a.resolve(t)},function(t){return e.message={title:"",message:"",items:[]},a.reject(t)}),a.promise},e.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(e.currentNode,e);break;case"string":e[t.action]();break;default:console.log(typeof t.action)}return e.showM=!1},e.home=function(){return e.form="homeViewer",e.showM=!1},e.downloadConf=function(){return window.open(e.viewPrefix+e.currentCfg.cfgNum+"?full=1")},d=1,e._findContainer=function(){return e._findScopeContainer().$modelValue},e._findScopeContainer=function(){var t;for(t=e.currentScope;!t.$modelValue.type.match(/Container$/);)t=t.$parentNodeScope;return t},e._findScopeByKey=function(t){var n;for(n=e.currentScope;n.$modelValue.title!==t;)n=n.$parentNodeScope;return n},u=function(t){var n,o;return n=r.defer(),o=r.defer(),t._nodes?(c(t),n.resolve()):t.cnodes?s(t).then(function(){return n.resolve()}):t.nodes||t.data?n.resolve():e.getKey(t).then(function(){return n.resolve()}),n.promise.then(function(){var e,n,a,i,l;if(l=[],t.nodes)for(i=t.nodes,e=0,n=i.length;e0&&(s=i.nodes[n],i.nodes[n]=i.nodes[n-1],i.nodes[n-1]=s),n},e.inSelect=function(t){var n,r,o,a;for(a=e.currentNode.select,n=0,r=a.length;n0?e.comment:e.re},e.filters={},e.execFilters=function(t){var n,o,a;t=t||e,a=e.filters;for(n in a)if(o=a[n],e.filters.hasOwnProperty(n))return window.filterFunctions[n](t,r,o);return!1},e.stoggle=function(e){var t;return t=e.$modelValue,c(t),e.toggle()},c=function(t){var n,r,o,a,i,l,s,u,c,d,f;for(c=["nodes","nodes_cond"],r=0,o=c.length;rstruct.json" /> - + @@ -100,89 +100,6 @@ - - - - - - - - - - - - - -