From 770702ddb45d3942b831667f2f2edf7b09e73d47 Mon Sep 17 00:00:00 2001 From: rylon Date: Mon, 27 Jan 2014 01:42:12 +0100 Subject: [PATCH] improvements for saimod security --- dbd/qq/SYS_SAIMOD_LOG_FILTER.php | 1 - dbd/qq/SYS_SAIMOD_SECURITY_USER.php | 12 ++++++ dbd/qq/SYS_SAIMOD_SECURITY_USER_LOG.php | 22 +++++++++++ dbd/qq/SYS_SAIMOD_SECURITY_USER_LOG_COUNT.php | 17 +++++++++ sai/modules/saimod_sys_log/saimod_sys_log.php | 9 ++--- .../saimod_sys_log/saimod_sys_log_stats.tpl | 13 ++++++- .../saimod_sys_security.js | 23 +++++++++++- .../saimod_sys_security.php | 37 +++++++++++++++++-- .../saimod_sys_security.tpl | 1 + .../saimod_sys_security_newright.tpl | 1 + .../saimod_sys_security_rights.tpl | 2 +- .../saimod_sys_security_user.tpl | 2 +- .../saimod_sys_security_user_view.tpl | 36 ++++++++++++++++++ .../saimod_sys_security_users.tpl | 7 ++-- 14 files changed, 164 insertions(+), 19 deletions(-) create mode 100644 dbd/qq/SYS_SAIMOD_SECURITY_USER.php create mode 100644 dbd/qq/SYS_SAIMOD_SECURITY_USER_LOG.php create mode 100644 dbd/qq/SYS_SAIMOD_SECURITY_USER_LOG_COUNT.php create mode 100644 sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl create mode 100644 sai/modules/saimod_sys_security/saimod_sys_security_user_view.tpl diff --git a/dbd/qq/SYS_SAIMOD_LOG_FILTER.php b/dbd/qq/SYS_SAIMOD_LOG_FILTER.php index 97225b9..0569f3b 100644 --- a/dbd/qq/SYS_SAIMOD_LOG_FILTER.php +++ b/dbd/qq/SYS_SAIMOD_LOG_FILTER.php @@ -19,4 +19,3 @@ class SYS_SAIMOD_LOG_FILTER extends \SYSTEM\DB\QP { ' WHERE '.\SYSTEM\DBD\system_log::FIELD_CLASS.' LIKE ?'. ' ORDER BY '.\SYSTEM\DBD\system_log::FIELD_TIME.' DESC LIMIT 100;' );}} - diff --git a/dbd/qq/SYS_SAIMOD_SECURITY_USER.php b/dbd/qq/SYS_SAIMOD_SECURITY_USER.php new file mode 100644 index 0000000..fa2574d --- /dev/null +++ b/dbd/qq/SYS_SAIMOD_SECURITY_USER.php @@ -0,0 +1,12 @@ +next()){ //print_r($r); @@ -71,7 +70,7 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { $r['time'] = self::time_elapsed_string(strtotime($r['time'])); $r['message'] = substr($r['message'],0,255); $table .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_table_row.tpl'),$r); - } + } $vars = array(); $vars['count'] = $count['count']; $vars['table'] = $table; @@ -113,13 +112,13 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { return $result; } - public static function sai_mod__SYSTEM_SAI_saimod_sys_log(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_log(){ $vars = array(); $vars['PICPATH'] = \SYSTEM\WEBPATH(new \SYSTEM\PSAI(), 'modules/saimod_sys_log/img/'); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.tpl'), $vars); } - private static function tablerow_class($class){ + public static function tablerow_class($class){ switch($class){ case 'SYSTEM\LOG\INFO': case 'INFO': case 'SYSTEM\LOG\COUNTER': return 'success'; diff --git a/sai/modules/saimod_sys_log/saimod_sys_log_stats.tpl b/sai/modules/saimod_sys_log/saimod_sys_log_stats.tpl index 21aae67..7221777 100644 --- a/sai/modules/saimod_sys_log/saimod_sys_log_stats.tpl +++ b/sai/modules/saimod_sys_log/saimod_sys_log_stats.tpl @@ -3,11 +3,20 @@
  • 30d
  • 14d
  • 7d
  • +
  • 2d
  • 1d
  • 12h
  • -
  • 6h
  • -
  • 1h
  • +
  • 6h
  • +
  • 4h
  • +
  • 2h
  • +
  • 1h
  • +
  • 30m
  • +
  • 10m
  • +
  • 5m
  • 1m
  • +
  • 30s
  • +
  • 10s
  • +
  • 5s
  • 1s
  • diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.js b/sai/modules/saimod_sys_security/saimod_sys_security.js index b5e5f3f..e5db108 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.js +++ b/sai/modules/saimod_sys_security/saimod_sys_security.js @@ -1,3 +1,4 @@ +var user_search = ''; function init__SYSTEM_SAI_saimod_sys_security() { $('#securitytab a').click(function (e) { e.preventDefault(); @@ -12,11 +13,13 @@ function load_security_tab(action){ $('img#loader').show(); switch(action){ case 'users': - $('#tab_users').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action, function(){ + $('#tab_users').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action+'&search='+user_search, function(){ + register_users(); $('img#loader').hide();}); return; case 'rights': - $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action, function(){ + $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action, function(){ + register_rights(); $('img#loader').hide();}); return; case 'groups': @@ -26,4 +29,20 @@ function load_security_tab(action){ default: $('img#loader').hide(); } +} + +function register_rights(){ + $('#new_right').click(function(){ + $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=newright'); + }); +} +function register_users(){ + $('#user_go').click(function(){ + user_search = $('#user_search').val(); + load_security_tab('users'); + }); + $('#user_search').val(user_search); + $('.user_entry').click(function(){ + $('#tab_users').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=user&username='+$(this).attr('username')); + }); } \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.php b/sai/modules/saimod_sys_security/saimod_sys_security.php index f890959..7383338 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.php +++ b/sai/modules/saimod_sys_security/saimod_sys_security.php @@ -6,6 +6,9 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_groups(){ return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_groups.tpl'),array());} + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_newright(){ + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_newright.tpl'),array());} + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_rights(){ $rows = ''; $res = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_RIGHTS::QQ(); @@ -14,8 +17,32 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_rights.tpl'),array('rows' => $rows)); } - public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_users($search = null){ - $search = '%'.$search.'%'; + private static function user_actions($userid){ + $count = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER_LOG_COUNT::Q1(array($userid)); + $res = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER_LOG::QQ(array($userid)); + $table=''; + while($r = $res->next()){ + //print_r($r); + $r['class_row'] = \SYSTEM\SAI\saimod_sys_log::tablerow_class($r['class']); + $r['time'] = self::time_elapsed_string(strtotime($r['time'])); + $r['message'] = substr($r['message'],0,255); + $table .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_table_row.tpl'),$r); + } + $vars = array(); + $vars['count'] = $count['count']; + $vars['table'] = $table; + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_table.tpl'), $vars); + } + + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_user($username){ + $vars = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER::Q1(array($username)); + $vars['time_elapsed'] = self::time_elapsed_string($vars['last_active']); + $vars['user_actions'] = self::user_actions($vars['id']); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_user_view.tpl'),$vars); + } + + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_users($search = null){ + $search = '%'.$search.'%'; $count = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER_COUNT::Q1(array($search),array($search,$search)); $rows = ''; $res = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USERS::QQ(array($search),array($search,$search)); @@ -27,8 +54,10 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_users.tpl'),array('rows' => $rows, 'count' => $count['count'])); } - public static function sai_mod__SYSTEM_SAI_saimod_sys_security(){ - return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.tpl'), array());} + public static function sai_mod__SYSTEM_SAI_saimod_sys_security(){ + $vars = array(); + $vars['PICPATH'] = \SYSTEM\WEBPATH(new \SYSTEM\PSAI(), 'modules/saimod_sys_log/img/'); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.tpl'), $vars);} private static function tablerow_class($last_active){ $time = time() - $last_active; diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.tpl b/sai/modules/saimod_sys_security/saimod_sys_security.tpl index a5cb30e..4869302 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security.tpl @@ -3,6 +3,7 @@
  • Users
  • Rights
  • Groups
  • +
    diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl new file mode 100644 index 0000000..8d6dd0b --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl @@ -0,0 +1 @@ +new right \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_rights.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_rights.tpl index 67a4bc5..df47c7a 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security_rights.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security_rights.tpl @@ -1,4 +1,4 @@ - +

    diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_user.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_user.tpl index 845ab8d..e50d11c 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security_user.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security_user.tpl @@ -1,4 +1,4 @@ - + diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_user_view.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_user_view.tpl new file mode 100644 index 0000000..d9a1612 --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security_user_view.tpl @@ -0,0 +1,36 @@ +
    +

    Userinfo for User: ${username}

    +

    Basics

    +
    +
    ${id} ${username} ${email}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ID${id}
    Username${username}
    EMail${email}
    Joindate${joindate}
    Locale${locale}
    Last active${time_elapsed}
    Flag(remove)${account_flag}
    +

    Users Last Actions

    +${user_actions} diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_users.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_users.tpl index 5164a29..d493f31 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security_users.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security_users.tpl @@ -1,7 +1,8 @@ -Users: ${count} + +
    - - +
    +Users: ${count}
    ID