diff --git a/dbd/sql/mysql/data/system_page.sql b/dbd/sql/mysql/data/system_page.sql index aaba211..4cd2088 100644 --- a/dbd/sql/mysql/data/system_page.sql +++ b/dbd/sql/mysql/data/system_page.sql @@ -36,7 +36,7 @@ INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (93, 42, 'lib', 'mod', 90, 0, 1, '#tab_mod', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_mod&action=lib', 'init_saimod_sys_mod_lib', '\\SYSTEM\\SAI\\saimod_sys_mod'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (100, 42, 'security', 'security', -1, 0, 0, '#content', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security', 'init_saimod_sys_security', '\\SYSTEM\\SAI\\saimod_sys_security'); -INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (101, 42, 'users', 'security', 100, 0, 0, '#tab_security', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security&action=users&search=${search}', 'init_saimod_sys_security_users', '\\SYSTEM\\SAI\\saimod_sys_security'); +INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (101, 42, 'users', 'security', 100, 0, 0, '#tab_security', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security&action=users&filter=${filter}&search=${search}&page=${page}', 'init_saimod_sys_security_users', '\\SYSTEM\\SAI\\saimod_sys_security'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (102, 42, 'rights', 'security', 100, 0, 1, '#tab_security', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security&action=rights', 'init_saimod_sys_security_rights', '\\SYSTEM\\SAI\\saimod_sys_security'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (103, 42, 'user', 'security', 100, 0, 1, '#tab_security', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security&action=user&username=${username}', 'init_saimod_sys_security_user', '\\SYSTEM\\SAI\\saimod_sys_security'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (104, 42, 'newright', 'security', 100, 0, 1, '#tab_security', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_security&action=newright', 'init_saimod_sys_security_newright', '\\SYSTEM\\SAI\\saimod_sys_security'); diff --git a/dbd/sql/mysql/data/system_sai_api.sql b/dbd/sql/mysql/data/system_sai_api.sql index de5765f..15735cd 100644 --- a/dbd/sql/mysql/data/system_sai_api.sql +++ b/dbd/sql/mysql/data/system_sai_api.sql @@ -60,7 +60,9 @@ INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `nam INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (300, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_security', 'action', NULL); -- INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (301, 42, 2, 300, 'user', 'username', 'STRING'); -INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (302, 42, 3, 300, 'users', 'search', 'STRING'); +INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (302, 42, 3, 300, 'users', 'filter', 'STRING'); +INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (303, 42, 3, 300, 'users', 'search', 'STRING'); +INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (304, 42, 3, 300, 'users', 'page', 'UINT0'); -- INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (310, 42, 2, 300, 'addright', 'id', 'UINT'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (311, 42, 2, 300, 'addright', 'name', 'STRING'); diff --git a/dbd/sql/mysql/data/system_text.sql b/dbd/sql/mysql/data/system_text.sql index dc66e75..34b9ba5 100644 --- a/dbd/sql/mysql/data/system_text.sql +++ b/dbd/sql/mysql/data/system_text.sql @@ -27,6 +27,7 @@ INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_all', 'basic'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_all', 'sai_log'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_all', 'sai_todo'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_all', 'sai_security'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_all', 'sai_text'); DELETE FROM `system_text` WHERE id = 'basic_analytics'; @@ -267,6 +268,7 @@ INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('basic_placeholder_search', 'enUS', 'I\'m searching for...', 0, 0, '2015-04-15 18:29:16', '0000-00-00 00:00:00'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_placeholder_search', 'basic'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_placeholder_search', 'sai_todo'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_placeholder_search', 'sai_security'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_placeholder_search', 'sai_log'); DELETE FROM `system_text` WHERE id = 'basic_progress'; @@ -602,6 +604,14 @@ INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_page', 'basic'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_page', 'sai_todo'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_page', 'sai_log'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_page', 'sai_security'); + + DELETE FROM `system_text` WHERE id = 'basic_add_right'; + DELETE FROM `system_text_tag` WHERE id = 'basic_add_right'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('basic_add_right', 'deDE', 'Recht hinzufügen', 1, 1, '2015-04-16 23:11:18', '2015-04-16 16:48:36'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('basic_add_right', 'enUS', 'Add Right', 2, 1, '2015-04-16 23:11:18', '2015-04-16 23:11:18'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_add_right', 'basic'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('basic_add_right', 'sai_security'); -- SAI DELETE FROM `system_text` WHERE id = 'sai_api_title'; @@ -964,6 +974,7 @@ INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_id', 'sai_log'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_id', 'sai_todo'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_id', 'sai_text'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_id', 'sai_security'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_id', 'table'); DELETE FROM `system_text` WHERE id = 'table_ip'; @@ -1149,6 +1160,7 @@ INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_username', 'enUS', 'Username', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_username', 'sai_todo'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_username', 'sai_start'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_username', 'sai_security'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_username', 'table'); DELETE FROM `system_text` WHERE id = 'table_open'; @@ -1224,6 +1236,41 @@ INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_priority', 'enUS', 'Priority', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_priority', 'sai_todo'); INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_priority', 'table'); + + DELETE FROM `system_text` WHERE id = 'table_email'; + DELETE FROM `system_text_tag` WHERE id = 'table_email'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_email', 'deDE', 'E-Mail', 2, 2, '2015-04-23 01:58:25', '2015-04-23 01:58:25'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_email', 'enUS', 'EMail', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_email', 'sai_security'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_email', 'table'); + + DELETE FROM `system_text` WHERE id = 'table_join_date'; + DELETE FROM `system_text_tag` WHERE id = 'table_join_date'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_join_date', 'deDE', 'Beitrittsdatum', 2, 2, '2015-04-23 01:58:25', '2015-04-23 01:58:25'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_join_date', 'enUS', 'Join Date', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_join_date', 'sai_security'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_join_date', 'table'); + + DELETE FROM `system_text` WHERE id = 'table_language'; + DELETE FROM `system_text_tag` WHERE id = 'table_language'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_language', 'deDE', 'Sprache', 2, 2, '2015-04-23 01:58:25', '2015-04-23 01:58:25'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_language', 'enUS', 'Language', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_language', 'sai_security'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_language', 'table'); + + DELETE FROM `system_text` WHERE id = 'table_last_active'; + DELETE FROM `system_text_tag` WHERE id = 'table_last_active'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_last_active', 'deDE', 'Zuletzt aktiv', 2, 2, '2015-04-23 01:58:25', '2015-04-23 01:58:25'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_last_active', 'enUS', 'Last active', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_last_active', 'sai_security'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_last_active', 'table'); + + DELETE FROM `system_text` WHERE id = 'table_reset_password'; + DELETE FROM `system_text_tag` WHERE id = 'table_reset_password'; + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_reset_password', 'deDE', 'Passwort zurücksetzen', 2, 2, '2015-04-23 01:58:25', '2015-04-23 01:58:25'); + INSERT INTO `system_text` (`id`, `lang`, `text`, `author`, `author_edit`, `time_create`, `time_edit`) VALUES ('table_reset_password', 'enUS', 'Reset Password', 2, 2, '2015-04-18 13:56:53', '2015-04-18 13:56:53'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_reset_password', 'sai_security'); + INSERT INTO `system_text_tag` (`id`, `tag`) VALUES ('table_reset_password', 'table'); -- Time diff --git a/sai/modules/saimod_sys_security/js/saimod_sys_security.js b/sai/modules/saimod_sys_security/js/saimod_sys_security.js index 8e31b7d..4f52573 100644 --- a/sai/modules/saimod_sys_security/js/saimod_sys_security.js +++ b/sai/modules/saimod_sys_security/js/saimod_sys_security.js @@ -6,15 +6,20 @@ function init_saimod_sys_security() { $(this).parent().addClass('active'); }); - $('#user_go').click(function(){ - system.load('security;search.'+encodeURIComponent($('#user_search').val()));}) }; +function register_search(){ + $('#btn_search').click(function(){ + system.load($(this).attr('state')+$('#input_search').val(),true); + }); +} + function init_saimod_sys_security_users() { $("#sai_mod_security_table").tablesorter(); $('#securitytab li').each(function(){ $(this).removeClass('active');}); $('#menu_users').parent().addClass('active'); + register_search(); } function init_saimod_sys_security_user() { diff --git a/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS.php b/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS.php index 34b1a86..ef68526 100644 --- a/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS.php +++ b/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS.php @@ -5,7 +5,7 @@ class SYS_SAIMOD_SECURITY_USERS extends \SYSTEM\DB\QP { protected static function query(){ return new \SYSTEM\DB\QQuery(get_class(), //pg -'SELECT id,username,email,joindate,locale, EXTRACT(EPOCH FROM last_active) as last_active, account_flag FROM system.user WHERE username LIKE $1 OR email LIKE $1 ORDER BY last_active DESC LIMIT 100;', +'SELECT id,username,email,joindate,locale, EXTRACT(EPOCH FROM last_active) as last_active, account_flag FROM system.user WHERE username LIKE $1 OR email LIKE $1 ORDER BY last_active DESC;', //mys -'SELECT id,username,email,joindate,locale,unix_timestamp(last_active)as last_active, account_flag FROM system_user WHERE username LIKE ? OR email LIKE ? ORDER BY last_active DESC LIMIT 100;' +'SELECT id,username,email,joindate,locale,unix_timestamp(last_active)as last_active, account_flag FROM system_user WHERE username LIKE ? OR email LIKE ? ORDER BY last_active DESC;' );}} \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS_FILTER.php b/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS_FILTER.php new file mode 100644 index 0000000..8852704 --- /dev/null +++ b/sai/modules/saimod_sys_security/qq/SYS_SAIMOD_SECURITY_USERS_FILTER.php @@ -0,0 +1,15 @@ +next()){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_action_users($filter = "all",$search="%",$page=0){ + $count = $filter == "all" ? \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER_COUNT::Q1(array($search,$search))['count'] : + \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USER_COUNT_FILTER::Q1(array($search,$search,$filter))['count']; + $vars = array(); + $vars['filter'] = $filter; + $vars['search'] = $search; + $vars['page'] = $page; + $vars['table'] = ''; + $res = $filter == "all" ? \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USERS::QQ(array($search),array($search,$search)) : + \SYSTEM\DBD\SYS_SAIMOD_SECURITY_USERS_FILTER::QQ(array($search,$search,$filter)); + $count_filtered = 0; + $res->seek(100*$page); + while(($r = $res->next()) && ($count_filtered < 100)){ $r['class'] = self::tablerow_class($r['last_active']); $r['time_elapsed'] = \SYSTEM\time::time_ago_string($r['last_active']); - $rows .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl'),$r); + $vars['table'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl'),$r); + $count_filtered++; } - $vars = array(); - $vars['rows'] = $rows; - $vars['count'] = $count['count']; + $vars['pagination'] = ''; + $vars['page_last'] = ceil($count/100)-1; + for($i=0;$i < ceil($count/100);$i++){ + $data = array('page' => $i,'search' => $search, 'filter' => $filter, 'active' => ($i == $page) ? 'active' : ''); + $vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/tpl/saimod_sys_security_pagination.tpl'), $data); + } + $vars['count'] = $count_filtered.'/'.$count; + $vars['right_filter'] = ''; + $res = \SYSTEM\DBD\SYS_SAIMOD_SECURITY_RIGHTS::QQ(); + while($row = $res->next()){ + $data = array('active' => ($filter == $row['ID'] ? 'active' : ''), 'filter' => $row['ID'], 'search' => $search, 'name' => $row['name']); + $vars['right_filter'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/tpl/saimod_sys_security_right_filter.tpl'),$data);} + $vars['active'] = ($filter == 'all' ? 'active' : ''); $vars = array_merge($vars,\SYSTEM\PAGE\text::tag(\SYSTEM\DBD\system_text::TAG_SAI_SECURITY)); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/tpl/saimod_sys_security_users.tpl'),$vars); } diff --git a/sai/modules/saimod_sys_security/tpl/saimod_sys_security.tpl b/sai/modules/saimod_sys_security/tpl/saimod_sys_security.tpl index bf46324..c82cb83 100644 --- a/sai/modules/saimod_sys_security/tpl/saimod_sys_security.tpl +++ b/sai/modules/saimod_sys_security/tpl/saimod_sys_security.tpl @@ -5,8 +5,6 @@
  • Users
  • Rights
  • - -
    diff --git a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_pagination.tpl b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_pagination.tpl new file mode 100644 index 0000000..250bd56 --- /dev/null +++ b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_pagination.tpl @@ -0,0 +1 @@ +
  • ${page}
  • \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_right_filter.tpl b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_right_filter.tpl new file mode 100644 index 0000000..ee0cfd4 --- /dev/null +++ b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_right_filter.tpl @@ -0,0 +1 @@ +
  • ${name}
  • \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl index c7d3dc9..925f4b5 100644 --- a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl +++ b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_user.tpl @@ -5,11 +5,6 @@ ${joindate} ${locale} ${time_elapsed} - ${account_flag} - diff --git a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_users.tpl b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_users.tpl index ce5a57f..0a32863 100644 --- a/sai/modules/saimod_sys_security/tpl/saimod_sys_security_users.tpl +++ b/sai/modules/saimod_sys_security/tpl/saimod_sys_security_users.tpl @@ -1,19 +1,26 @@ -Users: ${count} - - + +
    +
    ${basic_rows}: ${count} ${basic_page}: ${page}
    +
    - - - - - - - - - + + + + + + + - - - ${rows} - -
    IDUsernameE-MailJoinDateLocaleLast ActiveFlagreset password${table_id}${table_username}${table_email}${table_join_date}${table_language}${table_last_active}${table_reset_password}
    \ No newline at end of file + ${table} + + +
    \ No newline at end of file