lemonldap-ng/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js
2019-11-30 15:09:31 +01:00

1 line
8.7 KiB
JavaScript

(function(){var M,s,f,h;h={_whatToTrace:[function(e,t){return"groupBy=substr("+e+",1)"},function(e,t){return e+"="+t+"*&groupBy="+e},function(e,t){return e+"="+t}],ipAddr:[function(e,t){return"groupBy=net("+e+",16,1)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",32,2)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",48,3)"},function(e,t){return t.match(/:/)||(t+="."),e+"="+t+"*&groupBy=net("+e+",128,4)"},function(e,t){return e+"="+t+"&groupBy=_whatToTrace"},function(e,t,n){return n.replace(/\&groupBy.*$/,"")+"&_whatToTrace="+t}],_startTime:[function(e,t){return"groupBy=substr("+e+",8)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",10)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",11)"},function(e,t){return e+"="+t+"*&groupBy=substr("+e+",12)"},function(e,t){return e+"="+t+"*&groupBy=_whatToTrace"},function(e,t,n){return console.log(e),console.log(t),console.log(n),n.replace(/\&groupBy.*$/,"")+"&_whatToTrace="+t}],doubleIp:[function(e,t){return e},function(e,t){return"_whatToTrace="+t+"&groupBy=ipAddr"},function(e,t,n){return n.replace(/\&groupBy.*$/,"")+"&ipAddr="+t}],_session_uid:[function(e,t){return"groupBy=substr("+e+",1)"},function(e,t){return e+"="+t+"*&groupBy="+e},function(e,t){return e+"="+t}]},f={_whatToTrace:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null},ipAddr:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),0<n&&n<4&&!t.match(/^\d+\.\d/)&&o<2?e+"="+t+"*&groupBy=net("+e+","+(16*n+4*(o+1))+","+(1+n+o)+")":null},_startTime:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),3<n?e+"="+t+"*&groupBy=substr("+e+","+(10+n+o)+")":null},_session_uid:function(e,t,n,o){return console.log("overScheme => level",n,"over",o),1===n&&t.length>o?e+"="+t+"*&groupBy=substr("+e+","+(n+o+1)+")":null}},M={dateTitle:["_utime","_startTime","_updateTime","_lastAuthnUTime","_lastSeen"],connectionTitle:["ipAddr","_timezone","_url"],authenticationTitle:["_session_id","_user","_password","authenticationLevel"],modulesTitle:["_auth","_userDB","_passwordDB","_issuerDB","_authChoice","_authMulti","_userDBMulti"],saml:["_idp","_idpConfKey","_samlToken","_lassoSessionDump","_lassoIdentityDump"],groups:["groups","hGroups"],ldap:["dn"],BrowserID:["_browserIdAnswer","_browserIdAnswerRaw"],OpenIDConnect:["_oidc_id_token","_oidc_OP","_oidc_access_token"],sfaTitle:["_2fDevices"],oidcConsents:["_oidcConsents"]},s={session:[{title:"deleteSession",icon:"trash"}],home:[]},angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]).controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(H,t,i,e,o){var d,n,r,g;return H.links=links,H.menulinks=menulinks,H.staticPrefix=staticPrefix,H.scriptname=scriptname,H.formPrefix=formPrefix,H.impPrefix=impPrefix,H.sessionTTL=sessionTTL,H.availableLanguages=availableLanguages,H.waiting=!0,H.showM=!1,H.showT=!0,H.data=[],H.currentScope=null,H.currentSession=null,H.menu=s,H.translateP=t.translateP,H.translate=t.translate,H.translateTitle=function(e){return t.translateField(e,"title")},g="global",H.menuClick=function(e){if(e.popup)window.open(e.popup);else switch(e.action||(e.action=e.title),typeof e.action){case"function":e.action(H.currentNode,H);break;case"string":H[e.action]();break;default:console.log(typeof e.action)}return H.showM=!1},H.deleteOIDCConsent=function(e,t){return angular.element(".data-"+t).remove(),H.waiting=!0,o.delete(scriptname+"sessions/OIDCConsent/"+g+"/"+H.currentSession.id+"?rp="+e+"&epoch="+t).then(function(e){return H.waiting=!1},function(e){return H.waiting=!1}),H.showT=!1},H.deleteSession=function(){return H.waiting=!0,o.delete(scriptname+"sessions/"+g+"/"+H.currentSession.id).then(function(e){return H.currentSession=null,H.currentScope.remove(),H.waiting=!1},function(e){return H.currentSession=null,H.currentScope.remove(),H.waiting=!1})},H.stoggle=function(e){var t;return 0===(t=e.$modelValue).nodes.length&&H.updateTree(t.value,t.nodes,t.level,t.over,t.query,t.count),e.toggle()},H.displaySession=function(e){var t,n;return n=function(s){var e,t,n,o,r,i,u,l,a,c,p,d,g,f,h,_,m,T,y,w,v,S,$,B,b,D,L,A,P,x,C,I,k,O,R,E;for(g in e=function(e,t){var n,o,r,i;for(n in r=[],o=new RegExp(e),s)i=s[n],n.match(o)&&i&&(r.push({title:n,value:i}),delete s[n]);if(0<r.length)return P.push({title:t,nodes:r})},k=s._utime,c=s._session_id,s)(E=s[g])?("string"==typeof s&&E.match(/; /)&&(s[g]=E.split("; ")),"object"!=typeof s[g]&&("_password".match(new RegExp("\b"+g+"\b"))?s[g]="********":g.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)?s[g]=H.localeDate(E):g.match(/^(_startTime|_updateTime)$/)&&(s[g]=H.strToLocaleDate(E)))):delete s[g];for(r in P=[],M){for(I=[],a=0,h=(o=M[r]).length;a<h;a++)if(n=o[a],s[n])if(s[n].toString().match(/"type":\s*"(?:TOTP|U2F|UBK)"/)){for(I.push({title:"type",value:"name",epoch:"date",td:"0"}),p=0,_=(t=JSON.parse(s[n])).length;p<_;p++){for(g in x=t[p])E=x[g],"type"===g&&(O=E),"name"===g&&(S=E),"epoch"===g&&(l=E);I.push({title:O,value:S,epoch:l,td:"1"})}delete s[n]}else if(s[n].toString().match(/"rp":\s*"[\w-]+"/)){for(I.push({title:"rp",value:"scope",epoch:"date",td:"0"}),d=0,m=(t=JSON.parse(s[n])).length;d<m;d++){for(g in B=t[d])E=B[g],"rp"===g&&(O=E),"scope"===g&&(S=E),"epoch"===g&&(l=E);I.push({title:O,value:S,epoch:l,td:"2"})}delete s[n]}else s[n].toString().match(/\w+/)&&I.push({title:n,value:s[n],epoch:""}),delete s[n];else delete s[n];0<I.length&&P.push({title:"__"+r+"__",nodes:I})}if(e("^openid","OpenID"),e("^notification_(.+)","__notificationsDone__"),s._loginHistory){if(R=[],s._loginHistory.successLogin)for(v=0,T=(L=s._loginHistory.successLogin).length;v<T;v++){for(g in i="",f=L[v])E=f[g],g.match(/^(_utime|ipAddr|error)$/)||(i+=", "+g+" : "+E);R.push({t:f._utime,title:H.localeDate(f._utime),value:"Success (IP "+f.ipAddr+")"+i})}if(s._loginHistory.failedLogin)for($=0,y=(A=s._loginHistory.failedLogin).length;$<y;$++){for(g in i="",f=A[$])E=f[g],g.match(/^(_utime|ipAddr|error)$/)||(i+=", "+g+" : "+E);R.push({t:f._utime,title:H.localeDate(f._utime),value:"Error "+f.error+" (IP "+f.ipAddr+")"+i})}delete s._loginHistory,R.sort(function(e,t){return t.t-e.t}),P.push({title:"__loginHistory__",nodes:R})}for(g in R=[],s)E=s[g],R.push({title:g,value:E});for(R.sort(function(e,t){return e.title>t.title?1:e.title<t.title?-1:0}),D=[],C=[],b=0,w=R.length;b<w;b++)(u=R[b]).title.match(new RegExp("^"+H.impPrefix+".+$"))?(console.log(u,"-> real attribute"),D.push(u)):C.push(u);return R=C.concat(D),P.push({title:"__attributesAndMacros__",nodes:R}),{_utime:k,id:c,nodes:P}},t=(H.currentScope=e).$modelValue.session,o.get(scriptname+"sessions/"+g+"/"+t).then(function(e){return H.currentSession=n(e.data)}),H.showT=!1},H.localeDate=function(e){return new Date(1e3*e).toLocaleString()},H.isValid=function(e,t){var n,o,r;return r=i.path(),o=Date.now()/1e3,console.log("Path",r),console.log("Session epoch",e),console.log("Current date",o),console.log("Session TTL",sessionTTL),n=o-e<sessionTTL||i.path().match(/^\/persistent/),"msg"===t?(console.log("Return msg"),n?"info":"warning"):"style"===t?(console.log("Return style"),n?{}:{color:"#627990","font-style":"italic"}):(console.log("Return isValid"),n)},H.strToLocaleDate=function(e){var t;return(t=e.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/)).length?new Date(t[1]+"-"+t[2]+"-"+t[3]+"T"+t[4]+":"+t[5]+":"+t[6]).toLocaleString():e},H.getLanguage=function(e){return H.lang=e,H.form="white",H.init(),H.showM=!1},r=function(e,t,n){var o;return o=t.match(/#!?\/(\w+)/),g="global",null===o?H.type="_whatToTrace":o[1].match(/^(persistent|offline)$/)?(g=RegExp.$1,H.type="_session_uid"):H.type=o[1],H.init()},H.$on("$locationChangeSuccess",r),d=0,H.updateTree=function(s,u,l,a,e,t){var c,p,n;return H.waiting=!0,p=h[H.type]?h[H.type]:"_updateTime"===H.type?h._startTime:h._whatToTrace,c=p[l](H.type,s,e),25<t&&f[H.type]&&(n=f[H.type](H.type,s,l,a,e))?(a++,c=n,l-=1):a=0,o.get(scriptname+"sessions/"+g+"?"+c).then(function(e){var t,n,o,r,i;if((t=e.data).result){for(n=0,o=(i=t.values).length;n<o;n++)r=i[n],d++,r.id="node"+d,l<p.length-1&&(r.nodes=[],r.level=l+1,r.query=c,r.over=a,H.type.match(/^(?:start|update)Time$/)&&(r.title=r.value.replace(/^(\d{8})(\d{2})(\d{2})$/,"$2:$3").replace(/^(\d{8})(\d{2})(\d)$/,"$2:$30").replace(/^(\d{8})(\d{2})$/,"$2h").replace(/^(\d{4})(\d{2})(\d{2})/,"$1-$2-$3"))),u.push(r);""===s&&(H.total=t.total)}return H.waiting=!1},function(e){return H.waiting=!1})},H.init=function(){return H.waiting=!0,H.data=[],H.currentScope=null,H.currentSession=null,e.all([t.init(H.lang),H.updateTree("",H.data,0,0)]).then(function(){return H.waiting=!1},function(e){return H.waiting=!1}),H.activeModule="sessions",H.myStyle={color:"#ffb84d"}},n=i.path().match(/^\/(\w+)/),H.type=n?n[1]:"_whatToTrace"}])}).call(this);