diff --git a/campcaster/src/modules/alib/var/Alib.php b/campcaster/src/modules/alib/var/Alib.php index 3c45a8207..1f907b43a 100644 --- a/campcaster/src/modules/alib/var/Alib.php +++ b/campcaster/src/modules/alib/var/Alib.php @@ -17,24 +17,9 @@ define('ALIBERR_NOTEXISTS', 31); * @license http://www.gnu.org/licenses/gpl.txt * @link http://www.campware.org */ -class Alib extends Subjects { - /** - * The name of a database table. - * - * @var string - */ - public $permTable; - - /** - * The name of a database table. - * - * @var string - */ - public $sessTable; - - //var $login = NULL; - //var $userid = NULL; - public $sessid = NULL; +class Alib { +//class Alib extends Subjects { + //public $sessid = NULL; /** * Constructor @@ -42,12 +27,10 @@ class Alib extends Subjects { * @param DB $dbc * @param array $config */ - public function __construct(&$dbc, $config) - { - parent::__construct($dbc, $config); - $this->permTable = $config['tblNamePrefix'].'perms'; - $this->sessTable = $config['tblNamePrefix'].'sess'; - } // constructor +// public function __construct(&$dbc, $config) +// { +// parent::__construct($dbc, $config); +// } // constructor /* ======================================================= public methods */ @@ -61,27 +44,25 @@ class Alib extends Subjects { * @param string $pass * @return boolean|sessionId|PEAR_Error */ - public function login($login, $pass) + public static function Login($login, $pass) { - if (FALSE === $this->authenticate($login, $pass)) { - $this->setTimeStamp($login, TRUE); + global $CC_CONFIG, $CC_DBC; + if (FALSE === Subjects::Authenticate($login, $pass)) { + Subjects::SetTimeStamp($login, TRUE); return FALSE; } - $sessid = $this->_createSessid(); + $sessid = Alib::_createSessid(); if (PEAR::isError($sessid)) { return $sessid; } - $userid = $this->getSubjId($login); - $sql = "INSERT INTO {$this->sessTable} (sessid, userid, login, ts) + $userid = Subjects::GetSubjId($login); + $sql = "INSERT INTO ".$CC_CONFIG['sessTable']." (sessid, userid, login, ts) VALUES('$sessid', '$userid', '$login', now())"; - $r = $this->dbc->query($sql); + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } - //$this->login = $login; - //$this->userid = $userid; - //$this->sessid = $sessid; - $this->setTimeStamp($login, FALSE); + Subjects::SetTimeStamp($login, FALSE); return $sessid; } // fn login @@ -92,24 +73,22 @@ class Alib extends Subjects { * @param string $sessid * @return true|PEAR_Error */ - public function logout($sessid) + public static function Logout($sessid) { - $ct = $this->checkAuthToken($sessid); + global $CC_CONFIG, $CC_DBC; + $ct = Alib::CheckAuthToken($sessid); if ($ct === FALSE) { return PEAR::raiseError("Alib::logout: not logged ($sessid)", ALIBERR_NOTLOGGED, PEAR_ERROR_RETURN); } elseif (PEAR::isError($ct)) { return $ct; } else { - $sql = "DELETE FROM {$this->sessTable} + $sql = "DELETE FROM ".$CC_CONFIG['sessTable']." WHERE sessid='$sessid'"; - $r = $this->dbc->query($sql); + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } - //$this->login = NULL; - //$this->userid = NULL; - //$this->sessid = NULL; return TRUE; } } // fn logout @@ -121,11 +100,12 @@ class Alib extends Subjects { * @param string $sessid * @return boolean|PEAR_Error */ - private function checkAuthToken($sessid) + private static function CheckAuthToken($sessid) { - $sql = "SELECT count(*) as cnt FROM {$this->sessTable} + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT count(*) as cnt FROM ".$CC_CONFIG['sessTable']." WHERE sessid='$sessid'"; - $c = $this->dbc->getOne($sql); + $c = $CC_DBC->getOne($sql); return ($c == 1 ? TRUE : (PEAR::isError($c) ? $c : FALSE )); } //fn checkAuthToken @@ -164,12 +144,13 @@ class Alib extends Subjects { * @return int * local permission id */ - public function addPerm($sid, $action, $oid, $type='A') + public static function AddPerm($sid, $action, $oid, $type='A') { - $permid = $this->dbc->nextId("{$this->permTable}_id_seq"); - $sql = "INSERT INTO {$this->permTable} (permid, subj, action, obj, type) - VALUES ($permid, $sid, '$action', $oid, '$type')"; - $r = $this->dbc->query($sql); + global $CC_CONFIG, $CC_DBC; + $permid = $CC_DBC->nextId($CC_CONFIG['permTable']."_id_seq"); + $sql = "INSERT INTO ".$CC_CONFIG['permTable']." (permid, subj, action, obj, type) + VALUES ($permid, $sid, '$action', $oid, '$type')"; + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return($r); } @@ -188,8 +169,9 @@ class Alib extends Subjects { * local object id * @return boolean|PEAR_Error */ - public function removePerm($permid=NULL, $subj=NULL, $obj=NULL) + public static function RemovePerm($permid=NULL, $subj=NULL, $obj=NULL) { + global $CC_CONFIG, $CC_DBC; $ca = array(); if ($permid) { $ca[] = "permid=$permid"; @@ -204,8 +186,8 @@ class Alib extends Subjects { if (!$cond) { return TRUE; } - $sql = "DELETE FROM {$this->permTable} WHERE $cond"; - return $this->dbc->query($sql); + $sql = "DELETE FROM ".$CC_CONFIG['permTable']." WHERE $cond"; + return $CC_DBC->query($sql); } // fn removePerm @@ -217,12 +199,13 @@ class Alib extends Subjects { * @return int * local object id */ - protected function _getPermOid($permid) + protected static function GetPermOid($permid) { - $sql = "SELECT obj FROM {$this->permTable} WHERE permid=$permid"; - $res = $this->dbc->getOne($sql); + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT obj FROM ".$CC_CONFIG['permTable']." WHERE permid=$permid"; + $res = $CC_DBC->getOne($sql); return $res; - } // fn _getPermOid + } // fn GetPermOid /** @@ -244,17 +227,18 @@ class Alib extends Subjects { * @param string $action * from set defined in config * @param int $oid - * object id, optional (default: root node) - * @return mixed - * boolean/err + * object id (default: root node) + * @return boolean|PEAR_Error */ - public function checkPerm($sid, $action, $oid=NULL) + public static function CheckPerm($sid, $action, $oid=NULL) { + global $CC_DBC; + global $CC_CONFIG; if (!is_numeric($sid)) { return FALSE; } if (is_null($oid) or $oid=='') { - $oid = $this->getRootNode(); + $oid = M2tree::GetRootNode(); } if (PEAR::isError($oid)) { return $oid; @@ -270,10 +254,10 @@ class Alib extends Subjects { // c: classTable, cm: cmembTable // main query elements: $q_flds = "m.level , p.subj, s.login, action, p.type, p.obj"; - $q_from = "{$this->permTable} p "; + $q_from = $CC_CONFIG['permTable']." p "; // joins for solving users/groups: - $q_join = "LEFT JOIN {$this->subjTable} s ON s.id=p.subj "; - $q_join .= "LEFT JOIN {$this->smembTable} m ON m.gid=p.subj "; + $q_join = "LEFT JOIN ".$CC_CONFIG['subjTable']." s ON s.id=p.subj "; + $q_join .= "LEFT JOIN .".$CC_CONFIG['smembTable']." m ON m.gid=p.subj "; $q_cond = "p.action in('_all', '$action') AND (s.id=$sid OR m.uid=$sid) "; // coalesce -1 for higher priority of nongroup rows: @@ -286,14 +270,14 @@ class Alib extends Subjects { $q_ordb0 = $q_ordb; // joins for solving object tree: $q_flds .= ", t.name, ts.level as tlevel"; - $q_join .= "LEFT JOIN {$this->treeTable} t ON t.id=p.obj "; - $q_join .= "LEFT JOIN {$this->structTable} ts ON ts.parid=p.obj "; + $q_join .= "LEFT JOIN ".$CC_CONFIG['treeTable']." t ON t.id=p.obj "; + $q_join .= "LEFT JOIN ".$CC_CONFIG['structTable']." ts ON ts.parid=p.obj "; $q_cond .= " AND (t.id=$oid OR ts.objid=$oid)"; // action DESC order is hack for lower priority of '_all': $q_ordb = "ORDER BY coalesce(ts.level,0), m.level, action DESC, p.type DESC"; // query by tree: $query1 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb"; - $r1 = $this->dbc->getAll($query1); + $r1 = $CC_DBC->getAll($query1); if (PEAR::isError($r1)) { return($r1); } @@ -309,15 +293,15 @@ class Alib extends Subjects { // joins for solving object classes: $q_flds = $q_flds0.", c.cname "; - $q_join = $q_join0."LEFT JOIN {$this->classTable} c ON c.id=p.obj "; - $q_join .= "LEFT JOIN {$this->cmembTable} cm ON cm.cid=p.obj "; + $q_join = $q_join0."LEFT JOIN ".$CC_CONFIG['classTable']." c ON c.id=p.obj "; + $q_join .= "LEFT JOIN ".$CC_CONFIG['cmembTable']." cm ON cm.cid=p.obj "; $q_cond = $q_cond0." AND (c.id=$oid OR cm.objid=$oid)"; $q_ordb = $q_ordb0; // query by class: $query2 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb"; - $r2 = $this->dbc->getAll($query2); + $r2 = $CC_DBC->getAll($query2); if (PEAR::isError($r2)) { - return($r2); + return $r2; } $AllowedByClass = (is_array($r2) && count($r2)>0 && $r2[0]['type']=='A'); @@ -325,9 +309,8 @@ class Alib extends Subjects { // $DeniedByClass = // (is_array($r2) && count($r2)>0 && $r2[0]['type']=='D'); $res = ($AllowedByTree || (!$DeniedByTree && $AllowedByClass)); -# echo"
\nsid=$sid, action=$action, oid=$oid\n"; var_dump($r1); echo"\n---\n$query1\n---\n\n"; var_dump($r2); echo"\n---\n$query2\n---\n\n"; exit;
         return $res;
-    } // fn checkPerm
+    } // fn CheckPerm
 
 
     /* ---------------------------------------------------------- object tree */
@@ -338,13 +321,13 @@ class Alib extends Subjects {
      * @param int $id
      * @return void|PEAR_Error
      */
-    public function removeObj($id)
+    public static function RemoveObj($id)
     {
-        $r = $this->removePerm(NULL, NULL, $id);
+        $r = Alib::RemovePerm(NULL, NULL, $id);
         if (PEAR::isError($r)) {
             return $r;
         }
-        return parent::removeObj($id);
+        return ObjClasses::RemoveObj($id);
     } // fn removeObj
 
     /* --------------------------------------------------------- users/groups */
@@ -355,22 +338,23 @@ class Alib extends Subjects {
      * @param string $login
      * @return void|PEAR_Error
      */
-    public function removeSubj($login)
+    public static function RemoveSubj($login)
     {
-        $uid = $this->getSubjId($login);
+        global $CC_CONFIG, $CC_DBC;
+        $uid = Subjects::GetSubjId($login);
         if (PEAR::isError($uid)) {
             return $uid;
         }
         if (is_null($uid)){
-            return $this->dbc->raiseError("Alib::removeSubj: Subj not found ($login)",
+            return $CC_DBC->raiseError("Alib::removeSubj: Subj not found ($login)",
                 ALIBERR_NOTEXISTS,  PEAR_ERROR_RETURN);
         }
-        $r = $this->removePerm(NULL, $uid);
+        $r = Alib::RemovePerm(NULL, $uid);
         if (PEAR::isError($r)) {
             return $r;
         }
-        return parent::removeSubj($login, $uid);
-    } // fn removeSubj
+        return Subjects::RemoveSubj($login, $uid);
+    } // fn RemoveSubj
 
 
     /* ------------------------------------------------------------- sessions */
@@ -380,38 +364,40 @@ class Alib extends Subjects {
      * @param string $sessid
      * @return string|PEAR_Error
      */
-    public function getSessLogin($sessid)
+    public static function GetSessLogin($sessid)
     {
-        $sql = "SELECT login FROM {$this->sessTable} WHERE sessid='$sessid'";
-        $r = $this->dbc->getOne($sql);
+        global $CC_CONFIG, $CC_DBC;
+        $sql = "SELECT login FROM ".$CC_CONFIG['sessTable']." WHERE sessid='$sessid'";
+        $r = $CC_DBC->getOne($sql);
         if (PEAR::isError($r)) {
             return $r;
         }
         if (is_null($r)){
-            return PEAR::raiseError("Alib::getSessLogin:".
+            return PEAR::raiseError("Alib::GetSessLogin:".
                 " invalid session id ($sessid)",
                 ALIBERR_NOTEXISTS,  PEAR_ERROR_RETURN);
         }
         return $r;
-    } // fn getSessLogin
+    } // fn GetSessLogin
 
 
     /**
      * Get user id from session id.
      *
-     * @param string $sessid
+     * @param string $p_sessid
      * @return int|PEAR_Error
      */
-    public function getSessUserId($sessid)
+    public static function GetSessUserId($p_sessid)
     {
-        $sql = "SELECT userid FROM {$this->sessTable} WHERE sessid='$sessid'";
-        $r = $this->dbc->getOne($sql);
+        global $CC_CONFIG, $CC_DBC;
+        $sql = "SELECT userid FROM ".$CC_CONFIG['sessTable']." WHERE sessid='$p_sessid'";
+        $r = $CC_DBC->getOne($sql);
         if (PEAR::isError($r)) {
             return $r;
         }
-        if (is_null($r)){
+        if (is_null($r)) {
             return PEAR::raiseError("Alib::getSessUserId:".
-                " invalid session id ($sessid)",
+                " invalid session id ($p_sessid)",
                 ALIBERR_NOTEXISTS,  PEAR_ERROR_RETURN);
         }
         return $r;
@@ -425,12 +411,13 @@ class Alib extends Subjects {
      * @param int $id
      * @return array|null|PEAR_Error
      */
-    public function getObjPerms($id)
+    public static function GetObjPerms($id)
     {
-        $sql = "SELECT s.login, p.* FROM {$this->permTable} p, {$this->subjTable} s
+        global $CC_CONFIG, $CC_DBC;
+        $sql = "SELECT s.login, p.* FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['subjTable']." s
             WHERE s.id=p.subj AND p.obj=$id";
-        return $this->dbc->getAll($sql);
-    } // fn getObjPerms
+        return $CC_DBC->getAll($sql);
+    } // fn GetObjPerms
 
 
     /**
@@ -439,32 +426,33 @@ class Alib extends Subjects {
      * @param int $sid
      * @return array
      */
-    public function getSubjPerms($sid)
+    public static function GetSubjPerms($sid)
     {
+        global $CC_CONFIG, $CC_DBC;
         $sql = "
             SELECT t.name, t.type as otype , p.*
-            FROM {$this->permTable} p, {$this->treeTable} t
+            FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['treeTable']." t
             WHERE t.id=p.obj AND p.subj=$sid";
-        $a1 = $this->dbc->getAll($sql);
+        $a1 = $CC_DBC->getAll($sql);
         if (PEAR::isError($a1)) {
             return $a1;
         }
         $sql2 = "
             SELECT c.cname as name, 'C'as otype, p.*
-            FROM {$this->permTable} p, {$this->classTable} c
+            FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['classTable']." c
             WHERE c.id=p.obj AND p.subj=$sid";
-        $a2 = $this->dbc->getAll($sql2);
+        $a2 = $CC_DBC->getAll($sql2);
         if (PEAR::isError($a2)) {
             return $a2;
         }
         return array_merge($a1, $a2);
-    } // fn getSubjPerms
+    } // fn GetSubjPerms
 
 
     /* ------------------------ info methods related to application structure */
     /* (this part should be added/rewritten to allow defining/modifying/using
      * application structure)
-     * (only very simple structure definition - in $config - supported now)
+     * (only very simple structure definition - in $CC_CONFIG - supported now)
      */
 
     /**
@@ -472,10 +460,11 @@ class Alib extends Subjects {
      *
      * @return array
      */
-    public function getAllActions()
+    public static function GetAllActions()
     {
-        return $this->config['allActions'];
-    } // fn getAllActions
+        global $CC_CONFIG;
+        return $CC_CONFIG['allActions'];
+    } // fn GetAllActions
 
 
     /**
@@ -484,10 +473,11 @@ class Alib extends Subjects {
      * @param string $type
      * @return array
      */
-    public function getAllowedActions($type)
+    public static function GetAllowedActions($type)
     {
-        return $this->config['allowedActions'][$type];
-    } // fn getAllowedActions
+        global $CC_CONFIG;
+        return $CC_CONFIG['allowedActions'][$type];
+    } // fn GetAllowedActions
 
 
     /* ====================================================== private methods */
@@ -497,13 +487,14 @@ class Alib extends Subjects {
      *
      * @return string
      */
-    private function _createSessid()
+    private static function _createSessid()
     {
-        for ($c=1; $c>0;){
+        global $CC_CONFIG, $CC_DBC;
+        for ($c = 1; $c > 0; ){
             $sessid = md5(uniqid(rand()));
-            $sql = "SELECT count(*) FROM {$this->sessTable}
+            $sql = "SELECT count(*) FROM ".$CC_CONFIG['sessTable']."
                 WHERE sessid='$sessid'";
-            $c = $this->dbc->getOne($sql);
+            $c = $CC_DBC->getOne($sql);
             if (PEAR::isError($c)) {
                 return $c;
             }
@@ -523,11 +514,12 @@ class Alib extends Subjects {
      * 		actual indentation
      * @return string
      */
-    public function dumpPerms($indstr='    ', $ind='')
+    public static function DumpPerms($indstr='    ', $ind='')
     {
-        $arr = $this->dbc->getAll("
+        global $CC_CONFIG, $CC_DBC;
+        $arr = $CC_DBC->getAll("
             SELECT s.login, p.action, p.type
-            FROM {$this->permTable} p, {$this->subjTable} s
+            FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['subjTable']." s
             WHERE s.id=p.subj
             ORDER BY p.permid
         ");
@@ -548,11 +540,12 @@ class Alib extends Subjects {
      *
      * @return void
      */
-    public function deleteData()
+    public static function DeleteData()
     {
-        $this->dbc->query("DELETE FROM {$this->permTable}");
-        $this->dbc->query("DELETE FROM {$this->sessTable}");
-        parent::deleteData();
+        global $CC_CONFIG, $CC_DBC;
+        $CC_DBC->query("DELETE FROM ".$CC_CONFIG['permTable']);
+        $CC_DBC->query("DELETE FROM ".$CC_CONFIG['sessTable']);
+        Subjects::DeleteData();
     } // fn deleteData
 
 
@@ -561,13 +554,14 @@ class Alib extends Subjects {
      *
      * @return array
      */
-    public function testData()
+    public static function TestData()
     {
-        parent::testData();
-        $t =& $this->tdata['tree'];
-        $c =& $this->tdata['classes'];
-        $s =& $this->tdata['subjects'];
-        $this->dbc->setErrorHandling(PEAR_ERROR_PRINT);
+        global $CC_CONFIG, $CC_DBC;
+        $tdata = Subjects::TestData();
+        $t =& $tdata['tree'];
+        $c =& $tdata['classes'];
+        $s =& $tdata['subjects'];
+        $CC_DBC->setErrorHandling(PEAR_ERROR_PRINT);
         $perms = array(
             array($s['root'], '_all', $t['root'], 'A'),
             array($s['test1'], '_all', $t['pa'], 'A'),
@@ -585,12 +579,13 @@ class Alib extends Subjects {
             $perms[] = array($s['test4'], 'editPerms', $c['cl2'], 'A');
         }
         foreach ($perms as $p){
-            $o[] = $r = $this->addPerm($p[0], $p[1], $p[2], $p[3]);
+            $o[] = $r = Alib::AddPerm($p[0], $p[1], $p[2], $p[3]);
             if (PEAR::isError($r)) {
                 return $r;
             }
         }
-        $this->tdata['perms'] = $o;
+        $tdata['perms'] = $o;
+        return $tdata;
     } // fn testData
 
 
@@ -599,56 +594,58 @@ class Alib extends Subjects {
      *
      * @return boolean|PEAR_Error
      */
-    public function test()
+    public static function Test()
     {
-        if (PEAR::isError($p = parent::test())) {
+        $p = Subjects::test();
+        if (PEAR::isError($p)) {
             return $p;
         }
-        $this->deleteData();
-        $r = $this->testData();
-        if (PEAR::isError($r)) {
-            return $r;
+        Alib::DeleteData();
+        $tdata = Alib::TestData();
+        if (PEAR::isError($tdata)) {
+            return $tdata;
         }
-        $this->test_correct = "root/_all/A, test1/_all/A, test1/read/D,".
+        $test_correct = "root/_all/A, test1/_all/A, test1/read/D,".
             " test2/addChilds/D, test2/read/A, test2/edit/A,".
             " test1/addChilds/D, test1/addChilds/D, gr2/addChilds/A,".
             " test3/_all/D";
         if (USE_ALIB_CLASSES){
-            $this->test_correct .= ", test3/read/D, test4/editPerms/A";
+            $test_correct .= ", test3/read/D, test4/editPerms/A";
         }
-        $this->test_correct .= "\nno, yes\n";
-        $r = $this->dumpPerms();
+        $test_correct .= "\nno, yes\n";
+        $r = Alib::DumpPerms();
         if (PEAR::isError($r)) {
             return $r;
         }
-        $this->test_dump = $r.
-            ($this->checkPerm(
-                $this->tdata['subjects']['test1'], 'read',
-                $this->tdata['tree']['t1']
+        $test_dump = $r.
+            (Alib::CheckPerm(
+                $tdata['subjects']['test1'], 'read',
+                $tdata['tree']['t1']
             )? 'yes':'no').", ".
-            ($this->checkPerm(
-                $this->tdata['subjects']['test1'], 'addChilds',
-                $this->tdata['tree']['i2']
+            (Alib::CheckPerm(
+                $tdata['subjects']['test1'], 'addChilds',
+                $tdata['tree']['i2']
             )? 'yes':'no')."\n"
         ;
-        $this->removePerm($this->tdata['perms'][1]);
-        $this->removePerm($this->tdata['perms'][3]);
-        $this->test_correct .= "root/_all/A, test1/read/D,".
+        Alib::RemovePerm($tdata['perms'][1]);
+        Alib::RemovePerm($tdata['perms'][3]);
+        $test_correct .= "root/_all/A, test1/read/D,".
             " test2/read/A, test2/edit/A,".
             " test1/addChilds/D, test1/addChilds/D, gr2/addChilds/A,".
             " test3/_all/D";
-        if (USE_ALIB_CLASSES){
-            $this->test_correct .= ", test3/read/D, test4/editPerms/A";
+        if (USE_ALIB_CLASSES) {
+            $test_correct .= ", test3/read/D, test4/editPerms/A";
         }
-        $this->test_correct .= "\n";
-        $this->test_dump .= $this->dumpPerms();
-        $this->deleteData();
-        if ($this->test_dump==$this->test_correct) {
-            $this->test_log.="alib: OK\n"; return TRUE;
+        $test_correct .= "\n";
+        $test_dump .= Alib::DumpPerms();
+        Alib::DeleteData();
+        if ($test_dump == $test_correct) {
+            $test_log .= "alib: OK\n";
+            return TRUE;
         } else {
             return PEAR::raiseError('Alib::test', 1, PEAR_ERROR_DIE, '%s'.
-            "
\ncorrect:\n{$this->test_correct}\n".
-            "dump:\n{$this->test_dump}\n
\n"); + "
\ncorrect:\n{$test_correct}\n".
+                "dump:\n{$test_dump}\n
\n"); } } // fn test @@ -658,37 +655,37 @@ class Alib extends Subjects { * * @return void */ - public function install() - { - parent::install(); - $this->dbc->query("CREATE TABLE {$this->permTable} ( - permid int not null PRIMARY KEY, - subj int REFERENCES {$this->subjTable} ON DELETE CASCADE, - action varchar(20), - obj int, - type char(1) - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->permTable}_permid_idx - ON {$this->permTable} (permid)"); - $this->dbc->query("CREATE INDEX {$this->permTable}_subj_obj_idx - ON {$this->permTable} (subj, obj)"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->permTable}_all_idx - ON {$this->permTable} (subj, action, obj)"); - $this->dbc->createSequence("{$this->permTable}_id_seq"); - - $this->dbc->query("CREATE TABLE {$this->sessTable} ( - sessid char(32) not null PRIMARY KEY, - userid int REFERENCES {$this->subjTable} ON DELETE CASCADE, - login varchar(255), - ts timestamp - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->sessTable}_sessid_idx - ON {$this->sessTable} (sessid)"); - $this->dbc->query("CREATE INDEX {$this->sessTable}_userid_idx - ON {$this->sessTable} (userid)"); - $this->dbc->query("CREATE INDEX {$this->sessTable}_login_idx - ON {$this->sessTable} (login)"); - } // fn install +// public function install() +// { +// parent::install(); +// $CC_DBC->query("CREATE TABLE {$this->permTable} ( +// permid int not null PRIMARY KEY, +// subj int REFERENCES {$this->subjTable} ON DELETE CASCADE, +// action varchar(20), +// obj int, +// type char(1) +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->permTable}_permid_idx +// ON {$this->permTable} (permid)"); +// $CC_DBC->query("CREATE INDEX {$this->permTable}_subj_obj_idx +// ON {$this->permTable} (subj, obj)"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->permTable}_all_idx +// ON {$this->permTable} (subj, action, obj)"); +// $CC_DBC->createSequence("{$this->permTable}_id_seq"); +// +// $CC_DBC->query("CREATE TABLE {$this->sessTable} ( +// sessid char(32) not null PRIMARY KEY, +// userid int REFERENCES {$this->subjTable} ON DELETE CASCADE, +// login varchar(255), +// ts timestamp +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->sessTable}_sessid_idx +// ON {$this->sessTable} (sessid)"); +// $CC_DBC->query("CREATE INDEX {$this->sessTable}_userid_idx +// ON {$this->sessTable} (userid)"); +// $CC_DBC->query("CREATE INDEX {$this->sessTable}_login_idx +// ON {$this->sessTable} (login)"); +// } // fn install /** @@ -696,13 +693,14 @@ class Alib extends Subjects { * * @return void */ - public function uninstall() - { - $this->dbc->query("DROP TABLE {$this->permTable}"); - $this->dbc->dropSequence("{$this->permTable}_id_seq"); - $this->dbc->query("DROP TABLE {$this->sessTable}"); - parent::uninstall(); - } // fn uninstall +// public function uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['permTable']); +// $CC_DBC->dropSequence($CC_CONFIG['permTable']."_id_seq"); +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['sessTable']); +// parent::uninstall(); +// } // fn uninstall } // class Alib ?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/M2tree.php b/campcaster/src/modules/alib/var/M2tree.php index a0f2ff689..627b90d8a 100644 --- a/campcaster/src/modules/alib/var/M2tree.php +++ b/campcaster/src/modules/alib/var/M2tree.php @@ -9,7 +9,7 @@ define('ALIBERR_MTREE', 10); * example config: example/conf.php
* example minimal config: *

- *    $config = array(
+ *    $CC_CONFIG = array(
  *        'dsn'       => array(           // data source definition
  *            'username' => DBUSER,
  *            'password' => DBPASSWORD,
@@ -30,121 +30,80 @@ define('ALIBERR_MTREE', 10);
  * @copyright 2006 MDLF, Inc.
  * @license http://www.gnu.org/licenses/gpl.txt
  * @link http://www.campware.org
- * @see ObjClasses
- *
- * Original author Tom Hlava
  */
 class M2tree {
-    /**
-     *  Database object container
-     */
-    public $dbc;
-
-    /**
-     *  Configuration tree
-     */
-    public $config;
-
-    /**
-     *  Tree table name
-     */
-    protected $treeTable;
-
-    /**
-     *  Structure table name
-     */
-    protected $structTable;
-
-    /**
-     *  Root node name
-     */
-    private $rootNodeName;
-
-    /**
-     * Constructor
-     *
-     * @param DB $dbc
-     * @param array $config
-     */
-    public function __construct(&$dbc, $config)
-    {
-        $this->dbc = $dbc;
-        $this->config = $config;
-        $this->treeTable = $config['tblNamePrefix'].'tree';
-        $this->structTable = $config['tblNamePrefix'].'struct';
-        $this->rootNodeName = $config['RootNode'];
-    } // constructor
-
 
     /* ======================================================= public methods */
     /**
      * Add new object of specified type to the tree under specified parent
      * node
      *
-     * @param string $name
+     * @param string $p_name
      * 		mnemonic name for new object
-     * @param string $type
+     * @param string $p_type
      * 		type of new object
-     * @param int $parid
+     * @param int $p_parentId
      * 		parent id
-     * @return mixed
-     * 		int/err - new id of inserted object or PEAR::error
+     * @return int|PEAR_Error
+     * 		New id of inserted object
      */
-    public function addObj($name, $type, $parid = NULL)
+    public static function AddObj($p_name, $p_type, $p_parentId = NULL)
     {
-        if ( ($name == '') || ($type == '') ) {
-            return $this->dbc->raiseError("M2tree::addObj: Wrong name or type", ALIBERR_MTREE);
+        global $CC_CONFIG;
+        global $CC_DBC;
+        if ( ($p_name == '') || ($p_type == '') ) {
+            return $CC_DBC->raiseError("M2tree::addObj: Wrong name or type", ALIBERR_MTREE);
         }
-        if (is_null($parid)) {
-            $parid = $this->getRootNode();
+        if (is_null($p_parentId)) {
+            $p_parentId = M2tree::GetRootNode();
         }
         // changing name if the same is in the dest. folder:
-        for( ;
-            $xid = $this->getObjId($name, $parid),
-                !is_null($xid) && !$this->dbc->isError($xid);
-            $name .= "_"
-        );
-        if ($this->dbc->isError($xid)) {
+        $xid = M2tree::GetObjId($p_name, $p_parentId);
+        while (!is_null($xid) && !PEAR::isError($xid)) {
+            $p_name .= "_";
+            $xid = M2tree::GetObjId($p_name, $p_parentId);
+        }
+        if (PEAR::isError($xid)) {
             return $xid;
         }
         // insert new object record:
-        $this->dbc->query("BEGIN");
-        $oid = $this->dbc->nextId("{$this->treeTable}_id_seq");
-        if ($this->dbc->isError($oid)) {
-            return $this->_dbRollback($oid);
+        $CC_DBC->query("BEGIN");
+        $oid = $CC_DBC->nextId($CC_CONFIG['treeTable']."_id_seq");
+        if (PEAR::isError($oid)) {
+            return M2tree::_dbRollback($oid);
         }
-        $escapedName = pg_escape_string($name);
-        $escapedType = pg_escape_string($type);
-        $r = $this->dbc->query("
-            INSERT INTO {$this->treeTable} (id, name, type)
+        $escapedName = pg_escape_string($p_name);
+        $escapedType = pg_escape_string($p_type);
+        $r = $CC_DBC->query("
+            INSERT INTO ".$CC_CONFIG['treeTable']." (id, name, type)
             VALUES ($oid, '$escapedName', '$escapedType')
         ");
-        if ($this->dbc->isError($r)) {
-            return $this->_dbRollback($r);
+        if (PEAR::isError($r)) {
+            return M2tree::_dbRollback($r);
         }
         $dataArr = array();
         // build data ($dataArr) for INSERT of structure records:
-        for ($p=$parid, $l=1; !is_null($p); $p=$this->getParent($p), $l++) {
-            $rid = $this->dbc->nextId("{$this->structTable}_id_seq");
-            if ($this->dbc->isError($rid)) {
-                return $this->_dbRollback($rid);
+        for ($p=$p_parentId, $l=1; !is_null($p); $p = M2tree::GetParent($p), $l++) {
+            $rid = $CC_DBC->nextId($CC_CONFIG['structTable']."_id_seq");
+            if (PEAR::isError($rid)) {
+                return M2tree::_dbRollback($rid);
             }
             $dataArr[] = array($rid, $oid, $p, $l);
         }
         // build and prepare INSERT command automatically:
-        $pr = $this->dbc->autoPrepare($this->structTable,
+        $pr = $CC_DBC->autoPrepare($CC_CONFIG['structTable'],
             array('rid', 'objid', 'parid', 'level'), DB_AUTOQUERY_INSERT);
-        if ($this->dbc->isError($pr)) {
-            return $this->_dbRollback($pr);
+        if (PEAR::isError($pr)) {
+            return M2tree::_dbRollback($pr);
         }
         // execute INSERT command for $dataArr:
-        $r = $this->dbc->executeMultiple($pr, $dataArr);
-        if ($this->dbc->isError($r)) {
-            return $this->_dbRollback($r);
-        }
-        $r = $this->dbc->query("COMMIT");
+        $r = $CC_DBC->executeMultiple($pr, $dataArr);
         if (PEAR::isError($r)) {
-            return $this->_dbRollback($r);
+            return M2tree::_dbRollback($r);
+        }
+        $r = $CC_DBC->query("COMMIT");
+        if (PEAR::isError($r)) {
+            return M2tree::_dbRollback($r);
         }
         return $oid;
     } // fn addObj
@@ -155,39 +114,36 @@ class M2tree {
      *
      * @param int $oid
      * 		object id to remove
-     * @return mixed
-     * 		boolean/err - TRUE or PEAR::error
+     * @return TRUE|PEAR_Error
      */
-    public function removeObj($oid)
+    public static function RemoveObj($oid)
     {
-        if ($oid == $this->getRootNode()) {
-            return $this->dbc->raiseError(
-                "M2tree::removeObj: Can't remove root"
-            );
+        global $CC_CONFIG;
+        global $CC_DBC;
+        if ($oid == M2tree::GetRootNode()) {
+            return $CC_DBC->raiseError("M2tree::RemoveObj: Can't remove root");
         }
-        $dir = $this->getDir($oid);
-        if ($this->dbc->isError($dir)) {
+        $dir = M2tree::GetDir($oid);
+        if (PEAR::isError($dir)) {
             return $dir;
         }
         foreach ($dir as $k => $ch) {
-            $r = $this->removeObj($ch['id']);
-            if ($this->dbc->isError($r)) {
+            $r = M2tree::RemoveObj($ch['id']);
+            if (PEAR::isError($r)) {
                 return $r;
             }
         }
-        $r = $this->dbc->query("
-            DELETE FROM {$this->treeTable}
-            WHERE id=$oid
-        ");
-        if ($this->dbc->isError($r)) {
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['treeTable']
+                            ." WHERE id=$oid");
+        if (PEAR::isError($r)) {
             return $r;
         }
         /* done by automatic reference trigger:
-        $r = $this->dbc->query("
-            DELETE FROM {$this->structTable}
+        $r = $CC_DBC->query("
+            DELETE FROM ".$CC_CONFIG['structTable']."
             WHERE objid=$oid
         ");
-        if ($this->dbc->isError($r)) return $r;
+        if (PEAR::isError($r)) return $r;
         */
         return TRUE;
     } // fn removeObj
@@ -203,45 +159,45 @@ class M2tree {
      * 		destination parent id
      * @param null $after
      * 		dummy argument for back-compatibility
-     * @return mixed
-     * 		int/err - new id of inserted object or PEAR::error
+     * @return int|PEAR_Error
+     *      New id of inserted object
      */
-    protected function copyObj($oid, $newParid, $after=NULL)
+    protected static function CopyObj($oid, $newParid, $after=NULL)
     {
-        if (TRUE === ($r = $this->isChildOf($newParid, $oid, TRUE))) {
-            return $this->dbc->raiseError(
-                "M2tree::copyObj: Can't copy into itself"
-            );
+        global $CC_CONFIG;
+        global $CC_DBC;
+        if (TRUE === ($r = M2tree::IsChildOf($newParid, $oid, TRUE))) {
+            return $CC_DBC->raiseError("M2tree::CopyObj: Can't copy into itself");
         }
-        if ($this->dbc->isError($r)) {
+        if (PEAR::isError($r)) {
             return $r;
         }
         // get name:
-        $name = $this->getObjName($oid);
-        if ($this->dbc->isError($name)) {
+        $name = M2tree::GetObjName($oid);
+        if (PEAR::isError($name)) {
             return $name;
         }
         // get parent id:
-        $parid = $this->getParent($oid);
-        if ($this->dbc->isError($parid)) {
+        $parid = M2tree::GetParent($oid);
+        if (PEAR::isError($parid)) {
             return $parid;
         }
         if ($parid == $newParid) {
             $name .= "_copy";
         }
         // get type:
-        $type = $this->getObjType($oid);
-        if ($this->dbc->isError($type)) {
+        $type = M2tree::GetObjType($oid);
+        if (PEAR::isError($type)) {
             return $type;
         }
         // look for children:
-        $dir = $this->getDir($oid, $flds='id');
-        if ($this->dbc->isError($dir)) {
+        $dir = M2tree::GetDir($oid, $flds='id');
+        if (PEAR::isError($dir)) {
             return $dir;
         }
         // insert aktual object:
-        $nid = $this->addObj($name, $type, $newParid);
-        if ($this->dbc->isError($nid)) {
+        $nid = M2tree::AddObj($name, $type, $newParid);
+        if (PEAR::isError($nid)) {
             return $nid;
         }
         // if no children:
@@ -250,8 +206,8 @@ class M2tree {
         }
         // optionally insert children recursively:
         foreach ($dir as $k => $item) {
-            $r = $this->copyObj($item['id'], $nid);
-            if ($this->dbc->isError($r)) {
+            $r = M2tree::CopyObj($item['id'], $nid);
+            if (PEAR::isError($r)) {
                 return $r;
             }
         }
@@ -266,55 +222,55 @@ class M2tree {
      * @param int $newParid
      * @param null $after
      * 		dummy argument for back-compatibility
-     *  @return boolean/err
+     *  @return boolean|PEAR_Error
      */
-    public function moveObj($oid, $newParid, $after=NULL)
+    public static function MoveObj($oid, $newParid, $after=NULL)
     {
+        global $CC_CONFIG;
+        global $CC_DBC;
         if (TRUE === (
-                $r = $this->isChildOf($newParid, $oid, TRUE)
+                $r = M2tree::IsChildOf($newParid, $oid, TRUE)
                 || $oid == $newParid
             )) {
-            return $this->dbc->raiseError(
-                "M2tree::moveObj: Can't move into itself"
-            );
+            return $CC_DBC->raiseError("M2tree::MoveObj: Can't move into itself");
         }
-        if ($this->dbc->isError($r)) {
+        if (PEAR::isError($r)) {
             return $r;
         }
         // get name:
-        $name0 = $name = $this->getObjName($oid);
-        if ($this->dbc->isError($name)) {
+        $name0 = $name = M2tree::GetObjName($oid);
+        if (PEAR::isError($name)) {
             return $name;
         }
-        $this->dbc->query("BEGIN");
+        $CC_DBC->query("BEGIN");
         // cut it from source:
-        $r = $this->_cutSubtree($oid);
-        if ($this->dbc->isError($r)) {
-            return $this->_dbRollback($r);
+        $r = M2tree::_cutSubtree($oid);
+        if (PEAR::isError($r)) {
+            return M2tree::_dbRollback($r);
         }
         // changing name if the same is in the dest. folder:
         for( ;
-            $xid = $this->getObjId($name, $newParid),
-                !is_null($xid) && !$this->dbc->isError($xid);
+            $xid = M2tree::GetObjId($name, $newParid),
+                !is_null($xid) && !PEAR::isError($xid);
             $name .= "_"
         );
-        if ($this->dbc->isError($xid)) {
-            return $this->_dbRollback($xid);
+        if (PEAR::isError($xid)) {
+            return M2tree::_dbRollback($xid);
         }
         if ($name != $name0) {
-            $r = $this->renameObj($oid, $name);
-            if ($this->dbc->isError($r)) {
-                return $this->_dbRollback($r);
+            $r = M2tree::RenameObj($oid, $name);
+            if (PEAR::isError($r)) {
+                return M2tree::_dbRollback($r);
             }
         }
         // paste it to dest.:
-        $r = $this->_pasteSubtree($oid, $newParid);
-        if ($this->dbc->isError($r)) {
-            return $this->_dbRollback($r);
-        }
-        $r = $this->dbc->query("COMMIT");
+        $r = M2tree::_pasteSubtree($oid, $newParid);
         if (PEAR::isError($r)) {
-            return $this->_dbRollback($r);
+            return M2tree::_dbRollback($r);
+        }
+        $r = $CC_DBC->query("COMMIT");
+        if (PEAR::isError($r)) {
+            return M2tree::_dbRollback($r);
         }
         return TRUE;
     } //fn moveObj
@@ -327,31 +283,30 @@ class M2tree {
      * 		object id to rename
      * @param string $newName
      * 		new name
-     * @return TRUE/PEAR_Error
+     * @return TRUE|PEAR_Error
      */
-    public function renameObj($oid, $newName)
+    public static function RenameObj($oid, $newName)
     {
+        global $CC_CONFIG;
+        global $CC_DBC;
         // get parent id:
-        $parid = $this->getParent($oid);
-        if ($this->dbc->isError($parid)) {
+        $parid = M2tree::GetParent($oid);
+        if (PEAR::isError($parid)) {
             return $parid;
         }
         // changing name if the same is in the folder:
         for( ;
-            $xid = $this->getObjId($newName, $parid),
-                !is_null($xid) && !$this->dbc->isError($xid);
+            $xid = M2tree::GetObjId($newName, $parid),
+                !is_null($xid) && !PEAR::isError($xid);
             $newName .= "_"
         );
-        if ($this->dbc->isError($xid)) {
+        if (PEAR::isError($xid)) {
             return $xid;
         }
         $escapedName = pg_escape_string($newName);
-        $r = $this->dbc->query("
-            UPDATE {$this->treeTable}
-            SET name='$escapedName'
-            WHERE id=$oid
-        ");
-        if ($this->dbc->isError($r)) {
+        $sql = "UPDATE ".$CC_CONFIG['treeTable']." SET name='$escapedName' WHERE id=$oid";
+        $r = $CC_DBC->query($sql);
+        if (PEAR::isError($r)) {
             return $r;
         }
         return TRUE;
@@ -366,23 +321,25 @@ class M2tree {
      * 		searched name
      * @param int $parId
      * 		parent id (default is root node)
-     * @return mixed
-     * 		int/null/err - child id (if found) or null or PEAR::error
+     * @return int|null|PEAR_Error
+     *      Child id (if found) or null
      */
-    public function getObjId($name, $parId = null)
+    public static function GetObjId($name, $parId = null)
     {
+        global $CC_CONFIG;
+        global $CC_DBC;
         if ( ($name == '') && is_null($parId)) {
-            $name = $this->rootNodeName;
+            $name = $CC_CONFIG['RootNode'];
         }
         $escapedName = pg_escape_string($name);
         $parcond = (is_null($parId) ? "parid is null" :
             "parid='$parId' AND level=1");
-        $r = $this->dbc->getOne("
-            SELECT id FROM {$this->treeTable} t
-            LEFT JOIN {$this->structTable} s ON id=objid
+        $r = $CC_DBC->getOne("
+            SELECT id FROM ".$CC_CONFIG['treeTable']." t
+            LEFT JOIN ".$CC_CONFIG['structTable']." s ON id=objid
             WHERE name='$escapedName' AND $parcond"
         );
-        if ($this->dbc->isError($r)) {
+        if (PEAR::isError($r)) {
             return $r;
         }
         return $r;
@@ -395,16 +352,21 @@ class M2tree {
      * @param int $oid
      * @param string $fld
      * 		requested field (default: name)
-     * @return mixed
-     * 		string/err
+     * @return string|PEAR_Error
      */
-    public function getObjName($oid, $fld='name')
+    public static function GetObjName($p_oid, $p_fld='name')
     {
-        $r = $this->dbc->getOne("
-            SELECT $fld FROM {$this->treeTable}
-            WHERE id=$oid
-        ");
-        return $r;
+        global $CC_CONFIG;
+        global $CC_DBC;
+
+        if (is_numeric($p_oid)) {
+            $sql = "SELECT $p_fld FROM ".$CC_CONFIG['treeTable']
+                    ." WHERE id=$p_oid";
+            $r = $CC_DBC->getOne($sql);
+            return $r;
+        } else {
+            return new PEAR_Error("M2tree::GetObjType: invalid argument given for oid: '$p_oid'");
+        }
     } // fn getObjName
 
 
@@ -412,11 +374,15 @@ class M2tree {
      * Get object type by id.
      *
      * @param int $oid
-     * @return string/err
+     * @return string|PEAR_Error
      */
-    public function getObjType($oid)
+    public static function GetObjType($p_oid)
     {
-        return $this->getObjName($oid, 'type');
+        if (is_numeric($p_oid)) {
+            return M2tree::GetObjName($p_oid, 'type');
+        } else {
+            return new PEAR_Error("M2tree::GetObjType: invalid argument given for oid: '$p_oid'");
+        }
     } // fn getObjType
 
 
@@ -424,14 +390,18 @@ class M2tree {
      * Get parent id
      *
      * @param int $oid
-     * @return int/err
+     * @return int|PEAR_Error
      */
-    public function getParent($oid)
+    public static function GetParent($p_oid)
     {
-        $r = $this->dbc->getOne("
-            SELECT parid FROM {$this->structTable}
-            WHERE objid=$oid AND level=1
-        ");
+        global $CC_CONFIG;
+        global $CC_DBC;
+        $r = 0;
+        if (is_numeric($p_oid)) {
+            $sql = "SELECT parid FROM ".$CC_CONFIG['structTable']."
+                WHERE objid=$p_oid AND level=1";
+            $r = $CC_DBC->getOne($sql);
+        }
         return $r;
     } // fn getParent
 
@@ -443,26 +413,28 @@ class M2tree {
      * @param string $flds
      * @param boolean $withSelf
      * 		flag for include specified object to the path
-     * @return array/err
+     * @return array|PEAR_Error
      */
-    public function getPath($oid, $flds='id', $withSelf=TRUE)
+    public static function GetPath($oid, $flds='id', $withSelf=TRUE)
     {
-        $path = $this->dbc->getAll("
+        global $CC_CONFIG;
+        global $CC_DBC;
+        $path = $CC_DBC->getAll("
             SELECT $flds
-            FROM {$this->treeTable}
-            LEFT JOIN {$this->structTable} s ON id=parid
+            FROM ".$CC_CONFIG['treeTable']."
+            LEFT JOIN ".$CC_CONFIG['structTable']." s ON id=parid
             WHERE objid=$oid
             ORDER BY coalesce(level, 0) DESC
         ");
-        if ($this->dbc->isError($path)) {
+        if (PEAR::isError($path)) {
         	return $path;
         }
         if ($withSelf) {
-            $r = $this->dbc->getRow("
-                SELECT $flds FROM {$this->treeTable}
+            $r = $CC_DBC->getRow("
+                SELECT $flds FROM ".$CC_CONFIG['treeTable']."
                 WHERE id=$oid
             ");
-            if ($this->dbc->isError($r)) {
+            if (PEAR::isError($r)) {
             	return $r;
             }
             array_push($path, $r);
@@ -479,14 +451,16 @@ class M2tree {
      * 		comma separated list of requested fields
      * @param string $order
      * 		fieldname for order by clause
-     * @return array/err
+     * @return array|PEAR_Error
      */
-    public function getDir($oid, $flds='id', $order='name')
+    public static function GetDir($oid, $flds='id', $order='name')
     {
-        $r = $this->dbc->getAll("
+        global $CC_CONFIG;
+        global $CC_DBC;
+        $r = $CC_DBC->getAll("
             SELECT $flds
-            FROM {$this->treeTable}
-            INNER JOIN {$this->structTable} ON id=objid AND level=1
+            FROM ".$CC_CONFIG['treeTable']."
+            INNER JOIN ".$CC_CONFIG['structTable']." ON id=objid AND level=1
             WHERE parid=$oid
             ORDER BY $order
         ");
@@ -506,18 +480,20 @@ class M2tree {
      *      (if NULL - use root of whole tree)
      * @return hash-array with field name/value pairs
      */
-    public function getObjLevel($oid, $flds='level', $rootId=NULL)
+    public static function GetObjLevel($oid, $flds='level', $rootId=NULL)
     {
+        global $CC_CONFIG;
+        global $CC_DBC;
         if (is_null($rootId)) {
-            $rootId = $this->getRootNode();
+            $rootId = M2tree::GetRootNode();
         }
-        $re = $this->dbc->getRow("
+        $re = $CC_DBC->getRow("
             SELECT $flds
-            FROM {$this->treeTable}
-            LEFT JOIN {$this->structTable} s ON id=objid AND parid=$rootId
+            FROM ".$CC_CONFIG['treeTable']."
+            LEFT JOIN ".$CC_CONFIG['structTable']." s ON id=objid AND parid=$rootId
             WHERE id=$oid
         ");
-        if ($this->dbc->isError($re)) {
+        if (PEAR::isError($re)) {
             return $re;
         }
         $re['level'] = intval($re['level']);
@@ -534,35 +510,36 @@ class M2tree {
      * 		include/exclude specified node
      * @param int $rootId
      * 		root for relative levels
-     * @return mixed
-     * 		array/err
+     * @return array|PEAR_Error
      */
-    public function getSubTree($oid=NULL, $withRoot=FALSE, $rootId=NULL)
+    public static function GetSubTree($oid=NULL, $withRoot=FALSE, $rootId=NULL)
     {
-        if (is_null($oid)) $oid = $this->getRootNode();
-        if (is_null($rootId)) $rootId = $oid;
+        if (is_null($oid)) {
+            $oid = M2tree::GetRootNode();
+        }
+        if (is_null($rootId)) {
+            $rootId = $oid;
+        }
         $r = array();
         if ($withRoot) {
-            $r[] = $re = $this->getObjLevel($oid, 'id, name, level', $rootId);
+            $r[] = $re = M2tree::GetObjLevel($oid, 'id, name, level', $rootId);
         } else {
-            $re=NULL;
+            $re = NULL;
         }
-        if ($this->dbc->isError($re)) {
+        if (PEAR::isError($re)) {
             return $re;
         }
-        $dirarr = $this->getDir($oid, 'id, level');
-        if ($this->dbc->isError($dirarr)) {
+        $dirarr = M2tree::GetDir($oid, 'id, level');
+        if (PEAR::isError($dirarr)) {
             return $dirarr;
         }
         foreach ($dirarr as $k => $snod) {
-            $re = $this->getObjLevel($snod['id'], 'id, name, level', $rootId);
-            if ($this->dbc->isError($re)) {
+            $re = M2tree::GetObjLevel($snod['id'], 'id, name, level', $rootId);
+            if (PEAR::isError($re)) {
                 return $re;
             }
-#            $re['level'] = intval($re['level'])+1;
             $r[] = $re;
-            $r = array_merge($r,
-                $this->getSubTree($snod['id'], FALSE, $rootId));
+            $r = array_merge($r, M2tree::GetSubTree($snod['id'], FALSE, $rootId));
         }
         return $r;
     } // fn getSubTree
@@ -577,19 +554,19 @@ class M2tree {
      * 		object id of parent
      * @param boolean $indirect
      * 		test indirect or only direct relation
-     * @return boolean
+     * @return boolean|PEAR_Error
      */
-    public function isChildOf($oid, $parid, $indirect=FALSE)
+    public static function IsChildOf($oid, $parid, $indirect=FALSE)
     {
         if (!$indirect) {
-            $paridD = $this->getParent($oid);
-            if ($this->dbc->isError($paridD)) {
+            $paridD = M2tree::GetParent($oid);
+            if (PEAR::isError($paridD)) {
                 return $paridD;
             }
             return ($paridD == $parid);
         }
-        $path = $this->getPath($oid, 'id', FALSE);
-        if ($this->dbc->isError($path)) {
+        $path = M2tree::GetPath($oid, 'id', FALSE);
+        if (PEAR::isError($path)) {
             return $path;
         }
         $res = FALSE;
@@ -605,31 +582,32 @@ class M2tree {
     /**
      * Get id of root node
      *
-     * @return int/err
+     * @return int|PEAR_Error
      */
-    public function getRootNode()
+    public static function GetRootNode()
     {
-        return $this->getObjId($this->rootNodeName);
+        global $CC_CONFIG;
+        return M2tree::GetObjId($CC_CONFIG['RootNode']);
     } // fn getRootNode
 
 
     /**
      * Get all objects in the tree as array of hashes
      *
-     * @return array/err
+     * @return array|PEAR_Error
      */
-    public function getAllObjects()
+    public static function GetAllObjects()
     {
-        return $this->dbc->getAll(
-            "SELECT * FROM {$this->treeTable}"
-        );
+        global $CC_CONFIG;
+        global $CC_DBC;
+        return $CC_DBC->getAll("SELECT * FROM ".$CC_CONFIG['treeTable']);
     } // fn getAllObjects
 
 
     /* ------------------------ info methods related to application structure */
     /* (this part should be redefined in extended class to allow
      * defining/modifying/using application structure)
-     * (only very simple structure definition - in $config - supported now)
+     * (only very simple structure definition - in $CC_CONFIG - supported now)
      */
 
     /**
@@ -638,9 +616,10 @@ class M2tree {
      * @param string $type
      * @return array
      */
-    public function getAllowedChildTypes($type)
+    public static function GetAllowedChildTypes($type)
     {
-        return $this->config['objtypes'][$type];
+        global $CC_CONFIG;
+        return $CC_CONFIG['objtypes'][$type];
     } // fn getAllowedChildTypes
 
 
@@ -654,25 +633,27 @@ class M2tree {
      * 		object id
      * @return boolean
      */
-    private function _cutSubtree($oid)
+    private static function _cutSubtree($oid)
     {
-        $lvl = $this->getObjLevel($oid);
-        if ($this->dbc->isError($lvl)) {
+        global $CC_DBC;
+        global $CC_CONFIG;
+        $lvl = M2tree::GetObjLevel($oid);
+        if (PEAR::isError($lvl)) {
             return $lvl;
         }
         $lvl = $lvl['level'];
         // release downside structure
-        $r = $this->dbc->query("
-            DELETE FROM {$this->structTable}
+        $r = $CC_DBC->query("
+            DELETE FROM ".$CC_CONFIG['structTable']."
             WHERE rid IN (
-                SELECT s3.rid FROM {$this->structTable} s1
-                INNER JOIN {$this->structTable} s2 ON s1.objid=s2.objid
-                INNER JOIN {$this->structTable} s3 ON s3.objid=s1.objid
+                SELECT s3.rid FROM ".$CC_CONFIG['structTable']." s1
+                INNER JOIN ".$CC_CONFIG['structTable']." s2 ON s1.objid=s2.objid
+                INNER JOIN ".$CC_CONFIG['structTable']." s3 ON s3.objid=s1.objid
                 WHERE (s1.parid=$oid OR s1.objid=$oid)
                     AND s2.parid=1 AND s3.level>(s2.level-$lvl)
             )
         ");
-        if ($this->dbc->isError($r)) {
+        if (PEAR::isError($r)) {
             return $r;
         }
         return TRUE;
@@ -688,29 +669,31 @@ class M2tree {
      * 		destination object id
      * @return boolean
      */
-    private function _pasteSubtree($oid, $newParid)
+    private static function _pasteSubtree($oid, $newParid)
     {
+        global $CC_DBC;
+        global $CC_CONFIG;
         $dataArr = array();
         // build data ($dataArr) for INSERT:
-        foreach ($this->getSubTree($oid, TRUE) as $o) {
+        foreach (M2tree::GetSubTree($oid, TRUE) as $o) {
             $l = intval($o['level'])+1;
-            for ($p = $newParid; !is_null($p); $p=$this->getParent($p), $l++) {
-                $rid = $this->dbc->nextId("{$this->structTable}_id_seq");
-                if ($this->dbc->isError($rid)) {
+            for ($p = $newParid; !is_null($p); $p = M2tree::GetParent($p), $l++) {
+                $rid = $CC_DBC->nextId($CC_CONFIG['structTable']."_id_seq");
+                if (PEAR::isError($rid)) {
                     return $rid;
                 }
                 $dataArr[] = array($rid, $o['id'], $p, $l);
             }
         }
         // build and prepare INSERT command automatically:
-        $pr = $this->dbc->autoPrepare($this->structTable,
+        $pr = $CC_DBC->autoPrepare($CC_CONFIG['structTable'],
             array('rid', 'objid', 'parid', 'level'), DB_AUTOQUERY_INSERT);
-        if ($this->dbc->isError($pr)) {
+        if (PEAR::isError($pr)) {
             return $pr;
         }
         // execute INSERT command for $dataArr:
-        $r = $this->dbc->executeMultiple($pr, $dataArr);
-        if ($this->dbc->isError($r)) {
+        $r = $CC_DBC->executeMultiple($pr, $dataArr);
+        if (PEAR::isError($r)) {
             return $r;
         }
         return TRUE;
@@ -720,21 +703,22 @@ class M2tree {
     /**
      * Do SQL rollback and return PEAR::error
      *
-     * @param object/string $r
+     * @param object|string $r
      * 		error object or error message
-     * @return err
+     * @return PEAR_Error
      */
-    private function _dbRollback($r)
+    private static function _dbRollback($r)
     {
-        $this->dbc->query("ROLLBACK");
-        if ($this->dbc->isError($r)) {
+        global $CC_DBC;
+        $CC_DBC->query("ROLLBACK");
+        if (PEAR::isError($r)) {
             return $r;
         } elseif (is_string($r)) {
-            $msg = basename(__FILE__)."::".get_class($this).": $r";
+            $msg = basename(__FILE__)."::M2tree: $r";
         } else {
-            $msg = basename(__FILE__)."::".get_class($this).": unknown error";
+            $msg = basename(__FILE__)."::M2tree: unknown error";
         }
-        return $this->dbc->raiseError($msg, ALIBERR_MTREE, PEAR_ERROR_RETURN);
+        return $CC_DBC->raiseError($msg, ALIBERR_MTREE, PEAR_ERROR_RETURN);
     } // fn _dbRollback
 
 
@@ -751,12 +735,12 @@ class M2tree {
      * 		actual indentation
      * @return string
      */
-    public function dumpTree($oid=NULL, $indstr='    ', $ind='',
+    public static function DumpTree($oid=NULL, $indstr='    ', $ind='',
         $format='{name}({id})', $withRoot=TRUE)
     {
         $r='';
-        foreach ($st = $this->getSubTree($oid, $withRoot) as $o) {
-            if ($this->dbc->isError($st)) {
+        foreach ($st = M2tree::GetSubTree($oid, $withRoot) as $o) {
+            if (PEAR::isError($st)) {
                 return $st;
             }
             $r .= $ind.str_repeat($indstr, $o['level']).
@@ -772,145 +756,149 @@ class M2tree {
      * Create tables + initialize root node
      * @return err/void
      */
-    public function install()
-    {
-        $r = $this->dbc->query("BEGIN");
-        if (PEAR::isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE TABLE {$this->treeTable} (
-            id int not null PRIMARY KEY,
-            name varchar(255) not null default'',
-            -- parid int,
-            type varchar(255) not null default'',
-            param varchar(255)
-        )");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->createSequence("{$this->treeTable}_id_seq");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE UNIQUE INDEX {$this->treeTable}_id_idx
-            ON {$this->treeTable} (id)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE INDEX {$this->treeTable}_name_idx
-            ON {$this->treeTable} (name)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-
-        $r = $this->dbc->query("CREATE TABLE {$this->structTable} (
-            rid int not null PRIMARY KEY,
-            objid int not null REFERENCES {$this->treeTable} ON DELETE CASCADE,
-            parid int not null REFERENCES {$this->treeTable} ON DELETE CASCADE,
-            level int
-        )");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->createSequence("{$this->structTable}_id_seq");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE UNIQUE INDEX {$this->structTable}_rid_idx
-            ON {$this->structTable} (rid)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE INDEX {$this->structTable}_objid_idx
-            ON {$this->structTable} (objid)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE INDEX {$this->structTable}_parid_idx
-            ON {$this->structTable} (parid)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("CREATE INDEX {$this->structTable}_level_idx
-            ON {$this->structTable} (level)");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("
-            CREATE UNIQUE INDEX {$this->structTable}_objid_level_idx
-            ON {$this->structTable} (objid, level)
-        ");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("
-            CREATE UNIQUE INDEX {$this->structTable}_objid_parid_idx
-            ON {$this->structTable} (objid, parid)
-        ");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-
-        $oid = $this->dbc->nextId("{$this->treeTable}_id_seq");
-        if ($this->dbc->isError($oid)) {
-            return $oid;
-        }
-        $r = $this->dbc->query("
-            INSERT INTO {$this->treeTable}
-                (id, name, type)
-            VALUES
-                ($oid, '{$this->rootNodeName}', 'RootNode')
-        ");
-        if ($this->dbc->isError($r)) {
-            return $r;
-        }
-        $r = $this->dbc->query("COMMIT");
-        if (PEAR::isError($r)) {
-            return $r;
-        }
-    } // fn install
+//    public function install()
+//    {
+//        $r = $CC_DBC->query("BEGIN");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE TABLE {$this->treeTable} (
+//            id int not null PRIMARY KEY,
+//            name varchar(255) not null default'',
+//            -- parid int,
+//            type varchar(255) not null default'',
+//            param varchar(255)
+//        )");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->createSequence("{$this->treeTable}_id_seq");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE UNIQUE INDEX {$this->treeTable}_id_idx
+//            ON {$this->treeTable} (id)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE INDEX {$this->treeTable}_name_idx
+//            ON {$this->treeTable} (name)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//
+//        $r = $CC_DBC->query("CREATE TABLE {$this->structTable} (
+//            rid int not null PRIMARY KEY,
+//            objid int not null REFERENCES {$this->treeTable} ON DELETE CASCADE,
+//            parid int not null REFERENCES {$this->treeTable} ON DELETE CASCADE,
+//            level int
+//        )");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->createSequence("{$this->structTable}_id_seq");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE UNIQUE INDEX {$this->structTable}_rid_idx
+//            ON {$this->structTable} (rid)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE INDEX {$this->structTable}_objid_idx
+//            ON {$this->structTable} (objid)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE INDEX {$this->structTable}_parid_idx
+//            ON {$this->structTable} (parid)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("CREATE INDEX {$this->structTable}_level_idx
+//            ON {$this->structTable} (level)");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("
+//            CREATE UNIQUE INDEX {$this->structTable}_objid_level_idx
+//            ON {$this->structTable} (objid, level)
+//        ");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("
+//            CREATE UNIQUE INDEX {$this->structTable}_objid_parid_idx
+//            ON {$this->structTable} (objid, parid)
+//        ");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//
+//        $oid = $CC_DBC->nextId("{$this->treeTable}_id_seq");
+//        if (PEAR::isError($oid)) {
+//            return $oid;
+//        }
+//        $r = $CC_DBC->query("
+//            INSERT INTO {$this->treeTable}
+//                (id, name, type)
+//            VALUES
+//                ($oid, '{$this->rootNodeName}', 'RootNode')
+//        ");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//        $r = $CC_DBC->query("COMMIT");
+//        if (PEAR::isError($r)) {
+//            return $r;
+//        }
+//    } // fn install
 
 
     /**
      * Drop all tables and sequences.
      * @return void
      */
-    public function uninstall()
-    {
-        $this->dbc->query("DROP TABLE {$this->structTable}");
-        $this->dbc->dropSequence("{$this->structTable}_id_seq");
-        $this->dbc->query("DROP TABLE {$this->treeTable}");
-        $this->dbc->dropSequence("{$this->treeTable}_id_seq");
-    } // fn uninstall
+//    public function uninstall()
+//    {
+//        global $CC_DBC;
+//        global $CC_CONFIG;
+//        $CC_DBC->query("DROP TABLE ".$CC_CONFIG['structTable']);
+//        $CC_DBC->dropSequence($CC_CONFIG['structTable']."_id_seq");
+//        $CC_DBC->query("DROP TABLE ".$CC_CONFIG['treeTable']);
+//        $CC_DBC->dropSequence($CC_CONFIG['treeTable']."_id_seq");
+//    } // fn uninstall
 
 
     /**
      * Uninstall and install.
      * @return void
      */
-    public function reinstall()
-    {
-        $this->uninstall();
-        $this->install();
-    } // fn reinstall
+//    public function reinstall()
+//    {
+//        $this->uninstall();
+//        $this->install();
+//    } // fn reinstall
 
 
     /**
      * Clean up tree - delete all except the root node.
-     * @return err/void
+     * @return void|PEAR_Error
      */
-    public function reset()
+    public static function reset()
     {
-        $rid = $this->getRootNode();
-        if ($this->dbc->isError($rid)) {
+        global $CC_DBC;
+        global $CC_CONFIG;
+        $rid = M2tree::GetRootNode();
+        if (PEAR::isError($rid)) {
             return $rid;
         }
-        $r = $this->dbc->query("DELETE FROM {$this->structTable}");
-        if ($this->dbc->isError($r)) {
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['structTable']);
+        if (PEAR::isError($r)) {
             return $r;
         }
-        $r = $this->dbc->query("DELETE FROM {$this->treeTable} WHERE id<>$rid");
-        if ($this->dbc->isError($r)) {
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['treeTable']." WHERE id<>$rid");
+        if (PEAR::isError($r)) {
             return $r;
         }
     } // fn reset
@@ -922,10 +910,12 @@ class M2tree {
      *
      * @return array
      */
-    public function test()
+    public static function Test()
     {
-        require_once "m2treeTest.php";
-        $mt = new M2treeTest($this->dbc, $this->config);
+        global $CC_DBC;
+        global $CC_CONFIG;
+        require_once("m2treeTest.php");
+        $mt = new M2treeTest($CC_DBC, $CC_CONFIG);
         $r = $mt->_test();
         return $r;
     } // fn test
@@ -937,20 +927,21 @@ class M2tree {
      *
      * @return array
      */
-    public function testData()
+    public static function TestData()
     {
-        $o['root'] = $this->getRootNode();
-        $o['pa'] = $this->addObj('Publication A', 'Publication', $o['root']);
-        $o['i1'] = $this->addObj('Issue 1', 'Issue', $o['pa']);
-        $o['s1a'] = $this->addObj('Section a', 'Section', $o['i1']);
-        $o['s1b'] = $this->addObj('Section b', 'Section', $o['i1']);
-        $o['i2'] = $this->addObj('Issue 2', 'Issue', $o['pa']);
-        $o['s2a'] = $this->addObj('Section a', 'Section', $o['i2']);
-        $o['s2b'] = $this->addObj('Section b', 'Section', $o['i2']);
-        $o['t1'] = $this->addObj('Title', 'Title', $o['s2b']);
-        $o['s2c'] = $this->addObj('Section c', 'Section', $o['i2']);
-        $o['pb'] = $this->addObj('Publication B', 'Publication', $o['root']);
-        $this->tdata['tree'] = $o;
+        $o['root'] = M2tree::GetRootNode();
+        $o['pa'] = M2tree::AddObj('Publication A', 'Publication', $o['root']);
+        $o['i1'] = M2tree::AddObj('Issue 1', 'Issue', $o['pa']);
+        $o['s1a'] = M2tree::AddObj('Section a', 'Section', $o['i1']);
+        $o['s1b'] = M2tree::AddObj('Section b', 'Section', $o['i1']);
+        $o['i2'] = M2tree::AddObj('Issue 2', 'Issue', $o['pa']);
+        $o['s2a'] = M2tree::AddObj('Section a', 'Section', $o['i2']);
+        $o['s2b'] = M2tree::AddObj('Section b', 'Section', $o['i2']);
+        $o['t1'] = M2tree::AddObj('Title', 'Title', $o['s2b']);
+        $o['s2c'] = M2tree::AddObj('Section c', 'Section', $o['i2']);
+        $o['pb'] = M2tree::AddObj('Publication B', 'Publication', $o['root']);
+        $tdata['tree'] = $o;
+        return $tdata;
     } // fn testData
 
 } // class M2Tree
diff --git a/campcaster/src/modules/alib/var/ObjClasses.php b/campcaster/src/modules/alib/var/ObjClasses.php
index add9261c5..34fc103a2 100644
--- a/campcaster/src/modules/alib/var/ObjClasses.php
+++ b/campcaster/src/modules/alib/var/ObjClasses.php
@@ -15,33 +15,18 @@ require_once("M2tree.php");
  * @license http://www.gnu.org/licenses/gpl.txt
  * @link http://www.campware.org
  */
-class ObjClasses extends M2tree {
-	/**
-	 * The name of the database table ("PREFIXclasses")
-	 *
-	 * @var string
-	 */
-    public $classTable;
-
-    /**
-     * The name of a database table ("PREFIXcmemb")
-     *
-     * @var string
-     */
-    public $cmembTable;
-
+class ObjClasses {
+//class ObjClasses extends M2tree {
 
     /**
      * @param object $dbc
      * @param array $config
      * @return this
      */
-    public function __construct(&$dbc, $config)
-    {
-        parent::__construct($dbc, $config);
-        $this->classTable = $config['tblNamePrefix'].'classes';
-        $this->cmembTable = $config['tblNamePrefix'].'cmemb';
-    }
+//    public function __construct(&$dbc, $config)
+//    {
+//        parent::__construct($dbc, $config);
+//    }
 
 
     /* ======================================================= public methods */
@@ -50,16 +35,17 @@ class ObjClasses extends M2tree {
      * Add new class of objects
      *
      * @param string $cname
-     * @return id/error
+     * @return id|PEAR_Error
      */
-    public function addClass($cname)
+    public static function AddClass($cname)
     {
-        $id = $this->dbc->nextId("{$this->treeTable}_id_seq");
+        global $CC_CONFIG, $CC_DBC;
+        $id = $CC_DBC->nextId($CC_CONFIG['treeTable']."_id_seq");
         if (PEAR::isError($id)) {
         	return $id;
         }
-        $r = $this->dbc->query("
-            INSERT INTO {$this->classTable} (id, cname)
+        $r = $CC_DBC->query("
+            INSERT INTO ".$CC_CONFIG['classTable']." (id, cname)
             VALUES ($id, '$cname')
         ");
         if (PEAR::isError($r)) {
@@ -73,32 +59,33 @@ class ObjClasses extends M2tree {
      * Remove class by name
      *
      * @param string $cname
-     * @return boolean/err
+     * @return boolean|PEAR_Error
      */
-    public function removeClass($cname)
-    {
-        $cid = $this->getClassId($cname);
-        if (PEAR::isError($cid)) {
-        	return($cid);
-        }
-        return $this->removeClassById($cid);
-    }
+//    public static function RemoveClass($cname)
+//    {
+//        $cid = ObjClasses::GetClassId($cname);
+//        if (PEAR::isError($cid)) {
+//        	return($cid);
+//        }
+//        return ObjClasses::RemoveClassById($cid);
+//    }
 
 
     /**
      * Remove class by id
      *
      * @param int $cid
-     * @return boolean/err
+     * @return boolean|PEAR_Error
      */
-    public function removeClassById($cid)
+    public static function RemoveClassById($cid)
     {
-        $r = $this->dbc->query("DELETE FROM {$this->cmembTable}
+        global $CC_CONFIG, $CC_DBC;        
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['cmembTable']."
             WHERE cid=$cid");
         if (PEAR::isError($r)) {
         	return $r;
         }
-        $r = $this->dbc->query("DELETE FROM {$this->classTable}
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['classTable']."
             WHERE id=$cid");
         if (PEAR::isError($r)) {
         	return $r;
@@ -112,11 +99,12 @@ class ObjClasses extends M2tree {
      *
      * @param int $cid
      * @param int $oid
-     * @return boolean/err
+     * @return TRUE|PEAR_Error
      */
-    public function addObj2Class($cid, $oid)
+    public static function AddObjectToClass($cid, $oid)
     {
-        $r = $this->dbc->query("INSERT INTO {$this->cmembTable} (cid, objid)
+        global $CC_CONFIG, $CC_DBC;
+        $r = $CC_DBC->query("INSERT INTO ".$CC_CONFIG['cmembTable']." (cid, objid)
             VALUES ($cid, $oid)");
         if (PEAR::isError($r)) {
         	return $r;
@@ -129,12 +117,13 @@ class ObjClasses extends M2tree {
      * Remove object from class
      *
      * @param int $oid
-     * @param int $cid, optional, default: remove obj from all classes
-     * @return boolean/err
+     * @param int $cid, default: remove obj from all classes
+     * @return TRUE|PEAR_Error
      */
-    public function removeObjFromClass($oid, $cid=NULL)
+    public static function RemoveObjectFromClass($oid, $cid=NULL)
     {
-        $r = $this->dbc->query("DELETE FROM {$this->cmembTable}
+        global $CC_CONFIG, $CC_DBC;
+        $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['cmembTable']."
             WHERE objid=$oid".(is_null($cid)? '':" AND cid=$cid"));
         if (PEAR::isError($r)) {
         	return $r;
@@ -149,15 +138,15 @@ class ObjClasses extends M2tree {
      * Remove object from all classes and remove object itself
      *
      * @param int $id
-     * @return boolean/err
+     * @return boolean|PEAR_Error
      */
-    public function removeObj($id)
+    public static function RemoveObj($id)
     {
-        $r = $this->removeObjFromClass($id);
+        $r = ObjClasses::RemoveObjectFromClass($id);
         if (PEAR::isError($r)) {
         	return $r;
         }
-        return parent::removeObj($id);
+        return M2tree::RemoveObj($id);
     }
 
 
@@ -167,12 +156,13 @@ class ObjClasses extends M2tree {
      * Get class id from name
      *
      * @param string $cname
-     * @return int/err
+     * @return int|PEAR_Error
      */
-    public function getClassId($cname)
+    public static function GetClassId($cname)
     {
+        global $CC_CONFIG, $CC_DBC;
         $cname = pg_escape_string($cname);
-        return $this->dbc->getOne($query = "SELECT id FROM {$this->classTable}
+        return $CC_DBC->getOne($query = "SELECT id FROM ".$CC_CONFIG['classTable']."
             WHERE cname='$cname'");
     }
 
@@ -181,12 +171,13 @@ class ObjClasses extends M2tree {
      * Get class name from id
      *
      * @param int $id
-     * @return string/err
+     * @return string|PEAR_Error
      */
-    public function getClassName($id)
+    public static function GetClassName($id)
     {
-        return $this->dbc->getOne(
-            $query = "SELECT cname FROM {$this->classTable} WHERE id=$id");
+        global $CC_DBC, $CC_CONFIG;        
+        $sql = "SELECT cname FROM ".$CC_CONFIG['classTable']." WHERE id=$id";
+        return $CC_DBC->getOne($sql);
     }
 
 
@@ -194,11 +185,12 @@ class ObjClasses extends M2tree {
      * Return true is object is class
      *
      * @param int $id
-     * @return boolean/err
+     * @return boolean|PEAR_Error
      */
-    public function isClass($id)
+    public static function IsClass($id)
     {
-        $r = $this->dbc->getOne("SELECT count(*) FROM {$this->classTable}
+        global $CC_CONFIG, $CC_DBC;
+        $r = $CC_DBC->getOne("SELECT count(*) FROM ".$CC_CONFIG['classTable']."
             WHERE id=$id");
         if (PEAR::isError($r)) {
         	return $r;
@@ -210,11 +202,12 @@ class ObjClasses extends M2tree {
     /**
      * Return all classes
      *
-     * @return array/err
+     * @return array|PEAR_Error
      */
-    public function getClasses()
+    public static function GetClasses()
     {
-        return $this->dbc->getAll("SELECT * FROM {$this->classTable}");
+        global $CC_CONFIG, $CC_DBC;
+        return $CC_DBC->getAll("SELECT * FROM ".$CC_CONFIG['classTable']);
     }
 
 
@@ -222,12 +215,13 @@ class ObjClasses extends M2tree {
      * Return all objects in class
      *
      * @param int $id
-     * @return array/err
+     * @return array|PEAR_Error
      */
-    public function listClass($id)
+    public static function ListClass($id)
     {
-        return $this->dbc->getAll("
-            SELECT t.* FROM {$this->cmembTable} cm, {$this->treeTable} t
+        global $CC_CONFIG, $CC_DBC;        
+        return $CC_DBC->getAll("
+            SELECT t.* FROM ".$CC_CONFIG['cmembTable']." cm, ".$CC_CONFIG['treeTable']." t
             WHERE cm.cid=$id AND cm.objid=t.id");
     }
 
@@ -243,13 +237,14 @@ class ObjClasses extends M2tree {
      * 		actual indentation
      * @return string
      */
-    public function dumpClasses($indstr='    ', $ind='')
+    public static function DumpClasses($indstr='    ', $ind='')
     {
+        global $CC_CONFIG, $CC_DBC;
         $r = $ind.join(', ', array_map(
             create_function('$v', 'return "{$v[\'cname\']} ({$v[\'cnt\']})";'),
-            $this->dbc->getAll("
-                SELECT cname, count(cm.objid)as cnt FROM {$this->classTable} c
-                LEFT JOIN {$this->cmembTable} cm ON c.id=cm.cid
+            $CC_DBC->getAll("
+                SELECT cname, count(cm.objid)as cnt FROM ".$CC_CONFIG['classTable']." c
+                LEFT JOIN ".$CC_CONFIG['cmembTable']." cm ON c.id=cm.cid
                 GROUP BY cname, c.id ORDER BY c.id
             ")
         ))."\n";
@@ -258,14 +253,15 @@ class ObjClasses extends M2tree {
 
 
     /**
-     * Delete all classes and membeship records
+     * Delete all classes and membership records.
      * @return void
      */
-    public function deleteData()
+    public static function DeleteData()
     {
-        $this->dbc->query("DELETE FROM {$this->cmembTable}");
-        $this->dbc->query("DELETE FROM {$this->classTable}");
-        parent::reset();
+        global $CC_CONFIG, $CC_DBC;
+        $CC_DBC->query("DELETE FROM ".$CC_CONFIG['cmembTable']);
+        $CC_DBC->query("DELETE FROM ".$CC_CONFIG['classTable']);
+        M2tree::reset();
     }
 
 
@@ -273,16 +269,17 @@ class ObjClasses extends M2tree {
      * Insert test data
      *
      */
-    public function testData()
+    public static function TestData()
     {
-        parent::testData();
-        $o['cl_sa'] = $this->addClass('Sections a');
-        $o['cl2'] = $this->addClass('Class 2');
-        $this->addObj2Class($o['cl_sa'], $this->tdata['tree']['s1a']);
-        $this->addObj2Class($o['cl_sa'], $this->tdata['tree']['s2a']);
-        $this->addObj2Class($o['cl2'], $this->tdata['tree']['t1']);
-        $this->addObj2Class($o['cl2'], $this->tdata['tree']['pb']);
-        $this->tdata['classes'] = $o;
+        $tdata = M2tree::testData();
+        $o['cl_sa'] = ObjClasses::AddClass('Sections a');
+        $o['cl2'] = ObjClasses::AddClass('Class 2');
+        ObjClasses::AddObjectToClass($o['cl_sa'], $tdata['tree']['s1a']);
+        ObjClasses::AddObjectToClass($o['cl_sa'], $tdata['tree']['s2a']);
+        ObjClasses::AddObjectToClass($o['cl2'], $tdata['tree']['t1']);
+        ObjClasses::AddObjectToClass($o['cl2'], $tdata['tree']['pb']);
+        $tdata['classes'] = $o;
+        return $tdata;
     }
 
 
@@ -290,28 +287,30 @@ class ObjClasses extends M2tree {
      * Make basic test
      *
      */
-    public function test()
+    public static function Test()
     {
-        if (PEAR::isError($p = parent::test())) {
+        $p = M2tree::test();
+        if (PEAR::isError($p)) {
         	return $p;
         }
-        $this->deleteData();
-        $this->testData();
-        $this->test_correct = "Sections a (2), Class 2 (2)\n";
-        $this->test_dump = $this->dumpClasses();
-        $this->removeClass('Sections a');
-        $this->removeObjFromClass($this->tdata['tree']['pb'],
-            $this->tdata['classes']['cl2']);
-        $this->test_correct .= "Class 2 (1)\n";
-        $this->test_dump .= $this->dumpClasses();
-        $this->deleteData();
-        if ($this->test_dump==$this->test_correct) {
-            $this->test_log.="class: OK\n"; return TRUE;
+        ObjClasses::DeleteData();
+        ObjClasses::TestData();
+        $test_correct = "Sections a (2), Class 2 (2)\n";
+        $test_dump = ObjClasses::DumpClasses();
+        //$this->removeClass('Sections a');
+        ObjClasses::RemoveObjectFromClass($tdata['tree']['pb'],
+            $tdata['classes']['cl2']);
+        $test_correct .= "Class 2 (1)\n";
+        $test_dump .= ObjClasses::DumpClasses();
+        ObjClasses::DeleteData();
+        if ($test_dump == $test_correct) {
+            $test_log .= "class: OK\n"; 
+            return TRUE;
         } else {
         	return PEAR::raiseError(
-            'ObjClasses::test:', 1, PEAR_ERROR_DIE, '%s'.
-            "
\ncorrect:\n{$this->test_correct}\n".
-            "dump:\n{$this->test_dump}\n
\n"); + 'ObjClasses::test:', 1, PEAR_ERROR_DIE, '%s'. + "
\ncorrect:\n{$test_correct}\n".
+                "dump:\n{$test_dump}\n
\n"); } } @@ -320,36 +319,37 @@ class ObjClasses extends M2tree { * Create tables + initialize * */ - public function install() - { - parent::install(); - $this->dbc->query("CREATE TABLE {$this->classTable} ( - id int not null PRIMARY KEY, - cname varchar(20) - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->classTable}_id_idx - ON {$this->classTable} (id)"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->classTable}_cname_idx - ON {$this->classTable} (cname)"); - - $this->dbc->query("CREATE TABLE {$this->cmembTable} ( - objid int not null, - cid int not null - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->cmembTable}_idx - ON {$this->cmembTable} (objid, cid)"); - } +// public function install() +// { +// parent::install(); +// $CC_DBC->query("CREATE TABLE {$this->classTable} ( +// id int not null PRIMARY KEY, +// cname varchar(20) +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->classTable}_id_idx +// ON {$this->classTable} (id)"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->classTable}_cname_idx +// ON {$this->classTable} (cname)"); +// +// $CC_DBC->query("CREATE TABLE {$this->cmembTable} ( +// objid int not null, +// cid int not null +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->cmembTable}_idx +// ON {$this->cmembTable} (objid, cid)"); +// } /** * Drop tables etc. * */ - public function uninstall() - { - $this->dbc->query("DROP TABLE {$this->classTable}"); - $this->dbc->query("DROP TABLE {$this->cmembTable}"); - parent::uninstall(); - } +// public static function Uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['classTable']); +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['cmembTable']); +// parent::uninstall(); +// } } // class ObjClasses ?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/Subjects.php b/campcaster/src/modules/alib/var/Subjects.php index b97b03dae..39ae52e4e 100644 --- a/campcaster/src/modules/alib/var/Subjects.php +++ b/campcaster/src/modules/alib/var/Subjects.php @@ -21,21 +21,8 @@ define('ALIBERR_BADSMEMB', 21); * @see ObjClasses * @see Alib */ -class Subjects extends ObjClasses { - /** - * The name of the 'Subjects' database table. - * - * @var string - */ - public $subjTable; - - /** - * The name of a database table. - * - * @var string - */ - public $smembTable; - +class Subjects { +//class Subjects extends ObjClasses { /** * Constructor @@ -44,12 +31,10 @@ class Subjects extends ObjClasses { * @param array $config * @return this */ - public function __construct(&$dbc, $config) - { - parent::__construct($dbc, $config); - $this->subjTable = $config['tblNamePrefix'].'subjs'; - $this->smembTable = $config['tblNamePrefix'].'smemb'; - } // constructor +// public function __construct(&$dbc, $config) +// { +// parent::__construct($dbc, $config); +// } // constructor /* ======================================================= public methods */ @@ -57,30 +42,31 @@ class Subjects extends ObjClasses { /** * Add new subject * - * @param string $login - * @param string $pass - * @param string $realname - * @param boolean $passenc + * @param string $p_login + * @param string $p_pass + * @param string $p_realname + * @param boolean $p_passenc * password already encrypted if true - * @return int/err + * @return int|PEAR_Error */ - public function addSubj($login, $pass=NULL, $realname='', $passenc=FALSE) + public static function AddSubj($p_login, $p_pass=NULL, $p_realname='', $p_passenc=FALSE) { - if(!$login) { - return $this->dbc->raiseError(get_class($this)."::addSubj: empty login"); + global $CC_CONFIG, $CC_DBC; + if (!$p_login) { + return $CC_DBC->raiseError("Subjects::AddSubj: empty login"); } - $id = $this->dbc->nextId("{$this->subjTable}_id_seq"); + $id = $CC_DBC->nextId($CC_CONFIG['subjTable']."_id_seq"); if (PEAR::isError($id)) { return $id; } - if (!is_null($pass) && !$passenc) { - $pass = md5($pass); + if (!is_null($p_pass) && !$p_passenc) { + $p_pass = md5($p_pass); } - $sql = "INSERT INTO {$this->subjTable} (id, login, pass, type, realname) - VALUES ($id, '$login', ". - (is_null($pass) ? "'!', 'G'" : "'$pass', 'U'").", - '$realname')"; - $r = $this->dbc->query($sql); + $sql = "INSERT INTO ".$CC_CONFIG['subjTable']." (id, login, pass, type, realname) + VALUES ($id, '$p_login', ". + (is_null($p_pass) ? "'!', 'G'" : "'$p_pass', 'U'").", + '$p_realname')"; + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } @@ -94,29 +80,30 @@ class Subjects extends ObjClasses { * @param string $login * @param int $uid * optional, default: null - * @return boolean/err + * @return boolean|PEAR_Error */ - public function removeSubj($login, $uid=NULL) + public static function RemoveSubj($login, $uid=NULL) { + global $CC_CONFIG, $CC_DBC; if (is_null($uid)) { - $uid = $this->getSubjId($login); + $uid = Subjects::GetSubjId($login); } if (PEAR::isError($uid)) { return $uid; } - $sql = "DELETE FROM {$this->smembTable} + $sql = "DELETE FROM ".$CC_CONFIG['smembTable']." WHERE (uid='$uid' OR gid='$uid') AND mid is null"; - $r = $this->dbc->query($sql); + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } - $sql2 = "DELETE FROM {$this->subjTable} + $sql2 = "DELETE FROM ".$CC_CONFIG['subjTable']." WHERE login='$login'"; - $r = $this->dbc->query($sql2); + $r = $CC_DBC->query($sql2); if (PEAR::isError($r)) { return $r; } - return $this->_rebuildRels(); + return Subjects::_rebuildRels(); } // fn removeSubj @@ -126,14 +113,15 @@ class Subjects extends ObjClasses { * @param string $login * @param string $pass * optional - * @return boolean/int/err + * @return boolean|int|PEAR_Error */ - public function authenticate($login, $pass='') + public static function Authenticate($login, $pass='') { + global $CC_CONFIG, $CC_DBC; $cpass = md5($pass); - $sql = "SELECT id FROM {$this->subjTable} + $sql = "SELECT id FROM ".$CC_CONFIG['subjTable']." WHERE login='$login' AND pass='$cpass' AND type='U'"; - $id = $this->dbc->getOne($sql); + $id = $CC_DBC->getOne($sql); if (PEAR::isError($id)) { return $id; } @@ -147,14 +135,15 @@ class Subjects extends ObjClasses { * @param string $login * @param boolean $failed * true=> set lastfail, false=> set lastlogin - * @return boolean/int/err + * @return boolean|int|PEAR_Error */ - public function setTimeStamp($login, $failed=FALSE) + public static function SetTimeStamp($login, $failed=FALSE) { + global $CC_CONFIG, $CC_DBC; $fld = ($failed ? 'lastfail' : 'lastlogin'); - $sql = "UPDATE {$this->subjTable} SET $fld=now() + $sql = "UPDATE ".$CC_CONFIG['subjTable']." SET $fld=now() WHERE login='$login'"; - $r = $this->dbc->query($sql); + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } @@ -172,10 +161,11 @@ class Subjects extends ObjClasses { * optional * @param boolean $passenc * optional, password already encrypted if true - * @return boolean/err + * @return boolean|PEAR_Error */ - public function passwd($login, $oldpass=null, $pass='', $passenc=FALSE) + public static function Passwd($login, $oldpass=null, $pass='', $passenc=FALSE) { + global $CC_CONFIG, $CC_DBC; if (!$passenc) { $cpass = md5($pass); } else { @@ -187,9 +177,9 @@ class Subjects extends ObjClasses { } else { $oldpCond = ''; } - $sql = "UPDATE {$this->subjTable} SET pass='$cpass' + $sql = "UPDATE ".$CC_CONFIG['subjTable']." SET pass='$cpass' WHERE login='$login' $oldpCond AND type='U'"; - $r = $this->dbc->query($sql); + $r = $CC_DBC->query($sql); if (PEAR::isError($r)) { return $r; } @@ -205,19 +195,19 @@ class Subjects extends ObjClasses { * * @param string $login * @param string $gname - * @return int/err + * @return int|PEAR_Error */ - public function addSubj2Gr($login, $gname) + public static function AddSubjectToGroup($login, $gname) { - $uid = $this->getSubjId($login); + $uid = Subjects::GetSubjId($login); if (PEAR::isError($uid)) { return $uid; } - $gid = $this->getSubjId($gname); + $gid = Subjects::GetSubjId($gname); if (PEAR::isError($gid)) { return $gid; } - $isgr = $this->isGroup($gid); + $isgr = Subjects::IsGroup($gid); if (PEAR::isError($isgr)) { return $isgr; } @@ -225,17 +215,17 @@ class Subjects extends ObjClasses { return PEAR::raiseError("Subjects::addSubj2Gr: Not a group ($gname)", ALIBERR_NOTGR); } // add subject and all [in]direct members to group $gname: - $mid = $this->_plainAddSubj2Gr($uid, $gid); + $mid = Subjects::_plainAddSubjectToGroup($uid, $gid); if (PEAR::isError($mid)) { return $mid; } // add it to all groups where $gname is [in]direct member: - $marr = $this->_listRMemb($gid); + $marr = Subjects::_listRMemb($gid); if (PEAR::isError($marr)) { return $marr; } - foreach($marr as $k=>$v){ - $r = $this->_plainAddSubj2Gr( + foreach ($marr as $k => $v) { + $r = Subjects::_plainAddSubjectToGroup( $uid, $v['gid'], intval($v['level'])+1, $v['id']); if (PEAR::isError($r)) { return $r; @@ -250,21 +240,22 @@ class Subjects extends ObjClasses { * * @param string $login * @param string $gname - * @return boolean/err + * @return boolean|PEAR_Error */ - public function removeSubjFromGr($login, $gname) + public static function RemoveSubjectFromGroup($login, $gname) { - $uid = $this->getSubjId($login); + global $CC_CONFIG, $CC_DBC; + $uid = Subjects::GetSubjId($login); if (PEAR::isError($uid)) { return $uid; } - $gid = $this->getSubjId($gname); + $gid = Subjects::GetSubjId($gname); if (PEAR::isError($gid)) { return $gid; } - $sql = "SELECT id FROM {$this->smembTable} + $sql = "SELECT id FROM ".$CC_CONFIG['smembTable']." WHERE uid='$uid' AND gid='$gid' AND mid is null"; - $mid = $this->dbc->getOne($sql); + $mid = $CC_DBC->getOne($sql); if (is_null($mid)) { return FALSE; } @@ -272,12 +263,12 @@ class Subjects extends ObjClasses { return $mid; } // remove it: - $r = $this->_removeMemb($mid); + $r = Subjects::_removeMemb($mid); if (PEAR::isError($r)) { return $r; } // and rebuild indirect memberships: - $r = $this->_rebuildRels(); + $r = Subjects::_rebuildRels(); if (PEAR::isError($r)) { return $r; } @@ -291,13 +282,15 @@ class Subjects extends ObjClasses { * Get subject id from login * * @param string $login - * @return int/err + * @return int|PEAR_Error */ - public function getSubjId($login) + public static function GetSubjId($login) { - $sql = "SELECT id FROM {$this->subjTable} + global $CC_CONFIG; + global $CC_DBC; + $sql = "SELECT id FROM ".$CC_CONFIG['subjTable']." WHERE login='$login'"; - return $this->dbc->getOne($sql); + return $CC_DBC->getOne($sql); } // fn getSubjId @@ -306,13 +299,15 @@ class Subjects extends ObjClasses { * * @param int $id * @param string $fld - * @return string/err + * @return string|PEAR_Error */ - public function getSubjName($id, $fld='login') + public static function GetSubjName($id, $fld='login') { - $sql = "SELECT $fld FROM {$this->subjTable} + global $CC_CONFIG; + global $CC_DBC; + $sql = "SELECT $fld FROM ".$CC_CONFIG['subjTable']." WHERE id='$id'"; - return $this->dbc->getOne($sql); + return $CC_DBC->getOne($sql); } // fn getSubjName @@ -320,30 +315,32 @@ class Subjects extends ObjClasses { * Get all subjects * * @param string $flds - * @return array/err + * @return array|PEAR_Error */ - public function getSubjects($flds='id, login') + public static function GetSubjects($flds='id, login') { - $sql = "SELECT $flds FROM {$this->subjTable}"; - return $this->dbc->getAll($sql); + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT $flds FROM ".$CC_CONFIG['subjTable']; + return $CC_DBC->getAll($sql); } // fn getSubjects /** * Get subjects with count of direct members * - * @return array/err + * @return array|PEAR_Error */ - public function getSubjectsWCnt() + public static function GetSubjectsWCnt() { + global $CC_CONFIG, $CC_DBC; $sql = " SELECT count(m.uid)as cnt, s.id, s.login, s.type - FROM {$this->subjTable} s - LEFT JOIN {$this->smembTable} m ON m.gid=s.id + FROM ".$CC_CONFIG['subjTable']." s + LEFT JOIN ".$CC_CONFIG['smembTable']." m ON m.gid=s.id WHERE m.mid is null GROUP BY s.id, s.login, s.type ORDER BY s.id"; - return $this->dbc->getAll($sql); + return $CC_DBC->getAll($sql); } // fn getSubjectsWCnt @@ -351,13 +348,14 @@ class Subjects extends ObjClasses { * Return true if subject is a group * * @param int $gid - * @return boolean/err + * @return boolean|PEAR_Error */ - public function isGroup($gid) + public static function IsGroup($gid) { - $sql = "SELECT type FROM {$this->subjTable} + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT type FROM ".$CC_CONFIG['subjTable']." WHERE id='$gid'"; - $r = $this->dbc->getOne($sql); + $r = $CC_DBC->getOne($sql); if (PEAR::isError($r)) { return $r; } @@ -369,14 +367,15 @@ class Subjects extends ObjClasses { * List direct members of group * * @param int $gid - * @return array/err + * @return array|PEAR_Error */ - public function listGroup($gid) + public static function ListGroup($gid) { + global $CC_CONFIG, $CC_DBC; $sql = "SELECT s.id, s.login, s.type - FROM {$this->smembTable} m, {$this->subjTable} s + FROM ".$CC_CONFIG['smembTable']." m, ".$CC_CONFIG['subjTable']." s WHERE m.uid=s.id AND m.mid is null AND m.gid='$gid'"; - return $this->dbc->getAll($sql); + return $CC_DBC->getAll($sql); } // fn listGroup @@ -389,14 +388,15 @@ class Subjects extends ObjClasses { * local group id * @return boolean */ - public function isMemberOf($uid, $gid) + public static function IsMemberOf($uid, $gid) { + global $CC_CONFIG, $CC_DBC; $sql = " SELECT count(*)as cnt - FROM {$this->smembTable} + FROM ".$CC_CONFIG['smembTable']." WHERE uid='$uid' AND gid='$gid' "; - $res = $this->dbc->getOne($sql); + $res = $CC_DBC->getOne($sql); if (PEAR::isError($res)) { return $res; } @@ -413,16 +413,17 @@ class Subjects extends ObjClasses { * @param int $gid * @param int $level * @param int $mid - * @return int/err + * @return int|PEAR_Error */ - private function _addMemb($uid, $gid, $level=0, $mid='null') + private static function _addMemb($uid, $gid, $level=0, $mid='null') { - if($uid == $gid) { + global $CC_CONFIG, $CC_DBC; + if ($uid == $gid) { return PEAR::raiseError("Subjects::_addMemb: uid==gid ($uid)", ALIBERR_BADSMEMB); } - $sql = "SELECT id, level, mid FROM {$this->smembTable} + $sql = "SELECT id, level, mid FROM ".$CC_CONFIG['smembTable']." WHERE uid='$uid' AND gid='$gid' ORDER BY level ASC"; - $a = $this->dbc->getAll($sql); + $a = $CC_DBC->getAll($sql); if (PEAR::isError($a)) { return $a; } @@ -430,23 +431,23 @@ class Subjects extends ObjClasses { $a0 = $a[0]; $id = $a0['id']; if ($level < intval($a0['level'])){ - $sql2 = "UPDATE {$this->smembTable} + $sql2 = "UPDATE ".$CC_CONFIG['smembTable']." SET level='$level', mid=$mid WHERE id='{$a0['id']}'"; - $r = $this->dbc->query($sql2); + $r = $CC_DBC->query($sql2); if (PEAR::isError($r)) { return $r; } } } else { - $id = $this->dbc->nextId("{$this->smembTable}_id_seq"); + $id = $CC_DBC->nextId($CC_CONFIG['smembTable']."_id_seq"); if (PEAR::isError($id)) { return $id; } $sql3 = " - INSERT INTO {$this->smembTable} (id, uid, gid, level, mid) + INSERT INTO ".$CC_CONFIG['smembTable']." (id, uid, gid, level, mid) VALUES ($id, $uid, $gid, $level, $mid) "; - $r = $this->dbc->query($sql3); + $r = $CC_DBC->query($sql3); if (PEAR::isError($r)) { return $r; } @@ -461,11 +462,12 @@ class Subjects extends ObjClasses { * @param int $mid * @return null|PEAR_Error */ - private function _removeMemb($mid) + private static function _removeMemb($mid) { - $sql = "DELETE FROM {$this->smembTable} + global $CC_CONFIG, $CC_DBC; + $sql = "DELETE FROM ".$CC_CONFIG['smembTable']." WHERE id='$mid'"; - return $this->dbc->query($sql); + return $CC_DBC->query($sql); } // fn _removeMemb @@ -476,12 +478,13 @@ class Subjects extends ObjClasses { * @param int $uid * @return array|PEAR_Error */ - private function _listMemb($gid, $uid=NULL) + private static function _listMemb($gid, $uid=NULL) { + global $CC_CONFIG, $CC_DBC; $sql = " - SELECT id, uid, level FROM {$this->smembTable} + SELECT id, uid, level FROM ".$CC_CONFIG['smembTable']." WHERE gid='$gid'".(is_null($uid) ? '' : " AND uid='$uid'"); - return $this->dbc->getAll($sql); + return $CC_DBC->getAll($sql); } // fn _listMemb @@ -490,14 +493,15 @@ class Subjects extends ObjClasses { * * @param int $gid * @param int $uid - * @return array/err + * @return array|PEAR_Error */ - private function _listRMemb($uid, $gid=NULL) + private static function _listRMemb($uid, $gid=NULL) { + global $CC_CONFIG, $CC_DBC; $sql = " - SELECT id, gid, level FROM {$this->smembTable} + SELECT id, gid, level FROM ".$CC_CONFIG['smembTable']." WHERE uid='$uid'".(is_null($gid) ? '' : " AND gid='$gid'"); - return $this->dbc->getAll($sql); + return $CC_DBC->getAll($sql); } // fn listRMemb @@ -510,18 +514,18 @@ class Subjects extends ObjClasses { * @param int $rmid * @return int|PEAR_Error */ - private function _plainAddSubj2Gr($uid, $gid, $level=0, $rmid='null') + private static function _plainAddSubjectToGroup($uid, $gid, $level=0, $rmid='null') { - $mid = $this->_addMemb($uid, $gid, $level, $rmid); + $mid = Subjects::_addMemb($uid, $gid, $level, $rmid); if (PEAR::isError($mid)) { return $mid; } - $marr = $this->_listMemb($uid); + $marr = Subjects::_listMemb($uid); if (PEAR::isError($marr)) { return $marr; } foreach ($marr as $k => $v) { - $r = $this->_addMemb( + $r = Subjects::_addMemb( $v['uid'], $gid, intval($v['level'])+$level+1, $mid ); if (PEAR::isError($r)) { @@ -529,7 +533,7 @@ class Subjects extends ObjClasses { } } return $mid; - } // fn _plainAddSubj2Gr + } /** @@ -538,30 +542,31 @@ class Subjects extends ObjClasses { * * @return true|PEAR_Error */ - private function _rebuildRels() + private static function _rebuildRels() { - $this->dbc->query("BEGIN"); - $r = $this->dbc->query("LOCK TABLE {$this->smembTable}"); + global $CC_CONFIG, $CC_DBC; + $CC_DBC->query("BEGIN"); + $r = $CC_DBC->query("LOCK TABLE ".$CC_CONFIG['smembTable']); if (PEAR::isError($r)) { return $r; } - $r = $this->dbc->query("DELETE FROM {$this->smembTable} + $r = $CC_DBC->query("DELETE FROM ".$CC_CONFIG['smembTable']." WHERE mid is not null"); if (PEAR::isError($r)) { return $r; } - $arr = $this->dbc->getAll("SELECT uid, gid FROM {$this->smembTable}"); + $arr = $CC_DBC->getAll("SELECT uid, gid FROM ".$CC_CONFIG['smembTable']); // WHERE mid is null if (PEAR::isError($arr)) { return $arr; } foreach ($arr as $it) { - $marr = $this->_listRMemb($it['gid']); + $marr = Subjects::_listRMemb($it['gid']); if (PEAR::isError($marr)) { return $marr; } foreach ($marr as $k => $v) { - $r = $this->_plainAddSubj2Gr( + $r = Subjects::_plainAddSubjectToGroup( $it['uid'], $v['gid'], intval($v['level'])+1, $v['id'] ); if (PEAR::isError($r)) { @@ -569,7 +574,10 @@ class Subjects extends ObjClasses { } } } - $r = $this->dbc->query("COMMIT"); if(PEAR::isError($r)) return $r; + $r = $CC_DBC->query("COMMIT"); + if (PEAR::isError($r)) { + return $r; + } return TRUE; } // fn _rebuildRels @@ -585,11 +593,11 @@ class Subjects extends ObjClasses { * actual indentation * @return string */ - public function dumpSubjects($indstr=' ', $ind='') + public static function DumpSubjects($indstr=' ', $ind='') { $r = $ind.join(', ', array_map( create_function('$v', 'return "{$v[\'login\']}({$v[\'cnt\']})";'), - $this->getSubjectsWCnt() + Subjects::GetSubjectsWCnt() ))."\n"; return $r; } // fn dumpSubjects @@ -600,11 +608,12 @@ class Subjects extends ObjClasses { * * @return void */ - public function deleteData() + public static function DeleteData() { - $this->dbc->query("DELETE FROM {$this->subjTable}"); - $this->dbc->query("DELETE FROM {$this->smembTable}"); - parent::deleteData(); + global $CC_CONFIG, $CC_DBC; + $CC_DBC->query("DELETE FROM ".$CC_CONFIG['subjTable']); + $CC_DBC->query("DELETE FROM ".$CC_CONFIG['smembTable']); + ObjClasses::DeleteData(); } // fn deleteData @@ -613,60 +622,62 @@ class Subjects extends ObjClasses { * * @return array */ - public function testData() + public function TestData() { - parent::testData(); - $o['root'] = $this->addSubj('root', 'q'); - $o['test1'] = $this->addSubj('test1', 'a'); - $o['test2'] = $this->addSubj('test2', 'a'); - $o['test3'] = $this->addSubj('test3', 'a'); - $o['test4'] = $this->addSubj('test4', 'a'); - $o['test5'] = $this->addSubj('test5', 'a'); - $o['gr1'] = $this->addSubj('gr1'); - $o['gr2'] = $this->addSubj('gr2'); - $o['gr3'] = $this->addSubj('gr3'); - $o['gr4'] = $this->addSubj('gr4'); - $this->addSubj2Gr('test1', 'gr1'); - $this->addSubj2Gr('test2', 'gr2'); - $this->addSubj2Gr('test3', 'gr3'); - $this->addSubj2Gr('test4', 'gr4'); - $this->addSubj2Gr('test5', 'gr1'); - $this->addSubj2Gr('gr4', 'gr3'); - $this->addSubj2Gr('gr3', 'gr2'); - return $this->tdata['subjects'] = $o; - } // fn testData + $tdata = ObjClasses::TestData(); + $o['root'] = Subjects::AddSubj('root', 'q'); + $o['test1'] = Subjects::AddSubj('test1', 'a'); + $o['test2'] = Subjects::AddSubj('test2', 'a'); + $o['test3'] = Subjects::AddSubj('test3', 'a'); + $o['test4'] = Subjects::AddSubj('test4', 'a'); + $o['test5'] = Subjects::AddSubj('test5', 'a'); + $o['gr1'] = Subjects::AddSubj('gr1'); + $o['gr2'] = Subjects::AddSubj('gr2'); + $o['gr3'] = Subjects::AddSubj('gr3'); + $o['gr4'] = Subjects::AddSubj('gr4'); + Subjects::AddSubjectToGroup('test1', 'gr1'); + Subjects::AddSubjectToGroup('test2', 'gr2'); + Subjects::AddSubjectToGroup('test3', 'gr3'); + Subjects::AddSubjectToGroup('test4', 'gr4'); + Subjects::AddSubjectToGroup('test5', 'gr1'); + Subjects::AddSubjectToGroup('gr4', 'gr3'); + Subjects::AddSubjectToGroup('gr3', 'gr2'); + $tdata['subjects'] = $o; + return $tdata; + } // fn TestData /** * Make basic test * */ - public function test() + public static function Test() { - if (PEAR::isError($p = parent::test())) { + $p = ObjClasses::Test(); + if (PEAR::isError($p)) { return $p; } - $this->deleteData(); - $this->testData(); - $this->test_correct = "root(0), test1(0), test2(0), test3(0),". + Subjects::DeleteData(); + Subjects::TestData(); + $test_correct = "root(0), test1(0), test2(0), test3(0),". " test4(0), test5(0), gr1(2), gr2(2), gr3(2), gr4(1)\n"; - $this->test_dump = $this->dumpSubjects(); - $this->removeSubj('test1'); - $this->removeSubj('test3'); - $this->removeSubjFromGr('test5', 'gr1'); - $this->removeSubjFromGr('gr3', 'gr2'); - $this->test_correct .= "root(0), test2(0), test4(0), test5(0),". + $test_dump = Subjects::DumpSubjects(); + Subjects::RemoveSubj('test1'); + Subjects::RemoveSubj('test3'); + Subjects::RemoveSubjectFromGroup('test5', 'gr1'); + Subjects::RemoveSubjectFromGroup('gr3', 'gr2'); + $test_correct .= "root(0), test2(0), test4(0), test5(0),". " gr1(0), gr2(1), gr3(1), gr4(1)\n"; - $this->test_dump .= $this->dumpSubjects(); - $this->deleteData(); - if ($this->test_dump == $this->test_correct) { - $this->test_log.="subj: OK\n"; + $test_dump .= Subjects::DumpSubjects(); + Subjects::DeleteData(); + if ($test_dump == $test_correct) { + $test_log .= "subj: OK\n"; return TRUE; } else { return PEAR::raiseError( - 'Subjects::test:', 1, PEAR_ERROR_DIE, '%s'. - "
\ncorrect:\n{$this->test_correct}\n".
-            "dump:\n{$this->test_dump}\n
\n"); + 'Subjects::test:', 1, PEAR_ERROR_DIE, '%s'. + "
\ncorrect:\n{$test_correct}\n".
+                "dump:\n{$test_dump}\n
\n"); } } // fn test @@ -675,35 +686,35 @@ class Subjects extends ObjClasses { * Create tables + initialize * */ - public function install() - { - parent::install(); - $this->dbc->query("CREATE TABLE {$this->subjTable} ( - id int not null PRIMARY KEY, - login varchar(255) not null default'', - pass varchar(255) not null default'', - type char(1) not null default 'U', - realname varchar(255) not null default'', - lastlogin timestamp, - lastfail timestamp - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->subjTable}_id_idx - ON {$this->subjTable} (id)"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->subjTable}_login_idx - ON {$this->subjTable} (login)"); - $this->dbc->createSequence("{$this->subjTable}_id_seq"); - - $this->dbc->query("CREATE TABLE {$this->smembTable} ( - id int not null PRIMARY KEY, - uid int not null default 0, - gid int not null default 0, - level int not null default 0, - mid int - )"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->smembTable}_id_idx - ON {$this->smembTable} (id)"); - $this->dbc->createSequence("{$this->smembTable}_id_seq"); - } // fn install +// public function install() +// { +// parent::install(); +// $CC_DBC->query("CREATE TABLE {$this->subjTable} ( +// id int not null PRIMARY KEY, +// login varchar(255) not null default'', +// pass varchar(255) not null default'', +// type char(1) not null default 'U', +// realname varchar(255) not null default'', +// lastlogin timestamp, +// lastfail timestamp +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->subjTable}_id_idx +// ON {$this->subjTable} (id)"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->subjTable}_login_idx +// ON {$this->subjTable} (login)"); +// $CC_DBC->createSequence("{$this->subjTable}_id_seq"); +// +// $CC_DBC->query("CREATE TABLE {$this->smembTable} ( +// id int not null PRIMARY KEY, +// uid int not null default 0, +// gid int not null default 0, +// level int not null default 0, +// mid int +// )"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->smembTable}_id_idx +// ON {$this->smembTable} (id)"); +// $CC_DBC->createSequence("{$this->smembTable}_id_seq"); +// } // fn install /** @@ -711,14 +722,15 @@ class Subjects extends ObjClasses { * * @return void */ - public function uninstall() - { - $this->dbc->query("DROP TABLE {$this->subjTable}"); - $this->dbc->dropSequence("{$this->subjTable}_id_seq"); - $this->dbc->query("DROP TABLE {$this->smembTable}"); - $this->dbc->dropSequence("{$this->smembTable}_id_seq"); - parent::uninstall(); - } // fn uninstall +// public function uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['subjTable']); +// $CC_DBC->dropSequence($CC_CONFIG['subjTable']."_id_seq"); +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['smembTable']); +// $CC_DBC->dropSequence($CC_CONFIG['smembTable']."_id_seq"); +// parent::uninstall(); +// } // fn uninstall } // class Subjects ?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/example/alibExCls.php b/campcaster/src/modules/alib/var/example/alibExCls.php index 8b1fed8f6..ca0643a39 100644 --- a/campcaster/src/modules/alib/var/example/alibExCls.php +++ b/campcaster/src/modules/alib/var/example/alibExCls.php @@ -1,33 +1,45 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -require_once "alib_h.php"; -require_once "alibExTestAuth.php"; -if(isset($_GET['id']) && is_numeric($_GET['id'])){ $id = $_GET['id']; $list=false; } -else $list=true; +require_once("alib_h.php"); +require_once("alibExTestAuth.php"); + +if (isset($_GET['id']) && is_numeric($_GET['id'])) { + $id = $_GET['id']; + $list = false; +} else { + $list = true; +} // prefill data structure for template -if($list){ +if ($list) { $d = array( - 'cls' => $alib->getClasses(), + 'cls' => ObjClasses::GetClasses(), 'loggedAs' => $login, ); -}else{ +} else { $d = array( - 'rows' => $alib->listClass($id), + 'rows' => ObjClasses::ListClass($id), 'id' => $id, 'loggedAs' => $login, - 'cname' => $alib->getClassName($id), - 'cls' => $alib->getClasses(), - 'objs' => $alib->getSubTree(null, true) + 'cname' => ObjClasses::GetClassName($id), + 'cls' => ObjClasses::GetClasses(), + 'objs' => M2tree::GetSubTree(null, true) ); } -$d['msg'] = $_SESSION['alertMsg']; unset($_SESSION['alertMsg']); +$d['msg'] = $_SESSION['alertMsg']; +unset($_SESSION['alertMsg']); -require_once "alib_f.php"; +require_once("alib_f.php"); // template follows: ?> diff --git a/campcaster/src/modules/alib/var/example/alibExLogin.php b/campcaster/src/modules/alib/var/example/alibExLogin.php index d067810e8..75bae1b80 100644 --- a/campcaster/src/modules/alib/var/example/alibExLogin.php +++ b/campcaster/src/modules/alib/var/example/alibExLogin.php @@ -7,9 +7,9 @@ require_once "alib_h.php"; // prefill data structure for template $d = array( - 'users' => $alib->getSubjects(), - 'actions' => $alib->getAllActions(), - 'objects' => $alib->getAllObjects(), + 'users' => Subjects::GetSubjects(), + 'actions' => Alib::GetAllActions(), + 'objects' => M2tree::GetAllObjects(), 'msg' => $_SESSION['alertMsg'] ); unset($_SESSION['alertMsg']); diff --git a/campcaster/src/modules/alib/var/example/alibExPList.php b/campcaster/src/modules/alib/var/example/alibExPList.php index f68aa8c80..2daf8b85e 100644 --- a/campcaster/src/modules/alib/var/example/alibExPList.php +++ b/campcaster/src/modules/alib/var/example/alibExPList.php @@ -12,11 +12,11 @@ else $id=1; // prefill data structure for template $d = array( - 'rows' => $alib->getSubjPerms($id), + 'rows' => Alib::GetSubjPerms($id), 'id' => $id, 'loggedAs' => $login, - 'actions' => $alib->getAllActions(), - 'name' => $alib->getSubjName($id) + 'actions' => Alib::GetAllActions(), + 'name' => Subjects::GetSubjName($id) ); $d['msg'] = $_SESSION['alertMsg']; unset($_SESSION['alertMsg']); diff --git a/campcaster/src/modules/alib/var/example/alibExPMatrix.php b/campcaster/src/modules/alib/var/example/alibExPMatrix.php index 5d4cf63d3..3a4f41d5d 100644 --- a/campcaster/src/modules/alib/var/example/alibExPMatrix.php +++ b/campcaster/src/modules/alib/var/example/alibExPMatrix.php @@ -1,27 +1,37 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -require_once "alib_h.php"; -$sid=$_GET['subj']; +require_once("alib_h.php"); -$all = $alib->getAllObjects(); -foreach($alib->getClasses() as $cl) +$sid = $_GET['subj']; + +$all = M2tree::GetAllObjects(); +foreach (ObjClasses::GetClasses() as $cl) { $all[] = array('name'=>$cl['cname']." (class)", 'id'=>$cl['id']); +} -foreach($all as $it){ - $aa=array(); - foreach($alib->getAllActions() as $a){ - $aa[$a] = $r = $alib->checkPerm($sid, $a, $it['id']); - if(PEAR::isError($r)){ - echo $r->getMessage()." ".$r->getUserInfo()."\n"; exit; } - } - $m[]=array($it['name'], $aa); +foreach ($all as $it) { + $aa = array(); + foreach (Alib::GetAllActions() as $a) { + $aa[$a] = $r = Alib::CheckPerm($sid, $a, $it['id']); + if (PEAR::isError($r)) { + echo $r->getMessage()." ".$r->getUserInfo()."\n"; + exit; + } + } + $m[] = array($it['name'], $aa); } #echo"
\n"; var_dump($m);
-$u=$alib->getSubjName($sid);
+$u = Subjects::GetSubjName($sid);
 
 ?>
 
@@ -32,7 +42,7 @@ $u=$alib->getSubjName($sid);
 

User:

-getAllActions() as $a){?> + @@ -49,5 +59,5 @@ $u=$alib->getSubjName($sid); Back
Tree dump: -
dumpTree()?>
+
diff --git a/campcaster/src/modules/alib/var/example/alibExPerms.php b/campcaster/src/modules/alib/var/example/alibExPerms.php index d06ec52e2..63bec2b59 100644 --- a/campcaster/src/modules/alib/var/example/alibExPerms.php +++ b/campcaster/src/modules/alib/var/example/alibExPerms.php @@ -1,6 +1,13 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ require_once("alib_h.php"); @@ -9,26 +16,26 @@ require_once("alibExTestAuth.php"); if (isset($_GET['id']) && is_numeric($_GET['id'])) { $id = $_GET['id']; } else { - $id = $alib->getRootNode(); + $id = M2tree::GetRootNode(); } // prefill data structure for template -if (!$alib->isClass($id)) { +if (!ObjClasses::IsClass($id)) { $d = array( - 'path' => $alib->getPath($id, 'id,name'), - 'perms' => $alib->getObjPerms($id), - 'actions' => $alib->getAllowedActions($alib->getObjType($id)), - 'subjects' => $alib->getSubjects(), + 'path' => M2tree::GetPath($id, 'id,name'), + 'perms' => Alib::GetObjPerms($id), + 'actions' => Alib::GetAllowedActions(M2tree::GetObjType($id)), + 'subjects' => Subjects::GetSubjects(), 'id' => $id, 'loggedAs' => $login ); } else { $d = array( 'path' => '', - 'name' => $alib->getClassName($id), - 'perms' => $alib->getObjPerms($id), - 'actions' => $alib->getAllowedActions('_class'), - 'subjects' => $alib->getSubjects(), + 'name' => ObjClasses::GetClassName($id), + 'perms' => Alib::GetObjPerms($id), + 'actions' => Alib::GetAllowedActions('_class'), + 'subjects' => Subjects::GetSubjects(), 'id' => $id, 'loggedAs' => $login ); diff --git a/campcaster/src/modules/alib/var/example/alibExSubj.php b/campcaster/src/modules/alib/var/example/alibExSubj.php index 25f167bde..11a7ecedd 100644 --- a/campcaster/src/modules/alib/var/example/alibExSubj.php +++ b/campcaster/src/modules/alib/var/example/alibExSubj.php @@ -13,16 +13,16 @@ else $list=true; // prefill data structure for template if($list){ $d = array( - 'subj' => $alib->getSubjectsWCnt(), + 'subj' => Subjects::GetSubjectsWCnt(), 'loggedAs' => $login ); }else{ $d = array( - 'rows' => $alib->listGroup($id), + 'rows' => Subjects::ListGroup($id), 'id' => $id, 'loggedAs' => $login, - 'gname' => $alib->getSubjName($id), - 'subj' => $alib->getSubjects() + 'gname' => Subjects::GetSubjName($id), + 'subj' => Subjects::GetSubjects() ); } $d['msg'] = $_SESSION['alertMsg']; unset($_SESSION['alertMsg']); diff --git a/campcaster/src/modules/alib/var/example/alibExTestAuth.php b/campcaster/src/modules/alib/var/example/alibExTestAuth.php index 0eef588b4..f3f87712f 100644 --- a/campcaster/src/modules/alib/var/example/alibExTestAuth.php +++ b/campcaster/src/modules/alib/var/example/alibExTestAuth.php @@ -3,7 +3,7 @@ * @author $Author$ * @version $Revision$ */ -$login = $alib->getSessLogin($_REQUEST['alibsid']); +$login = Alib::GetSessLogin($_REQUEST['alibsid']); if(!isset($login)||$login==''){ $_SESSION['alertMsg'] = "Login required"; header("Location: alibExLogin.php"); diff --git a/campcaster/src/modules/alib/var/example/alibExTree.php b/campcaster/src/modules/alib/var/example/alibExTree.php index 393d04c98..f60eaa71c 100644 --- a/campcaster/src/modules/alib/var/example/alibExTree.php +++ b/campcaster/src/modules/alib/var/example/alibExTree.php @@ -8,16 +8,16 @@ require_once "alib_h.php"; require_once "alibExTestAuth.php"; if(isset($_GET['id']) && is_numeric($_GET['id'])) $id = $_GET['id']; -else $id = $alib->getRootNode(); +else $id = M2tree::GetRootNode(); // prefill data structure for template $d = array( 'parid' => $alib->getParent($id), - 'oname' => $alib->getObjName($id), - 'path' => $alib->getPath($id, 'id, name'), - 'rows' => $alib->getDir($id, 'id, name, type'), - 'addtypes' => $alib->getAllowedChildTypes($alib->getObjType($id)), - 'dump' => $alib->dumpTree($id), + 'oname' => M2tree::GetObjName($id), + 'path' => M2tree::GetPath($id, 'id, name'), + 'rows' => M2tree::GetDir($id, 'id, name, type'), + 'addtypes' => M2tree::GetAllowedChildTypes(M2tree::GetObjType($id)), + 'dump' => M2tree::DumpTree($id), 'id' => $id, 'loggedAs' => $login ); diff --git a/campcaster/src/modules/alib/var/example/alibHttp.php b/campcaster/src/modules/alib/var/example/alibHttp.php index 8a21db463..5cb1df6cf 100644 --- a/campcaster/src/modules/alib/var/example/alibHttp.php +++ b/campcaster/src/modules/alib/var/example/alibHttp.php @@ -1,9 +1,15 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -require_once "alib_h.php"; +require_once("alib_h.php"); #echo"
\nGET:\n"; print_r($_GET); echo"POST:\n"; print_r($_POST); exit;
 
@@ -12,140 +18,162 @@ function getPGval($vn, $dfl='')
     return (isset($_POST[$vn])?$_POST[$vn]:(isset($_GET[$vn])?$_GET[$vn]:$dfl));
 }
 
-$userid = $alib->getSessUserId($_REQUEST['alibsid']);
-$login = $alib->getSessLogin($_REQUEST['alibsid']);
+$userid = Alib::GetSessUserId($_REQUEST['alibsid']);
+$login = Alib::GetSessLogin($_REQUEST['alibsid']);
 
 $redirUrl="alibExTree.php".(($reid=getPGval('reid', '')) ? "?id=$reid":"");
 $act = getPGval('act', 'nop');
-switch($act)
-{
-    case"login";
-        if($sessid = $alib->login($_POST['login'], $_POST['pass'])){
+switch ($act) {
+    case "login";
+        if ($sessid = Alib::Login($_POST['login'], $_POST['pass'])) {
             setcookie('alibsid', $sessid);
             $redirUrl="alibExTree.php";
-        }else{
+        } else {
             $redirUrl="alibExLogin.php"; $_SESSION['alertMsg']='Login failed.';
         }
-    break;
-    case"logout";
-        $r = $alib->logout($_REQUEST['alibsid']);
-        if(PEAR::isError($r)){
+        break;
+    case "logout";
+        $r = Alib::Logout($_REQUEST['alibsid']);
+        if (PEAR::isError($r)) {
             $_SESSION['alertMsg'] = $r->getMessage().", ".$r->getUserInfo();
         }
         setcookie('alibsid', '');
         $redirUrl="alibExLogin.php";
-    break;
-    case"addNode";
-        if($alib->checkPerm($userid, 'addChilds', $_POST['id'])
+        break;
+    case "addNode";
+        if (Alib::CheckPerm($userid, 'addChilds', $_POST['id'])
             && $_POST['type']!=''
-            && $_POST['name']!=''
-        ){
+            && $_POST['name']!='') {
             $position = ($_POST['position']=='I' ? null : $_POST['position']);
-            $oid = $alib->addObj(
-                $_POST['name'], $_POST['type'], $_POST['id'], $position
-            );
-            if(PEAR::isError($oid)){
+            $oid = M2tree::AddObj($_POST['name'], $_POST['type'], $_POST['id']);
+            if (PEAR::isError($oid)) {
                 $_SESSION['alertMsg'] =
                     $oid->getMessage().", ".$oid->getUserInfo();
-            }else $r = $alib->addPerm($userid, '_all', $oid);
-            if(PEAR::isError($r)){
+            } else {
+                $r = Alib::AddPerm($userid, '_all', $oid);
+            }
+            if (PEAR::isError($r)) {
                 $_SESSION['alertMsg'] = $r->getMessage().", ".$r->getUserInfo();
             }
-        }else $_SESSION['alertMsg']='Access denied.';
-    break;
-    case"deleteNode";
-        if($alib->checkPerm($userid, 'delete', $_REQUEST['id']))
-            $alib->removeObj($_GET['id']);
-        else $_SESSION['alertMsg']='Access denied.';
-    break;
-    case"addPerm";
-        $a = $alib->isClass($_POST['id']) ? 'classes':'editPerms';
-        $id = $alib->isClass($_POST['id']) ? '':$_POST['id'];
-        if($alib->checkPerm($userid, $a, $id)){
-            $alib->addPerm(
+        } else {
+            $_SESSION['alertMsg'] = 'Access denied.';
+        }
+        break;
+    case "deleteNode";
+        if (Alib::CheckPerm($userid, 'delete', $_REQUEST['id'])) {
+            Alib::RemoveObj($_GET['id']);
+        } else {
+            $_SESSION['alertMsg'] = 'Access denied.';
+        }
+        break;
+    case "addPerm";
+        $a = ObjClasses::IsClass($_POST['id']) ? 'classes':'editPerms';
+        $id = ObjClasses::IsClass($_POST['id']) ? '':$_POST['id'];
+        if (Alib::CheckPerm($userid, $a, $id)) {
+            Alib::AddPerm(
                 $_POST['subj'], $_POST['permAction'],
                 $_POST['id'], $_POST['allowDeny']
             );
-        }else $_SESSION['alertMsg']='Access denied.';
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
         $redirUrl = "alibExPerms.php".
             (($reid=getPGval('reid', '')) ? "?id=$reid":"");
-    break;
-    case"removePerm";
-        $a = $alib->isClass($_REQUEST['oid']) ? 'classes':'editPerms';
-        $oid = $alib->isClass($_REQUEST['oid']) ? NULL:$_REQUEST['oid'];
-        if($alib->checkPerm($userid, $a, $oid))
-            $alib->removePerm($_GET['permid']);
-        else $_SESSION['alertMsg']='Access denied.';
+        break;
+    case "removePerm";
+        $a = ObjClasses::IsClass($_REQUEST['oid']) ? 'classes':'editPerms';
+        $oid = ObjClasses::IsClass($_REQUEST['oid']) ? NULL:$_REQUEST['oid'];
+        if (Alib::CheckPerm($userid, $a, $oid)) {
+            Alib::RemovePerm($_GET['permid']);
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
         $redirUrl =
             ($_REQUEST['reurl']==plist ? "alibExPList.php":"alibExPerms.php").
             (($reid=getPGval('reid', '')) ? "?id=$reid":"");
-    break;
-    case"checkPerm";
-        $res = $alib->checkPerm(
+        break;
+    case "checkPerm";
+        $res = Alib::CheckPerm(
             $_POST['subj'], $_POST['permAction'], $_POST['obj']
         );
         $_SESSION['alertMsg'] = ($res ? "permitted: ":"DENIED: ").
-            " {$_POST['permAction']} for ".$alib->getSubjName($_POST['subj']).
-            " on ".$alib->getObjName($_POST['obj']);
+            " {$_POST['permAction']} for ".Subjects::GetSubjName($_POST['subj']).
+            " on ".M2tree::GetObjName($_POST['obj']);
         $_SESSION['lastPost']=$_POST;
-        $redirUrl="alibExLogin.php";
-    break;
-    case"addClass";
-        if($alib->checkPerm($userid, 'classes'))
-            $alib->addClass($_POST['name']);
-        else $_SESSION['alertMsg']='Access denied.';
+        $redirUrl = "alibExLogin.php";
+        break;
+    case "addClass";
+        if (Alib::CheckPerm($userid, 'classes')) {
+            ObjClasses::AddClass($_POST['name']);
+        } else {
+            $_SESSION['alertMsg'] = 'Access denied.';
+        }
         $redirUrl="alibExCls.php";
-    break;
-    case"removeClass";
-        if($alib->checkPerm($userid, 'classes'))
-            $alib->removeClassById($_GET['id']);
-        else $_SESSION['alertMsg']='Access denied.';
-        $redirUrl="alibExCls.php";
-    break;
-    case"addSubj";
-        if($alib->checkPerm($userid, 'subjects'))
-            $alib->addSubj($_POST['login'], $_POST['pass']);
-        else $_SESSION['alertMsg']='Access denied.';
-        $redirUrl="alibExSubj.php";
-    break;
-    case"removeSubj";
-        if($alib->checkPerm($userid, 'subjects'))
-            $alib->removeSubj($_GET['login']);
-        else $_SESSION['alertMsg']='Access denied.';
-        $redirUrl="alibExSubj.php";
-    break;
-    case"addSubj2Gr";
-        if($alib->checkPerm($userid, 'subjects'))
-            $alib->addSubj2Gr($_POST['login'], $_POST['gname']);
-        else $_SESSION['alertMsg']='Access denied.';
+        break;
+    case "removeClass";
+        if (Alib::CheckPerm($userid, 'classes')) {
+            ObjClasses::RemoveClassById($_GET['id']);
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
+        $redirUrl = "alibExCls.php";
+        break;
+    case "addSubj";
+        if (Alib::CheckPerm($userid, 'subjects')) {
+            Subjects::AddSubj($_POST['login'], $_POST['pass']);
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
+        $redirUrl = "alibExSubj.php";
+        break;
+    case "removeSubj";
+        if (Alib::CheckPerm($userid, 'subjects')) {
+            Alib::RemoveSubj($_GET['login']);
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
+        $redirUrl = "alibExSubj.php";
+        break;
+    case "addSubj2Gr";
+        if (Alib::CheckPerm($userid, 'subjects')) {
+            Subjects::AddSubjectToGroup($_POST['login'], $_POST['gname']);
+        } else {
+            $_SESSION['alertMsg'] = 'Access denied.';
+        }
         $redirUrl = "alibExSubj.php".
             (($id=getPGval('reid', '')) ? "?id=$reid":"");
-    break;
-    case"removeSubjFromGr";
-        if($alib->checkPerm($userid, 'subjects'))
-            $alib->removeSubjFromGr($_GET['login'], $_GET['gname']);
-        else $_SESSION['alertMsg']='Access denied.';
+        break;
+    case "removeSubjFromGr";
+        if (Alib::CheckPerm($userid, 'subjects')) {
+            Subjects::RemoveSubjectFromGroup($_GET['login'], $_GET['gname']);
+        } else {
+            $_SESSION['alertMsg']='Access denied.';
+        }
         $redirUrl = "alibExSubj.php".
             (($id=getPGval('reid', '')) ? "?id=$reid":"");
-    break;
-    case"addObj2Class";
-        if($alib->checkPerm($userid, 'classes'))
-            $alib->addObj2Class($_POST['id'], $_POST['oid']);
-        else $_SESSION['alertMsg']='Access denied. X1';
+        break;
+    case "addObj2Class";
+        if (Alib::CheckPerm($userid, 'classes')) {
+            ObjClasses::AddObjectToClass($_POST['id'], $_POST['oid']);
+        } else {
+            $_SESSION['alertMsg']='Access denied. X1';
+        }
         $redirUrl="alibExCls.php".(($id=getPGval('id', '')) ? "?id=$id":"");
-    break;
-    case"removeObjFromClass";
-        $id=getPGval('id', '');
-        if($alib->checkPerm($userid, 'classes'))
-            $alib->removeObjFromClass($_GET['oid'], $id);
-        else $_SESSION['alertMsg']='Access denied.';
-        $redirUrl="alibExCls.php".($id ? "?id=$id":"");
-    break;
+        break;
+    case "removeObjFromClass";
+        $id = getPGval('id', '');
+        if (Alib::CheckPerm($userid, 'classes')) {
+            ObjClasses::RemoveObjectFromClass($_GET['oid'], $id);
+        } else {
+            $_SESSION['alertMsg'] = 'Access denied.';
+        }
+        $redirUrl = "alibExCls.php".($id ? "?id=$id":"");
+        break;
     default:
         $_SESSION['alertMsg']="Unknown method: $act";
 }
 
-require_once"alib_f.php";
+require_once("alib_f.php");
 
 header("Location: $redirUrl");
 ?>
\ No newline at end of file
diff --git a/campcaster/src/modules/alib/var/example/alib_f.php b/campcaster/src/modules/alib/var/example/alib_f.php
index da6aba933..9fd856117 100644
--- a/campcaster/src/modules/alib/var/example/alib_f.php
+++ b/campcaster/src/modules/alib/var/example/alib_f.php
@@ -1,4 +1,4 @@
 disconnect();
+$CC_DBC->disconnect();
 ?>
\ No newline at end of file
diff --git a/campcaster/src/modules/alib/var/example/alib_h.php b/campcaster/src/modules/alib/var/example/alib_h.php
index bbc3dbe94..7731b890f 100644
--- a/campcaster/src/modules/alib/var/example/alib_h.php
+++ b/campcaster/src/modules/alib/var/example/alib_h.php
@@ -15,7 +15,9 @@ PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallback');
 
 function errCallback($err)
 {
-	if(assert_options(ASSERT_ACTIVE)==1) return;
+	if (assert_options(ASSERT_ACTIVE)==1) {
+	    return;
+	}
 	echo "
\n";
 	echo "request: "; print_r($_REQUEST);
     echo "\ngm:\n".$err->getMessage()."\nui:\n".$err->getUserInfo()."\n";
@@ -25,7 +27,7 @@ function errCallback($err)
     exit;
 }
 
-$dbc = DB::connect($config['dsn'], TRUE);
-$dbc->setFetchMode(DB_FETCHMODE_ASSOC);
-$alib = new Alib($dbc, $config);
+$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
+$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
+$alib = new Alib();
 ?>
\ No newline at end of file
diff --git a/campcaster/src/modules/alib/var/example/conf.php b/campcaster/src/modules/alib/var/example/conf.php
index b3c3e2fc5..efe2fda08 100644
--- a/campcaster/src/modules/alib/var/example/conf.php
+++ b/campcaster/src/modules/alib/var/example/conf.php
@@ -4,7 +4,7 @@
  * @version $Revision$
  */
 
-$config = array(
+$CC_CONFIG = array(
     'dsn'       => array(           // data source definition
         'username' => 'test',
         'password' => 'test',
diff --git a/campcaster/src/modules/alib/var/install/install.php b/campcaster/src/modules/alib/var/install/install.php
index a342316d3..9ef7bd301 100644
--- a/campcaster/src/modules/alib/var/install/install.php
+++ b/campcaster/src/modules/alib/var/install/install.php
@@ -19,47 +19,48 @@ function errCallback($err)
 }
 
 
-$dbc = DB::connect($config['dsn'], TRUE);
-if (PEAR::isError($dbc)) {
+$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
+if (PEAR::isError($CC_DBC)) {
     echo "Database connection problem.\n";
-    echo "Check if database '{$config['dsn']['database']}' exists with corresponding permissions.\n";
+    echo "Check if database '".$CC_CONFIG['dsn']['database']."' exists with corresponding permissions.\n";
     echo "Database access is defined by 'dsn' values in conf.php.\n";
     exit;
 }
-#$dbc->setErrorHandling(PEAR_ERROR_PRINT, "%s
\n"); -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -#$$dbc->setErrorHandling(PEAR_ERROR_DIE, "%s
\n"); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$alib = new Alib($dbc, $config); +$alib = new Alib(); echo "\n\n======\n". "This is Alib standalone installation script, it is NOT needed to run ". "for Campcaster.\nAlib is automatically used by storageServer without it.". "\n======\n\n"; -echo "Alib: uninstall ...\n"; -$alib->uninstall(); +exit; -$dbc->setErrorHandling(PEAR_ERROR_DIE, "%s
\n"); -echo "Alib: install ...\n"; -$alib->install(); +//echo "Alib: uninstall ...\n"; +//$alib->uninstall(); -#$alib->testData(); echo $alib->dumpTree(); exit; +$CC_DBC->setErrorHandling(PEAR_ERROR_DIE, "%s
\n"); +//echo "Alib: install ...\n"; +//$alib->install(); echo " Testing ...\n"; -$r = $alib->test(); -if($dbc->isError($r)) if($dbc->isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } +$r = Alib::Test(); +if (PEAR::isError($r)) { + echo $r->getMessage()."\n".$r->getUserInfo()."\n"; + exit; +} $log = $alib->test_log; echo " TESTS:\n$log\n---\n"; echo " clean up + testdata insert ...\n"; -$alib->deleteData(); -$alib->testData(); +Alib::DeleteData(); +Alib::TestData(); echo " TREE DUMP:\n"; -echo $alib->dumpTree(); +echo M2tree::DumpTree(); echo "\n Alib is probably installed OK\n"; -$dbc->disconnect(); -?> +$CC_DBC->disconnect(); +?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/install/uninstall.php b/campcaster/src/modules/alib/var/install/uninstall.php index b4a5e1789..7c154f30e 100644 --- a/campcaster/src/modules/alib/var/install/uninstall.php +++ b/campcaster/src/modules/alib/var/install/uninstall.php @@ -19,22 +19,20 @@ function errCallback($err) } -$dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { echo "Database connection problem.\n"; - echo "Check if database '{$config['dsn']['database']}' exists with corresponding permissions.\n"; + echo "Check if database '".$CC_CONFIG['dsn']['database']."' exists with corresponding permissions.\n"; echo "Database access is defined by 'dsn' values in conf.php.\n"; exit; } -#PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
\n"); -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$alib = new Alib($dbc, $config); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +//$alib = new Alib(); +// +//echo "Trying to uninstall all ...\n"; +//$alib->uninstall(); -# $dbc->setErrorHandling(PEAR_ERROR_RETURN); -echo "Trying to uninstall all ...\n"; -$alib->uninstall(); - -$dbc->disconnect(); +$CC_DBC->disconnect(); ?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/m2treeTest.php b/campcaster/src/modules/alib/var/m2treeTest.php index 7c93d7add..33b9a50f5 100644 --- a/campcaster/src/modules/alib/var/m2treeTest.php +++ b/campcaster/src/modules/alib/var/m2treeTest.php @@ -1,34 +1,45 @@ addObj("Publication$i", "Publication"); - if($this->dbc->isError($r)) return $r; + for ($i = 1; $i <= 3; $i++) { + $r = M2tree::AddObj("Publication$i", "Publication"); + if (PEAR::isError($r)) { + return $r; + } $this->_t["p$i"] = $r; } - for($i=1; $i<=3; $i++){ - $r = $this->addObj("Issue$i", "Issue", - $this->_t[$i<=2 ? 'p1' : 'p2']); - if($this->dbc->isError($r)) return $r; + for ($i = 1; $i <= 3; $i++){ + $r = M2tree::AddObj("Issue$i", "Issue", $this->_t[$i<=2 ? 'p1' : 'p2']); + if (PEAR::isError($r)) { + return $r; + } $this->_t["i$i"] = $r; } - for($i=1; $i<=4; $i++){ - $r = $this->addObj("Section$i", "Section", - $this->_t[$i<=3 ? 'i1' : 'i3']); - if($this->dbc->isError($r)) return $r; + for ($i = 1; $i <= 4; $i++){ + $r = M2tree::AddObj("Section$i", "Section", $this->_t[$i<=3 ? 'i1' : 'i3']); + if (PEAR::isError($r)) { + return $r; + } $this->_t["s$i"] = $r; } - $r = $this->addObj("Par1", "Par", $this->_t["s2"]); - if($this->dbc->isError($r)) return $r; + $r = M2tree::AddObj("Par1", "Par", $this->_t["s2"]); + if (PEAR::isError($r)) { + return $r; + } $this->_t["r1"] = $r; } + + function _test_check($title, $expected, $returned) { - if($expected !== $returned){ - return $this->dbc->raiseError( + global $CC_DBC; + if ($expected !== $returned){ + return $CC_DBC->raiseError( "m2tree::$title FAILED:\n". " ###expected:\n$expected\n ---\n". " ###returned:\n$returned\n ---\n" @@ -36,13 +47,17 @@ class M2treeTest extends M2tree { } return "# ".get_class($this)."::$title: OK\n"; } + + function _test() { echo "# M2tree test:\n"; // addObj/dumpTree test: $r = $this->_test_init(); - if($this->dbc->isError($r)) return $r; + if (PEAR::isError($r)) { + return $r; + } $expected = "RootNode Publication1 Issue1 @@ -56,27 +71,46 @@ class M2treeTest extends M2tree { Section4 Publication3 "; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); - if($this->dbc->isError($returned)) return $returned; + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); + if (PEAR::isError($returned)) { + return $returned; + } $r = $this->_test_check('addObj/dumpTree', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // shaking test: - $nid = $this->copyObj($this->_t['s2'], $this->_t['s4']); - if($this->dbc->isError($nid)) return $nid; - $r = $this->removeObj($this->_t['s2']); - if($this->dbc->isError($r)) return $r; - $r = $this->moveObj($nid, $this->_t['i1']); - if($this->dbc->isError($r)) return $r; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); - if($this->dbc->isError($returned)) return $returned; + $nid = M2tree::CopyObj($this->_t['s2'], $this->_t['s4']); + if (PEAR::isError($nid)) { + return $nid; + } + $r = M2tree::RemoveObj($this->_t['s2']); + if (PEAR::isError($r)) { + return $r; + } + $r = M2tree::MoveObj($nid, $this->_t['i1']); + if (PEAR::isError($r)) { + return $r; + } + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); + if (PEAR::isError($returned)) { + return $returned; + } $r = $this->_test_check('shaking test', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; - + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // removeObj test: - $r = $this->removeObj($this->_t['p2']); - if($this->dbc->isError($r)) return $r; + $r = M2tree::RemoveObj($this->_t['p2']); + if (PEAR::isError($r)) { + return $r; + } $expected = "RootNode Publication1 Issue1 @@ -87,67 +121,111 @@ class M2treeTest extends M2tree { Issue2 Publication3 "; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); $r = $this->_test_check('removeObj', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // renameObj/getObjName test: - $original = $this->getObjName($this->_t['i2']); - if($this->dbc->isError($original)) return $original; + $original = M2tree::GetObjName($this->_t['i2']); + if (PEAR::isError($original)) { + return $original; + } $changed = 'Issue2_changed'; $expected = $original.$changed; - $r = $this->renameObj($this->_t['i2'], $changed); - if($this->dbc->isError($r)) return $r; - $r = $this->getObjName($this->_t['i2']); - if($this->dbc->isError($r)) return $r; + $r = M2tree::RenameObj($this->_t['i2'], $changed); + if (PEAR::isError($r)) { + return $r; + } + $r = M2tree::GetObjName($this->_t['i2']); + if (PEAR::isError($r)) { + return $r; + } $returned = $r; - $r = $this->renameObj($this->_t['i2'], $original); - if($this->dbc->isError($r)) return $r; - $r = $this->getObjName($this->_t['i2']); + $r = M2tree::RenameObj($this->_t['i2'], $original); + if (PEAR::isError($r)) { + return $r; + } + $r = M2tree::GetObjName($this->_t['i2']); $returned = $r.$returned; - if($this->dbc->isError($r)) return $r; + if (PEAR::isError($r)) { + return $r; + } $r = $this->_test_check('renameObj/getObjName', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getPath test: $expected = "RootNode, Publication1, Issue1, Section3"; - $r = $this->getPath($this->_t['s3'], 'name'); + $r = M2tree::GetPath($this->_t['s3'], 'name'); $returned = join(', ', array_map(create_function('$it', 'return $it["name"];'), $r)); $r = $this->_test_check('getPath', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getObjType test: $expected = 'Issue'; - $returned = $this->getObjType($this->_t['i2']); + $returned = M2tree::GetObjType($this->_t['i2']); $r = $this->_test_check('getObjType', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getParent test: $expected = $this->_t['p1']; - $returned = $this->getParent($this->_t['i2']); + $returned = M2tree::GetParent($this->_t['i2']); $r = $this->_test_check('getParent', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getDir test: $expected = "Issue1, Issue2"; - $r = $this->getDir($this->_t['p1'], 'name'); + $r = M2tree::GetDir($this->_t['p1'], 'name'); $returned = join(', ', array_map(create_function('$it', 'return $it["name"];'), $r)); $r = $this->_test_check('getDir', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getObjId test: $expected = $this->_t['i2']; - $returned = $this->getObjId('Issue2', $this->_t['p1']); + $returned = M2tree::GetObjId('Issue2', $this->_t['p1']); $r = $this->_test_check('getObjId', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // getObjLevel test: $expected = 2; - $r = $this->getObjLevel($this->_t['i2']); - if($this->dbc->isError($r)) return $r; + $r = M2tree::GetObjLevel($this->_t['i2']); + if (PEAR::isError($r)) { + return $r; + } $returned = $r['level']; $r = $this->_test_check('getObjLevel', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // copyObj test: $expected = "RootNode @@ -165,12 +243,18 @@ class M2treeTest extends M2tree { Par1 Section3 "; - $nid = $this->copyObj($this->_t['i1'], $this->_t['p3']); - if($this->dbc->isError($nid)) return $nid; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); + $nid = M2tree::CopyObj($this->_t['i1'], $this->_t['p3']); + if (PEAR::isError($nid)) { + return $nid; + } + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); $r = $this->_test_check('copyObj', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; - $this->removeObj($nid); + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } + M2tree::RemoveObj($nid); // moveObj test: $expected = "RootNode @@ -183,24 +267,36 @@ class M2treeTest extends M2tree { Par1 Section3 "; - $r = $this->moveObj($this->_t['i1'], $this->_t['p3']); - if($this->dbc->isError($r)) return $r; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); + $r = M2tree::MoveObj($this->_t['i1'], $this->_t['p3']); + if (PEAR::isError($r)) { + return $r; + } + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); $r = $this->_test_check('moveObj', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } // _cutSubtree test: // _pasteSubtree test: - echo $this->dumpTree(); + echo M2tree::DumpTree(); // reset test: $expected = "RootNode\n"; - $r = $this->reset(); - if($this->dbc->isError($r)) return $r; - $returned = $this->dumpTree(NULL, ' ', '', '{name}'); + $r = M2tree::reset(); + if (PEAR::isError($r)) { + return $r; + } + $returned = M2tree::DumpTree(NULL, ' ', '', '{name}'); $r = $this->_test_check('reset', $expected, $returned); - if($this->dbc->isError($r)) return $r; else echo $r; + if (PEAR::isError($r)) { + return $r; + } else { + echo $r; + } echo "# M2tree OK\n"; return TRUE; diff --git a/campcaster/src/modules/alib/var/m2treeTestRunner.php b/campcaster/src/modules/alib/var/m2treeTestRunner.php index bb403ba8d..4d35bdc97 100644 --- a/campcaster/src/modules/alib/var/m2treeTestRunner.php +++ b/campcaster/src/modules/alib/var/m2treeTestRunner.php @@ -1,13 +1,15 @@ \n"; echo "request: "; print_r($_REQUEST); echo "\ngm:\n".$err->getMessage()."\nui:\n".$err->getUserInfo()."\n"; @@ -17,47 +19,52 @@ function errCallback($err) exit; } -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$m2 = new M2treeTest($dbc, $config); +$m2 = new M2treeTest(); #$m2->uninstall(); #exit; -#$r = $m2->install(); if($dbc->isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } +#$r = $m2->install(); if(PEAR::isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } -$m2->reset(); -#$r = $m2->_test_addObj(); if($dbc->isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } -$r = $m2->_test(); if($dbc->isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } +M2tree::reset(); +#$r = $m2->_test_addObj(); if(PEAR::isError($r)){ echo $r->getMessage()."\n".$r->getUserInfo()."\n"; exit; } +$r = $m2->_test(); +if (PEAR::isError($r)) { + echo $r->getMessage()."\n".$r->getUserInfo()."\n"; + exit; +} /* $parid = $m2->_t['s1']; for($i=1; $i<=20; $i++){ $r = $m2->addObj("X$i", "XX", $parid); - if($m2->dbc->isError($r)) return $r; + if (PEAR::isError($r)) return $r; $parid = $r; //$m2->_t["p$i"] = $r; } -$r = $m2->dumpTree(); echo "$r\n"; +$r = M2tree::DumpTree(); echo "$r\n"; */ -#$r = $m2->getSubTree($m2->_t['i1'], TRUE); var_dump($r); +#$r = M2tree::GetSubTree($m2->_t['i1'], TRUE); var_dump($r); #$r = $m2->getPath($m2->_t['r1'], 'id, name, level'); var_dump($r); #$r = $m2->getPath($m2->_t['r1'], 'id, name, level', TRUE); var_dump($r); /* -foreach($m2->getAllObjects() as $k=>$obj){ - $r = $m2->isChildOf($m2->_t['r1'], $obj['id'], TRUE); +foreach(M2tree::GetAllObjects() as $k=>$obj){ + $r = M2tree::IsChildOf($m2->_t['r1'], $obj['id'], TRUE); echo "{$obj['name']}: $r\n"; } */ #$r = $m2->getDir($m2->_t['i1'], 'id, name, level'); var_dump($r); #$r = $m2->getPath($m2->_t['s3'], 'name'); var_dump($r); #$r = $m2->addObj("Issue1", "XX", $m2->_t["s4"]); var_dump($r); -#$r = $m2->moveObj($m2->_t['i1'], $m2->_t['s4']); var_dump($r); -#$r = $m2->copyObj($m2->_t['i1'], $m2->_t['s4']); var_dump($r); -#$r = $m2->removeObj($m2->_t['p2']); var_dump($r); +#$r = M2tree::MoveObj($m2->_t['i1'], $m2->_t['s4']); var_dump($r); +#$r = M2tree::CopyObj($m2->_t['i1'], $m2->_t['s4']); var_dump($r); +#$r = M2tree::RemoveObj($m2->_t['p2']); var_dump($r); #$r = $m2->renameObj($m2->_t['s1'], 'Section2'); var_dump($r); #$r = $m2->renameObj($m2->_t['s3'], 'Section2'); var_dump($r); -$r = $m2->dumpTree(); echo "$r\n"; +$r = M2tree::DumpTree(); +echo "$r\n"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/alib/var/xmlrpc/alib_xr.php b/campcaster/src/modules/alib/var/xmlrpc/alib_xr.php index 1fee1f3f9..5e3a531e9 100644 --- a/campcaster/src/modules/alib/var/xmlrpc/alib_xr.php +++ b/campcaster/src/modules/alib/var/xmlrpc/alib_xr.php @@ -1,95 +1,147 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage Alib + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -include_once "xmlrpc.inc"; -include_once "xmlrpcs.inc"; -require_once "../example/alib_h.php"; +include_once("xmlrpc.inc"); +include_once("xmlrpcs.inc"); +require_once("../example/alib_h.php"); -function v2xr($var, $struct=true){ - if(is_array($var)){ +function v2xr($var, $struct=true) +{ + if (is_array($var)) { $r = array(); - foreach($var as $k=>$v) if($struct) $r[$k]=v2xr($v); else $r[]=v2xr($v); + foreach ($var as $k => $v) { + if ($struct) { + $r[$k] = v2xr($v); + } else { + $r[] = v2xr($v); + } + } return new xmlrpcval($r, ($struct ? "struct":"array")); - }else if(is_int($var)){ + } else if(is_int($var)) { return new xmlrpcval($var, "int"); - }else{ + } else { return new xmlrpcval($var, "string"); } } + /** * XMLRPC interface for Alib class
* only for testing now (with example) - Campcaster uses special interface * - * @author $Author$ - * @version $Revision$ - * @see Subjects - * @see GreenBox + * @author Tomas Hlava + * @author Paul Baranowski + * @version $Revision$ + * @package Campcaster + * @subpackage Alib + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -class XR_Alib extends Alib{ - function xr_test($input){ - $p1=$input->getParam(0); - if(isset($p1) && $p1->scalartyp()=="string") $s=$p1->scalarval(); - else return new xmlrpcresp(0, 801, - "xr_login: wrong 1st parameter, string expected."); - $p2=$input->getParam(1); - if(isset($p2) && $p2->scalartyp()=="string") $sessid=$p2->scalarval(); - else return new xmlrpcresp(0, 801, - "xr_login: wrong 2nd parameter, string expected."); - return new xmlrpcresp( - v2xr(strtoupper($s)."_".$this->getSessLogin($sessid)."_".$sessid, false) - ); - } - function xr_login($input){ - $p1=$input->getParam(0); - if(isset($p1) && $p1->scalartyp()=="string") $login=$p1->scalarval(); - else return new xmlrpcresp(0, 801, - "xr_login: wrong 1st parameter, string expected."); - $p2=$input->getParam(1); - if(isset($p2) && $p2->scalartyp()=="string") $pass=$p2->scalarval(); - else return new xmlrpcresp(0, 801, - "xr_login: wrong 2nd parameter, string expected."); - if(!($res = $this->login($login, $pass))) - return new xmlrpcresp(0, 802, - "xr_login: login failed - incorrect username or password."); - else +class XR_Alib { +//class XR_Alib extends Alib { + function xr_test($input) + { + $p1 = $input->getParam(0); + if (isset($p1) && $p1->scalartyp()=="string") { + $s = $p1->scalarval(); + } else { + return new xmlrpcresp(0, 801, + "xr_login: wrong 1st parameter, string expected."); + } + $p2 = $input->getParam(1); + if (isset($p2) && $p2->scalartyp() == "string") { + $sessid=$p2->scalarval(); + } else { + return new xmlrpcresp(0, 801, + "xr_login: wrong 2nd parameter, string expected."); + } + return new xmlrpcresp( + v2xr(strtoupper($s)."_".Alib::GetSessLogin($sessid)."_".$sessid, false) + ); + } + + + function xr_login($input) + { + $p1 = $input->getParam(0); + if (isset($p1) && $p1->scalartyp()=="string") { + $login = $p1->scalarval(); + } + else { + return new xmlrpcresp(0, 801, + "xr_login: wrong 1st parameter, string expected."); + } + $p2 = $input->getParam(1); + if (isset($p2) && $p2->scalartyp() == "string") { + $pass = $p2->scalarval(); + } else { + return new xmlrpcresp(0, 801, + "xr_login: wrong 2nd parameter, string expected."); + } + if (!($res = Alib::Login($login, $pass))) { + return new xmlrpcresp(0, 802, + "xr_login: login failed - incorrect username or password."); + } else { + return new xmlrpcresp(v2xr($res, false)); + } + } + + + function xr_logout($input) + { + $p1 = $input->getParam(0); + if (isset($p1) && $p1->scalartyp()=="string") { + $sessid=$p1->scalarval(); + } else { + return new xmlrpcresp(0, 801, + "xr_login: wrong 2nd parameter, string expected."); + } + $res = Alib::Logout($sessid); + if (!PEAR::isError($res)) { + return new xmlrpcresp(v2xr('Bye', false)); + } else { + return new xmlrpcresp(0, 803, + "xr_logout: logout failed - not logged."); + } + } + + + function xr_getDir($input) + { + $p1 = $input->getParam(0); + if (!(isset($p1) && ($p1->scalartyp()=="int") && is_numeric($id=$p1->scalarval()))) { + return new xmlrpcresp(0, 801, + "xr_getDir: wrong 1st parameter, int expected."); + } + $res = M2tree::GetDir($id, 'name'); return new xmlrpcresp(v2xr($res, false)); - } - function xr_logout($input){ - $p1=$input->getParam(0); - if(isset($p1) && $p1->scalartyp()=="string") $sessid=$p1->scalarval(); - else return new xmlrpcresp(0, 801, - "xr_login: wrong 2nd parameter, string expected."); - $res = $this->logout($sessid); - if(!PEAR::isError($res)) return new xmlrpcresp(v2xr('Bye', false)); - else return new xmlrpcresp(0, 803, - "xr_logout: logout failed - not logged."); - } - function xr_getDir($input){ - $p1=$input->getParam(0); - if(isset($p1) && ($p1->scalartyp()=="int") && - is_numeric($id=$p1->scalarval())); - else return new xmlrpcresp(0, 801, - "xr_getDir: wrong 1st parameter, int expected."); - $res = $this->getDir($id, 'name'); - return new xmlrpcresp(v2xr($res, false)); - } - function xr_getPath($input){ - $p1=$input->getParam(0); - if(isset($p1) && ($p1->scalartyp()=="int") && - is_numeric($id=$p1->scalarval())); - else return new xmlrpcresp(0, 801, - "xr_getPath: wrong 1st parameter, int expected."); - $res = $this->getPath($id, 'id, name'); - return new xmlrpcresp(v2xr($res, false)); - } -} + } + + + function xr_getPath($input) + { + $p1 = $input->getParam(0); + if (!(isset($p1) && ($p1->scalartyp()=="int") && is_numeric($id=$p1->scalarval()))) { + return new xmlrpcresp(0, 801, + "xr_getPath: wrong 1st parameter, int expected."); + } + $res = M2tree::GetPath($id, 'id, name'); + return new xmlrpcresp(v2xr($res, false)); + } +} // class XR_Alib -$alib = new XR_Alib($dbc, $config); +$alib = new XR_Alib(); -$s=new xmlrpc_server( array( +$s = new xmlrpc_server( array( "alib.xrTest" => array( "function" => array(&$alib, 'xr_test'), "signature" => array(array($xmlrpcString, $xmlrpcString, $xmlrpcString)), @@ -118,5 +170,5 @@ $s=new xmlrpc_server( array( ) )); -require_once"../example/alib_f.php"; +require_once("../example/alib_f.php"); ?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/Archive.php b/campcaster/src/modules/archiveServer/var/Archive.php index 48cb1f7af..617a69028 100644 --- a/campcaster/src/modules/archiveServer/var/Archive.php +++ b/campcaster/src/modules/archiveServer/var/Archive.php @@ -30,12 +30,12 @@ class Archive extends XR_LocStor { */ function uploadOpen($sessid, $chsum) { - $owner = $this->getSessUserId($sessid); - if ($this->dbc->isError($owner)) { + $owner = Alib::GetSessUserId($sessid); + if (PEAR::isError($owner)) { return $owner; } $res = $this->bsOpenPut($chsum, NULL, $owner); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } return array('url'=>$res['url'], 'token'=>$res['token']); @@ -70,7 +70,7 @@ class Archive extends XR_LocStor { function uploadClose($token, $trtype, $pars=array()) { $res = $this->bsClosePut($token); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } extract($res); // fname, owner @@ -78,7 +78,7 @@ class Archive extends XR_LocStor { case "audioclip": $mdtoken = $pars['mdpdtoken']; $res = $this->bsClosePut($mdtoken); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } $mdfname = $res['fname']; @@ -86,13 +86,13 @@ class Archive extends XR_LocStor { $gunid = NULL; } $parid = $this->_getHomeDirId($owner); - if ($this->dbc->isError($parid)) { + if (PEAR::isError($parid)) { return $parid; } $res = $this->bsPutFile($parid, $pars['name'], $fname, $mdfname, $pars['gunid'], 'audioclip', 'file'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } @unlink($fname); @@ -103,13 +103,13 @@ class Archive extends XR_LocStor { $gunid = NULL; } $parid = $this->_getHomeDirId($owner); - if ($this->dbc->isError($parid)) { + if (PEAR::isError($parid)) { return $parid; } $res = $this->bsPutFile($parid, $pars['name'], '', $fname, $pars['gunid'], 'playlist', 'file'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } @unlink($fname); @@ -118,14 +118,14 @@ class Archive extends XR_LocStor { $chsum = md5_file($fname); // importPlaylistOpen: $res = $this->bsOpenPut($chsum, NULL, $owner); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } $dest = $res['fname']; $token = $res['token']; copy($fname, $dest); $r = $this->importPlaylistClose($token); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } @unlink($fname); @@ -136,17 +136,17 @@ class Archive extends XR_LocStor { $criteria = unserialize($crits); @unlink($fname); $results = $this->localSearch($criteria); - if ($this->dbc->isError($results)) { + if (PEAR::isError($results)) { return $results; } $realfile = tempnam($this->accessDir, 'searchjob_'); @chmod($realfile, 0660); $len = file_put_contents($realfile, serialize($results)); $acc = $this->bsAccess($realfile, '', NULL, 'download'); - if ($this->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } - $url = $this->getUrlPart()."access/".basename($acc['fname']); + $url = BasicStor::GetUrlPart()."access/".basename($acc['fname']); $chsum = md5_file($realfile); $size = filesize($realfile); $res = array( @@ -179,6 +179,7 @@ class Archive extends XR_LocStor { */ function downloadOpen($sessid, $trtype, $pars=array()) { + global $CC_CONFIG; switch ($trtype) { case "unknown": case "audioclip": @@ -193,8 +194,8 @@ class Archive extends XR_LocStor { $gunid = $pars['gunid']; // resolve trtype by object type: if ( ($trtype == 'unknown') || ($trtype == 'playlistPkg') ) { - $trtype2 = $this->_getType($gunid); - if ($this->dbc->isError($trtype2)) { + $trtype2 = BasicStor::GetType($gunid); + if (PEAR::isError($trtype2)) { return $trtype2; } // required with content: @@ -214,10 +215,10 @@ class Archive extends XR_LocStor { break; case "playlistPkg": $res = $this->bsExportPlaylistOpen($gunid); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } - $tmpn = tempnam($this->transDir, 'plExport_'); + $tmpn = tempnam($CC_CONFIG['transDir'], 'plExport_'); $plfpath = "$tmpn.lspl"; copy($res['fname'], $plfpath); $res = $this->bsExportPlaylistClose($res['token']); @@ -225,12 +226,12 @@ class Archive extends XR_LocStor { return $res; } $fname = "transported_playlist.lspl"; - $id = $this->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); $acc = $this->bsAccess($plfpath, 'lspl', NULL, 'download'); - if ($this->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } - $url = $this->getUrlPart()."access/".basename($acc['fname']); + $url = BasicStor::GetUrlPart()."access/".basename($acc['fname']); $chsum = md5_file($plfpath); $size = filesize($plfpath); $res = array( @@ -248,7 +249,7 @@ class Archive extends XR_LocStor { default: return PEAR::raiseError("Archive::downloadOpen: NotImpl ($trtype)"); } - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } switch ($trtype) { @@ -289,7 +290,7 @@ class Archive extends XR_LocStor { switch ($trtype) { case "audioclip": $res = $this->downloadRawAudioDataClose($token); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } return $res; @@ -301,14 +302,14 @@ class Archive extends XR_LocStor { return $res; case "playlistPkg": $res = $this->bsRelease($token, 'download'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } $realFname = $r['realFname']; @unlink($realFname); if (preg_match("|(plExport_[^\.]+)\.lspl$|", $realFname, $va)) { list(,$tmpn) = $va; - $tmpn = "{$this->transDir}/$tmpn"; + $tmpn = $CC_CONFIG['transDir']."/$tmpn"; if (file_exists($tmpn)) { @unlink($tmpn); } diff --git a/campcaster/src/modules/archiveServer/var/conf.php b/campcaster/src/modules/archiveServer/var/conf.php index 37989b04b..3460d16b1 100644 --- a/campcaster/src/modules/archiveServer/var/conf.php +++ b/campcaster/src/modules/archiveServer/var/conf.php @@ -1,14 +1,9 @@ array( 'username' => 'test', 'password' => 'test', 'hostspec' => 'localhost', 'phptype' => 'pgsql', - 'database' => 'Campcaster-test', + 'database' => 'Campcaster-paul', ), 'tblNamePrefix' => 'as_', @@ -101,32 +96,50 @@ $config = array( 'RootNode' => 'RootNode', 'tmpRootPass' => 'q', ); -$config['sysSubjs'] = array( - 'root', $config['AdminsGr'], $config['AllGr'], $config['StationPrefsGr'] + +// Add database table names +$CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files'; +$CC_CONFIG['mdataTable'] = $CC_CONFIG['tblNamePrefix'].'mdata'; +$CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access'; +$CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms'; +$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess'; +$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs'; +$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb'; +$CC_CONFIG['classTable'] = $CC_CONFIG['tblNamePrefix'].'classes'; +$CC_CONFIG['cmembTable'] = $CC_CONFIG['tblNamePrefix'].'cmemb'; +$CC_CONFIG['treeTable'] = $CC_CONFIG['tblNamePrefix'].'tree'; +$CC_CONFIG['structTable'] = $CC_CONFIG['tblNamePrefix'].'struct'; +$CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans'; +$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref'; + +$CC_CONFIG['sysSubjs'] = array( + 'root', $CC_CONFIG['AdminsGr'], $CC_CONFIG['AllGr'], $CC_CONFIG['StationPrefsGr'] ); $old_ip = get_include_path(); -set_include_path('.'.PATH_SEPARATOR.$config['pearPath'].PATH_SEPARATOR.$old_ip); +set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_ip); -// see if a ~/.campcaster/archiveServer.conf.php exists, and -// overwrite the settings from there if any - -$this_file = null; -if(isset($_SERVER["SCRIPT_FILENAME"])){ - $this_file = $_SERVER["SCRIPT_FILENAME"]; -}elseif(isset($argv[0])){ - $this_file = $argv[0]; +// +// See if a ~/.campcaster/archiveServer.conf.php exists, and +// overwrite the settings from there, if any. +// +$this_file = null; +if (isset($_SERVER["SCRIPT_FILENAME"])) { + $this_file = $_SERVER["SCRIPT_FILENAME"]; +} elseif(isset($argv[0])) { + $this_file = $argv[0]; } -if(!is_null($this_file)){ - $fileowner_id = fileowner($this_file); - $fileowner_array = posix_getpwuid($fileowner_id); + +if (!is_null($this_file)) { + $fileowner_id = fileowner($this_file); + $fileowner_array = posix_getpwuid($fileowner_id); $fileowner_homedir = $fileowner_array['dir']; - $home_conf = $fileowner_homedir . '/.campcaster/archiveServer.conf.php'; + $home_conf = $fileowner_homedir . '/.campcaster/archiveServer.conf.php'; if (file_exists($home_conf)) { - $default_config = $config; - include $home_conf; - $user_config = $config; - $config = $user_config + $default_config; + $default_config = $CC_CONFIG; + include($home_conf); + $user_config = $CC_CONFIG; + $CC_CONFIG = $user_config + $default_config; } } -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/conf.php.template b/campcaster/src/modules/archiveServer/var/conf.php.template index 7a4fb472d..003f5cc2d 100644 --- a/campcaster/src/modules/archiveServer/var/conf.php.template +++ b/campcaster/src/modules/archiveServer/var/conf.php.template @@ -1,15 +1,6 @@ - * @author Paul Baranowski - * @version $Revision$ - * @package Campcaster - * @subpackage ArchiveServer - * @copyright 2006 MDLF, Inc. - * @license http://www.gnu.org/licenses/gpl.txt - * @link http://www.campware.org */ define('CAMPCASTER_VERSION', '1.1.1'); @@ -41,7 +32,7 @@ define('CAMPCASTER_VERSION', '1.1.1'); // these are the default values for the config -$config = array( +$CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'ls_dbuser', @@ -105,9 +96,25 @@ $config = array( 'RootNode' => 'RootNode', 'tmpRootPass' => 'q', ); -$config['sysSubjs'] = array( - 'root', $config['AdminsGr'], $config['AllGr'], $config['StationPrefsGr'] + +// Add database table names +$CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files'; +$CC_CONFIG['mdataTable'] = $CC_CONFIG['tblNamePrefix'].'mdata'; +$CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access'; +$CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms'; +$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess'; +$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs'; +$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb'; +$CC_CONFIG['classTable'] = $CC_CONFIG['tblNamePrefix'].'classes'; +$CC_CONFIG['cmembTable'] = $CC_CONFIG['tblNamePrefix'].'cmemb'; +$CC_CONFIG['treeTable'] = $CC_CONFIG['tblNamePrefix'].'tree'; +$CC_CONFIG['structTable'] = $CC_CONFIG['tblNamePrefix'].'struct'; +$CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans'; +$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref'; + +$CC_CONFIG['sysSubjs'] = array( + 'root', $CC_CONFIG['AdminsGr'], $CC_CONFIG['AllGr'], $CC_CONFIG['StationPrefsGr'] ); $old_ip = get_include_path(); -set_include_path('.'.PATH_SEPARATOR.$config['pearPath'].PATH_SEPARATOR.$old_ip); -?> +set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_ip); +?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/conf_only.php.template b/campcaster/src/modules/archiveServer/var/conf_only.php.template index 3926e0bf9..9b922e504 100644 --- a/campcaster/src/modules/archiveServer/var/conf_only.php.template +++ b/campcaster/src/modules/archiveServer/var/conf_only.php.template @@ -1,11 +1,6 @@ archiveUrlHost, archiveUrlPort
host and port of archiveServer * */ -$config = array( +$CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'ls_dbuser', @@ -52,4 +47,4 @@ $config = array( #'archiveUrlPort' => ls_php_port, ); -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/install/getWwwRoot.php b/campcaster/src/modules/archiveServer/var/install/getWwwRoot.php index 704c4326e..bba88e20b 100644 --- a/campcaster/src/modules/archiveServer/var/install/getWwwRoot.php +++ b/campcaster/src/modules/archiveServer/var/install/getWwwRoot.php @@ -8,8 +8,8 @@ * This script returns storage root URL *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - require "../conf.php"; - echo "http://{$config['storageUrlHost']}:{$config['storageUrlPort']}". - "{$config['storageUrlPath']}"; +header("Content-type: text/plain"); +require("../conf.php"); +echo "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/install/getXrUrl.php b/campcaster/src/modules/archiveServer/var/install/getXrUrl.php index be7f47a06..104545060 100644 --- a/campcaster/src/modules/archiveServer/var/install/getXrUrl.php +++ b/campcaster/src/modules/archiveServer/var/install/getXrUrl.php @@ -8,8 +8,8 @@ * This script returns storage XMLRPC root URL *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - require "../conf.php"; - echo "http://{$config['storageUrlHost']}:{$config['storageUrlPort']}". - "{$config['storageUrlPath']}/{$config['storageXMLRPC']}"; +header("Content-type: text/plain"); +require("../conf.php"); +echo "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/install/install.php b/campcaster/src/modules/archiveServer/var/install/install.php index cc0068971..87bf12127 100644 --- a/campcaster/src/modules/archiveServer/var/install/install.php +++ b/campcaster/src/modules/archiveServer/var/install/install.php @@ -1,7 +1,14 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage ArchiveServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org + * */ // no remote execution @@ -13,89 +20,16 @@ if (isset($arr["DOCUMENT_ROOT"]) && $arr["DOCUMENT_ROOT"] != "") { exit(1); } -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../Archive.php'; +echo "*************************\n"; +echo "* ArchiveServer Install *\n"; +echo "*************************\n"; -function errCallback($err) -{ - if (assert_options(ASSERT_ACTIVE) == 1) { - return; - } - echo "ERROR:\n"; - echo "request: "; print_r($_REQUEST); - echo "gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo(). - "\nui:\n".$err->getUserInfo()."\n"; - exit(1); -} +require_once('../conf.php'); +require_once('../../../storageServer/var/GreenBox.php'); +require_once('../../../storageServer/var/install/installMain.php'); -if (!function_exists('pg_connect')) { - trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR); - exit(2); -} +echo "**********************************\n"; +echo "* ArchiveServer Install Complete *\n"; +echo "**********************************\n"; -PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { - echo $dbc->getMessage()."\n"; - echo $dbc->getUserInfo()."\n"; - echo "Database connection problem.\n"; - echo "Check if database '{$config['dsn']['database']}' exists". - " with corresponding permissions.\n"; - echo "Database access is defined by 'dsn' values in var/conf.php.\n"; - exit(1); -} - -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new Archive($dbc, $config, TRUE); -$tr = new Transport($gb); - -echo "# archiveServer step 2:\n# trying uninstall ...\n"; -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$gb->uninstall(); -$tr->uninstall(); - -echo "# Install ...\n"; -#PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
\n"); -PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s
\n"); -$r = $gb->install(); -if (PEAR::isError($r)) { - echo $r->getUserInfo()."\n"; - exit(1); -} - -echo "# Testing ...\n"; -$r = $gb->test(); -if (PEAR::isError($r)) { - echo $r->getMessage()."\n"; - exit(1); -} -$log = $gb->test_log; -if ($log) { - echo "# testlog:\n{$log}"; -} - -echo "# Delete test data ...\n"; -$gb->deleteData(); - -if (!($fp = @fopen($config['storageDir']."/_writeTest", 'w'))) { - echo "\nmake {$config['storageDir']} dir webdaemon-writeable". - "\nand run install again\n\n"; - exit(1); -} else { - fclose($fp); unlink($config['storageDir']."/_writeTest"); - echo "#archiveServer install: OK\n\n"; -} - -echo "# Install Transport submodule ..."; -$r = $tr->install(); -if (PEAR::isError($r)) { - echo $r->getMessage()."\n"; - echo $r->getUserInfo()."\n"; - exit(1); -} -echo "# OK\n"; - - -$dbc->disconnect(); ?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/install/uninstall.php b/campcaster/src/modules/archiveServer/var/install/uninstall.php index 7845827df..5475db525 100644 --- a/campcaster/src/modules/archiveServer/var/install/uninstall.php +++ b/campcaster/src/modules/archiveServer/var/install/uninstall.php @@ -1,52 +1,34 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage ArchiveServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../Archive.php'; -function errCallback($err) -{ - if (assert_options(ASSERT_ACTIVE) == 1) { - return; - } - echo "ERROR:\n"; - echo "request: "; print_r($_REQUEST); - echo "gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo(). - "\nui:\n".$err->getUserInfo()."\n
\n"; - exit(1); +// Do not allow remote execution. +$arr = array_diff_assoc($_SERVER, $_ENV); +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { + header("HTTP/1.1 400"); + header("Content-type: text/plain; charset=UTF-8"); + echo "400 Not executable\r\n"; + exit; } -PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
\n"); -$dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { - echo "Database connection problem.\n"; - echo "Check if database '{$config['dsn']['database']}' exists". - " with corresponding permissions.\n"; - echo "Database access is defined by 'dsn' values in conf.php.\n"; - exit(1); -} +echo "***************************\n"; +echo "* ArchiveServer Uninstall *\n"; +echo "***************************\n"; -echo "#ArchiveServer uninstall:\n"; -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new Archive($dbc, $config, TRUE); -$tr = new Transport($gb); +require_once('../conf.php'); +require_once('../../../storageServer/var/install/uninstallMain.php'); +echo "************************************\n"; +echo "* ArchiveServer Uninstall Complete *\n"; +echo "************************************\n"; -echo "# Uninstall Transport submodule ..."; -$r = $tr->uninstall(); -if (PEAR::isError($r)) { - echo $r->getUserInfo()."\n"; - exit; -} -echo "\n"; - -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$gb->uninstall(); -echo "#ArchiveServer uninstall: OK\n"; - -$dbc->disconnect(); ?> \ No newline at end of file diff --git a/campcaster/src/modules/archiveServer/var/xmlrpc/XR_Archive.php b/campcaster/src/modules/archiveServer/var/xmlrpc/XR_Archive.php index dbe771098..b848895c3 100644 --- a/campcaster/src/modules/archiveServer/var/xmlrpc/XR_Archive.php +++ b/campcaster/src/modules/archiveServer/var/xmlrpc/XR_Archive.php @@ -105,7 +105,7 @@ class XR_Archive extends Archive { /** - * @param XMLRPC_strcut $input + * @param XML_RPC_Message $input * @return XML_RPC_Response */ function xr_downloadOpen($input) diff --git a/campcaster/src/modules/archiveServer/var/xmlrpc/put.php b/campcaster/src/modules/archiveServer/var/xmlrpc/put.php index 5105bccda..f89ffe48b 100644 --- a/campcaster/src/modules/archiveServer/var/xmlrpc/put.php +++ b/campcaster/src/modules/archiveServer/var/xmlrpc/put.php @@ -32,16 +32,17 @@ define('USE_FLOCK', TRUE); -require_once dirname(__FILE__).'/../conf.php'; -require_once 'DB.php'; -require_once dirname(__FILE__).'/../Archive.php'; +require_once(dirname(__FILE__).'/../conf.php'); +require_once('DB.php'); +require_once(dirname(__FILE__).'/../Archive.php'); PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new Archive($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$gb = new Archive($CC_DBC, $CC_CONFIG); -function http_error($code, $err) { +function http_error($code, $err) +{ header("HTTP/1.1 $code"); header("Content-type: text/plain; charset=UTF-8"); echo "$err\r\n"; @@ -61,7 +62,7 @@ if(!$tc){ http_error(403, "put.php: Token not valid ($token)."); } header("Content-type: text/plain"); -$destfile = "{$config['accessDir']}/{$token}"; +$destfile = "{$CC_CONFIG['accessDir']}/{$token}"; /* PUT data comes in on the input stream */ $putdata = @fopen("php://input", "r") or diff --git a/campcaster/src/modules/archiveServer/var/xmlrpc/xrArchive.php b/campcaster/src/modules/archiveServer/var/xmlrpc/xrArchive.php index 94249daa3..5bc95ca68 100644 --- a/campcaster/src/modules/archiveServer/var/xmlrpc/xrArchive.php +++ b/campcaster/src/modules/archiveServer/var/xmlrpc/xrArchive.php @@ -61,14 +61,14 @@ $old_error_handler = set_error_handler("errHndl", E_ALL); /* ============================================================= runable code */ -$dbc =& DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { - trigger_error("DB::connect: ".$dbc->getMessage()." ".$dbc->getUserInfo(),E_USER_ERROR); +$CC_DBC =& DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + trigger_error("DB::connect: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo(),E_USER_ERROR); } -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$archive = new XR_Archive($dbc, $config); +$archive = new XR_Archive($CC_DBC, $CC_CONFIG); $methods = array( 'test' => 'Tests toupper and checks sessid, params: '. diff --git a/campcaster/src/modules/htmlUI/var/html/ui_browser.php b/campcaster/src/modules/htmlUI/var/html/ui_browser.php index 71911665b..876fe6c42 100644 --- a/campcaster/src/modules/htmlUI/var/html/ui_browser.php +++ b/campcaster/src/modules/htmlUI/var/html/ui_browser.php @@ -133,7 +133,7 @@ if (isset($_REQUEST['popup']) && is_array($_REQUEST['popup'])){ case "PL.downloadExportedFile": $exportedPlaylist = $uiBrowser->gb->exportPlaylistOpen($uiBrowser->sessid, - $uiBrowser->gb->gunidFromId($_REQUEST['id']), + BasicStor::GunidFromId($_REQUEST['id']), $_REQUEST['playlisttype'], $_REQUEST['exporttype']=='playlistOnly'?true:false); $fp = fopen($exportedPlaylist['fname'],'r'); diff --git a/campcaster/src/modules/htmlUI/var/localizer/auth.inc.php b/campcaster/src/modules/htmlUI/var/localizer/auth.inc.php index fed5cf7e3..73f3a9c8b 100644 --- a/campcaster/src/modules/htmlUI/var/localizer/auth.inc.php +++ b/campcaster/src/modules/htmlUI/var/localizer/auth.inc.php @@ -5,32 +5,32 @@ function login(&$data) include_once(dirname(__FILE__).'/../../../storageServer/var/GreenBox.php'); include_once('DB.php'); - $dbc = DB::connect($config['dsn'], TRUE); + $CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); - if (DB::isError($dbc)) { - die($dbc->getMessage()); + if (DB::isError($CC_DBC)) { + die($CC_DBC->getMessage()); } - $dbc->setFetchMode(DB_FETCHMODE_ASSOC); - $gb = new GreenBox($dbc, $config); + $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); + $gb = new GreenBox(); if (!$data['PHP_AUTH_USER'] || !$data['PHP_AUTH_PW']) { return FALSE; } - $sessid = $gb->login($data['PHP_AUTH_USER'], $data['PHP_AUTH_PW']); + $sessid = Alib::Login($data['PHP_AUTH_USER'], $data['PHP_AUTH_PW']); if (!$sessid || PEAR::isError($sessid)){ return FALSE; } - setcookie($config['authCookieName'], $sessid); + setcookie($CC_CONFIG['authCookieName'], $sessid); - if ($gb->isMemberOf($gb->getSessUserId($sessid), $gb->getSubjId('Admins')) !== TRUE) { + if (Subjects::IsMemberOf(GreenBox::GetSessUserId($sessid), Subjects::GetSubjId('Admins')) !== TRUE) { return FALSE; } - $id = $gb->getObjId($data['PHP_AUTH_USER'], $gb->storId); + $id = M2tree::GetObjId($data['PHP_AUTH_USER'], $gb->storId); if (PEAR::isError($id)) { return FALSE; diff --git a/campcaster/src/modules/htmlUI/var/templates/menu.tpl b/campcaster/src/modules/htmlUI/var/templates/menu.tpl index 130c96d21..811e9d6f5 100644 --- a/campcaster/src/modules/htmlUI/var/templates/menu.tpl +++ b/campcaster/src/modules/htmlUI/var/templates/menu.tpl @@ -53,7 +53,7 @@ if (window.attachEvent) window.attachEvent("onload", sfHover);
  • ##Week##
  • ##Day##
  • ##Today##
  • - {* if $SUBJECTS->Base->gb->checkPerm($SUBJECTS->Base->userid, 'schedulerStatus') *} + {* if Alib::CheckPerm($SUBJECTS->Base->userid, 'schedulerStatus') *}
  • ##Status##
  • {* /if *} {* if $SUBJECTS->isMemberOf('Backup') *} diff --git a/campcaster/src/modules/htmlUI/var/templates/scheduler/main.tpl b/campcaster/src/modules/htmlUI/var/templates/scheduler/main.tpl index 8d25c89df..4818bfee9 100644 --- a/campcaster/src/modules/htmlUI/var/templates/scheduler/main.tpl +++ b/campcaster/src/modules/htmlUI/var/templates/scheduler/main.tpl @@ -12,7 +12,7 @@
  • ##Week##
  • ##Month##
  • ##Today##
  • - {* if $SUBJECTS->Base->gb->checkPerm($SUBJECTS->Base->userid, 'schedulerStatus') *} + {* if Alib::CheckPerm($SUBJECTS->Base->userid, 'schedulerStatus') *}
  • ##Status##
  • {* /if *} {* if $SUBJECTS->isMemberOf('Backup') *} diff --git a/campcaster/src/modules/htmlUI/var/templates/subjects/chgPasswd.tpl b/campcaster/src/modules/htmlUI/var/templates/subjects/chgPasswd.tpl index 43cd6bd74..4b08f50c3 100644 --- a/campcaster/src/modules/htmlUI/var/templates/subjects/chgPasswd.tpl +++ b/campcaster/src/modules/htmlUI/var/templates/subjects/chgPasswd.tpl @@ -1,6 +1,6 @@ -{assign var="dynform" value=$SUBJECTS->getChgPasswdForm($SUBJECTS->Base->gb->getSubjName($_REQUEST.id), false)} +{assign var="dynform" value=$SUBJECTS->getChgPasswdForm(Subjects::GetSubjName($_REQUEST.id), false)}
    -

    {tra str='Change password for: $1' 1=$SUBJECTS->Base->gb->getSubjName($_REQUEST.id)}

    +

    {tra str='Change password for: $1' 1=Subjects::GetSubjName($_REQUEST.id)}

    {include file="sub/dynForm_plain.tpl"}
    diff --git a/campcaster/src/modules/htmlUI/var/templates/subjects/manageGroupMember.tpl b/campcaster/src/modules/htmlUI/var/templates/subjects/manageGroupMember.tpl index 6e46ff3da..1f432317c 100644 --- a/campcaster/src/modules/htmlUI/var/templates/subjects/manageGroupMember.tpl +++ b/campcaster/src/modules/htmlUI/var/templates/subjects/manageGroupMember.tpl @@ -1,4 +1,4 @@ -{assign var="_gname" value=$SUBJECTS->Base->gb->getSubjName($_REQUEST.id)} +{assign var="_gname" value=Subjects::GetSubjName($_REQUEST.id)}

    {tra str='Manage Group: $1' 1=$_gname}

    diff --git a/campcaster/src/modules/htmlUI/var/ui_base.inc.php b/campcaster/src/modules/htmlUI/var/ui_base.inc.php index 39d9b3d10..985f1b73f 100644 --- a/campcaster/src/modules/htmlUI/var/ui_base.inc.php +++ b/campcaster/src/modules/htmlUI/var/ui_base.inc.php @@ -183,12 +183,7 @@ class uiBase /** * @var DB */ - public $dbc; - - /** - * @var array - */ - public $config; + //public $dbc; /** * @var string @@ -218,36 +213,31 @@ class uiBase * @param array $config * configuration data */ - public function __construct(&$config) + public function __construct() { - $this->dbc = DB::connect($config['dsn'], TRUE); - if (DB::isError($this->dbc)) { - die($this->dbc->getMessage()); - } - $this->dbc->setFetchMode(DB_FETCHMODE_ASSOC); - $this->gb = new GreenBox($this->dbc, $config); - $this->config =& $config; - $this->config['accessRawAudioUrl'] = $config['storageUrlPath'].'/xmlrpc/simpleGet.php'; - $this->sessid = isset($_REQUEST[$config['authCookieName']]) ? - $_REQUEST[$config['authCookieName']] : null; - $this->userid = $this->gb->getSessUserId($this->sessid); - $this->login = $this->gb->getSessLogin($this->sessid); + global $CC_DBC, $CC_CONFIG; + $this->gb = new GreenBox(); + $CC_CONFIG['accessRawAudioUrl'] = $CC_CONFIG['storageUrlPath'].'/xmlrpc/simpleGet.php'; + $this->sessid = isset($_REQUEST[$CC_CONFIG['authCookieName']]) ? + $_REQUEST[$CC_CONFIG['authCookieName']] : null; + $this->userid = GreenBox::GetSessUserId($this->sessid); + $this->login = Alib::GetSessLogin($this->sessid); if (PEAR::isError($this->login)) { $this->login = null; } $this->langid =& $_SESSION['langid']; if (!is_null($this->login)) { - if (isset($_REQUEST['id'])) { + if (isset($_REQUEST['id']) && is_numeric($_REQUEST['id'])) { $this->id = $_REQUEST['id']; } else { - $this->id = $this->gb->getObjId($this->login, $this->gb->storId); + $this->id = M2tree::GetObjId($this->login, $this->gb->storId); } - $this->pid = $this->gb->getparent($this->id) != 1 ? - $this->gb->getparent($this->id) : FALSE; - $this->type = $this->gb->getFileType($this->id); + $parentId = M2tree::GetParent($this->id); + $this->pid = ($parentId != 1) ? $parentId : FALSE; + $this->type = Greenbox::getFileType($this->id); $this->fid = ($this->type == 'Folder') ? $this->id : $this->pid; - $this->homeid = $this->gb->getObjId($this->login, $this->gb->storId); + $this->homeid = M2tree::GetObjId($this->login, $this->gb->storId); } } @@ -286,8 +276,9 @@ class uiBase $this->STATIONPREFS[$val['element']] = $setting; } elseif ($val['required']) { // set default values on first login - $this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $val['default']); - $this->STATIONPREFS[$val['element']] = $val['default']; + $default = isset($val['default'])?$val['default']:null; + $this->gb->saveGroupPref($this->sessid, 'StationPrefs', $val['element'], $default); + $this->STATIONPREFS[$val['element']] = $default; } } } @@ -473,7 +464,8 @@ class uiBase public function toHex($gunid) { - $res = $this->dbc->query("SELECT to_hex($gunid)"); + global $CC_DBC; + $res = $CC_DBC->query("SELECT to_hex($gunid)"); $row = $res->fetchRow(); return $row['to_hex']; } // fn toHex @@ -481,7 +473,8 @@ class uiBase public function toInt8($gunid) { - $res = $this->dbc->query("SELECT x'$gunid'::bigint"); + global $CC_DBC; + $res = $CC_DBC->query("SELECT x'$gunid'::bigint"); $row = $res->fetchRow(); return $row['int8']; } // fn toInt8 @@ -504,9 +497,9 @@ class uiBase public function getMetaInfo($id) { - $type = strtolower($this->gb->getFileType($id)); + $type = strtolower(GreenBox::getFileType($id)); $data = array('id' => $id, - 'gunid' => $this->gb->gunidFromId($id), + 'gunid' => BasicStor::GunidFromId($id), 'title' => $this->getMetadataValue($id, UI_MDATA_KEY_TITLE), 'creator' => $this->getMetadataValue($id, UI_MDATA_KEY_CREATOR), 'duration' => $this->getMetadataValue($id, UI_MDATA_KEY_DURATION), @@ -549,7 +542,7 @@ class uiBase */ private function _getFileTitle($id) { - if (is_array($arr = $this->gb->getPath($id))) { + if (is_array($arr = GreenBox::GetPath($id))) { $file = array_pop($arr); return $file['name']; } @@ -559,7 +552,7 @@ class uiBase // function _isFolder($id) // { -// if (strtolower($this->gb->getFileType($id)) != 'folder') { +// if (strtolower(GreenBox::getFileType($id)) != 'folder') { // return FALSE; // } // return TRUE; diff --git a/campcaster/src/modules/htmlUI/var/ui_browse.class.php b/campcaster/src/modules/htmlUI/var/ui_browse.class.php index 5c4c083c9..b397f6481 100644 --- a/campcaster/src/modules/htmlUI/var/ui_browse.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_browse.class.php @@ -250,7 +250,7 @@ class uiBrowse $this->results['cnt'] = $results['cnt']; foreach ($results['results'] as $rec) { - $tmpId = $this->Base->gb->idFromGunid($rec["gunid"]); + $tmpId = BasicStor::IdFromGunid($rec["gunid"]); $this->results['items'][] = $this->Base->getMetaInfo($tmpId); } diff --git a/campcaster/src/modules/htmlUI/var/ui_browser.class.php b/campcaster/src/modules/htmlUI/var/ui_browser.class.php index 8febaddfa..33bfe0cdb 100644 --- a/campcaster/src/modules/htmlUI/var/ui_browser.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_browser.class.php @@ -10,13 +10,10 @@ class uiBrowser extends uiBase { /** * Initialize a new Browser Class. * Call uiBase constructor. - * - * @param array $config - * configurartion data */ - public function __construct(&$config) + public function __construct() { - parent::__construct($config); + parent::__construct(); } // constructor @@ -86,8 +83,8 @@ class uiBrowser extends uiBase { */ function getUserInfo() { - return array('uname'=>$this->gb->getSessLogin($this->sessid), - 'uid' =>$this->gb->getSessUserId($this->sessid)); + return array('uname'=> Alib::GetSessLogin($this->sessid), + 'uid' => GreenBox::GetSessUserId($this->sessid)); } // fn getUserInfo @@ -102,14 +99,14 @@ class uiBrowser extends uiBase { function getStructure($id) { $data = array( - 'pathdata' => $this->gb->getPath($id, $this->sessid), - 'listdata' => $this->gb->getObjType($id)=='Folder' ? $this->gb->listFolder($id, $this->sessid) : array(), + 'pathdata' => GreenBox::GetPath($id, $this->sessid), + 'listdata' => BasicStor::GetObjType($id)=='Folder' ? $this->gb->listFolder($id, $this->sessid) : array(), ); $tree = isset($_REQUEST['tree']) ? $_REQUEST['tree'] : null; if ($tree == 'Y') { - $tmp = $this->gb->getSubTree($id, $this->sessid); + $tmp = M2tree::GetSubTree($id, $this->sessid); foreach ($tmp as $key=>$val) { - $val['type'] = $this->gb->getFileType($val['id']); + $val['type'] = Greenbox::getFileType($val['id']); $data['treedata'][$key] = $val; } } @@ -213,9 +210,9 @@ class uiBrowser extends uiBase { */ function permissions($id) { - return array('pathdata' => $this->gb->getPath($id), - 'perms' => $this->gb->getObjPerms($id), - 'actions' => $this->gb->getAllowedActions($this->gb->getObjType($id)), + return array('pathdata' => GreenBox::GetPath($id), + 'perms' => Alib::GetObjPerms($id), + 'actions' => Alib::GetAllowedActions(BasicStor::GetObjType($id)), 'subjects' => $this->gb->getSubjects(), 'id' => $id, 'loggedAs' => $this->login @@ -407,7 +404,7 @@ class uiBrowser extends uiBase { if ($type = stristr($val, "content-type:")) { $type = explode(':', $type); - foreach ($this->config['stream_types'] as $t) { + foreach ($CC_CONFIG['stream_types'] as $t) { if (preg_match('/'.str_replace('/', '\/', $t).'/i', $type[1])) { $match = TRUE; break; @@ -447,11 +444,12 @@ class uiBrowser extends uiBase { */ function listen2Audio($clipid) { - $id = $this->gb->idFromGunid($clipid); - $type = $this->gb->getFileType($id); + global $CC_CONFIG; + $id = BasicStor::IdFromGunid($clipid); + $type = Greenbox::getFileType($id); if (strtolower($type) === strtolower(UI_FILETYPE_AUDIOCLIP)) { - $m3u = "http://{$_SERVER['SERVER_NAME']}".$this->config['accessRawAudioUrl']."?sessid={$this->sessid}&id=$clipid\n"; + $m3u = "http://{$_SERVER['SERVER_NAME']}".$CC_CONFIG['accessRawAudioUrl']."?sessid={$this->sessid}&id=$clipid\n"; } else { $m3u = $this->getMetadataValue($id, UI_MDATA_KEY_URL); } diff --git a/campcaster/src/modules/htmlUI/var/ui_browser_init.php b/campcaster/src/modules/htmlUI/var/ui_browser_init.php index 773468af4..111570d30 100644 --- a/campcaster/src/modules/htmlUI/var/ui_browser_init.php +++ b/campcaster/src/modules/htmlUI/var/ui_browser_init.php @@ -2,18 +2,18 @@ header("Content-type: text/html; charset=utf-8"); session_start(); -## LS classes/functions ############################################# +// CC classes/functions ############################################# require_once(dirname(__FILE__).'/ui_conf.php'); require_once(dirname(__FILE__).'/ui_browser.class.php'); -## well known classes ############################################### +// often used classes ############################################### require_once(dirname(__FILE__).'/Smarty/libs/Smarty.class.php'); require_once('HTML/QuickForm/Renderer/ArraySmarty.php'); -## initialize objects ############################################### +// initialize objects ############################################### $Smarty = new Smarty; -$uiBrowser = new uiBrowser($config); +$uiBrowser = new uiBrowser($CC_CONFIG); $uiBrowser->init(); $uiBase =& $uiBrowser; @@ -21,27 +21,27 @@ $jscom = new jscom(array("jscom_wrapper")); $jscom->handler(); -## load Smarty+filters ############################################## +// load Smarty+filters ############################################## require_once(dirname(__FILE__).'/ui_smartyExtensions.inc.php'); -#$Smarty->load_filter('output', 'trimwhitespace'); -#$Smarty->load_filter('post', 'template_marker'); +//$Smarty->load_filter('output', 'trimwhitespace'); +//$Smarty->load_filter('post', 'template_marker'); $Smarty->load_filter('output', 'localizer'); -## some basic things ################################################ +// some basic things ################################################ foreach (get_defined_constants() as $k=>$v) { $Smarty->assign($k, $v); } -$Smarty->assign('ACT', isset($_REQUEST['act'])?$_REQUEST['act']:null); -$Smarty->assign('CONFIG', $config); -$Smarty->assign('START', array( +$Smarty->assign('ACT', isset($_REQUEST['act'])?$_REQUEST['act']:null); +$Smarty->assign('CONFIG', $CC_CONFIG); +$Smarty->assign('START', array( 'id' => &$uiBrowser->id, 'pid' => &$uiBrowser->pid, 'fid' => &$uiBrowser->fid, 'sessid' => &$uiBrowser->sessid) ); -$Smarty->assign('USER', array( +$Smarty->assign('USER', array( 'sessid' => &$uiBrowser->sessid, 'userid' => &$uiBrowser->userid, 'login' => &$uiBrowser->login) @@ -50,7 +50,7 @@ $uiBrowser->loadStationPrefs($ui_fmask['stationPrefs']); $Smarty->assign('STATIONPREFS', $uiBrowser->STATIONPREFS); $Smarty->assign_by_ref('_REQUEST', &$_REQUEST); -## retransfer incomplete formdata from SESSION to POST-data ######### +// retransfer incomplete formdata from SESSION to POST-data ######### if (isset($_SESSION['retransferFormData']) && is_array($_SESSION['retransferFormData'])) { foreach($_SESSION['retransferFormData'] as $k=>$v){ $_POST[$k] = $v; diff --git a/campcaster/src/modules/htmlUI/var/ui_conf.php b/campcaster/src/modules/htmlUI/var/ui_conf.php index 6801a7bf7..e547a8a47 100644 --- a/campcaster/src/modules/htmlUI/var/ui_conf.php +++ b/campcaster/src/modules/htmlUI/var/ui_conf.php @@ -2,124 +2,125 @@ ini_set('memory_limit', '64M'); // Warning/Error level -define('UI_DEBUG', FALSE); -define('UI_VERBOSE', FALSE); -define('UI_WARNING', TRUE); -define('UI_ERROR', TRUE); +define('UI_DEBUG', TRUE); +define('UI_VERBOSE', FALSE); +define('UI_WARNING', TRUE); +define('UI_ERROR', TRUE); if (UI_DEBUG) { error_reporting(E_ALL); } - -define('UI_VERSION', 'Campcaster 1.1.1'); -define('UI_VERSION_FULLNAME', 'Campcaster 1.1.1'); -define('UI_TESTSTREAM_MU3_TMP', 'img/listen.m3u'); +define('UI_VERSION', 'Campcaster 1.1.1'); +define('UI_VERSION_FULLNAME', 'Campcaster 1.1.1'); +define('UI_TESTSTREAM_MU3_TMP', 'img/listen.m3u'); // Local settings -define('UI_DEFAULT_LANGID', 'en_GB'); -//define('UI_UPLOAD_LANGID', $_SESSION['langid']); -define('UI_UPLOAD_LANGID', UI_DEFAULT_LANGID); -define('UI_TIMEZONEOFFSET', date('Z')); +define('UI_DEFAULT_LANGID', 'en_GB'); +//define('UI_UPLOAD_LANGID', $_SESSION['langid']); +define('UI_UPLOAD_LANGID', UI_DEFAULT_LANGID); +define('UI_TIMEZONEOFFSET', date('Z')); // Basic scripts -define('UI_HANDLER', 'ui_handler.php'); -define('UI_BROWSER', 'ui_browser.php'); +define('UI_HANDLER', 'ui_handler.php'); +define('UI_BROWSER', 'ui_browser.php'); // HTML Form stuff -define('UI_STANDARD_FORM_METHOD', 'POST'); -define('UI_INPUT_STANDARD_SIZE', 50); -define('UI_INPUT_STANDARD_MAXLENGTH', 255); -define('UI_TEXTAREA_STANDART_ROWS', 5); -define('UI_TEXTAREA_STANDART_COLS', 32); -define('UI_BUTTON_STYLE', 'button'); -define('UI_QFORM_REQUIRED', '../templates/sub/form_required.tpl'); -define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl'); -define('UI_QFORM_ERROR', '../templates/sub/form_error.tpl'); -define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/'); +define('UI_STANDARD_FORM_METHOD', 'POST'); +define('UI_INPUT_STANDARD_SIZE', 50); +define('UI_INPUT_STANDARD_MAXLENGTH', 255); +define('UI_TEXTAREA_STANDART_ROWS', 5); +define('UI_TEXTAREA_STANDART_COLS', 32); +define('UI_BUTTON_STYLE', 'button'); +define('UI_QFORM_REQUIRED', '../templates/sub/form_required.tpl'); +define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl'); +define('UI_QFORM_ERROR', '../templates/sub/form_error.tpl'); +define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/'); // DB ls_pref keys -define('UI_PL_ACCESSTOKEN_KEY', 'playlistToken'); -define('UI_SCRATCHPAD_KEY', 'scratchpadContents'); -define('UI_SCRATCHPAD_MAXLENGTH_KEY', 'scratchpadMaxlength'); +define('UI_PL_ACCESSTOKEN_KEY', 'playlistToken'); +define('UI_SCRATCHPAD_KEY', 'scratchpadContents'); +define('UI_SCRATCHPAD_MAXLENGTH_KEY', 'scratchpadMaxlength'); //define('UI_SCRATCHPAD_REGEX', '/^[0-9a-f]{16}:[0-9]{4}-[0-9]{2}-[0-9]{2}$/'); // Session Keys -define('UI_SCRATCHPAD_SESSNAME', 'SCRATCHPAD'); -define('UI_STATIONINFO_SESSNAME', 'STATIONINFO'); -define('UI_BROWSE_SESSNAME', 'L_BROWSE'); -define('UI_SEARCH_SESSNAME', 'L_SEARCH'); -define('UI_HUBBROWSE_SESSNAME', 'L_HUBBROWSE'); -define('UI_HUBSEARCH_SESSNAME', 'L_HUBSEARCH'); -define('UI_TRANSFER_SESSNAME', 'L_TRANSFER'); -define('UI_PLAYLIST_SESSNAME', 'PLAYLIST'); -define('UI_LOCALIZER_SESSNAME', 'LOCALIZER'); -define('UI_CALENDAR_SESSNAME', 'CALENDAR'); +define('UI_SCRATCHPAD_SESSNAME', 'SCRATCHPAD'); +define('UI_STATIONINFO_SESSNAME', 'STATIONINFO'); +define('UI_BROWSE_SESSNAME', 'L_BROWSE'); +define('UI_SEARCH_SESSNAME', 'L_SEARCH'); +define('UI_HUBBROWSE_SESSNAME', 'L_HUBBROWSE'); +define('UI_HUBSEARCH_SESSNAME', 'L_HUBSEARCH'); +define('UI_TRANSFER_SESSNAME', 'L_TRANSFER'); +define('UI_PLAYLIST_SESSNAME', 'PLAYLIST'); +define('UI_LOCALIZER_SESSNAME', 'LOCALIZER'); +define('UI_CALENDAR_SESSNAME', 'CALENDAR'); // Metadata Keys -define('UI_MDATA_KEY_TITLE', 'dc:title'); -define('UI_MDATA_KEY_CREATOR', 'dc:creator'); -define('UI_MDATA_KEY_DURATION', 'dcterms:extent'); -define('UI_MDATA_KEY_URL', 'ls:url'); -define('UI_MDATA_KEY_FORMAT', 'dc:format'); -define('UI_MDATA_KEY_DESCRIPTION', 'dc:description'); -define('UI_MDATA_KEY_CHANNELS', 'ls:channels'); -define('UI_MDATA_KEY_SAMPLERATE', 'ls:samplerate'); -define('UI_MDATA_KEY_BITRATE', 'ls:bitrate'); -define('UI_MDATA_KEY_ENCODER', 'ls:encoder'); -define('UI_MDATA_VALUE_FORMAT_FILE', 'File'); -define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream'); +define('UI_MDATA_KEY_TITLE', 'dc:title'); +define('UI_MDATA_KEY_CREATOR', 'dc:creator'); +define('UI_MDATA_KEY_DURATION', 'dcterms:extent'); +define('UI_MDATA_KEY_URL', 'ls:url'); +define('UI_MDATA_KEY_FORMAT', 'dc:format'); +define('UI_MDATA_KEY_DESCRIPTION', 'dc:description'); +define('UI_MDATA_KEY_CHANNELS', 'ls:channels'); +define('UI_MDATA_KEY_SAMPLERATE', 'ls:samplerate'); +define('UI_MDATA_KEY_BITRATE', 'ls:bitrate'); +define('UI_MDATA_KEY_ENCODER', 'ls:encoder'); +define('UI_MDATA_VALUE_FORMAT_FILE', 'File'); +define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream'); // Search/Browse preferences -define('UI_SIMPLESEARCH_FILETYPE', 'File'); -define('UI_SIMPLESEARCH_OPERATOR', 'OR'); -define('UI_SIMPLESEARCH_LIMIT', 10); -define('UI_SIMPLESEARCH_ROWS', 3); -define('UI_SIMPLESEARCH_CAT1', 'dc:title'); -define('UI_SIMPLESEARCH_OP1', 'partial'); -define('UI_SIMPLESEARCH_CAT2', 'dc:creator'); -define('UI_SIMPLESEARCH_OP2', 'partial'); -define('UI_SIMPLESEARCH_CAT3', 'dc:source'); -define('UI_SIMPLESEARCH_OP3', 'partial'); +define('UI_SIMPLESEARCH_FILETYPE', 'File'); +define('UI_SIMPLESEARCH_OPERATOR', 'OR'); +define('UI_SIMPLESEARCH_LIMIT', 10); +define('UI_SIMPLESEARCH_ROWS', 3); +define('UI_SIMPLESEARCH_CAT1', 'dc:title'); +define('UI_SIMPLESEARCH_OP1', 'partial'); +define('UI_SIMPLESEARCH_CAT2', 'dc:creator'); +define('UI_SIMPLESEARCH_OP2', 'partial'); +define('UI_SIMPLESEARCH_CAT3', 'dc:source'); +define('UI_SIMPLESEARCH_OP3', 'partial'); -define('UI_SEARCH_MAX_ROWS', 8); -define('UI_SEARCH_DEFAULT_LIMIT', 10); -define('UI_SEARCHRESULTS_DELTA', 4); +define('UI_SEARCH_MAX_ROWS', 8); +define('UI_SEARCH_DEFAULT_LIMIT', 10); +define('UI_SEARCHRESULTS_DELTA', 4); -define('UI_BROWSERESULTS_DELTA', 4); -define('UI_BROWSE_DEFAULT_KEY_1', 'dc:type'); -define('UI_BROWSE_DEFAULT_KEY_2', 'dc:creator'); -define('UI_BROWSE_DEFAULT_KEY_3', 'dc:source'); -define('UI_BROWSE_DEFAULT_LIMIT', 10); +define('UI_BROWSERESULTS_DELTA', 4); +define('UI_BROWSE_DEFAULT_KEY_1', 'dc:type'); +define('UI_BROWSE_DEFAULT_KEY_2', 'dc:creator'); +define('UI_BROWSE_DEFAULT_KEY_3', 'dc:source'); +define('UI_BROWSE_DEFAULT_LIMIT', 10); -define('UI_HUB_POLLING_FREQUENCY', 3); +define('UI_HUB_POLLING_FREQUENCY', 3); // Scheduler / Calendar -define('UI_SCHEDULER_FIRSTWEEKDAY', 1); -define('UI_SCHEDULER_DEFAULT_VIEW', 'day'); -define('UI_SCHEDULER_PAUSE_PL2PL', '0 seconds'); -define('UI_SCHEDULER_IMPORTTOKEN_KEY', 'schedulerImportToken'); -define('UI_SCHEDULER_EXPORTTOKEN_KEY', 'schedulerExportToken'); +define('UI_SCHEDULER_FIRSTWEEKDAY', 1); +define('UI_SCHEDULER_DEFAULT_VIEW', 'day'); +define('UI_SCHEDULER_PAUSE_PL2PL', '0 seconds'); +define('UI_SCHEDULER_IMPORTTOKEN_KEY', 'schedulerImportToken'); +define('UI_SCHEDULER_EXPORTTOKEN_KEY', 'schedulerExportToken'); // File types -define('UI_FILETYPE_ANY', 'all'); -define('UI_FILETYPE_PLAYLIST', 'playlist'); -define('UI_FILETYPE_AUDIOCLIP', 'audioClip'); -define('UI_FILETYPE_WEBSTREAM', 'webstream'); +define('UI_FILETYPE_ANY', 'all'); +define('UI_FILETYPE_PLAYLIST', 'playlist'); +define('UI_FILETYPE_AUDIOCLIP', 'audioClip'); +define('UI_FILETYPE_WEBSTREAM', 'webstream'); // Playlist elements -define('UI_PL_ELEM_PLAYLIST', 'playlistElement'); -define('UI_PL_ELEM_FADEINFO', 'fadeInfo'); -define('UI_PL_ELEM_FADEIN', 'fadeIn'); -define('UI_PL_ELEM_FADEOUT', 'fadeOut'); +define('UI_PL_ELEM_PLAYLIST', 'playlistElement'); +define('UI_PL_ELEM_FADEINFO', 'fadeInfo'); +define('UI_PL_ELEM_FADEIN', 'fadeIn'); +define('UI_PL_ELEM_FADEOUT', 'fadeOut'); // Export/Import -define('UI_BACKUPTOKEN_KEY', 'backupToken'); -define('UI_RESTORETOKEN_KEY', 'restoreToken'); +define('UI_BACKUPTOKEN_KEY', 'backupToken'); +define('UI_RESTORETOKEN_KEY', 'restoreToken'); +//require_once('PEAR.php'); require_once('../../../storageServer/var/conf.php'); + // extent config -$config = array_merge($config, +$CC_CONFIG = array_merge($CC_CONFIG, array( 'file_types' => array( '.mp3', @@ -134,17 +135,17 @@ $config = array_merge($config, 'audio/x-mpegurl' ), 'languages' => array( - 'ar_JO' => 'Arabic(JO)', - 'am_AM' => 'Armenian(AM)', - 'en_GB' => 'English (GB)', - 'en_US' => 'English (US)', - 'es_CO' => 'Español (CO)', - 'cz_CZ' => 'Česky (CZ)', - 'de_DE' => 'Deutsch (DE)', - 'hu_HU' => 'Magyar (HU)', - 'nl_NL' => 'Nederlands (NL)', - 'sr_CS' => 'Srpski (CS)', - 'ru_RU' => 'Russia(RU)' + 'ar_JO' => 'Arabic(JO)', + 'am_AM' => 'Armenian(AM)', + 'en_GB' => 'English (GB)', + 'en_US' => 'English (US)', + 'es_CO' => 'Español (CO)', + 'cz_CZ' => 'Česky (CZ)', + 'de_DE' => 'Deutsch (DE)', + 'hu_HU' => 'Magyar (HU)', + 'nl_NL' => 'Nederlands (NL)', + 'sr_CS' => 'Srpski (CS)', + 'ru_RU' => 'Russia(RU)' ), ) ); @@ -164,10 +165,16 @@ require_once(dirname(__FILE__).'/ui_subjects.class.php'); require_once(dirname(__FILE__).'/ui_jscom.php'); require_once(dirname(__FILE__).'/ui_exchange.class.php'); -// well known classes require_once('DB.php'); require_once('HTML/QuickForm.php'); +// Connect to the database +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + die($CC_DBC->getMessage()); +} +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); + //PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING); //PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallBack'); PEAR::setErrorHandling(PEAR_ERROR_RETURN); diff --git a/campcaster/src/modules/htmlUI/var/ui_conf.php.template b/campcaster/src/modules/htmlUI/var/ui_conf.php.template index 7b0a71864..6807619bc 100644 --- a/campcaster/src/modules/htmlUI/var/ui_conf.php.template +++ b/campcaster/src/modules/htmlUI/var/ui_conf.php.template @@ -1,7 +1,7 @@ /tmp/scheduler.log 2>&1 &'); ## adjust the start-command here define('UI_SCHEDULER_DAEMON_NAME', 'scheduler'); ## this is name of scheduler process to grep in process list for it -## Local settings +// Local settings define('UI_DEFAULT_LANGID', 'en_GB'); -#define('UI_UPLOAD_LANGID', $_SESSION['langid']); +//define('UI_UPLOAD_LANGID', $_SESSION['langid']); define('UI_UPLOAD_LANGID', UI_DEFAULT_LANGID); define('UI_TIMEZONEOFFSET', date('Z')); -## Basic scripts +// Basic scripts define('UI_HANDLER', 'ui_handler.php'); define('UI_BROWSER', 'ui_browser.php'); -## HTML Form stuff +// HTML Form stuff define('UI_STANDARD_FORM_METHOD', 'POST'); define('UI_INPUT_STANDARD_SIZE', 50); define('UI_INPUT_STANDARD_MAXLENGTH', 255); @@ -41,13 +41,13 @@ define('UI_QFORM_REQUIREDNOTE', '../templates/sub/form_requirednote.tpl' define('UI_QFORM_ERROR', '../templates/sub/form_error.tpl'); define('UI_REGEX_URL', '/^(ht|f)tps?:\/\/[^ ]+$/'); -## DB ls_pref keys +// DB ls_pref keys define('UI_PL_ACCESSTOKEN_KEY', 'playlistToken'); define('UI_SCRATCHPAD_KEY', 'scratchpadContents'); define('UI_SCRATCHPAD_MAXLENGTH_KEY', 'scratchpadMaxlength'); -#define('UI_SCRATCHPAD_REGEX', '/^[0-9a-f]{16}:[0-9]{4}-[0-9]{2}-[0-9]{2}$/'); +//define('UI_SCRATCHPAD_REGEX', '/^[0-9a-f]{16}:[0-9]{4}-[0-9]{2}-[0-9]{2}$/'); -## Session Keys +// Session Keys define('UI_SCRATCHPAD_SESSNAME', 'SCRATCHPAD'); define('UI_STATIONINFO_SESSNAME', 'STATIONINFO'); define('UI_BROWSE_SESSNAME', 'L_BROWSE'); @@ -59,7 +59,7 @@ define('UI_PLAYLIST_SESSNAME', 'PLAYLIST'); define('UI_LOCALIZER_SESSNAME', 'LOCALIZER'); define('UI_CALENDAR_SESSNAME', 'CALENDAR'); -## Metadata Keys +// Metadata Keys define('UI_MDATA_KEY_TITLE', 'dc:title'); define('UI_MDATA_KEY_CREATOR', 'dc:creator'); define('UI_MDATA_KEY_DURATION', 'dcterms:extent'); @@ -73,7 +73,7 @@ define('UI_MDATA_KEY_ENCODER', 'ls:encoder'); define('UI_MDATA_VALUE_FORMAT_FILE', 'File'); define('UI_MDATA_VALUE_FORMAT_STREAM', 'live stream'); -## Search/Browse preferences +// Search/Browse preferences define('UI_SIMPLESEARCH_FILETYPE', 'File'); define('UI_SIMPLESEARCH_OPERATOR', 'OR'); define('UI_SIMPLESEARCH_LIMIT', 10); @@ -97,33 +97,32 @@ define('UI_BROWSE_DEFAULT_LIMIT', 10); define('UI_HUB_POLLING_FREQUENCY', 3); -## Scheduler / Calendar +// Scheduler / Calendar define('UI_SCHEDULER_FIRSTWEEKDAY', 1); define('UI_SCHEDULER_DEFAULT_VIEW', 'day'); define('UI_SCHEDULER_PAUSE_PL2PL', '0 seconds'); define('UI_SCHEDULER_IMPORTTOKEN_KEY', 'schedulerImportToken'); define('UI_SCHEDULER_EXPORTTOKEN_KEY', 'schedulerExportToken'); -## File types +// File types define('UI_FILETYPE_ANY', 'all'); define('UI_FILETYPE_PLAYLIST', 'playlist'); define('UI_FILETYPE_AUDIOCLIP', 'audioClip'); define('UI_FILETYPE_WEBSTREAM', 'webstream'); -## Playlist elements +// Playlist elements define('UI_PL_ELEM_PLAYLIST', 'playlistElement'); define('UI_PL_ELEM_FADEINFO', 'fadeInfo'); define('UI_PL_ELEM_FADEIN', 'fadeIn'); define('UI_PL_ELEM_FADEOUT', 'fadeOut'); -## Export/Import +// Export/Import define('UI_BACKUPTOKEN_KEY', 'backupToken'); define('UI_RESTORETOKEN_KEY', 'restoreToken'); -## LS stuff -require_once 'storage_server/var/conf.php'; -## extent config -$config = array_merge($config, +require_once('storage_server/var/conf.php'); +// extent config +$CC_CONFIG = array_merge($CC_CONFIG, array( 'file_types' => array( '.mp3', @@ -166,12 +165,11 @@ require_once dirname(__FILE__).'/ui_subjects.class.php'; require_once dirname(__FILE__).'/ui_jscom.php'; require_once dirname(__FILE__).'/ui_exchange.class.php'; -## well known classes -require_once 'DB.php'; -require_once 'HTML/QuickForm.php'; +require_once('DB.php'); +require_once('HTML/QuickForm.php'); -#PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING); -#PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallBack'); +//PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING); +//PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errCallBack'); PEAR::setErrorHandling(PEAR_ERROR_RETURN); -#PEAR::setErrorHandling(PEAR_ERROR_PRINT); +//PEAR::setErrorHandling(PEAR_ERROR_PRINT); ?> \ No newline at end of file diff --git a/campcaster/src/modules/htmlUI/var/ui_handler.class.php b/campcaster/src/modules/htmlUI/var/ui_handler.class.php index c16e7be26..ae1d5e3fe 100644 --- a/campcaster/src/modules/htmlUI/var/ui_handler.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_handler.class.php @@ -24,12 +24,10 @@ class uiHandler extends uiBase { * Initialize a new Browser Class * Call uiBase constructor * - * @param array $config - * configurartion data */ - public function __construct($config) + public function __construct() { - parent::__construct($config); + parent::__construct(); } // constructor @@ -40,7 +38,8 @@ class uiHandler extends uiBase { */ function login($formdata, $mask) { - #$this->_cleanArray($_SESSION); + global $CC_CONFIG; + //$this->_cleanArray($_SESSION); if (!$this->_validateForm($formdata, $mask)) { $_SESSION['retransferFormData']['login'] = $formdata['login']; @@ -50,7 +49,7 @@ class uiHandler extends uiBase { return FALSE; } - $sessid = $this->gb->login($formdata['login'], $formdata['pass']); + $sessid = Alib::Login($formdata['login'], $formdata['pass']); if (!$sessid || PEAR::isError($sessid)){ $this->_retMsg('Login failed.'); @@ -61,11 +60,11 @@ class uiHandler extends uiBase { return FALSE; } - #setcookie($this->config['authCookieName'], $sessid); - echo ""; + #setcookie($CC_CONFIG['authCookieName'], $sessid); + echo ""; ob_flush(); - $id = $this->gb->getObjId($formdata['login'], $this->gb->storId); + $id = M2tree::GetObjId($formdata['login'], $this->gb->storId); if (PEAR::isError($id)) { $this->_retMsg('Access to home directory failed.'); @@ -90,9 +89,10 @@ class uiHandler extends uiBase { */ function logout($trigger_login = FALSE) { - $this->gb->logout($this->sessid); - #setcookie($this->config['authCookieName'], ''); - echo ""; + global $CC_CONFIG; + Alib::Logout($this->sessid); + //setcookie($CC_CONFIG['authCookieName'], ''); + echo ""; ob_clean(); session_destroy(); @@ -113,6 +113,7 @@ class uiHandler extends uiBase { */ function uploadFile($formdata, $mask, $replace=NULL) { + global $CC_CONFIG; if ($this->test4audioType($formdata['mediafile']['name']) === FALSE) { if (UI_ERROR) { $this->_retMsg('"$1" uses an unsupported file type.', $formdata['mediafile']['name']); @@ -124,7 +125,7 @@ class uiHandler extends uiBase { $id = $formdata['id']; $folderId = $formdata['folderId']; - if ($this->gb->getFileType($folderId) != 'Folder') { + if (Greenbox::getFileType($folderId) != 'Folder') { $this->_retMsg('The target is not a folder.'); $this->redirUrl = UI_BROWSER."?act=fileList"; return FALSE; @@ -143,11 +144,11 @@ class uiHandler extends uiBase { } $tmpgunid = md5(microtime().$_SERVER['SERVER_ADDR'].rand()."org.mdlf.campcaster"); - $ntmp = $this->gb->bufferDir.'/'.$tmpgunid; + $ntmp = $CC_CONFIG['bufferDir'].'/'.$tmpgunid; move_uploaded_file($formdata['mediafile']['tmp_name'], $ntmp); chmod($ntmp, 0664); -// echo "buffer dir: ".$this->gb->bufferDir."
    "; +// echo "buffer dir: ".$CC_CONFIG['bufferDir']."
    "; // echo "$ntmp
    "; // print_r($formdata); // exit; @@ -179,7 +180,8 @@ class uiHandler extends uiBase { function test4audioType($filename) { - foreach ($this->config['file_types'] as $t) { + global $CC_CONFIG; + foreach ($CC_CONFIG['file_types'] as $t) { if (preg_match('/'.str_replace('/', '\/', $t).'$/i', $filename)) { return TRUE; } @@ -244,7 +246,7 @@ class uiHandler extends uiBase { $id = $formdata['id']; $folderId = $formdata['folderId']; - if ($this->gb->getFileType($folderId) != 'Folder') { + if (Greenbox::getFileType($folderId) != 'Folder') { $this->_retMsg ('The target is not a folder.'); $this->redirUrl = UI_BROWSER."?act=fileList"; return FALSE; @@ -430,7 +432,7 @@ class uiHandler extends uiBase { $this->redirUrl = UI_BROWSER."?popup[]=_reload_parent&popup[]=_close"; /* no folder support yet - if (!($delOverride==$id) && (count($this->gb->getObjType($id)=='Folder'? + if (!($delOverride==$id) && (count(BasicStor::GetObjType($id)=='Folder'? $this->gb->listFolder($id, $this->sessid):NULL))) { $this->_retMsg("Folder is not empty. You can override this protection by clicking DEL again"); $this->redirUrl = UI_BROWSER."?act=fileList&id=".$this->pid."&delOverride=$id"; @@ -445,7 +447,7 @@ class uiHandler extends uiBase { } foreach ($ids as $id) { - if ($this->gb->getFileType($id) == 'playlist') { + if (Greenbox::getFileType($id) == 'playlist') { $r = $this->gb->deletePlaylist($id, $this->sessid); } else { $r = $this->gb->deleteFile($id, $this->sessid); diff --git a/campcaster/src/modules/htmlUI/var/ui_handler_init.php b/campcaster/src/modules/htmlUI/var/ui_handler_init.php index a84ac80b9..c38eed33a 100644 --- a/campcaster/src/modules/htmlUI/var/ui_handler_init.php +++ b/campcaster/src/modules/htmlUI/var/ui_handler_init.php @@ -7,7 +7,7 @@ require_once(dirname(__FILE__).'/ui_conf.php'); require_once(dirname(__FILE__).'/ui_handler.class.php'); ## initialize objects ############################################### -$uiHandler = new uiHandler($config); +$uiHandler = new uiHandler($CC_CONFIG); $uiHandler->init(); $uiBase =& $uiHandler; diff --git a/campcaster/src/modules/htmlUI/var/ui_hubBrowse.class.php b/campcaster/src/modules/htmlUI/var/ui_hubBrowse.class.php index 93fb9a7ec..5b5bc20f4 100644 --- a/campcaster/src/modules/htmlUI/var/ui_hubBrowse.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_hubBrowse.class.php @@ -67,7 +67,7 @@ class uiHubBrowse extends uiBrowse $this->results['cnt'] = $results['cnt']; foreach ($results['results'] as $rec) { // TODO: maybe this getMetaInfo is not correct for the remote results - $this->results['items'][] = $this->Base->getMetaInfo($this->Base->gb->idFromGunid($rec)); + $this->results['items'][] = $this->Base->getMetaInfo(BasicStor::IdFromGunid($rec)); } $this->pagination($results); return is_array($results); diff --git a/campcaster/src/modules/htmlUI/var/ui_hubSearch.class.php b/campcaster/src/modules/htmlUI/var/ui_hubSearch.class.php index 84a0ce5b2..cd11dfa5f 100644 --- a/campcaster/src/modules/htmlUI/var/ui_hubSearch.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_hubSearch.class.php @@ -90,7 +90,7 @@ class uiHubSearch extends uiSearch { return FALSE; } foreach ($results['results'] as $rec) { - $tmpId = $this->Base->gb->idFromGunid($rec["gunid"]); + $tmpId = BasicStor::IdFromGunid($rec["gunid"]); $this->results['items'][] = $this->Base->getMetaInfo($tmpId); } $this->results['cnt'] = $results['cnt']; @@ -117,7 +117,7 @@ class uiHubSearch extends uiSearch { foreach ($results['results'] as $rec) { // TODO: maybe this getMetaInfo is not correct for the remote results // yes, right :) - // $this->results['items'][] = $this->Base->getMetaInfo($this->Base->gb->idFromGunid($rec)); + // $this->results['items'][] = $this->Base->getMetaInfo(BasicStor::IdFromGunid($rec)); $this->results['items'][] = $rec; } */ diff --git a/campcaster/src/modules/htmlUI/var/ui_playlist.class.php b/campcaster/src/modules/htmlUI/var/ui_playlist.class.php index c72836c47..ff578649f 100644 --- a/campcaster/src/modules/htmlUI/var/ui_playlist.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_playlist.class.php @@ -99,7 +99,7 @@ class uiPlaylist } if (($userid = $this->Base->gb->playlistIsAvailable($plid, $this->Base->sessid)) !== TRUE) { if (UI_WARNING) { - $this->Base->_retMsg('Playlist has been locked by "$1".', $this->Base->gb->getSubjName($userid)); + $this->Base->_retMsg('Playlist has been locked by "$1".', Subjects::GetSubjName($userid)); } return FALSE; } @@ -145,7 +145,7 @@ class uiPlaylist return FALSE; } if ($msg && UI_VERBOSE) { - $this->Base->_retMsg('Playlist "$1" released.', $this->Base->getMetadataValue($this->Base->gb->idFromGunid($plgunid), UI_MDATA_KEY_TITLE)); + $this->Base->_retMsg('Playlist "$1" released.', $this->Base->getMetadataValue(BasicStor::IdFromGunid($plgunid), UI_MDATA_KEY_TITLE)); } $this->activeId = NULL; $this->token = NULL; @@ -189,13 +189,13 @@ class uiPlaylist return FALSE; } if (UI_VERBOSE) { - $this->Base->_retMsg('Playlist "$1" reverted.', $this->Base->getMetadataValue($this->Base->gb->idFromGunid($plgunid), UI_MDATA_KEY_TITLE)); + $this->Base->_retMsg('Playlist "$1" reverted.', $this->Base->getMetadataValue(BasicStor::IdFromGunid($plgunid), UI_MDATA_KEY_TITLE)); } $this->activeId = NULL; $this->token = NULL; $this->Base->gb->delPref($this->Base->sessid, UI_PL_ACCESSTOKEN_KEY); - if ($this->activate($this->Base->gb->idFromGunid($plgunid), FALSE) !== TRUE) { + if ($this->activate(BasicStor::IdFromGunid($plgunid), FALSE) !== TRUE) { return FALSE; } @@ -372,7 +372,7 @@ class uiPlaylist if ($sub['elementname']===UI_FILETYPE_AUDIOCLIP || $sub['elementname']===UI_FILETYPE_PLAYLIST) { #$this->flat["$parent.$node"] = $sub['attrs']; #$this->flat["$parent.$node"]['type'] = $sub['elementname']; - $this->flat[$parent] = $this->Base->getMetaInfo($this->Base->gb->idFromGunid($sub['attrs']['id'])); + $this->flat[$parent] = $this->Base->getMetaInfo(BasicStor::IdFromGunid($sub['attrs']['id'])); $this->flat[$parent]['attrs'] = $attrs; $this->flat[$parent]['playlength'] = $sub['attrs']['playlength']; } @@ -686,7 +686,7 @@ class uiPlaylist public function isAvailable($id) { - if ($this->Base->gb->getFileType($id) !== UI_FILETYPE_PLAYLIST) { + if (Greenbox::getFileType($id) !== UI_FILETYPE_PLAYLIST) { return TRUE; } if ($this->Base->gb->playlistIsAvailable($id, $this->Base->sessid) === TRUE) { @@ -698,11 +698,11 @@ class uiPlaylist function isUsedBy($id) { - if ($this->Base->gb->getFileType($id) !== UI_FILETYPE_PLAYLIST) { + if (Greenbox::getFileType($id) !== UI_FILETYPE_PLAYLIST) { return FALSE; } if (($userid = $this->Base->gb->playlistIsAvailable($id, $this->Base->sessid)) !== TRUE) { - return $this->Base->gb->getSubjName($userid); + return Subjects::GetSubjName($userid); } return FALSE; } // fn isUsedBy diff --git a/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php b/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php index 63b16d821..d85931509 100644 --- a/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_scheduler.class.php @@ -311,7 +311,7 @@ class uiScheduler extends uiCalendar { $items = array(); foreach ($arr as $key => $val) { - $id = $this->Base->gb->idFromGunid($val['playlistId']); + $id = BasicStor::IdFromGunid($val['playlistId']); $startDay = strftime('%d', uiScheduler::datetimeToTimestamp($val['start'])); $startHour = number_format(strftime('%H', uiScheduler::datetimeToTimestamp($val['start']))); $items[$startDay][$startHour][]= array ( @@ -357,7 +357,7 @@ class uiScheduler extends uiCalendar { $h = number_format(strftime('%H', $start)); $M = number_format(strftime('%i', $start)); - $id = $this->Base->gb->idFromGunid($val['playlistId']); + $id = BasicStor::IdFromGunid($val['playlistId']); $startHour = (int)strftime('%H', $start); $endHour = (int)strftime('%H', $end); @@ -404,7 +404,7 @@ class uiScheduler extends uiCalendar { // this section. $skip = false; if (strftime('%Y%m%d', $start) === $thisDay) { - // For the edge case of starting at the end of + // For the edge case of starting at the end of // today. if ($startHour == 23) { $skip = true; @@ -451,8 +451,8 @@ class uiScheduler extends uiCalendar { $items[date('H', uiScheduler::datetimeToTimestamp($val['start']))][]= array ( 'start' => substr($val['start'], strpos($val['start'], 'T')+1), 'end' => substr($val['end'], strpos($val['end'], 'T') + 1), - 'title' => $this->Base->getMetadataValue($this->Base->gb->idFromGunid($val['playlistId']), UI_MDATA_KEY_TITLE), - 'creator' => $this->Base->getMetadataValue($this->Base->gb->idFromGunid($val['playlistId']), UI_MDATA_KEY_CREATOR), + 'title' => $this->Base->getMetadataValue(BasicStor::IdFromGunid($val['playlistId']), UI_MDATA_KEY_TITLE), + 'creator' => $this->Base->getMetadataValue(BasicStor::IdFromGunid($val['playlistId']), UI_MDATA_KEY_CREATOR), ); } #print_r($items); @@ -471,7 +471,7 @@ class uiScheduler extends uiCalendar { } foreach ($arr as $key => $val) { - $id = $this->Base->gb->idFromGunid($val['playlistId']); + $id = BasicStor::IdFromGunid($val['playlistId']); $arr[$key]['title'] = $this->Base->getMetadataValue($id, UI_MDATA_KEY_TITLE); $arr[$key]['creator'] = $this->Base->getMetadataValue($id, UI_MDATA_KEY_CREATOR); $arr[$key]['pos'] = uiScheduler::datetimeToTimestamp($val['start']); @@ -551,7 +551,7 @@ class uiScheduler extends uiCalendar { if ($id) { $this->Base->SCRATCHPAD->addItem($id); $this->availablePlaylists[] = array( - 'gunid' => $this->Base->gb->gunidFromId($id), + 'gunid' => BasicStor::GunidFromId($id), 'title' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_TITLE), 'duration' => $this->Base->getMetadataValue($id, UI_MDATA_KEY_DURATION), ); @@ -588,7 +588,7 @@ class uiScheduler extends uiCalendar { /** * Get the currently playing clip or one that is coming up. - * + * * Note: just use methods here which work without valid authentification. * * @param int $distance @@ -905,7 +905,7 @@ class uiScheduler extends uiCalendar { if (empty($output)) { $this->scriptError = 'Scheduler startup script does not appear to be valid. Please check the value you have set in "Preferences->System Settings".'; - return FALSE; + return FALSE; } $message = ""; foreach ($output as $line) { @@ -933,7 +933,7 @@ class uiScheduler extends uiCalendar { function initXmlRpc() { include_once(dirname(__FILE__).'/ui_schedulerPhpClient.class.php'); - $this->spc =& SchedulerPhpClient::factory($this->Base->dbc, $mdefs, $this->Base->config, FALSE, FALSE); + $this->spc =& SchedulerPhpClient::factory($mdefs, FALSE, FALSE); } // fn initXmlRpc diff --git a/campcaster/src/modules/htmlUI/var/ui_schedulerPhpClient.class.php b/campcaster/src/modules/htmlUI/var/ui_schedulerPhpClient.class.php index b6f52bd0d..5a5da8992 100644 --- a/campcaster/src/modules/htmlUI/var/ui_schedulerPhpClient.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_schedulerPhpClient.class.php @@ -170,24 +170,12 @@ $mdefs = array( * @link http://www.campware.org */ class SchedulerPhpClient { - /** - * Databases object reference - * @var DB - */ - private $dbc = NULL; - /** * Array with methods description * @var array */ private $mdefs = array(); - /** - * Confiduration array from ../conf.php - * @var array - */ - private $config = array(); - /** * XMLRPC client object reference * @var XMLRPC_Client @@ -209,26 +197,22 @@ class SchedulerPhpClient { /** * Constructor - please DON'T CALL IT, use factory method instead * - * @param DB $dbc * @param array $mdefs * hash array with methods description - * @param array $config - * hash array with configuration * @param int $debug * XMLRPC debug flag * @param boolean $verbose * verbosity flag */ - public function __construct(&$dbc, $mdefs, $config, $debug=0, $verbose=FALSE) + public function __construct($mdefs, $debug=0, $verbose=FALSE) { - $this->dbc = $dbc; + global $CC_CONFIG; $this->mdefs = $mdefs; - $this->config = $config; $this->debug = $debug; $this->verbose = $verbose; $confPrefix = "scheduler"; - $serverPath = "http://{$config["{$confPrefix}UrlHost"]}:{$config["{$confPrefix}UrlPort"]}". - "{$config["{$confPrefix}UrlPath"]}/{$config["{$confPrefix}XMLRPC"]}"; + $serverPath = "http://{$CC_CONFIG["{$confPrefix}UrlHost"]}:{$CC_CONFIG["{$confPrefix}UrlPort"]}". + "{$CC_CONFIG["{$confPrefix}UrlPath"]}/{$CC_CONFIG["{$confPrefix}XMLRPC"]}"; if ($this->verbose) { echo "serverPath: $serverPath\n"; } @@ -250,19 +234,17 @@ class SchedulerPhpClient { * * @todo Replace this method by using PHP5 __call method instead. * - * @param DB $dbc * @param array $mdefs * hash array with methods description - * @param array $config - * hash array with configuration * @param int $debug * XMLRPC debug flag * @param boolean $verbose * verbosity flag * @return object, created object instance */ - public function &factory(&$dbc, $mdefs, $config, $debug=0, $verbose=FALSE) + public function &factory($mdefs, $debug=0, $verbose=FALSE) { + global $CC_DBC; $f = ''; foreach ($mdefs as $fn => $farr) { $f .= @@ -276,10 +258,9 @@ class SchedulerPhpClient { "$f\n". "}\n"; if (FALSE === eval($e)) { - return $dbc->raiseError("Eval failed"); + return $CC_DBC->raiseError("Eval failed"); } - $spc = new SchedulerPhpClientCore( - $dbc, $mdefs, $config, $debug, $verbose); + $spc = new SchedulerPhpClientCore($mdefs, $debug, $verbose); return $spc; } // fn factory diff --git a/campcaster/src/modules/htmlUI/var/ui_scratchpad.class.php b/campcaster/src/modules/htmlUI/var/ui_scratchpad.class.php index 1dbcda812..c7a82d758 100644 --- a/campcaster/src/modules/htmlUI/var/ui_scratchpad.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_scratchpad.class.php @@ -81,7 +81,7 @@ class uiScratchPad $arr = array_slice($arr, 0, $maxLength); foreach ($arr as $gunid) { if (preg_match('/[0-9]{1,20}/', $gunid)) { - $id = $this->Base->gb->idFromGunid($this->Base->toHex($gunid)); + $id = BasicStor::IdFromGunid($this->Base->toHex($gunid)); if ($id != FALSE) { if ($i = $this->Base->getMetaInfo($id)) { $this->items[] = $i; diff --git a/campcaster/src/modules/htmlUI/var/ui_subjects.class.php b/campcaster/src/modules/htmlUI/var/ui_subjects.class.php index 086fe3fd9..49873a2a4 100644 --- a/campcaster/src/modules/htmlUI/var/ui_subjects.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_subjects.class.php @@ -67,17 +67,17 @@ class uiSubjects */ function addSubj($request) { - include dirname(__FILE__). '/formmask/subjects.inc.php'; + include(dirname(__FILE__). '/formmask/subjects.inc.php'); $this->setRedir(); if ($this->Base->_validateForm($request, $mask[$request['passwd'] ? 'addUser' : 'addGroup']) !== TRUE) { return FALSE; } - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects') !== TRUE) { + if (Alib::CheckPerm($this->Base->userid, 'subjects') !== TRUE) { $this->Base->_retMsg('Access denied.'); return FALSE; } - if ($this->Base->gb->getSubjId($request['login'])) { + if (Subjects::GetSubjId($request['login'])) { $this->Base->_retMsg('User or group "$1" already exists.', $request['login']); $this->Base->redirUrl = $_SERVER['HTTP_REFERER']; return FALSE; @@ -111,7 +111,7 @@ class uiSubjects { $this->setReload(); - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects') !== TRUE) { + if (Alib::CheckPerm($this->Base->userid, 'subjects') !== TRUE) { $this->Base->_retMsg('Access denied.'); return FALSE; } @@ -138,7 +138,7 @@ class uiSubjects include(dirname(__FILE__). '/formmask/subjects.inc.php'); $form = new HTML_QuickForm('chgPasswd', UI_STANDARD_FORM_METHOD, UI_HANDLER); - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects') === TRUE) { + if (Alib::CheckPerm($this->Base->userid, 'subjects') === TRUE) { $mask['chgPasswd']['cancel']['attributes'] = array('onClick' => 'location.href="'.UI_BROWSER.'?act=SUBJECTS"'); unset ($mask['chgPasswd']['oldpasswd']); } else { @@ -168,7 +168,7 @@ class uiSubjects return FALSE; } - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects')) { + if (Alib::CheckPerm($this->Base->userid, 'subjects')) { $this->setSuRedir(); } else { $this->setRedir(); @@ -177,7 +177,7 @@ class uiSubjects $this->Base->_retMsg('Access denied.'); return FALSE; } - if ($this->Base->gb->authenticate($request['login'], $request['oldpasswd']) === FALSE) { + if (Subjects::Authenticate($request['login'], $request['oldpasswd']) === FALSE) { $this->Base->_retMsg('Old password was incorrect.'); $this->Base->redirUrl = $_SERVER['HTTP_REFERER']; return FASLE; @@ -206,7 +206,7 @@ class uiSubjects */ function getSubjectsWCnt() { - return $this->Base->gb->getSubjectsWCnt(); + return Subjects::GetSubjectsWCnt(); } @@ -220,7 +220,7 @@ class uiSubjects */ function getGroupMember($id) { - return $this->Base->gb->listGroup($id); + return Subjects::ListGroup($id); } // fn getGroupMember @@ -233,11 +233,11 @@ class uiSubjects */ function getNonGroupMember($id) { - foreach ($this->Base->gb->listGroup($id) as $val1) { + foreach (Subjects::ListGroup($id) as $val1) { $members[$val1['id']] = TRUE; } - $all = $this->Base->gb->getSubjectsWCnt(); + $all = Subjects::GetSubjectsWCnt(); foreach ($all as $key2=>$val2) { if ($members[$val2['id']]) { unset($all[$key2]); @@ -268,17 +268,17 @@ class uiSubjects // loop for multiple action if (is_array($request['id'])) { foreach ($request['id'] as $val) { - $req = array('login' => $this->Base->gb->getSubjName($val), 'gname' => $request['gname']); + $req = array('login' => Subjects::GetSubjName($val), 'gname' => $request['gname']); $this->addSubj2Gr($req); } return TRUE; } - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects') !== TRUE){ + if (Alib::CheckPerm($this->Base->userid, 'subjects') !== TRUE){ $this->Base->_retMsg('Access denied.'); return FALSE; } - if (PEAR::isError($res = $this->Base->gb->addSubj2Gr($request['login'], $request['gname']))) { + if (PEAR::isError($res = Subjects::AddSubjectToGroup($request['login'], $request['gname']))) { $this->Base->_retMsg($res->getMessage()); return FALSE; } @@ -306,17 +306,17 @@ class uiSubjects // loop for multiple action if (is_array($request['id'])) { foreach ($request['id'] as $val) { - $req = array('login' => $this->Base->gb->getSubjName($val), 'gname' => $request['gname']); + $req = array('login' => Subjects::GetSubjName($val), 'gname' => $request['gname']); $this->removeSubjFromGr($req); } return TRUE; } - if ($this->Base->gb->checkPerm($this->Base->userid, 'subjects') !== TRUE){ + if (Alib::CheckPerm($this->Base->userid, 'subjects') !== TRUE){ $this->Base->_retMsg('Access denied.'); return FALSE; } - if (PEAR::isError($res = $this->Base->gb->removeSubjFromGr($request['login'], $request['gname']))) { + if (PEAR::isError($res = Subjects::RemoveSubjectFromGroup($request['login'], $request['gname']))) { $this->Base->_retMsg($res->getMessage()); return FALSE; } @@ -333,7 +333,7 @@ class uiSubjects */ function isMemberOf($groupname) { - if ($gid = $this->Base->gb->getSubjId($groupname)) { + if ($gid = Subjects::GetSubjId($groupname)) { $members = $this->getGroupMember($gid); if (is_array($members)) { foreach($members as $member) { diff --git a/campcaster/src/modules/htmlUI/var/ui_transfers.class.php b/campcaster/src/modules/htmlUI/var/ui_transfers.class.php index 85efbeda3..32029ea83 100644 --- a/campcaster/src/modules/htmlUI/var/ui_transfers.class.php +++ b/campcaster/src/modules/htmlUI/var/ui_transfers.class.php @@ -155,8 +155,8 @@ class uiTransfers function upload2Hub($id) { - $gunid = $this->Base->gb->gunidFromId($id); - $type = $this->Base->gb->_getType($gunid); + $gunid = BasicStor::GunidFromId($id); + $type = BasicStor::GetType($gunid); switch ($type) { case 'audioClip': diff --git a/campcaster/src/modules/storageAdmin/var/backup.php b/campcaster/src/modules/storageAdmin/var/backup.php index c55ee382d..0591cad39 100644 --- a/campcaster/src/modules/storageAdmin/var/backup.php +++ b/campcaster/src/modules/storageAdmin/var/backup.php @@ -15,9 +15,9 @@ require_once("$storageServerPath/var/BasicStor.php"); require_once("$storageServerPath/var/Prefs.php"); PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$bs = new BasicStor($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$bs = new BasicStor(); $stid = $bs->storId; #var_dump($stid); exit; @@ -25,17 +25,17 @@ $stid = $bs->storId; function admDumpFolder(&$bs, $fid, $ind='') { - $name = $bs->getObjName($fid); + $name = M2tree::GetObjName($fid); if (PEAR::isError($name)) { echo $name->getMessage(); exit; } - $type = $bs->getObjType($fid); + $type = BasicStor::GetObjType($fid); if (PEAR::isError($type)) { echo $type->getMessage(); exit; } - $gunid = $bs->gunidFromId($fid); + $gunid = BasicStor::GunidFromId($fid); if (PEAR::isError($gunid)) { echo $gunid->getMessage(); exit; @@ -100,12 +100,12 @@ function admDumpFolder(&$bs, $fid, $ind='') } function admDumpGroup(&$bs, $gid, $ind='') { - $name = $bs->getSubjName($gid); + $name = Subjects::GetSubjName($gid); if (PEAR::isError($name)) { echo $name->getMessage(); exit; } - $isGr = $bs->isGroup($gid); + $isGr = Subjects::IsGroup($gid); if (PEAR::isError($isGr)) { echo $isGr->getMessage(); exit; @@ -119,7 +119,7 @@ function admDumpGroup(&$bs, $gid, $ind='') 'attributes'=> $pars, )); } - $garr = $bs->listGroup($gid); + $garr = Subjects::ListGroup($gid); if (PEAR::isError($garr)) { echo $garr->getMessage(); exit; @@ -156,7 +156,7 @@ function admDumpGroup(&$bs, $gid, $ind='') function admDumpSubjects(&$bs, $ind='') { $res =''; - $subjs = $bs->getSubjects('id, login, pass, type'); + $subjs = Subjects::GetSubjects('id, login, pass, type'); foreach ($subjs as $i => $member) { switch ($member['type']) { case "U": diff --git a/campcaster/src/modules/storageAdmin/var/dumpDbSchema.php b/campcaster/src/modules/storageAdmin/var/dumpDbSchema.php index 0c9346698..d951f7f98 100644 --- a/campcaster/src/modules/storageAdmin/var/dumpDbSchema.php +++ b/campcaster/src/modules/storageAdmin/var/dumpDbSchema.php @@ -1,10 +1,10 @@ \ No newline at end of file diff --git a/campcaster/src/modules/storageAdmin/var/getStorPath.php b/campcaster/src/modules/storageAdmin/var/getStorPath.php index caa6a28dc..e5d991715 100644 --- a/campcaster/src/modules/storageAdmin/var/getStorPath.php +++ b/campcaster/src/modules/storageAdmin/var/getStorPath.php @@ -4,8 +4,8 @@ * @version $Revision$ */ header("Content-type: text/plain"); -require_once 'conf.php'; -require_once "$storageServerPath/var/conf.php"; +require_once('conf.php'); +require_once("$storageServerPath/var/conf.php"); -echo "{$config['storageDir']}\n"; +echo $CC_CONFIG['storageDir']."\n"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageAdmin/var/import.php b/campcaster/src/modules/storageAdmin/var/import.php index 0fd271a4e..f8552ab82 100644 --- a/campcaster/src/modules/storageAdmin/var/import.php +++ b/campcaster/src/modules/storageAdmin/var/import.php @@ -18,13 +18,13 @@ require_once("$storageServerPath/var/GreenBox.php"); //PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
    \n"); PEAR::setErrorHandling(PEAR_ERROR_RETURN); //PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s\n"); -$dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { - echo "ERROR: ".$dbc->getMessage()." ".$dbc->getUserInfo()."\n"; +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + echo "ERROR: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo()."\n"; exit(1); } -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new GreenBox($dbc, $config); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$gb = new GreenBox(); $testonly = (isset($argv[1]) && $argv[1] == '-t'); @@ -51,7 +51,7 @@ function import_err($p_pearErrorObj, $txt='') } -$r = $gb->getObjId('import', $gb->storId); +$r = M2tree::GetObjId('import', $gb->storId); if (PEAR::isError($r)) { echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; exit(1); diff --git a/campcaster/src/modules/storageAdmin/var/restore.php b/campcaster/src/modules/storageAdmin/var/restore.php index 36332aaab..1674da974 100644 --- a/campcaster/src/modules/storageAdmin/var/restore.php +++ b/campcaster/src/modules/storageAdmin/var/restore.php @@ -82,9 +82,9 @@ function ls_restore_restoreObject($obj, $parid, $reallyInsert=TRUE){ /* =============================================================== processing */ PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$bs = new BasicStor($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$bs = new BasicStor(); $pr = new Prefs($bs); $dbxml = file_get_contents($argv[1]); @@ -101,42 +101,42 @@ $xmlTree = $parser->getTree(); /* ----------------------------------------- processing storageServer element */ -$subjArr = FALSE; -$tree = FALSE; -foreach($xmlTree->children as $i=>$el){ - switch($el->name){ - case"subjects": - if($subjArr !== FALSE){ - echo"ERROR: unexpected subjects element\n"; +$subjArr = FALSE; +$tree = FALSE; +foreach ($xmlTree->children as $i => $el) { + switch ($el->name) { + case "subjects": + if ($subjArr !== FALSE) { + echo "ERROR: unexpected subjects element\n"; } - $subjArr=$el->children; - break; - case"folder": - if($tree !== FALSE){ - echo"ERROR: unexpected folder element\n"; + $subjArr = $el->children; + break; + case "folder": + if ($tree !== FALSE) { + echo "ERROR: unexpected folder element\n"; } $tree = ls_restore_processObject($el); - break; + break; default: - echo"ERROR: unknown element name {$el->name}\n"; + echo "ERROR: unknown element name {$el->name}\n"; exit; } -# echo "{$el->name}\n"; +// echo "{$el->name}\n"; } /* ---------------------------------------------- processing subjects element */ -$subjects = array(); -$groups = array(); -foreach($subjArr as $i=>$el){ - switch($el->name){ - case"group": +$subjects = array(); +$groups = array(); +foreach ($subjArr as $i => $el) { + switch ($el->name) { + case "group": $grname = $el->attrs['name']->val; $groups[$grname] = $el->children; $subjects[$grname] = array( 'type' => 'group', ); - break; - case"user": + break; + case "user": $login = $el->attrs['login']->val; $subjects[$login] = array( 'type' => 'user', @@ -145,21 +145,21 @@ foreach($subjArr as $i=>$el){ 'realname' => '', 'prefs' => (isset($el->children[0]) ? $el->children[0]->children : NULL), ); - break; + break; } } /* -------------------------------------------------------- processing groups */ -foreach($groups as $grname=>$group){ - foreach($group as $i=>$el){ - switch($el->name){ - case"member": +foreach ($groups as $grname => $group) { + foreach ($group as $i => $el) { + switch ($el->name) { + case "member": $groups[$grname][$i] = $el->attrs['name']->val; - break; - case"preferences": + break; + case "preferences": $subjects[$grname]['prefs'] = $el->children; unset($groups[$grname][$i]); - break; + break; } } } @@ -174,54 +174,64 @@ foreach($groups as $grname=>$group){ /* ================================================================ restoring */ -if(VERBOSE) echo " resetting storage ...\n"; +if (VERBOSE) { + echo " resetting storage ...\n"; +} $bs->resetStorage(FALSE); $storId = $bs->storId; /* ------------------------------------------------------- restoring subjects */ -foreach($subjects as $login=>$subj){ - $uid0 = $bs->getSubjId($login); +foreach ($subjects as $login => $subj) { + $uid0 = Subjects::GetSubjId($login); ls_restore_checkErr($uid0); - switch($subj['type']){ - case"user": - if($login=='root'){ + switch ($subj['type']) { + case "user": + if ($login=='root') { $r = $bs->passwd($login, NULL, $subj['pass'], TRUE); ls_restore_checkErr($r, __LINE__); $uid = $uid0; - }else{ - if(!is_null($uid0)){ + } else { + if (!is_null($uid0)) { $r = $bs->removeSubj($login); ls_restore_checkErr($r, __LINE__); } - if(VERBOSE) echo " adding user $login ...\n"; + if (VERBOSE) { + echo " adding user $login ...\n"; + } $uid = $bs->addSubj($login, $subj['pass'], $subj['realname'], TRUE); ls_restore_checkErr($uid, __LINE__); } - break; - case"group": - if(!is_null($uid0)){ + break; + case "group": + if (!is_null($uid0)) { $r = $bs->removeSubj($login); - if(PEAR::isError($r)){ $uid = $uid0; break; } + if (PEAR::isError($r)) { + $uid = $uid0; + break; + } //ls_restore_checkErr($r, __LINE__); } - if(VERBOSE) echo " adding group $login ...\n"; + if (VERBOSE) { + echo " adding group $login ...\n"; + } $uid = $bs->addSubj($login, NULL); ls_restore_checkErr($uid, __LINE__); -# var_export($uid); echo " "; - break; - } -# echo "$login/$uid :\n"; - if(isset($subj['prefs'])){ -# var_dump($subj['prefs']); exit; - foreach($subj['prefs'] as $i=>$el){ - switch($el->name){ - case"pref": +// var_export($uid); echo " "; + break; + } // switch + +// echo "$login/$uid :\n"; + if (isset($subj['prefs'])) { +// var_dump($subj['prefs']); exit; + foreach ($subj['prefs'] as $i => $el) { + switch ($el->name) { + case "pref": $prefkey = $el->attrs['name']->val; $prefval = $el->attrs['val']->val; -# echo" PREF($prefkey)=$prefval\n"; +// echo" PREF($prefkey)=$prefval\n"; $res = $pr->insert($uid, $prefkey, $prefval); ls_restore_checkErr($res, __LINE__); - break; + break; default: var_dump($el); } @@ -231,10 +241,12 @@ foreach($subjects as $login=>$subj){ /* --------------------------------------------------------- restoring groups */ #var_dump($groups); -foreach($groups as $grname=>$group){ - foreach($group as $i=>$login){ - if(VERBOSE) echo " adding subject $login to group $grname ...\n"; - $r = $bs->addSubj2Gr($login, $grname); +foreach ($groups as $grname => $group) { + foreach ($group as $i => $login) { + if (VERBOSE) { + echo " adding subject $login to group $grname ...\n"; + } + $r = Subjects::AddSubjectToGroup($login, $grname); ls_restore_checkErr($r, __LINE__); } } diff --git a/campcaster/src/modules/storageServer/bin/restore.php b/campcaster/src/modules/storageServer/bin/restore.php index 3db894112..f5390b3cc 100755 --- a/campcaster/src/modules/storageServer/bin/restore.php +++ b/campcaster/src/modules/storageServer/bin/restore.php @@ -12,19 +12,19 @@ * */ - require_once dirname(__FILE__).'/../var/conf.php'; - require_once dirname(__FILE__).'/../var/GreenBox.php'; - require_once dirname(__FILE__).'/../var/Restore.php'; - include_once 'DB.php'; + require_once(dirname(__FILE__).'/../var/conf.php'); + require_once(dirname(__FILE__).'/../var/GreenBox.php'); + require_once(dirname(__FILE__).'/../var/Restore.php'); + include_once('DB.php'); PEAR::setErrorHandling(PEAR_ERROR_RETURN); - $dbc = DB::connect($config['dsn'], TRUE); - if (DB::isError($dbc)) { - die($dbc->getMessage()); + $CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); + if (DB::isError($CC_DBC)) { + die($CC_DBC->getMessage()); } - $dbc->setFetchMode(DB_FETCHMODE_ASSOC); + $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); - $gb = new GreenBox($dbc, $config); + $gb = new GreenBox(); $rs = new Restore($gb); if ($rs->loglevel=='debug') { diff --git a/campcaster/src/modules/storageServer/var/AccessRecur.php b/campcaster/src/modules/storageServer/var/AccessRecur.php index 5c4d60a8d..211bba8af 100644 --- a/campcaster/src/modules/storageServer/var/AccessRecur.php +++ b/campcaster/src/modules/storageServer/var/AccessRecur.php @@ -15,11 +15,12 @@ * @link http://www.campware.org */ class AccessRecur { + public $ls; + public $sessid; public function __construct(&$ls, $sessid) { $this->ls =& $ls; - $this->dbc =& $ls->dbc; $this->sessid = $sessid; } @@ -53,20 +54,21 @@ class AccessRecur { public static function releasePlaylist(&$ls, $sessid, $token) { + global $CC_CONFIG, $CC_DBC; $ppa = new AccessRecur($ls, $sessid); - $r = $ppa->dbc->getAll(" + $r = $CC_DBC->getAll(" SELECT to_hex(token)as token2, to_hex(gunid)as gunid - FROM {$ppa->ls->accessTable} + FROM ".$CC_CONFIG['accessTable']." WHERE parent=x'{$token}'::bigint "); - if ($ppa->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } $arr = $r; foreach ($arr as $i => $item) { extract($item); // token2, gunid - $r = $ppa->ls->_getType($gunid); - if ($ppa->dbc->isError($r)) { + $r = BasicStor::GetType($gunid); + if (PEAR::isError($r)) { return $r; } $ftype = $r; @@ -74,14 +76,14 @@ class AccessRecur { switch (strtolower($ftype)) { case "audioclip": $r = $ppa->ls->releaseRawAudioData($ppa->sessid, $token2); - if ($ppa->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } # var_dump($r); break; case "playlist": $r = $ppa->releasePlaylist($ppa->ls, $ppa->sessid, $token2); - if ($ppa->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } # var_dump($r); @@ -90,7 +92,7 @@ class AccessRecur { } } $r = $ppa->ls->releasePlaylist($ppa->sessid, $token, FALSE); - if ($ppa->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } return $r; diff --git a/campcaster/src/modules/storageServer/var/Backup.php b/campcaster/src/modules/storageServer/var/Backup.php index 184093369..8eeb4caeb 100755 --- a/campcaster/src/modules/storageServer/var/Backup.php +++ b/campcaster/src/modules/storageServer/var/Backup.php @@ -106,9 +106,10 @@ class Backup */ public function __construct(&$gb) { + global $CC_CONFIG; $this->gb =& $gb; $this->token = null; - $this->logFile = $this->gb->bufferDir.'/'.ACCESS_TYPE.'.log'; + $this->logFile = $CC_CONFIG['bufferDir'].'/'.ACCESS_TYPE.'.log'; $this->addLogItem("-I- ".date("Ymd-H:i:s")." construct\n"); } @@ -190,6 +191,7 @@ class Backup */ public function checkBackup($token) { + global $CC_CONFIG; if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." checkBackup - token:$token\n"); } @@ -201,13 +203,13 @@ class Backup } switch ($status) { case 'success': - $r['url'] = $this->gb->getUrlPart()."access/$token.".BACKUP_EXT; - $r['tmpfile'] = $this->gb->accessDir."/$token.".BACKUP_EXT; + $r['url'] = BasicStor::GetUrlPart()."access/$token.".BACKUP_EXT; + $r['tmpfile'] = $CC_CONFIG['accessDir']."/$token.".BACKUP_EXT; case 'working': case 'fault': - $r['status'] = $status; + $r['status'] = $status; $r['faultString'] = $faultString; - $r['token'] = $token; + $r['token'] = $token; break; } return $r; @@ -254,9 +256,9 @@ class Backup if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." listBackups - stat:$stat\n"); } - # open temporary dir - $tokens = $this->gb->getTokensByType(ACCESS_TYPE); - # echo 'tokens:'; print_r($tokens); echo ''; + // open temporary dir + $tokens = BasicStor::GetTokensByType(ACCESS_TYPE); + // echo 'tokens:'; print_r($tokens); echo ''; foreach ($tokens as $token) { $st = $this->checkBackup($token); if ($stat=='' || $st['status']==$stat) { @@ -303,8 +305,8 @@ class Backup if (PEAR::isError($sf)) { return $sf; } - $lid = $this->gb->idFromGunid($gunid); - if (($res = $this->gb->_authorize('read', $lid, $this->sessid)) !== TRUE) { + $lid = BasicStor::IdFromGunid($gunid); + if (($res = BasicStor::Authorize('read', $lid, $this->sessid)) !== TRUE) { $this->addLogItem("-E- ".date("Ymd-H:i:s")." setFilenames - authorize gunid:$gunid\n"); return PEAR::raiseError('Backup::setFilenames : Authorize ... error.'); } @@ -388,17 +390,18 @@ class Backup */ private function setEnviroment($createDir=false) { + global $CC_CONFIG; if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." setEnviroment - createDirs:$createDir\n"); } - # create a temporary directories + // create temporary directories if (is_null($this->token) && $createDir) { - $this->tmpName = tempnam($this->gb->bufferDir, ACCESS_TYPE.'_'); - $this->tmpFile = $this->tmpName.'.'.BACKUP_EXT; - $this->tmpDir = $this->tmpName.'.dir'; - $this->tmpDirPlaylist = $this->tmpDir. '/playlist'; - $this->tmpDirClip = $this->tmpDir. '/audioClip'; - $this->tmpDirMeta = $this->tmpDir. '/meta-inf'; + $this->tmpName = tempnam($CC_CONFIG['bufferDir'], ACCESS_TYPE.'_'); + $this->tmpFile = $this->tmpName.'.'.BACKUP_EXT; + $this->tmpDir = $this->tmpName.'.dir'; + $this->tmpDirPlaylist = $this->tmpDir. '/playlist'; + $this->tmpDirClip = $this->tmpDir. '/audioClip'; + $this->tmpDirMeta = $this->tmpDir. '/meta-inf'; touch($this->tmpFile); mkdir($this->tmpDir); mkdir($this->tmpDirPlaylist); @@ -406,7 +409,7 @@ class Backup mkdir($this->tmpDirMeta); $this->genToken(); } else { - $symlink = $this->gb->accessDir.'/'.$this->token.'.'.BACKUP_EXT; + $symlink = $CC_CONFIG['accessDir'].'/'.$this->token.'.'.BACKUP_EXT; if (is_link($symlink) && is_file(readlink($symlink))) { $this->tmpName = str_replace('.tar','',readlink($symlink)); $this->tmpFile = $this->tmpName.'.'.BACKUP_EXT; @@ -419,7 +422,7 @@ class Backup return false; } } - $this->statusFile = $this->gb->accessDir.'/'.$this->token.'.'.BACKUP_EXT.'.status'; + $this->statusFile = $CC_CONFIG['accessDir'].'/'.$this->token.'.'.BACKUP_EXT.'.status'; if ($this->loglevel=='debug') { $this->addLogItem("this->tmpName: $this->tmpName\n"); $this->addLogItem("this->tmpFile: $this->tmpFile\n"); @@ -440,7 +443,7 @@ class Backup private function genToken() { $acc = $this->gb->bsAccess($this->tmpFile, BACKUP_EXT, null, ACCESS_TYPE); - if ($this->gb->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } $this->token = $acc['token']; diff --git a/campcaster/src/modules/storageServer/var/BasicStor.php b/campcaster/src/modules/storageServer/var/BasicStor.php index 49422cb70..7d7c18cd4 100644 --- a/campcaster/src/modules/storageServer/var/BasicStor.php +++ b/campcaster/src/modules/storageServer/var/BasicStor.php @@ -33,83 +33,16 @@ require_once("Transport.php"); * @link http://www.campware.org * @see Alib */ -class BasicStor extends Alib { - /** - * The name of a database table. - * - * @var string - */ - public $filesTable; - - /** - * The name of a database table. - * - * @var string - */ - public $mdataTable; - - /** - * The name of a database table. - * - * @var string - */ - public $accessTable; - - /** - * Full path to a directory where to store media files. - * @var string - */ - public $storageDir; - - /** - * Full path to a directory that stores temporary files. - * @var string - */ - public $bufferDir; - - /** - * Full path to a directory. - * @var string - */ - public $accessDir; - +//class BasicStor extends Alib { +class BasicStor { protected $rootId; - public $storId; - /** - * Constructor - * - * @param DB $dbc - * @param array $config - * array from conf.php - * @return class instance - */ - public function __construct(&$dbc, $config, $install=FALSE) + public function __construct() { - parent::__construct($dbc, $config); - $this->dbc->setErrorHandling(PEAR_ERROR_RETURN); - $this->config = $config; - $this->filesTable = $config['tblNamePrefix'].'files'; - $this->mdataTable = $config['tblNamePrefix'].'mdata'; - $this->accessTable= $config['tblNamePrefix'].'access'; - $this->storageDir = realpath($config['storageDir']); - $this->bufferDir = realpath($config['bufferDir']); - $this->transDir = realpath($config['transDir']); - $this->accessDir = realpath($config['accessDir']); - if (!$install) { - $this->rootId = $this->getRootNode(); - if ($this->dbc->isError($this->rootId)) { - trigger_error("BasicStor: ". - $this->rootId->getMessage()." ".$this->rootId->getUserInfo(),E_USER_ERROR); - } - $this->storId = $this->getObjId('StorageRoot', $this->getRootNode()); - if ($this->dbc->isError($this->storId)) { - trigger_error("BasicStor: ". - $this->storId->getMessage()." ".$this->storId->getUserInfo(),E_USER_ERROR); - } - } + $this->rootId = M2tree::GetRootNode(); + $this->storId = M2tree::GetObjId('StorageRoot', $this->rootId); } @@ -122,11 +55,11 @@ class BasicStor extends Alib { * Name for new folder * @return unknown * id of new folder - * @exception PEAR::error + * @exception PEAR_Error */ public function bsCreateFolder($parid, $folderName) { - return $this->addObj($folderName , 'Folder', $parid); + return BasicStor::AddObj($folderName , 'Folder', $parid); } @@ -154,18 +87,17 @@ class BasicStor extends Alib { $gunid=NULL, $ftype='unKnown', $mdataLoc='file') { $ftype = strtolower($ftype); - $id = $this->addObj($fileName, $ftype, $parid); - if ($this->dbc->isError($id)) { + $id = BasicStor::AddObj($fileName, $ftype, $parid); + if (PEAR::isError($id)) { return $id; } $ac = StoredFile::insert( $this, $id, $fileName, $mediaFileLP, $mdataFileLP, $mdataLoc, - $gunid, $ftype - ); - if ($this->dbc->isError($ac)){ + $gunid, $ftype); + if (PEAR::isError($ac)) { $res = $this->removeObj($id); // catch constraint violations - switch ($ac->getCode()){ + switch ($ac->getCode()) { case -3: return PEAR::raiseError( "BasicStor::bsPutFile: gunid duplication", @@ -191,26 +123,26 @@ class BasicStor extends Alib { */ public function bsRenameFile($id, $newName) { - $parid = $this->getParent($id); - switch ($this->getObjType($id)) { + $parid = M2tree::GetParent($id); + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { // catch nonerror exception: //if($ac->getCode() != GBERR_FOBJNEX) return $ac; } $res = $ac->rename($newName); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } break; case "File": default: } - return $this->renameObj($id, $newName); + return M2tree::RenameObj($id, $newName); } @@ -225,20 +157,20 @@ class BasicStor extends Alib { */ public function bsMoveFile($id, $did) { - $parid = $this->getParent($id); - if ($this->getObjType($did) !== 'Folder') { + $parid = M2tree::GetParent($id); + if (BasicStor::GetObjType($did) !== 'Folder') { return PEAR::raiseError( "BasicStor::moveFile: destination is not folder ($did)", GBERR_WRTYPE ); } - switch ($this->getObjType($id)) { + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": case "File": case "Folder": - return $this->moveObj($id, $did); + return BasicStor::MoveObj($id, $did); break; default: return PEAR::raiseError( @@ -260,20 +192,20 @@ class BasicStor extends Alib { */ public function bsCopyFile($id, $did) { - $parid = $this->getParent($id); - if ($this->getObjType($did) !== 'Folder') { + $parid = M2tree::GetParent($id); + if (BasicStor::GetObjType($did) !== 'Folder') { return PEAR::raiseError( 'BasicStor::bsCopyFile: destination is not folder', GBERR_WRTYPE ); } - switch ($this->getObjType($id)) { + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": case "File": case "Folder": - return $this->copyObj($id, $did); + return BasicStor::CopyObj($id, $did); break; default: return PEAR::raiseError( @@ -301,19 +233,19 @@ class BasicStor extends Alib { public function bsReplaceFile($id, $mediaFileLP, $mdataFileLP, $mdataLoc='file') { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if (!empty($mdataFileLP) && ($mdataLoc!='file' || file_exists($mdataFileLP))) { $r = $ac->replaceMetaData($mdataFileLP, $mdataLoc); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } } if (!empty($mediaFileLP) && file_exists($mediaFileLP)) { $r = $ac->replaceRawMediaData($mediaFileLP); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } } @@ -332,22 +264,23 @@ class BasicStor extends Alib { */ public function bsDeleteFile($id, $forced=FALSE) { + global $CC_CONFIG; // full delete: - if (!$this->config['useTrash'] || $forced) { + if (!$CC_CONFIG['useTrash'] || $forced) { $res = $this->removeObj($id, $forced); return $res; } // move to trash: - $did = $this->getObjId($this->config['TrashName'], $this->storId); - if ($this->dbc->isError($did)) { + $did = M2tree::GetObjId($CC_CONFIG['TrashName'], $this->storId); + if (PEAR::isError($did)) { return $did; } - switch ($this->getObjType($id)) { + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if (is_null($did)) { @@ -355,7 +288,7 @@ class BasicStor extends Alib { "trash not found", GBERR_NOTF); } $res = $ac->setState('deleted'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } break; @@ -378,11 +311,12 @@ class BasicStor extends Alib { */ public function bsCheckToken($token, $type='put') { - $cnt = $this->dbc->getOne(" - SELECT count(token) FROM {$this->accessTable} + global $CC_CONFIG, $CC_DBC; + $cnt = $CC_DBC->getOne(" + SELECT count(token) FROM ".$CC_CONFIG['accessTable']." WHERE token=x'{$token}'::bigint AND type='$type' "); - if ($this->dbc->isError($cnt)) { + if (PEAR::isError($cnt)) { return FALSE; } return ($cnt == 1); @@ -400,15 +334,15 @@ class BasicStor extends Alib { */ // function _gunidFromToken($token, $type='put') // { -// $acc = $this->dbc->getRow(" +// $acc = $CC_DBC->getRow(" // SELECT to_hex(gunid)as gunid, ext FROM {$this->accessTable} // WHERE token=x'{$token}'::bigint AND type='$type' // "); -// if ($this->dbc->isError($acc)) { +// if (PEAR::isError($acc)) { // return $acc; // } -// $gunid = StoredFile::_normalizeGunid($acc['gunid']); -// if ($this->dbc->isError($gunid)) { +// $gunid = StoredFile::NormalizeGunid($acc['gunid']); +// if (PEAR::isError($gunid)) { // return $gunid; // } // return $gunid; @@ -438,12 +372,13 @@ class BasicStor extends Alib { public function bsAccess($realFname, $ext, $gunid, $type='access', $parent='0', $owner=NULL) { + global $CC_CONFIG, $CC_DBC; if (!is_null($gunid)) { - $gunid = StoredFile::_normalizeGunid($gunid); + $gunid = StoredFile::NormalizeGunid($gunid); } - $token = StoredFile::_createGunid(); + $token = StoredFile::CreateGunid(); if (!is_null($realFname)) { - $linkFname = "{$this->accessDir}/$token.$ext"; + $linkFname = $CC_CONFIG['accessDir']."/$token.$ext"; if (!file_exists($realFname)) { return PEAR::raiseError( "BasicStor::bsAccess: real file not found ($realFname)", @@ -459,33 +394,33 @@ class BasicStor extends Alib { } $escapedExt = pg_escape_string($ext); $escapedType = pg_escape_string($type); - $this->dbc->query("BEGIN"); + $CC_DBC->query("BEGIN"); $gunidSql = (is_null($gunid) ? "NULL" : "x'{$gunid}'::bigint" ); $ownerSql = (is_null($owner) ? "NULL" : "$owner" ); - $res = $this->dbc->query(" - INSERT INTO {$this->accessTable} + $res = $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['accessTable']." (gunid, token, ext, type, parent, owner, ts) VALUES ($gunidSql, x'$token'::bigint, '$escapedExt', '$escapedType', x'{$parent}'::bigint, $ownerSql, now()) "); - if ($this->dbc->isError($res)) { - $this->dbc->query("ROLLBACK"); + if (PEAR::isError($res)) { + $CC_DBC->query("ROLLBACK"); return $res; } if (!is_null($gunid)) { - $res = $this->dbc->query(" - UPDATE {$this->filesTable} + $res = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['filesTable']." SET currentlyAccessing=currentlyAccessing+1, mtime=now() WHERE gunid=x'{$gunid}'::bigint "); } - if ($this->dbc->isError($res)) { - $this->dbc->query("ROLLBACK"); + if (PEAR::isError($res)) { + $CC_DBC->query("ROLLBACK"); return $res; } - $res = $this->dbc->query("COMMIT"); - if ($this->dbc->isError($res)) { + $res = $CC_DBC->query("COMMIT"); + if (PEAR::isError($res)) { return $res; } return array('fname'=>$linkFname, 'token'=>$token); @@ -506,21 +441,22 @@ class BasicStor extends Alib { */ public function bsRelease($token, $type='access') { + global $CC_CONFIG, $CC_DBC; if (!$this->bsCheckToken($token, $type)) { return PEAR::raiseError( "BasicStor::bsRelease: invalid token ($token)" ); } - $acc = $this->dbc->getRow(" - SELECT to_hex(gunid)as gunid, ext, owner FROM {$this->accessTable} + $acc = $CC_DBC->getRow(" + SELECT to_hex(gunid)as gunid, ext, owner FROM ".$CC_CONFIG['accessTable']." WHERE token=x'{$token}'::bigint AND type='$type' "); - if ($this->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } $ext = $acc['ext']; $owner = $acc['owner']; - $linkFname = "{$this->accessDir}/$token.$ext"; + $linkFname = $CC_CONFIG['accessDir']."/$token.$ext"; $realFname = readlink($linkFname); if (file_exists($linkFname)) { if(! @unlink($linkFname)){ @@ -529,28 +465,28 @@ class BasicStor extends Alib { GBERR_FILEIO); } } - $this->dbc->query("BEGIN"); + $CC_DBC->query("BEGIN"); if (!is_null($acc['gunid'])) { - $gunid = StoredFile::_normalizeGunid($acc['gunid']); - $res = $this->dbc->query(" - UPDATE {$this->filesTable} + $gunid = StoredFile::NormalizeGunid($acc['gunid']); + $res = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['filesTable']." SET currentlyAccessing=currentlyAccessing-1, mtime=now() WHERE gunid=x'{$gunid}'::bigint AND currentlyAccessing>0 "); - if ($this->dbc->isError($res)) { - $this->dbc->query("ROLLBACK"); + if (PEAR::isError($res)) { + $CC_DBC->query("ROLLBACK"); return $res; } } - $res = $this->dbc->query(" - DELETE FROM {$this->accessTable} WHERE token=x'$token'::bigint + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['accessTable']." WHERE token=x'$token'::bigint "); - if ($this->dbc->isError($res)) { - $this->dbc->query("ROLLBACK"); + if (PEAR::isError($res)) { + $CC_DBC->query("ROLLBACK"); return $res; } - $res = $this->dbc->query("COMMIT"); - if ($this->dbc->isError($res)) { + $res = $CC_DBC->query("COMMIT"); + if (PEAR::isError($res)) { return $res; } $res = array( @@ -578,7 +514,7 @@ class BasicStor extends Alib { public function bsOpenDownload($id, $part='media', $parent='0') { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } $gunid = $ac->gunid; @@ -599,10 +535,10 @@ class BasicStor extends Alib { ); } $acc = $this->bsAccess($realfile, $ext, $gunid, 'download', $parent); - if ($this->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } - $url = $this->getUrlPart()."access/".basename($acc['fname']); + $url = BasicStor::GetUrlPart()."access/".basename($acc['fname']); $chsum = md5_file($realfile); $size = filesize($realfile); return array( @@ -631,7 +567,7 @@ class BasicStor extends Alib { ); } $r = $this->bsRelease($token, 'download'); - if ($this->dbc->isError($r)){ + if (PEAR::isError($r)){ return $r; } return (is_null($r['gunid']) ? $r['realFname'] : $r['gunid']); @@ -656,32 +592,33 @@ class BasicStor extends Alib { */ public function bsOpenPut($chsum, $gunid, $owner=NULL) { + global $CC_CONFIG, $CC_DBC; if (!is_null($gunid)) { - $gunid = StoredFile::_normalizeGunid($gunid); + $gunid = StoredFile::NormalizeGunid($gunid); } $escapedChsum = pg_escape_string($chsum); - $token = StoredFile::_createGunid(); - $res = $this->dbc->query(" - DELETE FROM {$this->accessTable} WHERE token=x'$token'::bigint + $token = StoredFile::CreateGunid(); + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['accessTable']." WHERE token=x'$token'::bigint "); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } $gunidSql = (is_null($gunid) ? "NULL" : "x'{$gunid}'::bigint" ); $ownerSql = (is_null($owner) ? "NULL" : "$owner" ); - $res = $this->dbc->query(" - INSERT INTO {$this->accessTable} + $res = $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['accessTable']." (gunid, token, ext, chsum, type, owner, ts) VALUES ($gunidSql, x'$token'::bigint, '', '$escapedChsum', 'put', $ownerSql, now()) "); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } - $fname = "{$this->accessDir}/$token"; + $fname = $CC_CONFIG['accessDir']."/$token"; touch($fname); // is it needed? - $url = $this->getUrlPart()."xmlrpc/put.php?token=$token"; + $url = BasicStor::GetUrlPart()."xmlrpc/put.php?token=$token"; return array('url'=>$url, 'fname'=>$fname, 'token'=>$token); } @@ -699,39 +636,40 @@ class BasicStor extends Alib { */ public function bsClosePut($token) { - $token = StoredFile::_normalizeGunid($token); + global $CC_CONFIG, $CC_DBC; + $token = StoredFile::NormalizeGunid($token); if (!$this->bsCheckToken($token, 'put')) { return PEAR::raiseError( "BasicStor::bsClosePut: invalid token ($token)", GBERR_TOKEN ); } - $row = $this->dbc->getRow(" - SELECT chsum, owner FROM {$this->accessTable} + $row = $CC_DBC->getRow(" + SELECT chsum, owner FROM ".$CC_CONFIG['accessTable']." WHERE token=x'{$token}'::bigint "); - if ($this->dbc->isError($row)) { + if (PEAR::isError($row)) { return $row; } $chsum = $row['chsum']; $owner = $row['owner']; - $res = $this->dbc->query(" - DELETE FROM {$this->accessTable} WHERE token=x'$token'::bigint + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['accessTable']." WHERE token=x'$token'::bigint "); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } - $fname = "{$this->accessDir}/$token"; + $fname = $CC_CONFIG['accessDir']."/$token"; $md5sum = md5_file($fname); - if(trim($chsum) !='' && $chsum != $md5sum){ + if (trim($chsum) !='' && $chsum != $md5sum) { if (file_exists($fname)) { @unlink($fname); } return PEAR::raiseError( - "BasicStor::bsClosePut: md5sum does not match (token=$token)". - " [$chsum/$md5sum]", - GBERR_PUT - ); + "BasicStor::bsClosePut: md5sum does not match (token=$token)". + " [$chsum/$md5sum]", + GBERR_PUT + ); } return array('fname'=>$fname, 'owner'=>$owner); } @@ -752,19 +690,20 @@ class BasicStor extends Alib { */ public function bsCheckPut($token) { + global $CC_CONFIG, $CC_DBC; if (!$this->bsCheckToken($token, 'put')) { return PEAR::raiseError( "BasicStor::bsCheckPut: invalid token ($token)" ); } - $chsum = $this->dbc->getOne(" - SELECT chsum FROM {$this->accessTable} + $chsum = $CC_DBC->getOne(" + SELECT chsum FROM ".$CC_CONFIG['accessTable']." WHERE token=x'{$token}'::bigint - "); - if ($this->dbc->isError($chsum)) { + "); + if (PEAR::isError($chsum)) { return $chsum; } - $fname = "{$this->accessDir}/$token"; + $fname = $CC_CONFIG['accessDir']."/$token"; $md5sum = md5_file($fname); $size = filesize($fname); $status = ($chsum == $md5sum); @@ -782,11 +721,12 @@ class BasicStor extends Alib { * @return string * URL */ - public function getUrlPart() + public static function GetUrlPart() { - $host = $this->config['storageUrlHost']; - $port = $this->config['storageUrlPort']; - $path = $this->config['storageUrlPath']; + global $CC_CONFIG; + $host = $CC_CONFIG['storageUrlHost']; + $port = $CC_CONFIG['storageUrlPort']; + $path = $CC_CONFIG['storageUrlPath']; return "http://$host:$port$path/"; } @@ -801,11 +741,11 @@ class BasicStor extends Alib { */ // function getTokenOwner($token) // { -// $row = $this->dbc->getOne(" +// $row = $CC_DBC->getOne(" // SELECT owner FROM {$this->accessTable} // WHERE token=x'{$token}'::bigint // "); -// if ($this->dbc->isError($row)) { +// if (PEAR::isError($row)) { // return $row; // } // $owner = $row; @@ -820,10 +760,11 @@ class BasicStor extends Alib { * @return array * array of tokens */ - public function getTokensByType($type) + public static function GetTokensByType($type) { - $res = $this->dbc->query( - "SELECT TO_HEX(token) AS token FROM {$this->accessTable} WHERE type=?", + global $CC_CONFIG, $CC_DBC; + $res = $CC_DBC->query( + "SELECT TO_HEX(token) AS token FROM ".$CC_CONFIG['accessTable']." WHERE type=?", array($type)); while ($row = $res->fetchRow()) { $r[] = $row['token']; @@ -848,7 +789,7 @@ class BasicStor extends Alib { public function bsReplaceMetadata($id, $mdata, $mdataLoc='file') { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } return $ac->replaceMetaData($mdata, $mdataLoc); @@ -865,7 +806,7 @@ class BasicStor extends Alib { public function bsGetMetadata($id) { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } return $ac->getMetadata(); @@ -893,11 +834,11 @@ class BasicStor extends Alib { } else { $ac = StoredFile::recallByGunid($this, $gunid); } - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } $r = $ac->md->getMetadataValue('dc:title', $lang, $deflang); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } $title = (isset($r[0]['value']) ? $r[0]['value'] : 'unknown'); @@ -923,7 +864,7 @@ class BasicStor extends Alib { // public function bsGetMetadataValue($id, $category, $lang=NULL, $deflang=NULL) // { // $ac = StoredFile::recall($this, $id); -// if ($this->dbc->isError($ac)) { +// if (PEAR::isError($ac)) { // return $ac; // } // return $ac->md->getMetadataValue($category, $lang, $deflang); @@ -947,7 +888,7 @@ class BasicStor extends Alib { public function bsGetMetadataValue($id, $category = null) { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if (is_null($category)) { @@ -987,19 +928,19 @@ class BasicStor extends Alib { $lang=NULL, $mid=NULL, $container='metadata', $regen=TRUE) { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if ($category == 'dcterms:extent') { - $value = $this->normalizeExtent($value); + $value = BasicStor::NormalizeExtent($value); } $res = $ac->md->setMetadataValue($category, $value, $lang, $mid, $container); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } if ($regen) { $r = $ac->md->regenerateXmlFile(); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } } @@ -1014,7 +955,7 @@ class BasicStor extends Alib { * value to normalize * @return string */ - private function normalizeExtent($v) + private static function NormalizeExtent($v) { if (!preg_match("|^\d{2}:\d{2}:\d{2}.\d{6}$|", $v)) { require_once("Playlist.php"); @@ -1051,17 +992,17 @@ class BasicStor extends Alib { foreach ($values as $category => $oneValue) { $res = $this->bsSetMetadataValue($id, $category, $oneValue, $lang, NULL, $container, FALSE); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } } if ($regen) { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } $r = $ac->md->regenerateXmlFile(); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } } @@ -1175,6 +1116,7 @@ class BasicStor extends Alib { */ public function bsExportPlaylistOpen($plids, $type='lspl', $withContent=TRUE) { + global $CC_CONFIG; require_once("Playlist.php"); if (!is_array($plids)) { $plids = array($plids); @@ -1199,7 +1141,7 @@ class BasicStor extends Alib { $plExts = array('lspl'=>"lspl", 'smil'=>"smil", 'm3u'=>"m3u"); $plExt = (isset($plExts[$type]) ? $plExts[$type] : "xml" ); $res = array(); - $tmpn = tempnam($this->bufferDir, 'plExport_'); + $tmpn = tempnam($CC_CONFIG['bufferDir'], 'plExport_'); $tmpf = "$tmpn.tar"; $tmpd = "$tmpn.dir"; mkdir($tmpd); @@ -1236,7 +1178,7 @@ class BasicStor extends Alib { if (PEAR::isError($r)) { return $r; } - $r = $this->bsStr2File($string, "$tmpdp/{$it['gunid']}.$plExt"); + $r = BasicStor::WriteStringToFile($string, "$tmpdp/{$it['gunid']}.$plExt"); if (PEAR::isError($r)) { return $r; } @@ -1266,7 +1208,7 @@ class BasicStor extends Alib { @rmdir($tmpd); unlink($tmpn); $acc = $this->bsAccess($tmpf, 'tar', NULL/*gunid*/, 'access'); - if ($this->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } return $acc; @@ -1284,7 +1226,7 @@ class BasicStor extends Alib { public function bsExportPlaylistClose($token) { $r = $this->bsRelease($token, 'access'); - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } $file = $r['realFname']; @@ -1321,7 +1263,7 @@ class BasicStor extends Alib { */ public function bsImportPlaylistRaw($parid, $plid, $aPath, $rPath, $ext, &$gunids, $subjid) { - $id = $this->idFromGunid($plid); + $id = BasicStor::IdFromGunid($plid); if (!is_null($id)) { return $id; } @@ -1340,7 +1282,7 @@ class BasicStor extends Alib { ); break; case "smil": - require_once "SmilPlaylist.php"; + require_once("SmilPlaylist.php"); $res = SmilPlaylist::import($this, $aPath, $rPath, $gunids, $plid, $parid, $subjid); if (PEAR::isError($res)) { break; @@ -1348,7 +1290,7 @@ class BasicStor extends Alib { $res = $res->getId(); break; case "m3u": - require_once "M3uPlaylist.php"; + require_once("M3uPlaylist.php"); $res = M3uPlaylist::import($this, $aPath, $rPath, $gunids, $plid, $parid, $subjid); if (PEAR::isError($res)) { break; @@ -1383,8 +1325,9 @@ class BasicStor extends Alib { */ public function bsImportPlaylist($parid, $fpath, $subjid) { + global $CC_CONFIG; // untar: - $tmpn = tempnam($this->bufferDir, 'plImport_'); + $tmpn = tempnam($CC_CONFIG['bufferDir'], 'plImport_'); $tmpd = "$tmpn.dir"; $tmpdc = "$tmpd/audioClip"; $tmpdp = "$tmpd/playlist"; @@ -1424,7 +1367,7 @@ class BasicStor extends Alib { } $exists = $this->bsExistsFile($gunid, NULL, TRUE); if( $exists ) { - $res = $this->idFromGunid($gunid); + $res = BasicStor::IdFromGunid($gunid); if (!PEAR::isError($res)) { $res = $this->bsDeleteFile($res, TRUE); } @@ -1478,29 +1421,29 @@ class BasicStor extends Alib { */ public function bsListFolder($id) { - if ($this->getObjType($id) !== 'Folder') { + if (BasicStor::GetObjType($id) !== 'Folder') { return PEAR::raiseError( 'BasicStor::bsListFolder: not a folder', GBERR_NOTF ); } - $listArr = $this->getDir($id, 'id, name, type, param as target', 'name'); - if ($this->dbc->isError($listArr)) { + $listArr = M2tree::GetDir($id, 'id, name, type, param as target', 'name'); + if (PEAR::isError($listArr)) { return $listArr; } foreach ($listArr as $i=>$v) { if ($v['type'] == 'Folder') { break; } - $gunid = $this->gunidFromId($v['id']); - if ($this->dbc->isError($gunid)) { + $gunid = BasicStor::GunidFromId($v['id']); + if (PEAR::isError($gunid)) { return $gunid; } if (is_null($gunid)) { unset($listArr[$i]); break; } - $listArr[$i]['type'] = $this->_getType($gunid); - if ($this->dbc->isError($listArr[$i]['type'])) { + $listArr[$i]['type'] = BasicStor::GetType($gunid); + if (PEAR::isError($listArr[$i]['type'])) { return $listArr[$i]['type']; } $listArr[$i]['gunid'] = $gunid; @@ -1524,7 +1467,7 @@ class BasicStor extends Alib { public function bsAnalyzeFile($id) { $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } $ia = $ac->analyzeMediaFile(); @@ -1544,9 +1487,9 @@ class BasicStor extends Alib { public function getObjIdFromRelPath($id, $relPath='.') { $relPath = trim(urldecode($relPath)); - //if($this->getObjType($id) !== 'Folder') - $nid = $this->getParent($id); - if ($this->dbc->isError($nid)) { + //if(BasicStor::GetObjType($id) !== 'Folder') + $nid = M2tree::GetParent($id); + if (PEAR::isError($nid)) { return $nid; } if (is_null($nid)) { @@ -1558,13 +1501,13 @@ class BasicStor extends Alib { } $a = split('/', $relPath); foreach ($a as $i => $pathItem) { - switch($pathItem){ - case".": + switch ($pathItem) { + case ".": break; - case"..": + case "..": if ($nid != $this->storId) { - $nid = $this->getParent($nid); - if ($this->dbc->isError($nid)) { + $nid = M2tree::GetParent($nid); + if (PEAR::isError($nid)) { return $nid; } if (is_null($nid)) { @@ -1573,11 +1516,11 @@ class BasicStor extends Alib { } } break; - case"": + case "": break; default: - $nid = $this->getObjId($pathItem, $nid); - if ($this->dbc->isError($nid)) { + $nid = M2tree::GetObjId($pathItem, $nid); + if (PEAR::isError($nid)) { return $nid; } if (is_null($nid)) { @@ -1608,7 +1551,7 @@ class BasicStor extends Alib { } else { $ac = StoredFile::recall($this, $id); } - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { // catch some exceptions switch ($ac->getCode()) { case GBERR_FILENEX: @@ -1619,7 +1562,7 @@ class BasicStor extends Alib { return $ac; } } - $realFtype = $this->_getType($ac->gunid); + $realFtype = BasicStor::GetType($ac->gunid); if (!is_null($ftype) && ( ($realFtype != $ftype) // webstreams are subset of audioclips @@ -1640,16 +1583,16 @@ class BasicStor extends Alib { * Local object id * @return string|PEAR_Error */ - public function getObjType($oid) + public static function GetObjType($oid) { - $type = parent::getObjType($oid); + $type = M2tree::GetObjType($oid); if ($type == 'File') { - $gunid = $this->gunidFromId($oid); - if ($this->dbc->isError($gunid)) { + $gunid = BasicStor::GunidFromId($oid); + if (PEAR::isError($gunid)) { return $gunid; } - $ftype = $this->_getType($gunid); - if ($this->dbc->isError($ftype)) { + $ftype = BasicStor::GetType($gunid); + if (PEAR::isError($ftype)) { return $ftype; } if (!is_null($ftype)) { @@ -1670,42 +1613,43 @@ class BasicStor extends Alib { */ public function addSubj($login, $pass=NULL, $realname='') { - $uid = parent::addSubj($login, $pass, $realname); - if ($this->dbc->isError($uid)) { + global $CC_CONFIG; + $uid = Subjects::addSubj($login, $pass, $realname); + if (PEAR::isError($uid)) { return $uid; } - if ($this->isGroup($uid) === FALSE) { + if (Subjects::IsGroup($uid) === FALSE) { $fid = $this->bsCreateFolder($this->storId, $login); - if ($this->dbc->isError($fid)) { + if (PEAR::isError($fid)) { return $fid; } - $res = parent::addPerm($uid, '_all', $fid, 'A'); - if ($this->dbc->isError($res)) { + $res = Alib::AddPerm($uid, '_all', $fid, 'A'); + if (PEAR::isError($res)) { return $res; } - if (!$this->config['isArchive']) { - $res =$this->addSubj2Gr($login, $this->config['StationPrefsGr']); - if ($this->dbc->isError($res)) { + if (!$CC_CONFIG['isArchive']) { + $res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['StationPrefsGr']); + if (PEAR::isError($res)) { return $res; } - $res =$this->addSubj2Gr($login, $this->config['AllGr']); - if ($this->dbc->isError($res)) { + $res = Subjects::AddSubjectToGroup($login, $CC_CONFIG['AllGr']); + if (PEAR::isError($res)) { return $res; } $pfid = $this->bsCreateFolder($fid, 'public'); - if ($this->dbc->isError($pfid)) { + if (PEAR::isError($pfid)) { return $pfid; } - $res = parent::addPerm($uid, '_all', $pfid, 'A'); - if ($this->dbc->isError($res)) { + $res = Alib::AddPerm($uid, '_all', $pfid, 'A'); + if (PEAR::isError($res)) { return $res; } - $allGrId = $this->getSubjId($this->config['AllGr']); - if ($this->dbc->isError($allGrId)) { + $allGrId = Subjects::GetSubjId($CC_CONFIG['AllGr']); + if (PEAR::isError($allGrId)) { return $allGrId; } - $res = parent::addPerm($allGrId, 'read', $pfid, 'A'); - if ($this->dbc->isError($res)) { + $res = Alib::AddPerm($allGrId, 'read', $pfid, 'A'); + if (PEAR::isError($res)) { return $res; } } @@ -1722,32 +1666,33 @@ class BasicStor extends Alib { */ public function removeSubj($login) { - if (FALSE !== array_search($login, $this->config['sysSubjs'])) { - return $this->dbc->raiseError( + global $CC_CONFIG, $CC_DBC; + if (FALSE !== array_search($login, $CC_CONFIG['sysSubjs'])) { + return $CC_DBC->raiseError( "BasicStor::removeSubj: cannot remove system user/group"); } - $uid = $this->getSubjId($login); - if ($this->dbc->isError($uid)) { + $uid = Subjects::GetSubjId($login); + if (PEAR::isError($uid)) { return $uid; } - $res = $this->dbc->query(" - DELETE FROM {$this->accessTable} WHERE owner=$uid + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['accessTable']." WHERE owner=$uid "); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } - $res = parent::removeSubj($login); - if ($this->dbc->isError($res)) { + $res = Alib::RemoveSubj($login); + if (PEAR::isError($res)) { return $res; } - $id = $this->getObjId($login, $this->storId); - if ($this->dbc->isError($id)) { + $id = M2tree::GetObjId($login, $this->storId); + if (PEAR::isError($id)) { return $id; } if (!is_null($id)) { // remove home folder: $res = $this->bsDeleteFile($id); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } } @@ -1765,7 +1710,7 @@ class BasicStor extends Alib { // function login($login, $pass) // { // $r = $this->upgradeDbStructure(); -// if ($this->dbc->isError($r)) { +// if (PEAR::isError($r)) { // return $r; // } // $r = parent::login($login, $pass); @@ -1783,17 +1728,17 @@ class BasicStor extends Alib { * Array of parameters - e.g. ids * @param string $sessid * Session id - * @return true/PEAR::error + * @return true|PEAR_Error */ - public function _authorize($acts, $pars, $sessid='') + public static function Authorize($acts, $pars, $sessid='') { - $userid = $this->getSessUserId($sessid); - if ($this->dbc->isError($userid)) { + $userid = Alib::GetSessUserId($sessid); + if (PEAR::isError($userid)) { return $userid; } if (is_null($userid)) { return PEAR::raiseError( - "BasicStor::_authorize: invalid session", GBERR_DENY); + "BasicStor::Authorize: invalid session", GBERR_DENY); } if (!is_array($pars)) { $pars = array($pars); @@ -1803,8 +1748,8 @@ class BasicStor extends Alib { } $perm = true; // foreach ($acts as $i => $action) { -// $res = $this->checkPerm($userid, $action, $pars[$i]); -// if ($this->dbc->isError($res)) { +// $res = Alib::CheckPerm($userid, $action, $pars[$i]); +// if (PEAR::isError($res)) { // return $res; // } // $perm = $perm && $res; @@ -1828,12 +1773,12 @@ class BasicStor extends Alib { */ public function _getHomeDirId($subjid) { - $login = $this->getSubjName($subjid); - if ($this->dbc->isError($login)) { + $login = Subjects::GetSubjName($subjid); + if (PEAR::isError($login)) { return $login; } - $parid = $this->getObjId($login, $this->storId); - if ($this->dbc->isError($parid)) { + $parid = M2tree::GetObjId($login, $this->storId); + if (PEAR::isError($parid)) { return $parid; } if (is_null($parid)) { @@ -1854,8 +1799,8 @@ class BasicStor extends Alib { */ public function _getHomeDirIdFromSess($sessid) { - $uid = $this->getSessUserId($sessid); - if ($this->dbc->isError($uid)) { + $uid = Alib::GetSessUserId($sessid); + if (PEAR::isError($uid)) { return $uid; } return $this->_getHomeDirId($uid); @@ -1865,59 +1810,62 @@ class BasicStor extends Alib { /** * Get local id from global id. * - * @param string $gunid + * @param string $p_gunid * Global id * @return int * Local id */ - public function idFromGunid($gunid) + public static function IdFromGunid($p_gunid) { - return $this->dbc->getOne( - "SELECT id FROM {$this->filesTable} WHERE gunid=x'$gunid'::bigint" - ); + global $CC_DBC; + global $CC_CONFIG; + return $CC_DBC->getOne("SELECT id FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'$p_gunid'::bigint"); } /** * Get global id from local id * - * @param int $id + * @param int $p_id * Local id * @return string * Global id */ - public function gunidFromId($id) + public static function GunidFromId($p_id) { - if (!is_numeric($id)) { + global $CC_CONFIG; + global $CC_DBC; + if (!is_numeric($p_id)) { return NULL; } - $gunid = $this->dbc->getOne(" - SELECT to_hex(gunid)as gunid FROM {$this->filesTable} - WHERE id='$id' + $gunid = $CC_DBC->getOne(" + SELECT to_hex(gunid)as gunid FROM ".$CC_CONFIG['filesTable']." + WHERE id='$p_id' "); - if ($this->dbc->isError($gunid)) { + if (PEAR::isError($gunid)) { return $gunid; } if (is_null($gunid)) { return NULL; } - return StoredFile::_normalizeGunid($gunid); + return StoredFile::NormalizeGunid($gunid); } /** * Get storage-internal file type * - * @param string $gunid + * @param string $p_gunid * Global unique id of file * @return string - * see install() */ - public function _getType($gunid) + public static function GetType($p_gunid) { - $ftype = $this->dbc->getOne(" - SELECT ftype FROM {$this->filesTable} - WHERE gunid=x'$gunid'::bigint + global $CC_CONFIG; + global $CC_DBC; + $ftype = $CC_DBC->getOne(" + SELECT ftype FROM ".$CC_CONFIG['filesTable']." + WHERE gunid=x'$p_gunid'::bigint "); return $ftype; } @@ -1926,13 +1874,13 @@ class BasicStor extends Alib { /** * Check gunid format * - * @param string $gunid + * @param string $p_gunid * Global unique ID * @return boolean */ - protected function _checkGunid($gunid) + protected static function CheckGunid($p_gunid) { - $res = preg_match("|^([0-9a-fA-F]{16})?$|", $gunid); + $res = preg_match("|^([0-9a-fA-F]{16})?$|", $p_gunid); return $res; } @@ -1943,11 +1891,11 @@ class BasicStor extends Alib { */ // function _gunidIsFree($gunid) // { -// $cnt = $this->dbc->getOne(" +// $cnt = $CC_DBC->getOne(" // SELECT count(*) FROM {$this->filesTable} // WHERE gunid=x'{$this->gunid}'::bigint // "); -// if ($this->dbc->isError($cnt)) { +// if (PEAR::isError($cnt)) { // return $cnt; // } // if ($cnt > 0) { @@ -1960,36 +1908,36 @@ class BasicStor extends Alib { /** * Set playlist edit flag * - * @param string $playlistId + * @param string $p_playlistId * Playlist global unique ID - * @param boolean $val + * @param boolean $p_val * Set/clear of edit flag - * @param string $sessid + * @param string $p_sessid * Session id - * @param int $subjid + * @param int $p_subjid * Subject id (if sessid is not specified) * @return boolean * previous state */ - public function _setEditFlag($playlistId, $val=TRUE, $sessid=NULL, $subjid=NULL) + public function setEditFlag($p_playlistId, $p_val=TRUE, $p_sessid=NULL, $p_subjid=NULL) { - if (!is_null($sessid)) { - $subjid = $this->getSessUserId($sessid); - if ($this->dbc->isError($subjid)) { - return $subjid; + if (!is_null($p_sessid)) { + $p_subjid = Alib::GetSessUserId($p_sessid); + if (PEAR::isError($p_subjid)) { + return $p_subjid; } } - $ac = StoredFile::recallByGunid($this, $playlistId); - if ($this->dbc->isError($ac)) { + $ac = StoredFile::recallByGunid($this, $p_playlistId); + if (PEAR::isError($ac)) { return $ac; } $state = $ac->_getState(); - if ($val) { - $r = $ac->setState('edited', $subjid); + if ($p_val) { + $r = $ac->setState('edited', $p_subjid); } else { $r = $ac->setState('ready', 'NULL'); } - if ($this->dbc->isError($r)) { + if (PEAR::isError($r)) { return $r; } return ($state == 'edited'); @@ -1999,21 +1947,21 @@ class BasicStor extends Alib { /** * Check if playlist is marked as edited * - * @param string $playlistId + * @param string $p_playlistId * Playlist global unique ID * @return FALSE|int * ID of user editing it */ - public function isEdited($playlistId) + public function isEdited($p_playlistId) { - $ac = StoredFile::recallByGunid($this, $playlistId); - if ($this->dbc->isError($ac)) { + $ac = StoredFile::recallByGunid($this, $p_playlistId); + if (PEAR::isError($ac)) { return $ac; } - if (!$ac->isEdited($playlistId)) { + if (!$ac->isEdited($p_playlistId)) { return FALSE; } - return $ac->isEditedBy($playlistId); + return $ac->isEditedBy($p_playlistId); } @@ -2025,23 +1973,23 @@ class BasicStor extends Alib { * @return int * New object local id */ - protected function copyObj($id, $newParid, $after=NULL) + protected static function CopyObj($id, $newParid, $after=NULL) { - $parid = $this->getParent($id); - $nid = parent::copyObj($id, $newParid, $after); - if ($this->dbc->isError($nid)) { + $parid = M2tree::GetParent($id); + $nid = M2tree::CopyObj($id, $newParid, $after); + if (PEAR::isError($nid)) { return $nid; } - switch ($this->getObjType($id)) { + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } - $ac2 = StoredFile::copyOf($ac, $nid); - $ac2->rename($this->getObjName($nid)); + $ac2 = StoredFile::CopyOf($ac, $nid); + $ac2->rename(M2tree::GetObjName($nid)); break; case "File": default: @@ -2056,30 +2004,30 @@ class BasicStor extends Alib { * * @return boolean */ - public function moveObj($id, $newParid, $after=NULL) + public static function MoveObj($id, $newParid, $after=NULL) { - $parid = $this->getParent($id); - switch ($this->getObjType($id)) { + $parid = M2tree::GetParent($id); + switch (BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if ($ac->isEdited()) { return PEAR::raiseError( - 'BasicStor::moveObj: file is currently being edited, it cannot be moved.'); + 'BasicStor::MoveObj: file is currently being edited, it cannot be moved.'); } if ($ac->isAccessed()) { return PEAR::raiseError( - 'BasicStor::moveObj: file is currently in use, it cannot be moved.'); + 'BasicStor::MoveObj: file is currently in use, it cannot be moved.'); } break; default: } - $nid = parent::moveObj($id, $newParid, $after); - if ($this->dbc->isError($nid)) { + $nid = M2tree::MoveObj($id, $newParid, $after); + if (PEAR::isError($nid)) { return $nid; } return TRUE; @@ -2093,23 +2041,23 @@ class BasicStor extends Alib { * @return unknown * ID */ - public function addObj($name, $type, $parid=1, $aftid=NULL, $param='') + public static function AddObj($name, $type, $parid=1, $aftid=NULL, $param='') { - $exid = $this->getObjId($name, $parid); - if ($this->dbc->isError($exid)) { + $exid = M2tree::GetObjId($name, $parid); + if (PEAR::isError($exid)) { return $exid; } //if(!is_null($exid)){ $this->removeObj($exid); } $name2 = $name; for ( ; - $xid = $this->getObjId($name2, $parid), - !is_null($xid) && !$this->dbc->isError($xid); + $xid = M2tree::GetObjId($name2, $parid), + !is_null($xid) && !PEAR::isError($xid); $name2 .= "_" ); if (!is_null($exid)) { - $r = $this->renameObj($exid, $name2); + $r = M2tree::RenameObj($exid, $name2); } - return parent::addObj($name, $type, $parid, $aftid, $param); + return M2tree::AddObj($name, $type, $parid, $aftid, $param); } @@ -2125,12 +2073,12 @@ class BasicStor extends Alib { */ public function removeObj($id, $forced=FALSE) { - switch ($ot = $this->getObjType($id)) { + switch ($ot = BasicStor::GetObjType($id)) { case "audioclip": case "playlist": case "webstream": $ac = StoredFile::recall($this, $id); - if ($this->dbc->isError($ac)) { + if (PEAR::isError($ac)) { return $ac; } if ($ac->isEdited() && !$forced) { @@ -2154,8 +2102,8 @@ class BasicStor extends Alib { "BasicStor::bsDeleteFile: unknown obj type ($ot)" ); } - $res = parent::removeObj($id); - if ($this->dbc->isError($res)) { + $res = Alib::RemoveObj($id); + if (PEAR::isError($res)) { return $res; } return TRUE; @@ -2172,15 +2120,15 @@ class BasicStor extends Alib { * pathname to file * @return TRUE|raiseError */ - private function bsStr2File($str, $fname) + private static function WriteStringToFile($p_str, $p_fname) { - $fp = @fopen($fname, "w"); + $fp = @fopen($p_fname, "w"); if ($fp === FALSE) { return PEAR::raiseError( - "BasicStor::bsStr2File: cannot open file ($fname)" + "BasicStor::WriteStringToFile: cannot open file ($p_fname)" ); } - fwrite($fp, $str); + fwrite($fp, $p_str); fclose($fp); return TRUE; } @@ -2216,14 +2164,14 @@ class BasicStor extends Alib { // foreach ($chDb as $version => $chArr) { // foreach ($chArr as $change) { // extract($change); // tbl, op, fld, type -// $r = $this->dbc->tableInfo($tbl, DB_TABLEINFO_ORDERTABLE); -// if ($this->dbc->isError($r)) { +// $r = $CC_DBC->tableInfo($tbl, DB_TABLEINFO_ORDERTABLE); +// if (PEAR::isError($r)) { // return $r; // } // if (!isset($r['ordertable'][$tbl][$fld])) { // $q = "ALTER table $tbl ADD $fld $type"; -// $r = $this->dbc->query($q); -// if ($this->dbc->isError($r)) { +// $r = $CC_DBC->query($q); +// if (PEAR::isError($r)) { // return $r; // } // } @@ -2255,25 +2203,24 @@ class BasicStor extends Alib { */ public function resetStorage($loadSampleData=TRUE, $filesOnly=FALSE) { + global $CC_CONFIG; if ($filesOnly) { $this->deleteFiles(); } else { $this->deleteData(); } - if (!$this->config['isArchive']) { + if (!$CC_CONFIG['isArchive']) { $tr = new Transport($this); $tr->resetData(); } - $res = array( - 'cnt'=>0, 'results'=>array(), - ); + $res = array('cnt'=>0, 'results'=>array()); if (!$loadSampleData) { return $res; } - $rootHD = $this->getObjId('root', $this->storId); + $rootHD = M2tree::GetObjId('root', $this->storId); $samples = dirname(__FILE__)."/tests/sampleData.php"; if (file_exists($samples)) { - include $samples; + include($samples); } else { $sampleData = array(); } @@ -2303,14 +2250,14 @@ class BasicStor extends Alib { if (PEAR::isError($r)) { return $r; } - #$gunid = $this->gunidFromId($r); - #$res['results'][] = array('gunid' => $gunid, 'type' => $type); - #$res['cnt']++; + //$gunid = BasicStor::GunidFromId($r); + //$res['results'][] = array('gunid' => $gunid, 'type' => $type); + //$res['cnt']++; } return $this->bsLocalSearch( array('filetype'=>'all', 'conditions'=>array()) ); - #return $res; + //return $res; } @@ -2318,13 +2265,13 @@ class BasicStor extends Alib { * dump * */ - public function dump($id='', $indch=' ', $ind='', $format='{name}') - { - if ($id=='') { - $id = $this->storId; - } - return parent::dump($id, $indch, $ind, $format); - } +// public function dump($id='', $indch=' ', $ind='', $format='{name}') +// { +// if ($id=='') { +// $id = $this->storId; +// } +// return parent::dump($id, $indch, $ind, $format); +// } /** @@ -2336,7 +2283,7 @@ class BasicStor extends Alib { if ($id == '') { $id = $this->storId; } - $arr = $this->getDir($id, 'id,name'); + $arr = M2tree::GetDir($id, 'id,name'); $arr = array_map(create_function('$o', 'return "'.$format .'";'), $arr); return join('', $arr); } @@ -2348,7 +2295,8 @@ class BasicStor extends Alib { */ public function debug($va) { - echo"
    \n"; print_r($va);
    +        echo"
    \n"; 
    +        print_r($va);
         }
     
     
    @@ -2359,9 +2307,10 @@ class BasicStor extends Alib {
          */
         private function deleteFiles()
         {
    -        $ids = $this->dbc->getAll("SELECT id FROM {$this->filesTable}");
    +        global $CC_CONFIG, $CC_DBC;
    +        $ids = $CC_DBC->getAll("SELECT id FROM ".$CC_CONFIG['filesTable']);
             if (is_array($ids)) {
    -            foreach($ids as $i => $item) {
    +            foreach ($ids as $i => $item) {
                     $this->bsDeleteFile($item['id'], TRUE);
                 }
             }
    @@ -2376,7 +2325,7 @@ class BasicStor extends Alib {
         public function deleteData()
         {
             $this->deleteFiles();
    -        parent::deleteData();
    +        Alib::DeleteData();
             $this->initData();
         }
     
    @@ -2434,19 +2383,17 @@ class BasicStor extends Alib {
             $o[] = $this->addSubj('test3', 'a');
             $o[] = $this->addSubj('test4', 'a');
     
    -        $o[] = $t1hd = $this->getObjId('test1', $this->storId);
    +        $o[] = $t1hd = M2tree::GetObjId('test1', $this->storId);
             $o[] = $t1d1 = $this->bsCreateFolder($t1hd, 'test1_folder1');
             $o[] = $this->bsCreateFolder($t1hd, 'test1_folder2');
             $o[] = $this->bsCreateFolder($t1d1, 'test1_folder1_1');
             $o[] = $t1d12 = $this->bsCreateFolder($t1d1, 'test1_folder1_2');
     
    -        $o[] = $t2hd = $this->getObjId('test2', $this->storId);
    +        $o[] = $t2hd = M2tree::GetObjId('test2', $this->storId);
             $o[] = $this->bsCreateFolder($t2hd, 'test2_folder1');
     
             $o[] = $this->bsPutFile($t1hd, 'file1.mp3', "$exdir/ex1.mp3", '', NULL, 'audioclip');
             $o[] = $this->bsPutFile($t1d12, 'file2.wav', "$exdir/ex2.wav", '', NULL, 'audioclip');
    -/*
    -*/
             $this->tdata['storage'] = $o;
         }
     
    @@ -2456,16 +2403,17 @@ class BasicStor extends Alib {
          */
         public function test()
         {
    +        global $CC_CONFIG;
             $this->test_log = '';
    -        // if($this->dbc->isError($p = parent::test())) return $p;
    +        // if(PEAR::isError($p = parent::test())) return $p;
             $this->deleteData();
             $this->testData();
    -        if ($this->config['useTrash']) {
    -            $trash = "\n        {$this->config['TrashName']}";
    +        if ($CC_CONFIG['useTrash']) {
    +            $trash = "\n        ".$CC_CONFIG['TrashName'];
             } else {
                 $trash = "";
             }
    -        if (!$this->config['isArchive']) {
    +        if (!$CC_CONFIG['isArchive']) {
                 $this->test_correct = "    StorageRoot
             root
             test1
    @@ -2500,18 +2448,18 @@ class BasicStor extends Alib {
             test4{$trash}
     ";
             }
    -        $r = $this->dumpTree($this->storId, '    ', '    ', '{name}');
    -        if ($this->dbc->isError($r)) {
    +        $r = M2tree::DumpTree($this->storId, '    ', '    ', '{name}');
    +        if (PEAR::isError($r)) {
                 return $r;
             }
             $this->test_dump = $r;
    -        if ($this->test_dump==$this->test_correct) {
    -            $this->test_log.="# BasicStor::test: OK\n";
    +        if ($this->test_dump == $this->test_correct) {
    +            $this->test_log .= "# BasicStor::test: OK\n";
                 return true;
             } else {
                 return PEAR::raiseError(
    -            "BasicStor::test:\ncorrect:\n.{$this->test_correct}.\n".
    -            "dump:\n.{$this->test_dump}.\n", 1, PEAR_ERROR_RETURN);
    +                "BasicStor::test:\ncorrect:\n.{$this->test_correct}.\n".
    +                "dump:\n.{$this->test_dump}.\n", 1, PEAR_ERROR_RETURN);
             }
         }
     
    @@ -2520,63 +2468,64 @@ class BasicStor extends Alib {
          * initData - initialize
          *
          */
    -    private function initData()
    +    public function initData()
         {
    -        $this->rootId = $this->getRootNode();
    -        $this->storId = $this->wd =
    -            $this->addObj('StorageRoot', 'Folder', $this->rootId);
    +        global $CC_CONFIG;
    +        $this->rootId = M2tree::GetRootNode();
    +        $this->storId = BasicStor::AddObj('StorageRoot', 'Folder', $this->rootId);
    +        $this->wd = $this->storId;
             // user root init
    -        $rootUid = parent::addSubj('root', $this->config['tmpRootPass']);
    -        $res = parent::addPerm($rootUid, '_all', $this->rootId, 'A');
    -        if ($this->dbc->isError($res)) {
    +        $rootUid = Subjects::AddSubj('root', $CC_CONFIG['tmpRootPass']);
    +        $res = Alib::AddPerm($rootUid, '_all', $this->rootId, 'A');
    +        if (PEAR::isError($res)) {
                 return $res;
             }
    -        $res = parent::addPerm($rootUid, 'subjects', $this->rootId, 'A');
    -        if ($this->dbc->isError($res)) {
    +        $res = Alib::AddPerm($rootUid, 'subjects', $this->rootId, 'A');
    +        if (PEAR::isError($res)) {
                 return $res;
             }
             $fid = $this->bsCreateFolder($this->storId, 'root');
    -        if ($this->dbc->isError($fid)) {
    +        if (PEAR::isError($fid)) {
                 return $fid;
             }
    -        if ($this->config['useTrash']) {
    +        if ($CC_CONFIG['useTrash']) {
                 $tfid = $this->bsCreateFolder(
    -                $this->storId, $this->config["TrashName"]);
    -            if ($this->dbc->isError($tfid)) {
    +                $this->storId, $CC_CONFIG["TrashName"]);
    +            if (PEAR::isError($tfid)) {
                     return $tfid;
                 }
             }
    -        $allid = parent::addSubj($this->config['AllGr']);
    -        if ($this->dbc->isError($allid)) {
    +        $allid = Subjects::AddSubj($CC_CONFIG['AllGr']);
    +        if (PEAR::isError($allid)) {
                 return $allid;
             }
    -        $r = $this->addSubj2Gr('root', $this->config['AllGr']);
    -        $r = $res = parent::addPerm($allid, 'read', $this->rootId, 'A');
    -        $admid = parent::addSubj($this->config['AdminsGr']);
    -        if ($this->dbc->isError($admid)) {
    +        Subjects::AddSubjectToGroup('root', $CC_CONFIG['AllGr']);
    +        Alib::AddPerm($allid, 'read', $this->rootId, 'A');
    +        $admid = Subjects::AddSubj($CC_CONFIG['AdminsGr']);
    +        if (PEAR::isError($admid)) {
                 return $admid;
             }
    -        $r = $this->addSubj2Gr('root', $this->config['AdminsGr']);
    -        if ($this->dbc->isError($r)) {
    +        $r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
    +        if (PEAR::isError($r)) {
                 return $r;
             }
    -        $res = parent::addPerm($admid, '_all', $this->rootId, 'A');
    -        if ($this->dbc->isError($res)) {
    +        $res = Alib::AddPerm($admid, '_all', $this->rootId, 'A');
    +        if (PEAR::isError($res)) {
                 return $res;
             }
    -        if (!$this->config['isArchive']) {
    -            $stPrefGr = parent::addSubj($this->config['StationPrefsGr']);
    -            if ($this->dbc->isError($stPrefGr)) {
    +        if (!$CC_CONFIG['isArchive']) {
    +            $stPrefGr = Subjects::AddSubj($CC_CONFIG['StationPrefsGr']);
    +            if (PEAR::isError($stPrefGr)) {
                     return $stPrefGr;
                 }
    -            $this->addSubj2Gr('root', $this->config['StationPrefsGr']);
    +            Subjects::AddSubjectToGroup('root', $CC_CONFIG['StationPrefsGr']);
                 // user scheduler init
    -            $schUid = parent::addSubj('scheduler', $this->config['schedulerPass']);
    -            $res = parent::addPerm($rootUid, 'read', $this->rootId, 'A');
    -            if ($this->dbc->isError($res)) {
    +            Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
    +            $res = Alib::AddPerm($rootUid, 'read', $this->rootId, 'A');
    +            if (PEAR::isError($res)) {
                     return $res;
                 }
    -            $r = $this->addSubj2Gr('scheduler', $this->config['AllGr']);
    +            $r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
             }
         }
     
    @@ -2604,81 +2553,81 @@ class BasicStor extends Alib {
          *      
  • download
  • * */ - public function install() - { - parent::install(); - $r = $this->dbc->query("CREATE TABLE {$this->filesTable} ( - id int not null, - gunid bigint not null, -- global unique ID - name varchar(255) not null default'', -- human file id ;) - mime varchar(255) not null default'', -- mime type - ftype varchar(128) not null default'', -- file type - state varchar(128) not null default'empty', -- file state - currentlyaccessing int not null default 0, -- access counter - editedby int REFERENCES {$this->subjTable}, -- who edits it - mtime timestamp(6) with time zone -- lst modif.time - )"); - if ($this->dbc->isError($r)) { - return $r; - } - $this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_id_idx - ON {$this->filesTable} (id)"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->filesTable}_gunid_idx - ON {$this->filesTable} (gunid)"); - $this->dbc->query("CREATE INDEX {$this->filesTable}_name_idx - ON {$this->filesTable} (name)"); - - $this->dbc->createSequence("{$this->mdataTable}_id_seq"); - $r = $this->dbc->query("CREATE TABLE {$this->mdataTable} ( - id int not null, - gunid bigint, - subjns varchar(255), -- subject namespace shortcut/uri - subject varchar(255) not null default '', - predns varchar(255), -- predicate namespace shortcut/uri - predicate varchar(255) not null, - predxml char(1) not null default 'T', -- Tag or Attribute - objns varchar(255), -- object namespace shortcut/uri - object text - )"); - if ($this->dbc->isError($r)) { - return $r; - } - $this->dbc->query("CREATE UNIQUE INDEX {$this->mdataTable}_id_idx - ON {$this->mdataTable} (id)"); - $this->dbc->query("CREATE INDEX {$this->mdataTable}_gunid_idx - ON {$this->mdataTable} (gunid)"); - $this->dbc->query("CREATE INDEX {$this->mdataTable}_subj_idx - ON {$this->mdataTable} (subjns, subject)"); - $this->dbc->query("CREATE INDEX {$this->mdataTable}_pred_idx - ON {$this->mdataTable} (predns, predicate)"); - - $r = $this->dbc->query("CREATE TABLE {$this->accessTable} ( - gunid bigint, -- global unique id - token bigint, -- access token - chsum char(32) not null default'', -- md5 checksum - ext varchar(128) not null default'', -- extension - type varchar(20) not null default'', -- access type - parent bigint, -- parent token - owner int REFERENCES {$this->subjTable}, -- subject have started it - ts timestamp - )"); - if ($this->dbc->isError($r)) { - return $r; - } - $this->dbc->query("CREATE INDEX {$this->accessTable}_token_idx - ON {$this->accessTable} (token)"); - $this->dbc->query("CREATE INDEX {$this->accessTable}_gunid_idx - ON {$this->accessTable} (gunid)"); - $this->dbc->query("CREATE INDEX {$this->accessTable}_parent_idx - ON {$this->accessTable} (parent)"); - if (!file_exists($this->storageDir)) { - mkdir($this->storageDir, 02775); - } - if (!file_exists($this->bufferDir)) { - mkdir($this->bufferDir, 02775); - } - $this->initData(); - } +// public function install() +// { +// parent::install(); +// $r = $CC_DBC->query("CREATE TABLE {$this->filesTable} ( +// id int not null, +// gunid bigint not null, -- global unique ID +// name varchar(255) not null default'', -- human file id ;) +// mime varchar(255) not null default'', -- mime type +// ftype varchar(128) not null default'', -- file type +// state varchar(128) not null default'empty', -- file state +// currentlyaccessing int not null default 0, -- access counter +// editedby int REFERENCES {$this->subjTable}, -- who edits it +// mtime timestamp(6) with time zone -- lst modif.time +// )"); +// if (PEAR::isError($r)) { +// return $r; +// } +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->filesTable}_id_idx +// ON {$this->filesTable} (id)"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->filesTable}_gunid_idx +// ON {$this->filesTable} (gunid)"); +// $CC_DBC->query("CREATE INDEX {$this->filesTable}_name_idx +// ON {$this->filesTable} (name)"); +// +// $CC_DBC->createSequence("{$this->mdataTable}_id_seq"); +// $r = $CC_DBC->query("CREATE TABLE {$this->mdataTable} ( +// id int not null, +// gunid bigint, +// subjns varchar(255), -- subject namespace shortcut/uri +// subject varchar(255) not null default '', +// predns varchar(255), -- predicate namespace shortcut/uri +// predicate varchar(255) not null, +// predxml char(1) not null default 'T', -- Tag or Attribute +// objns varchar(255), -- object namespace shortcut/uri +// object text +// )"); +// if (PEAR::isError($r)) { +// return $r; +// } +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->mdataTable}_id_idx +// ON {$this->mdataTable} (id)"); +// $CC_DBC->query("CREATE INDEX {$this->mdataTable}_gunid_idx +// ON {$this->mdataTable} (gunid)"); +// $CC_DBC->query("CREATE INDEX {$this->mdataTable}_subj_idx +// ON {$this->mdataTable} (subjns, subject)"); +// $CC_DBC->query("CREATE INDEX {$this->mdataTable}_pred_idx +// ON {$this->mdataTable} (predns, predicate)"); +// +// $r = $CC_DBC->query("CREATE TABLE {$this->accessTable} ( +// gunid bigint, -- global unique id +// token bigint, -- access token +// chsum char(32) not null default'', -- md5 checksum +// ext varchar(128) not null default'', -- extension +// type varchar(20) not null default'', -- access type +// parent bigint, -- parent token +// owner int REFERENCES {$this->subjTable}, -- subject have started it +// ts timestamp +// )"); +// if (PEAR::isError($r)) { +// return $r; +// } +// $CC_DBC->query("CREATE INDEX {$this->accessTable}_token_idx +// ON {$this->accessTable} (token)"); +// $CC_DBC->query("CREATE INDEX {$this->accessTable}_gunid_idx +// ON {$this->accessTable} (gunid)"); +// $CC_DBC->query("CREATE INDEX {$this->accessTable}_parent_idx +// ON {$this->accessTable} (parent)"); +// if (!file_exists($this->storageDir)) { +// mkdir($this->storageDir, 02775); +// } +// if (!file_exists($this->bufferDir)) { +// mkdir($this->bufferDir, 02775); +// } +// $this->initData(); +// } /** @@ -2700,42 +2649,43 @@ class BasicStor extends Alib { * * @return void */ - public function uninstall() - { - $this->dbc->query("DROP TABLE {$this->mdataTable}"); - $this->dbc->dropSequence("{$this->mdataTable}_id_seq"); - $this->dbc->query("DROP TABLE {$this->filesTable}"); - $this->dbc->query("DROP TABLE {$this->accessTable}"); - $d = @dir($this->storageDir); - while (is_object($d) && (false !== ($entry = $d->read()))){ - if (filetype("{$this->storageDir}/$entry")=='dir') { - if ($entry!='CVS' && $entry!='tmp' && strlen($entry)==3) { - $dd = dir("{$this->storageDir}/$entry"); - while (false !== ($ee = $dd->read())) { - if (substr($ee, 0, 1)!=='.') { - unlink("{$this->storageDir}/$entry/$ee"); - } - } - $dd->close(); - rmdir("{$this->storageDir}/$entry"); - } - } - } - if (is_object($d)) { - $d->close(); - } - if (file_exists($this->bufferDir)) { - $d = dir($this->bufferDir); - while (false !== ($entry = $d->read())) { - if(substr($entry,0,1)!='.') { - unlink("{$this->bufferDir}/$entry"); - } - } - $d->close(); - @rmdir($this->bufferDir); - } - parent::uninstall(); - } +// public function uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['mdataTable']); +// $CC_DBC->dropSequence($CC_CONFIG['mdataTable']."_id_seq"); +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['filesTable']); +// $CC_DBC->query("DROP TABLE ".$CC_CONFIG['accessTable']); +// $d = @dir($CC_CONFIG['storageDir']); +// while (is_object($d) && (false !== ($entry = $d->read()))){ +// if (filetype($CC_CONFIG['storageDir']."/$entry")=='dir') { +// if ($entry!='CVS' && $entry!='tmp' && strlen($entry)==3) { +// $dd = dir($CC_CONFIG['storageDir']."/$entry"); +// while (false !== ($ee = $dd->read())) { +// if (substr($ee, 0, 1)!=='.') { +// unlink($CC_CONFIG['storageDir']."/$entry/$ee"); +// } +// } +// $dd->close(); +// rmdir($CC_CONFIG['storageDir']."/$entry"); +// } +// } +// } +// if (is_object($d)) { +// $d->close(); +// } +// if (file_exists($this->bufferDir)) { +// $d = dir($this->bufferDir); +// while (false !== ($entry = $d->read())) { +// if(substr($entry,0,1)!='.') { +// unlink("{$this->bufferDir}/$entry"); +// } +// } +// $d->close(); +// @rmdir($this->bufferDir); +// } +// parent::uninstall(); +// } /** @@ -2745,7 +2695,8 @@ class BasicStor extends Alib { */ public function debugLog($msg) { - $fp = fopen("{$this->storageDir}/log", "a") or die("Can't write to log\n"); + global $CC_CONFIG, $CC_DBC; + $fp = fopen($CC_CONFIG['storageDir']."/log", "a") or die("Can't write to log\n"); fputs($fp, date("H:i:s").">$msg<\n"); fclose($fp); } diff --git a/campcaster/src/modules/storageServer/var/DataEngine.php b/campcaster/src/modules/storageServer/var/DataEngine.php index 6ed163262..1bf61a0a7 100644 --- a/campcaster/src/modules/storageServer/var/DataEngine.php +++ b/campcaster/src/modules/storageServer/var/DataEngine.php @@ -63,9 +63,6 @@ class DataEngine { public function __construct(&$gb) { $this->gb =& $gb; - $this->dbc =& $gb->dbc; - $this->mdataTable = $gb->mdataTable; - $this->filesTable = $gb->filesTable; $this->filetypes = array( 'all'=>NULL, 'audioclip'=>'audioclip', @@ -151,16 +148,17 @@ class DataEngine { private function _makeAndSqlWoIntersect($fldsPart, $whereArr, $fileCond, $browse, $brFldNs=NULL, $brFld=NULL) { + global $CC_CONFIG, $CC_DBC; $innerBlocks = array(); foreach ($whereArr as $i => $v) { $whereArr[$i] = sprintf($v, "md$i", "md$i", "md$i", "md$i", "md$i"); $lastTbl = ($i==0 ? "f" : "md".($i-1)); - $innerBlocks[] = "INNER JOIN {$this->mdataTable} md$i ON md$i.gunid = $lastTbl.gunid\n"; + $innerBlocks[] = "INNER JOIN ".$CC_CONFIG['mdataTable']." md$i ON md$i.gunid = $lastTbl.gunid\n"; } // query construcion: - $sql = "SELECT $fldsPart\nFROM {$this->filesTable} f\n".join("", $innerBlocks); + $sql = "SELECT $fldsPart FROM ".$CC_CONFIG['filesTable']." f ".join("", $innerBlocks); if ($browse) { - $sql .= "INNER JOIN {$this->mdataTable} br". + $sql .= "INNER JOIN ".$CC_CONFIG['mdataTable']." br". "\n ON br.gunid = f.gunid AND br.objns='_L'". " AND br.predicate='{$brFld}' AND br.predxml='T'"; if (!is_null($brFldNs)) { @@ -203,6 +201,7 @@ class DataEngine { private function _makeAndSql($fldsPart, $whereArr, $fileCond, $browse, $brFldNs=NULL, $brFld=NULL) { + global $CC_CONFIG, $CC_DBC; if (!USE_INTERSECT) { return $this->_makeAndSqlWoIntersect($fldsPart, $whereArr, $fileCond, $browse, $brFldNs, $brFld); } @@ -210,20 +209,20 @@ class DataEngine { foreach ($whereArr as $i => $v) { $whereArr[$i] = sprintf($v, "md$i", "md$i", "md$i", "md$i", "md$i"); $isectBlocks[] = - " SELECT gunid FROM {$this->mdataTable} md$i\n". + " SELECT gunid FROM ".$CC_CONFIG['mdataTable']." md$i\n". " WHERE\n {$whereArr[$i]}"; } // query construcion: if (count($isectBlocks)>0) { $isectBlock = "FROM\n(\n".join("INTERSECT\n", $isectBlocks).") sq\n". - "INNER JOIN {$this->filesTable} f ON f.gunid = sq.gunid"; + "INNER JOIN ".$CC_CONFIG['filesTable']." f ON f.gunid = sq.gunid"; } else { - $isectBlock = "FROM {$this->filesTable} f"; + $isectBlock = "FROM ".$CC_CONFIG['filesTable']." f"; } $sql = "SELECT $fldsPart\n".$isectBlock; if ($browse) { - $sql .= "\nINNER JOIN {$this->mdataTable} br ON br.gunid = f.gunid\n". + $sql .= "\nINNER JOIN ".$CC_CONFIG['mdataTable']." br ON br.gunid = f.gunid\n". "WHERE br.objns='_L' AND br.predxml='T' AND br.predicate='{$brFld}'"; if (!is_null($brFldNs)) { $sql .= " AND br.predns='{$brFldNs}'"; @@ -262,14 +261,15 @@ class DataEngine { private function _makeOrSql($fldsPart, $whereArr, $fileCond, $browse, $brFldNs=NULL, $brFld=NULL) { + global $CC_CONFIG, $CC_DBC; //$whereArr[] = " FALSE\n"; foreach ($whereArr as $i => $v) { $whereArr[$i] = sprintf($v, "md", "md", "md", "md", "md"); } // query construcion: - $sql = "SELECT $fldsPart\nFROM {$this->filesTable} f\n"; + $sql = "SELECT $fldsPart FROM ".$CC_CONFIG['filesTable']." f "; if ($browse) { - $sql .= "INNER JOIN {$this->mdataTable} br". + $sql .= "INNER JOIN ".$CC_CONFIG['mdataTable']." br". "\n ON br.gunid = f.gunid AND br.objns='_L'". " AND br.predxml='T' AND br.predicate='{$brFld}'"; if (!is_null($brFldNs)) { @@ -278,7 +278,7 @@ class DataEngine { $sql .= "\n"; } if (count($whereArr) > 0) { - $sql .= "INNER JOIN {$this->mdataTable} md ON md.gunid=f.gunid\n"; + $sql .= "INNER JOIN ".$CC_CONFIG['mdataTable']." md ON md.gunid=f.gunid\n"; $sql .= "WHERE\n(\n".join(" OR\n", $whereArr).")"; $glue = " AND"; } else { @@ -347,6 +347,7 @@ class DataEngine { private function _localGenSearch($criteria, $limit=0, $offset=0, $brFldNs=NULL, $brFld=NULL) { + global $CC_CONFIG, $CC_DBC; $filetype = (isset($criteria['filetype']) ? $criteria['filetype'] : 'all'); $filetype = strtolower($filetype); if (!array_key_exists($filetype, $this->filetypes)) { @@ -384,7 +385,7 @@ class DataEngine { $desc = (isset($descA[$j]) ? $descA[$j] : NULL); $retype = ($obLp == 'mtime' ? '::timestamp with time zone' : '' ); $orderJoinSql[] = - "LEFT JOIN {$this->mdataTable} m$i\n". + "LEFT JOIN ".$CC_CONFIG['mdataTable']." m$i\n". " ON m$i.gunid = sq2.gunid AND m$i.predicate='$obLp'". " AND m$i.objns='_L' AND m$i.predxml='T'". (!is_null($obNs)? " AND m$i.predns='$obNs'":''); @@ -423,7 +424,7 @@ class DataEngine { if (PEAR::isError($cnt)) { return $cnt; } - $res = $this->dbc->getAll($sql.$limitPart); + $res = $CC_DBC->getAll($sql.$limitPart); if (PEAR::isError($res)) { return $res; } @@ -435,7 +436,7 @@ class DataEngine { //$categoryNames = array('dc:title', 'dc:creator', 'dc:source', 'dcterms:extent'); foreach ($res as $it) { if (!$browse) { - $gunid = StoredFile::_normalizeGunid($it['gunid']); + $gunid = StoredFile::NormalizeGunid($it['gunid']); //$values = $this->gb->bsGetMetadataValue($it['id'], $categoryNames); $values = $this->gb->bsGetMetadataValue($it['id']); $eres[] = array( @@ -473,6 +474,7 @@ class DataEngine { */ public function browseCategory($category, $limit=0, $offset=0, $criteria=NULL) { + global $CC_CONFIG, $CC_DBC; //$category = strtolower($category); $r = XML_Util::splitQualifiedName($category); $catNs = $r['namespace']; @@ -487,14 +489,14 @@ class DataEngine { $limitPart = ($limit != 0 ? " LIMIT $limit" : '' ). ($offset != 0 ? " OFFSET $offset" : '' ); $sql = - "SELECT DISTINCT m.object FROM {$this->mdataTable} m\n". + "SELECT DISTINCT m.object FROM ".$CC_CONFIG['mdataTable']." m\n". "WHERE $sqlCond"; // echo "\n---\n$sql\n---\n"; $cnt = $this->_getNumRows($sql); if (PEAR::isError($cnt)) { return $cnt; } - $res = $this->dbc->getCol($sql.$limitPart); + $res = $CC_DBC->getCol($sql.$limitPart); if (PEAR::isError($res)) { return $res; } @@ -515,7 +517,8 @@ class DataEngine { */ private function _getNumRows($query) { - $rh = $this->dbc->query($query); + global $CC_CONFIG, $CC_DBC; + $rh = $CC_DBC->query($query); if (PEAR::isError($rh)) { return $rh; } diff --git a/campcaster/src/modules/storageServer/var/GreenBox.php b/campcaster/src/modules/storageServer/var/GreenBox.php index 4bea101ec..3a0534152 100644 --- a/campcaster/src/modules/storageServer/var/GreenBox.php +++ b/campcaster/src/modules/storageServer/var/GreenBox.php @@ -36,7 +36,7 @@ class GreenBox extends BasicStor { */ public function createFolder($parid, $folderName, $sessid='') { - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } return $this->bsCreateFolder($parid, $folderName); @@ -66,7 +66,7 @@ class GreenBox extends BasicStor { $mediaFileLP, $mdataFileLP, $sessid='', $gunid=NULL, $ftype='audioclip') { - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } return $this->bsPutFile( @@ -96,7 +96,7 @@ class GreenBox extends BasicStor { public function storeWebstream($parid, $fileName, $mdataFileLP, $sessid='', $gunid=NULL, $url) { - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } if (!file_exists($mdataFileLP)) { @@ -128,10 +128,10 @@ class GreenBox extends BasicStor { */ // function accessFile($id, $sessid='') // { -// if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { +// if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { // return $res; // } -// $gunid = $this->gunidFromId($id); +// $gunid = BasicStor::GunidFromId($id); // $r = $this->bsAccess(NULL, '', $gunid, 'access'); // if (PEAR::isError($r)) { // return $r; @@ -171,7 +171,7 @@ class GreenBox extends BasicStor { */ public function analyzeFile($id, $sessid='') { - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } return $this->bsAnalyzeFile($id); @@ -190,8 +190,8 @@ class GreenBox extends BasicStor { */ public function renameFile($id, $newName, $sessid='') { - $parid = $this->getParent($id); - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + $parid = M2tree::GetParent($id); + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } return $this->bsRenameFile($id, $newName); @@ -211,7 +211,7 @@ class GreenBox extends BasicStor { */ public function moveFile($id, $did, $sessid='') { - $res = $this->_authorize(array('read', 'write'), array($id, $did), $sessid); + $res = BasicStor::Authorize(array('read', 'write'), array($id, $did), $sessid); if ($res !== TRUE) { return $res; } @@ -232,7 +232,7 @@ class GreenBox extends BasicStor { */ public function copyFile($id, $did, $sessid='') { - $res = $this->_authorize(array('read', 'write'), array($id, $did), $sessid); + $res = BasicStor::Authorize(array('read', 'write'), array($id, $did), $sessid); if($res !== TRUE) { return $res; } @@ -255,7 +255,7 @@ class GreenBox extends BasicStor { */ public function replaceFile($id, $mediaFileLP, $mdataFileLP, $sessid='') { - if (($res = $this->_authorize('write', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $id, $sessid)) !== TRUE) { return $res; } return $this->bsReplaceFile($id, $mediaFileLP, $mdataFileLP); @@ -274,8 +274,8 @@ class GreenBox extends BasicStor { */ public function deleteFile($id, $sessid='', $forced=FALSE) { - $parid = $this->getParent($id); - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + $parid = M2tree::GetParent($id); + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } return $this->bsDeleteFile($id, $forced); @@ -299,7 +299,7 @@ class GreenBox extends BasicStor { */ public function replaceMetadata($id, $mdata, $mdataLoc='file', $sessid='') { - if (($res = $this->_authorize('write', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $id, $sessid)) !== TRUE) { return $res; } return $this->bsReplaceMetadata($id, $mdata, $mdataLoc); @@ -318,7 +318,7 @@ class GreenBox extends BasicStor { */ public function getMdata($id, $sessid='') { - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } return $this->bsGetMetadata($id); @@ -341,7 +341,7 @@ class GreenBox extends BasicStor { */ public function getMdataArray($id, $sessid) { - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } $ac = StoredFile::recall($this, $id); @@ -399,7 +399,7 @@ class GreenBox extends BasicStor { public function getMetadataValue($id, $category, $sessid='', $lang=NULL, $deflang=NULL) { - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } return $this->bsGetMetadataValue($id, $category); @@ -425,7 +425,7 @@ class GreenBox extends BasicStor { */ public function setMetadataValue($id, $category, $sessid, $value, $lang=NULL, $mid=NULL) { - if (($res = $this->_authorize('write', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $id, $sessid)) !== TRUE) { return $res; } return $this->bsSetMetadataValue($id, $category, $value, $lang, $mid); @@ -535,14 +535,15 @@ class GreenBox extends BasicStor { */ public function createPlaylist($parid, $fname, $sessid='') { - $gunid = StoredFile::_createGunid(); - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $gunid = StoredFile::CreateGunid(); + $lc = new LocStor($CC_DBC, $CC_CONFIG); $gunid2 = $lc->createPlaylist($sessid, $gunid, $fname); if (PEAR::isError($gunid2)) { return $gunid2; } // get local id: - $id = $this->idFromGunid($gunid2); + $id = BasicStor::IdFromGunid($gunid2); if (PEAR::isError($id)) { return $id; } @@ -589,7 +590,7 @@ class GreenBox extends BasicStor { */ public function getPlaylistArray($id, $sessid) { - $gunid = $this->gunidFromId($id); + $gunid = BasicStor::GunidFromId($id); $pl = StoredFile::recall($this, $id); if (PEAR::isError($pl)) { return $pl; @@ -611,8 +612,9 @@ class GreenBox extends BasicStor { */ public function lockPlaylistForEdit($id, $sessid) { - $gunid = $this->gunidFromId($id); - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $gunid = BasicStor::GunidFromId($id); + $lc = new LocStor($CC_DBC, $CC_CONFIG); $res = $lc->editPlaylist($sessid, $gunid); if (PEAR::isError($res)) { return $res; @@ -644,7 +646,7 @@ class GreenBox extends BasicStor { if (PEAR::isError($r)) { return $r; } - $this->_setEditFlag($gunid, FALSE, $sessid); + $this->setEditFlag($gunid, FALSE, $sessid); return $gunid; } // fn releaseLockedPlaylist @@ -677,7 +679,7 @@ class GreenBox extends BasicStor { if (PEAR::isError($pl)) { return $pl; } - $acGunid = $this->gunidFromId($acId); + $acGunid = BasicStor::GunidFromId($acId); if ($pl->cyclicRecursion($acGunid)){ return PEAR::raiseError( "GreenBox::addAudioClipToPlaylist: cyclic-recursion detected". @@ -814,7 +816,8 @@ class GreenBox extends BasicStor { */ public function revertEditedPlaylist($token, $sessid='') { - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $lc = new LocStor($CC_DBC, $CC_CONFIG); return $lc->revertEditedPlaylist($token, $sessid); } // fn revertEditedPlaylist @@ -830,8 +833,9 @@ class GreenBox extends BasicStor { */ public function deletePlaylist($id, $sessid) { - $gunid = $this->gunidFromId($id); - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $gunid = BasicStor::GunidFromId($id); + $lc = new LocStor($CC_DBC, $CC_CONFIG); return $lc->deletePlaylist($sessid, $gunid); } // fn deletePlaylist @@ -872,7 +876,7 @@ class GreenBox extends BasicStor { return $res; } $res['title'] = NULL; - $id = $this->idFromGunid($res['gunid']); + $id = BasicStor::IdFromGunid($res['gunid']); if (PEAR::isError($id)) { return $id; } @@ -934,8 +938,8 @@ class GreenBox extends BasicStor { */ public function importPlaylistOpen($sessid, $chsum='') { - $userid = $this->getSessUserId($sessid); - if ($this->dbc->isError($userid)) { + $userid = GreenBox::GetSessUserId($sessid); + if (PEAR::isError($userid)) { return $userid; } $r = $this->bsOpenPut($chsum, NULL, $userid); @@ -988,8 +992,9 @@ class GreenBox extends BasicStor { */ public function existsPlaylist($id, $sessid) { - $gunid = $this->gunidFromId($id); - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $gunid = BasicStor::GunidFromId($id); + $lc = new LocStor($CC_DBC, $CC_CONFIG); return $lc->existsPlaylist($sessid, $gunid); } // fn existsPlaylist @@ -1008,8 +1013,9 @@ class GreenBox extends BasicStor { */ public function playlistIsAvailable($id, $sessid) { - $gunid = $this->gunidFromId($id); - $lc = new LocStor($this->dbc, $this->config); + global $CC_CONFIG, $CC_DBC; + $gunid = BasicStor::GunidFromId($id); + $lc = new LocStor($CC_DBC, $CC_CONFIG); return $lc->playlistIsAvailable($sessid, $gunid, TRUE); } // fn playlistIsAvailable @@ -1136,8 +1142,8 @@ class GreenBox extends BasicStor { public function renderPlaylistToStorageOpen($sessid, $plid) { require_once("Renderer.php"); - $owner = $this->getSessUserId($sessid); - if ($this->dbc->isError($owner)) { + $owner = GreenBox::getSessUserId($sessid); + if (PEAR::isError($owner)) { return $owner; } $r = Renderer::rnRender2FileOpen($this, $plid, $owner); @@ -1181,7 +1187,7 @@ class GreenBox extends BasicStor { public function renderPlaylistToRSSOpen($sessid, $plid) { $token = '123456789abcdeff'; - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; file_put_contents($fakeFile, "fake rendered file"); return array('token'=>$token); } // fn renderPlaylistToRSSOpen @@ -1198,7 +1204,7 @@ class GreenBox extends BasicStor { */ public function renderPlaylistToRSSCheck($token) { - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; if ($token != '123456789abcdeff' || !file_exists($fakeFile)){ return PEAR::raiseError( "LocStor::renderPlaylistToRSSCheck: invalid token ($token)" @@ -1245,7 +1251,7 @@ class GreenBox extends BasicStor { "GreenBox::renderPlaylistToRSSClose: invalid token" ); } - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; unlink($fakeFile); return TRUE; } // fn renderPlaylistToRSSClose @@ -1663,8 +1669,8 @@ class GreenBox extends BasicStor { * transport token */ public function downloadFromHub($sessid, $gunid, $withContent=TRUE){ - $uid = $this->getSessUserId($sessid); - if ($this->dbc->isError($uid)) { + $uid = GreenBox::getSessUserId($sessid); + if (PEAR::isError($uid)) { return $uid; } require_once("Transport.php"); @@ -1720,7 +1726,7 @@ class GreenBox extends BasicStor { */ public function listFolder($id, $sessid='') { - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } $listArr = $this->bsListFolder($id); @@ -1733,12 +1739,11 @@ class GreenBox extends BasicStor { * * @param int $id * local id - * @return string/err + * @return string|PEAR_Error */ - public function getFileType($id) + public static function getFileType($id) { - // $id = $this->idFromGunid($gunid); - $type = $this->getObjType($id); + $type = BasicStor::GetObjType($id); return $type; } // fn getFileType @@ -1756,9 +1761,9 @@ class GreenBox extends BasicStor { */ public function existsFile($sessid, $gunid, $ftype=NULL) { - $id = $this->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); $ex = $this->bsExistsFile($id, $ftype); - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } return $ex; @@ -1772,9 +1777,9 @@ class GreenBox extends BasicStor { * @param int $id * @return array */ - public function getPath($id) + public static function GetPath($id) { - $pa = parent::getPath($id, 'id, name, type'); + $pa = M2tree::GetPath($id, 'id, name, type'); array_shift($pa); return $pa; } // fn getPath @@ -1788,11 +1793,11 @@ class GreenBox extends BasicStor { * HtmlUI depends on it. * * @param string $sessid - * @return int|PEAR_Error + * @return int|null|PEAR_Error */ - public function getSessUserId($sessid) + public static function GetSessUserId($sessid) { - $r = parent::getSessUserId($sessid); + $r = Alib::GetSessUserId($sessid); if (PEAR::isError($r)) { if ($r->getCode() == ALIBERR_NOTEXISTS) { return NULL; @@ -1822,14 +1827,14 @@ class GreenBox extends BasicStor { public function passwd($login, $oldpass=null, $pass='', $sessid='') { if (is_null($oldpass) || ($oldpass == '') ) { - if (($res = $this->_authorize('subjects', $this->rootId, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('subjects', $this->rootId, $sessid)) !== TRUE) { sleep(2); return $res; } else { $oldpass = null; } } else { - if (FALSE === $this->authenticate($login, $oldpass)) { + if (FALSE === Subjects::Authenticate($login, $oldpass)) { sleep(2); return PEAR::raiseError( "GreenBox::passwd: access denied (oldpass)", GBERR_DENY); @@ -1860,8 +1865,8 @@ class GreenBox extends BasicStor { */ public function addPerm($sid, $action, $oid, $type='A', $sessid='') { - $parid = $this->getParent($oid); - if (($res = $this->_authorize('editPerms', $parid, $sessid)) !== TRUE) { + $parid = M2tree::GetParent($oid); + if (($res = BasicStor::Authorize('editPerms', $parid, $sessid)) !== TRUE) { return $res; } return parent::addPerm($sid, $action, $oid, $type); @@ -1884,18 +1889,18 @@ class GreenBox extends BasicStor { public function removePerm($permid=NULL, $subj=NULL, $obj=NULL, $sessid='') { if (!is_null($permid)) { - $oid = $this->_getPermOid($permid); + $oid = Alib::GetPermOid($permid); if (PEAR::isError($oid)) { return $oid; } if (!is_null($oid)) { - $parid = $this->getParent($oid); - if (($res = $this->_authorize('editPerms', $parid, $sessid)) !== TRUE) { + $parid = M2tree::GetParent($oid); + if (($res = BasicStor::Authorize('editPerms', $parid, $sessid)) !== TRUE) { return $res; } } } - $res = parent::removePerm($permid, $subj, $obj); + $res = Alib::RemovePerm($permid, $subj, $obj); return $res; } // fn removePerm diff --git a/campcaster/src/modules/storageServer/var/LocStor.php b/campcaster/src/modules/storageServer/var/LocStor.php index 93e239ce1..780089c71 100644 --- a/campcaster/src/modules/storageServer/var/LocStor.php +++ b/campcaster/src/modules/storageServer/var/LocStor.php @@ -43,7 +43,7 @@ class LocStor extends BasicStor { ) { // test of gunid format: - if (!$this->_checkGunid($gunid)) { + if (!BasicStor::CheckGunid($gunid)) { return PEAR::raiseError( "LocStor::storeAudioClipOpen: Wrong gunid ($gunid)" ); @@ -53,7 +53,7 @@ class LocStor extends BasicStor { if (!PEAR::isError($ac)) { // gunid exists - do replace $oid = $ac->getId(); - if (($res = $this->_authorize('write', $oid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $oid, $sessid)) !== TRUE) { return $res; } if ($ac->isAccessed()) { @@ -74,10 +74,10 @@ class LocStor extends BasicStor { if (PEAR::isError($parid)) { return $parid; } - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } - $oid = $this->addObj($tmpFname, $ftype, $parid); + $oid = BasicStor::AddObj($tmpFname, $ftype, $parid); if (PEAR::isError($oid)) { return $oid; } @@ -215,7 +215,7 @@ class LocStor extends BasicStor { if (PEAR::isError($ac)) { return $ac; } - if (($res = $this->_authorize('read', $ac->getId(), $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $ac->getId(), $sessid)) !== TRUE) { return $res; } return $ac->accessRawMediaData($parent); @@ -258,14 +258,14 @@ class LocStor extends BasicStor { if (PEAR::isError($ex)) { return $ex; } - $id = $this->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); if (is_null($id) || !$ex) { return PEAR::raiseError( "LocStor::downloadRawAudioDataOpen: gunid not found ($gunid)", GBERR_NOTF ); } - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } return $this->bsOpenDownload($id); @@ -301,13 +301,13 @@ class LocStor extends BasicStor { { // $res = $this->existsAudioClip($sessid, $gunid); // if(PEAR::isError($res)) return $res; - $id = $this->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); if (is_null($id)) { return PEAR::raiseError( "LocStor::downloadMetadataOpen: gunid not found ($gunid)" ); } - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } $res = $this->bsOpenDownload($id, 'metadata'); @@ -343,7 +343,7 @@ class LocStor extends BasicStor { if (PEAR::isError($ac)) { return $ac; } - if (($res = $this->_authorize('read', $ac->getId(), $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $ac->getId(), $sessid)) !== TRUE) { return $res; } $md = $this->bsGetMetadata($ac->getId()); @@ -411,7 +411,7 @@ class LocStor extends BasicStor { */ protected function searchMetadata($sessid, $criteria) { - if (($res = $this->_authorize('read', $this->storId, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $this->storId, $sessid)) !== TRUE) { return $res; } $criteria['resultMode'] = 'xmlrpc'; @@ -498,11 +498,11 @@ class LocStor extends BasicStor { */ protected function existsFile($sessid, $gunid, $ftype=NULL) { - $id = $this->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); if (is_null($id)) { return FALSE; } - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } $ex = $this->bsExistsFile($id, $ftype); @@ -528,7 +528,7 @@ class LocStor extends BasicStor { } return $ac; } - if (($res = $this->_authorize('write', $ac->getId(), $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $ac->getId(), $sessid)) !== TRUE) { return $res; } $res = $this->bsDeleteFile($ac->getId(), $forced); @@ -554,7 +554,7 @@ class LocStor extends BasicStor { if (PEAR::isError($ac)) { return $ac; } - if (($res = $this->_authorize('write', $ac->getId(), $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $ac->getId(), $sessid)) !== TRUE) { return $res; } return $ac->replaceMetaData($metadata, 'string'); @@ -590,10 +590,10 @@ class LocStor extends BasicStor { if (PEAR::isError($parid)) { return $parid; } - if (($res = $this->_authorize('write', $parid, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $parid, $sessid)) !== TRUE) { return $res; } - $oid = $this->addObj($tmpFname , 'playlist', $parid); + $oid = BasicStor::AddObj($tmpFname , 'playlist', $parid); if (PEAR::isError($oid)) { return $oid; } @@ -656,14 +656,14 @@ class LocStor extends BasicStor { return $ac; } $id = $ac->getId(); - if (($res = $this->_authorize('write', $id, $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $id, $sessid)) !== TRUE) { return $res; } $res = $this->bsOpenDownload($id, 'metadata'); if (PEAR::isError($res)) { return $res; } - $r = $this->_setEditFlag($playlistId, TRUE, $sessid); + $r = $this->setEditFlag($playlistId, TRUE, $sessid); if (PEAR::isError($r)) { return $r; } @@ -698,7 +698,7 @@ class LocStor extends BasicStor { if (PEAR::isError($res)) { return $res; } - $r = $this->_setEditFlag($playlistId, FALSE, $sessid); + $r = $this->setEditFlag($playlistId, FALSE, $sessid); if (PEAR::isError($r)) { return $r; } @@ -735,7 +735,7 @@ class LocStor extends BasicStor { if (PEAR::isError($res)) { return $res; } - $this->_setEditFlag($gunid, FALSE, $sessid); + $this->setEditFlag($gunid, FALSE, $sessid); return $gunid; } @@ -770,7 +770,7 @@ class LocStor extends BasicStor { if (PEAR::isError($ac)) { return $ac; } - if (($res = $this->_authorize('write', $ac->getId(), $sessid)) !== TRUE) { + if (($res = BasicStor::Authorize('write', $ac->getId(), $sessid)) !== TRUE) { return $res; } $res = $this->bsDeleteFile($ac->getId(), $forced); @@ -820,8 +820,8 @@ class LocStor extends BasicStor { GBERR_NOTF ); } - $id = $this->idFromGunid($playlistId); - if (($res = $this->_authorize('read', $id, $sessid)) !== TRUE) { + $id = BasicStor::IdFromGunid($playlistId); + if (($res = BasicStor::Authorize('read', $id, $sessid)) !== TRUE) { return $res; } $res = $this->bsOpenDownload($id, 'metadata', $parent); @@ -876,10 +876,10 @@ class LocStor extends BasicStor { protected function exportPlaylistOpen($sessid, $plids, $type='lspl', $standalone=FALSE) { $res = $this->bsExportPlaylistOpen($plids, $type, !$standalone); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } - $url = $this->getUrlPart()."access/".basename($res['fname']); + $url = BasicStor::GetUrlPart()."access/".basename($res['fname']); $chsum = md5_file($res['fname']); $size = filesize($res['fname']); return array( @@ -916,8 +916,8 @@ class LocStor extends BasicStor { */ protected function importPlaylistOpen($sessid, $chsum) { - $userid = $this->getSessUserId($sessid); - if ($this->dbc->isError($userid)) { + $userid = Alib::GetSessUserId($sessid); + if (PEAR::isError($userid)) { return $userid; } $r = $this->bsOpenPut($chsum, NULL, $userid); @@ -958,7 +958,7 @@ class LocStor extends BasicStor { if (PEAR::isError($res)) { return $res; } - return $this->gunidFromId($res); + return BasicStor::GunidFromId($res); } @@ -1045,7 +1045,7 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToFileCheck($token) { - require_once "Renderer.php"; + require_once("Renderer.php"); $r = Renderer::rnRender2FileCheck($this, $token); if (PEAR::isError($r)) { return $r; @@ -1063,7 +1063,7 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToFileClose($token) { - require_once "Renderer.php"; + require_once("Renderer.php"); $r = Renderer::rnRender2FileClose($this, $token); if (PEAR::isError($r)) { return $r; @@ -1084,9 +1084,9 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToStorageOpen($sessid, $plid) { - require_once "Renderer.php"; - $owner = $this->getSessUserId($sessid); - if ($this->dbc->isError($owner)) { + require_once("Renderer.php"); + $owner = Alib::GetSessUserId($sessid); + if (PEAR::isError($owner)) { return $owner; } $r = Renderer::rnRender2FileOpen($this, $plid, $owner); @@ -1108,7 +1108,7 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToStorageCheck($token) { - require_once "Renderer.php"; + require_once("Renderer.php"); $r = Renderer::rnRender2StorageCheck($this, $token); if (PEAR::isError($r)) { return $r; @@ -1129,8 +1129,9 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToRSSOpen($sessid, $plid) { + global $CC_CONFIG; $token = '123456789abcdeff'; - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; file_put_contents($fakeFile, "fake rendered file"); return array('token'=>$token); } @@ -1147,13 +1148,13 @@ class LocStor extends BasicStor { */ protected function renderPlaylistToRSSCheck($token) { - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; if ($token != '123456789abcdeff' || !file_exists($fakeFile)) { return PEAR::raiseError( "LocStor::renderPlaylistToRSSCheck: invalid token ($token)" ); } - $fakeFUrl = $this->getUrlPart()."access/$token.rss"; + $fakeFUrl = BasicStor::GetUrlPart()."access/$token.rss"; return array( 'status'=> 'success', 'url' => $fakeFUrl, @@ -1176,7 +1177,7 @@ class LocStor extends BasicStor { "LocStor::renderPlaylistToRSSClose: invalid token" ); } - $fakeFile = "{$this->accessDir}/$token.rss"; + $fakeFile = $CC_CONFIG['accessDir']."/$token.rss"; unlink($fakeFile); return TRUE; } @@ -1296,8 +1297,8 @@ class LocStor extends BasicStor { */ protected function restoreBackupOpen($sessid, $chsum) { - $userid = $this->getSessUserId($sessid); - if ($this->dbc->isError($userid)) { + $userid = Alib::getSessUserId($sessid); + if (PEAR::isError($userid)) { return $userid; } $r = $this->bsOpenPut($chsum, NULL, $userid); diff --git a/campcaster/src/modules/storageServer/var/M3uPlaylist.php b/campcaster/src/modules/storageServer/var/M3uPlaylist.php index 4b9950fea..e56b2b073 100644 --- a/campcaster/src/modules/storageServer/var/M3uPlaylist.php +++ b/campcaster/src/modules/storageServer/var/M3uPlaylist.php @@ -101,9 +101,9 @@ class M3uPlaylist { foreach ($arr as $i => $it) { list($md, $uri) = preg_split("|\n|", $it); list($length, $title) = preg_split("|, *|", $md); - // $gunid = StoredFile::_createGunid(); + // $gunid = StoredFile::CreateGunid(); $gunid = ( isset($gunids[basename($uri)]) ? $gunids[basename($uri)] : NULL); - $acId = $gb->idFromGunid($gunid); + $acId = BasicStor::IdFromGunid($gunid); if (PEAR::isError($acId)) { return $acId; } @@ -162,8 +162,8 @@ class M3uPlaylist { foreach ($arr as $i => $it) { list($md, $uri) = preg_split("|\n|", $it); list($length, $title) = preg_split("|, *|", $md); - $gunid = StoredFile::_createGunid(); - $gunid2 = StoredFile::_createGunid(); + $gunid = StoredFile::CreateGunid(); + $gunid2 = StoredFile::CreateGunid(); $length = Playlist::secondsToPlaylistTime($length); $offset = '???'; $uri_h = preg_replace("|--|", "d;d;", htmlspecialchars("$uri")); @@ -225,7 +225,7 @@ class M3uPlaylistBodyElement { if (PEAR::isError($res)) { return $res; } - $gunid = StoredFile::_createGunid(); + $gunid = StoredFile::CreateGunid(); $playlength = '???'; // *** $res = "$ind\n". "$ind\n". @@ -313,8 +313,8 @@ class M3uPlaylistAudioElement { } else { $fInfo = ''; } - $plElGunid = StoredFile::_createGunid(); - $aGunid = StoredFile::_createGunid(); + $plElGunid = StoredFile::CreateGunid(); + $aGunid = StoredFile::CreateGunid(); $title = basename($tree->attrs['src']->val); $offset = Playlist::secondsToPlaylistTime($tree->attrs['begin']->val); $playlength = '???'; # *** diff --git a/campcaster/src/modules/storageServer/var/MetaData.php b/campcaster/src/modules/storageServer/var/MetaData.php index ee43a000d..9b2af121e 100644 --- a/campcaster/src/modules/storageServer/var/MetaData.php +++ b/campcaster/src/modules/storageServer/var/MetaData.php @@ -23,9 +23,6 @@ require_once "XML/Util.php"; */ class MetaData { - public $config; - public $dbc; - public $mdataTable; public $gunid; public $resDir; public $fname; @@ -41,9 +38,6 @@ class MetaData { */ public function __construct(&$gb, $gunid, $resDir) { - $this->config =& $gb->config; - $this->dbc =& $gb->dbc; - $this->mdataTable = $gb->mdataTable; $this->gunid = $gunid; $this->resDir = $resDir; $this->fname = $this->makeFname(); @@ -139,11 +133,12 @@ class MetaData { */ public function delete() { + global $CC_CONFIG, $CC_DBC; if (file_exists($this->fname)) { @unlink($this->fname); } - $res = $this->dbc->query(" - DELETE FROM {$this->mdataTable} + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($res)) { @@ -177,10 +172,11 @@ class MetaData { */ public function getAllMetadata() { + global $CC_CONFIG, $CC_DBC; $sql = "SELECT predns, predicate, object - FROM {$this->mdataTable} + FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'{$this->gunid}'::bigint"; - $rows = $this->dbc->getAll($sql); + $rows = $CC_DBC->getAll($sql); $values = array(); foreach ($rows as $row) { $values[$row["predns"].":".$row["predicate"]] = $row["object"]; @@ -202,6 +198,7 @@ class MetaData { */ public function getMetadataEl($category, $parid=NULL) { + global $CC_CONFIG, $CC_DBC; // handle predicate namespace shortcut $a = XML_Util::splitQualifiedName($category); if (PEAR::isError($a)) { @@ -217,10 +214,10 @@ class MetaData { $cond .= " AND subjns='_I' AND subject='$parid'"; } $sql = "SELECT id as mid, object as value - FROM {$this->mdataTable} + FROM ".$CC_CONFIG['mdataTable']." WHERE $cond ORDER BY id"; - $all = $this->dbc->getAll($sql); + $all = $CC_DBC->getAll($sql); foreach ($all as $i => $v) { if (is_null($all[$i]['value'])) { $all[$i]['value'] = ''; @@ -244,11 +241,12 @@ class MetaData { */ public function setMetadataEl($mid, $value=NULL) { - $info = $this->dbc->getRow(" + global $CC_CONFIG, $CC_DBC; + $info = $CC_DBC->getRow(" SELECT parmd.predns as parns, parmd.predicate as parname, md.predxml, md.predns as chns, md.predicate as chname - FROM {$this->mdataTable} parmd - INNER JOIN {$this->mdataTable} md + FROM ".$CC_CONFIG['mdataTable']." parmd + INNER JOIN ".$CC_CONFIG['mdataTable']." md ON parmd.id=md.subject AND md.subjns='_I' WHERE md.id=$mid "); @@ -270,11 +268,11 @@ class MetaData { if (!is_null($value)) { $escapedValue = pg_escape_string($value); $sql = " - UPDATE {$this->mdataTable} + UPDATE ".$CC_CONFIG['mdataTable']." SET object='$escapedValue', objns='_L' WHERE id={$mid} "; - $res = $this->dbc->query($sql); + $res = $CC_DBC->query($sql); } else { $res = $this->deleteRecord($mid); } @@ -301,9 +299,10 @@ class MetaData { */ public function insertMetadataEl($parid, $category, $value=NULL, $predxml='T') { + global $CC_CONFIG, $CC_DBC; //$category = strtolower($category); - $parent = $this->dbc->getRow(" - SELECT predns, predicate, predxml FROM {$this->mdataTable} + $parent = $CC_DBC->getRow(" + SELECT predns, predicate, predxml FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'{$this->gunid}'::bigint AND id=$parid "); if (PEAR::isError($parent)) { @@ -526,7 +525,9 @@ class MetaData { $atime = trim(`date +%Y-%m-%dT%H:%M:%S`).$tz; } $r = $this->setMetadataValue('ls:mtime', $atime); - if(PEAR::isError($r)) return $r; + if (PEAR::isError($r)) { + return $r; + } $fn = $this->fname; $xml = $this->genXMLDoc(); if (PEAR::isError($xml)) { @@ -589,9 +590,10 @@ class MetaData { */ private function dbCheck($gunid) { - $cnt = $this->dbc->getOne(" + global $CC_CONFIG, $CC_DBC; + $cnt = $CC_DBC->getOne(" SELECT count(*)as cnt - FROM {$this->mdataTable} + FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'$gunid'::bigint "); if (PEAR::isError($cnt)) { @@ -628,7 +630,8 @@ class MetaData { */ private function validate(&$tree) { - if ($this->config['validate'] && !is_null($this->format)) { + global $CC_CONFIG; + if ($CC_CONFIG['validate'] && !is_null($this->format)) { require_once("Validator.php"); $val = new Validator($this->format, $this->gunid); if (PEAR::isError($val)) { @@ -658,7 +661,8 @@ class MetaData { */ private function validateOneValue($parName, $category, $predxml, $value) { - if ($this->config['validate'] && !is_null($this->format)) { + global $CC_CONFIG; + if ($CC_CONFIG['validate'] && !is_null($this->format)) { require_once("Validator.php"); $val = new Validator($this->format, $this->gunid); if (PEAR::isError($val)) { @@ -682,15 +686,16 @@ class MetaData { */ private function storeDoc(&$tree) { - $this->dbc->query("BEGIN"); + global $CC_CONFIG, $CC_DBC; + $CC_DBC->query("BEGIN"); $res = $this->storeNode($tree); if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } - $res = $this->dbc->query("COMMIT"); + $res = $CC_DBC->query("COMMIT"); if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } return TRUE; @@ -759,7 +764,7 @@ class MetaData { // { // $object_sql = is_null($object) ? "NULL" : "'".pg_escape_string($object)."'"; // $objns_sql = is_null($objns) ? "NULL" : "'".pg_escape_string($objns)."'"; -// $res = $this->dbc->query("UPDATE {$this->mdataTable} +// $res = $CC_DBC->query("UPDATE {$this->mdataTable} // SET objns = $objns_sql, object = $object_sql // WHERE gunid = x'{$this->gunid}'::bigint AND id='$mdid' // "); @@ -796,6 +801,7 @@ class MetaData { private function storeRecord($subjns, $subject, $predns, $predicate, $predxml='T', $objns=NULL, $object=NULL) { + global $CC_CONFIG, $CC_DBC; //echo "$subjns, $subject, $predns, $predicate, $predxml, $objns, $object\n"; //$predns = strtolower($predns); //$predicate = strtolower($predicate); @@ -805,12 +811,12 @@ class MetaData { $predicate_sql = is_null($predicate) ? "NULL" : "'".pg_escape_string($predicate)."'"; $objns_sql = is_null($objns) ? "NULL" : "'".pg_escape_string($objns)."'"; $object_sql = is_null($object) ? "NULL" : "'".pg_escape_string($object)."'"; - $id = $this->dbc->nextId("{$this->mdataTable}_id_seq"); + $id = $CC_DBC->nextId($CC_CONFIG['mdataTable']."_id_seq"); if (PEAR::isError($id)) { return $id; } - $res = $this->dbc->query(" - INSERT INTO {$this->mdataTable} + $res = $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['mdataTable']." (id , gunid, subjns, subject, predns, predicate, predxml, objns, object @@ -837,10 +843,11 @@ class MetaData { */ private function deleteRecord($mid) { - $sql = "SELECT id FROM {$this->mdataTable} + global $CC_CONFIG, $CC_DBC; + $sql = "SELECT id FROM ".$CC_CONFIG['mdataTable']." WHERE subjns='_I' AND subject='{$mid}' AND gunid=x'{$this->gunid}'::bigint"; - $rh = $this->dbc->query($sql); + $rh = $CC_DBC->query($sql); if (PEAR::isError($rh)) { return $rh; } @@ -851,10 +858,10 @@ class MetaData { } } $rh->free(); - $sql = "DELETE FROM {$this->mdataTable} + $sql = "DELETE FROM ".$CC_CONFIG['mdataTable']." WHERE id={$mid} AND gunid=x'{$this->gunid}'::bigint"; - $res = $this->dbc->query($sql); + $res = $CC_DBC->query($sql); if (PEAR::isError($res)) { return $res; } @@ -871,9 +878,10 @@ class MetaData { */ public function genPhpArray() { + global $CC_CONFIG, $CC_DBC; $res = array(); - $row = $this->dbc->getRow(" - SELECT * FROM {$this->mdataTable} + $row = $CC_DBC->getRow(" + SELECT * FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'{$this->gunid}'::bigint AND subjns='_G' AND subject='{$this->gunid}' "); @@ -899,10 +907,11 @@ class MetaData { */ public function genXMLDoc() { + global $CC_CONFIG, $CC_DBC; require_once("XML/Util.php"); $res = XML_Util::getXMLDeclaration("1.0", "UTF-8")."\n"; - $row = $this->dbc->getRow(" - SELECT * FROM {$this->mdataTable} + $row = $CC_DBC->getRow(" + SELECT * FROM ".$CC_CONFIG['mdataTable']." WHERE gunid=x'{$this->gunid}'::bigint AND subjns='_G' AND subject='{$this->gunid}' "); @@ -939,7 +948,7 @@ class MetaData { private function genXMLNode($row, $genXML=TRUE) { if (DEBUG) { - echo"genXMLNode:\n"; + echo "genXMLNode:\n"; } if (DEBUG) { var_dump($row); @@ -990,13 +999,14 @@ class MetaData { */ private function getSubrows($parid, $genXML=TRUE) { + global $CC_CONFIG, $CC_DBC; if (DEBUG) { echo" getSubrows:\n"; } - $qh = $this->dbc->query($q = " + $qh = $CC_DBC->query($q = " SELECT id, predxml, predns, predicate, objns, object - FROM {$this->mdataTable} + FROM ".$CC_CONFIG['mdataTable']." WHERE subjns='_I' AND subject='$parid' AND gunid=x'{$this->gunid}'::bigint diff --git a/campcaster/src/modules/storageServer/var/Playlist.php b/campcaster/src/modules/storageServer/var/Playlist.php index 36f7a7f67..b074cb24b 100644 --- a/campcaster/src/modules/storageServer/var/Playlist.php +++ b/campcaster/src/modules/storageServer/var/Playlist.php @@ -102,7 +102,7 @@ class Playlist extends StoredFile { public function &create(&$gb, $plid, $fname=NULL, $parid=NULL) { $tmpFname = uniqid(''); - $oid = $gb->addObj($tmpFname , 'playlist', $parid); + $oid = BasicStor::AddObj($tmpFname , 'playlist', $parid); if (PEAR::isError($oid)) { return $oid; } @@ -154,7 +154,7 @@ class Playlist extends StoredFile { 'Playlist::lock: playlist already locked' ); } - $r = $gb->_setEditFlag($this->gunid, $val, NULL, $subjid); + $r = $gb->setEditFlag($this->gunid, $val, NULL, $subjid); return $r; } @@ -248,7 +248,7 @@ class Playlist extends StoredFile { } else { $acTit = $acGunid; } - $elType = $this->gb->getObjType($acId); + $elType = BasicStor::GetObjType($acId); $trTbl = array('audioclip'=>'audioClip', 'webstream'=>'audioClip', 'playlist'=>'playlist'); $elType = $trTbl[$elType]; @@ -381,7 +381,7 @@ class Playlist extends StoredFile { $plElId = $r; // create and insert gunid (id attribute) if (is_null($plElGunid)) { - $plElGunid = StoredFile::_createGunid(); + $plElGunid = StoredFile::CreateGunid(); } $r = $this->md->insertMetadataEl($plElId, 'id', $plElGunid, 'A'); if (PEAR::isError($r)) { @@ -420,7 +420,7 @@ class Playlist extends StoredFile { return $r; } $fiId = $r; - $fiGunid = StoredFile::_createGunid(); + $fiGunid = StoredFile::CreateGunid(); $r = $this->md->insertMetadataEl($fiId, 'id', $fiGunid, 'A'); if (PEAR::isError($r)) { return $r; @@ -687,7 +687,7 @@ class Playlist extends StoredFile { if (PEAR::isError($fiMid)) { return $fiMid; } - $fiGunid = StoredFile::_createGunid(); + $fiGunid = StoredFile::CreateGunid(); $r = $this->_getMidOrInsert('id', $fiMid, $fiGunid, 'A'); if (PEAR::isError($r)) { return $r; @@ -773,7 +773,7 @@ class Playlist extends StoredFile { ); } } - $acId = $this->gb->idFromGunid($acGunid); + $acId = BasicStor::IdFromGunid($acGunid); if (PEAR::isError($acId)) { return $acId; } diff --git a/campcaster/src/modules/storageServer/var/Prefs.php b/campcaster/src/modules/storageServer/var/Prefs.php index badc9b3f8..2c8f5ae4b 100644 --- a/campcaster/src/modules/storageServer/var/Prefs.php +++ b/campcaster/src/modules/storageServer/var/Prefs.php @@ -16,6 +16,8 @@ /* ================== Prefs ================== */ class Prefs { + public $gb; + /** * Constructor * @@ -25,8 +27,6 @@ class Prefs { public function __construct(&$gb) { $this->gb =& $gb; - $this->dbc =& $gb->dbc; - $this->prefTable = $gb->config['tblNamePrefix'].'pref'; } @@ -44,7 +44,7 @@ class Prefs { */ function loadPref($sessid, $key) { - $subjid = $this->gb->getSessUserId($sessid); + $subjid = GreenBox::GetSessUserId($sessid); if (PEAR::isError($subjid)) { return $subjid; } @@ -77,7 +77,7 @@ class Prefs { */ function savePref($sessid, $key, $value) { - $subjid = $this->gb->getSessUserId($sessid); + $subjid = GreenBox::GetSessUserId($sessid); if (PEAR::isError($subjid)) { return $subjid; } @@ -110,7 +110,7 @@ class Prefs { */ function delPref($sessid, $key) { - $subjid = $this->gb->getSessUserId($sessid); + $subjid = GreenBox::GetSessUserId($sessid); if (PEAR::isError($subjid)) { return $subjid; } @@ -146,7 +146,7 @@ class Prefs { function loadGroupPref($sessid, $group, $key) { // if sessid is would be used here fix Transport::cronCallMethod ! - $subjid = $this->gb->getSubjId($group); + $subjid = Subjects::GetSubjId($group); if (PEAR::isError($subjid)) { return $subjid; } @@ -181,7 +181,7 @@ class Prefs { */ function saveGroupPref($sessid, $group, $key, $value) { - $uid = $this->gb->getSessUserId($sessid); + $uid = GreenBox::GetSessUserId($sessid); if (PEAR::isError($uid)) { return $uid; } @@ -189,7 +189,7 @@ class Prefs { return PEAR::raiseError( "Prefs::saveGroupPref: invalid session id", GBERR_SESS); } - $gid = $this->gb->getSubjId($group); + $gid = Subjects::GetSubjId($group); if (PEAR::isError($gid)) { return $gid; } @@ -197,7 +197,7 @@ class Prefs { return PEAR::raiseError( "Prefs::saveGroupPref: invalid group name", GBERR_SESS); } - $memb = $this->gb->isMemberOf($uid, $gid); + $memb = Subjects::IsMemberOf($uid, $gid); if (PEAR::isError($memb)) { return $memb; } @@ -231,7 +231,7 @@ class Prefs { */ function delGroupPref($sessid, $group, $key) { - $uid = $this->gb->getSessUserId($sessid); + $uid = GreenBox::GetSessUserId($sessid); if (PEAR::isError($uid)) { return $uid; } @@ -239,7 +239,7 @@ class Prefs { return PEAR::raiseError( "Prefs::delGroupPref: invalid session id", GBERR_SESS); } - $gid = $this->gb->getSubjId($group); + $gid = Subjects::GetSubjId($group); if (PEAR::isError($gid)) { return $gid; } @@ -247,7 +247,7 @@ class Prefs { return PEAR::raiseError( "Prefs::delGroupPref: invalid group name", GBERR_SESS); } - $memb = $this->gb->isMemberOf($uid, $gid); + $memb = Subjects::IsMemberOf($uid, $gid); if (PEAR::isError($memb)) { return $memb; } @@ -280,14 +280,15 @@ class Prefs { * @return int * local user id */ - function insert($subjid, $keystr, $valstr='') + public static function Insert($subjid, $keystr, $valstr='') { - $id = $this->dbc->nextId("{$this->prefTable}_id_seq"); + global $CC_CONFIG, $CC_DBC; + $id = $CC_DBC->nextId($CC_CONFIG['prefTable']."_id_seq"); if (PEAR::isError($id)) { return $id; } - $r = $this->dbc->query(" - INSERT INTO {$this->prefTable} + $r = $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['prefTable']." (id, subjid, keystr, valstr) VALUES ($id, $subjid, '$keystr', '$valstr') @@ -311,8 +312,9 @@ class Prefs { */ function readVal($subjid, $keystr) { - $val = $this->dbc->getOne(" - SELECT valstr FROM {$this->prefTable} + global $CC_CONFIG, $CC_DBC; + $val = $CC_DBC->getOne(" + SELECT valstr FROM ".$CC_CONFIG['prefTable']." WHERE subjid=$subjid AND keystr='$keystr' "); if (PEAR::isError($val)) { @@ -335,8 +337,9 @@ class Prefs { */ function readKeys($subjid) { - $res = $this->dbc->getAll(" - SELECT keystr FROM {$this->prefTable} + global $CC_CONFIG, $CC_DBC; + $res = $CC_DBC->getAll(" + SELECT keystr FROM ".$CC_CONFIG['prefTable']." WHERE subjid=$subjid "); if (PEAR::isError($res)) { @@ -362,15 +365,16 @@ class Prefs { */ function update($subjid, $keystr, $newvalstr='') { - $r = $this->dbc->query(" - UPDATE {$this->prefTable} SET + global $CC_CONFIG, $CC_DBC; + $r = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['prefTable']." SET valstr='$newvalstr' WHERE subjid=$subjid AND keystr='$keystr' "); if (PEAR::isError($r)) { return $r; } - if ($this->dbc->affectedRows() < 1) { + if ($CC_DBC->affectedRows() < 1) { return FALSE; } return TRUE; @@ -388,14 +392,15 @@ class Prefs { */ function delete($subjid, $keystr) { - $r = $this->dbc->query(" - DELETE FROM {$this->prefTable} + global $CC_CONFIG, $CC_DBC; + $r = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['prefTable']." WHERE subjid=$subjid AND keystr='$keystr' "); if (PEAR::isError($r)) { return $r; } - if ($this->dbc->affectedRows() < 1) { + if ($CC_DBC->affectedRows() < 1) { return FALSE; } return TRUE; @@ -409,7 +414,8 @@ class Prefs { */ function test() { - $sessid = $this->gb->login('root', $this->gb->config['tmpRootPass']); + global $CC_CONFIG; + $sessid = Alib::Login('root', $CC_CONFIG['tmpRootPass']); $testkey = 'testKey'; $testVal = 'abcDef 0123 ěščřžýáíé ĚŠČŘŽÝÁÍÉ'; $r = savePref($sessid, $testKey, $testVal); @@ -439,39 +445,40 @@ class Prefs { * * @return boolean */ - function install() - { - $this->dbc->createSequence("{$this->prefTable}_id_seq"); - $r = $this->dbc->query("CREATE TABLE {$this->prefTable} ( - id int not null, - subjid int REFERENCES {$this->gb->subjTable} ON DELETE CASCADE, - keystr varchar(255), - valstr text - )"); - if (PEAR::isError($r)) { - return $r; - } - $this->dbc->query("CREATE UNIQUE INDEX {$this->prefTable}_id_idx - ON {$this->prefTable} (id)"); - $this->dbc->query("CREATE UNIQUE INDEX {$this->prefTable}_subj_key_idx - ON {$this->prefTable} (subjid, keystr)"); - $this->dbc->query("CREATE INDEX {$this->prefTable}_subjid_idx - ON {$this->prefTable} (subjid)"); - $stPrefGr = $this->gb->getSubjId($this->gb->config['StationPrefsGr']); - if (PEAR::isError($stPrefGr)) { - echo $stPrefGr->getMessage()."\n"; - } - $r = $this->insert($stPrefGr, 'stationName', "Radio Station 1"); - if (PEAR::isError($r)) { - echo $r->getMessage()."\n"; - } - $genres = file_get_contents( dirname(__FILE__).'/genres.xml'); - $r = $this->insert($stPrefGr, 'genres', $genres); - if (PEAR::isError($r)) { - echo $r->getMessage()."\n"; - } - return TRUE; - } +// function install() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->createSequence("{$this->prefTable}_id_seq"); +// $r = $CC_DBC->query("CREATE TABLE {$this->prefTable} ( +// id int not null, +// subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, +// keystr varchar(255), +// valstr text +// )"); +// if (PEAR::isError($r)) { +// return $r; +// } +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->prefTable}_id_idx +// ON {$this->prefTable} (id)"); +// $CC_DBC->query("CREATE UNIQUE INDEX {$this->prefTable}_subj_key_idx +// ON {$this->prefTable} (subjid, keystr)"); +// $CC_DBC->query("CREATE INDEX {$this->prefTable}_subjid_idx +// ON {$this->prefTable} (subjid)"); +// $stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']); +// if (PEAR::isError($stPrefGr)) { +// echo $stPrefGr->getMessage()."\n"; +// } +// $r = Prefs::Insert($stPrefGr, 'stationName', "Radio Station 1"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()."\n"; +// } +// $genres = file_get_contents(dirname(__FILE__).'/../genres.xml'); +// $r = Prefs::Insert($stPrefGr, 'genres', $genres); +// if (PEAR::isError($r)) { +// echo $r->getMessage()."\n"; +// } +// return TRUE; +// } /** @@ -479,11 +486,12 @@ class Prefs { * * @return boolean */ - function uninstall() - { - $this->dbc->query("DROP TABLE {$this->prefTable}"); - $this->dbc->dropSequence("{$this->prefTable}_id_seq"); - } +// function uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE {$this->prefTable}"); +// $CC_DBC->dropSequence("{$this->prefTable}_id_seq"); +// } } // class Prefs ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/Renderer.php b/campcaster/src/modules/storageServer/var/Renderer.php index 18aee7f83..ad0b046a1 100644 --- a/campcaster/src/modules/storageServer/var/Renderer.php +++ b/campcaster/src/modules/storageServer/var/Renderer.php @@ -35,6 +35,7 @@ class Renderer */ function rnRender2FileOpen(&$gb, $plid, $owner=NULL) { + global $CC_CONFIG; // recall playlist: $pl = LsPlaylist::recallByGunid($gb, $plid); if (PEAR::isError($pl)) { @@ -46,7 +47,7 @@ class Renderer return $smil; } // temporary file for smil: - $tmpn = tempnam($gb->bufferDir, 'plRender_'); + $tmpn = tempnam($CC_CONFIG['bufferDir'], 'plRender_'); $smilf = "$tmpn.smil"; file_put_contents($smilf, $smil); $url = "file://$smilf"; @@ -54,11 +55,11 @@ class Renderer $outf = "$tmpn.".RENDER_EXT; touch($outf); // logging: - $logf = "{$gb->bufferDir}/renderer.log"; + $logf = $CC_CONFIG['bufferDir']."/renderer.log"; file_put_contents($logf, "--- ".date("Ymd-H:i:s")."\n", FILE_APPEND); // open access to output file: /*gunid*/ /*parent*/ $acc = $gb->bsAccess($outf, RENDER_EXT, $plid, 'render', 0, $owner); - if ($gb->dbc->isError($acc)) { + if (PEAR::isError($acc)) { return $acc; } extract($acc); @@ -118,8 +119,8 @@ class Renderer * url : string - readable url */ function rnRender2FileList(&$gb,$stat='') { - # open temporary dir - $tokens = $gb->getTokensByType('render'); + // open temporary dir + $tokens = BasicStor::GetTokensByType('render'); foreach ($tokens as $token) { $st = Renderer::rnRender2FileCheck($gb, $token); if ( ($stat=='') || ($st['status']==$stat) ) { @@ -142,12 +143,13 @@ class Renderer */ function rnRender2FileClose(&$gb, $token) { + global $CC_CONFIG; $r = $gb->bsRelease($token, 'render'); if (PEAR::isError($r)) { return $r; } $realOgg = $r['realFname']; - $tmpn = "{$gb->bufferDir}/".basename($realOgg, '.'.RENDER_EXT); + $tmpn = $CC_CONFIG['bufferDir']."/".basename($realOgg, '.'.RENDER_EXT); $smilf = "$tmpn.smil"; $statf = Renderer::getStatusFile($gb, $token); @unlink($statf); @@ -219,7 +221,7 @@ class Renderer return $parid; } $fileName = 'rendered_playlist'; - $id = $gb->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); if (PEAR::isError($id)) { return $id; } @@ -254,8 +256,9 @@ class Renderer */ function getLocalFile(&$gb, $token) { - $token = StoredFile::_normalizeGunid($token); - return "{$gb->accessDir}/$token.".RENDER_EXT; + global $CC_CONFIG; + $token = StoredFile::NormalizeGunid($token); + return $CC_CONFIG['accessDir']."/$token.".RENDER_EXT; } @@ -285,8 +288,8 @@ class Renderer */ function getUrl(&$gb, $token) { - $token = StoredFile::_normalizeGunid($token); - return $gb->getUrlPart()."access/$token.".RENDER_EXT; + $token = StoredFile::NormalizeGunid($token); + return BasicStor::GetUrlPart()."access/$token.".RENDER_EXT; } } // class Renderer diff --git a/campcaster/src/modules/storageServer/var/Restore.php b/campcaster/src/modules/storageServer/var/Restore.php index 3ae90e102..7a73eeb4f 100644 --- a/campcaster/src/modules/storageServer/var/Restore.php +++ b/campcaster/src/modules/storageServer/var/Restore.php @@ -56,10 +56,12 @@ class Restore { * @param GreenBox $gb * greenbox object reference */ - public function __construct(&$gb) { + public function __construct(&$gb) + { + global $CC_CONFIG; $this->gb =& $gb; $this->token = null; - $this->logFile = $this->gb->bufferDir.'/'.ACCESS_TYPE.'.log'; + $this->logFile = $CC_CONFIG['bufferDir'].'/'.ACCESS_TYPE.'.log'; if ($this->loglevel == 'debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." construct\n"); } @@ -77,14 +79,15 @@ class Restore { * hasharray with field: * token string: backup token */ - function openRestore($sessid, $backup_file) { + function openRestore($sessid, $backup_file) + { if ($this->loglevel=='debug') { $this->addLogItem("-I-".date("Ymd-H:i:s")." doRestore - sessid:$sessid\n"); } $this->sessid = $sessid; //generate token - $this->token = StoredFile::_createGunid(); + $this->token = StoredFile::CreateGunid(); // status file -> working $this->setEnviroment(); @@ -112,7 +115,8 @@ class Restore { * url : string - access url * tmpfile : string - access filename */ - function checkRestore($token) { + function checkRestore($token) + { if ($this->loglevel == 'debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." checkBackup - token:$token\n"); } @@ -145,7 +149,8 @@ class Restore { * hasharray with field: * status : boolean - is susccess */ - function closeRestore($token) { + function closeRestore($token) + { if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." checkBackup - token:$token\n"); } @@ -170,7 +175,8 @@ class Restore { * @param string $sessid * session id */ - function startRestore($backupfile, $token, $sessid) { + function startRestore($backupfile, $token, $sessid) + { if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." startRestore - bufile:$backupfile | token:$token\n"); } @@ -181,8 +187,8 @@ class Restore { // extract tarball $command = 'tar -xf '.$backupfile.' --directory '.$this->tmpDir; $res = system($command); - #$this->addLogItem('command: '.$command."\n"); - #$this->addLogItem('res: '.$res."\n"); + //$this->addLogItem('command: '.$command."\n"); + //$this->addLogItem('res: '.$res."\n"); //simple check of archive format if (is_dir($this->tmpDir.'audioClip/') && @@ -221,7 +227,8 @@ class Restore { * type : stirng - audioClip | playlist * id : string - the backuped gunid */ - function getMetaFiles() { + function getMetaFiles() + { if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." getMetaFiles - tmpDir:{$this->tmpDir}\n"); } @@ -256,7 +263,8 @@ class Restore { * @return mixed * true if success or PEAR_error */ - function addFileToStorage($file,$type,$gunid) { + function addFileToStorage($file,$type,$gunid) + { if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." addFileToStorage - file:$file | type:$type | id:$gunid\n"); } @@ -273,7 +281,7 @@ class Restore { } if (!PEAR::isError($ex) && $ex) { // file is exists in storage server //replace it - $id = $this->gb->idFromGunid($gunid); + $id = BasicStor::IdFromGunid($gunid); $replace = $this->gb->replaceFile( $id, # id int, virt.file's local id $mediaFileLP, # mediaFileLP string, local path of media file @@ -341,12 +349,13 @@ class Restore { * Figure out the environment to the backup. * */ - function setEnviroment() { + function setEnviroment() + { if ($this->loglevel=='debug') { $this->addLogItem("-I- ".date("Ymd-H:i:s")." setEnviroment\n"); } - $this->statusFile = $this->gb->accessDir.'/'.$this->token.'.status'; - $this->tmpDir = '/tmp/ls_restore/'.$this->token.'/'; + $this->statusFile = $CC_CONFIG['accessDir'].'/'.$this->token.'.status'; + $this->tmpDir = '/tmp/ls_restore/'.$this->token.'/'; $this->rMkDir($this->tmpDir); } @@ -357,7 +366,8 @@ class Restore { * @param string $item * the new row of log file */ - function addLogItem($item) { + function addLogItem($item) + { $f = fopen ($this->logFile,'a'); flock($f,LOCK_SH); fwrite($f,$item); @@ -376,7 +386,8 @@ class Restore { * @return boolean * is success */ - function rRmDir($dirname) { + function rRmDir($dirname) + { if (is_dir($dirname)) { $dir_handle = opendir($dirname); } @@ -407,7 +418,8 @@ class Restore { * * @return boolean */ - function rMkDir($dirname,$mode=0777,$recursive=true) { + function rMkDir($dirname, $mode=0777, $recursive=true) + { if (is_null($dirname) || $dirname === "" ) { return false; } diff --git a/campcaster/src/modules/storageServer/var/SmilPlaylist.php b/campcaster/src/modules/storageServer/var/SmilPlaylist.php index dd0fa663d..e9446e8ee 100644 --- a/campcaster/src/modules/storageServer/var/SmilPlaylist.php +++ b/campcaster/src/modules/storageServer/var/SmilPlaylist.php @@ -238,14 +238,14 @@ class SmilPlaylistAudioElement { } } if ($fadeIn > 0 || $fadeOut > 0) { - $fiGunid = StoredFile::_createGunid(); + $fiGunid = StoredFile::CreateGunid(); $fadeIn = Playlist::secondsToPlaylistTime($fadeIn); $fadeOut = Playlist::secondsToPlaylistTime($fadeOut); $fInfo = "$ind2\n"; } else { $fInfo = ''; } - $plElGunid = StoredFile::_createGunid(); + $plElGunid = StoredFile::CreateGunid(); $acGunid = $gunid; $type = 'audioClip'; if (preg_match("|\.([a-zA-Z0-9]+)$|", $uri, $va)) { diff --git a/campcaster/src/modules/storageServer/var/StoredFile.php b/campcaster/src/modules/storageServer/var/StoredFile.php index bedf6d47f..4ae16253a 100644 --- a/campcaster/src/modules/storageServer/var/StoredFile.php +++ b/campcaster/src/modules/storageServer/var/StoredFile.php @@ -40,13 +40,13 @@ class StoredFile { * Name of a database table. * @var string */ - public $filesTable; + //public $filesTable; /** * Name of a database table. * @var string */ - public $accessTable; + //public $accessTable; /** * Unique ID for the file. @@ -57,7 +57,7 @@ class StoredFile { /** * Directory where the file is located. - * + * * @var string */ private $resDir; @@ -65,7 +65,7 @@ class StoredFile { /** * @var string */ - private $accessDir; + //private $accessDir; /** * @var RawMediaData @@ -87,16 +87,17 @@ class StoredFile { */ public function __construct(&$gb, $gunid=NULL) { + global $CC_CONFIG; + global $CC_DBC; $this->gb =& $gb; - $this->dbc =& $gb->dbc; - $this->filesTable = $gb->filesTable; - $this->accessTable= $gb->accessTable; + //$this->filesTable = $CC_CONFIG['filesTable']; + //$this->accessTable= $CC_CONFIG['accessTable']; $this->gunid = $gunid; if (is_null($this->gunid)) { - $this->gunid = $this->_createGunid(); + $this->gunid = StoredFile::CreateGunid(); } $this->resDir = $this->_getResDir($this->gunid); - $this->accessDir = $this->gb->accessDir; + //$this->accessDir = $this->gb->accessDir; $this->rmd = new RawMediaData($this->gunid, $this->resDir); $this->md = new MetaData($gb, $this->gunid, $this->resDir); } @@ -129,6 +130,7 @@ class StoredFile { $mediaFileLP='', $metadata='', $mdataLoc='file', $gunid=NULL, $ftype=NULL, $className='StoredFile') { + global $CC_CONFIG, $CC_DBC; $ac = new $className($gb, ($gunid ? $gunid : NULL)); if (PEAR::isError($ac)) { return $ac; @@ -142,16 +144,16 @@ class StoredFile { } $escapedName = pg_escape_string($name); $escapedFtype = pg_escape_string($ftype); - $ac->dbc->query("BEGIN"); - $res = $ac->dbc->query(" - INSERT INTO {$ac->filesTable} + $CC_DBC->query("BEGIN"); + $res = $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['filesTable']." (id, name, gunid, mime, state, ftype, mtime) VALUES ('$oid', '{$escapedName}', x'{$ac->gunid}'::bigint, '{$ac->mime}', 'incomplete', '$escapedFtype', now()) "); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } // --- metadata insert: @@ -167,7 +169,7 @@ class StoredFile { } $res = $ac->md->insert($metadata, $mdataLoc, $ftype); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } // --- media file insert: @@ -178,7 +180,7 @@ class StoredFile { } $res = $ac->rmd->insert($mediaFileLP); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } $mime = $ac->rmd->getMime(); @@ -186,7 +188,7 @@ class StoredFile { if ($mime !== FALSE) { $res = $ac->setMime($mime); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } } @@ -195,13 +197,13 @@ class StoredFile { if (!$emptyState) { $res = $ac->setState('ready'); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } } - $res = $ac->dbc->query("COMMIT"); + $res = $CC_DBC->query("COMMIT"); if (PEAR::isError($res)) { - $ac->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } return $ac; @@ -221,15 +223,17 @@ class StoredFile { * optional classname to recall * @return StoredFile */ - public function &recall(&$gb, $oid='', $gunid='', $className='StoredFile') + public static function &recall(&$gb, $oid='', $gunid='', $className='StoredFile') { + global $CC_DBC; + global $CC_CONFIG; $cond = ($oid != '' ? "id='".intval($oid)."'" : "gunid=x'$gunid'::bigint" ); - $row = $gb->dbc->getRow(" + $row = $CC_DBC->getRow(" SELECT id, to_hex(gunid)as gunid, mime, name, ftype - FROM {$gb->filesTable} WHERE $cond + FROM ".$CC_CONFIG['filesTable']." WHERE $cond "); if (PEAR::isError($row)) { return $row; @@ -241,7 +245,7 @@ class StoredFile { ); return $r; } - $gunid = StoredFile::_normalizeGunid($row['gunid']); + $gunid = StoredFile::NormalizeGunid($row['gunid']); $ac = new $className($gb, $gunid); $ac->mime = $row['mime']; $ac->name = $row['name']; @@ -281,9 +285,10 @@ class StoredFile { */ public static function recallByToken(&$gb, $token, $className='StoredFile') { - $gunid = $gb->dbc->getOne(" + global $CC_CONFIG, $CC_DBC; + $gunid = $CC_DBC->getOne(" SELECT to_hex(gunid)as gunid - FROM {$gb->accessTable} + FROM ".$CC_CONFIG['accessTable']." WHERE token=x'$token'::bigint "); if (PEAR::isError($gunid)) { @@ -293,7 +298,7 @@ class StoredFile { return PEAR::raiseError( "StoredFile::recallByToken: invalid token ($token)", GBERR_AOBJNEX); } - $gunid = StoredFile::_normalizeGunid($gunid); + $gunid = StoredFile::NormalizeGunid($gunid); return StoredFile::recall($gb, '', $gunid, $className); } @@ -307,11 +312,11 @@ class StoredFile { * new local id * @return StoredFile */ - public function ©Of(&$src, $nid) + public static function &CopyOf(&$src, $nid) { $ac = StoredFile::insert( $src->gb, $nid, $src->name, $src->_getRealRADFname(), - '', '', NULL, $src->gb->_getType($src->gunid) + '', '', NULL, BasicStor::GetType($src->gunid) ); if (PEAR::isError($ac)) { return $ac; @@ -339,10 +344,11 @@ class StoredFile { public function replace($oid, $name, $mediaFileLP='', $metadata='', $mdataLoc='file') { - $this->dbc->query("BEGIN"); + global $CC_CONFIG, $CC_DBC; + $CC_DBC->query("BEGIN"); $res = $this->rename($name); if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } if ($mediaFileLP != '') { // media @@ -351,7 +357,7 @@ class StoredFile { $res = $this->rmd->delete(); } if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } if ($metadata != '') { // metadata @@ -360,12 +366,12 @@ class StoredFile { $res = $this->md->delete(); } if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } - $res = $this->dbc->query("COMMIT"); + $res = $CC_DBC->query("COMMIT"); if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } return TRUE; @@ -454,18 +460,19 @@ class StoredFile { */ public function replaceMetaData($metadata, $mdataLoc='file', $format=NULL) { - $this->dbc->query("BEGIN"); + global $CC_CONFIG, $CC_DBC; + $CC_DBC->query("BEGIN"); $res = $this->md->replace($metadata, $mdataLoc, $format); if (PEAR::isError($res)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $res; } $r = $this->md->regenerateXmlFile(); if (PEAR::isError($r)) { - $this->dbc->query("ROLLBACK"); + $CC_DBC->query("ROLLBACK"); return $r; } - $res = $this->dbc->query("COMMIT"); + $res = $CC_DBC->query("COMMIT"); if (PEAR::isError($res)) { return $res; } @@ -508,9 +515,10 @@ class StoredFile { */ public function rename($newname) { + global $CC_CONFIG, $CC_DBC; $escapedName = pg_escape_string($newname); - $res = $this->dbc->query(" - UPDATE {$this->filesTable} SET name='$escapedName', mtime=now() + $res = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['filesTable']." SET name='$escapedName', mtime=now() WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($res)) { @@ -532,10 +540,11 @@ class StoredFile { */ public function setState($state, $editedby=NULL) { + global $CC_CONFIG, $CC_DBC; $escapedState = pg_escape_string($state); $eb = (!is_null($editedby) ? ", editedBy=$editedby" : ''); - $res = $this->dbc->query(" - UPDATE {$this->filesTable} + $res = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['filesTable']." SET state='$escapedState'$eb, mtime=now() WHERE gunid=x'{$this->gunid}'::bigint "); @@ -555,12 +564,13 @@ class StoredFile { */ public function setMime($mime) { + global $CC_CONFIG, $CC_DBC; if ( !is_string($mime)){ $mime = 'application/octet-stream'; } $escapedMime = pg_escape_string($mime); - $res = $this->dbc->query(" - UPDATE {$this->filesTable} SET mime='$escapedMime', mtime=now() + $res = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['filesTable']." SET mime='$escapedMime', mtime=now() WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($res)) { @@ -578,6 +588,7 @@ class StoredFile { */ public function delete() { + global $CC_CONFIG, $CC_DBC; $res = $this->rmd->delete(); if (PEAR::isError($res)) { return $res; @@ -586,8 +597,8 @@ class StoredFile { if (PEAR::isError($res)) { return $res; } - $tokens = $this->dbc->getAll(" - SELECT to_hex(token)as token, ext FROM {$this->accessTable} + $tokens = $CC_DBC->getAll(" + SELECT to_hex(token)as token, ext FROM ".$CC_CONFIG['accessTable']." WHERE gunid=x'{$this->gunid}'::bigint "); if (is_array($tokens)) { @@ -598,15 +609,15 @@ class StoredFile { } } } - $res = $this->dbc->query(" - DELETE FROM {$this->accessTable} + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['accessTable']." WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($res)) { return $res; } - $res = $this->dbc->query(" - DELETE FROM {$this->filesTable} + $res = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($res)) { @@ -625,11 +636,12 @@ class StoredFile { */ public function isAccessed($gunid=NULL) { + global $CC_CONFIG, $CC_DBC; if (is_null($gunid)) { $gunid = $this->gunid; } - $ca = $this->dbc->getOne(" - SELECT currentlyAccessing FROM {$this->filesTable} + $ca = $CC_DBC->getOne(" + SELECT currentlyAccessing FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'$gunid'::bigint "); if (is_null($ca)) { @@ -672,14 +684,15 @@ class StoredFile { */ public function isEditedBy($playlistId=NULL) { + global $CC_CONFIG, $CC_DBC; if (is_null($playlistId)) { $playlistId = $this->gunid; } - $ca = $this->dbc->getOne(" - SELECT editedBy FROM {$this->filesTable} + $ca = $CC_DBC->getOne(" + SELECT editedBy FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'$playlistId'::bigint "); - if ($this->dbc->isError($ca)) { + if (PEAR::isError($ca)) { return $ca; } if (is_null($ca)) { @@ -705,8 +718,9 @@ class StoredFile { */ public function exists() { - $indb = $this->dbc->getRow(" - SELECT to_hex(gunid) FROM {$this->filesTable} + global $CC_CONFIG, $CC_DBC; + $indb = $CC_DBC->getRow(" + SELECT to_hex(gunid) FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'{$this->gunid}'::bigint "); if (PEAR::isError($indb)) { @@ -715,7 +729,7 @@ class StoredFile { if (is_null($indb)) { return FALSE; } - if ($this->gb->_getType($this->gunid) == 'audioclip') { + if (BasicStor::GetType($this->gunid) == 'audioclip') { return $this->rmd->exists(); } return TRUE; @@ -727,7 +741,7 @@ class StoredFile { * Create new global unique id * */ - public static function _createGunid() + public static function CreateGunid() { $ip = (isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : ''); $initString = @@ -736,15 +750,16 @@ class StoredFile { // non-negative int8 $hsd = substr($hash, 0, 1); $res = dechex(hexdec($hsd)>>1).substr($hash, 1, 15); - return StoredFile::_normalizeGunid($res); + return StoredFile::NormalizeGunid($res); } /** - * Create new global unique id + * Pad the gunid with zeros if it isnt 16 digits. * + * @return string */ - public static function _normalizeGunid($gunid0) + public static function NormalizeGunid($gunid0) { return str_pad($gunid0, 16, "0", STR_PAD_LEFT); } @@ -763,7 +778,7 @@ class StoredFile { // if (is_null($gunid)) { // $gunid = $this->$gunid; // } -// $id = $this->dbc->getOne(" +// $id = $CC_DBC->getOne(" // SELECT id FROM {$this->filesTable} // WHERE gunid=x'$gunid'::bigint // "); @@ -827,7 +842,7 @@ class StoredFile { // if (is_null($gunid)) { // $gunid = $this->gunid; // } -// return $this->dbc->getOne(" +// return $CC_DBC->getOne(" // SELECT mime FROM {$this->filesTable} // WHERE gunid=x'$gunid'::bigint // "); @@ -844,11 +859,12 @@ class StoredFile { */ public function _getState($gunid=NULL) { + global $CC_CONFIG, $CC_DBC; if (is_null($gunid)) { $gunid = $this->gunid; } - return $this->dbc->getOne(" - SELECT state FROM {$this->filesTable} + return $CC_DBC->getOne(" + SELECT state FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'$gunid'::bigint "); } @@ -864,11 +880,12 @@ class StoredFile { */ public function _getFileName($gunid=NULL) { + global $CC_CONFIG, $CC_DBC; if (is_null($gunid)) { $gunid = $this->gunid; } - return $this->dbc->getOne(" - SELECT name FROM {$this->filesTable} + return $CC_DBC->getOne(" + SELECT name FROM ".$CC_CONFIG['filesTable']." WHERE gunid=x'$gunid'::bigint "); } @@ -881,8 +898,9 @@ class StoredFile { */ private function _getResDir() { - $resDir="{$this->gb->storageDir}/".substr($this->gunid, 0, 3); - #$this->gb->debugLog("$resDir"); + global $CC_CONFIG, $CC_DBC; + $resDir = $CC_CONFIG['storageDir']."/".substr($this->gunid, 0, 3); + //$this->gb->debugLog("$resDir"); // see Transport::_getResDir too for resDir name create code if (!is_dir($resDir)) { mkdir($resDir, 02775); @@ -921,8 +939,9 @@ class StoredFile { */ private function _getAccessFname($token, $ext='EXT') { - $token = StoredFile::_normalizeGunid($token); - return "{$this->accessDir}/$token.$ext"; + global $CC_CONFIG; + $token = StoredFile::NormalizeGunid($token); + return $CC_CONFIG['accessDir']."/$token.$ext"; } } // class StoredFile diff --git a/campcaster/src/modules/storageServer/var/Transport.php b/campcaster/src/modules/storageServer/var/Transport.php index 0d311ceef..0956e8244 100644 --- a/campcaster/src/modules/storageServer/var/Transport.php +++ b/campcaster/src/modules/storageServer/var/Transport.php @@ -50,32 +50,11 @@ include_once("TransportRecord.php"); */ class Transport { - /** - * Container for db connection instance - * @var DB - */ - public $dbc; - /** * @var GreenBox */ public $gb; - /** - * @var array - */ - public $config; - - /** - * @var string - */ - private $transTable; - - /** - * @var string - */ - public $transDir; - /** * File name * @var string @@ -145,10 +124,6 @@ class Transport public function __construct(&$gb) { $this->gb =& $gb; - $this->dbc =& $gb->dbc; - $this->config =& $gb->config; - $this->transTable = $gb->config['tblNamePrefix'].'trans'; - $this->transDir = $gb->config['transDir']; $this->cronJobScript = realpath( dirname(__FILE__). '/../../storageServer/var/cron/transportCronJob.php' @@ -307,8 +282,9 @@ class Transport */ function upload2Hub($gunid, $withContent=TRUE, $pars=array()) { + global $CC_CONFIG, $CC_DBC; $this->trLog("upload2Hub start: ".strftime("%H:%M:%S")); - switch ($ftype = $this->gb->_getType($gunid)) { + switch ($ftype = BasicStor::GetType($gunid)) { case "audioclip": case "webstream": $ac = StoredFile::recallByGunid($this->gb, $gunid); @@ -345,7 +321,7 @@ class Transport } $this->startCronJobProcess($mdtrec->trtok); break; - + case "playlist": $plid = $gunid; require_once("Playlist.php"); @@ -364,7 +340,7 @@ class Transport if (PEAR::isError($res)) { return $res; } - $tmpn = tempnam($this->transDir, 'plExport_'); + $tmpn = tempnam($CC_CONFIG['transDir'], 'plExport_'); $plfpath = "$tmpn.lspl"; $this->trLog("upload2Hub begin copy: ".strftime("%H:%M:%S")); copy($res['fname'], $plfpath); @@ -441,6 +417,7 @@ class Transport */ function globalSearch($criteria, $resultMode='php', $pars=array()) { + global $CC_CONFIG, $CC_DBC; // testing of hub availability and hub account configuration. // it makes searchjob not async - should be removed for real async $r = $this->loginToArchive(); @@ -455,7 +432,7 @@ class Transport } $this->logoutFromArchive($r); $criteria['resultMode'] = $resultMode; - $localfile = tempnam($this->transDir, 'searchjob_'); + $localfile = tempnam($CC_CONFIG['transDir'], 'searchjob_'); @chmod($localfile, 0660); $len = file_put_contents($localfile, serialize($criteria)); $trec = $this->_uploadGeneralFileToHub($localfile, 'searchjob', $pars); @@ -579,7 +556,8 @@ class Transport */ function downloadFileFromHub($url, $chsum=NULL, $size=NULL, $pars=array()) { - $tmpn = tempnam($this->transDir, 'HITrans_'); + global $CC_CONFIG, $CC_DBC; + $tmpn = tempnam($CC_CONFIG['transDir'], 'HITrans_'); $trec = TransportRecord::create($this, 'file', 'down', array_merge(array( 'url' => $url, @@ -730,10 +708,11 @@ class Transport */ function loginToArchive() { + global $CC_CONFIG; $res = $this->xmlrpcCall('archive.login', array( - 'login'=>$this->config['archiveAccountLogin'], - 'pass'=>$this->config['archiveAccountPass'] + 'login' => $CC_CONFIG['archiveAccountLogin'], + 'pass' => $CC_CONFIG['archiveAccountPass'] )); if (PEAR::isError($res)) { return $res; @@ -770,6 +749,7 @@ class Transport */ function cronMain($direction=NULL) { + global $CC_CONFIG; if (is_null($direction)) { $r = $this->cronMain('up'); if (PEAR::isError($r)) { @@ -795,7 +775,7 @@ class Transport } // ping to archive server: $r = $this->pingToArchive(); - chdir($this->config['transDir']); + chdir($CC_CONFIG['transDir']); // for all opened transports: foreach ($transports as $i => $row) { $r = $this->startCronJobProcess($row['trtok']); @@ -814,8 +794,9 @@ class Transport */ function startCronJobProcess($trtok) { + global $CC_CONFIG, $CC_DBC; if (TR_LOG_LEVEL > 2) { - $redirect = "{$this->transDir}/debug.log"; + $redirect = $CC_CONFIG['transDir']."/debug.log"; } else { $redirect = "/dev/null"; } @@ -1029,7 +1010,7 @@ class Transport 'url'=>$ret['url'], 'pdtoken'=>$ret['token'], 'expectedsum'=>$ret['chsum'], 'expectedsize'=>$ret['size'], 'fname'=>$ret['filename'], - 'localfile'=>"{$this->transDir}/$trtok", + 'localfile'=>$CC_CONFIG['transDir']."/$trtok", ))); break; case "audioclip": @@ -1048,7 +1029,7 @@ class Transport 'url'=>$ret['url'], 'pdtoken'=>$ret['token'], 'expectedsum'=>$ret['chsum'], 'expectedsize'=>$ret['size'], 'fname'=>$ret['filename'], 'title'=>$title, - 'localfile'=>"{$this->transDir}/$trtok", + 'localfile'=>$CC_CONFIG['transDir']."/$trtok", ))); } if (PEAR::isError($r)) { @@ -1311,7 +1292,7 @@ class Transport $ep = $row['localfile']; @unlink($ep); if (preg_match("|/(plExport_[^\.]+)\.lspl$|", $ep, $va)) { - list(,$tmpn) = $va; $tmpn = "{$this->transDir}/$tmpn"; + list(,$tmpn) = $va; $tmpn = $CC_CONFIG['transDir']."/$tmpn"; if (file_exists($tmpn)) { @unlink($tmpn); } @@ -1366,14 +1347,14 @@ class Transport return TRUE; case 'finished': // metadata finished, close main transport $parid = $this->gb->_getHomeDirId($trec->row['uid']); - if ($this->dbc->isError($parid)) { + if (PEAR::isError($parid)) { $mdtrec->setLock(FALSE); return $parid; } $res = $this->gb->bsPutFile($parid, $row['fname'], $trec->row['localfile'], $mdtrec->row['localfile'], $row['gunid'], 'audioclip', 'file'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { $mdtrec->setLock(FALSE); return $res; } @@ -1422,13 +1403,13 @@ class Transport switch ($row['trtype']) { case "playlist": $parid = $this->gb->_getHomeDirId($trec->row['uid']); - if ($this->dbc->isError($parid)) { + if (PEAR::isError($parid)) { return $parid; } $res = $this->gb->bsPutFile($parid, $row['fname'], '', $trec->row['localfile'], $row['gunid'], 'playlist', 'file'); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } @unlink($row['localfile']); @@ -1437,11 +1418,11 @@ class Transport $subjid = $trec->row['uid']; $fname = $trec->row['localfile']; $parid = $this->gb->_getHomeDirId($subjid); - if ($this->dbc->isError($parid)) { + if (PEAR::isError($parid)) { return $parid; } $res = $this->gb->bsImportPlaylist($parid, $fname, $subjid); - if ($this->dbc->isError($res)) { + if (PEAR::isError($res)) { return $res; } @unlink($fname); @@ -1532,6 +1513,7 @@ class Transport */ function getTransports($direction=NULL, $target=NULL, $trtok=NULL) { + global $CC_CONFIG, $CC_DBC; switch ($direction) { case 'up': $dirCond = "direction='up' AND"; @@ -1553,13 +1535,13 @@ class Transport } else { $trtokCond = "trtok='$trtok' AND"; } - $rows = $this->dbc->getAll(" + $rows = $CC_DBC->getAll(" SELECT id, trtok, state, trtype, direction, to_hex(gunid)as gunid, to_hex(pdtoken)as pdtoken, fname, localfile, expectedsum, expectedsize, url, uid, target - FROM {$this->transTable} + FROM ".$CC_CONFIG['transTable']." WHERE $dirCond $targetCond $trtokCond state not in ('closed', 'failed', 'paused') ORDER BY start DESC @@ -1568,8 +1550,8 @@ class Transport return $rows; } foreach ($rows as $i => $row) { - $rows[$i]['pdtoken'] = StoredFile::_normalizeGunid($row['pdtoken']); - $rows[$i]['gunid'] = StoredFile::_normalizeGunid($row['gunid']); + $rows[$i]['pdtoken'] = StoredFile::NormalizeGunid($row['pdtoken']); + $rows[$i]['gunid'] = StoredFile::NormalizeGunid($row['gunid']); } return $rows; } @@ -1617,11 +1599,11 @@ class Transport */ function xmlrpcCall($method, $pars=array()) { + global $CC_CONFIG; $xrp = XML_RPC_encode($pars); $c = new XML_RPC_Client( - "{$this->config['archiveUrlPath']}/". - "{$this->config['archiveXMLRPC']}", - $this->config['archiveUrlHost'], $this->config['archiveUrlPort'] + $CC_CONFIG['archiveUrlPath']."/".$CC_CONFIG['archiveXMLRPC'], + $CC_CONFIG['archiveUrlHost'], $CC_CONFIG['archiveUrlPort'] ); $f = new XML_RPC_Message($method, array($xrp)); $r = $c->send($f); @@ -1688,9 +1670,10 @@ class Transport */ function _cleanUp($interval='1 minute'/*'1 hour'*/, $forced=FALSE) { + global $CC_CONFIG, $CC_DBC; $cond = ($forced ? '' : " AND state='closed' AND lock = 'N'"); - $r = $this->dbc->query(" - DELETE FROM {$this->transTable} + $r = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['transTable']." WHERE ts < now() - interval '$interval'".$cond ); if (PEAR::isError($r)) { @@ -1736,7 +1719,7 @@ class Transport */ function trLog($msg) { - $logfile = "{$this->transDir}/activity.log"; + $logfile = $CC_CONFIG['transDir']."/activity.log"; if (FALSE === ($fp = fopen($logfile, "a"))) { return PEAR::raiseError( "Transport::trLog: Can't write to log ($logfile)" @@ -1758,7 +1741,8 @@ class Transport */ function resetData() { - return $this->dbc->query("DELETE FROM {$this->transTable}"); + global $CC_CONFIG, $CC_DBC; + return $CC_DBC->query("DELETE FROM ".$CC_CONFIG['transTable']); } @@ -1770,76 +1754,78 @@ class Transport * trtype: audioclip | playlist | playlistPkg | searchjob | metadata | file * */ - function install() - { - $r = $this->dbc->query("CREATE TABLE {$this->transTable} ( - id int not null, -- primary key - trtok char(16) not null, -- transport token - direction varchar(128) not null, -- direction: up|down - state varchar(128) not null, -- state - trtype varchar(128) not null, -- transport type - lock char(1) not null default 'N',-- running lock - target varchar(255) default NULL, -- target system, - -- if NULL => predefined set - rtrtok char(16) default NULL, -- remote hub's transport token - mdtrtok char(16), -- metadata transport token - gunid bigint, -- global unique id - pdtoken bigint, -- put/download token from archive - url varchar(255), -- url on remote side - localfile varchar(255), -- pathname of local part - fname varchar(255), -- mnemonic filename - title varchar(255), -- dc:title mdata value (or filename ...) - expectedsum char(32), -- expected file checksum - realsum char(32), -- checksum of transported part - expectedsize int, -- expected filesize in bytes - realsize int, -- filesize of transported part - uid int, -- local user id of transport owner - errmsg varchar(255), -- error message string for failed tr. - start timestamp, -- starttime - ts timestamp -- mtime - )"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->createSequence("{$this->transTable}_id_seq"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->query("CREATE UNIQUE INDEX {$this->transTable}_id_idx - ON {$this->transTable} (id)"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->query("CREATE UNIQUE INDEX {$this->transTable}_trtok_idx - ON {$this->transTable} (trtok)"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->query("CREATE UNIQUE INDEX {$this->transTable}_token_idx - ON {$this->transTable} (pdtoken)"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->query("CREATE INDEX {$this->transTable}_gunid_idx - ON {$this->transTable} (gunid)"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - $r = $this->dbc->query("CREATE INDEX {$this->transTable}_state_idx - ON {$this->transTable} (state)"); - if (PEAR::isError($r)) { - echo $r->getMessage()." ".$r->getUserInfo(); - } - } +// function install() +// { +// global $CC_CONFIG, $CC_DBC; +// $r = $CC_DBC->query("CREATE TABLE {$this->transTable} ( +// id int not null, -- primary key +// trtok char(16) not null, -- transport token +// direction varchar(128) not null, -- direction: up|down +// state varchar(128) not null, -- state +// trtype varchar(128) not null, -- transport type +// lock char(1) not null default 'N',-- running lock +// target varchar(255) default NULL, -- target system, +// -- if NULL => predefined set +// rtrtok char(16) default NULL, -- remote hub's transport token +// mdtrtok char(16), -- metadata transport token +// gunid bigint, -- global unique id +// pdtoken bigint, -- put/download token from archive +// url varchar(255), -- url on remote side +// localfile varchar(255), -- pathname of local part +// fname varchar(255), -- mnemonic filename +// title varchar(255), -- dc:title mdata value (or filename ...) +// expectedsum char(32), -- expected file checksum +// realsum char(32), -- checksum of transported part +// expectedsize int, -- expected filesize in bytes +// realsize int, -- filesize of transported part +// uid int, -- local user id of transport owner +// errmsg varchar(255), -- error message string for failed tr. +// start timestamp, -- starttime +// ts timestamp -- mtime +// )"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->createSequence("{$this->transTable}_id_seq"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->query("CREATE UNIQUE INDEX {$this->transTable}_id_idx +// ON {$this->transTable} (id)"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->query("CREATE UNIQUE INDEX {$this->transTable}_trtok_idx +// ON {$this->transTable} (trtok)"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->query("CREATE UNIQUE INDEX {$this->transTable}_token_idx +// ON {$this->transTable} (pdtoken)"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->query("CREATE INDEX {$this->transTable}_gunid_idx +// ON {$this->transTable} (gunid)"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// $r = $CC_DBC->query("CREATE INDEX {$this->transTable}_state_idx +// ON {$this->transTable} (state)"); +// if (PEAR::isError($r)) { +// echo $r->getMessage()." ".$r->getUserInfo(); +// } +// } /** * Uninstall method */ - function uninstall() - { - $this->dbc->query("DROP TABLE {$this->transTable}"); - $this->dbc->dropSequence("{$this->transTable}_id_seq"); - } +// function uninstall() +// { +// global $CC_CONFIG, $CC_DBC; +// $CC_DBC->query("DROP TABLE {$this->transTable}"); +// $CC_DBC->dropSequence("{$this->transTable}_id_seq"); +// } } ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/TransportRecord.php b/campcaster/src/modules/storageServer/var/TransportRecord.php index b845b3996..c8399bcae 100644 --- a/campcaster/src/modules/storageServer/var/TransportRecord.php +++ b/campcaster/src/modules/storageServer/var/TransportRecord.php @@ -19,7 +19,7 @@ class TransportRecord /** * @var DB */ - public $dbc; + //public $dbc; /** * @var GreenBox @@ -29,12 +29,7 @@ class TransportRecord /** * @var array */ - private $config; - - /** - * @var string - */ - private $transTable; + //private $config; /** * @var Transport @@ -60,9 +55,6 @@ class TransportRecord { $this->tr =& $tr; $this->gb =& $tr->gb; - $this->dbc =& $tr->gb->dbc; - $this->config = $tr->gb->config; - $this->transTable = $tr->gb->config['tblNamePrefix'].'trans'; } @@ -80,6 +72,7 @@ class TransportRecord */ function create(&$tr, $trtype, $direction='up', $defaults=array()) { + global $CC_DBC, $CC_CONFIG; $trec = new TransportRecord($tr); $trec->trtok = $trtok = $tr->_createTransportToken(); $trec->row = array_merge($defaults, @@ -91,7 +84,7 @@ class TransportRecord return $defaults['title']; } } - $id = $trec->dbc->nextId("{$trec->transTable}_id_seq"); + $id = $CC_DBC->nextId($CC_CONFIG['transTable']."_id_seq"); $names = "id, trtok, direction, state, trtype, start, ts"; $values = "$id, '$trtok', '$direction', 'init', '$trtype', now(), now()"; foreach ($defaults as $k => $v) { @@ -100,12 +93,12 @@ class TransportRecord $values .= ", $sqlVal"; } $query = " - INSERT INTO {$trec->transTable} + INSERT INTO ".$CC_CONFIG['transTable']." ($names) VALUES ($values) "; - $res = $trec->dbc->query($query); + $res = $CC_DBC->query($query); if (PEAR::isError($res)) { return $res; } @@ -123,16 +116,17 @@ class TransportRecord */ function recall(&$tr, $trtok) { + global $CC_DBC; $trec = new TransportRecord($tr); $trec->trtok = $trtok; - $row = $trec->dbc->getRow(" + $row = $CC_DBC->getRow(" SELECT id, trtok, state, trtype, direction, to_hex(gunid)as gunid, to_hex(pdtoken)as pdtoken, fname, localfile, url, rtrtok, mdtrtok, uid, expectedsize, realsize, expectedsum, realsum, errmsg, title - FROM {$trec->transTable} + FROM ".$CC_CONFIG['transTable']." WHERE trtok='$trtok' "); if (PEAR::isError($row)) { @@ -143,8 +137,8 @@ class TransportRecord " invalid transport token ($trtok)", TRERR_TOK ); } - $row['pdtoken'] = StoredFile::_normalizeGunid($row['pdtoken']); - $row['gunid'] = StoredFile::_normalizeGunid($row['gunid']); + $row['pdtoken'] = StoredFile::NormalizeGunid($row['pdtoken']); + $row['gunid'] = StoredFile::NormalizeGunid($row['gunid']); $trec->row = $row; $trec->recalled = TRUE; return $trec; @@ -165,6 +159,7 @@ class TransportRecord */ function setState($newState, $data=array(), $oldState=NULL, $lock=NULL) { + global $CC_CONFIG, $CC_DBC; $set = " state='$newState', ts=now()"; if (!is_null($lock)) { $slock = ($lock ? 'Y' : 'N'); @@ -175,8 +170,8 @@ class TransportRecord foreach ($data as $k => $v) { $set .= ", $k=".$this->_getSqlVal($k, $v); } - $r = $this->dbc->query(" - UPDATE {$this->transTable} + $r = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['transTable']." SET $set WHERE trtok='{$this->trtok}'". (is_null($oldState) ? '' : " AND state='$oldState'"). @@ -186,7 +181,7 @@ class TransportRecord return $r; } // return TRUE; - $affRows = $this->dbc->affectedRows(); + $affRows = $CC_DBC->affectedRows(); if (PEAR::isError($affRows)) { return $affRows; } @@ -221,21 +216,22 @@ class TransportRecord */ function setLock($lock) { + global $CC_CONFIG, $CC_DBC; if ($this->dropped) { return TRUE; } $slock = ($lock ? 'Y' : 'N'); $nlock = (!$lock); $snlock = ($nlock ? 'Y' : 'N'); - $r = $this->dbc->query(" - UPDATE {$this->transTable} + $r = $CC_DBC->query(" + UPDATE ".$CC_CONFIG['transTable']." SET lock='$slock', ts=now() WHERE trtok='{$this->trtok}' AND lock = '$snlock'" ); if (PEAR::isError($r)) { return $r; } - $affRows = $this->dbc->affectedRows(); + $affRows = $CC_DBC->affectedRows(); if (PEAR::isError($affRows)) { return $affRows; } @@ -304,6 +300,7 @@ class TransportRecord */ function close() { + global $CC_CONFIG, $CC_DBC; if (!$this->recalled) { return PEAR::raiseError("TransportRecord::close:". " not recalled ({$this->trtok})", TRERR_TOK @@ -315,8 +312,8 @@ class TransportRecord return $r; } } else { - $r = $this->dbc->query(" - DELETE FROM {$this->transTable} + $r = $CC_DBC->query(" + DELETE FROM ".$CC_CONFIG['transTable']." WHERE trtok='{$this->trtok}' "); if (PEAR::isError($r)) { diff --git a/campcaster/src/modules/storageServer/var/audioClipFormat.php b/campcaster/src/modules/storageServer/var/audioClipFormat.php index 598dafab7..d38c9410d 100644 --- a/campcaster/src/modules/storageServer/var/audioClipFormat.php +++ b/campcaster/src/modules/storageServer/var/audioClipFormat.php @@ -329,17 +329,6 @@ $audioClipFormat = array( 'type'=>'Int', // 'regexp'=>'^\d{4}(-\d{2}(-\d{2}(T\d{2}:\d{2}(:\d{2}\.\d+)?(Z)|([\+\-]?\d{2}:\d{2}))?)?)?$', ), -/* - ''=>array( - 'type'=>'', - 'area'=>'', - 'attrs'=>array(), - ), -*/ ); -/* -? -ls:filename Text auto -*/ ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/changeSchedulerPassword.php b/campcaster/src/modules/storageServer/var/changeSchedulerPassword.php index 9bde3d573..70a0751dc 100755 --- a/campcaster/src/modules/storageServer/var/changeSchedulerPassword.php +++ b/campcaster/src/modules/storageServer/var/changeSchedulerPassword.php @@ -18,13 +18,13 @@ } PEAR::setErrorHandling(PEAR_ERROR_RETURN); - $dbc = DB::connect($config['dsn'], TRUE); - if (DB::isError($dbc)) { - die($dbc->getMessage()); + $CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); + if (PEAR::isError($CC_DBC)) { + die($CC_DBC->getMessage()); } - $dbc->setFetchMode(DB_FETCHMODE_ASSOC); + $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); - $bs = new BasicStor($dbc, $config); + $bs = new BasicStor(); $pass = $argv[1]; $r = $bs->passwd('scheduler', NULL, $pass); diff --git a/campcaster/src/modules/storageServer/var/conf.php b/campcaster/src/modules/storageServer/var/conf.php index 43e8f2b86..6896c3d7a 100644 --- a/campcaster/src/modules/storageServer/var/conf.php +++ b/campcaster/src/modules/storageServer/var/conf.php @@ -2,14 +2,6 @@ /** * StorageServer configuration file * - * @author $Author$ - * @version $Revision$ - */ - - -define('CAMPCASTER_VERSION', '1.1.1'); - -/** * configuration structure: * *
    @@ -39,9 +31,12 @@ define('CAMPCASTER_VERSION', '1.1.1'); *
    */ -// these are the default values for the config +define('CAMPCASTER_VERSION', '1.1.1'); -$config = array( +// these are the default values for the config +global $CC_CONFIG; + +$CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'test', @@ -51,7 +46,6 @@ $config = array( 'database' => 'Campcaster-test', ), 'tblNamePrefix' => 'ls_', - /* ================================================ storage configuration */ 'authCookieName'=> 'campcaster_session_id', 'AdminsGr' => 'Admins', @@ -123,11 +117,27 @@ $config = array( 'cronfile' => dirname(__FILE__).'/cron/croncall.php', 'paramdir' => dirname(__FILE__).'/cron/params', ); -$config['sysSubjs'] = array( - 'root', $config['AdminsGr'], $config['AllGr'], $config['StationPrefsGr'] + +// Add database table names +$CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files'; +$CC_CONFIG['mdataTable'] = $CC_CONFIG['tblNamePrefix'].'mdata'; +$CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access'; +$CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms'; +$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess'; +$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs'; +$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb'; +$CC_CONFIG['classTable'] = $CC_CONFIG['tblNamePrefix'].'classes'; +$CC_CONFIG['cmembTable'] = $CC_CONFIG['tblNamePrefix'].'cmemb'; +$CC_CONFIG['treeTable'] = $CC_CONFIG['tblNamePrefix'].'tree'; +$CC_CONFIG['structTable'] = $CC_CONFIG['tblNamePrefix'].'struct'; +$CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans'; +$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref'; + +$CC_CONFIG['sysSubjs'] = array( + 'root', $CC_CONFIG['AdminsGr'], $CC_CONFIG['AllGr'], $CC_CONFIG['StationPrefsGr'] ); $old_ip = get_include_path(); -set_include_path('.'.PATH_SEPARATOR.$config['pearPath'].PATH_SEPARATOR.$old_ip); +set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_ip); // see if a ~/.campcaster/storageServer.conf.php exists, and // overwrite the settings from there if any @@ -145,23 +155,23 @@ if (!is_null($this_file)) { $fileowner_name = $fileowner_array['name']; $home_conf = $fileowner_homedir . '/.campcaster/storageServer.conf.php'; if (file_exists($home_conf)) { - $default_config = $config; + $default_config = $CC_CONFIG; $developer_name = $fileowner_name; include($home_conf); - $user_config = $config; - $config = $user_config + $default_config; + $user_config = $CC_CONFIG; + $CC_CONFIG = $user_config + $default_config; } } // make dirpaths better (without ../) foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) { - $rp = realpath($config[$d]); + $rp = realpath($CC_CONFIG[$d]); // workaround for missing dirs if ( $rp === FALSE ) { - mkdir( $config[$d] ); - $rp = realpath($config[$d]); + mkdir( $CC_CONFIG[$d] ); + $rp = realpath($CC_CONFIG[$d]); } - $config[$d] = $rp; + $CC_CONFIG[$d] = $rp; } -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/conf.php.template b/campcaster/src/modules/storageServer/var/conf.php.template index 6df12b94a..2992fad6f 100644 --- a/campcaster/src/modules/storageServer/var/conf.php.template +++ b/campcaster/src/modules/storageServer/var/conf.php.template @@ -1,13 +1,7 @@ @@ -38,9 +32,11 @@ define('CAMPCASTER_VERSION', '1.1.1'); * */ +define('CAMPCASTER_VERSION', '1.1.1'); + // these are the default values for the config -$config = array( +$CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'ls_dbuser', @@ -121,21 +117,37 @@ $config = array( 'cronfile' => dirname(__FILE__).'/cron/croncall.php', 'paramdir' => dirname(__FILE__).'/cron/params', ); -$config['sysSubjs'] = array( - 'root', $config['AdminsGr'], $config['AllGr'], $config['StationPrefsGr'] + +// Add database table names +$CC_CONFIG['filesTable'] = $CC_CONFIG['tblNamePrefix'].'files'; +$CC_CONFIG['mdataTable'] = $CC_CONFIG['tblNamePrefix'].'mdata'; +$CC_CONFIG['accessTable'] = $CC_CONFIG['tblNamePrefix'].'access'; +$CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms'; +$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess'; +$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs'; +$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb'; +$CC_CONFIG['classTable'] = $CC_CONFIG['tblNamePrefix'].'classes'; +$CC_CONFIG['cmembTable'] = $CC_CONFIG['tblNamePrefix'].'cmemb'; +$CC_CONFIG['treeTable'] = $CC_CONFIG['tblNamePrefix'].'tree'; +$CC_CONFIG['structTable'] = $CC_CONFIG['tblNamePrefix'].'struct'; +$CC_CONFIG['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans'; +$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref'; + +$CC_CONFIG['sysSubjs'] = array( + 'root', $CC_CONFIG['AdminsGr'], $CC_CONFIG['AllGr'], $CC_CONFIG['StationPrefsGr'] ); $old_ip = get_include_path(); -set_include_path('.'.PATH_SEPARATOR.$config['pearPath'].PATH_SEPARATOR.$old_ip); +set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'].PATH_SEPARATOR.$old_ip); // make dirpaths better (without ../) foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) { - $rp = realpath($config[$d]); + $rp = realpath($CC_CONFIG[$d]); // workaround for missing dirs if ( $rp === FALSE ) { - mkdir( $config[$d] ); - $rp = realpath($config[$d]); + mkdir( $CC_CONFIG[$d] ); + $rp = realpath($CC_CONFIG[$d]); } - $config[$d] = $rp; + $CC_CONFIG[$d] = $rp; } ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/conf_only.php.template b/campcaster/src/modules/storageServer/var/conf_only.php.template index 07c7ff43a..edd49f490 100644 --- a/campcaster/src/modules/storageServer/var/conf_only.php.template +++ b/campcaster/src/modules/storageServer/var/conf_only.php.template @@ -1,11 +1,7 @@ @@ -30,7 +26,7 @@ * for login to archive * */ -$config = array( +$CC_CONFIG = array( /* ================================================== basic configuration */ 'dsn' => array( 'username' => 'ls_dbuser', @@ -66,4 +62,4 @@ $config = array( 'cronUserName' => $developer_name, ); -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/cron/Cron.php b/campcaster/src/modules/storageServer/var/cron/Cron.php index 4be3ba3c0..cef4f0592 100755 --- a/campcaster/src/modules/storageServer/var/cron/Cron.php +++ b/campcaster/src/modules/storageServer/var/cron/Cron.php @@ -9,7 +9,7 @@ require_once (dirname(__FILE__).'/../conf.php'); * $access = $cron->openCrontab('write'); * if ($access != 'write') { * do { - * $access = $this->forceWriteable(); + * $access = $cron->forceWriteable(); * } while ($access != 'write'); * } * $cron->addCronJob('*','*','*','*','*', @@ -46,11 +46,11 @@ class Cron { * Constructor */ function Cron() { - global $config; - $this->lockfile = $config['lockfile']; - $this->cronfile = $config['cronfile']; - $this->paramdir = $config['paramdir']; - $this->cronUserName = $config['cronUserName']; + global $CC_CONFIG; + $this->lockfile = $CC_CONFIG['lockfile']; + $this->cronfile = $CC_CONFIG['cronfile']; + $this->paramdir = $CC_CONFIG['paramdir']; + $this->cronUserName = $CC_CONFIG['cronUserName']; } diff --git a/campcaster/src/modules/storageServer/var/cron/transportCron.php b/campcaster/src/modules/storageServer/var/cron/transportCron.php index 97255b0cb..67bccd675 100755 --- a/campcaster/src/modules/storageServer/var/cron/transportCron.php +++ b/campcaster/src/modules/storageServer/var/cron/transportCron.php @@ -1,19 +1,21 @@ #!/usr/bin/php setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new LocStor($dbc, $config); +$gb = new LocStor(); $tr = new Transport($gb); $r = $tr->cronMain(); -if(!$r) exit(1); +if (!$r) { + exit(1); +} exit(0); ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/cron/transportCronJob.php b/campcaster/src/modules/storageServer/var/cron/transportCronJob.php index f76c2461f..e43311e3e 100755 --- a/campcaster/src/modules/storageServer/var/cron/transportCronJob.php +++ b/campcaster/src/modules/storageServer/var/cron/transportCronJob.php @@ -1,15 +1,15 @@ #!/usr/bin/php setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new LocStor($dbc, $config); +$gb = new LocStor(); $tr = new Transport($gb); list(, $trtok) = $_SERVER['argv']; diff --git a/campcaster/src/modules/storageServer/var/install/getGname.php b/campcaster/src/modules/storageServer/var/install/getGname.php index 86970e8e8..7a02033d5 100644 --- a/campcaster/src/modules/storageServer/var/install/getGname.php +++ b/campcaster/src/modules/storageServer/var/install/getGname.php @@ -3,8 +3,10 @@ * This (web-callable) script returns group running httpd *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - $egid = posix_getegid(); - $info = posix_getgrgid($egid); - if($_SERVER["REMOTE_ADDR"] == "127.0.0.1") echo $info['name']; +header("Content-type: text/plain"); +$egid = posix_getegid(); +$info = posix_getgrgid($egid); +if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") { + echo $info['name']; +} ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/getPwd.php b/campcaster/src/modules/storageServer/var/install/getPwd.php index 659ed2d06..67123dd31 100644 --- a/campcaster/src/modules/storageServer/var/install/getPwd.php +++ b/campcaster/src/modules/storageServer/var/install/getPwd.php @@ -3,6 +3,8 @@ * This script returns real dir of php scipts for debugging purposes *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - if($_SERVER["REMOTE_ADDR"] == "127.0.0.1") echo `pwd`; +header("Content-type: text/plain"); +if ($_SERVER["REMOTE_ADDR"] == "127.0.0.1") { + echo `pwd`; +} ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/getWwwRoot.php b/campcaster/src/modules/storageServer/var/install/getWwwRoot.php index 1a37bf3dd..46c5ca82a 100644 --- a/campcaster/src/modules/storageServer/var/install/getWwwRoot.php +++ b/campcaster/src/modules/storageServer/var/install/getWwwRoot.php @@ -3,8 +3,8 @@ * This script returns storage root URL *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - require "../conf.php"; - echo "http://{$config['storageUrlHost']}:{$config['storageUrlPort']}". - "{$config['storageUrlPath']}"; +header("Content-type: text/plain"); +require("../conf.php"); +echo "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/getXrUrl.php b/campcaster/src/modules/storageServer/var/install/getXrUrl.php index 1011576cb..02bc1fe6b 100644 --- a/campcaster/src/modules/storageServer/var/install/getXrUrl.php +++ b/campcaster/src/modules/storageServer/var/install/getXrUrl.php @@ -3,8 +3,8 @@ * This script returns storage XMLRPC root URL *----------------------------------------------------------------------------*/ - header("Content-type: text/plain"); - require "../conf.php"; - echo "http://{$config['storageUrlHost']}:{$config['storageUrlPort']}". - "{$config['storageUrlPath']}/{$config['storageXMLRPC']}"; +header("Content-type: text/plain"); +require("../conf.php"); +echo "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}"; ?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/install.php b/campcaster/src/modules/storageServer/var/install/install.php index 03f0cee2f..dda954084 100644 --- a/campcaster/src/modules/storageServer/var/install/install.php +++ b/campcaster/src/modules/storageServer/var/install/install.php @@ -1,120 +1,39 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org + * + * Note: This file was broken into two parts: install.php and + * installMain.php so that the archive server could use the same + * installation script, but with just a different config file. */ -// no remote execution +// Do not allow remote execution $arr = array_diff_assoc($_SERVER, $_ENV); -if (isset($arr["DOCUMENT_ROOT"]) && $arr["DOCUMENT_ROOT"] != "") { +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { header("HTTP/1.1 400"); header("Content-type: text/plain; charset=UTF-8"); echo "400 Not executable\r\n"; exit(1); } -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../GreenBox.php'; -require_once "../Transport.php"; -require_once "../Prefs.php"; +echo "*************************\n"; +echo "* StorageServer Install *\n"; +echo "*************************\n"; -function errCallback($err) -{ - if (assert_options(ASSERT_ACTIVE) == 1) { - return; - } - echo "ERROR:\n"; - echo "request: "; print_r($_REQUEST); - echo "gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo(). - "\nui:\n".$err->getUserInfo()."\n"; - exit(1); -} +require_once('../conf.php'); +require_once('../GreenBox.php'); +require_once('installMain.php'); +require_once('installStorage.php'); -if (!function_exists('pg_connect')) { - trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR); - exit(2); -} +echo "**********************************\n"; +echo "* StorageServer Install Complete *\n"; +echo "**********************************\n"; -PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($dbc)) { - echo $dbc->getMessage()."\n"; - echo $dbc->getUserInfo()."\n"; - echo "Database connection problem.\n"; - echo "Check if database '{$config['dsn']['database']}' exists". - " with corresponding permissions.\n"; - echo "Database access is defined by 'dsn' values in var/conf.php ". - "(in storageServer directory).\n"; - exit(1); -} - -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new GreenBox($dbc, $config, TRUE); -$tr = new Transport($gb); -$pr = new Prefs($gb); - -//------------------------------------------------------------------------------ -// install -//------------------------------------------------------------------------------ - -echo "#StorageServer install:\n"; -echo "# Install ...\n"; -#PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
    \n"); -PEAR::setErrorHandling(PEAR_ERROR_DIE, "%s\n"); -#$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$r = $gb->install(); -if(PEAR::isError($r)){ echo $r->getMessage()."\n"; echo $r->getUserInfo()."\n"; exit(1); } -#if(PEAR::isError($r)){ echo $r->getUserInfo()."\n"; exit(1); } - -//------------------------------------------------------------------------------ -// Storage directory writability test -//------------------------------------------------------------------------------ - -if(!($fp = @fopen($config['storageDir']."/_writeTest", 'w'))){ - echo "\nmake {$config['storageDir']} dir webdaemon-writeable". - "\nand run install again\n\n"; - exit(1); -}else{ - fclose($fp); unlink($config['storageDir']."/_writeTest"); - echo "#storageServer main: OK\n"; -} - -//------------------------------------------------------------------------------ -// Submodules -//------------------------------------------------------------------------------ - -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -echo "# Install Transport submodule ..."; -$r = $tr->install(); -if(PEAR::isError($r)){ echo $r->getMessage()."\n"; echo $r->getUserInfo()."\n"; exit(1); } -echo "\n"; - -echo "# Install Prefs submodule ..."; -$r = $pr->install(); -if(PEAR::isError($r)){ echo $r->getUserInfo()."\n"; exit(1); } -echo "\n"; - -echo "# submodules: OK\n"; - -//------------------------------------------------------------------------------ -// Cron configuration -//------------------------------------------------------------------------------ - -echo "# Cron configuration ..."; -require_once dirname(__FILE__).'/../cron/Cron.php'; -$cron = new Cron(); -$access = $r = $cron->openCrontab('write'); -if ($access != 'write') { - do { - $r = $this->forceWriteable(); - } while ($r); -} -$cron->ct->addCron('*/2', '*', '*', '*', '*', realpath("{$config['cronDir']}/transportCron.php")); -$r = $cron->closeCrontab(); -echo "# cron config: OK\n"; - -echo "#storageServer: OK\n\n"; - -$dbc->disconnect(); -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/installMain.php b/campcaster/src/modules/storageServer/var/install/installMain.php new file mode 100644 index 000000000..96eb50f2d --- /dev/null +++ b/campcaster/src/modules/storageServer/var/install/installMain.php @@ -0,0 +1,371 @@ + + * @author Paul Baranowski + * @version $Revision: 2475 $ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org + */ + +// Do not allow remote execution +$arr = array_diff_assoc($_SERVER, $_ENV); +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { + header("HTTP/1.1 400"); + header("Content-type: text/plain; charset=UTF-8"); + echo "400 Not executable\r\n"; + exit(1); +} + +if (!function_exists('pg_connect')) { + trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR); + exit(2); +} + +require_once('DB.php'); + +function camp_db_table_exists($p_name) +{ + global $CC_DBC; + $sql = "SELECT * FROM ".$p_name; + $result = $CC_DBC->GetOne($sql); + if (PEAR::isError($result)) { + return false; + } + return true; +} + + +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + echo $CC_DBC->getMessage()."\n"; + echo $CC_DBC->getUserInfo()."\n"; + echo "Database connection problem.\n"; + echo "Check if database '{$CC_CONFIG['dsn']['database']}' exists". + " with corresponding permissions.\n"; + echo "Database access is defined by 'dsn' values in var/conf.php ". + "(in storageServer directory).\n"; + exit(1); +} else { + echo " * Connected to database\n"; +} + +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); + +//------------------------------------------------------------------------------ +// Install database tables +//------------------------------------------------------------------------------ + +if (!camp_db_table_exists($CC_CONFIG['treeTable'])) { + echo " * Creating database table ".$CC_CONFIG['treeTable']."..."; + $r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['treeTable']." ( + id int not null PRIMARY KEY, + name varchar(255) not null default'', + -- parid int, + type varchar(255) not null default'', + param varchar(255))"); + if (PEAR::isError($r)) { + echo $r->getMessage()."\n"; + } + $CC_DBC->createSequence($CC_CONFIG['treeTable']."_id_seq"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['treeTable']."_id_idx + ON ".$CC_CONFIG['treeTable']." (id)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['treeTable']."_name_idx + ON ".$CC_CONFIG['treeTable']." (name)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['treeTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['structTable'])) { + echo " * Creating database table ".$CC_CONFIG['structTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['structTable']." ( + rid int not null PRIMARY KEY, + objid int not null REFERENCES ".$CC_CONFIG['treeTable']." ON DELETE CASCADE, + parid int not null REFERENCES ".$CC_CONFIG['treeTable']." ON DELETE CASCADE, + level int + )"); + $CC_DBC->createSequence($CC_CONFIG['structTable']."_id_seq"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_rid_idx + ON ".$CC_CONFIG['structTable']." (rid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_objid_idx + ON ".$CC_CONFIG['structTable']." (objid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_parid_idx + ON ".$CC_CONFIG['structTable']." (parid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_level_idx + ON ".$CC_CONFIG['structTable']." (level)"); + $CC_DBC->query(" + CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_level_idx + ON ".$CC_CONFIG['structTable']." (objid, level) + "); + $CC_DBC->query(" + CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_parid_idx + ON ".$CC_CONFIG['structTable']." (objid, parid) + "); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['structTable']."\n"; +} + +// +// Insert the RootNode if its not there yet. +// +$sql = "SELECT * FROM ".$CC_CONFIG['treeTable'] + ." WHERE name='".$CC_CONFIG['RootNode']."'" + ." AND type='RootNode'"; +$row = $CC_DBC->GetRow($sql); +if (!PEAR::isError($row) && !$row) { + echo " * Creating ROOT NODE in ".$CC_CONFIG['treeTable']."..."; + $oid = $CC_DBC->nextId($CC_CONFIG['treeTable']."_id_seq"); + if (PEAR::isError($oid)) { + echo $oid->getMessage()."\n"; + //print_r($oid); + exit(); + } + $CC_DBC->query(" + INSERT INTO ".$CC_CONFIG['treeTable']." + (id, name, type) + VALUES + ($oid, '".$CC_CONFIG['RootNode']."', 'RootNode') + "); + echo "done.\n"; +} else { + echo " * Skipping: Root node already exists in ".$CC_CONFIG['treeTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['classTable'])) { + echo " * Creating database table ".$CC_CONFIG['classTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['classTable']." ( + id int not null PRIMARY KEY, + cname varchar(20) + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_id_idx + ON ".$CC_CONFIG['classTable']." (id)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_cname_idx + ON ".$CC_CONFIG['classTable']." (cname)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['classTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['cmembTable'])) { + echo " * Creating database table ".$CC_CONFIG['cmembTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['cmembTable']." ( + objid int not null, + cid int not null + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['cmembTable']."_idx + ON ".$CC_CONFIG['cmembTable']." (objid, cid)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['cmembTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['subjTable'])) { + echo " * Creating database table ".$CC_CONFIG['subjTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['subjTable']." ( + id int not null PRIMARY KEY, + login varchar(255) not null default'', + pass varchar(255) not null default'', + type char(1) not null default 'U', + realname varchar(255) not null default'', + lastlogin timestamp, + lastfail timestamp + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_id_idx + ON ".$CC_CONFIG['subjTable']." (id)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_login_idx + ON ".$CC_CONFIG['subjTable']." (login)"); + $CC_DBC->createSequence($CC_CONFIG['subjTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['subjTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['smembTable'])) { + echo " * Creating database table ".$CC_CONFIG['smembTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['smembTable']." ( + id int not null PRIMARY KEY, + uid int not null default 0, + gid int not null default 0, + level int not null default 0, + mid int + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['smembTable']."_id_idx + ON ".$CC_CONFIG['smembTable']." (id)"); + $CC_DBC->createSequence($CC_CONFIG['smembTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['smembTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['permTable'])) { + echo " * Creating database table ".$CC_CONFIG['permTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['permTable']." ( + permid int not null PRIMARY KEY, + subj int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, + action varchar(20), + obj int, + type char(1) + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_permid_idx + ON ".$CC_CONFIG['permTable']." (permid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['permTable']."_subj_obj_idx + ON ".$CC_CONFIG['permTable']." (subj, obj)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_all_idx + ON ".$CC_CONFIG['permTable']." (subj, action, obj)"); + $CC_DBC->createSequence($CC_CONFIG['permTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['permTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['sessTable'])) { + echo " * Creating database table ".$CC_CONFIG['sessTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['sessTable']." ( + sessid char(32) not null PRIMARY KEY, + userid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, + login varchar(255), + ts timestamp + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['sessTable']."_sessid_idx + ON ".$CC_CONFIG['sessTable']." (sessid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['sessTable']."_userid_idx + ON ".$CC_CONFIG['sessTable']." (userid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['sessTable']."_login_idx + ON ".$CC_CONFIG['sessTable']." (login)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['filesTable'])) { + echo " * Creating database table ".$CC_CONFIG['filesTable']."..."; + $r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['filesTable']." ( + id int not null, + gunid bigint not null, -- global unique ID + name varchar(255) not null default'', -- human file id ;) + mime varchar(255) not null default'', -- mime type + ftype varchar(128) not null default'', -- file type + state varchar(128) not null default'empty', -- file state + currentlyaccessing int not null default 0, -- access counter + editedby int REFERENCES ".$CC_CONFIG['subjTable'].", -- who edits it + mtime timestamp(6) with time zone -- lst modif.time + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_id_idx + ON ".$CC_CONFIG['filesTable']." (id)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_gunid_idx + ON ".$CC_CONFIG['filesTable']." (gunid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['filesTable']."_name_idx + ON ".$CC_CONFIG['filesTable']." (name)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['mdataTable'])) { + echo " * Creating database table ".$CC_CONFIG['mdataTable']."..."; + $CC_DBC->createSequence($CC_CONFIG['mdataTable']."_id_seq"); + $r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['mdataTable']." ( + id int not null, + gunid bigint, + subjns varchar(255), -- subject namespace shortcut/uri + subject varchar(255) not null default '', + predns varchar(255), -- predicate namespace shortcut/uri + predicate varchar(255) not null, + predxml char(1) not null default 'T', -- Tag or Attribute + objns varchar(255), -- object namespace shortcut/uri + object text + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['mdataTable']."_id_idx + ON ".$CC_CONFIG['mdataTable']." (id)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_gunid_idx + ON ".$CC_CONFIG['mdataTable']." (gunid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_subj_idx + ON ".$CC_CONFIG['mdataTable']." (subjns, subject)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_pred_idx + ON ".$CC_CONFIG['mdataTable']." (predns, predicate)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['mdataTable']."\n"; +} + +if (!camp_db_table_exists($CC_CONFIG['accessTable'])) { + echo " * Creating database table ".$CC_CONFIG['accessTable']."..."; + $r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['accessTable']." ( + gunid bigint, -- global unique id + token bigint, -- access token + chsum char(32) not null default'', -- md5 checksum + ext varchar(128) not null default'', -- extension + type varchar(20) not null default'', -- access type + parent bigint, -- parent token + owner int REFERENCES ".$CC_CONFIG['subjTable'].", -- subject have started it + ts timestamp + )"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_token_idx + ON ".$CC_CONFIG['accessTable']." (token)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_gunid_idx + ON ".$CC_CONFIG['accessTable']." (gunid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_parent_idx + ON ".$CC_CONFIG['accessTable']." (parent)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n"; +} + +echo " * Inserting starting data into tables..."; +$gb = new GreenBox(); +$r = $gb->initData(); +echo "done.\n"; + +//------------------------------------------------------------------------------ +// Submodules +//------------------------------------------------------------------------------ + +if (!camp_db_table_exists($CC_CONFIG['transTable'])) { + echo " * Creating database table ".$CC_CONFIG['transTable']."..."; + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['transTable']." ( + id int not null, -- primary key + trtok char(16) not null, -- transport token + direction varchar(128) not null, -- direction: up|down + state varchar(128) not null, -- state + trtype varchar(128) not null, -- transport type + lock char(1) not null default 'N',-- running lock + target varchar(255) default NULL, -- target system, + -- if NULL => predefined set + rtrtok char(16) default NULL, -- remote hub's transport token + mdtrtok char(16), -- metadata transport token + gunid bigint, -- global unique id + pdtoken bigint, -- put/download token from archive + url varchar(255), -- url on remote side + localfile varchar(255), -- pathname of local part + fname varchar(255), -- mnemonic filename + title varchar(255), -- dc:title mdata value (or filename ...) + expectedsum char(32), -- expected file checksum + realsum char(32), -- checksum of transported part + expectedsize int, -- expected filesize in bytes + realsize int, -- filesize of transported part + uid int, -- local user id of transport owner + errmsg varchar(255), -- error message string for failed tr. + start timestamp, -- starttime + ts timestamp -- mtime + )"); + $CC_DBC->createSequence($CC_CONFIG['transTable']."_id_seq"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_id_idx + ON ".$CC_CONFIG['transTable']." (id)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_trtok_idx + ON ".$CC_CONFIG['transTable']." (trtok)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_token_idx + ON ".$CC_CONFIG['transTable']." (pdtoken)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['transTable']."_gunid_idx + ON ".$CC_CONFIG['transTable']." (gunid)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['transTable']."_state_idx + ON ".$CC_CONFIG['transTable']." (state)"); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n"; +} + +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/installStorage.php b/campcaster/src/modules/storageServer/var/install/installStorage.php new file mode 100644 index 000000000..3a56a80e3 --- /dev/null +++ b/campcaster/src/modules/storageServer/var/install/installStorage.php @@ -0,0 +1,86 @@ +createSequence($CC_CONFIG['prefTable']."_id_seq"); + $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['prefTable']." ( + id int not null, + subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE, + keystr varchar(255), + valstr text + )"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_id_idx + ON ".$CC_CONFIG['prefTable']." (id)"); + $CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_subj_key_idx + ON ".$CC_CONFIG['prefTable']." (subjid, keystr)"); + $CC_DBC->query("CREATE INDEX ".$CC_CONFIG['prefTable']."_subjid_idx + ON ".$CC_CONFIG['prefTable']." (subjid)"); + echo "done.\n"; + + echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."..."; + $stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']); + Prefs::Insert($stPrefGr, 'stationName', "Radio Station 1"); + $genres = file_get_contents( dirname(__FILE__).'/../genres.xml'); + Prefs::Insert($stPrefGr, 'genres', $genres); + echo "done.\n"; +} else { + echo " * Skipping: database table already exists: ".$CC_CONFIG['prefTable']."\n"; +} + +//------------------------------------------------------------------------ +// Install storage directories +//------------------------------------------------------------------------ +foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) { + $rp = realpath($CC_CONFIG[$d]); + if ( $rp === FALSE ) { + echo " * Creating directory ".$CC_CONFIG[$d]."..."; + mkdir($CC_CONFIG[$d], 02775); + echo "done.\n"; + $rp = realpath($CC_CONFIG[$d]); + } else { + echo " * Skipping: directory already exists: $rp\n"; + } + $CC_CONFIG[$d] = $rp; +} + +//------------------------------------------------------------------------ +// Storage directory writability test +//------------------------------------------------------------------------ + +echo " * Testing writability of ".$CC_CONFIG['storageDir']."..."; +if (!($fp = @fopen($CC_CONFIG['storageDir']."/_writeTest", 'w'))) { + echo "\nPlease make directory {$CC_CONFIG['storageDir']} writeable by your webserver". + "\nand run install again\n\n"; + exit(1); +} else { + fclose($fp); + unlink($CC_CONFIG['storageDir']."/_writeTest"); +} +echo "done.\n"; + +//------------------------------------------------------------------------ +// Install Cron job +//------------------------------------------------------------------------ +require_once(dirname(__FILE__).'/../cron/Cron.php'); + +echo " * Adding cron job..."; +$cron = new Cron(); +$access = $cron->openCrontab('write'); +if ($access != 'write') { + do { + $r = $cron->forceWriteable(); + } while ($r); +} +$cron->ct->addCron('*/2', '*', '*', '*', '*', realpath("{$CC_CONFIG['cronDir']}/transportCron.php")); +$cron->closeCrontab(); +echo "done.\n"; + +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/uninstall.php b/campcaster/src/modules/storageServer/var/install/uninstall.php index a216b1bdd..942cf1916 100644 --- a/campcaster/src/modules/storageServer/var/install/uninstall.php +++ b/campcaster/src/modules/storageServer/var/install/uninstall.php @@ -1,65 +1,35 @@ + * @author Paul Baranowski * @version $Revision$ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org */ -// no remote execution +// Do not allow remote execution. $arr = array_diff_assoc($_SERVER, $_ENV); -if(isset($arr["DOCUMENT_ROOT"]) && $arr["DOCUMENT_ROOT"] != ""){ +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { header("HTTP/1.1 400"); header("Content-type: text/plain; charset=UTF-8"); echo "400 Not executable\r\n"; exit; } -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../GreenBox.php'; -require_once "../Transport.php"; -require_once "../Prefs.php"; -function errCallback($err) -{ - if(assert_options(ASSERT_ACTIVE)==1) return; - echo "ERROR:\n"; - echo "request: "; print_r($_REQUEST); - echo "gm:\n".$err->getMessage()."\ndi:\n".$err->getDebugInfo(). - "\nui:\n".$err->getUserInfo()."\n
    \n"; - exit(1); -} +echo "***************************\n"; +echo "* StorageServer Uninstall *\n"; +echo "***************************\n"; +require_once('../conf.php'); +require_once('uninstallMain.php'); +require_once('uninstallStorage.php'); -PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
    \n"); -$dbc = DB::connect($config['dsn'], TRUE); -if(PEAR::isError($dbc)){ - echo "Database connection problem.\n"; - echo "Check if database '{$config['dsn']['database']}' exists". - " with corresponding permissions.\n"; - echo "Database access is defined by 'dsn' values in conf.php.\n"; - exit(1); -} +echo "************************************\n"; +echo "* StorageServer Uninstall Complete *\n"; +echo "************************************\n"; -echo "#StorageServer uninstall:\n"; -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new GreenBox($dbc, $config, TRUE); -$tr = new Transport($gb); -$pr = new Prefs($gb); -$dbc->setErrorHandling(PEAR_ERROR_RETURN); - -echo "# Uninstall Prefs submodule"; -$r = $pr->uninstall(); -if(PEAR::isError($r)){ echo $r->getUserInfo()."\n"; exit; } -echo "\n"; - -echo "# Uninstall Transport submodule ..."; -$r = $tr->uninstall(); -if(PEAR::isError($r)){ echo $r->getUserInfo()."\n"; exit; } -echo "\n"; - -echo "# Uninstall StorageServer ...\n"; -$gb->uninstall(); -echo "#StorageServer uninstall: OK\n"; - -$dbc->disconnect(); -?> +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/uninstallMain.php b/campcaster/src/modules/storageServer/var/install/uninstallMain.php new file mode 100644 index 000000000..3f10f3f99 --- /dev/null +++ b/campcaster/src/modules/storageServer/var/install/uninstallMain.php @@ -0,0 +1,155 @@ + + * @author Paul Baranowski + * @version $Revision: 2458 $ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org + */ + +// Do not allow remote execution. +$arr = array_diff_assoc($_SERVER, $_ENV); +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { + header("HTTP/1.1 400"); + header("Content-type: text/plain; charset=UTF-8"); + echo "400 Not executable\r\n"; + exit; +} + +if (!function_exists('pg_connect')) { + trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR); + exit(2); +} + +require_once('DB.php'); + + +function camp_db_table_exists($p_name) +{ + global $CC_DBC; + $sql = "SELECT * FROM ".$p_name; + $result = $CC_DBC->GetOne($sql); + if (PEAR::isError($result)) { + return false; + } + return true; +} + +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + echo "Database connection problem.\n"; + echo "Check if database '".$CC_CONFIG['dsn']['database']."' exists". + " with corresponding permissions.\n"; + echo "Database access is defined by 'dsn' values in conf.php.\n"; + exit(1); +} + +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); + +if (camp_db_table_exists($CC_CONFIG['transTable'])) { + echo " * Removing database table ".$CC_CONFIG['transTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['transTable']); + $CC_DBC->dropSequence($CC_CONFIG['transTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['transTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['mdataTable'])) { + echo " * Removing database table ".$CC_CONFIG['mdataTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['mdataTable']); + $CC_DBC->dropSequence($CC_CONFIG['mdataTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['mdataTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['filesTable'])) { + echo " * Removing database table ".$CC_CONFIG['filesTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['filesTable']); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['filesTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['accessTable'])) { + echo " * Removing database table ".$CC_CONFIG['accessTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['accessTable']); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['accessTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['permTable'])) { + echo " * Removing database table ".$CC_CONFIG['permTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['permTable']); + $CC_DBC->dropSequence($CC_CONFIG['permTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['permTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['sessTable'])) { + echo " * Removing database table ".$CC_CONFIG['sessTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['sessTable']); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['sessTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['subjTable'])) { + echo " * Removing database table ".$CC_CONFIG['subjTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['subjTable']); + $CC_DBC->dropSequence($CC_CONFIG['subjTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['subjTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['smembTable'])) { + echo " * Removing database table ".$CC_CONFIG['smembTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['smembTable']); + $CC_DBC->dropSequence($CC_CONFIG['smembTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['smembTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['classTable'])) { + echo " * Removing database table ".$CC_CONFIG['classTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['classTable']); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['classTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['cmembTable'])) { + echo " * Removing database table ".$CC_CONFIG['cmembTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['cmembTable']); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['cmembTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['structTable'])) { + echo " * Removing database table ".$CC_CONFIG['structTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['structTable']); + $CC_DBC->dropSequence($CC_CONFIG['structTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['structTable']."\n"; +} + +if (camp_db_table_exists($CC_CONFIG['treeTable'])) { + echo " * Removing database table ".$CC_CONFIG['treeTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['treeTable']); + $CC_DBC->dropSequence($CC_CONFIG['treeTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['treeTable']."\n"; +} + +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/install/uninstallStorage.php b/campcaster/src/modules/storageServer/var/install/uninstallStorage.php new file mode 100644 index 000000000..2ce93182b --- /dev/null +++ b/campcaster/src/modules/storageServer/var/install/uninstallStorage.php @@ -0,0 +1,71 @@ + + * @author Paul Baranowski + * @version $Revision: 2458 $ + * @package Campcaster + * @subpackage StorageServer + * @copyright 2006 MDLF, Inc. + * @license http://www.gnu.org/licenses/gpl.txt + * @link http://www.campware.org + */ + +// Do not allow remote execution. +$arr = array_diff_assoc($_SERVER, $_ENV); +if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { + header("HTTP/1.1 400"); + header("Content-type: text/plain; charset=UTF-8"); + echo "400 Not executable\r\n"; + exit; +} + + +if (camp_db_table_exists($CC_CONFIG['prefTable'])) { + echo " * Removing database table ".$CC_CONFIG['prefTable']."..."; + $CC_DBC->query("DROP TABLE ".$CC_CONFIG['prefTable']); + $CC_DBC->dropSequence($CC_CONFIG['prefTable']."_id_seq"); + echo "done.\n"; +} else { + echo " * Skipping: database table ".$CC_CONFIG['prefTable']."\n"; +} + + +echo " * Removing all media files in ".$CC_CONFIG['storageDir']."..."; +$d = @dir($CC_CONFIG['storageDir']); +while (is_object($d) && (false !== ($entry = $d->read()))){ + if (filetype($CC_CONFIG['storageDir']."/$entry") == 'dir') { + if ( ($entry != 'CVS') && ($entry != 'tmp') && (strlen($entry)==3) ) { + $dd = dir($CC_CONFIG['storageDir']."/$entry"); + while (false !== ($ee = $dd->read())) { + if (substr($ee, 0, 1) !== '.') { + $filename = $CC_CONFIG['storageDir']."/$entry/$ee"; + echo " * Removing $filename..."; + unlink($filename); + echo "done.\n"; + } + } + $dd->close(); + rmdir($CC_CONFIG['storageDir']."/$entry"); + } + } +} +if (is_object($d)) { + $d->close(); +} +echo "done.\n"; + +//echo " * Removing all temporary files in ".$CC_CONFIG['bufferDir']."..."; +//if (file_exists($CC_CONFIG['bufferDir'])) { +// $d = dir($CC_CONFIG['bufferDir']); +// while (false !== ($entry = $d->read())) { +// if (substr($entry, 0, 1) != '.') { +// unlink($CC_CONFIG['bufferDir']."/$entry"); +// } +// } +// $d->close(); +// @rmdir($this->bufferDir); +//} +//echo "done.\n"; + + +?> \ No newline at end of file diff --git a/campcaster/src/modules/storageServer/var/tests/transTest.php b/campcaster/src/modules/storageServer/var/tests/transTest.php index eb19d3f74..f521b7416 100644 --- a/campcaster/src/modules/storageServer/var/tests/transTest.php +++ b/campcaster/src/modules/storageServer/var/tests/transTest.php @@ -2,20 +2,20 @@ header("Content-type: text/plain"); echo "\n# Transport test:\n"; -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../GreenBox.php'; -require_once '../LocStor.php'; +require_once('../conf.php'); +require_once('DB.php'); +require_once('../GreenBox.php'); +require_once('../LocStor.php'); #PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
    \n"); PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new GreenBox($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$gb = new GreenBox(); $tr = new Transport($gb); -$ls = new LocStor($dbc, $config); -@unlink("{$tr->transDir}/activity.log"); -@unlink("{$tr->transDir}/debug.log"); +$ls = new LocStor(); +@unlink($CC_CONFIG['transDir']."/activity.log"); +@unlink($CC_CONFIG['transDir']."/debug.log"); $tr->_cleanUp(); $gunid = 'a23456789abcdefb'; @@ -24,25 +24,25 @@ $mdataFile = '../tests/mdata1.xml'; /* ========== PING ========== */ /* -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; +echo"# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; echo"# Ping: "; $r = $tr->pingToArchive(); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } var_export($r); echo"\n"; -echo"# logout: "; $r = $gb->logout($sessid); +echo"# logout: "; $r = Alib::Logout($sessid); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } echo "$r\n"; */ /* ========== STORE ========== */ -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; +echo"# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; echo"# Store: "; $parid = $gb->_getHomeDirIdFromSess($sessid); $oid = $r = $gb->bsPutFile($parid, "xx1.mp3", $mediaFile, $mdataFile, $gunid, 'audioclip'); if(PEAR::isError($r)){ if($r->getCode()!=GBERR_GUNID){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); }} -$comm = "ls -l {$gb->storageDir}/a23"; echo `$comm`; +$comm = "ls -l ".$CC_CONFIG['storageDir']."/a23"; echo `$comm`; echo "$oid\n"; /* ========== DELETE FROM HUB ========== */ @@ -76,7 +76,7 @@ if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."/".$r->getUserInfo()."\n var_export($r); echo"\n"; $trtok = $r; -echo"# logout: "; $r = $gb->logout($sessid); +echo"# logout: "; $r = Alib::Logout($sessid); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."/".$r->getUserInfo()."\n"; exit(1); } echo "$r\n"; /* @@ -97,14 +97,21 @@ for($state='', $nu=1; ($state!='closed' && $state!='failed' && $nu<=12); $nu++, if($state=='failed') exit(1); /* === DELETE LOCAL === */ -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; -echo"# Delete: "; $r = $ls->deleteAudioClip($sessid, $gunid, TRUE); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } +echo "# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; +echo "# Delete: "; $r = $ls->deleteAudioClip($sessid, $gunid, TRUE); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()."\n"; + exit(1); +} echo "$r\n"; -echo"# logout: "; $r = $gb->logout($sessid); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } +echo "# logout: "; $r = Alib::Logout($sessid); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()."\n"; + exit(1); +} echo "$r\n"; -$comm = "ls -l {$gb->storageDir}/a23"; echo `$comm`; +$comm = "ls -l ".$CC_CONFIG['storageDir']."/a23"; +echo `$comm`; /* */ @@ -114,7 +121,7 @@ $comm = "ls -l {$gb->storageDir}/a23"; echo `$comm`; /* === DOWNLOAD === */ echo "# DOWNLOAD test:\n"; -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; +echo"# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; echo"# downloadAudioClipFromHub: "; $r = $gb->downloadFromHub($sessid, $gunid); @@ -122,7 +129,7 @@ if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."/".$r->getUserInfo()."\n var_export($r); echo"\n"; $trtok = $r; -echo"# logout: "; $r = $gb->logout($sessid); +echo"# logout: "; $r = Alib::Logout($sessid); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } echo "$r\n"; @@ -139,16 +146,16 @@ for($state='', $nu=1; ($state!='closed' && $state!='failed' && $nu<=12); $nu++, } if($state=='failed') exit(1); -$comm = "ls -l {$gb->storageDir}/a23"; echo `$comm`; +$comm = "ls -l ".$CC_CONFIG['storageDir']."/a23"; echo `$comm`; /* */ /* -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; +echo"# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; echo"# Delete: "; $r = $ls->deleteAudioClip($sessid, $gunid, TRUE); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } echo "$r\n"; -echo"# logout: "; $r = $gb->logout($sessid); +echo"# logout: "; $r = Alib::Logout($sessid); if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } echo "$r\n"; */ diff --git a/campcaster/src/modules/storageServer/var/tests/webstreamTest.php b/campcaster/src/modules/storageServer/var/tests/webstreamTest.php index 8389d8cef..f9f13dc40 100644 --- a/campcaster/src/modules/storageServer/var/tests/webstreamTest.php +++ b/campcaster/src/modules/storageServer/var/tests/webstreamTest.php @@ -2,41 +2,58 @@ header("Content-type: text/plain"); echo "\n#StorageServer storeWebstream test:\n"; -require_once '../conf.php'; -require_once 'DB.php'; -require_once '../GreenBox.php'; +require_once('../conf.php'); +require_once('DB.php'); +require_once('../GreenBox.php'); #PEAR::setErrorHandling(PEAR_ERROR_PRINT, "%s
    \n"); PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new GreenBox($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$gb = new GreenBox(); #$gunid = "123456789abcdee0"; $gunid = ""; #$mdataFileLP = '../tests/mdata1.xml'; $mdataFileLP = NULL; -echo"# Login: ".($sessid = $gb->login('root', 'q'))."\n"; +echo "# Login: ".($sessid = Alib::Login('root', 'q'))."\n"; $parid = $gb->_getHomeDirId($sessid); -echo"# storeWebstream: "; $r = $gb->storeWebstream( +echo "# storeWebstream: "; +$r = $gb->storeWebstream( $parid, 'test stream', $mdataFileLP, $sessid, $gunid, 'http://localhost/y'); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; exit(1); } -echo ""; var_dump($r); -#$id = $gb->idFromGunid($gunid); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; + exit(1); +} +echo ""; +var_dump($r); +//$id = BasicStor::IdFromGunid($gunid); $id = $r; -echo"# getMdata: "; $r = $gb->getMdata($id, $sessid); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; exit(1); } +echo "# getMdata: "; +$r = $gb->getMdata($id, $sessid); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; + exit(1); +} echo "\n$r\n"; -echo"# deleteFile: "; $r = $gb->deleteFile($id, $sessid); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; exit(1); } +echo "# deleteFile: "; +$r = $gb->deleteFile($id, $sessid); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()." ".$r->getUserInfo()."\n"; + exit(1); +} echo "\n$r\n"; -echo"# logout: "; $r = $gb->logout($sessid); -if(PEAR::isError($r)){ echo "ERROR: ".$r->getMessage()."\n"; exit(1); } +echo "# logout: "; +$r = Alib::Logout($sessid); +if (PEAR::isError($r)) { + echo "ERROR: ".$r->getMessage()."\n"; + exit(1); +} echo "$r\n"; echo "#storeWebstream test: OK.\n\n" diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/XR_LocStor.php b/campcaster/src/modules/storageServer/var/xmlrpc/XR_LocStor.php index 011a99f22..5a35033e3 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/XR_LocStor.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/XR_LocStor.php @@ -152,7 +152,7 @@ class XR_LocStor extends LocStor { if (!$ok) { return $r; } - $res = $this->login($r['login'], $r['pass']); + $res = Alib::Login($r['login'], $r['pass']); if (PEAR::isError($res)) { return new XML_RPC_Response(0, 804, "xr_login: ".$res->getMessage(). @@ -203,7 +203,7 @@ class XR_LocStor extends LocStor { if (!$ok) { return $r; } - $res = $this->logout($r['sessid']); + $res = Alib::Logout($r['sessid']); if (PEAR::isError($res)) { return new XML_RPC_Response(0, 803, "xr_logout: ".$res->getMessage(). @@ -1191,7 +1191,7 @@ class XR_LocStor extends LocStor { } $res = $this->playlistIsAvailable($r['sessid'], $r['plid'], TRUE); $ownerId = ($res === TRUE ? NULL : $res); - $ownerLogin = (is_null($ownerId) ? NULL : $this->getSubjName($ownerId)); + $ownerLogin = (is_null($ownerId) ? NULL : Subjects::GetSubjName($ownerId)); if (PEAR::isError($res)) { return new XML_RPC_Response(0, 805, "xr_playlistIsAvailable: ".$res->getMessage(). @@ -3221,7 +3221,7 @@ class XR_LocStor extends LocStor { } require_once('../Transport.php'); $tr = new Transport($this); - $uid = $this->getSessUserId($par['sessid']); // ### + $uid = Alib::GetSessUserId($par['sessid']); $res = $tr->downloadFromHub($uid, $par['gunid']); if (PEAR::isError($res)) { $ec0 = intval($res->getCode()); @@ -3540,7 +3540,7 @@ class XR_LocStor extends LocStor { } return new XML_RPC_Response(XML_RPC_encode(array( 'str'=>strtoupper($r['teststring']), - 'login'=>$this->getSessLogin($r['sessid']), + 'login' => Alib::GetSessLogin($r['sessid']), 'sessid'=>$r['sessid'] ))); } diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/put.php b/campcaster/src/modules/storageServer/var/xmlrpc/put.php index 658c13812..fd91bd42e 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/put.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/put.php @@ -37,9 +37,9 @@ require_once 'DB.php'; require_once dirname(__FILE__).'/../LocStor.php'; PEAR::setErrorHandling(PEAR_ERROR_RETURN); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$gb = new LocStor($dbc, $config); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$gb = new LocStor(); function http_error($code, $err) { header("HTTP/1.1 $code"); @@ -61,7 +61,7 @@ if(!$tc){ http_error(403, "put.php: Token not valid ($token)."); } header("Content-type: text/plain"); -$destfile = "{$config['accessDir']}/{$token}"; +$destfile = $CC_CONFIG['accessDir']."/{$token}"; /* PUT data comes in on the input stream */ $putdata = @fopen("php://input", "r") or diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/schedulerPhpClient.php b/campcaster/src/modules/storageServer/var/xmlrpc/schedulerPhpClient.php index b38020907..867159a12 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/schedulerPhpClient.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/schedulerPhpClient.php @@ -334,24 +334,12 @@ $mdefs = array( /* ======================================================== class definitions */ class SchedulerPhpClient { - /** - * Databases object reference - * @var DB - */ - public $dbc = NULL; - /** * Array with methods description * @var array */ private $mdefs = array(); - /** - * Confiduration array from ../conf.php - * @var array - */ - public $config = array(); - /** * XMLRPC client object reference */ @@ -380,20 +368,18 @@ class SchedulerPhpClient { * @param boolean $verbose * verbosity flag */ - public function __construct( - &$dbc, $mdefs, $config, $debug=0, $verbose=FALSE) + public function __construct($mdefs, $debug=0, $verbose=FALSE) { - $this->dbc = $dbc; + global $CC_DBC, $CC_CONFIG; $this->mdefs = $mdefs; - $this->config = $config; $this->debug = $debug; $this->verbose = $verbose; $confPrefix = "scheduler"; - # $confPrefix = "storage"; + //$confPrefix = "storage"; $serverPath = - "http://{$config["{$confPrefix}UrlHost"]}:{$config["{$confPrefix}UrlPort"]}". - "{$config["{$confPrefix}UrlPath"]}/{$config["{$confPrefix}XMLRPC"]}"; - #$serverPath = "http://localhost:80/campcasterStorageServerCVS/xmlrpc/xrLocStor.php"; + "http://{$CC_CONFIG["{$confPrefix}UrlHost"]}:{$CC_CONFIG["{$confPrefix}UrlPort"]}". + "{$CC_CONFIG["{$confPrefix}UrlPath"]}/{$CC_CONFIG["{$confPrefix}XMLRPC"]}"; + //$serverPath = "http://localhost:80/campcasterStorageServerCVS/xmlrpc/xrLocStor.php"; if ($this->verbose) { echo "serverPath: $serverPath\n"; } @@ -413,19 +399,17 @@ class SchedulerPhpClient { * array, call wrapper callMethod(methodname, parameters) and return its * result. * - * @param DB $dbc * @param array $mdefs * hash array with methods description - * @param array $config - * hash array with configuration * @param int $debug * XMLRPC debug flag * @param boolean $verbose * verbosity flag * @return SchedulerPhpClientCore */ - function &factory(&$dbc, $mdefs, $config, $debug=0, $verbose=FALSE) + function &factory($mdefs, $debug=0, $verbose=FALSE) { + global $CC_DBC, $CC_CONFIG; $f = ''; foreach ($mdefs as $fn => $farr) { $f .= @@ -441,10 +425,9 @@ class SchedulerPhpClient { "}\n"; # echo $e; if (FALSE === eval($e)) { - return $dbc->raiseError("Eval failed"); + return $CC_DBC->raiseError("Eval failed"); } - $spc = new SchedulerPhpClientCore( - $dbc, $mdefs, $config, $debug, $verbose); + $spc = new SchedulerPhpClientCore($mdefs, $debug, $verbose); return $spc; } @@ -506,13 +489,13 @@ class SchedulerPhpClient { // db object handling: -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); -$dbc->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); // scheduler client instantiation: -$spc = SchedulerPhpClient::factory($dbc, $mdefs, $config); -#$spc = SchedulerPhpClient::factory($dbc, $mdefs, $config, 0, TRUE); +$spc = SchedulerPhpClient::factory($mdefs); +#$spc = SchedulerPhpClient::factory($mdefs, 0, TRUE); if(PEAR::isError($spc)){ echo $spc->getMessage."\n"; exit; } // call of chosen function by name according to key values in $mdefs array: diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/simpleGet.php b/campcaster/src/modules/storageServer/var/xmlrpc/simpleGet.php index 28d9ef7e4..0e4b44321 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/simpleGet.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/simpleGet.php @@ -27,17 +27,18 @@ * */ -require_once dirname(__FILE__).'/../conf.php'; -require_once 'DB.php'; -require_once dirname(__FILE__).'/../LocStor.php'; +require_once(dirname(__FILE__).'/../conf.php'); +require_once('DB.php'); +require_once(dirname(__FILE__).'/../LocStor.php'); -$dbc = DB::connect($config['dsn'], TRUE); -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$locStor = new LocStor($dbc, $config); +$locStor = new LocStor(); -function http_error($code, $err){ +function http_error($code, $err) +{ header("HTTP/1.1 $code"); header("Content-type: text/plain; charset=UTF-8"); echo "$err\r\n"; @@ -45,21 +46,21 @@ function http_error($code, $err){ } // parameter checking: -if(preg_match("|^[0-9a-fA-F]{32}$|", $_REQUEST['sessid'])){ +if (preg_match("|^[0-9a-fA-F]{32}$|", $_REQUEST['sessid'])) { $sessid = $_REQUEST['sessid']; -}else{ +} else { http_error(400, "Error on sessid parameter. ({$_REQUEST['sessid']})"); } -if(preg_match("|^[0-9a-fA-F]{16}$|", $_REQUEST['id'])){ +if (preg_match("|^[0-9a-fA-F]{16}$|", $_REQUEST['id'])) { $gunid = $_REQUEST['id']; -}else{ +} else { http_error(400, "Error on id parameter. ({$_REQUEST['id']})"); } // stored file recall: $ac = StoredFile::recallByGunid($locStor, $gunid); -if($dbc->isError($ac)){ - switch($ac->getCode()){ +if (PEAR::isError($ac)) { + switch ($ac->getCode()) { case GBERR_DENY: http_error(403, "403 ".$ac->getMessage()); case GBERR_FILENEX: @@ -69,22 +70,26 @@ if($dbc->isError($ac)){ http_error(500, "500 ".$ac->getMessage()); } } -$lid = $locStor->idFromGunid($gunid); -if($dbc->isError($lid)){ http_error(500, $lid->getMessage()); } -if(($res = $locStor->_authorize('read', $lid, $sessid)) !== TRUE){ +$lid = BasicStor::IdFromGunid($gunid); +if (PEAR::isError($lid)) { + http_error(500, $lid->getMessage()); +} +if (($res = BasicStor::Authorize('read', $lid, $sessid)) !== TRUE) { http_error(403, "403 Access denied"); } -$ftype = $locStor->getObjType($lid); -if($dbc->isError($ftype)){ http_error(500, $ftype->getMessage()); } -switch($ftype){ - case"audioclip": +$ftype = BasicStor::GetObjType($lid); +if (PEAR::isError($ftype)) { + http_error(500, $ftype->getMessage()); +} +switch ($ftype) { + case "audioclip": $realFname = $ac->_getRealRADFname(); $mime = $ac->rmd->getMime(); header("Content-type: $mime"); - header("Content-length: ".filesize($realFname)); + header("Content-length: ".filesize($realFname)); readfile($realFname); break; - case"webstream": + case "webstream": $url = $locStor->bsGetMetadataValue($lid, 'ls:url'); if (empty($url)) { http_error(500, "Unable to get ls:url value"); @@ -93,7 +98,7 @@ switch($ftype){ header($txt); // echo "$txt\n"; break; - case"playlist"; + case "playlist"; // $md = $locStor->bsGetMetadata($ac->getId(), $sessid); $md = $locStor->getAudioClip($sessid, $gunid); // header("Content-type: text/xml"); diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/xrLocStor.php b/campcaster/src/modules/storageServer/var/xmlrpc/xrLocStor.php index 8f74e1e93..4332798a4 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/xrLocStor.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/xrLocStor.php @@ -54,14 +54,14 @@ function errHndl($errno, $errmsg, $filename, $linenum, $vars) $old_error_handler = set_error_handler("errHndl", E_ALL); /* ============================================================= runable code */ -$r = $dbc = DB::connect($config['dsn'], TRUE); -if (PEAR::isError($r)) { - trigger_error("DB::connect: ".$r->getMessage()." ".$r->getUserInfo(),E_USER_ERROR); +$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); +if (PEAR::isError($CC_DBC)) { + trigger_error("DB::connect: ".$CC_DBC->getMessage()." ".$CC_DBC->getUserInfo(),E_USER_ERROR); } -$dbc->setErrorHandling(PEAR_ERROR_RETURN); -$dbc->setFetchMode(DB_FETCHMODE_ASSOC); +$CC_DBC->setErrorHandling(PEAR_ERROR_RETURN); +$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -$locStor = new XR_LocStor($dbc, $config); +$locStor = new XR_LocStor(); $methods = array( 'test' => 'Tests toupper and checks sessid, params: '. diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/xr_cli_test.php b/campcaster/src/modules/storageServer/var/xmlrpc/xr_cli_test.php index 77d9ab60b..18934dd3c 100644 --- a/campcaster/src/modules/storageServer/var/xmlrpc/xr_cli_test.php +++ b/campcaster/src/modules/storageServer/var/xmlrpc/xr_cli_test.php @@ -13,8 +13,8 @@ if($pars[0] == '-s'){ $serverPath = array_shift($pars); }else{ $serverPath = - "http://{$config['storageUrlHost']}:{$config['storageUrlPort']}". - "{$config['storageUrlPath']}/{$config['storageXMLRPC']}"; + "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}"; } $options = array(); if($pars[0] == '-o'){
    object