diff --git a/api/api.php b/api/api.php index b6b1368..839e1f1 100644 --- a/api/api.php +++ b/api/api.php @@ -7,11 +7,11 @@ class api { public static function run($verifyclassname,$apiclassname,$params,$group = self::DEFAULT_GROUP,$strict = true,$default = false){ //Verify Class if(!class_exists($verifyclassname)){ - throw new \SYSTEM\LOG\ERROR("Verify Class given to the api does not exist.");} + throw new \SYSTEM\LOG\ERROR("Verify Class given to the api does not exist: '".$verifyclassname."'");} //API Class if(!class_exists($apiclassname)){ - throw new \SYSTEM\LOG\ERROR("API Class given to the api does not exist.");} + throw new \SYSTEM\LOG\ERROR("API Class given to the api does not exist: '".$apiclassname."'");} //check parameters if( !isset($params) || !is_array($params) || count($params) <= 0){ @@ -84,13 +84,13 @@ class api { $commands[count($commands)-1][1] != $item[\SYSTEM\DBD\APITable::FIELD_PARENTVALUE]){ continue;} - //all parameters are required + //all parameters are NOT required - just continue if(!isset($params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]])){ - throw new \SYSTEM\LOG\ERROR('Parameter missing: '.$item[\SYSTEM\DBD\APITable::FIELD_NAME]);} + continue;} //verify parameter - if( !method_exists($verifyclassname, $item[\SYSTEM\DBD\APITable::FIELD_VERIFY]) || - !$verifyclassname->$item[\SYSTEM\DBD\APITable::FIELD_VERIFY]($params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]])){ + if( !method_exists($verifyclassname, $item[\SYSTEM\DBD\APITable::FIELD_VERIFY]) || + !call_user_func(array($verifyclassname,$item[\SYSTEM\DBD\APITable::FIELD_VERIFY]),$params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]])){ throw new \SYSTEM\LOG\ERROR('Parameter type missmacht or Missing Verifier. Param: '.$item[\SYSTEM\DBD\APITable::FIELD_NAME].' Verifier: '.$item[\SYSTEM\DBD\APITable::FIELD_VERIFY]);} $parameters_opt[] = array($item, $params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]]); @@ -99,8 +99,8 @@ class api { //strict check if( $strict && - count($params) != (count($parameters) + count($commands)) ){ - throw new \SYSTEM\LOG\ERROR('Unhandled or misshandled parameters - api query is invalid');} + count($params) != (count($parameters) + count($commands) + count($parameters_opt)) ){ + throw new \SYSTEM\LOG\ERROR('Unhandled or misshandled parameters - api query is invalid: '.$_SERVER["REQUEST_URI"]);} //Function Name $call_funcname = ""; @@ -137,7 +137,7 @@ class api { private static function getApiTree($group){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ - $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_PG .' WHERE `'.\SYSTEM\DBD\APITable::FIELD_GROUP.'` = '.$group.' ORDER BY "'.\SYSTEM\DBD\APITable::FIELD_ID.'"'); + $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_PG .' WHERE "'.\SYSTEM\DBD\APITable::FIELD_GROUP.'" = '.$group.' ORDER BY "'.\SYSTEM\DBD\APITable::FIELD_ID.'"'); } else { $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_MYS.' WHERE `'.\SYSTEM\DBD\APITable::FIELD_GROUP.'` = '.$group.' ORDER BY '.\SYSTEM\DBD\APITable::FIELD_ID); } diff --git a/api/api_login.php b/api/api_login.php index 14ca004..91918a3 100644 --- a/api/api_login.php +++ b/api/api_login.php @@ -18,13 +18,13 @@ class api_login { */ public static function call_account_action_login($username, $password_sha, $password_md5){ - return \SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $username, $password_sha, $password_md5);} + return \SYSTEM\SECURITY\Security::login($username, $password_sha, $password_md5);} public static function call_account_action_logout(){ return \SYSTEM\SECURITY\Security::logout();} public static function call_account_action_isloggedin(){ return \SYSTEM\SECURITY\Security::isLoggedIn();} public static function call_account_action_check($rightid){ - return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(),$rightid);} + return \SYSTEM\SECURITY\Security::check($rightid);} public static function call_account_action_create($username, $password_sha, $email, $locale){ - return \SYSTEM\SECURITY\Security::create(\SYSTEM\system::getSystemDBInfo(), $username, $password_sha, $email, $locale);} + return \SYSTEM\SECURITY\Security::create($username, $password_sha, $email, $locale);} } \ No newline at end of file diff --git a/sai/autoload.inc.php b/sai/autoload.inc.php index 15929c5..4971b61 100644 --- a/sai/autoload.inc.php +++ b/sai/autoload.inc.php @@ -3,17 +3,6 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_page','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_module','SYSTEM\SAI'); - -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_login','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_log','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_security','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_mod','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_config','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_calls','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_locale','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_cache','SYSTEM\SAI'); +require_once dirname(__FILE__).'/modules/autoload_modules.php'; require_once dirname(__FILE__).'/modules/register_modules.php'; \ No newline at end of file diff --git a/sai/modules/autoload_modules.php b/sai/modules/autoload_modules.php new file mode 100644 index 0000000..6e52fa7 --- /dev/null +++ b/sai/modules/autoload_modules.php @@ -0,0 +1,13 @@ +register_sys('\SYSTEM\SAI\saimod_sys_sai'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_login'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_log'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_security'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_mod'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_config'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_calls'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_locale'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_cache'); -//\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_docu'); \ No newline at end of file +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_sai'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_login'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_log'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_security'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_mod'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_config'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_calls'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_locale'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cache'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_docu'); \ No newline at end of file diff --git a/sai/modules/saimod_sys_cache/saimod_sys_cache.php b/sai/modules/saimod_sys_cache/saimod_sys_cache.php index 47daf39..cdeb845 100644 --- a/sai/modules/saimod_sys_cache/saimod_sys_cache.php +++ b/sai/modules/saimod_sys_cache/saimod_sys_cache.php @@ -2,7 +2,7 @@ namespace SYSTEM\SAI; class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache(){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->query('SELECT COUNT(*)as "count" FROM system.cache'); @@ -39,10 +39,10 @@ class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { return 'success'; } - public static function html_li_menu(){return '
  • Cache
  • ';} + public static function html_li_menu(){return '
  • Cache
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_calls/saimod_sys_calls.php b/sai/modules/saimod_sys_calls/saimod_sys_calls.php index 4a23077..a500259 100644 --- a/sai/modules/saimod_sys_calls/saimod_sys_calls.php +++ b/sai/modules/saimod_sys_calls/saimod_sys_calls.php @@ -2,52 +2,44 @@ namespace SYSTEM\SAI; class saimod_sys_calls extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ - $result = '

    Api Calls

    '. - ''. - ''.''.''.''.''.''.''.''; + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls(){ + $last_group = -1; $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ - $res = $con->query('SELECT * FROM system.api_calls ORDER BY "ID" ASC;'); + $res = $con->query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;'); } else { - $res = $con->query('SELECT * FROM system_api_calls ORDER BY ID ASC;'); + $res = $con->query('SELECT * FROM system_api ORDER BY "group", "ID" ASC;'); } - + + $result = ""; while($r = $res->next()){ - $result .= ''.''.''.''.''.''.''.'';} - - $result .= '
    '.'ID'.''.'flag'.''.'parentID'.''.'parentValue'.''.'name'.''.'allowedValues'.'
    '.$r['ID'].''.$r['flag'].''.$r['parentID'].''.$r['parentValue'].''.$r['name'].''.$r['allowedValues'].'
    '; - - $result .= '

    Page Calls

    '. - ''. - ''.''.''.''.''.''.''.''; - - if(\SYSTEM\system::isSystemDbInfoPG()){ - $res = $con->query('SELECT * FROM system.page_calls ORDER BY "ID" ASC;'); - } else { - $res = $con->query('SELECT * FROM system_page_calls ORDER BY ID ASC;'); + if($last_group != $r['group']){ + $last_group = $r['group']; + if($last_group != -1){ + $result .= '
    '.'ID'.''.'flag'.''.'parentID'.''.'parentValue'.''.'name'.''.'allowedValues'.'
    ';} + $result .= '

    Api Table for Group '.$r["group"].'

    '. + ''. + ''.''.''.''.''.''.''.''.''; + } + $result .= ''.''.''.''.''.''.''.''.''; } - - while($r = $res->next()){ - $result .= ''.''.''.''.''.''.''.'';} - - $result .= '
    '.'ID'.''.'Group'.''.'Type'.''.'ParentID'.''.'ParentValue'.''.'Name'.''.'Verify'.'
    '.$r['ID'].''.$r['group'].''.$r['type'].''.$r['parentID'].''.$r['parentValue'].''.$r['name'].''.$r['verify'].'
    '.$r['ID'].''.$r['flag'].''.$r['parentID'].''.$r['parentValue'].''.$r['name'].''.$r['allowedValues'].'
    '; - + $result .= ''; return $result; } private static function tablerow_class($flag){ - if($flag == 1){ - return 'info';} - - return 'success'; + switch($flag){ + case 0: return 'info'; + case 1: return ''; + default: return 'success'; + } } - public static function html_li_menu(){return '
  • Calls
  • ';} + public static function html_li_menu(){return '
  • API Calls
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_config/saimod_sys_config.php b/sai/modules/saimod_sys_config/saimod_sys_config.php index 94a829f..fef116e 100644 --- a/sai/modules/saimod_sys_config/saimod_sys_config.php +++ b/sai/modules/saimod_sys_config/saimod_sys_config.php @@ -2,7 +2,7 @@ namespace SYSTEM\SAI; class saimod_sys_config extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_config(){ $result = '

    Sys Config

    '. ''. ''.''.''.''.''; @@ -19,6 +19,8 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule { $result .= ''.''.''.''.''; $result .= ''.''.''.''.''; $result .= ''.''.''.''.''; + $result .= ''.''.''.''.''; + $result .= ''.''.''.''.''; $result .= ''.''.''.''.''; $result .= ''.''.''.''.''; @@ -26,10 +28,10 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule { return $result; } - public static function html_li_menu(){return '
  • Config
  • ';} + public static function html_li_menu(){return '
  • Config
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_docu/saimod_sys_docu.php b/sai/modules/saimod_sys_docu/saimod_sys_docu.php new file mode 100644 index 0000000..8f8e73f --- /dev/null +++ b/sai/modules/saimod_sys_docu/saimod_sys_docu.php @@ -0,0 +1,15 @@ +Docu';} + public static function right_public(){return false;} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_docu_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_docu_flag_js(){} +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_locale/saimod_sys_locale.php b/sai/modules/saimod_sys_locale/saimod_sys_locale.php index 4c38421..fc789b8 100644 --- a/sai/modules/saimod_sys_locale/saimod_sys_locale.php +++ b/sai/modules/saimod_sys_locale/saimod_sys_locale.php @@ -9,7 +9,7 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { return \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS); } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale(){ $entries = array_merge($_POST,$_GET); if(isset($entries[self::INPUT_VAR])){ return self::html_content_entry_edit($entries[self::INPUT_VAR]); @@ -19,7 +19,7 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { public static function html_content_table(){ $result = '

    Locale String

    '. - '
    '.'Config ID'.''.'Config Name'.''.'Value'.'
    '.\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME. ''.'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME). '
    '.\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_BASEURL. ''.'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_BASEURL'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_BASEURL). '
    '.\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_NAVIMG. ''.'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_NAVIMG'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_NAVIMG). '
    '.\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_COPYRIGHT. ''.'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_COPYRIGHT'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_COPYRIGHT). '
    '.\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_TITLE. ''.'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_TITLE'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_TITLE). '
    '.\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS. ''.'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS'. ''.implode(',',\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS)). '
    '.\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG. ''.'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG'. ''.\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG). '
    '. + '
    '. ''.''.''; foreach (self::getLanguages() as $lang){ @@ -36,10 +36,10 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { $res = $con->query('SELECT * FROM system_locale_string ORDER BY category ASC;'); } while($r = $res->next()){ - $result .= ''.''.''; + $result .= ''.''.''; foreach ($languages as $columns){ //echo "+tututututututut:".$r[$columns]."nochmal tututututututut"; - $result .= ''; + $result .= ''; //$_POST[$r["id"]] = $r[$columns]; } @@ -51,53 +51,47 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { return $result; } public static function html_content_entry_edit($entry){ - //$wysiwyg_root = 'http://mojotrollz.eu/web/system/sai/modules/saimod_sys_locale/wysiwyg'; - //include 'http://mojotrollz.eu/web/system/sai/modules/saimod_sys_locale/wysiwyg/php/init.php'; - $result = - '

    '.$entry.'

    '. '
    '.'ID'.''.'Category'.'
    '.$r["id"].'
    '.'
    '.$r["category"].'
    '.$r["id"].'
    '.''.'
    '.$r["category"].''.$r[$columns].'
    '.'
    '.$r[$columns].'
    '. - ''; - + ''; + foreach (self::getLanguages() as $lang){ $result .= ''; $languages[] = $lang; } - $result .= ''; - + $result .= ''; $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); - $res = $con->prepare('edit', 'SELECT * FROM system_locale_string WHERE id=? ORDER BY "category" ASC;', array($entry)); - - $editor_id = 0; + $res = null; + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->prepare( 'edit', + 'SELECT * FROM system.locale_string WHERE id = $1 ORDER BY "category" ASC;', + array($entry)); + } else { + $res = $con->prepare( 'edit', + 'SELECT * FROM system_locale_string WHERE id = ? ORDER BY "category" ASC;', + array($entry)); + } + while($r = $res->next()){ $result .= ""; foreach ($languages as $columns){ //echo "+tututututututut:".$r[$columns]."nochmal tututututututut"; - //echo wysiwyg($editor_id, $entry, $r[$columns]); - $editor_id++; - $result .= ''; + $result .= ''; //$_POST[$r["id"]] = $r[$columns]; } $result .= ""; } - $result .= ''; - return $result; } - public static function html_li_menu(){return '
  • DB Text
  • ';} + public static function html_li_menu(){return '
  • DB Text
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js') - ));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_log/sai_sys_log.js b/sai/modules/saimod_sys_log/saimod_sys_log.js similarity index 71% rename from sai/modules/saimod_sys_log/sai_sys_log.js rename to sai/modules/saimod_sys_log/saimod_sys_log.js index 4f4f5f5..b1fbb83 100644 --- a/sai/modules/saimod_sys_log/sai_sys_log.js +++ b/sai/modules/saimod_sys_log/saimod_sys_log.js @@ -1,5 +1,4 @@ -function init__SYSTEM_SAI_saimod_sys_log() { - +function init__SYSTEM_SAI_saimod_sys_log() { $('#truncate_table').click(function(){ $.ajax({ @@ -10,7 +9,7 @@ function init__SYSTEM_SAI_saimod_sys_log() { if(data == 1){ $('#info_box').html("deleting data..."); $('#truncate_modal').modal('hide'); - $('#content-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_log'); + $('#content-wrapper').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log'); }else{ $('#info_box').html("You do not have the permission to truncate table!"); } @@ -24,7 +23,7 @@ function init__SYSTEM_SAI_saimod_sys_log() { $('img#loader').show(); - $('#content-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_log'); + $('#content-wrapper').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log'); setTimeout("$('img#loader').hide()", 1300); @@ -37,7 +36,7 @@ function init__SYSTEM_SAI_saimod_sys_log() { $(this).addClass('active'); - $('#table-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_log&filter_error='+$(this).attr('id')); + $('#table-wrapper').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log&filter_error='+$(this).attr('id')); })); -} \ No newline at end of file +}; \ No newline at end of file diff --git a/sai/modules/saimod_sys_log/saimod_sys_log.php b/sai/modules/saimod_sys_log/saimod_sys_log.php index 68edc3a..d6bb278 100644 --- a/sai/modules/saimod_sys_log/saimod_sys_log.php +++ b/sai/modules/saimod_sys_log/saimod_sys_log.php @@ -6,7 +6,7 @@ namespace SYSTEM\SAI; class saimod_sys_log extends \SYSTEM\SAI\SaiModule { private static function truncate_syslog(){ - if(\SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI)){ + if(\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI)){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); $res = $con->query('TRUNCATE system.sys_log;'); return true; @@ -41,13 +41,13 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { $now = microtime(true); $result = '
    '.$lang.'




    '. - ''.''.''.''.''.''.''.''.''.''; + ''.''.''.''.''.''.''.''.''.''; while($r = $res->next()){ //TODO make time conversion on database if(\SYSTEM\system::isSystemDbInfoPG()){ - $result .= ''.''.''.''.''.''.''.''.''.''.''; + $result .= ''.''.''.''.''.''.''.''.''.''.''; } else { - $result .= ''.''.''.''.''.''.''.''.''.''.''; + $result .= ''.''.''.''.''.''.''.''.''.''.''; } } $result .= '
    '.'time ago in sec'.''.'time'.''.'class'.''.'message'.''.'code'.''.'file'.''.'line'.''.'ip'.''.'querytime'.'
    '.'time ago'.''.'time'.''.'class'.''.'message'.''.'code'.''.'file'.''.'line'.''.'ip'.''.'querytime'.'
    '.(int)($now - strtotime($r['time'])).''.$r['time'].''.$r['class'].''.$r['message'].''.$r['code'].''.$r['file'].''.$r['line'].''.$r['ip'].''.$r['querytime'].'
    '.self::time_elapsed_string(strtotime($r['time'])).''.$r['time'].''.$r['class'].''.$r['message'].''.$r['code'].''.$r['file'].''.$r['line'].''.$r['ip'].''.$r['querytime'].'
    '.(int)($now - $r['time']).''.$r['time'].''.$r['class'].''.$r['message'].''.$r['code'].''.$r['file'].''.$r['line'].''.$r['ip'].''.$r['querytime'].'
    '.self::time_elapsed_string($r['time']).''.$r['time'].''.$r['class'].''.$r['message'].''.$r['code'].''.$r['file'].''.$r['line'].''.$r['ip'].''.$r['querytime'].'
    '; @@ -56,8 +56,35 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { } + private static function time_elapsed_string($ptime) + { + $etime = time() - $ptime; + + if ($etime < 1) + { + return '0 seconds'; + } + + $a = array( 12 * 30 * 24 * 60 * 60 => 'year', + 30 * 24 * 60 * 60 => 'month', + 24 * 60 * 60 => 'day', + 60 * 60 => 'hour', + 60 => 'minute', + 1 => 'second' + ); + + foreach ($a as $secs => $str) + { + $d = $etime / $secs; + if ($d >= 1) + { + $r = round($d); + return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago'; + } + } + } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_log(){ if( isset($_GET['truncate'])){ @@ -122,11 +149,12 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { } } - public static function html_li_menu(){return '
  • Log
  • ';} + public static function html_li_menu(){return '
  • Log
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/sai_sys_log.js')));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/logout.tpl b/sai/modules/saimod_sys_login/logout.tpl index a31c3fa..a63e63a 100644 --- a/sai/modules/saimod_sys_login/logout.tpl +++ b/sai/modules/saimod_sys_login/logout.tpl @@ -1,13 +1,102 @@

    Logout

    -

    You are logged in

    +

    You are logged in.

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ${ua_name}
    ${ua_email} + + +
    ${ua_password} + **** + +
    ${ua_last_active}
    ${ua_joindate}
    ${ua_locale} + + +
    Admin Rights${isadmin}
    - - + +
    -
    \ No newline at end of file + + diff --git a/sai/modules/saimod_sys_login/register.tpl b/sai/modules/saimod_sys_login/register.tpl new file mode 100644 index 0000000..6807cd9 --- /dev/null +++ b/sai/modules/saimod_sys_login/register.tpl @@ -0,0 +1,87 @@ +

    ${register}

    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    ${loginUsername} +
    + +
    +
    +
    +
    E-Mail +
    + +
    +
    +
    +
    ${loginPassword} +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    ${locale} +
    + +
    +
    + + +
    +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/sai_sys_login_submit.js b/sai/modules/saimod_sys_login/sai_sys_login_submit.js index ca1de7c..a3c5978 100644 --- a/sai/modules/saimod_sys_login/sai_sys_login_submit.js +++ b/sai/modules/saimod_sys_login/sai_sys_login_submit.js @@ -1,34 +1,94 @@ function init__SYSTEM_SAI_saimod_sys_login() { - //jqBootstrapValidation - $("#login_form input").not("[type=submit]").jqBootstrapValidation({ - preventSubmit: true, - submitError: function($form, event, errors) {}, - submitSuccess: function($form, event){ - $.get('./api.php?call=account&action=login&username='+$('#bt_login_user').val()+'&password_sha='+$.sha1($('#bt_login_password').val())+'&password_md5='+$.md5($('#bt_login_password').val()), function (data) { - if(data == 1){ - $('.help-block').html("Login successfull.
    "); - location.reload(true); - } else { - $('.help-block').html("Login not successfull.
    User & Password combination wrong.") - } - }); - event.preventDefault(); - } - }); - - $("#logout_form input").not("[type=submit]").jqBootstrapValidation({ - preventSubmit: true, - submitError: function($form, event, errors) {}, - submitSuccess: function($form, event){ - $.get('./api.php?call=account&action=logout', function (data) { - if(data == 1){ - $('.help-block').html("Logout successfull.
    "); - location.reload(true); - } else { - $('.help-block').html("Logout not successfull.
    ") - } - }); - event.preventDefault(); - } + //jqBootstrapValidation + $("#login_form input").not("[type=submit]").jqBootstrapValidation({ + preventSubmit: true, + submitError: function($form, event, errors) {}, + submitSuccess: function($form, event){ + $.get(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=login&username='+$('#bt_login_user').val()+'&password_sha='+$.sha1($('#bt_login_password').val())+'&password_md5='+$.md5($('#bt_login_password').val()), function (data) { + if(data == 1){ + $('.help-block').html("Login successfull.
    "); + location.reload(true); + } else { + $('.help-block').html("Login not successfull.
    User & Password combination wrong.") + } + }); + event.preventDefault(); + } + }); + + $("#logout_form input").not("[type=submit]").jqBootstrapValidation({ + preventSubmit: true, + submitError: function($form, event, errors) {}, + submitSuccess: function($form, event){ + $.get(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=logout', function (data) { + if(data == 1){ + $('.help-block').html("Logout successfull.
    "); + location.reload(true); + } else { + $('.help-block').html("Logout not successfull.
    ") + } + }); + event.preventDefault(); + } + }); + + $.getJSON(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=userinfo', function(data){ + if(data){ + $('#user_email_input').attr('value', data.email); + $('span#user_username').text(data.username); + $('span#user_email').text(data.email); + $('span#user_joindate').text(data.joindate); + $('span#user_last_active').text(new Date(data.last_active * 1000).toString('yyyy-MM-dd h:mm:ss')); + $('span#user_locale').text(data.locale); + } + }); + + $("#register_link").click(function(){ + $('div#content-wrapper').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=registerform',function(){ + init__SYSTEM_SAI_saimod_sys_login_register(); }); + }); }; + +function init__SYSTEM_SAI_saimod_sys_login_register(){ + $('#btn_user_registration_cancel').click(function(){ + loadModuleContent('.SYSTEM.SAI.saimod_sys_login'); + }); + + + //jqBootstrapValidation + $("#register_user_form input").not("[type=submit]").jqBootstrapValidation({ + preventSubmit: true, + submitError: function (form, event, errors) {}, + submitSuccess: function($form, event){ + var username = document.getElementById('register_username').value; + var email = document.getElementById('register_email').value; + var password = document.getElementById('user_register_password2').value; + + var select_locale = document.getElementById('register_locale_select'); + var locale = ""; + for (var i = 0; i < select_locale.options.length; i++) { + if(select_locale.options[i].selected ){ + locale = select_locale.options[i].value; + } + } + + //alert(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=register&username='+username+'&password_sha='+$.sha1(password)+'&password_md5='+$.md5(password)+'&email='+email+'&locale='+locale); + + $.ajax({ + dataType: "json", + url: SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=register&username='+username+'&password='+$.sha1(password)+'&email='+email+'&locale='+locale, + data: null, + success: function (dataCreate) { + if(dataCreate === 1){ // reload -> user will be loged in + window.location.href = location.href.replace(/#/g, ""); + }else{ // show errors + //todo + } + } + }); + + event.preventDefault(); + } + }); +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/saimod_sys_login.php b/sai/modules/saimod_sys_login/saimod_sys_login.php index f3294d1..4ecba1f 100644 --- a/sai/modules/saimod_sys_login/saimod_sys_login.php +++ b/sai/modules/saimod_sys_login/saimod_sys_login.php @@ -2,15 +2,8 @@ namespace SYSTEM\SAI; -class saimod_sys_login extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ - - /* - if( isset($_POST['username']) && isset($_POST['password']) && - \SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $_POST['username'], sha1($_POST['password']), md5($_POST['password']))){ - return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/login_success.tpl'), array());} - */ - +class saimod_sys_login extends \SYSTEM\SAI\SaiModule { + public static function sai_mod__SYSTEM_SAI_saimod_sys_login(){ $vars = array(); $vars['login'] = 'Login'; $vars['logout'] = 'Logout'; @@ -18,21 +11,46 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule { $vars['loginPassword'] = 'Password'; $vars['login_username_too_short'] = 'Username to short.'; $vars['login_password_too_short'] = 'Password to short.'; + $vars['isadmin'] = \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI) ? "yes" : "no"; + $vars = array_merge($vars, \SYSTEM\locale::getStrings(\DBD\locale_string::VALUE_CATEGORY_DASENSE_USERSTATISTICS)); if(\SYSTEM\SECURITY\Security::isLoggedIn()){ return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/logout.tpl'), $vars); } else { return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/login.tpl'), $vars);} } - public static function html_li_menu(){return '
  • Login
  • ';} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_logout(){ + return \SYSTEM\SECURITY\Security::logout();} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_login($username,$password_sha,$password_md5){ + return \SYSTEM\SECURITY\Security::login($username, $password_sha, $password_md5);} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_register($username,$password,$email, $locale = 'deDE'){ + return \SYSTEM\SECURITY\Security::create($username, $password, $email, $locale);} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_userinfo(){ + $user = \SYSTEM\SECURITY\Security::getUser(); + if(!$user){ + return;} + return json_encode(array( 'username' => $user->username, + 'email' => $user->email, + 'joindate' => $user->creationDate, + 'locale' => $user->locale, + 'last_active' => $user->lastLoginDate)); + } + + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_registerform(){ + $vars = \SYSTEM\locale::getStrings(\DBD\locale_string::VALUE_CATEGORY_DASENSE); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/register.tpl'), $vars);} + + public static function html_li_menu(){return '
  • Login
  • ';} public static function right_public(){return true;} public static function right_right(){return true;} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/jqBootstrapValidation.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/sai_sys_login_submit.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.md5.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.sha1.js') - ));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/jqBootstrapValidation.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/sai_sys_login_submit.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.md5.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.sha1.js') + ));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_mod/mods.tpl b/sai/modules/saimod_sys_mod/mods.tpl new file mode 100644 index 0000000..40f066f --- /dev/null +++ b/sai/modules/saimod_sys_mod/mods.tpl @@ -0,0 +1,10 @@ +
    + +
    +
    ${content_sys}
    +
    ${content_project}
    +
    +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_mod/saimod_sys_mod.js b/sai/modules/saimod_sys_mod/saimod_sys_mod.js new file mode 100644 index 0000000..4f385ea --- /dev/null +++ b/sai/modules/saimod_sys_mod/saimod_sys_mod.js @@ -0,0 +1,6 @@ +function init__SYSTEM_SAI_saimod_sys_mod() { + $('#modstab a').click(function (e) { + e.preventDefault(); + $(this).tab('show'); + }) +}; \ No newline at end of file diff --git a/sai/modules/saimod_sys_mod/saimod_sys_mod.php b/sai/modules/saimod_sys_mod/saimod_sys_mod.php index 6902cd7..2ea5133 100644 --- a/sai/modules/saimod_sys_mod/saimod_sys_mod.php +++ b/sai/modules/saimod_sys_mod/saimod_sys_mod.php @@ -1,33 +1,46 @@ Sys Mods'. ''. ''.''.''.''.''; - $sys_mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); + $sys_mods = \SYSTEM\SAI\sai::getSysModules(); foreach($sys_mods as $mod){ $result .= ''.''.''.''.'';} $result .= '
    '.'Classname'.''.'Public'.''.'You can Access?'.'
    '.$mod.''.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').''.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'
    '; - - $result .= '

    Project Mods

    '. + + return $result; + } + + public static function html_content_project(){ + $result = '

    Project Mods

    '. ''. ''.''.''.''.''; - $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); + $mods = \SYSTEM\SAI\sai::getModules(); foreach($mods as $mod){ $result .= ''.''.''.''.'';} $result .= '
    '.'Classname'.''.'Public'.''.'You can Access?'.'
    '.$mod.''.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').''.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'
    '; - return $result; + return $result; + } + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod(){ + $vars=array(); + $vars['content_sys'] = self::html_content_sys(); + $vars['content_project'] = self::html_content_project(); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_mod/mods.tpl'), $vars); + } - public static function html_li_menu(){return '
  • SAI Mods
  • ';} + public static function html_li_menu(){return '
  • SAI Mods
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_mod/saimod_sys_mod.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_sai/saimod_sys_sai.php b/sai/modules/saimod_sys_sai/saimod_sys_sai.php index d2860f6..dc5b3da 100644 --- a/sai/modules/saimod_sys_sai/saimod_sys_sai.php +++ b/sai/modules/saimod_sys_sai/saimod_sys_sai.php @@ -3,11 +3,11 @@ namespace SYSTEM\SAI; class saimod_sys_sai extends \SYSTEM\SAI\SaiModule { - public static function html_content(){return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_sai/carousel.tpl'), array());} - public static function html_li_menu(){return '
  • SYSTEM Admin Interface
  • ';} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai(){return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_sai/carousel.tpl'), array());} + public static function html_li_menu(){return '
  • SYSTEM Admin Interface
  • ';} public static function right_public(){return true;} public static function right_right(){return true;} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.css b/sai/modules/saimod_sys_security/saimod_sys_security.css new file mode 100644 index 0000000..bc32379 --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security.css @@ -0,0 +1,3 @@ +.tab-content { + clear: none; +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.js b/sai/modules/saimod_sys_security/saimod_sys_security.js new file mode 100644 index 0000000..c168eb7 --- /dev/null +++ b/sai/modules/saimod_sys_security/saimod_sys_security.js @@ -0,0 +1,6 @@ +function init__SYSTEM_SAI_saimod_sys_security() { + $('#securitytab a').click(function (e) { + e.preventDefault(); + $(this).tab('show'); + }) +}; \ 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 21ff92b..68b3aa7 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.php +++ b/sai/modules/saimod_sys_security/saimod_sys_security.php @@ -1,8 +1,30 @@ query('SELECT * FROM system.rights ORDER BY "ID" ASC;'); + } else { + $res = $con->query('SELECT * FROM system_rights ORDER BY ID ASC;'); + } + $result = '

    '. + ''. + ''.''.''.''.''.''; + while($r = $res->next()){ + $result .= ''.''.''.''.''.''; + } + $result .= '
    '.'ID'.''.'Name'.''.'Description'.''.'Action'.'
    '.$r['ID'].''.$r['name'].''.$r['description'].''.''.''.'
    '; + return $result; + } + + public static function html_content_users(){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->query('SELECT id,username,email,joindate,locale,last_active,account_flag FROM system.user ORDER BY last_active DESC;'); @@ -16,10 +38,18 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { $result = ''. ''.''.''.''.''.''.''.''.''.''; while($r = $res->next()){ - $result .= ''.''.''.''.''.''.''.''.''.''; + $result .= ''.''.''.''.''.''.''.''.''.''; } $result .= '
    '.'ID'.''.'Username'.''.'E-Mail'.''.'JoinDate'.''.'Locale'.''.'Last Active'.''.'Flag'.''.'Rights'.'reset password
    '.$r['id'].''.$r['username'].' '.''.$r['email'].''.$r['joindate'].''.$r['locale'].''.$r['last_active'].''.$r['account_flag'].''.''.'
    '.$r['id'].''.$r['username'].''.$r['email'].''.$r['joindate'].''.$r['locale'].''.self::time_elapsed_string($r['last_active']).''.$r['account_flag'].''.''.'
    '; - return $result; + return $result; + } + + public static function sai_mod__SYSTEM_SAI_saimod_sys_security(){ + $vars = array(); + $vars['content_users'] = self::html_content_users(); + $vars['content_rights'] = self::html_content_rights(); + $vars['content_groups'] = self::html_content_groups(); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/security.tpl'), $vars); } private static function tablerow_class($last_active){ @@ -35,10 +65,40 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { return 'error'; } - public static function html_li_menu(){return '
  • Security
  • ';} - public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + private static function time_elapsed_string($ptime) + { + $etime = time() - $ptime; + + if ($etime < 1) + { + return '0 seconds'; + } + + $a = array( 12 * 30 * 24 * 60 * 60 => 'year', + 30 * 24 * 60 * 60 => 'month', + 24 * 60 * 60 => 'day', + 60 * 60 => 'hour', + 60 => 'minute', + 1 => 'second' + ); + + foreach ($a as $secs => $str) + { + $d = $etime / $secs; + if ($d >= 1) + { + $r = round($d); + return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago'; + } + } + } - public static function src_css(){} - public static function src_js(){} + public static function html_li_menu(){return '
  • Security
  • ';} + public static function right_public(){return false;} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_flag_css(){return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.css')));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_flag_js(){ return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/security.tpl b/sai/modules/saimod_sys_security/security.tpl new file mode 100644 index 0000000..9c793ca --- /dev/null +++ b/sai/modules/saimod_sys_security/security.tpl @@ -0,0 +1,12 @@ +
    + +
    +
    ${content_users}
    +
    ${content_rights}
    +
    ${content_groups}
    +
    +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_todo/saimod_sys_todo.php b/sai/modules/saimod_sys_todo/saimod_sys_todo.php new file mode 100644 index 0000000..8fb4341 --- /dev/null +++ b/sai/modules/saimod_sys_todo/saimod_sys_todo.php @@ -0,0 +1,94 @@ +query('SELECT * FROM system.todo LEFT JOIN system_user ON system_todo.author = system_user.ID ORDER BY state, time DESC;'); + } else { + $res = $con->query('SELECT * FROM system_todo LEFT JOIN system_user ON system_todo.author = system_user.ID ORDER BY state, time DESC;'); + } + $result = '
    '. + ''.''.''.''.''.''.''.''.''.''; + while($row = $res->next()){ + $result .= ''. + ''.''. + ''. + ''. + ''. + ''. + ''. + ''.''; + } + $result .= '
    '.'Time ago'.''.'Time'.''.'Reporttype'.''.'Message'.''.'Author'.''.'Assigned'.''.'State'.''.'Action'.'
    '.self::time_elapsed_string(strtotime($row['time'])).''.$row['time'].''.self::reporttype($row['type']).''.$row['msg_1'].''.$row['username'].''.'I_S and many more'.''.self::state($row['state']).''. self::statebtn($row['state']). + ''. + ''. + ''.'
    '; + return $result; + } + + private static function time_elapsed_string($ptime) + { + $etime = time() - $ptime; + + if ($etime < 1) + { + return '0 seconds'; + } + + $a = array( 12 * 30 * 24 * 60 * 60 => 'year', + 30 * 24 * 60 * 60 => 'month', + 24 * 60 * 60 => 'day', + 60 * 60 => 'hour', + 60 => 'minute', + 1 => 'second' + ); + + foreach ($a as $secs => $str) + { + $d = $etime / $secs; + if ($d >= 1) + { + $r = round($d); + return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago'; + } + } + } + + private static function state($state){ + if($state == 1){ + return 'Closed';} + return 'Open';} + + private static function statebtn($state){ + if($state == 1){ + return '';} + return '';} + + private static function reporttype($type){ + switch($type){ + case 0: return 'Feature Request'; + case 1: return 'Error Report'; + case 2: return 'Unasigned Category'; + default: return 'Note'; + } + } + + private static function trclassbytype($type){ + switch($type){ + case 0: return 'info'; + case 1: return 'error'; + case 2: return 'warning'; + case 3: return 'success'; + default: return ''; + } + } + + public static function html_li_menu(){return '
  • ToDo
  • ';} + public static function right_public(){return false;} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_flag_js(){} +} \ No newline at end of file diff --git a/sai/page/default_module/default_module.php b/sai/page/default_module/default_module.php deleted file mode 100644 index b20b25d..0000000 --- a/sai/page/default_module/default_module.php +++ /dev/null @@ -1,35 +0,0 @@ -module = $module; - $this->post_get = $post_get; - $this->css = isset($post_get['css']) ? $post_get['css'] : null; - $this->js = isset($post_get['js']) ? $post_get['js'] : null; - } - - public function html(){ - if($this->module != null){ - $mods = \SYSTEM\SAI\sai::getInstance()->getAllModules(); - if( $this->module && - \array_search($this->module, $mods) !== false && - ( \call_user_func(array($this->module, 'right_public')) || - \call_user_func(array($this->module, 'right_right')))){ - if($this->css != null){ - return \call_user_func(array($this->module, 'src_css'));} - if($this->js != null){ - return \call_user_func(array($this->module, 'src_js'));} - return \call_user_func(array($this->module, 'html_content'),array($this->post_get));} - } - - return "Could not find Module"; - } -} \ No newline at end of file diff --git a/sai/page/default_page/default_page.php b/sai/page/default_page/default_page.php index 2e02bf8..aa232d0 100644 --- a/sai/page/default_page/default_page.php +++ b/sai/page/default_page/default_page.php @@ -7,7 +7,7 @@ class default_page extends \SYSTEM\PAGE\Page { private function menu_sys(){ $result = ''; - $mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); + $mods = \SYSTEM\SAI\sai::getSysModules(); foreach($mods as $mod){ if(\call_user_func(array($mod, 'right_public')) || \call_user_func(array($mod, 'right_right'))){ @@ -19,7 +19,7 @@ class default_page extends \SYSTEM\PAGE\Page { private function menu_proj(){ $result = ''; - $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); + $mods = \SYSTEM\SAI\sai::getModules(); foreach($mods as $mod){ if(\call_user_func(array($mod, 'right_public')) || \call_user_func(array($mod, 'right_right'))){ @@ -37,18 +37,11 @@ class default_page extends \SYSTEM\PAGE\Page { private function js(){ $result = ''. ''. - ''. - ''. - ''. + ''. ''. ''. ''. - ''; + ''; return $result; } diff --git a/sai/page/default_page/js/index.js b/sai/page/default_page/js/index.js deleted file mode 100644 index 018e751..0000000 --- a/sai/page/default_page/js/index.js +++ /dev/null @@ -1,65 +0,0 @@ - -var last_id = ''; -var scripts_loaded = 0; -var scripts_req = 0; -/** jQuery on document ready */ -$(document).ready(function() { - - // initialize content - loadModuleContent('.SYSTEM.SAI.saimod_sys_sai'); - - //load content -> menu - $('#sai_navbar ul li a, #project_navbar ul li a').click(function () { - var id = $(this).attr("id"); - if(id !== undefined){ - console.log("Module: "+id); - - $('#sai_navbar li, #project_navbar li').each(function(){ - $(this).removeClass('active');}); - $(this).parent().addClass('active'); - - loadModuleContent(id); - } - }); - - $('.brand').click(function(){ - location.reload(); - }); - -}); - -function loadModuleContent(id){ - last_id = id; - $('div#content-wrapper').load('./?action=developer&sai_mod='+id, function(){ - $.getJSON('./?action=developer&sai_mod='+id+'&css=1', function (data) { - if(data){ - for(var i=0; i < data['result'].length; i++){ - loadCSS(data['result'][i]);} - } - }); - - $.getJSON('./?action=developer&sai_mod='+id+'&js=1', function (data) { - if(data){ - scripts_req = data['result'].length; - for(var i=0; i < data['result'].length; i++){ - loadJS(unescape(data['result'][i]));} - } - }); - - - }); -} - -function script_loaded(){ - scripts_loaded += 1; - - if(scripts_loaded >= scripts_req){ - scripts_loaded = 0; - func = 'init_'+last_id; - //func = jssrc.substring(jssrc.lastIndexOf('/')+1); - func = func.replace(/\./g,'_'); - if(typeof window[func] === 'function') { - window[func](); - console.log(func+' called');} - } -} \ No newline at end of file diff --git a/sai/page/default_page/js/loadcssjs.js b/sai/page/default_page/js/loadcssjs.js deleted file mode 100644 index 928c867..0000000 --- a/sai/page/default_page/js/loadcssjs.js +++ /dev/null @@ -1,19 +0,0 @@ -function loadJS(jssrc) { - if(jssrc){ - $.getScript(jssrc).done(function(script, textStatus) { - console.log('Script: '+jssrc+' - '+textStatus ); - script_loaded(); - }) - } -} - -function loadCSS(csssrc) { - if(csssrc){ - var snode = document.createElement('link'); - snode.setAttribute('type','text/css'); - snode.setAttribute('rel', 'stylesheet'); - snode.setAttribute('href',csssrc); - document.getElementsByTagName('head')[0].appendChild(snode); - console.log('Css: '+csssrc+' loaded.'); - } -} \ No newline at end of file diff --git a/sai/page/default_page/js/sai.js b/sai/page/default_page/js/sai.js new file mode 100644 index 0000000..cbb4585 --- /dev/null +++ b/sai/page/default_page/js/sai.js @@ -0,0 +1,81 @@ +var last_id = ''; +var scripts_loaded = 0; +var scripts_req = 0; +/** jQuery on document ready */ +$(document).ready(function() { + + // initialize content + loadModuleContent('.SYSTEM.SAI.saimod_sys_sai'); + + //load content -> menu + $('#sai_navbar ul li a, #project_navbar ul li a').click(function () { + var id = $(this).attr("saimenu"); + if(id !== undefined){ + console.log("Module: "+id); + $('#sai_navbar li, #project_navbar li').each(function(){ + $(this).removeClass('active');}); + $(this).parent().addClass('active'); + loadModuleContent(id); + } + }); + + $('.brand').click(function(){ + location.reload(); + }); +}); + +function loadModuleContent(id){ + last_id = id; + $('div#content-wrapper').load(SAI_ENDPOINT+'sai_mod='+id, function(){ + $.getJSON(SAI_ENDPOINT+'sai_mod='+id+'&css=1', function (data) { + if(data){ + for(var i=0; i < data['result'].length; i++){ + loadCSS(data['result'][i]);} + } + }); + + $.getJSON('./sai.php?sai_mod='+id+'&js=1', function (data) { + if(data){ + scripts_req = data['result'].length; + for(var i=0; i < data['result'].length; i++){ + loadJS(unescape(data['result'][i]));} + } + }); + + + }); +} + +function script_loaded(){ + scripts_loaded += 1; + + if(scripts_loaded >= scripts_req){ + scripts_loaded = 0; + func = 'init_'+last_id; + //func = jssrc.substring(jssrc.lastIndexOf('/')+1); + func = func.replace(/\./g,'_'); + if(typeof window[func] === 'function') { + window[func](); + console.log(func+' called');} + } +} + +function loadJS(jssrc) { + if(jssrc){ + $.getScript(jssrc).done(function(script, textStatus) { + console.log('Script: '+jssrc+' - '+textStatus ); + script_loaded(); + }) + } +} + +function loadCSS(csssrc) { + if(csssrc){ + var snode = document.createElement('link'); + snode.setAttribute('type','text/css'); + snode.setAttribute('rel', 'stylesheet'); + snode.setAttribute('href',csssrc); + document.getElementsByTagName('head')[0].appendChild(snode); + console.log('Css: '+csssrc+' loaded.'); + } +} \ No newline at end of file diff --git a/sai/page/default_page/sai.tpl b/sai/page/default_page/sai.tpl index 7025f08..430765b 100644 --- a/sai/page/default_page/sai.tpl +++ b/sai/page/default_page/sai.tpl @@ -21,21 +21,18 @@
    - -
    - -
    - -
    -
    + +
    + +
    +
    +

    - +
    diff --git a/sai/sai/SaiModule.php b/sai/sai/SaiModule.php index 1766dea..ac00f25 100644 --- a/sai/sai/SaiModule.php +++ b/sai/sai/SaiModule.php @@ -2,9 +2,11 @@ namespace SYSTEM\SAI; -abstract class SaiModule { - public static function html_content(){ - throw new \RuntimeException("Unimplemented!");} +abstract class SaiModule extends \SYSTEM\API\api_login{ + public static function default_page(){ + $sai = new \SYSTEM\SAI\default_page(); + return $sai->html();} + public static function html_li_menu(){ throw new \RuntimeException("Unimplemented!");} //true or false -> if true no call to right_right() @@ -13,11 +15,5 @@ abstract class SaiModule { //check your rights here -> returns true or false public static function right_right(){ throw new \RuntimeException("Unimplemented!");} - //array with paths as json - public static function src_js(){ - throw new \RuntimeException("Unimplemented!");} - //array with paths as json - public static function src_css(){ - throw new \RuntimeException("Unimplemented!");} } \ No newline at end of file diff --git a/sai/sai/sai.php b/sai/sai/sai.php index a768938..83ed4b8 100644 --- a/sai/sai/sai.php +++ b/sai/sai/sai.php @@ -3,37 +3,26 @@ namespace SYSTEM\SAI; class sai { + private static $modules = array(); //only strings! + private static $modules_sys = array(); //only strings! - private $modules = array(); //only strings! - private $modules_sys = array(); //only strings! - - //SINGLETON! - static private $instance = null; - static public function getInstance(){ - if (null === self::$instance) { - self::$instance = new self;} - return self::$instance; - } - private function __construct(){} - private function __clone(){} - - public function register($module){ + public static function register($module){ if( !\class_exists($module) || !\is_array($parents = \class_parents($module)) || !\array_search('SYSTEM\SAI\SaiModule', $parents)){ throw new \Exception('Problem with your Sysmodule class: '.$module);} - $this->modules[] = $module;} - public function register_sys($module){ + array_push(self::$modules,$module);} + public static function register_sys($module){ if( !\class_exists($module) || !\is_array($parents = \class_parents($module)) || !\array_search('SYSTEM\SAI\SaiModule', $parents)){ throw new \Exception('Problem with your Sysmodule class: '.$module);} - $this->modules_sys[] = $module;} + array_push(self::$modules_sys,$module);} - public function getModules(){ - return $this->modules;} - public function getSysModules(){ - return $this->modules_sys;} - public function getAllModules(){ - return array_merge($this->modules_sys,$this->modules);} + public static function getModules(){ + return self::$modules;} + public static function getSysModules(){ + return self::$modules_sys;} + public static function getAllModules(){ + return array_merge(self::$modules_sys,self::$modules);} } \ No newline at end of file diff --git a/sai/sai/saigui.php b/sai/sai/saigui.php index b9902b2..e3ea5ee 100644 --- a/sai/sai/saigui.php +++ b/sai/sai/saigui.php @@ -8,10 +8,18 @@ class saigui extends \SYSTEM\PAGE\Page { public function html(){ $pg = array_merge($_POST,$_GET); if(isset($pg[SAI_MOD_POSTFIELD])){ - $mod = new \SYSTEM\SAI\default_module(\str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]),$pg); - return $mod->html();} - - $sai = new \SYSTEM\SAI\default_page(); - return $sai->html(); + $classname = \str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]); + $pg[SAI_MOD_POSTFIELD] = \str_replace('.', '_', $pg[SAI_MOD_POSTFIELD]); + + $mods = \SYSTEM\SAI\sai::getAllModules(); + if( $classname && + \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); + } else { + return "Could not find Module";} + } else { + return \SYSTEM\API\api::run('\SYSTEM\API\verify', '\SYSTEM\SAI\SaiModule', array(), 42, false, true);} } } \ No newline at end of file diff --git a/security/Security.php b/security/Security.php index ce421f5..61eb2ca 100644 --- a/security/Security.php +++ b/security/Security.php @@ -15,14 +15,14 @@ class Security { const AVAILABLE_FAIL = false; const AVAILABLE_OK = true; - public static function create(\SYSTEM\DB\DBInfo $dbinfo, $username, $password, $email, $locale, $advancedResult=false, $checkAvailable = true){ + public static function create($username, $password, $email, $locale, $advancedResult=false, $checkAvailable = true){ self::startSession(); // check availability of username (in non-compatibility mode, otherwise it is already checked in DasenseAccount) - if($checkAvailable && !self::available($dbinfo, $username)){ + if($checkAvailable && !self::available($username)){ return self::REGISTER_FAIL;} - $con = new \SYSTEM\DB\Connection($dbinfo); + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $result = $con->prepare('createAccountStmt','INSERT INTO '.\SYSTEM\DBD\UserTable::NAME_PG. ' ('.\SYSTEM\DBD\UserTable::FIELD_USERNAME.','.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.',' @@ -37,16 +37,16 @@ class Security { array( $username , $password, $email, $locale, 1 )); } - if( !$result || !self::login($dbinfo, $username, $password, $locale)){ + if( !$result || !self::login($username, $password, $locale)){ return self::REGISTER_FAIL;} return ($advancedResult ? $result->next() : self::REGISTER_OK); } - public static function changePassword(\SYSTEM\DB\DBInfo $dbinfo, $username, $password_sha_old, $password_sha_new){ + public static function changePassword($username, $password_sha_old, $password_sha_new){ - $con = new \SYSTEM\DB\Connection($dbinfo); + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $result = $con->prepare('', 'SELECT id FROM '.\SYSTEM\DBD\UserTable::NAME_PG. @@ -77,18 +77,16 @@ class Security { return 1; } - - - - public static function login(\SYSTEM\DB\DBInfo $dbinfo, $username, $password_sha, $password_md5, $locale=NULL, $advancedResult=false, $password_sha_new=NULL){ + + public static function login($username, $password_sha, $password_md5, $locale=NULL, $advancedResult=false, $password_sha_new=NULL){ self::startSession(); if(!isset($password_sha)){ - self::trackLogins($dbinfo, NULL, self::LOGIN_FAIL); + self::trackLogins(NULL, self::LOGIN_FAIL); $_SESSION['user'] = NULL; return self::LOGIN_FAIL;} - $con = new \SYSTEM\DB\Connection($dbinfo); + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(isset($password_md5)){ if(\SYSTEM\system::isSystemDbInfoPG()){ $result = $con->prepare('loginAccountStmt', @@ -141,12 +139,18 @@ class Security { }else{ $pw = $password_sha; } - - $res = $con->prepare( 'updatePasswordSHAStmt', - 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.' = $1 WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.';', - array($pw,$row[\SYSTEM\DBD\UserTable::FIELD_ID])); + unset($result); + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->prepare( 'updatePasswordSHAStmt', + 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.' = $1 WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.';', + array($pw,$row[\SYSTEM\DBD\UserTable::FIELD_ID])); + }else{ + $res = $con->prepare( 'updatePasswordSHAStmt', + 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_MYS.' SET '.\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA.' = ? WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = ?'.';', + array($pw,$row[\SYSTEM\DBD\UserTable::FIELD_ID])); + } $res = $res->next(); - $row[\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA] = $res[\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA]; + $row[\SYSTEM\DBD\UserTable::FIELD_PASSWORD_SHA] = $pw; } // set session variables @@ -163,12 +167,12 @@ class Security { if(isset($locale)){ \SYSTEM\locale::set($locale);} // track succesful user login - self::trackLogins($dbinfo, $row[\SYSTEM\DBD\UserTable::FIELD_ID]); + self::trackLogins($row[\SYSTEM\DBD\UserTable::FIELD_ID]); return ($advancedResult ? $row : self::LOGIN_OK); } - private static function trackLogins(\SYSTEM\DB\DBInfo $dbinfo, $userID){ - $con = new \SYSTEM\DB\Connection($dbinfo); + private static function trackLogins($userID){ + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $con->prepare( 'trackLoginAccountStmt', 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_LAST_ACTIVE.'= to_timestamp($1) '. @@ -192,8 +196,8 @@ class Security { * * @param String $username */ - public static function available(\SYSTEM\DB\DBInfo $dbinfo, $username){ - $con = new \SYSTEM\DB\Connection($dbinfo); + public static function available($username){ + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->prepare( 'availableStmt', 'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\UserTable::NAME_PG. @@ -215,14 +219,14 @@ class Security { } //checks for a right for a logged in user - public static function check(\SYSTEM\DB\DBInfo $dbinfo, $rightid){ + public static function check($rightid){ //Not logged in? Go away. //If you think you need rights for your guests ur doing smth wrong ;-) $user = null; if(!($user = self::getUser())){ return false;} - $con = new \SYSTEM\DB\Connection($dbinfo); + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->prepare( 'security_check', 'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\UserRightsTable::NAME_PG. @@ -271,12 +275,12 @@ class Security { } //This functions is called from \SYSTEM\locale::set() - public static function _db_setLocale($dbinfo, $lang){ + public static function _db_setLocale($lang){ $user = self::getUser(); if(!$user){ throw new \SYSTEM\LOG\ERROR("You need to be logged in");} - $con = new \SYSTEM\DB\Connection($dbinfo); + $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->prepare( 'updateUserLocaleStmt', 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = $1 '.