Merge branch 'v2.0'

This commit is contained in:
Christophe Maudoux 2019-08-15 22:29:06 +02:00
commit 28732d614b
121 changed files with 760 additions and 242 deletions

View File

@ -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 <antoine.rosier@mon-refuge.fr>
License: CC-3
Files: lemonldap-ng-portal/site/htdocs/static/common/modules/Twitter.png
Copyright: Paul Schulerr, https://schulerr.deviantart.com
License: CC-3

View File

@ -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

View File

@ -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__" : {

View File

@ -28,6 +28,7 @@ totp2fActivation = 1
totp2fSelfRegistration = 1
captcha_mail_enabled = 0
portalDisplayResetPassword = 1
;pdataDomain = example.com
[handler]

View File

@ -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

View File

@ -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

View File

@ -184,7 +184,6 @@ sub defaultValues {
'oidcServiceMetaDataCheckSessionURI' => 'checksession.html',
'oidcServiceMetaDataEndSessionURI' => 'logout',
'oidcServiceMetaDataFrontChannelURI' => 'flogout',
'oidcServiceMetaDataIssuer' => 'http://auth.example.com',
'oidcServiceMetaDataJWKSURI' => 'jwks',
'oidcServiceMetaDataRegistrationURI' => 'register',
'oidcServiceMetaDataTokenURI' => 'token',

View File

@ -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

View File

@ -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'

View File

@ -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 => {

View File

@ -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"',
}
},

View File

@ -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

View File

@ -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

View File

@ -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'
]

View File

@ -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});

View File

@ -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":"AAcA,IAAIA,OAASA,QAAW,SAASC,GAChC,aAEA,GAAyB,oBAAdC,YAA6B,eAAeC,KAAKD,UAAUE,WAAtE,CAGA,IACGC,EAAMJ,EAAKK,SAEXC,EAAU,WACX,OAAON,EAAKO,KAAOP,EAAKQ,WAAaR,GAEpCS,EAAYL,EAAIM,gBAAgB,+BAAgC,KAChEC,EAAoB,aAAcF,EASlCG,EAAgBZ,EAAKa,wBACrBC,EAASd,EAAKe,mBAAqBH,GAAiBZ,EAAKgB,qBACzDC,EAAgB,SAASC,IACzBlB,EAAKmB,cAAgBnB,EAAKoB,YAAY,WACtC,MAAMF,GACJ,IAEFG,EAAsB,2BACtBC,EAAc,EAKdC,EAAS,SAASC,GACL,SAAVC,IACiB,iBAATD,EACVlB,IAAUoB,gBAAgBF,GAE1BA,EAAKG,SAGH3B,EAAK4B,OACRH,IAEAL,WAAWK,EAZgB,MAe3BI,EAAW,SAASC,EAAWC,EAAaC,GAG7C,IADA,IAAIC,GADJF,EAAc,GAAGG,OAAOH,IACJI,OACbF,KAAK,CACX,IAAIG,EAAWN,EAAU,KAAOC,EAAYE,IAC5C,GAAwB,mBAAbG,EACV,IACCA,EAASC,KAAKP,EAAWE,GAASF,GACjC,MAAOZ,GACRD,EAAcC,MAKhBoB,EAAW,SAASC,GAErB,MAAI,6EAA6ErC,KAAKqC,EAAKC,MACnF,IAAIC,KAAK,CAAC,SAAUF,GAAO,CAACC,KAAMD,EAAKC,OAExCD,GAENG,EAAY,SAASH,EAAMI,GAC5BJ,EAAOD,EAASC,GAQE,SAAfK,IACDf,EAASC,EAAW,qCAAqCe,MAAM,MAGnD,SAAXC,KAEGC,GAAiBC,IACpBA,EAAa1C,IAAU2C,gBAAgBV,IAEpCW,EACHA,EAAYC,SAASC,KAAOJ,EAGbK,MADDrD,EAAKsD,KAAKN,EAAY,WACU,oBAAXO,SAElCvD,EAAKmD,SAASC,KAAOJ,GAGvBlB,EAAU0B,WAAa1B,EAAU2B,KACjCb,IACArB,EAAOyB,GAEM,SAAZU,EAAqBC,GACtB,OAAO,WACN,GAAI7B,EAAU0B,aAAe1B,EAAU2B,KACtC,OAAOE,EAAKC,MAAMC,KAAMC,YA/B5B,IAIGd,EACAE,EA+BAa,EAnCAjC,EAAY+B,KACZrB,EAAOD,EAAKC,KACZO,GAAe,EAgCfiB,EAAsB,CAACC,QAAQ,EAAMC,WAAW,GAOnD,GAJApC,EAAU0B,WAAa1B,EAAUqC,KAEhCxB,EADIA,GACG,WAEJhC,EAQH,OAPAqC,EAAa1C,IAAU2C,gBAAgBV,GACvC9B,EAAU2C,KAAOJ,EACjBvC,EAAU2D,SAAWzB,EAxGb,SAAS0B,GAClB,IAAIrC,EAAQ5B,EAAIkE,YAAY,eAC5BtC,EAAMuC,eACL,SAAS,GAAM,EAAOvE,EAAM,EAAG,EAAG,EAAG,EAAG,GACtC,GAAO,GAAO,GAAO,EAAO,EAAG,MAElCqE,EAAKG,cAAcxC,GAmGlByC,CAAMhE,GACNqB,EAAU0B,WAAa1B,EAAU2B,KACjCb,SACArB,EAAOyB,GAQJhD,EAAK4B,QAAUY,GAAQA,IAASnB,IACnC0C,EAAQxB,EAAKwB,OAASxB,EAAKmC,YAC3BnC,EAAOwB,EAAM1B,KAAKE,EAAM,EAAGA,EAAKoC,KAAMtD,GACtC0B,GAAe,GAKZnC,GAA0B,aAAT+B,IACpBA,GAAQ,aAELH,IAASnB,IAAuBT,IACnCsC,EAAclD,GAEVc,GAILQ,GAAeiB,EAAKoC,KACpB7D,EAAOd,EAAK4E,UAAWtD,EAAaoC,EAAU,SAASmB,GACtDA,EAAGC,KAAKC,aAAa,QAASf,EAAqBN,EAAU,SAASsB,GAC1D,SAAPC,IACHD,EAAIE,QAAQvC,EAAMqB,EAAqBN,EAAU,SAASlC,GACzDA,EAAK2D,aAAazB,EAAU,SAAS0B,GACpCA,EAAOC,WAAa,SAASrD,GAC5BkB,EAAYC,SAASC,KAAO5B,EAAK8D,QACjCxD,EAAU0B,WAAa1B,EAAU2B,KACjC5B,EAASC,EAAW,WAAYE,GAChCT,EAAOC,IAER4D,EAAOG,QAAU,WAChB,IAAIC,EAAQJ,EAAOI,MACfA,EAAMC,OAASD,EAAME,WACxB5C,KAGF,kCAAkCD,MAAM,KAAK8C,QAAQ,SAAS3D,GAC7DoD,EAAO,KAAOpD,GAASF,EAAU,KAAOE,KAEzCoD,EAAOQ,MAAMrD,GACbT,EAAU+D,MAAQ,WACjBT,EAAOS,QACP/D,EAAU0B,WAAa1B,EAAU2B,MAElC3B,EAAU0B,WAAa1B,EAAUgE,UAC9BhD,KACDA,GAELkC,EAAIE,QAAQvC,EAAM,CAACsB,QAAQ,GAAQP,EAAU,SAASlC,GAErDA,EAAKG,SACLsD,MACGvB,EAAU,SAASxC,GAClBA,EAAGuE,OAASvE,EAAG6E,cAClBd,IAEAnC,SAGCA,KACDA,IA7CHA,KA+CAkD,EAAWtD,EAAUuD,UAMxB,MAAyB,oBAAdhG,WAA6BA,UAAUiG,iBAC1C,SAAS3D,EAAMI,GACrB,OAAO1C,UAAUiG,iBAAiB5D,EAASC,GAAOI,KAIpDqD,EAASH,MAAQ,WACAhC,KACNL,WADMK,KACiBJ,KACjC5B,EAFgBgC,KAEI,UAErBmC,EAASxC,WAAawC,EAAS7B,KAAO,EACtC6B,EAASF,QAAU,EACnBE,EAASvC,KAAO,EAEhBuC,EAASR,MACTQ,EAASG,aACTH,EAASI,WACTJ,EAASK,QACTL,EAASM,QACTN,EAAST,QACTS,EAASX,WACR,KA3BW,SAAS9C,EAAMI,GACzB,OAAO,IAAID,EAAUH,EAAMI,MAlMP,CAgOH,oBAAT4D,MAAwBA,MACb,oBAAXC,QAA0BA,QACjC3C,KAAK4C,SAMa,oBAAXC,QAA0BA,OAAOC,QAC1CD,OAAOC,QAAQ5G,OAASA,OACI,oBAAX6G,QAAqC,OAAXA,QAAmC,MAAdA,OAAOC,KACvED,OAAO,GAAI,WACT,OAAO7G"}

View File

@ -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 {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1149,6 +1149,7 @@ function templates(tpl,key) {
"type" : "bool"
},
{
"default" : "",
"get" : tpl+"s/"+key+"/"+"vhostAliases",
"id" : tpl+"s/"+key+"/"+"vhostAliases",
"title" : "vhostAliases"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(function(){var llapp;llapp=angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"],function($rootScopeProvider){return $rootScopeProvider.digestTtl(15)});llapp.controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function($scope,$http,$q,$translator,$location){var buildTree,getCfg,init,pathEvent,readDiff,reverseTree,toNodes;$scope.links=links;$scope.menulinks=menulinks;$scope.staticPrefix=staticPrefix;$scope.scriptname=scriptname;$scope.availableLanguages=availableLanguages;$scope.waiting=true;$scope.showM=false;$scope.cfg=[];$scope.data={};$scope.currentNode=null;$scope.translateTitle=function(node){return $translator.translateField(node,"title")};$scope.translateP=$translator.translateP;$scope.translate=$translator.translate;$scope.toggle=function(scope){return scope.toggle()};$scope.stoggle=function(scope,node){$scope.currentNode=node;return scope.toggle()};$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.getLanguage=function(lang){$scope.lang=lang;$scope.init();return $scope.showM=false};getCfg=function(b,n){var d;d=$q.defer();if($scope.cfg[b]==null||$scope.cfg[b]!==n){$http.get(""+confPrefix+n).then(function(response){var date;if(response&&response.data){$scope.cfg[b]=response.data;date=new Date(response.data.cfgDate*1e3);$scope.cfg[b].date=date.toLocaleString();console.log("Metadatas of cfg "+n+" loaded");return d.resolve("OK")}else{return d.reject(response)}},function(response){console.log(response);return d.reject("NOK")})}else{d.resolve()}return d.promise};init=function(){var d;$scope.message=null;$scope.currentNode=null;d=$q.defer();return $http.get(scriptname+"diff/"+$scope.cfg[0].cfgNum+"/"+$scope.cfg[1].cfgNum).then(function(response){var data;data=[];data=readDiff(response.data[0],response.data[1]);$scope.data=buildTree(data);$scope.message="";return $scope.waiting=false},function(response){return $scope.message=$scope.translate("error")+" : "+response.statusLine})};readDiff=function(c1,c2,tr){var k,res,tmp,v;if(tr==null){tr=true}res=[];for(k in c1){v=c1[k];if(tr){tmp={title:$scope.translate(k),id:k}}else{tmp={title:k}}if(!k.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)){if(v!=null&&typeof v==="object"){if(v.constructor==="array"){tmp.oldvalue=v;tmp.newvalue=c2[k]}else if(typeof c2[k]==="object"){tmp.nodes=readDiff(c1[k],c2[k],false)}else{tmp.oldnodes=toNodes(v,"old")}}else{tmp.oldvalue=v;tmp.newvalue=c2[k]}res.push(tmp)}}for(k in c2){v=c2[k];if(!(k.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||c1[k]!=null)){if(tr){tmp={title:$scope.translate(k),id:k}}else{tmp={title:k}}if(v!=null&&typeof v==="object"){if(v.constructor==="array"){tmp.newvalue=v}else{console.log("Iteration");tmp.newnodes=toNodes(v,"new")}}else{tmp.newvalue=v}res.push(tmp)}}return res};toNodes=function(c,s){var k,res,tmp,v;res=[];for(k in c){v=c[k];tmp={title:k};if(typeof v==="object"){if(v.constructor==="array"){tmp[s+"value"]=v}else{tmp[s+"nodes"]=toNodes(c[k],s)}}else{tmp[s+"value"]=v}res.push(tmp)}return res};reverseTree=[];buildTree=function(data){var elem,found,i,j,l,len,len1,len2,m,n,node,offset,path,res;if(reverseTree==null){return data}res=[];for(j=0,len=data.length;j<len;j++){elem=data[j];offset=res;path=reverseTree[elem.id]!=null?reverseTree[elem.id].split("/"):"";for(l=0,len1=path.length;l<len1;l++){node=path[l];if(node.length>0){if(offset.length){found=-1;for(i=m=0,len2=offset.length;m<len2;i=++m){n=offset[i];if(n.id===node){found=i}}if(found!==-1){offset=offset[found].nodes}else{offset.push({id:node,title:$scope.translate(node),nodes:[]});offset=offset[offset.length-1].nodes}}else{offset.push({id:node,title:$scope.translate(node),nodes:[]});offset=offset[0].nodes}}}offset.push(elem)}return res};$scope.newDiff=function(){return $location.path("/"+$scope.cfg[0].cfgNum+"/"+$scope.cfg[1].cfgNum)};pathEvent=function(event,next,current){var n;n=next.match(new RegExp("#!?/(latest|[0-9]+)(?:/(latest|[0-9]+))?$"));if(n===null){$location.path("/latest")}else{$scope.waiting=true;$q.all([$translator.init($scope.lang),$http.get(staticPrefix+"reverseTree.json").then(function(response){reverseTree=response.data;return console.log("Structure loaded")}),getCfg(0,n[1]),n[2]!=null?getCfg(1,n[2]):void 0]).then(function(){if(n[2]!=null){return init()}else{if($scope.cfg[0].prev){$scope.cfg[1]=$scope.cfg[0];return getCfg(0,$scope.cfg[1].prev).then(function(){return init()})}else{$scope.data=[];return $scope.waiting=false}}},function(){$scope.message=$scope.translate("error");return $scope.waiting=false})}return true};return $scope.$on("$locationChangeSuccess",pathEvent)}])}).call(this);
(function(){angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"],function(t){return t.digestTtl(15)}).controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function(p,o,l,r,i){var n,u,c,t,s,h,f;return p.links=links,p.menulinks=menulinks,p.staticPrefix=staticPrefix,p.scriptname=scriptname,p.availableLanguages=availableLanguages,p.waiting=!0,p.showM=!1,p.cfg=[],p.data={},p.currentNode=null,p.translateTitle=function(t){return r.translateField(t,"title")},p.translateP=r.translateP,p.translate=r.translate,p.toggle=function(t){return t.toggle()},p.stoggle=function(t,e){return p.currentNode=e,t.toggle()},p.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(p.currentNode,p);break;case"string":p[t.action]();break;default:console.log(typeof t.action)}return p.showM=!1},p.getLanguage=function(t){return p.lang=t,p.init(),p.showM=!1},u=function(n,a){var r;return r=l.defer(),null==p.cfg[n]||p.cfg[n]!==a?o.get(""+confPrefix+a).then(function(t){var e;return t&&t.data?(p.cfg[n]=t.data,e=new Date(1e3*t.data.cfgDate),p.cfg[n].date=e.toLocaleString(),console.log("Metadatas of cfg "+a+" loaded"),r.resolve("OK")):r.reject(t)},function(t){return console.log(t),r.reject("NOK")}):r.resolve(),r.promise},c=function(){return p.message=null,p.currentNode=null,l.defer(),o.get(scriptname+"diff/"+p.cfg[0].cfgNum+"/"+p.cfg[1].cfgNum).then(function(t){var e;return[],e=s(t.data[0],t.data[1]),p.data=n(e),p.message="",p.waiting=!1},function(t){return p.message=p.translate("error")+" : "+t.statusLine})},s=function(t,e,n){var a,r,o,l;for(a in null==n&&(n=!0),r=[],t)l=t[a],o=n?{title:p.translate(a),id:a}:{title:a},a.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||(null!=l&&"object"==typeof l?"array"===l.constructor?(o.oldvalue=l,o.newvalue=e[a]):"object"==typeof e[a]?o.nodes=s(t[a],e[a],!1):o.oldnodes=f(l,"old"):(o.oldvalue=l,o.newvalue=e[a]),r.push(o));for(a in e)l=e[a],a.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||null!=t[a]||(o=n?{title:p.translate(a),id:a}:{title:a},null!=l&&"object"==typeof l?"array"===l.constructor?o.newvalue=l:(console.log("Iteration"),o.newnodes=f(l,"new")):o.newvalue=l,r.push(o));return r},f=function(t,e){var n,a,r,o;for(n in a=[],t)r={title:n},"object"==typeof(o=t[n])?"array"===o.constructor?r[e+"value"]=o:r[e+"nodes"]=f(t[n],e):r[e+"value"]=o,a.push(r);return a},h=[],n=function(t){var e,n,a,r,o,l,i,u,c,s,f,g,d;if(null==h)return t;for(d=[],r=0,l=t.length;r<l;r++){for(e=t[r],f=d,o=0,i=(g=null!=h[e.id]?h[e.id].split("/"):"").length;o<i;o++)if(0<(s=g[o]).length)if(f.length){for(n=-1,a=c=0,u=f.length;c<u;a=++c)f[a].id===s&&(n=a);f=-1!==n?f[n].nodes:(f.push({id:s,title:p.translate(s),nodes:[]}),f[f.length-1].nodes)}else f.push({id:s,title:p.translate(s),nodes:[]}),f=f[0].nodes;f.push(e)}return d},p.newDiff=function(){return i.path("/"+p.cfg[0].cfgNum+"/"+p.cfg[1].cfgNum)},t=function(t,e,n){var a;return null===(a=e.match(new RegExp("#!?/(latest|[0-9]+)(?:/(latest|[0-9]+))?$")))?i.path("/latest"):(p.waiting=!0,l.all([r.init(p.lang),o.get(staticPrefix+"reverseTree.json").then(function(t){return h=t.data,console.log("Structure loaded")}),u(0,a[1]),null!=a[2]?u(1,a[2]):void 0]).then(function(){return null!=a[2]?c():p.cfg[0].prev?(p.cfg[1]=p.cfg[0],u(0,p.cfg[1].prev).then(function(){return c()})):(p.data=[],p.waiting=!1)},function(){return p.message=p.translate("error"),p.waiting=!1})),!0},p.$on("$locationChangeSuccess",t)}])}).call(this);

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(function(){var filterFunctions;filterFunctions={authParams:function(scope,$q,node){var i,len,n,ref,wait;wait=[];ref=node.nodes;for(i=0,len=ref.length;i<len;i++){n=ref[i];wait.push(scope.getKey(n))}return $q.all(wait).then(function(){var all,j,k,l,len1,len2,len3,len4,len5,len6,m,nToShow,nd,o,p,q,r,ref1,ref2,ref3,ref4,restart,s;all=false;nToShow=[];p=function(s){var tmp;tmp=s.toLowerCase();if(tmp==="openidconnect"){tmp="oidc"}nToShow.push(tmp+"Params");if(tmp==="ad"){return nToShow.push("ldapParams")}};ref1=node.nodes;for(j=0,len1=ref1.length;j<len1;j++){n=ref1[j];p(n.data)}ref2=node.nodes_cond;for(k=0,len2=ref2.length;k<len2;k++){n=ref2[k];restart=0;nd=n._nodes?n._nodes:n.nodes;if(node.nodes[0].data==="Choice"&&n.id==="choiceParams"){console.log("Choice is selected");if(nd[1].cnodes){restart++}else{nd=nd[1]._nodes?nd[1]._nodes:nd[1].nodes;for(l=0,len3=nd.length;l<len3;l++){m=nd[l];ref3=m.data;for(o=0,len4=ref3.length;o<len4;o++){s=ref3[o];if(typeof s==="string"){p(s)}}}}}else if(node.nodes[0].data==="Combination"&&n.id==="combinationParams"){console.log("Combination is selected");if(nd[1].cnodes){restart++}else{nd=nd[1]._nodes?nd[1]._nodes:nd[1].nodes;for(q=0,len5=nd.length;q<len5;q++){m=nd[q];p(m.data.type)}}}if(restart){scope.waiting=true;scope.download({$modelValue:nd[1]}).then(function(){return filterFunctions.authParams(scope,$q,node)});return}}ref4=node.nodes_cond;for(r=0,len6=ref4.length;r<len6;r++){n=ref4[r];if(!all&&nToShow.indexOf(n.id)===-1){n.show=false}else{n.show=true}}})}};window.filterFunctions=filterFunctions}).call(this);
(function(){var F;F={authParams:function(C,b,y){var n,o,x,e,s;for(s=[],n=0,o=(e=y.nodes).length;n<o;n++)x=e[n],s.push(C.getKey(x));return b.all(s).then(function(){var n,o,e,s,t,a,d,i,r,l,c,f,h,u,g,m,_,p,w,P,v;for(!1,l=[],h=function(n){var o;if("openidconnect"===(o=n.toLowerCase())&&(o="oidc"),l.push(o+"Params"),"ad"===o)return l.push("ldapParams")},n=0,s=(m=y.nodes).length;n<s;n++)h((x=m[n]).data);for(o=0,t=(_=y.nodes_cond).length;o<t;o++){if(P=0,c=(x=_[o])._nodes?x._nodes:x.nodes,"Choice"===y.nodes[0].data&&"choiceParams"===x.id)if(console.log("Choice is selected"),c[1].cnodes)P++;else for(e=0,a=(c=c[1]._nodes?c[1]._nodes:c[1].nodes).length;e<a;e++)for(f=0,d=(p=c[e].data).length;f<d;f++)"string"==typeof(v=p[f])&&h(v);else if("Combination"===y.nodes[0].data&&"combinationParams"===x.id)if(console.log("Combination is selected"),c[1].cnodes)P++;else for(u=0,i=(c=c[1]._nodes?c[1]._nodes:c[1].nodes).length;u<i;u++)h(c[u].data.type);if(P)return C.waiting=!0,void C.download({$modelValue:c[1]}).then(function(){return F.authParams(C,b,y)})}for(g=0,r=(w=y.nodes_cond).length;g<r;g++)x=w[g],-1===l.indexOf(x.id)?x.show=!1:x.show=!0})}},window.filterFunctions=F}).call(this);

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-manager/site/htdocs/static/js/filterFunctions.js"],"names":["filterFunctions","authParams","scope","$q","node","i","len","n","ref","wait","nodes","length","push","getKey","all","then","j","k","l","len1","len2","len3","len4","len5","len6","nToShow","nd","o","p","q","r","ref1","ref2","ref3","ref4","restart","s","tmp","toLowerCase","data","nodes_cond","_nodes","id","console","log","cnodes","type","waiting","download","$modelValue","indexOf","show","window","call","this"],"mappings":"CACA,WACE,IAAIA,EAEJA,EAAkB,CAChBC,WAAY,SAASC,EAAOC,EAAIC,GAC9B,IAAIC,EAAGC,EAAKC,EAAGC,EAAKC,EAGpB,IAFAA,EAAO,GAEFJ,EAAI,EAAGC,GADZE,EAAMJ,EAAKM,OACWC,OAAQN,EAAIC,EAAKD,IACrCE,EAAIC,EAAIH,GACRI,EAAKG,KAAKV,EAAMW,OAAON,IAEzB,OAAOJ,EAAGW,IAAIL,GAAMM,KAAK,WACvB,IAASC,EAAGC,EAAGC,EAAGC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAASC,EAASC,EAAIC,EAAGC,EAAGC,EAAGC,EAAGC,EAAMC,EAAMC,EAAMC,EAAMC,EAASC,EAenH,KAdM,EACNX,EAAU,GACVG,EAAI,SAASQ,GACX,IAAIC,EAMJ,GAJY,mBADZA,EAAMD,EAAEE,iBAEND,EAAM,QAERZ,EAAQb,KAAKyB,EAAM,UACP,OAARA,EACF,OAAOZ,EAAQb,KAAK,eAInBI,EAAI,EAAGG,GADZY,EAAO3B,EAAKM,OACYC,OAAQK,EAAIG,EAAMH,IAExCY,GADArB,EAAIwB,EAAKf,IACLuB,MAGN,IAAKtB,EAAI,EAAGG,GADZY,EAAO5B,EAAKoC,YACY7B,OAAQM,EAAIG,EAAMH,IAAK,CAI7C,GAFAkB,EAAU,EACVT,GAFAnB,EAAIyB,EAAKf,IAEFwB,OAASlC,EAAEkC,OAASlC,EAAEG,MACF,WAAvBN,EAAKM,MAAM,GAAG6B,MAA8B,iBAAThC,EAAEmC,GAEvC,GADAC,QAAQC,IAAI,sBACRlB,EAAG,GAAGmB,OACRV,SAGA,IAAKjB,EAAI,EAAGG,GADZK,EAAKA,EAAG,GAAGe,OAASf,EAAG,GAAGe,OAASf,EAAG,GAAGhB,OACnBC,OAAQO,EAAIG,EAAMH,IAGtC,IAAKS,EAAI,EAAGL,GADZW,EADIP,EAAGR,GACEqB,MACe5B,OAAQgB,EAAIL,EAAMK,IAEvB,iBADjBS,EAAIH,EAAKN,KAEPC,EAAEQ,QAKL,GAA2B,gBAAvBhC,EAAKM,MAAM,GAAG6B,MAAmC,sBAAThC,EAAEmC,GAEnD,GADAC,QAAQC,IAAI,2BACRlB,EAAG,GAAGmB,OACRV,SAGA,IAAKN,EAAI,EAAGN,GADZG,EAAKA,EAAG,GAAGe,OAASf,EAAG,GAAGe,OAASf,EAAG,GAAGhB,OACnBC,OAAQkB,EAAIN,EAAMM,IAEtCD,EADIF,EAAGG,GACHU,KAAKO,MAIf,GAAIX,EAOF,OANAjC,EAAM6C,SAAU,OAChB7C,EAAM8C,SAAS,CACbC,YAAevB,EAAG,KACjBX,KAAK,WACN,OAAOf,EAAgBC,WAAWC,EAAOC,EAAIC,KAMnD,IAAK0B,EAAI,EAAGN,GADZU,EAAO9B,EAAKoC,YACY7B,OAAQmB,EAAIN,EAAMM,IACxCvB,EAAI2B,EAAKJ,IAC8B,IAA3BL,EAAQyB,QAAQ3C,EAAEmC,IAC5BnC,EAAE4C,MAAO,EAET5C,EAAE4C,MAAO,MAOnBC,OAAOpD,gBAAkBA,IAExBqD,KAAKC"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
/*
LemonLDAP::NG Manager client

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
/*
* Sessions explorer
@ -74,6 +74,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 {
@ -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;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.7
// Generated by CoffeeScript 1.12.8
/*
diff.html script

View File

@ -1 +1 @@
(function(){var llapp;llapp=angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"],function($rootScopeProvider){return $rootScopeProvider.digestTtl(15)});llapp.controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function($scope,$http,$q,$translator,$location){var buildTree,getCfg,init,pathEvent,readDiff,reverseTree,toNodes;$scope.links=links;$scope.menulinks=menulinks;$scope.staticPrefix=staticPrefix;$scope.scriptname=scriptname;$scope.availableLanguages=availableLanguages;$scope.waiting=true;$scope.showM=false;$scope.cfg=[];$scope.data={};$scope.currentNode=null;$scope.translateTitle=function(node){return $translator.translateField(node,"title")};$scope.translateP=$translator.translateP;$scope.translate=$translator.translate;$scope.toggle=function(scope){return scope.toggle()};$scope.stoggle=function(scope,node){$scope.currentNode=node;return scope.toggle()};$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.getLanguage=function(lang){$scope.lang=lang;$scope.init();return $scope.showM=false};getCfg=function(b,n){var d;d=$q.defer();if($scope.cfg[b]==null||$scope.cfg[b]!==n){$http.get(""+confPrefix+n).then(function(response){var date;if(response&&response.data){$scope.cfg[b]=response.data;date=new Date(response.data.cfgDate*1e3);$scope.cfg[b].date=date.toLocaleString();console.log("Metadatas of cfg "+n+" loaded");return d.resolve("OK")}else{return d.reject(response)}},function(response){console.log(response);return d.reject("NOK")})}else{d.resolve()}return d.promise};init=function(){var d;$scope.message=null;$scope.currentNode=null;d=$q.defer();return $http.get(scriptname+"view/diff/"+$scope.cfg[0].cfgNum+"/"+$scope.cfg[1].cfgNum).then(function(response){var data;data=[];data=readDiff(response.data[0],response.data[1]);$scope.data=buildTree(data);$scope.message="";return $scope.waiting=false},function(response){return $scope.message=$scope.translate("error")+" : "+response.statusLine})};readDiff=function(c1,c2,tr){var k,res,tmp,v;if(tr==null){tr=true}res=[];for(k in c1){v=c1[k];if(tr){tmp={title:$scope.translate(k),id:k}}else{tmp={title:k}}if(!k.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)){if(v!=null&&typeof v==="object"){if(v.constructor==="array"){tmp.oldvalue=v;tmp.newvalue=c2[k]}else if(typeof c2[k]==="object"){tmp.nodes=readDiff(c1[k],c2[k],false)}else{tmp.oldnodes=toNodes(v,"old")}}else{tmp.oldvalue=v;tmp.newvalue=c2[k]}res.push(tmp)}}for(k in c2){v=c2[k];if(!(k.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||c1[k]!=null)){if(tr){tmp={title:$scope.translate(k),id:k}}else{tmp={title:k}}if(v!=null&&typeof v==="object"){if(v.constructor==="array"){tmp.newvalue=v}else{console.log("Iteration");tmp.newnodes=toNodes(v,"new")}}else{tmp.newvalue=v}res.push(tmp)}}return res};toNodes=function(c,s){var k,res,tmp,v;res=[];for(k in c){v=c[k];tmp={title:k};if(typeof v==="object"){if(v.constructor==="array"){tmp[s+"value"]=v}else{tmp[s+"nodes"]=toNodes(c[k],s)}}else{tmp[s+"value"]=v}res.push(tmp)}return res};reverseTree=[];buildTree=function(data){var elem,found,i,j,l,len,len1,len2,m,n,node,offset,path,res;if(reverseTree==null){return data}res=[];for(j=0,len=data.length;j<len;j++){elem=data[j];offset=res;path=reverseTree[elem.id]!=null?reverseTree[elem.id].split("/"):"";for(l=0,len1=path.length;l<len1;l++){node=path[l];if(node.length>0){if(offset.length){found=-1;for(i=m=0,len2=offset.length;m<len2;i=++m){n=offset[i];if(n.id===node){found=i}}if(found!==-1){offset=offset[found].nodes}else{offset.push({id:node,title:$scope.translate(node),nodes:[]});offset=offset[offset.length-1].nodes}}else{offset.push({id:node,title:$scope.translate(node),nodes:[]});offset=offset[0].nodes}}}offset.push(elem)}return res};$scope.newDiff=function(){return $location.path("/"+$scope.cfg[0].cfgNum+"/"+$scope.cfg[1].cfgNum)};pathEvent=function(event,next,current){var n;n=next.match(new RegExp("#!?/(latest|[0-9]+)(?:/(latest|[0-9]+))?$"));if(n===null){$location.path("/latest")}else{$scope.waiting=true;$q.all([$translator.init($scope.lang),$http.get(staticPrefix+"reverseTree.json").then(function(response){reverseTree=response.data;return console.log("Structure loaded")}),getCfg(0,n[1]),n[2]!=null?getCfg(1,n[2]):void 0]).then(function(){if(n[2]!=null){return init()}else{if($scope.cfg[0].prev){$scope.cfg[1]=$scope.cfg[0];return getCfg(0,$scope.cfg[1].prev).then(function(){return init()})}else{$scope.data=[];return $scope.waiting=false}}},function(){$scope.message=$scope.translate("error");return $scope.waiting=false})}return true};return $scope.$on("$locationChangeSuccess",pathEvent)}])}).call(this);
(function(){angular.module("llngConfDiff",["ui.tree","ui.bootstrap","llApp","ngCookies"],function(t){return t.digestTtl(15)}).controller("DiffCtrl",["$scope","$http","$q","$translator","$location",function(p,o,l,r,i){var n,u,c,t,s,h,f;return p.links=links,p.menulinks=menulinks,p.staticPrefix=staticPrefix,p.scriptname=scriptname,p.availableLanguages=availableLanguages,p.waiting=!0,p.showM=!1,p.cfg=[],p.data={},p.currentNode=null,p.translateTitle=function(t){return r.translateField(t,"title")},p.translateP=r.translateP,p.translate=r.translate,p.toggle=function(t){return t.toggle()},p.stoggle=function(t,e){return p.currentNode=e,t.toggle()},p.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(p.currentNode,p);break;case"string":p[t.action]();break;default:console.log(typeof t.action)}return p.showM=!1},p.getLanguage=function(t){return p.lang=t,p.init(),p.showM=!1},u=function(n,a){var r;return r=l.defer(),null==p.cfg[n]||p.cfg[n]!==a?o.get(""+confPrefix+a).then(function(t){var e;return t&&t.data?(p.cfg[n]=t.data,e=new Date(1e3*t.data.cfgDate),p.cfg[n].date=e.toLocaleString(),console.log("Metadatas of cfg "+a+" loaded"),r.resolve("OK")):r.reject(t)},function(t){return console.log(t),r.reject("NOK")}):r.resolve(),r.promise},c=function(){return p.message=null,p.currentNode=null,l.defer(),o.get(scriptname+"view/diff/"+p.cfg[0].cfgNum+"/"+p.cfg[1].cfgNum).then(function(t){var e;return[],e=s(t.data[0],t.data[1]),p.data=n(e),p.message="",p.waiting=!1},function(t){return p.message=p.translate("error")+" : "+t.statusLine})},s=function(t,e,n){var a,r,o,l;for(a in null==n&&(n=!0),r=[],t)l=t[a],o=n?{title:p.translate(a),id:a}:{title:a},a.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||(null!=l&&"object"==typeof l?"array"===l.constructor?(o.oldvalue=l,o.newvalue=e[a]):"object"==typeof e[a]?o.nodes=s(t[a],e[a],!1):o.oldnodes=f(l,"old"):(o.oldvalue=l,o.newvalue=e[a]),r.push(o));for(a in e)l=e[a],a.match(/^cfg(?:Num|Log|Author(?:IP)?|Date)$/)||null!=t[a]||(o=n?{title:p.translate(a),id:a}:{title:a},null!=l&&"object"==typeof l?"array"===l.constructor?o.newvalue=l:(console.log("Iteration"),o.newnodes=f(l,"new")):o.newvalue=l,r.push(o));return r},f=function(t,e){var n,a,r,o;for(n in a=[],t)r={title:n},"object"==typeof(o=t[n])?"array"===o.constructor?r[e+"value"]=o:r[e+"nodes"]=f(t[n],e):r[e+"value"]=o,a.push(r);return a},h=[],n=function(t){var e,n,a,r,o,l,i,u,c,s,f,g,d;if(null==h)return t;for(d=[],r=0,l=t.length;r<l;r++){for(e=t[r],f=d,o=0,i=(g=null!=h[e.id]?h[e.id].split("/"):"").length;o<i;o++)if(0<(s=g[o]).length)if(f.length){for(n=-1,a=c=0,u=f.length;c<u;a=++c)f[a].id===s&&(n=a);f=-1!==n?f[n].nodes:(f.push({id:s,title:p.translate(s),nodes:[]}),f[f.length-1].nodes)}else f.push({id:s,title:p.translate(s),nodes:[]}),f=f[0].nodes;f.push(e)}return d},p.newDiff=function(){return i.path("/"+p.cfg[0].cfgNum+"/"+p.cfg[1].cfgNum)},t=function(t,e,n){var a;return null===(a=e.match(new RegExp("#!?/(latest|[0-9]+)(?:/(latest|[0-9]+))?$")))?i.path("/latest"):(p.waiting=!0,l.all([r.init(p.lang),o.get(staticPrefix+"reverseTree.json").then(function(t){return h=t.data,console.log("Structure loaded")}),u(0,a[1]),null!=a[2]?u(1,a[2]):void 0]).then(function(){return null!=a[2]?c():p.cfg[0].prev?(p.cfg[1]=p.cfg[0],u(0,p.cfg[1].prev).then(function(){return c()})):(p.data=[],p.waiting=!1)},function(){return p.message=p.translate("error"),p.waiting=!1})),!0},p.$on("$locationChangeSuccess",t)}])}).call(this);

File diff suppressed because one or more lines are too long

View File

@ -14,7 +14,7 @@ This file contains:
(function() {
var llapp;
llapp = angular.module('llngManager', ['ui.tree', 'ui.bootstrap', 'llApp', 'ngCookies']);
llapp = angular.module('llngViewer', ['ui.tree', 'ui.bootstrap', 'llApp', 'ngCookies']);
/*
@ -410,6 +410,15 @@ This file contains:
$scope.showT = false;
return setHelp(scope);
};
$scope.keyWritable = function(scope) {
var node;
node = scope.$modelValue;
if (node.type && node.type.match(/^(?:s(?:aml(?:(?:ID|S)PMetaDataNod|Attribut)e|fExtra)|(?:(?:cmbMod|r)ul|authChoic)e|(?:virtualHos|keyTex)t|menu(?:App|Cat))$/)) {
return true;
} else {
return false;
}
};
$scope.getKey = function(node) {
var d, i, l, len, n, ref, tmp;
d = $q.defer();
@ -442,10 +451,15 @@ This file contains:
} else {
node.data = data.value;
}
if (node.data.toString().match(/_Hidden_$/)) {
if (node.data && node.data.toString().match(/_Hidden_$/)) {
node.type = 'text';
node.data = '######';
}
if (node.type && node.type.match(/^(bool|trool|boolOrExpr)$/)) {
if (typeof node.data === 'string' && node.data.match(/^(?:-1|0|1)$/)) {
node.data = parseInt(node.data, 10);
}
}
if (node.type && node.type.match(/^int$/)) {
node.data = parseInt(node.data, 10);
} else if (node.type && node.type.match(/^(saml(Service|Assertion)|blackWhiteList)$/) && !(typeof node.data === 'object')) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@
<link rel="prefetch" href="<TMPL_VAR NAME="STATIC_PREFIX">struct.json" />
</head>
<body ng-app="llngManager" ng-controller="TreeCtrl" ng-csp>
<body ng-app="llngViewer" ng-controller="TreeCtrl" ng-csp>
<TMPL_INCLUDE NAME="menubar.tpl">
@ -100,89 +100,6 @@
</ol>
</script>
<!-- Prompt -->
<script type="text/ng-template" id="prompt.html">
<div role="alertdialog" aria-labelledby="ptitle" aria-describedby="ptitle">
<div class="modal-header">
<h3 id="ptitle" class="modal-title" trspan="{{elem('message').title}}" />
</div>
<div class="modal-body">
<div class="input-group maxw">
<label class="input-group-addon" id="promptlabel" for="promptinput" trspan="{{elem('message').field}}"/>
<input id="promptinput" class="form-control" ng-model="result" aria-describedby="promptlabel"/>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="promptok" ng-click="ok()" trspan="ok" role="button"></button>
<button class="btn btn-warning" ng-click="cancel()" trspan="cancel" role="button"></button>
</div>
</div>
</script>
<!-- Message display -->
<script type="text/ng-template" id="message.html">
<div role="alertdialog" aria-labelledby="mtitle" aria-describedby="mbody">
<div class="modal-header">
<h3 id="mtitle" class="modal-title" trspan="{{elem('message').title}}" />
</div>
<div id="mbody" class="modal-body">
<div class="modal-p">{{translateP(elem('message').message)}}</div>
<ul class="main-modal-ul" ng-model="elem('message').items">
<li ng-repeat="item in elem('message').items" ng-include="'messageitem.html'"/>
</ul>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="messageok" ng-click="ok()" trspan="ok" role="button"></button>
<button class="btn btn-warning" ng-click="cancel()" ng-if="elem('message').displayCancel" trspan="cancel" role="button"></button>
</div>
</div>
</script>
<script type="text/ng-template" id="messageitem.html">
<div class="modal-p">{{translateP(item.message)}}</div>
<ul class="modal-ul" ng-model="item.items">
<li ng-repeat="item in item.items" ng-include="'messageitem.html'"/>
</ul>
</script>
<!-- Password question -->
<script type="text/ng-template" id="password.html">
<div role="alertdialog" aria-labelledby="pwtitle" aria-describedby="pwtitle">
<div class="modal-header">
<h3 id="pwtitle" class="modal-title" trspan="enterPassword" />
</div>
<div class="modal-body">
<div class="input-group maxw">
<label class="input-group-addon" id="mlabel" for="mdPwd" trspan="password"/>
<input id="mdPwd" class="form-control" ng-model="result" aria-describedby="mlabel"/>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="passwordok" ng-click="ok()" trspan="ok" role="button"></button>
<button class="btn btn-warning" ng-click="cancel()" trspan="cancel" role="button"></button>
</div>
</div>
</script>
<!-- Save confirm -->
<script type="text/ng-template" id="save.html">
<div role="alertdialog" aria-labelledby="stitle" aria-describedby="sbody">
<div class="modal-header">
<h3 id="stitle" class="modal-title" trspan="savingConfirmation" />
</div>
<div id="sbody" class="modal-body">
<div class="input-group maxw">
<label id="slabel" class="input-group-addon" for="longtextinput" trspan="cfgLog"/>
<textarea id="longtextinput" rows="5" class="form-control" ng-model="result" aria-describedby="slabel" />
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="saveok" ng-click="ok()" trspan="ok" role="button"></button>
<button class="btn btn-warning" ng-click="cancel()" trspan="cancel" role="button"></button>
</div>
</div>
</script>
<TMPL_INCLUDE NAME="scripts.tpl">
<!-- //if:jsminified

View File

@ -9,10 +9,10 @@ lib/Lemonldap/NG/Portal.pm
lib/Lemonldap/NG/Portal/2F/Engines/Default.pm
lib/Lemonldap/NG/Portal/2F/Ext2F.pm
lib/Lemonldap/NG/Portal/2F/Mail2F.pm
lib/Lemonldap/NG/Portal/2F/Radius.pm
lib/Lemonldap/NG/Portal/2F/Register/TOTP.pm
lib/Lemonldap/NG/Portal/2F/Register/U2F.pm
lib/Lemonldap/NG/Portal/2F/Register/Yubikey.pm
lib/Lemonldap/NG/Portal/2F/Radius.pm
lib/Lemonldap/NG/Portal/2F/REST.pm
lib/Lemonldap/NG/Portal/2F/TOTP.pm
lib/Lemonldap/NG/Portal/2F/U2F.pm
@ -175,6 +175,7 @@ site/htdocs/static/bootstrap/css/styles.css
site/htdocs/static/bootstrap/css/styles.min.css
site/htdocs/static/bootstrap/js/skin.js
site/htdocs/static/bootstrap/js/skin.min.js
site/htdocs/static/bootstrap/js/skin.min.js.map
site/htdocs/static/bootstrap/totp.png
site/htdocs/static/bootstrap/u2f.png
site/htdocs/static/bootstrap/utotp.png
@ -201,6 +202,7 @@ site/htdocs/static/bwr/bootstrap/dist/js/bootstrap.min.js
site/htdocs/static/bwr/bootstrap/dist/js/bootstrap.min.js.map
site/htdocs/static/bwr/fingerprintjs2/fingerprint2.js
site/htdocs/static/bwr/fingerprintjs2/fingerprint2.min.js
site/htdocs/static/bwr/fingerprintjs2/fingerprint2.min.js.map
site/htdocs/static/bwr/font-awesome/css/font-awesome.css
site/htdocs/static/bwr/font-awesome/css/font-awesome.css.map
site/htdocs/static/bwr/font-awesome/css/font-awesome.min.css
@ -212,10 +214,13 @@ site/htdocs/static/bwr/font-awesome/fonts/fontawesome-webfont.woff2
site/htdocs/static/bwr/font-awesome/fonts/FontAwesome.otf
site/htdocs/static/bwr/jquery-ui/jquery-ui.js
site/htdocs/static/bwr/jquery-ui/jquery-ui.min.js
site/htdocs/static/bwr/jquery-ui/jquery-ui.min.js.map
site/htdocs/static/bwr/jquery.cookie/jquery.cookie.js
site/htdocs/static/bwr/jquery.cookie/jquery.cookie.min.js
site/htdocs/static/bwr/jquery.cookie/jquery.cookie.min.js.map
site/htdocs/static/bwr/jquery/dist/jquery.js
site/htdocs/static/bwr/jquery/dist/jquery.min.js
site/htdocs/static/bwr/jquery/dist/jquery.min.js.map
site/htdocs/static/bwr/jquery/dist/jquery.min.map
site/htdocs/static/bwr/qrious/dist/qrious.js
site/htdocs/static/bwr/qrious/dist/qrious.js.map
@ -271,40 +276,58 @@ site/htdocs/static/common/icons/warning.png
site/htdocs/static/common/it.png
site/htdocs/static/common/js/2fregistration.js
site/htdocs/static/common/js/2fregistration.min.js
site/htdocs/static/common/js/2fregistration.min.js.map
site/htdocs/static/common/js/autoRenew.js
site/htdocs/static/common/js/autoRenew.min.js
site/htdocs/static/common/js/autoRenew.min.js.map
site/htdocs/static/common/js/confirm.js
site/htdocs/static/common/js/confirm.min.js
site/htdocs/static/common/js/confirm.min.js.map
site/htdocs/static/common/js/favapps.js
site/htdocs/static/common/js/favapps.min.js
site/htdocs/static/common/js/favapps.min.js.map
site/htdocs/static/common/js/idpchoice.js
site/htdocs/static/common/js/idpchoice.min.js
site/htdocs/static/common/js/idpchoice.min.js.map
site/htdocs/static/common/js/info.js
site/htdocs/static/common/js/info.min.js
site/htdocs/static/common/js/info.min.js.map
site/htdocs/static/common/js/kerberos.js
site/htdocs/static/common/js/kerberos.min.js
site/htdocs/static/common/js/kerberos.min.js.map
site/htdocs/static/common/js/kerberosChoice.js
site/htdocs/static/common/js/kerberosChoice.min.js
site/htdocs/static/common/js/kerberosChoice.min.js.map
site/htdocs/static/common/js/oidcchecksession.js
site/htdocs/static/common/js/oidcchecksession.min.js
site/htdocs/static/common/js/oidcchecksession.min.js.map
site/htdocs/static/common/js/portal.js
site/htdocs/static/common/js/portal.min.js
site/htdocs/static/common/js/portal.min.js.map
site/htdocs/static/common/js/redirect.js
site/htdocs/static/common/js/redirect.min.js
site/htdocs/static/common/js/redirect.min.js.map
site/htdocs/static/common/js/registerbrowser.js
site/htdocs/static/common/js/registerbrowser.min.js
site/htdocs/static/common/js/registerbrowser.min.js.map
site/htdocs/static/common/js/ssl.js
site/htdocs/static/common/js/ssl.min.js
site/htdocs/static/common/js/ssl.min.js.map
site/htdocs/static/common/js/sslChoice.js
site/htdocs/static/common/js/sslChoice.min.js
site/htdocs/static/common/js/sslChoice.min.js.map
site/htdocs/static/common/js/totpregistration.js
site/htdocs/static/common/js/totpregistration.min.js
site/htdocs/static/common/js/totpregistration.min.js.map
site/htdocs/static/common/js/u2f-api.js
site/htdocs/static/common/js/u2f-api.min.js
site/htdocs/static/common/js/u2f-api.min.js.map
site/htdocs/static/common/js/u2fcheck.js
site/htdocs/static/common/js/u2fcheck.min.js
site/htdocs/static/common/js/u2fcheck.min.js.map
site/htdocs/static/common/js/u2fregistration.js
site/htdocs/static/common/js/u2fregistration.min.js
site/htdocs/static/common/js/u2fregistration.min.js.map
site/htdocs/static/common/logos/logo_llng_400px.png
site/htdocs/static/common/logos/logo_llng_old.png
site/htdocs/static/common/modules/Apache.png
@ -316,6 +339,7 @@ site/htdocs/static/common/modules/Kerberos.png
site/htdocs/static/common/modules/LinkedIn.png
site/htdocs/static/common/modules/OpenIDConnect.png
site/htdocs/static/common/modules/SAML.png
site/htdocs/static/common/modules/Slave.png
site/htdocs/static/common/modules/SSL.png
site/htdocs/static/common/modules/Twitter.png
site/htdocs/static/common/modules/WebID.png
@ -482,6 +506,7 @@ t/32-Auth-and-issuer-OIDC-implicit.t
t/32-Auth-and-issuer-OIDC-sorted.t
t/32-CAS-10.t
t/32-OIDC-RP-rule.t
t/32-OIDC-Token-Spoof.t
t/33-Auth-and-issuer-OpenID2.t
t/34-Auth-Proxy-and-REST-Server.t
t/34-Auth-Proxy-and-SOAP-Server.t
@ -496,6 +521,7 @@ t/36-Combination-Kerberos-or-Demo.t
t/36-Combination-with-Choice.t
t/36-Combination-with-over.t
t/36-Combination-with-token.t
t/36-Combination-with-TOTP.t
t/36-Combination.t
t/37-CAS-App-to-SAML-IdP-POST-with-WAYF.t
t/37-CAS-App-to-SAML-IdP-POST.t
@ -551,6 +577,7 @@ t/66-CDA-with-REST.t
t/66-CDA-with-SOAP.t
t/66-CDA.t
t/67-CheckUser-with-Global-token.t
t/67-Checkuser-with-Impersonation-and-whatToTrace.t
t/67-CheckUser-with-issuer-SAML-POST.t
t/67-CheckUser-with-token.t
t/67-CheckUser.t
@ -583,6 +610,7 @@ t/76-2F-Ext-with-BruteForce.t
t/76-2F-Ext-with-CodeActivation.t
t/76-2F-Ext-with-GrantSession.t
t/76-2F-Ext-with-History.t
t/77-2F-Extra.t
t/77-2F-Mail-with-global-storage.t
t/77-2F-Mail.t
t/78-2F-Upgrade.t

View File

@ -98,16 +98,14 @@ sub init {
# Each first method must call getStack() to get the auth scheme available for
# the current user
## Auth steps
#############
sub extractFormInfo {
my ( $self, $req ) = @_;
return $self->try( 0, 'extractFormInfo', $req );
}
# Note that UserDB::Combination uses the same object.
sub getUser {
return $_[0]->try( 1, 'getUser', $_[1] );
}
sub authenticate {
return $_[0]->try( 0, 'authenticate', $_[1] );
}
@ -116,14 +114,6 @@ sub setAuthSessionInfo {
return $_[0]->try( 0, 'setAuthSessionInfo', $_[1] );
}
sub setSessionInfo {
return $_[0]->try( 1, 'setSessionInfo', $_[1] );
}
sub setGroups {
return $_[0]->try( 1, 'setGroups', $_[1] );
}
sub getForm {
my ( $self, $req ) = @_;
return [ split /[, ]\s*/, $self->conf->{combinationForms} ]
@ -157,6 +147,21 @@ sub authLogout {
return $res;
}
## UserDB steps
###############
# Note that UserDB::Combination uses the same object.
sub getUser {
return $_[0]->try( 1, 'getUser', $_[1] );
}
sub setSessionInfo {
return $_[0]->try( 1, 'setSessionInfo', $_[1] );
}
sub setGroups {
return $_[0]->try( 1, 'setGroups', $_[1] );
}
sub getStack {
my ( $self, $req, @steps ) = @_;
return $req->data->{combinationStack}
@ -224,7 +229,6 @@ sub name {
package Lemonldap::NG::Portal::Lib::Combination::UserLogger;
# This logger rewrite "warn" to "notice"
sub new {
my ( $class, $realLogger ) = @_;
return bless { logger => $realLogger }, $class;

View File

@ -39,6 +39,14 @@ has configStorage => (
);
has ssoMatchUrl => ( is => 'rw' );
has iss => (
is => 'ro',
lazy => 1,
default => sub {
$_[0]->conf->{oidcServiceMetaDataIssuer} || $_[0]->conf->{portal};
}
);
# OIDC has 7 endpoints managed here as PSGI endpoints or in run() [Main/Issuer.pm
# manage transparent authentication for run()]:
# - authorize : in run()
@ -698,8 +706,7 @@ sub run {
my $user_id = $req->{sessionInfo}->{$user_id_attribute};
my $id_token_payload_hash = {
iss => $self->conf->{oidcServiceMetaDataIssuer}
, # Issuer Identifier
iss => $self->iss, # Issuer Identifier
sub => $user_id, # Subject Identifier
aud => [$client_id], # Audience
exp => $id_token_exp, # expiration
@ -838,8 +845,7 @@ sub run {
my $user_id = $req->{sessionInfo}->{$user_id_attribute};
my $id_token_payload_hash = {
iss => $self->conf->{oidcServiceMetaDataIssuer}
, # Issuer Identifier
iss => $self->iss, # Issuer Identifier
sub => $user_id, # Subject Identifier
aud => [$client_id], # Audience
exp => $id_token_exp, # expiration
@ -1074,8 +1080,7 @@ sub token {
}
# Check we have the same client_id value
unless ( $client_id eq $codeSession->data->{client_id} )
{
unless ( $client_id eq $codeSession->data->{client_id} ) {
$self->userLogger->error( "Provided client_id does not match "
. $codeSession->data->{client_id} );
return $self->p->sendError( $req, 'invalid_grant', 400 );
@ -1146,11 +1151,11 @@ sub token {
my $id_token_acr = "loa-" . $apacheSession->data->{authenticationLevel};
my $id_token_payload_hash = {
iss => $self->conf->{oidcServiceMetaDataIssuer}, # Issuer Identifier
sub => $user_id, # Subject Identifier
aud => [$client_id], # Audience
exp => $id_token_exp, # expiration
iat => time, # Issued time
iss => $self->iss,
sub => $user_id, # Subject Identifier
aud => [$client_id], # Audience
exp => $id_token_exp, # expiration
iat => time, # Issued time
auth_time => $apacheSession->data->{_lastAuthnUTime}
, # Authentication time
acr => $id_token_acr, # Authentication Context Class Reference
@ -1462,10 +1467,9 @@ sub logout {
->{oidcRPMetaDataOptionsUserIDAttr}
|| $self->conf->{whatToTrace};
my $user_id = $req->{sessionInfo}->{$user_id_attribute};
my $iss = $self->conf->{oidcServiceMetaDataIssuer};
$url .= ( $url =~ /\?/ ? '&' : '?' )
. build_urlencoded(
iss => $iss,
iss => $self->iss,
sid => $user_id
);
}
@ -1495,7 +1499,7 @@ sub metadata {
my $checksession_uri = $self->conf->{oidcServiceMetaDataCheckSessionURI};
my $path = $self->path . '/';
my $issuer = $self->conf->{oidcServiceMetaDataIssuer};
my $issuer = $self->iss;
$path = "/" . $path unless ( $issuer =~ /\/$/ );
my $baseUrl = $issuer . $path;

View File

@ -34,7 +34,7 @@ has cache => (
}
else {
$_[0]->{p}->logger->error(
'Local storage not defined, token will be store in global storage'
'Local storage not defined, token will be stored into global storage'
);
return undef;
}

View File

@ -55,6 +55,19 @@ sub handler {
}
my $res = $self->Lemonldap::NG::Common::PSGI::Router::handler($req);
# Avoid permanent loop 'Portal <-> _url' if pdata cookie is not removed
my $url64 = encode_base64( $req->userData->{_url}, '' );
if ( $url64
and !$req->pdata->{keepPdata}
and $req->userData->{_session_id}
and ( $req->{env}->{HTTP_COOKIE} =~ /$url64/ ) )
{
$self->logger->debug("Force cleaning pdata");
$self->logger->warn("pdata cookie domain must be set")
unless ( $self->conf->{pdataDomain} );
$req->pdata( {} );
}
# Save pdata
if ( $sp or %{ $req->pdata } ) {
my %v = (

View File

@ -314,7 +314,7 @@ sub display {
$self->{conf}->{impersonationMergeSSOgroups} ? 'alert-warning'
: 'alert-info'
),
LOGIN => $req->{userData}->{uid},
LOGIN => $req->{userData}->{ $self->conf->{whatToTrace} },
ATTRIBUTES => $array_attrs->[2],
MACROS => $array_attrs->[1],
GROUPS => $array_attrs->[0],

View File

@ -27,6 +27,10 @@ has ott => (
sub init {
my ($self) = @_;
if ( $self->conf->{forceGlobalStorageUpgradeOTT} ) {
$self->logger->debug("Upgrade token will be stored into global storage");
$self->ott->cache(undef);
}
$self->addAuthRoute( upgradesession => 'ask', ['GET'] );
$self->addAuthRoute( upgradesession => 'confirm', ['POST'] );
}

View File

@ -1 +1 @@
$(document).ready(function(){$("div.message-positive").addClass("alert-success");$("div.message-warning").addClass("alert-warning");$("div.message-negative").addClass("alert-danger");$("table.info").addClass("table");$(".notifCheck").addClass("checkbox");$('.collapse li[class!="dropdown"]').on("click",function(){if(!$(".navbar-toggler").hasClass("collapsed")){$(".navbar-toggler").trigger("click")}})});
$(document).ready(function(){$("div.message-positive").addClass("alert-success"),$("div.message-warning").addClass("alert-warning"),$("div.message-negative").addClass("alert-danger"),$("table.info").addClass("table"),$(".notifCheck").addClass("checkbox"),$('.collapse li[class!="dropdown"]').on("click",function(){$(".navbar-toggler").hasClass("collapsed")||$(".navbar-toggler").trigger("click")})});

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/bootstrap/js/skin.js"],"names":["$","document","ready","addClass","on","hasClass","trigger"],"mappings":"AAAAA,EAAEC,UAAUC,MAAM,WAGhBF,EAAE,wBAAwBG,SAAS,iBACnCH,EAAE,uBAAuBG,SAAS,iBAClCH,EAAE,wBAAwBG,SAAS,gBAEnCH,EAAE,cAAcG,SAAS,SAEzBH,EAAE,eAAeG,SAAS,YAG1BH,EAAE,mCAAmCI,GAAG,QAAS,WAC1CJ,EAAE,mBAAmBK,SAAS,cACjCL,EAAE,mBAAmBM,QAAQ"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,4 +5,4 @@
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==="object"){factory(require("jquery"))}else{factory(jQuery)}})(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s)}function decode(s){return config.raw?s:decodeURIComponent(s)}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value))}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{s=decodeURIComponent(s.replace(pluses," "));return config.json?JSON.parse(s):s}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value}var config=$.cookie=function(key,value,options){if(value!==undefined&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date;t.setTime(+t+days*864e5)}return document.cookie=[encode(key),"=",stringifyCookieValue(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join("")}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split("; "):[];for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split("=");var name=decode(parts.shift());var cookie=parts.join("=");if(key&&key===name){result=read(cookie,value);break}if(!key&&(cookie=read(cookie))!==undefined){result[name]=cookie}}return result};config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)===undefined){return false}$.cookie(key,"",$.extend({},options,{expires:-1}));return!$.cookie(key)}});
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(jQuery)}(function(m){var i=/\+/g;function v(e){return k.raw?e:encodeURIComponent(e)}function x(e,n){var o=k.raw?e:function(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return e=decodeURIComponent(e.replace(i," ")),k.json?JSON.parse(e):e}catch(e){}}(e);return m.isFunction(n)?n(o):o}var k=m.cookie=function(e,n,o){if(void 0!==n&&!m.isFunction(n)){if("number"==typeof(o=m.extend({},k.defaults,o)).expires){var i=o.expires,r=o.expires=new Date;r.setTime(+r+864e5*i)}return document.cookie=[v(e),"=",function(e){return v(k.json?JSON.stringify(e):String(e))}(n),o.expires?"; expires="+o.expires.toUTCString():"",o.path?"; path="+o.path:"",o.domain?"; domain="+o.domain:"",o.secure?"; secure":""].join("")}for(var t,c=e?void 0:{},u=document.cookie?document.cookie.split("; "):[],a=0,d=u.length;a<d;a++){var f=u[a].split("="),p=(t=f.shift(),k.raw?t:decodeURIComponent(t)),s=f.join("=");if(e&&e===p){c=x(s,n);break}e||void 0===(s=x(s))||(c[p]=s)}return c};k.defaults={},m.removeCookie=function(e,n){return void 0!==m.cookie(e)&&(m.cookie(e,"",m.extend({},n,{expires:-1})),!m.cookie(e))}});

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/bwr/jquery.cookie/jquery.cookie.js"],"names":["factory","define","amd","exports","require","jQuery","$","pluses","encode","s","config","raw","encodeURIComponent","read","converter","value","indexOf","slice","replace","decodeURIComponent","json","JSON","parse","e","parseCookieValue","isFunction","cookie","key","options","undefined","extend","defaults","expires","days","t","Date","setTime","document","stringify","String","stringifyCookieValue","toUTCString","path","domain","secure","join","result","cookies","split","i","l","length","parts","name","shift","removeCookie"],"mappings":";;;;;;;CAOC,SAAUA,GACY,mBAAXC,QAAyBA,OAAOC,IAE1CD,OAAO,CAAC,UAAWD,GACU,iBAAZG,QAEjBH,EAAQI,QAAQ,WAGhBJ,EAAQK,QATV,CAWE,SAAUC,GAEX,IAAIC,EAAS,MAEb,SAASC,EAAOC,GACf,OAAOC,EAAOC,IAAMF,EAAIG,mBAAmBH,GA0B5C,SAASI,EAAKJ,EAAGK,GAChB,IAAIC,EAAQL,EAAOC,IAAMF,EAhB1B,SAA0BA,GACF,IAAnBA,EAAEO,QAAQ,OAEbP,EAAIA,EAAEQ,MAAM,GAAI,GAAGC,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,OAG1D,IAKC,OADAT,EAAIU,mBAAmBV,EAAES,QAAQX,EAAQ,MAClCG,EAAOU,KAAOC,KAAKC,MAAMb,GAAKA,EACpC,MAAMc,KAIqBC,CAAiBf,GAC9C,OAAOH,EAAEmB,WAAWX,GAAaA,EAAUC,GAASA,EAGrD,IAAIL,EAASJ,EAAEoB,OAAS,SAAUC,EAAKZ,EAAOa,GAI7C,QAAcC,IAAVd,IAAwBT,EAAEmB,WAAWV,GAAQ,CAGhD,GAA+B,iBAF/Ba,EAAUtB,EAAEwB,OAAO,GAAIpB,EAAOqB,SAAUH,IAErBI,QAAsB,CACxC,IAAIC,EAAOL,EAAQI,QAASE,EAAIN,EAAQI,QAAU,IAAIG,KACtDD,EAAEE,SAASF,EAAW,MAAPD,GAGhB,OAAQI,SAASX,OAAS,CACzBlB,EAAOmB,GAAM,IArChB,SAA8BZ,GAC7B,OAAOP,EAAOE,EAAOU,KAAOC,KAAKiB,UAAUvB,GAASwB,OAAOxB,IAoCvCyB,CAAqBzB,GACvCa,EAAQI,QAAU,aAAeJ,EAAQI,QAAQS,cAAgB,GACjEb,EAAQc,KAAU,UAAYd,EAAQc,KAAO,GAC7Cd,EAAQe,OAAU,YAAcf,EAAQe,OAAS,GACjDf,EAAQgB,OAAU,WAAa,IAC9BC,KAAK,IAYR,IAPA,IAnDepC,EAmDXqC,EAASnB,OAAME,EAAY,GAK3BkB,EAAUV,SAASX,OAASW,SAASX,OAAOsB,MAAM,MAAQ,GAErDC,EAAI,EAAGC,EAAIH,EAAQI,OAAQF,EAAIC,EAAGD,IAAK,CAC/C,IAAIG,EAAQL,EAAQE,GAAGD,MAAM,KACzBK,GA5DU5C,EA4DI2C,EAAME,QA3DlB5C,EAAOC,IAAMF,EAAIU,mBAAmBV,IA4DtCiB,EAAS0B,EAAMP,KAAK,KAExB,GAAIlB,GAAOA,IAAQ0B,EAAM,CAExBP,EAASjC,EAAKa,EAAQX,GACtB,MAIIY,QAAmCE,KAA3BH,EAASb,EAAKa,MAC1BoB,EAAOO,GAAQ3B,GAIjB,OAAOoB,GAGRpC,EAAOqB,SAAW,GAElBzB,EAAEiD,aAAe,SAAU5B,EAAKC,GAC/B,YAAsBC,IAAlBvB,EAAEoB,OAAOC,KAKbrB,EAAEoB,OAAOC,EAAK,GAAIrB,EAAEwB,OAAO,GAAIF,EAAS,CAAEI,SAAU,MAC5C1B,EAAEoB,OAAOC"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
/*
LemonLDAP::NG 2F registration script

View File

@ -1 +1,2 @@
(function(){var delete2F,displayError,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);if(res.match(/module/)){return setMsg("notAuthorized","warning")}else{return setMsg(res,"warning")}}};delete2F=function(device,epoch){if(device==="U2F"){device="u"}else if(device==="UBK"){device="yubikey"}else if(device==="TOTP"){device="totp"}else{setMsg("u2fFailed","warning")}return $.ajax({type:"POST",url:portal+"2fregisters/"+device+"/delete",data:{epoch:epoch},dataType:"json",error:displayError,success:function(resp){if(resp.error){if(resp.error.match(/notAuthorized/)){return setMsg("notAuthorized","warning")}else{return setMsg("unknownAction","warning")}}else if(resp.result){$("#delete-"+epoch).hide();return setMsg("yourKeyIsUnregistered","positive")}},error:displayError})};$(document).ready(function(){$("body").on("click",".btn-danger",function(){return delete2F($(this).attr("device"),$(this).attr("epoch"))});$("#goback").attr("href",portal);return $(".data-epoch").each(function(){var myDate;myDate=new Date($(this).text()*1e3);return $(this).text(myDate.toLocaleString())})})}).call(this);
(function(){var e,r,t;t=function(e,r){return $("#msg").html(window.translate(e)),$("#color").removeClass("message-positive message-warning alert-success alert-warning"),$("#color").addClass("message-"+r),"positive"===r&&(r="success"),$("#color").addClass("alert-"+r)},r=function(e,r,n){var o;if(console.log("Error",n),(o=JSON.parse(e.responseText))&&o.error)return o=o.error.replace(/.* /,""),console.log("Returned error",o),o.match(/module/)?t("notAuthorized","warning"):t(o,"warning")},e=function(e,n){return"U2F"===e?e="u":"UBK"===e?e="yubikey":"TOTP"===e?e="totp":t("u2fFailed","warning"),$.ajax({type:"POST",url:portal+"2fregisters/"+e+"/delete",data:{epoch:n},dataType:"json",error:r,success:function(e){return e.error?e.error.match(/notAuthorized/)?t("notAuthorized","warning"):t("unknownAction","warning"):e.result?($("#delete-"+n).hide(),t("yourKeyIsUnregistered","positive")):void 0},error:r})},$(document).ready(function(){return $("body").on("click",".btn-danger",function(){return e($(this).attr("device"),$(this).attr("epoch"))}),$("#goback").attr("href",portal),$(".data-epoch").each(function(){var e;return e=new Date(1e3*$(this).text()),$(this).text(e.toLocaleString())})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/2fregistration.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/2fregistration.js"],"names":["delete2F","displayError","setMsg","msg","level","$","html","window","translate","removeClass","addClass","j","status","err","res","console","log","JSON","parse","responseText","error","replace","match","device","epoch","ajax","type","url","portal","data","dataType","success","resp","result","hide","document","ready","on","this","attr","each","myDate","Date","text","toLocaleString","call"],"mappings":"CAMA,WACE,GAAIA,GAAUC,EAAcC,CAE5BA,GAAS,SAASC,EAAKC,GAOrB,MANAC,GAAE,QAAQC,KAAKC,OAAOC,UAAUL,IAChCE,EAAE,UAAUI,YAAY,gEACxBJ,EAAE,UAAUK,SAAS,WAAaN,GACpB,aAAVA,IACFA,EAAQ,WAEHC,EAAE,UAAUK,SAAS,SAAWN,IAGzCH,EAAe,SAASU,EAAGC,EAAQC,GACjC,GAAIC,EAGJ,IAFAC,QAAQC,IAAI,QAASH,IACrBC,EAAMG,KAAKC,MAAMP,EAAEQ,gBACRL,EAAIM,MAGb,MAFAN,GAAMA,EAAIM,MAAMC,QAAQ,MAAO,IAC/BN,QAAQC,IAAI,iBAAkBF,GAC1BA,EAAIQ,MAAM,UACLpB,EAAO,gBAAiB,WAExBA,EAAOY,EAAK,YAKzBd,EAAW,SAASuB,EAAQC,GAU1B,MATe,QAAXD,EACFA,EAAS,IACW,QAAXA,EACTA,EAAS,UACW,SAAXA,EACTA,EAAS,OAETrB,EAAO,YAAa,WAEfG,EAAEoB,MACPC,KAAM,OACNC,IAAKC,OAAS,eAAiBL,EAAS,UACxCM,MACEL,MAAOA,GAETM,SAAU,OACVV,MAAOnB,EACP8B,QAAS,SAASC,GAChB,MAAIA,GAAKZ,MACHY,EAAKZ,MAAME,MAAM,iBACZpB,EAAO,gBAAiB,WAExBA,EAAO,gBAAiB,WAExB8B,EAAKC,QACd5B,EAAE,WAAamB,GAAOU,OACfhC,EAAO,wBAAyB,iBAFlC,IAKTkB,MAAOnB,KAIXI,EAAE8B,UAAUC,MAAM,WAKhB,MAJA/B,GAAE,QAAQgC,GAAG,QAAS,cAAe,WACnC,MAAOrC,GAASK,EAAEiC,MAAMC,KAAK,UAAWlC,EAAEiC,MAAMC,KAAK,YAEvDlC,EAAE,WAAWkC,KAAK,OAAQX,QACnBvB,EAAE,eAAemC,KAAK,WAC3B,GAAIC,EAEJ,OADAA,GAAS,GAAIC,MAAsB,IAAjBrC,EAAEiC,MAAMK,QACnBtC,EAAEiC,MAAMK,KAAKF,EAAOG,wBAI9BC,KAAKP","file":"lemonldap-ng-portal/site/htdocs/static/common/js/2fregistration.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
$(document).ready(function() {
return $('#upgrd').submit();

View File

@ -1 +1,2 @@
(function(){$(document).ready(function(){return $("#upgrd").submit()})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/autoRenew.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/autoRenew.js"],"names":["$","document","ready","submit","call","this"],"mappings":"CACA,WACEA,EAAEC,UAAUC,MAAM,WAChB,MAAOF,GAAE,UAAUG,aAGpBC,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/autoRenew.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
var go, i, timer, timerIsEnabled;

View File

@ -1 +1,2 @@
(function(){var go,i,timer,timerIsEnabled;i=5;timerIsEnabled=0;go=function(){if(timerIsEnabled){return $("#form").submit()}};timer=function(){var h;h=$("#timer").html();if(h){timerIsEnabled=1;if(i>0){i--}h=h.replace(/\d+/,i);$("#timer").html(h);return setTimeout(timer,1e3)}};$(document).ready(function(){setTimeout(go,3e4);setTimeout(timer,1e3);return $("#refuse").on("click",function(){return $("#confirm").attr("value",$(this).attr("val"))})})}).call(this);
(function(){var t,e,r,i;e=5,i=0,t=function(){if(i)return $("#form").submit()},r=function(){var t;if(t=$("#timer").html())return i=1,e>0&&e--,t=t.replace(/\d+/,e),$("#timer").html(t),setTimeout(r,1e3)},$(document).ready(function(){return setTimeout(t,3e4),setTimeout(r,1e3),$("#refuse").on("click",function(){return $("#confirm").attr("value",$(this).attr("val"))})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/confirm.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/confirm.js"],"names":["go","i","timer","timerIsEnabled","$","submit","h","html","replace","setTimeout","document","ready","on","attr","this","call"],"mappings":"CACA,WACE,GAAIA,GAAIC,EAAGC,EAAOC,CAElBF,GAAI,EAEJE,EAAiB,EAEjBH,EAAK,WACH,GAAIG,EACF,MAAOC,GAAE,SAASC,UAItBH,EAAQ,WACN,GAAII,EAEJ,IADAA,EAAIF,EAAE,UAAUG,OAQd,MANAJ,GAAiB,EACbF,EAAI,GACNA,IAEFK,EAAIA,EAAEE,QAAQ,MAAOP,GACrBG,EAAE,UAAUG,KAAKD,GACVG,WAAWP,EAAO,MAI7BE,EAAEM,UAAUC,MAAM,WAGhB,MAFAF,YAAWT,EAAI,KACfS,WAAWP,EAAO,KACXE,EAAE,WAAWQ,GAAG,QAAS,WAC9B,MAAOR,GAAE,YAAYS,KAAK,QAAST,EAAEU,MAAMD,KAAK,cAInDE,KAAKD","file":"lemonldap-ng-portal/site/htdocs/static/common/js/confirm.min.js"}

View File

@ -1 +1,2 @@
(function(){var FavApps,ResetFavApps,switchStar;FavApps=function(star){return $.ajax({type:"POST",url:portal+"favapps",data:{id:star.attr("aid"),uri:star.attr("uri"),name:star.attr("name"),logo:star.attr("logo"),desc:star.attr("desc")},dataType:"json",success:function(resp){if(resp.error){console.log("Max number reached");return switchStar(star,0)}else if(resp.error===0){console.log("Not authorized");return switchStar(star,0)}else if(resp.result){console.log("App. registered");return switchStar(star,1)}else{console.log("App. unregistered");return switchStar(star,0)}},error:switchStar(star,"0")})};ResetFavApps=function(){return $.ajax({type:"DELETE",url:portal+"favapps",success:function(resp){if(resp.result){console.log("Favorite Apps. reset");return window.location.reload()}else{return console.log("Error")}}})};switchStar=function(star,status){return star.attr("src",window.staticPrefix+"common/icons/star"+status+".png")};$(document).ready(function(){$("body").on("click",".star",function(){return FavApps($(this))});return $("#reset").on("click",function(){return ResetFavApps()})})}).call(this);
(function(){var r,o,t;r=function(r){return $.ajax({type:"POST",url:portal+"favapps",data:{id:r.attr("aid"),uri:r.attr("uri"),name:r.attr("name"),logo:r.attr("logo"),desc:r.attr("desc")},dataType:"json",success:function(o){return o.error?(console.log("Max number reached"),t(r,0)):0===o.error?(console.log("Not authorized"),t(r,0)):o.result?(console.log("App. registered"),t(r,1)):(console.log("App. unregistered"),t(r,0))},error:t(r,"0")})},o=function(){return $.ajax({type:"DELETE",url:portal+"favapps",success:function(r){return r.result?(console.log("Favorite Apps. reset"),window.location.reload()):console.log("Error")}})},t=function(r,o){return r.attr("src",window.staticPrefix+"common/icons/star"+o+".png")},$(document).ready(function(){return $("body").on("click",".star",function(){return r($(this))}),$("#reset").on("click",function(){return o()})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/favapps.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/favapps.js"],"names":["FavApps","ResetFavApps","switchStar","star","$","ajax","type","url","portal","data","id","attr","uri","name","logo","desc","dataType","success","resp","error","console","log","result","window","location","reload","status","staticPrefix","document","ready","on","this","call"],"mappings":"CAMA,WACE,GAAIA,GAASC,EAAcC,CAE3BF,GAAU,SAASG,GACjB,MAAOC,GAAEC,MACPC,KAAM,OACNC,IAAKC,OAAS,UACdC,MACEC,GAAIP,EAAKQ,KAAK,OACdC,IAAKT,EAAKQ,KAAK,OACfE,KAAMV,EAAKQ,KAAK,QAChBG,KAAMX,EAAKQ,KAAK,QAChBI,KAAMZ,EAAKQ,KAAK,SAElBK,SAAU,OACVC,QAAS,SAASC,GAChB,MAAIA,GAAKC,OACPC,QAAQC,IAAI,sBACLnB,EAAWC,EAAM,IACA,IAAfe,EAAKC,OACdC,QAAQC,IAAI,kBACLnB,EAAWC,EAAM,IACfe,EAAKI,QACdF,QAAQC,IAAI,mBACLnB,EAAWC,EAAM,KAExBiB,QAAQC,IAAI,qBACLnB,EAAWC,EAAM,KAG5BgB,MAAOjB,EAAWC,EAAM,QAI5BF,EAAe,WACb,MAAOG,GAAEC,MACPC,KAAM,SACNC,IAAKC,OAAS,UACdS,QAAS,SAASC,GAChB,MAAIA,GAAKI,QACPF,QAAQC,IAAI,wBACLE,OAAOC,SAASC,UAEhBL,QAAQC,IAAI,aAM3BnB,EAAa,SAASC,EAAMuB,GAC1B,MAAOvB,GAAKQ,KAAK,MAAOY,OAAOI,aAAe,oBAAsBD,EAAS,SAG/EtB,EAAEwB,UAAUC,MAAM,WAIhB,MAHAzB,GAAE,QAAQ0B,GAAG,QAAS,QAAS,WAC7B,MAAO9B,GAAQI,EAAE2B,SAEZ3B,EAAE,UAAU0B,GAAG,QAAS,WAC7B,MAAO7B,WAIV+B,KAAKD","file":"lemonldap-ng-portal/site/htdocs/static/common/js/favapps.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
$(document).ready(function() {
return $(".idploop").on('click', function() {

View File

@ -1 +1,2 @@
(function(){$(document).ready(function(){return $(".idploop").on("click",function(){return $("#idp").val($(this).attr("val"))})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/idpchoice.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/idpchoice.js"],"names":["$","document","ready","on","val","this","attr","call"],"mappings":"CACA,WACEA,EAAEC,UAAUC,MAAM,WAChB,MAAOF,GAAE,YAAYG,GAAG,QAAS,WAC/B,MAAOH,GAAE,QAAQI,IAAIJ,EAAEK,MAAMC,KAAK,cAIrCC,KAAKF","file":"lemonldap-ng-portal/site/htdocs/static/common/js/idpchoice.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
var _go, go, i, stop, timer;

View File

@ -1 +1,2 @@
(function(){var _go,go,i,stop,timer;i=30;_go=1;stop=function(){_go=0;return $("#divToHide").hide()};go=function(){if(_go){return $("#form").submit()}};timer=function(){var h;h=$("#timer").html();if(i>0){i--}h=h.replace(/\d+/,i);$("#timer").html(h);return window.setTimeout(timer,1e3)};$(document).ready(function(){if(window.datas["activeTimer"]){window.setTimeout(go,3e4);window.setTimeout(timer,1e3)}else{stop}return $("#wait").on("click",function(){return stop()})})}).call(this);
(function(){var t,i,e,n,r;e=30,t=1,n=function(){return t=0,$("#divToHide").hide()},i=function(){if(t)return $("#form").submit()},r=function(){var t;return t=$("#timer").html(),e>0&&e--,t=t.replace(/\d+/,e),$("#timer").html(t),window.setTimeout(r,1e3)},$(document).ready(function(){return window.datas.activeTimer&&(window.setTimeout(i,3e4),window.setTimeout(r,1e3)),$("#wait").on("click",function(){return n()})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/info.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/info.js"],"names":["_go","go","i","stop","timer","$","hide","submit","h","html","replace","window","setTimeout","document","ready","datas","on","call","this"],"mappings":"CACA,WACE,GAAIA,GAAKC,EAAIC,EAAGC,EAAMC,CAEtBF,GAAI,GAEJF,EAAM,EAENG,EAAO,WAEL,MADAH,GAAM,EACCK,EAAE,cAAcC,QAGzBL,EAAK,WACH,GAAID,EACF,MAAOK,GAAE,SAASE,UAItBH,EAAQ,WACN,GAAII,EAOJ,OANAA,GAAIH,EAAE,UAAUI,OACZP,EAAI,GACNA,IAEFM,EAAIA,EAAEE,QAAQ,MAAOR,GACrBG,EAAE,UAAUI,KAAKD,GACVG,OAAOC,WAAWR,EAAO,MAGlCC,EAAEQ,UAAUC,MAAM,WAOhB,MANIH,QAAOI,MAAmB,cAC5BJ,OAAOC,WAAWX,EAAI,KACtBU,OAAOC,WAAWR,EAAO,MAIpBC,EAAE,SAASW,GAAG,QAAS,WAC5B,MAAOb,WAIVc,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/info.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
$(document).ready(function() {
return $.ajax(portal + '?kerberos=1', {

View File

@ -1 +1,2 @@
(function(){$(document).ready(function(){return $.ajax(portal+"?kerberos=1",{dataType:"json",statusCode:{401:function(){return $("#lform").submit()}},success:function(data){return $("#lform").submit()},error:function(){return $("#lform").submit()}})})}).call(this);
(function(){$(document).ready(function(){return $.ajax(portal+"?kerberos=1",{dataType:"json",statusCode:{401:function(){return $("#lform").submit()}},success:function(r){return $("#lform").submit()},error:function(){return $("#lform").submit()}})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/kerberos.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/kerberos.js"],"names":["$","document","ready","ajax","portal","dataType","statusCode","401","submit","success","data","error","call","this"],"mappings":"CACA,WACEA,EAAEC,UAAUC,MAAM,WAChB,MAAOF,GAAEG,KAAKC,OAAS,eACrBC,SAAU,OACVC,YACEC,IAAK,WACH,MAAOP,GAAE,UAAUQ,WAGvBC,QAAS,SAASC,GAChB,MAAOV,GAAE,UAAUQ,UAErBG,MAAO,WACL,MAAOX,GAAE,UAAUQ,gBAKxBI,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/kerberos.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
var _krbJsAlreadySent;

View File

@ -1 +1,2 @@
(function(){var _krbJsAlreadySent;if(_krbJsAlreadySent===null){_krbJsAlreadySent=false}$(document).ready(function(){if(!_krbJsAlreadySent){_krbJsAlreadySent=1;console.log("Send Kerberos Ajax request");return $.ajax(portal+"?kerberos=1",{dataType:"json",statusCode:{401:function(){return $("#lformKerberos").submit()}},success:function(data){return $("#lformKerberos").submit()},error:function(){return $("#lformKerberos").submit()}})}else{return console.log("Kerberos Ajax request already sent")}})}).call(this);
(function(){var r;null===r&&(r=!1),$(document).ready(function(){return r?console.log("Kerberos Ajax request already sent"):(r=1,console.log("Send Kerberos Ajax request"),$.ajax(portal+"?kerberos=1",{dataType:"json",statusCode:{401:function(){return $("#lformKerberos").submit()}},success:function(r){return $("#lformKerberos").submit()},error:function(){return $("#lformKerberos").submit()}}))})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/kerberosChoice.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/kerberosChoice.js"],"names":["_krbJsAlreadySent","$","document","ready","console","log","ajax","portal","dataType","statusCode","401","submit","success","data","error","call","this"],"mappings":"CACA,WACE,GAAIA,EAEsB,QAAtBA,IACFA,GAAoB,GAGtBC,EAAEC,UAAUC,MAAM,WAChB,MAAKH,GAkBII,QAAQC,IAAI,uCAjBnBL,EAAoB,EACpBI,QAAQC,IAAI,8BACLJ,EAAEK,KAAKC,OAAS,eACrBC,SAAU,OACVC,YACEC,IAAK,WACH,MAAOT,GAAE,kBAAkBU,WAG/BC,QAAS,SAASC,GAChB,MAAOZ,GAAE,kBAAkBU,UAE7BG,MAAO,WACL,MAAOb,GAAE,kBAAkBU,iBAQlCI,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/kerberosChoice.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
var values;

View File

@ -1 +1,2 @@
(function(){var values;values={};$(document).ready(function(){$("script[type='application/init']").each(function(){var e,k,results,tmp;try{tmp=JSON.parse($(this).text());results=[];for(k in tmp){results.push(values[k]=tmp[k])}return results}catch(error){e=error;return console.log("Parsing error",e)}});return window.addEventListener("message",function(e){var client_id,message,salt,session_state,ss,stat;message=e.data;console.log("message=",message);client_id=decodeURIComponent(message.split(" ")[0]);session_state=decodeURIComponent(message.split(" ")[1]);salt=decodeURIComponent(session_state.split(".")[1]);ss=btoa(client_id+" "+e.origin+" "+salt)+"."+salt;if(session_state===ss){stat="unchanged"}else{stat="changed"}return e.source.postMessage(stat,e.origin)},false)})}).call(this);
(function(){var e;e={},$(document).ready(function(){return $("script[type='application/init']").each(function(){var n,t,o,r;try{r=JSON.parse($(this).text()),o=[];for(t in r)o.push(e[t]=r[t]);return o}catch(e){return n=e,console.log("Parsing error",n)}}),window.addEventListener("message",function(e){var n,t,o,r,i,a;return t=e.data,console.log("message=",t),n=decodeURIComponent(t.split(" ")[0]),r=decodeURIComponent(t.split(" ")[1]),o=decodeURIComponent(r.split(".")[1]),i=btoa(n+" "+e.origin+" "+o)+"."+o,a=r===i?"unchanged":"changed",e.source.postMessage(a,e.origin)},!1)})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/oidcchecksession.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/oidcchecksession.js"],"names":["values","$","document","ready","each","e","k","results","tmp","JSON","parse","this","text","push","error","console","log","window","addEventListener","client_id","message","salt","session_state","ss","stat","data","decodeURIComponent","split","btoa","origin","source","postMessage","call"],"mappings":"CACA,WACE,GAAIA,EAEJA,MAEAC,EAAEC,UAAUC,MAAM,WAehB,MAdAF,GAAE,mCAAmCG,KAAK,WACxC,GAAIC,GAAGC,EAAGC,EAASC,CACnB,KACEA,EAAMC,KAAKC,MAAMT,EAAEU,MAAMC,QACzBL,IACA,KAAKD,IAAKE,GACRD,EAAQM,KAAKb,EAAOM,GAAKE,EAAIF,GAE/B,OAAOC,GACP,MAAOO,GAEP,MADAT,GAAIS,EACGC,QAAQC,IAAI,gBAAiBX,MAGjCY,OAAOC,iBAAiB,UAAW,SAASb,GACjD,GAAIc,GAAWC,EAASC,EAAMC,EAAeC,EAAIC,CAYjD,OAXAJ,GAAUf,EAAEoB,KACZV,QAAQC,IAAI,WAAYI,GACxBD,EAAYO,mBAAmBN,EAAQO,MAAM,KAAK,IAClDL,EAAgBI,mBAAmBN,EAAQO,MAAM,KAAK,IACtDN,EAAOK,mBAAmBJ,EAAcK,MAAM,KAAK,IACnDJ,EAAKK,KAAKT,EAAY,IAAMd,EAAEwB,OAAS,IAAMR,GAAQ,IAAMA,EAEzDG,EADEF,IAAkBC,EACb,YAEA,UAEFlB,EAAEyB,OAAOC,YAAYP,EAAMnB,EAAEwB,UACnC,OAGJG,KAAKrB","file":"lemonldap-ng-portal/site/htdocs/static/common/js/oidcchecksession.min.js"}

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
/*
LemonLDAP::NG Portal jQuery scripts

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
(function() {
document.onreadystatechange = function() {
var redirect;

View File

@ -1 +1,2 @@
(function(){document.onreadystatechange=function(){var redirect;if(document.readyState==="complete"){redirect=document.getElementById("redirect").textContent.replace(/\s/g,"");if(redirect){if(redirect==="form"){return document.getElementById("form").submit()}else{return document.location.href=redirect}}else{return console.log("No redirection !")}}}}).call(this);
(function(){document.onreadystatechange=function(){var e;if("complete"===document.readyState)return e=document.getElementById("redirect").textContent.replace(/\s/g,""),e?"form"===e?document.getElementById("form").submit():document.location.href=e:console.log("No redirection !")}}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/redirect.min.js.map

View File

@ -0,0 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/redirect.js"],"names":["document","onreadystatechange","redirect","readyState","getElementById","textContent","replace","submit","location","href","console","log","call","this"],"mappings":"CACA,WACEA,SAASC,mBAAqB,WAC5B,GAAIC,EACJ,IAA4B,aAAxBF,SAASG,WAEX,MADAD,GAAWF,SAASI,eAAe,YAAYC,YAAYC,QAAQ,MAAO,IACtEJ,EACe,SAAbA,EACKF,SAASI,eAAe,QAAQG,SAEhCP,SAASQ,SAASC,KAAOP,EAG3BQ,QAAQC,IAAI,uBAKxBC,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/redirect.min.js"}

Some files were not shown because too many files have changed in this diff Show More