From 99ddfbfe253d52c15607e5b47d3cd83a6ee68bd3 Mon Sep 17 00:00:00 2001 From: Xavier Guimard Date: Tue, 21 Mar 2017 20:52:40 +0000 Subject: [PATCH] Rename _startTime and _updateTime (#1169) --- lemonldap-ng-handler/t/test-psgi-lib.pm | 4 ++-- lemonldap-ng-manager/site/coffee/sessions.coffee | 12 ++++++------ .../site/htdocs/static/js/sessions.js | 8 ++++---- .../site/htdocs/static/js/sessions.min.js | 2 +- .../site/htdocs/static/languages/en.json | 4 ++-- .../site/htdocs/static/languages/fr.json | 4 ++-- lemonldap-ng-manager/site/templates/sessions.tpl | 4 ++-- .../lib/Lemonldap/NG/Portal/Main/Process.pm | 4 ++-- .../lib/Lemonldap/NG/Portal/Main/Run.pm | 4 ++-- .../lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm | 2 +- .../lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm | 2 +- ...3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101 | 2 +- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lemonldap-ng-handler/t/test-psgi-lib.pm b/lemonldap-ng-handler/t/test-psgi-lib.pm index e7289c7ac..368b381bb 100644 --- a/lemonldap-ng-handler/t/test-psgi-lib.pm +++ b/lemonldap-ng-handler/t/test-psgi-lib.pm @@ -45,9 +45,9 @@ sub init { my $now = time; my $ts = strftime "%Y%m%d%H%M%S", localtime; - print F '{"updateTime":"' + print F '{"_updateTime":"' . $ts - . '","_timezone":"1","_session_kind":"SSO","_passwordDB":"Demo","startTime":"' + . '","_timezone":"1","_session_kind":"SSO","_passwordDB":"Demo","_startTime":"' . $ts . '","ipAddr":"127.0.0.1","UA":"Mozilla/5.0 (X11; VAX4000; rv:43.0) Gecko/20100101 Firefox/143.0 Iceweasel/143.0.1","_user":"dwho","_userDB":"Demo","_lastAuthnUTime":' . $now diff --git a/lemonldap-ng-manager/site/coffee/sessions.coffee b/lemonldap-ng-manager/site/coffee/sessions.coffee index f870623c9..49d232f4c 100644 --- a/lemonldap-ng-manager/site/coffee/sessions.coffee +++ b/lemonldap-ng-manager/site/coffee/sessions.coffee @@ -33,7 +33,7 @@ schemes = (t,v,q) -> q.replace(/\&groupBy.*$/, '') + "&_whatToTrace=#{v}" ] - startTime: [ + _startTime: [ (t,v) -> "groupBy=substr(#{t},8)" (t,v) -> @@ -75,7 +75,7 @@ hiddenAttributes = '_password' # Attributes to group in session display categories = - dateTitle: ['_utime', 'startTime', 'updateTime', '_lastAuthnUTime', '_lastSeen'] + dateTitle: ['_utime', '_startTime', '_updateTime', '_lastAuthnUTime', '_lastSeen'] connectionTitle: ['ipAddr', '_timezone', '_url'] authenticationTitle:['_session_id', '_user', '_password', 'authenticationLevel'] modulesTitle: ['_auth', '_userDB', '_passwordDB', '_issuerDB', '_authChoice', '_authMulti', '_userDBMulti'] @@ -194,7 +194,7 @@ llapp.controller 'SessionsExplorerCtrl', ['$scope', '$translator', '$location', session[key] = '********' else if key.match /^(_utime|_lastAuthnUTime|_lastSeen|notification)$/ session[key] = $scope.localeDate value - else if key.match /^(startTime|updateTime)$/ + else if key.match /^(_startTime|_updateTime)$/ session[key] = _stToStr value res = [] @@ -301,9 +301,9 @@ llapp.controller 'SessionsExplorerCtrl', ['$scope', '$translator', '$location', scheme = if schemes[$scope.type] schemes[$scope.type] - # - updateTime must be displayed as startDate - else if $scope.type == 'updateTime' - schemes.startTime + # - _updateTime must be displayed as startDate + else if $scope.type == '_updateTime' + schemes._startTime # - default to _whatToTrace scheme else diff --git a/lemonldap-ng-manager/site/htdocs/static/js/sessions.js b/lemonldap-ng-manager/site/htdocs/static/js/sessions.js index e7c83dc64..c7d437f80 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/sessions.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/sessions.js @@ -43,7 +43,7 @@ return q.replace(/\&groupBy.*$/, '') + ("&_whatToTrace=" + v); } ], - startTime: [ + _startTime: [ function(t, v) { return "groupBy=substr(" + t + ",8)"; }, function(t, v) { @@ -92,7 +92,7 @@ hiddenAttributes = '_password'; categories = { - dateTitle: ['_utime', 'startTime', 'updateTime', '_lastAuthnUTime', '_lastSeen'], + dateTitle: ['_utime', '_startTime', '_updateTime', '_lastAuthnUTime', '_lastSeen'], connectionTitle: ['ipAddr', '_timezone', '_url'], authenticationTitle: ['_session_id', '_user', '_password', 'authenticationLevel'], modulesTitle: ['_auth', '_userDB', '_passwordDB', '_issuerDB', '_authChoice', '_authMulti', '_userDBMulti'], @@ -225,7 +225,7 @@ session[key] = '********'; } else if (key.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)) { session[key] = $scope.localeDate(value); - } else if (key.match(/^(startTime|updateTime)$/)) { + } else if (key.match(/^(_startTime|_updateTime)$/)) { session[key] = _stToStr(value); } } @@ -351,7 +351,7 @@ $scope.updateTree = function(value, node, level, over, currentQuery, count) { var query, scheme, tmp; $scope.waiting = true; - scheme = schemes[$scope.type] ? schemes[$scope.type] : $scope.type === 'updateTime' ? schemes.startTime : schemes._whatToTrace; + scheme = schemes[$scope.type] ? schemes[$scope.type] : $scope.type === '_updateTime' ? schemes._startTime : schemes._whatToTrace; query = scheme[level]($scope.type, value, currentQuery); if (count > max && overScheme[$scope.type]) { if (tmp = overScheme[$scope.type]($scope.type, value, level, over, currentQuery)) { diff --git a/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js b/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js index 05c764739..3ce51388f 100644 --- a/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js +++ b/lemonldap-ng-manager/site/htdocs/static/js/sessions.min.js @@ -1 +1 @@ -(function(){var c,e,d,b,g,f,a;b=25;a={_whatToTrace:[function(i,h){return"groupBy=substr("+i+",1)"},function(i,h){return i+"="+h+"*&groupBy="+i},function(i,h){return i+"="+h}],ipAddr:[function(i,h){return"groupBy=net("+i+",16,1)"},function(i,h){if(!h.match(/:/)){h=h+"."}return i+"="+h+"*&groupBy=net("+i+",32,2)"},function(i,h){if(!h.match(/:/)){h=h+"."}return i+"="+h+"*&groupBy=net("+i+",48,3)"},function(i,h){if(!h.match(/:/)){h=h+"."}return i+"="+h+"*&groupBy=net("+i+",128,4)"},function(i,h){return i+"="+h+"&groupBy=_whatToTrace"},function(i,h,j){return j.replace(/\&groupBy.*$/,"")+("&_whatToTrace="+h)}],startTime:[function(i,h){return"groupBy=substr("+i+",8)"},function(i,h){return i+"="+h+"*&groupBy=substr("+i+",10)"},function(i,h){return i+"="+h+"*&groupBy=substr("+i+",11)"},function(i,h){return i+"="+h+"*&groupBy=substr("+i+",12)"},function(i,h){return i+"="+h+"*&groupBy=_whatToTrace"},function(i,h,j){console.log(i);console.log(h);console.log(j);return j.replace(/\&groupBy.*$/,"")+("&_whatToTrace="+h)}],doubleIp:[function(i,h){return i},function(i,h){return"_whatToTrace="+h+"&groupBy=ipAddr"},function(i,h,j){return j.replace(/\&groupBy.*$/,"")+("&ipAddr="+h)}]};f={_whatToTrace:function(i,h,k,j){if(k===1){return i+"="+h+"*&groupBy=substr("+i+","+(k+j)+")"}else{return null}},ipAddr:function(i,h,k,j){if(k>0&&k<4){return i+"="+h+"*&groupBy=net("+i+","+(16*k+4*(j+1))+",2)"}else{return null}}};e="_password";c={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"]};g={session:[{title:"deleteSession",icon:"trash"}],home:[]};d=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]);d.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(p,h,i,j,m){var n,l,k,o;p.links=links;p.menulinks=menulinks;p.staticPrefix=staticPrefix;p.scriptname=scriptname;p.formPrefix=formPrefix;p.availableLanguages=availableLanguages;p.waiting=true;p.showM=false;p.showT=true;p.data=[];p.currentScope=null;p.currentSession=null;p.menu=g;p.translateP=h.translateP;p.translate=h.translate;p.translateTitle=function(q){return h.translateField(q,"title")};o="global";p.menuClick=function(q){if(q.popup){window.open(q.popup)}else{if(!q.action){q.action=q.title}switch(typeof q.action){case"function":q.action(p.currentNode,p);break;case"string":p[q.action]();break;default:console.log(typeof q.action)}}return p.showM=false};p.deleteSession=function(){p.waiting=true;return m["delete"](scriptname+"sessions/"+o+"/"+p.currentSession.id).then(function(q){p.currentSession=null;p.currentScope.remove();return p.waiting=false},function(q){p.currentSession=null;p.currentScope.remove();return p.waiting=false})};p.stoggle=function(q){var r;r=q.$modelValue;if(r.nodes.length===0){p.updateTree(r.value,r.nodes,r.level,r.over,r.query,r.count)}return q.toggle()};p.displaySession=function(r){var s,q;q=function(t){var y,A,E,C,G,J,B,I,H,O,F,K,x,w,u,z,N,M,v,L,D;A=function(P){return P};y=function(S,U){var Q,R,P,T;P=[];R=new RegExp(S);for(Q in t){T=t[Q];if(Q.match(R)&&T){P.push({title:Q,value:T});delete t[Q]}}if(P.length>0){return N.push({title:U,nodes:P})}};v=t._utime;B=t._session_id;for(O in t){D=t[O];if(!D){delete t[O]}else{if(typeof t==="string"&&D.match(/; /)){t[O]=D.split("; ")}if(typeof t[O]!=="object"){if(e.match(new RegExp("\b"+O+"\b"))){t[O]="********"}else{if(O.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)){t[O]=p.localeDate(D)}else{if(O.match(/^(startTime|updateTime)$/)){t[O]=A(D)}}}}}}N=[];for(G in c){C=c[G];M=[];for(J=0,K=C.length;J0){N.push({title:"__"+G+"__",nodes:M})}}y("^openid","OpenID");y("^notification_(.+)","__notificationsDone__");if(t.loginHistory){L=[];if(t.loginHistory.successLogin){u=t.loginHistory.successLogin;for(I=0,x=u.length;IP.title){return 1}else{if(Q.titleb&&f[p.type]){if(t=f[p.type](p.type,y,q,v,x)){v++;w=t;q=q-1}else{v=0}}else{v=0}return m.get(scriptname+"sessions/"+o+"?"+w).then(function(A){var D,B,z,E,C;D=A.data;if(D.result){C=D.values;for(B=0,z=C.length;B0&&k<4){return i+"="+h+"*&groupBy=net("+i+","+(16*k+4*(j+1))+",2)"}else{return null}}};e="_password";c={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"]};g={session:[{title:"deleteSession",icon:"trash"}],home:[]};d=angular.module("llngSessionsExplorer",["ui.tree","ui.bootstrap","llApp"]);d.controller("SessionsExplorerCtrl",["$scope","$translator","$location","$q","$http",function(p,h,i,j,m){var n,l,k,o;p.links=links;p.menulinks=menulinks;p.staticPrefix=staticPrefix;p.scriptname=scriptname;p.formPrefix=formPrefix;p.availableLanguages=availableLanguages;p.waiting=true;p.showM=false;p.showT=true;p.data=[];p.currentScope=null;p.currentSession=null;p.menu=g;p.translateP=h.translateP;p.translate=h.translate;p.translateTitle=function(q){return h.translateField(q,"title")};o="global";p.menuClick=function(q){if(q.popup){window.open(q.popup)}else{if(!q.action){q.action=q.title}switch(typeof q.action){case"function":q.action(p.currentNode,p);break;case"string":p[q.action]();break;default:console.log(typeof q.action)}}return p.showM=false};p.deleteSession=function(){p.waiting=true;return m["delete"](scriptname+"sessions/"+o+"/"+p.currentSession.id).then(function(q){p.currentSession=null;p.currentScope.remove();return p.waiting=false},function(q){p.currentSession=null;p.currentScope.remove();return p.waiting=false})};p.stoggle=function(q){var r;r=q.$modelValue;if(r.nodes.length===0){p.updateTree(r.value,r.nodes,r.level,r.over,r.query,r.count)}return q.toggle()};p.displaySession=function(r){var s,q;q=function(t){var y,A,E,C,G,J,B,I,H,O,F,K,x,w,u,z,N,M,v,L,D;A=function(P){return P};y=function(S,U){var Q,R,P,T;P=[];R=new RegExp(S);for(Q in t){T=t[Q];if(Q.match(R)&&T){P.push({title:Q,value:T});delete t[Q]}}if(P.length>0){return N.push({title:U,nodes:P})}};v=t._utime;B=t._session_id;for(O in t){D=t[O];if(!D){delete t[O]}else{if(typeof t==="string"&&D.match(/; /)){t[O]=D.split("; ")}if(typeof t[O]!=="object"){if(e.match(new RegExp("\b"+O+"\b"))){t[O]="********"}else{if(O.match(/^(_utime|_lastAuthnUTime|_lastSeen|notification)$/)){t[O]=p.localeDate(D)}else{if(O.match(/^(_startTime|_updateTime)$/)){t[O]=A(D)}}}}}}N=[];for(G in c){C=c[G];M=[];for(J=0,K=C.length;J0){N.push({title:"__"+G+"__",nodes:M})}}y("^openid","OpenID");y("^notification_(.+)","__notificationsDone__");if(t.loginHistory){L=[];if(t.loginHistory.successLogin){u=t.loginHistory.successLogin;for(I=0,x=u.length;IP.title){return 1}else{if(Q.titleb&&f[p.type]){if(t=f[p.type](p.type,y,q,v,x)){v++;w=t;q=q-1}else{v=0}}else{v=0}return m.get(scriptname+"sessions/"+o+"?"+w).then(function(A){var D,B,z,E,C;D=A.data;if(D.result){C=D.values;for(B=0,z=C.length;B {{translate('ipAddresses')}}
  • {{translate('multiIp')}}
  • {{translate('persistent')}}
  • -
  • {{translate('startTime')}}
  • -
  • {{translate('updateTime')}}
  • +
  • {{translate('_startTime')}}
  • +
  • {{translate('_updateTime')}}
  • diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Process.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Process.pm index ec88484e7..87ded802c 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Process.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Process.pm @@ -306,12 +306,12 @@ sub setSessionInfo { # Date and time if ( $self->conf->{updateSession} ) { - $req->{sessionInfo}->{updateTime} = + $req->{sessionInfo}->{_updateTime} = strftime( "%Y%m%d%H%M%S", localtime() ); } else { $req->{sessionInfo}->{_utime} ||= time(); - $req->{sessionInfo}->{startTime} = + $req->{sessionInfo}->{_startTime} = strftime( "%Y%m%d%H%M%S", localtime() ); $req->{sessionInfo}->{_lastSeen} = time() if $self->conf->{timeoutActivity}; diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Run.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Run.pm index 9d942b28a..7ff217e04 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Run.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Run.pm @@ -440,8 +440,8 @@ sub updateSession { $infos->{$_}; } - # Update session in global storage with updateTime - $infos->{updateTime} = strftime( "%Y%m%d%H%M%S", localtime() ); + # Update session in global storage with _updateTime + $infos->{_updateTime} = strftime( "%Y%m%d%H%M%S", localtime() ); if ( my $apacheSession = $self->getApacheSession( $id, info => $infos ) ) { diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm index e6679ca42..2ebddc0a0 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/RESTServer.pm @@ -66,7 +66,7 @@ has exportedAttr => ( else { my @attributes = ( 'authenticationLevel', 'groups', - 'ipAddr', 'startTime', + 'ipAddr', '_startTime', '_utime', '_lastSeen', '_session_id', ); diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm index dd55c49f1..33f235869 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/SOAPServer.pm @@ -39,7 +39,7 @@ has exportedAttr => ( else { my @attributes = ( 'authenticationLevel', 'groups', - 'ipAddr', 'startTime', + 'ipAddr', '_startTime', '_utime', '_lastSeen', '_session_id', ); diff --git a/lemonldap-ng-portal/t/sessions2/6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101 b/lemonldap-ng-portal/t/sessions2/6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101 index 3253c3712..158770517 100644 --- a/lemonldap-ng-portal/t/sessions2/6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101 +++ b/lemonldap-ng-portal/t/sessions2/6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101 @@ -1 +1 @@ -{"authenticationLevel":0,"_auth":"Demo","_whatToTrace":"dwho","_session_kind":"SSO","_user":"dwho","hGroups":{},"cn":"Doctor Who","_lastAuthnUTime":1464295296,"_session_id":"6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101","_passwordDB":"Demo","_issuerDB":"Null","updateTime":"20160526224136","UA":"Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0","uid":"dwho","groups":"","_utime":1464295296,"_timezone":"2","_url":"http://manager.example.com:19876/","loginHistory":{"successLogin":[{"ipAddr":"127.0.0.1","_utime":1464295296}]},"ipAddr":"127.0.0.1","mail":"dwho@badwolf.org","startTime":"20160526224136","_userDB":"Demo"} \ No newline at end of file +{"authenticationLevel":0,"_auth":"Demo","_whatToTrace":"dwho","_session_kind":"SSO","_user":"dwho","hGroups":{},"cn":"Doctor Who","_lastAuthnUTime":1464295296,"_session_id":"6e30af4ffa5689b3e49a104d1b160d316db2b2161a0f45776994eed19dbdc101","_passwordDB":"Demo","_issuerDB":"Null","_updateTime":"20160526224136","UA":"Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0","uid":"dwho","groups":"","_utime":1464295296,"_timezone":"2","_url":"http://manager.example.com:19876/","loginHistory":{"successLogin":[{"ipAddr":"127.0.0.1","_utime":1464295296}]},"ipAddr":"127.0.0.1","mail":"dwho@badwolf.org","_startTime":"20160526224136","_userDB":"Demo"}