X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Pman.php;h=84fb10631523a21aff706bac594e05c817e00168;hb=refs%2Fheads%2Fwip_edward_T5642_Report_designer_hebe;hp=977b82e06062022ff13d258858b5e91d076979e9;hpb=123448a3605053d4f822ec031b268dedeef74318;p=Pman.Base diff --git a/Pman.php b/Pman.php index 977b82e..84fb106 100644 --- a/Pman.php +++ b/Pman.php @@ -62,6 +62,8 @@ class Pman extends HTML_FlexyFramework_Page var $css_path = ''; // can inject a specific path into the base HTML page. + + var $transObj = false; // used to rollback or commit in JOK/JERR /** * ------------- Standard getAuth/get/post methods of framework. * @@ -85,11 +87,11 @@ class Pman extends HTML_FlexyFramework_Page // move away from doing this ... you can access bootLoader.XXXXXX in the master template.. $boot = HTML_FlexyFramework::get(); // echo'
';print_R($boot);exit; - $this->appName= $boot->appName; - $this->appNameShort= $boot->appNameShort; + $this->appName = $boot->appName; + $this->appNameShort = $boot->appNameShort; - $this->appModules= $boot->enable; + $this->appModules = $boot->enable; // echo $this->arrayToJsInclude($files); $this->isDev = empty($boot->Pman['isDev']) ? false : $boot->Pman['isDev']; @@ -101,17 +103,27 @@ class Pman extends HTML_FlexyFramework_Page $this->version = $boot->version; $this->uiConfig = empty($boot->Pman['uiConfig']) ? false : $boot->Pman['uiConfig']; - if (!empty($ff->Pman['local_autoauth']) && + if (!empty($boot->Pman['local_autoauth']) && + !empty($_SERVER['SERVER_ADDR']) && + !empty($_SERVER['REMOTE_ADDR']) && ($_SERVER['SERVER_ADDR'] == '127.0.0.1') && ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') ) { $this->isDev = true; } - if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') && - ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') && + if ( !empty($_REQUEST['isDev']) + && + !empty($_SERVER['SERVER_ADDR']) && + ( + (($_SERVER['SERVER_ADDR'] == '127.0.0.1') && ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')) + || + (($_SERVER['SERVER_ADDR'] == '::1') && ($_SERVER['REMOTE_ADDR'] == '::1')) + ) + ) { + $boot->Pman['isDev'] = true; $this->isDev = true; } @@ -123,33 +135,37 @@ class Pman extends HTML_FlexyFramework_Page } /* - * module init is only loaded on main page call, and includes checks for configuration settings. + * call a method on {module}/Pman.php + * * initially used on the main page load to call init(); + * * also used for ccsIncludes?? + * + * // usage: $this->callModules('init', $base) + * */ - function initModules() + + function callModules($fn) { + $args = func_get_args(); + array_shift($args); foreach(explode(',',$this->appModules) as $m) { $cls = 'Pman_'. $m . '_Pman'; - //echo $cls; - //echo $this->rootDir . '/'.str_replace('_','/', $cls). '.php'; - if (!file_exists($this->rootDir . '/'.str_replace('_','/', $cls). '.php')) { continue; } require_once str_replace('_','/', $cls). '.php'; $c = new $cls(); - if (method_exists($c,'init')) { - $c->init($this); + if (method_exists($c, $fn)) { + call_user_func_array(array($c,$fn),$args); } } - } - - + + } function get($base, $opts=array()) { $this->init(); if (empty($base)) { - $this->initModules(); + $this->callModules('init', $this, $base); } //$this->allowSignup= empty($opts['allowSignup']) ? 0 : 1; @@ -157,12 +173,13 @@ class Pman extends HTML_FlexyFramework_Page // should really be moved to Login... - + /* if ($bits[0] == 'PasswordReset') { $this->linkFail = $this->resetPassword(@$bits[1],@$bits[2],@$bits[3]); header('Content-type: text/html; charset=utf-8'); return; - } + } + */ $au = $this->getAuthUser(); if ($au) { @@ -179,7 +196,7 @@ class Pman extends HTML_FlexyFramework_Page } - if (strlen($base)) { + if (strlen($base) && $bits[0] != 'PasswordReset') { $this->jerror("BADURL","invalid url: $base"); } // deliver template @@ -231,7 +248,9 @@ class Pman extends HTML_FlexyFramework_Page if (!is_a($this->company, 'DB_DataObject')) { // non-core pman projects return false; } - $this->company->get('comptype', 'OWNER'); + $e = DB_DataObject::Factory('core_enum')->lookupObject('COMPTYPE', 'OWNER'); + + $this->company->get('comptype_id', $e->id); return $this->company; } @@ -375,35 +394,6 @@ class Pman extends HTML_FlexyFramework_Page */ - function resetPassword($id,$t, $key) - { - - $au = $this->getAuthUser(); - if ($au) { - return "Already Logged in - no need to use Password Reset"; - } - - $u = DB_DataObject::factory('core_person'); - //$u->company_id = $this->company->id; - $u->active = 1; - if (!$u->get($id) || !strlen($u->passwd)) { - return "invalid id"; - } - - // validate key.. - if ($key != $u->genPassKey($t)) { - return "invalid key"; - } - $uu = clone($u); - $u->no_reset_sent = 0; - $u->update($uu); - - if ($t < strtotime("NOW - 1 DAY")) { - return "expired"; - } - $this->showNewPass = implode("/", array($id,$t,$key)); - return false; - } /** * jerrAuth: standard auth failure - with data that let's the UI know.. @@ -446,13 +436,27 @@ class Pman extends HTML_FlexyFramework_Page function jerror($type, $str, $errors=array(), $content_type = false) // standard error reporting.. { + if ($this->transObj) { + $this->transObj->query('ROLLBACK'); + } + + $cli = HTML_FlexyFramework::get()->cli; + if ($cli) { + echo "ERROR: " .$str . "\n"; // print the error first, as DB might fail.. + } + if ($type !== false) { + + if(!empty($errors)){ + DB_DataObject::factory('Events')->writeEventLogExtra($errors); + } + $this->addEvent($type, false, $str); + } $cli = HTML_FlexyFramework::get()->cli; if ($cli) { - echo "ERROR: " .$str . "\n"; exit(1); // cli --- exit code to stop shell execution if necessary. } @@ -526,6 +530,10 @@ class Pman extends HTML_FlexyFramework_Page } function jok($str) { + if ($this->transObj ) { + $this->transObj->query( connection_aborted() ? 'ROLLBACK' : 'COMMIT'); + } + $cli = HTML_FlexyFramework::get()->cli; if ($cli) { echo "OK: " .$str . "\n"; @@ -697,9 +705,11 @@ class Pman extends HTML_FlexyFramework_Page // and finally the JsTemplate... echo ''."\n"; } + + $this->callModules('outputJavascriptIncludes', $this); } - + var $css_includes = array(); /** * outputCSSIncludes: * @@ -710,17 +720,26 @@ class Pman extends HTML_FlexyFramework_Page */ function outputCSSIncludes() // includes on CSS links. { + $mods = $this->modulesList(); + $this->callModules('applyCSSIncludes', $this); + foreach($this->css_includes as $module => $ar) { + if ($ar) { + $this->assetArrayToHtml( $ar , 'css'); + } + } + + // old style... - probably remove this... + $this->callModules('outputCSSIncludes', $this); foreach($mods as $mod) { // add the css file.. $this->outputCSSDir("Pman/$mod","*.css"); - - } - + + } @@ -977,13 +996,17 @@ class Pman extends HTML_FlexyFramework_Page $reported = true; - $out = is_a($ex,'Exception') ? $ex->getMessage() : $ex->toString(); + + $out = is_a($ex,'Exception') || is_a($ex, 'Error') ? $ex->getMessage() : $ex->toString(); //print_R($bt); exit; $ret = array(); $n = 0; - $bt = is_a($ex,'Exception') ? $ex->getTrace() : $ex->backtrace; + $bt = is_a($ex,'Exception')|| is_a($ex, 'Error') ? $ex->getTrace() : $ex->backtrace; + if (is_a($ex,'Exception')|| is_a($ex, 'Error') ) { + $ret[] = $ex->getFile() . '('. $ex->getLine() . ')'; + } foreach( $bt as $b) { $ret[] = @$b['file'] . '(' . @$b['line'] . ')@' . @$b['class'] . '::' . @$b['function']; if ($n > 20) {