From 0f4bd114406d374185c6cbef19b24a2a3aca4928 Mon Sep 17 00:00:00 2001 From: edward Date: Wed, 30 Mar 2016 18:44:16 +0800 Subject: [PATCH] RooTrait.php --- RooTrait.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/RooTrait.php b/RooTrait.php index 4b676e59..1079dc55 100644 --- a/RooTrait.php +++ b/RooTrait.php @@ -94,6 +94,67 @@ trait Pman_Core_RooTrait { return $x; } + function selectSingle($x, $id, $req=false) + { + $_columns = !empty($req['_columns']) ? explode(',', $req['_columns']) : false; + + //var_dump(array(!is_array($id) , empty($id))); + if (!is_array($id) && empty($id)) { + + if (method_exists($x, 'toRooSingleArray')) { + $this->jok($x->toRooSingleArray($this->authUser, $req)); + } + + if (method_exists($x, 'toRooArray')) { + $this->jok($x->toRooArray($req)); + } + + $this->jok($x->toArray()); + } + + + $this->loadMap($x, array( + 'columns' => $_columns, + + )); + if ($req !== false) { + $this->setFilters($x, $req); + } + + // DB_DataObject::DebugLevel(1); + if (is_array($id)) { + // lookup... + $x->setFrom($req['lookup'] ); + $x->limit(1); + if (!$x->find(true)) { + if (!empty($id['_id'])) { + // standardize this? + $this->jok($x->toArray()); + } + $this->jok(false); + } + + } else if (!$x->get($id)) { + $this->jerr("selectSingle: no such record ($id)"); + } + + // ignore perms if comming from update/insert - as it's already done... + if ($req !== false && !$this->checkPerm($x,'S')) { + $this->jerr("PERMISSION DENIED - si"); + } + // different symantics on all these calls?? + if (method_exists($x, 'toRooSingleArray')) { + $this->jok($x->toRooSingleArray($this->authUser, $req)); + } + if (method_exists($x, 'toRooArray')) { + $this->jok($x->toRooArray($req)); + } + + $this->jok($x->toArray()); + + + } + /* * From Pman.php */ -- 2.39.2