diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt
index aba9c4555..2141bba4e 100644
--- a/docs/changelog/7.x.x.txt
+++ b/docs/changelog/7.x.x.txt
@@ -11,6 +11,7 @@
- fixed #11336: Duplicate Version Tag Created.
- fixed #11398: Recent post information keeps disappearing from my forums
- fixed #11394: Map points does not show all the data that was entered
+ - fixed #11400: Active Sessions Deletion
7.8.11
- fixed #11362: Unable to checkout with ITransact plugin
diff --git a/lib/WebGUI/Operation/ActiveSessions.pm b/lib/WebGUI/Operation/ActiveSessions.pm
index dbe351855..2000397c4 100644
--- a/lib/WebGUI/Operation/ActiveSessions.pm
+++ b/lib/WebGUI/Operation/ActiveSessions.pm
@@ -72,35 +72,30 @@ delete (kill) each one via www_killSession
sub www_viewActiveSessions {
my $session = shift;
return $session->privilege->adminOnly unless canView($session);
- my ($output, $p, @row, $i, $sth, %data);
- tie %data, 'Tie::CPHash';
- $sth = $session->db->read("select users.username,users.userId,userSession.sessionId,userSession.expires,
- userSession.lastPageView,userSession.lastIP from users,userSession where users.userId=userSession.userId
- and users.userId<>1 order by users.username,userSession.lastPageView desc");
- while (%data = $sth->hash) {
- $row[$i] = '
| '.$data{username}.' ('.$data{userId}.') | ';
- $row[$i] .= ''.$data{sessionId}.' | ';
- $row[$i] .= ''.$session->datetime->epochToHuman($data{expires}).' | ';
- $row[$i] .= ''.$session->datetime->epochToHuman($data{lastPageView}).' | ';
- $row[$i] .= ''.$data{lastIP}.' | ';
- $row[$i] .= ''.$session->icon->delete("op=killSession;sid=$data{sessionId}").' |
';
- $i++;
- }
- $sth->finish;
- $p = WebGUI::Paginator->new($session,$session->url->page('op=viewActiveSessions'));
- $p->setDataByArrayRef(\@row);
- my $i18n = WebGUI::International->new($session);
- $output .= '';
- $output .= '';
- $output .= $p->getPage($session->form->process("pn"));
- $output .= '
';
- $output .= $p->getBarTraditional($session->form->process("pn"));
- return WebGUI::AdminConsole->new($session,"activeSessions")->render($output);
+ my $i18n = WebGUI::International->new($session);
+ my $output = '';
+ $output .= '';
+ my $p = WebGUI::Paginator->new($session,$session->url->page('op=viewActiveSessions'));
+ $p->setDataByQuery("select users.username,users.userId,userSession.sessionId,userSession.expires,
+ userSession.lastPageView,userSession.lastIP from users,userSession where users.userId=userSession.userId
+ and users.userId<>1 order by users.username,userSession.lastPageView desc");
+ my $pn = $p->getPageNumber;
+ foreach my $data (@{ $p->getPageData() }) {
+ $output = '| '.$data->{username}.' ('.$data->{userId}.') | ';
+ $output .= ''.$data->{sessionId}.' | ';
+ $output .= ''.$session->datetime->epochToHuman($data->{expires}).' | ';
+ $output .= ''.$session->datetime->epochToHuman($data->{lastPageView}).' | ';
+ $output .= ''.$data->{lastIP}.' | ';
+ $output .= ''.$session->icon->delete("op=killSession;sid=".$data->{sessionId}.";pn=$pn").' |
';
+ }
+ $output .= '
';
+ $output .= $p->getBarTraditional();
+ return WebGUI::AdminConsole->new($session,"activeSessions")->render($output);
}
1;