Index: docs/upgrades/upgrade_7.3.10-7.3.11.pl
===================================================================
--- docs/upgrades/upgrade_7.3.10-7.3.11.pl (revision 3783)
+++ docs/upgrades/upgrade_7.3.10-7.3.11.pl (working copy)
@@ -20,6 +20,8 @@
my $session = start(); # this line required
+addUserSessionLengthFields($session);
+
# upgrade functions go here
finish($session); # this line required
@@ -32,8 +34,14 @@
# # and here's our code
#}
+#-------------------------------------------------
+sub addUserSessionLengthFields {
+ my $session = shift;
+ print "\tAdding Session Length fields to userLoginLog table in database.\n" unless ($quiet);
+ $session->db->write("alter table userLoginLog add column sessionId varchar(22) binary");
+ $session->db->write("alter table userLoginLog add column lastPageViewed bigint unsigned");
+}
-
# ---- DO NOT EDIT BELOW THIS LINE ----
#-------------------------------------------------
Index: lib/WebGUI/Auth.pm
===================================================================
--- lib/WebGUI/Auth.pm (revision 3783)
+++ lib/WebGUI/Auth.pm (working copy)
@@ -93,12 +93,14 @@
#-------------------------------------------------------------------
sub _logLogin {
my $self = shift;
- $self->session->db->write("insert into userLoginLog values (?,?,?,?,?)",
+ $self->session->db->write("insert into userLoginLog values (?,?,?,?,?,?,?)",
[ $_[0],
$_[1],
$self->session->datetime->time(),
$self->session->env->getIp,
- $self->session->env->get("HTTP_USER_AGENT") ]
+ $self->session->env->get("HTTP_USER_AGENT"),
+ $self->session->getId,
+ $self->session->datetime->time()]
);
}
Index: lib/WebGUI/Operation/LoginHistory.pm
===================================================================
--- lib/WebGUI/Operation/LoginHistory.pm (revision 3783)
+++ lib/WebGUI/Operation/LoginHistory.pm (working copy)
@@ -46,7 +46,16 @@
$row[$i] .= '
'.$data{status}.' | ';
$row[$i] .= ''.$session->datetime->epochToHuman($data{timeStamp},"%H:%n%p %M/%D/%y").' | ';
$row[$i] .= ''.$data{ipAddress}.' | ';
- $row[$i] .= ''.$data{userAgent}.' | ';
+ $row[$i] .= ''.$data{userAgent}.' | ';
+ $row[$i] .= ''.$data{sessionId}.' | ';
+ if ($data{lastPageViewed}) {
+ $row[$i] .= ''.$session->datetime->epochToHuman($data{lastPageViewed},"%H:%n%p %M/%D/%y").' | ';
+ my ($interval, $units) = $session->datetime->secondsToInterval($data{lastPageViewed} - $data{timeStamp});
+ $row[$i] .= "$interval $units | ";
+ } else {
+ $row[$i] .= " | ";
+ $row[$i] .= " | ";
+ }
$i++;
}
$sth->finish;
@@ -57,7 +66,10 @@
$output .= ''.$i18n->get(434).' | ';
$output .= ''.$i18n->get(429).' | ';
$output .= ''.$i18n->get(431).' | ';
- $output .= ''.$i18n->get(433).' | ';
+ $output .= ''.$i18n->get(433).' | ';
+ $output .= ''.$i18n->echo("Session ID").' | ';
+ $output .= ''.$i18n->echo("Last Page Viewed").' | ';
+ $output .= ''.$i18n->echo("Session Length").' | ';
$output .= $p->getPage($session->form->process("pn"));
$output .= '';
$output .= $p->getBar($session->form->process("pn"));
Index: lib/WebGUI/Operation/User.pm
===================================================================
--- lib/WebGUI/Operation/User.pm (revision 3783)
+++ lib/WebGUI/Operation/User.pm (working copy)
@@ -579,6 +579,8 @@
+
+
';
my $p = doUserSearch($session,"listUsers",1);
foreach my $data (@{$p->getPageData}) {
@@ -589,7 +591,7 @@
$output .= ''.$data->{email}.' | ';
$output .= ''.$session->datetime->epochToHuman($data->{dateCreated},"%z").' | ';
$output .= ''.$session->datetime->epochToHuman($data->{lastUpdated},"%z").' | ';
- my ($lastLoginStatus, $lastLogin) = $session->db->quickArray("select status,timeStamp from userLoginLog where
+ my ($lastLoginStatus, $lastLogin, $lastPageViewed) = $session->db->quickArray("select status,timeStamp,lastPageViewed from userLoginLog where
userId=".$session->db->quote($data->{userId})." order by timeStamp DESC");
if ($lastLogin) {
$output .= ''.$session->datetime->epochToHuman($lastLogin).' | ';
@@ -601,6 +603,14 @@
} else {
$output .= ' - | ';
}
+ if ($lastPageViewed) {
+ $output .= ' '.$session->datetime->epochToHuman($lastPageViewed).' | ';
+ my ($interval, $units) = $session->datetime->secondsToInterval($lastPageViewed - $lastLogin);
+ $output .= "$interval $units | ";
+ } else {
+ $output .= " - | ";
+ $output .= " - | ";
+ }
$output .= '';
}
$output .= '';
Index: lib/WebGUI/Session/Var.pm
===================================================================
--- lib/WebGUI/Session/Var.pm (revision 3783)
+++ lib/WebGUI/Session/Var.pm (working copy)
@@ -185,6 +185,7 @@
$self->{_var}{expires} = $session->datetime->time() + $session->setting->get("sessionTimeout");
$self->session->{_sessionId} = $self->{_var}{sessionId};
$session->db->setRow("userSession","sessionId",$self->{_var});
+ $session->db->write("update userLoginLog set lastPageViewed=? where sessionId=?", [$session->datetime->time(), $sessionId]);
} else { ##Start a new default session with the requested, non-existant id.
$self->start(1,$sessionId);
}