diff --git a/Config/admin_menu.php b/Config/admin_menu.php index fbf033e..61cfd70 100644 --- a/Config/admin_menu.php +++ b/Config/admin_menu.php @@ -9,6 +9,16 @@ 'action' => 'index', ), 'children' => array( + 'sessions' => array( + 'title' => 'Session Audit', + 'url' => array( + 'admin' => true, + 'plugin' => 'audit', + 'controller' => 'session_audits', + 'action' => 'index', + ), + 'weight' => 1, + ), 'records' => array( 'title' => 'Audit Records', 'url' => array( @@ -17,7 +27,7 @@ 'controller' => 'audits', 'action' => 'index', ), - 'weight' => 1, + 'weight' => 5, ), 'setting' => array( 'title' => 'Settings', @@ -27,7 +37,7 @@ 'controller' => 'audit_settings', 'action' => 'index', ), - 'weight' => 5, + 'weight' => 10, ) ), )); diff --git a/Controller/SessionAuditsController.php b/Controller/SessionAuditsController.php new file mode 100644 index 0000000..0e2425a --- /dev/null +++ b/Controller/SessionAuditsController.php @@ -0,0 +1,45 @@ +SessionAudit->recursive = 0; + $this->set('sessionAudits', $this->paginate()); + } + +/** + * admin_view method + * + * @throws NotFoundException + * @param string $id + * @return void + */ + public function admin_view($id = null) { + if (!$this->SessionAudit->exists($id)) { + throw new NotFoundException(__d('croogo', 'Invalid session audit')); + } + $options = array('conditions' => array('SessionAudit.' . $this->SessionAudit->primaryKey => $id)); + $this->set('sessionAudit', $this->SessionAudit->find('first', $options)); + } + +} diff --git a/Model/SessionAudit.php b/Model/SessionAudit.php new file mode 100644 index 0000000..4603f3c --- /dev/null +++ b/Model/SessionAudit.php @@ -0,0 +1,36 @@ + array( + 'className' => 'User', + 'foreignKey' => 'user_id', + 'conditions' => '', + 'fields' => '', + 'order' => '' + ), + 'Source' => array( + 'className' => 'User', + 'foreignKey' => 'source_id', + 'conditions' => '', + 'fields' => '', + 'order' => '' + ), + ); + +} diff --git a/View/SessionAudits/admin_index.ctp b/View/SessionAudits/admin_index.ctp new file mode 100644 index 0000000..4ca5f0e --- /dev/null +++ b/View/SessionAudits/admin_index.ctp @@ -0,0 +1,69 @@ +viewVars['title_for_layout'] = __d('croogo', 'Session Audits'); +$this->extend('/Common/admin_index'); + +$this->Html + ->addCrumb('', '/admin', array('icon' => 'home')) + ->addCrumb(__d('croogo', 'Session Audits'), array('action' => 'index')); + +?> + +
+ Paginator->sort('id'); ?> + Paginator->sort('session_id'); ?> + Paginator->sort('event'); ?> + |
+ Paginator->sort('user_id'); ?> | +Paginator->sort('source_id'); ?> | +Paginator->sort('remote_addr'); ?> | +
+ Paginator->sort('ua'); ?> + Paginator->sort('referer'); ?> + Paginator->sort('created'); ?> + |
+ + |
---|---|---|---|---|---|
+ + + + |
+ + Html->link($sessionAudit['User']['name'], array( + 'plugin' => 'users', 'controller' => 'users', 'action' => 'view', + $sessionAudit['User']['id'] + )); + ?> + | ++ Html->link($sessionAudit['Source']['name'], array( + 'plugin' => 'users', 'controller' => 'users', 'action' => 'view', + $sessionAudit['Source']['id'], + )); + ?> + | ++ |
+ Html->tag('span', $ua, array(
+ 'title' => $sessionAudit['SessionAudit']['ua'],
+ ));
+ ?>
+ + + |
+ + Croogo->adminRowAction('', array('action' => 'view', $sessionAudit['SessionAudit']['id']), array('icon' => 'eye-open')); ?> + | +