Highlight valid SSO sessions in sessions explorer (#1735)

This commit is contained in:
Christophe Maudoux 2019-05-04 19:14:11 +02:00
parent c40857f747
commit ff0b6ba31f
5 changed files with 30 additions and 2 deletions

View File

@ -142,11 +142,13 @@ sub javascript {
my ( $self, $req ) = @_;
my $res = $self->diffRule->( $req, $req->{userData} ) || 0;
my $impPrefix = $self->{impersonationPrefix};
my $ttl = $self->{timeout} || 72000;
return
'var formPrefix=staticPrefix+"forms/";var confPrefix=scriptname+"confs/";var viewPrefix=scriptname+"view/";'
. 'var allowDiff=' . "$res;"
. 'var impPrefix=' . "'" . $impPrefix . "'" . ';'
. 'var sessionTTL=' . "$ttl;"
. ( $self->links ? 'var links=' . to_json( $self->links ) . ';' : '' )
. (
$self->menuLinks

View File

@ -108,6 +108,7 @@ llapp.controller 'SessionsExplorerCtrl', ['$scope', '$translator', '$location',
$scope.scriptname = scriptname
$scope.formPrefix = formPrefix
$scope.impPrefix = impPrefix
$scope.sessionTTL = sessionTTL
$scope.availableLanguages = availableLanguages
$scope.waiting = true
$scope.showM = false
@ -352,6 +353,15 @@ llapp.controller 'SessionsExplorerCtrl', ['$scope', '$translator', '$location',
d = new Date(s * 1000)
return d.toLocaleString()
$scope.isValid = (epoch) ->
now = Date.now() / 1000
valid = now - epoch < $scope.sessionTTL
console.log "session epoch", epoch
console.log "current date", now
console.log "sessions TTL", sessionTTL
console.log "Valid ?", valid
return valid
$scope.strToLocaleDate = (s) ->
arrayDate = s.match /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/
return s unless arrayDate.length

View File

@ -131,6 +131,7 @@
$scope.scriptname = scriptname;
$scope.formPrefix = formPrefix;
$scope.impPrefix = impPrefix;
$scope.sessionTTL = sessionTTL;
$scope.availableLanguages = availableLanguages;
$scope.waiting = true;
$scope.showM = false;
@ -432,6 +433,16 @@
d = new Date(s * 1000);
return d.toLocaleString();
};
$scope.isValid = function(epoch) {
var now, valid;
now = Date.now() / 1000;
valid = now - epoch < 60;
console.log("session epoch", epoch);
console.log("current date", now);
console.log("sessions TTL", sessionTTL);
console.log("Valid ?", valid);
return valid;
};
$scope.strToLocaleDate = function(s) {
var arrayDate, d;
arrayDate = s.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/);

File diff suppressed because one or more lines are too long

View File

@ -118,7 +118,12 @@
<a class="btn btn-node btn-sm" ng-click="displaySession(this)">
<span class="glyphicon glyphicon-eye-open"></span>
</a>
<span id="s-{{node.session}}" ng-click="displaySession(this)">{{localeDate(node.date)}}</span>
<span ng-if="isValid(node.date)">
<span id="s-{{node.session}}" ng-click="displaySession(this)">{{localeDate(node.date)}}</span>
</span>
<span ng-if="!isValid(node.date)">
<span id="s-{{node.session}}" ng-click="displaySession(this)" ng-style="{color: '#337Ab7'}">{{localeDate(node.date)}}</span>
</span>
</span>
</div>
<ol ui-tree-nodes="" ng-model="node.nodes" ng-class="{hidden: collapsed}">