From 32b620f33a7bf023473fd09086f046435e24fc8f Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 5 Feb 2012 16:38:05 -0800 Subject: [PATCH] New module to examine active sessions --- .../controllers/admin_session_explorer.php | 61 +++++++++++++++++++ .../helpers/session_explorer_event.php | 29 +++++++++ 3.0/modules/session_explorer/module.info | 7 +++ .../views/admin_session_explorer.html.php | 44 +++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 3.0/modules/session_explorer/controllers/admin_session_explorer.php create mode 100644 3.0/modules/session_explorer/helpers/session_explorer_event.php create mode 100644 3.0/modules/session_explorer/module.info create mode 100644 3.0/modules/session_explorer/views/admin_session_explorer.html.php diff --git a/3.0/modules/session_explorer/controllers/admin_session_explorer.php b/3.0/modules/session_explorer/controllers/admin_session_explorer.php new file mode 100644 index 00000000..753a494a --- /dev/null +++ b/3.0/modules/session_explorer/controllers/admin_session_explorer.php @@ -0,0 +1,61 @@ +get_uas_and_ips(); + + $view = new Admin_View("admin.html"); + $view->page_title = t("Akismet spam filtering"); + $view->content = new View("admin_session_explorer.html"); + $view->content->uas = $uas; + $view->content->ips = $ips; + print $view; + } + + private function get_uas_and_ips() { + $uas = array(); + $ips = array(); + $d = new Session_Database_Driver(); + foreach (db::build() + ->select("session_id") + ->from("sessions") + ->execute() as $r) { + $data = explode("|", $d->read($r->session_id)); + $ua = unserialize($data[4]); + $ip = unserialize($data[5]); + if (!isset($uas[$ua])) { + $uas[$ua] = 0; + } + if (!isset($ips[$ip])) { + $ips[$ip] = 0; + } + $uas[$ua]++; + $ips[$ip]++; + } + arsort($uas); + arsort($ips); + + // Top 20 only + array_splice($uas, 20); + array_splice($ips, 20); + + return array($uas, $ips); + } +} \ No newline at end of file diff --git a/3.0/modules/session_explorer/helpers/session_explorer_event.php b/3.0/modules/session_explorer/helpers/session_explorer_event.php new file mode 100644 index 00000000..6ba44c30 --- /dev/null +++ b/3.0/modules/session_explorer/helpers/session_explorer_event.php @@ -0,0 +1,29 @@ +get("statistics_menu") + ->append(Menu::factory("link") + ->id("session_explorer") + ->label(t("Explore sessions")) + ->url(url::site("admin/session_explorer"))); + } +} diff --git a/3.0/modules/session_explorer/module.info b/3.0/modules/session_explorer/module.info new file mode 100644 index 00000000..4ec227af --- /dev/null +++ b/3.0/modules/session_explorer/module.info @@ -0,0 +1,7 @@ +name = "Session Explorer" +description = "Explore the sessions currently active in your Gallery" +version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:session_explorer" +discuss_url = "http://gallery.menalto.com/forum_module_session_explorer" diff --git a/3.0/modules/session_explorer/views/admin_session_explorer.html.php b/3.0/modules/session_explorer/views/admin_session_explorer.html.php new file mode 100644 index 00000000..f396ddf6 --- /dev/null +++ b/3.0/modules/session_explorer/views/admin_session_explorer.html.php @@ -0,0 +1,44 @@ + +
+

+ +
+

+ + + + + + + + $count): ?> + + "> + + + + + +
+
+ +
+

+ + + + + + + + $count): ?> + + "> + + + + + +
+
+