X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Pman%2FRoo.php;h=ee0e5714f22dbfe05fb4222957de199948e69574;hb=HEAD;hp=b298e42f9088f480bfe018986f46d9ae9c9c2a06;hpb=438023dd0401d612b65b977bf30efb3dbe9eadc3;p=Pman.Base diff --git a/Pman/Roo.php b/Pman/Roo.php index b298e42..ee0e571 100644 --- a/Pman/Roo.php +++ b/Pman/Roo.php @@ -42,7 +42,14 @@ require_once 'Pman.php'; class Pman_Roo extends Pman { - /** + + /* EVENTUALLY - move this stuff here.. + * use Pman_Core_RooTrait, + Pman_Core_RooGetTrait, + Pman_Core_RooPostTrait, + Pman_Core_RooJsonOutputTrait; + */ + /** * if set to an array (when extending this, then you can restrict which tables are available */ var $validTables = false; @@ -56,16 +63,21 @@ class Pman_Roo extends Pman var $do = false; // the dataobject being worked on.. + + var $countWhat; // set in loadMap + var $colsJname; + var $old; + function getAuth() { parent::getAuth(); // load company! $au = $this->getAuthUser(); if (!$au) { - $this->jerr("Not authenticated", array('authFailure' => true)); + $this->jerror("LOGIN-NOAUTH", "Not authenticated", array('authFailure' => true)); } if (!$au->pid() ) { // not set up yet.. - $this->jerr("Not authenticated", array('authFailure' => true)); + $this->jerror("LOGIN-NOAUTH", "Not authenticated", array('authFailure' => true)); } @@ -176,13 +188,9 @@ class Pman_Roo extends Pman $this->init(); // from pman. //DB_DataObject::debuglevel(1); HTML_FlexyFramework::get()->generateDataobjectsCache($this->isDev && !empty($_REQUEST['isDev'])); - - - + // debugging... - - - + if ( $this->checkDebugPost()) { @@ -199,7 +207,8 @@ class Pman_Roo extends Pman $tab = array_shift($tt); $x = $this->dataObject($tab); - $_columns = !empty($_REQUEST['_columns']) ? explode(',', $_REQUEST['_columns']) : false; + $_columns = !empty($_REQUEST['_columns']) && is_string($_REQUEST['_columns']) ? explode(',', $_REQUEST['_columns']) : false; + if (isset( $_REQUEST['lookup'] ) && is_array($_REQUEST['lookup'] )) { // single fetch based on key/value pairs $this->selectSingle($x, $_REQUEST['lookup'],$_REQUEST); @@ -253,7 +262,7 @@ class Pman_Roo extends Pman $this->setFilters($x,$_REQUEST); if (!$this->checkPerm($x,'S', $_REQUEST)) { - $this->jerr("PERMISSION DENIED (g)"); + $this->jerror("NOTICE-NOPERM", "PERMISSION DENIED (g)"); } //print_r($x); @@ -273,6 +282,9 @@ class Pman_Roo extends Pman if (!isset($_REQUEST['_no_count'])) { $total = $xx->count($this->countWhat); } + if (isset($xx->_real_total)) { // this is used when we subquery the search. + $total = $xx->_real_total; + } // sorting.. // // var_dump($total);exit; @@ -343,7 +355,7 @@ class Pman_Roo extends Pman // filter results, and add any data that is needed... if (method_exists($x,'postListFilter')) { - $ret = $x->postListFilter($ret, $this->authUser, $_REQUEST, $roo); + $ret = $x->postListFilter($ret, $this->authUser, $_REQUEST, $this); } @@ -751,11 +763,11 @@ class Pman_Roo extends Pman { // Db_DataObject::debugLevel(1); - $sort = empty($_REQUEST['sort']) ? $sort : $_REQUEST['sort']; - $dir = empty($_REQUEST['dir']) ? $dir : $_REQUEST['dir']; + $sort = empty($_REQUEST['sort']) || !is_string($_REQUEST['sort']) ? $sort : $_REQUEST['sort']; + $dir = empty($_REQUEST['dir']) || !is_string($_REQUEST['dir']) ? $dir : $_REQUEST['dir']; $dir = $dir == 'ASC' ? 'ASC' : 'DESC'; - $ms = empty($_REQUEST['_multisort']) ? false : $_REQUEST['_multisort']; + $ms = empty($_REQUEST['_multisort']) || !is_string($_REQUEST['_multisort']) ? false : $_REQUEST['_multisort']; //var_Dump($ms);exit; $sorted = false; if (method_exists($x, 'applySort')) { @@ -924,14 +936,14 @@ class Pman_Roo extends Pman if (method_exists($x, 'setFromRoo')) { $res = $x->setFromRoo($req, $this); if (is_string($res)) { - $this->jerr($res); + $this->jerror("NOTICE-INSERT", $res); } } else { $x->setFrom($req); } if ( $with_perm_check && !$this->checkPerm($x,'A', $req)) { - $this->jerr("PERMISSION DENIED (i)"); + $this->jerr("PERMISSION DENIED {$x->tableName()}:checkPerm(A)"); } $cols = $x->tableColumns(); @@ -1199,7 +1211,7 @@ class Pman_Roo extends Pman $x->whereAdd($this->key .' IN ('. implode(',', $bits) .')'); if (!$x->find()) { - $this->jerr("Nothing found to delete"); + $this->jerror("NOTICE-DELETE","Nothing found to delete"); } $errs = array(); while ($x->fetch()) { @@ -1278,7 +1290,7 @@ class Pman_Roo extends Pman if (method_exists($chk, 'toEventString')) { $desc .= ' : ' . $o[0]->toEventString(); } - $this->jerr("Delete Dependant records ($match_total found), " . + $this->jerror("NOTICE-DELETE-DEP", "Delete Dependant records ($match_total found), " . "first is ( $desc )"); } @@ -1327,8 +1339,7 @@ class Pman_Roo extends Pman function loadMap($do, $cfg =array()) //$onlycolumns=false, $distinct = false) { - - //DB_DataObject::debugLevel(5); + //DB_DataObject::debugLevel(5); $onlycolumns = !empty($cfg['columns']) ? $cfg['columns'] : false; $distinct = !empty($cfg['distinct']) ? $cfg['distinct'] : false; $excludecolumns = !empty($cfg['exclude']) ? $cfg['exclude'] : array(); @@ -1584,7 +1595,8 @@ class Pman_Roo extends Pman } $tab = str_replace('/', '',$tab); // basic protection?? - $pm = HTML_FlexyFramework::get()->Pman; + $ff = HTML_FlexyFramework::get(); + $pm = isset($ff->Pman) ? $ff->Pman : array(); if (isset($pm['roo_alias'])) { $map = array_flip($pm['roo_alias']);