diff --git a/db/connection/ConnectionMYS.php b/db/connection/ConnectionMYS.php index 32a9175..18d65e8 100644 --- a/db/connection/ConnectionMYS.php +++ b/db/connection/ConnectionMYS.php @@ -9,7 +9,7 @@ class ConnectionMYS extends ConnectionAbstr { public function __construct(DBInfo $dbinfo, $new_link = false, $client_flag = 0){ //$this->dbinfo = $dbinfo; - $this->connection = mysqli_connect($dbinfo->m_host, $dbinfo->m_user, $dbinfo->m_password, $new_link, $client_flag); + $this->connection = @mysqli_connect($dbinfo->m_host, $dbinfo->m_user, $dbinfo->m_password, $new_link, $client_flag); if(!$this->connection){ throw new \SYSTEM\LOG\ERROR('Could not connect to Database. Check ur Database Settings');} diff --git a/dbd/qq/SYS_SAIMOD_LOG_FILTER.php b/dbd/qq/SYS_SAIMOD_LOG_FILTER.php index 0569f3b..fc8ddf1 100644 --- a/dbd/qq/SYS_SAIMOD_LOG_FILTER.php +++ b/dbd/qq/SYS_SAIMOD_LOG_FILTER.php @@ -10,12 +10,12 @@ class SYS_SAIMOD_LOG_FILTER extends \SYSTEM\DB\QP { ' ON '.\SYSTEM\DBD\system_log::NAME_PG.'.'.\SYSTEM\DBD\system_log::FIELD_USER. ' = '.\SYSTEM\DBD\system_user::NAME_PG.'.'.\SYSTEM\DBD\system_user::FIELD_ID. ' WHERE '.\SYSTEM\DBD\system_log::FIELD_CLASS.' LIKE $1'. -' ORDER BY '.\SYSTEM\DBD\system_log::FIELD_TIME.' DESC LIMIT 100;', +' ORDER BY '.\SYSTEM\DBD\system_log::FIELD_TIME.' DESC, '.\SYSTEM\DBD\system_log::NAME_PG.'.'.\SYSTEM\DBD\system_log::FIELD_ID.' DESC LIMIT 100;', //mys 'SELECT * FROM '.\SYSTEM\DBD\system_log::NAME_MYS. ' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_MYS. ' ON '.\SYSTEM\DBD\system_log::NAME_MYS.'.'.\SYSTEM\DBD\system_log::FIELD_USER. ' = '.\SYSTEM\DBD\system_user::NAME_MYS.'.'.\SYSTEM\DBD\system_user::FIELD_ID. ' WHERE '.\SYSTEM\DBD\system_log::FIELD_CLASS.' LIKE ?'. -' ORDER BY '.\SYSTEM\DBD\system_log::FIELD_TIME.' DESC LIMIT 100;' +' ORDER BY '.\SYSTEM\DBD\system_log::FIELD_TIME.' DESC, '.\SYSTEM\DBD\system_log::NAME_MYS.'.'.\SYSTEM\DBD\system_log::FIELD_ID.' DESC LIMIT 100;' );}} diff --git a/dbd/qq/SYS_SAIMOD_SECURITY_RIGHT_CHECK.php b/dbd/qq/SYS_SAIMOD_SECURITY_RIGHT_CHECK.php new file mode 100644 index 0000000..882e61e --- /dev/null +++ b/dbd/qq/SYS_SAIMOD_SECURITY_RIGHT_CHECK.php @@ -0,0 +1,13 @@ +id : null,$thrown)); if(\property_exists(get_class($E), 'logged')){ $E->logged = true;} //we just did log - } catch (\Exception $E){} //Error -> Ignore + } catch (\Exception $E){return false;} //Error -> Ignore return false; //We just log and do not handle the error! } diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.js b/sai/modules/saimod_sys_security/saimod_sys_security.js index e5db108..5d7f9eb 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.js +++ b/sai/modules/saimod_sys_security/saimod_sys_security.js @@ -13,7 +13,7 @@ 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+'&search='+user_search, function(){ + $('#tab_users').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action+'&search='+encodeURIComponent(user_search), function(){ register_users(); $('img#loader').hide();}); return; @@ -26,6 +26,10 @@ function load_security_tab(action){ $('#tab_groups').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action, function(){ $('img#loader').hide();}); return; + case 'stats': + $('#tab_stats').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action='+action, function(){ + $('img#loader').hide();}); + return; default: $('img#loader').hide(); } @@ -33,9 +37,54 @@ function load_security_tab(action){ function register_rights(){ $('#new_right').click(function(){ - $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=newright'); + $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=newright',function(){ + register_newright(); + }); + }); + + $('.right_edit').click(function(){ + alert('todo'); + }); + + $('.right_delete').click(function(){ + $('#tab_rights').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=deleterightconfirm&id='+$(this).attr('right_id'),function(){ + register_deleteright(); + }); }); } + +function register_deleteright(){ + $('#deleteright_confirm').click(function(){ + $.get( SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=deleteright&id='+$(this).attr('right_id'), + function(data){ + if(data==1){ + alert('sucess'); + } else { + alert('fail'); + } + }); + }); + + $('#deleteright_abort').click(function(){ + load_security_tab('rights'); + }); +} + +function register_newright(){ + $('#addright').click(function(){ + $.get( SAI_ENDPOINT+ + 'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=addright&id='+$('#addright_id').val()+ + '&name='+encodeURIComponent($('#addright_name').val())+ + '&description='+encodeURIComponent($('#addright_description').val()),function(data){ + if(data==1){ + alert('sucess'); + } else { + alert('fail'); + } + }); + }) +} + function register_users(){ $('#user_go').click(function(){ user_search = $('#user_search').val(); @@ -43,6 +92,6 @@ function register_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')); + $('#tab_users').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_security&action=user&username='+encodeURIComponent($(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 7383338..f3d7ffb 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.php +++ b/sai/modules/saimod_sys_security/saimod_sys_security.php @@ -17,12 +17,23 @@ 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_addright($id,$name,$description){ + //TODO rightcheck + return \SYSTEM\DBD\SYS_SAIMOD_SECURITY_RIGHT_INSERT::QI(array($id,$name,$description));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_deleterightconfirm($id){ + //TODO rightcheck + $vars = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_RIGHT_CHECK::Q1(array($id)); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_deleteright.tpl'),$vars);} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_deleteright($id){ + //TODO rightcheck + return \SYSTEM\DBD\SYS_SAIMOD_SECURITY_RIGHT_DELETE::QI(array($id));} + 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); + while($r = $res->next()){ $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); @@ -34,10 +45,14 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { 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_stats(){ + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security_stats.tpl'),array()); + } + 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']); + $vars['user_actions'] = array_key_exists('id', $vars) ? 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); } diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.tpl b/sai/modules/saimod_sys_security/saimod_sys_security.tpl index 4869302..7c1f8a4 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security.tpl @@ -3,11 +3,13 @@
  • Users
  • Rights
  • Groups
  • +
  • Stats
  • +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_deleteright.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_deleteright.tpl new file mode 100644 index 0000000..819ead4 --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security_deleteright.tpl @@ -0,0 +1,17 @@ +

    Delete Right

    + + + + + + + + + + + + + +
    ID${ID}
    Name${name}
    Description${description}
    + + \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl index 8d6dd0b..84a61c3 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security_newright.tpl @@ -1 +1,16 @@ -new right \ No newline at end of file +

    New Right

    + + + + + + + + + + + + + +
    ID
    Name
    Description
    + \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_right.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_right.tpl index cc2e7f7..11ba748 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security_right.tpl +++ b/sai/modules/saimod_sys_security/saimod_sys_security_right.tpl @@ -1,9 +1,9 @@ ${ID} ${name} - ${description} + ${description} - - + + \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security_stats.tpl b/sai/modules/saimod_sys_security/saimod_sys_security_stats.tpl new file mode 100644 index 0000000..0a55588 --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security_stats.tpl @@ -0,0 +1 @@ +No Stats available yet. \ No newline at end of file diff --git a/sai/sai/saigui.php b/sai/sai/saigui.php index 1068e46..4030dfc 100644 --- a/sai/sai/saigui.php +++ b/sai/sai/saigui.php @@ -19,7 +19,7 @@ class saigui extends \SYSTEM\PAGE\Page { \array_search($classname, $mods) !== false && ( \call_user_func(array($classname, 'right_public')) || \call_user_func(array($classname, 'right_right')))){ - return \SYSTEM\API\api::run('\SYSTEM\API\verify', $classname , $pg, 42, false, false); + return \SYSTEM\API\api::run('\SYSTEM\API\verify', $classname , $pg, 42, true, false); } else { return 'You are no longer logged in. Page reload in 5sec...';} } else {