From af31a72e68a322bd38c63b815345ae3dd71be19d Mon Sep 17 00:00:00 2001 From: rylon Date: Wed, 25 Sep 2013 03:42:08 +0200 Subject: [PATCH] new saimod proto todo and docu, small fixes --- api/api.php | 10 +-- sai/autoload.inc.php | 12 +-- sai/modules/autoload_modules.php | 13 +++ sai/modules/register_modules.php | 3 +- .../saimod_sys_cache/saimod_sys_cache.php | 2 +- .../saimod_sys_docu/saimod_sys_docu.php | 15 ++++ sai/modules/saimod_sys_login/register.tpl | 87 +++++++++++++++++++ .../saimod_sys_login/sai_sys_login_submit.js | 67 +++++++++++++- .../saimod_sys_login/saimod_sys_login.php | 6 ++ .../saimod_sys_todo/saimod_sys_todo.php | 22 +++++ 10 files changed, 218 insertions(+), 19 deletions(-) create mode 100644 sai/modules/autoload_modules.php create mode 100644 sai/modules/saimod_sys_docu/saimod_sys_docu.php create mode 100644 sai/modules/saimod_sys_login/register.tpl create mode 100644 sai/modules/saimod_sys_todo/saimod_sys_todo.php diff --git a/api/api.php b/api/api.php index c5f9b56..839e1f1 100644 --- a/api/api.php +++ b/api/api.php @@ -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,7 +99,7 @@ class api { //strict check if( $strict && - count($params) != (count($parameters) + count($commands)) ){ + 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 diff --git a/sai/autoload.inc.php b/sai/autoload.inc.php index 3b50c5e..4971b61 100644 --- a/sai/autoload.inc.php +++ b/sai/autoload.inc.php @@ -4,15 +4,5 @@ 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__).'/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 @@ +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);} 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..265fc13 --- /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\system::getSystemDBInfo(), \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_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 708169f..2ee1d29 100644 --- a/sai/modules/saimod_sys_login/sai_sys_login_submit.js +++ b/sai/modules/saimod_sys_login/sai_sys_login_submit.js @@ -40,4 +40,69 @@ function init__SYSTEM_SAI_saimod_sys_login() { $('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'); + }); + + $('#btn_user_registration_cancel').click(function(){ + $('#site-content-wrapper').slideUp('slow'); + site_content_is_visible = false; + showNavbarControls(); + $('#navigation-left').children().children().removeClass('active'); + $("#map-link").parent().attr('class', 'active'); + }); + + + //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; + } + } + + + $.ajax({ + dataType: "json", + url: SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_login&action=register&username='+username+'&password_sha='+$.sha1(password)+'&email='+email+'&locale='+locale, + data: null, + success: function (dataCreate) { + if(dataCreate.status === true){ // reload -> user will be loged in + window.location.href = location.href.replace(/#/g, ""); + }else{ // show errors + var result = dataCreate.result; + var code = result.code; + var msg = result.message; + + switch (code){ + case 1: // username invalid + case 2: // username already exists + $('#register-help-block-username').html(''); + break; + case 3: // invalid email + $('#register-help-block-email').html(''); + break; + case 4: //registration failed + alert(msg); + break; + default: + break; + } + } + } + }); + + 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 65009c6..5a44e8a 100644 --- a/sai/modules/saimod_sys_login/saimod_sys_login.php +++ b/sai/modules/saimod_sys_login/saimod_sys_login.php @@ -24,6 +24,12 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule { 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(new \DBD\dasensePostgres(), $username, $password_sha, $password_md5);} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_action_register($username,$password_sha,$password_md5,$email, $locale = 'deDE'){ + return \SYSTEM\SECURITY\Security::create(new \DBD\dasensePostgres(), $username, $password_sha, $password_md5, $email, $locale);} + + 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;} 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..f44b727 --- /dev/null +++ b/sai/modules/saimod_sys_todo/saimod_sys_todo.php @@ -0,0 +1,22 @@ +'. + ''.''.''.''.''.''.''.''.''.''.''.''. + ''.''.''.''.''.''.''.''.''.''.''. + ''.''.''.''.''.''.''.''.''.''.''. + ''.''.''.''.''.''.''.''.''.''.''. + ''.''.''.''.''.''.''.''.''.''.''. + ''.''.''.''.''.''.''.''.''.''.''; + return $result; + } + + 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\system::getSystemDBInfo(), \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
    '.'time ago in days'.''.'time'.''.'reporttype'.''.'message'.''.'suggestion'.''.'additional sources'.''.'author'.''.'assigned'.''.'state of todo(closed/in progress)'.''.'action'.'
    '.'5d'.''.'5days ago obviously'.''.'Feature Request'.''.'Do some new stuff the old stuff sucks.'.''.'not a valid field for this type of report(ment for error suggestions)'.''.'http:... here some fancy examples what i want'.''.'Mr. Pink'.''.'I_S and many more'.''.'in progress'.''.''.''.''.''.'
    '.'5d'.''.'5days ago obviously'.''.'Bugreport'.''.'Do some new stuff the old stuff sucks.'.''.'not a valid field for this type of report(ment for error suggestions)'.''.'http:... here some fancy examples what i want'.''.'Mr. Pink'.''.'I_S and many more'.''.'in progress'.''.''.''.''.''.'
    '.'5d'.''.'5days ago obviously'.''.'Unasigned Category - what is this?'.''.'Do some new stuff the old stuff sucks.'.''.'not a valid field for this type of report(ment for error suggestions)'.''.'http:... here some fancy examples what i want'.''.'Mr. Pink'.''.'I_S and many more'.''.'in progress'.''.''.''.''.''.'
    '.'5d'.''.'5days ago obviously'.''.'Closed FR/BR/OT'.''.'Do some new stuff the old stuff sucks.'.''.'not a valid field for this type of report(ment for error suggestions)'.''.'http:... here some fancy examples what i want'.''.'Mr. Pink'.''.'I_S and many more'.''.'in progress'.''.''.''.''.''.'
    '.'5d'.''.'5days ago obviously'.''.'Note/Reminder'.''.'Do some new stuff the old stuff sucks.'.''.'not a valid field for this type of report(ment for error suggestions)'.''.'http:... here some fancy examples what i want'.''.'Mr. Pink'.''.'I_S and many more'.''.'in progress'.''.''.''.''.''.'