From aa9528b9fd9f041d13a8519d77c7bf3bf001fa2a Mon Sep 17 00:00:00 2001 From: "paul.baranowski" Date: Fri, 3 Sep 2010 16:49:28 -0400 Subject: [PATCH] CC-1658 Remove file tree structure from code and database. Removed tables ls_class and ls_cmemb and continued removing code that was depending on the tree structure. --- bin/upgrade-1.3-to-1.4.sql | 17 +- src/modules/alib/var/Alib.php | 178 +++++------ src/modules/alib/var/ObjClasses.php | 302 ------------------ src/modules/alib/var/Subjects.php | 96 +++--- src/modules/archiveServer/var/conf.php | 23 +- src/modules/storageServer/var/BasicStor.php | 9 +- src/modules/storageServer/var/CleanStor.php | 50 ++- src/modules/storageServer/var/M3uPlaylist.php | 8 +- src/modules/storageServer/var/Playlist.php | 4 +- src/modules/storageServer/var/Renderer.php | 4 - .../storageServer/var/SmilPlaylist.php | 12 +- src/modules/storageServer/var/conf.php | 20 +- .../storageServer/var/install/installMain.php | 129 +------- 13 files changed, 203 insertions(+), 649 deletions(-) delete mode 100644 src/modules/alib/var/ObjClasses.php diff --git a/bin/upgrade-1.3-to-1.4.sql b/bin/upgrade-1.3-to-1.4.sql index aa475093b..8041cba33 100644 --- a/bin/upgrade-1.3-to-1.4.sql +++ b/bin/upgrade-1.3-to-1.4.sql @@ -9,6 +9,19 @@ ALTER TABLE ls_files ALTER COLUMN id SET DEFAULT NEXTVAL('file_id_seq'); -DROP TABLE ls_struct; -DROP TABLE ls_tree; +DROP TABLE ls_struct CASCADE; +DROP TABLE ls_tree CASCADE; +DROP TABLE ls_classes CASCADE; +DROP TABLE ls_cmemb CASCADE; + +DROP SEQUENCE ls_struct_id_seq_seq; +DROP SEQUENCE ls_tree_id_seq_seq; + +DROP TABLE as_tree CASCADE; +DROP TABLE as_struct CASCADE; +DROP TABLE as_classes CASCADE; +DROP TABLE as_cmemb CASCADE; + +DROP SEQUENCE as_struct_id_seq_seq; +DROP SEQUENCE as_tree_id_seq_seq; diff --git a/src/modules/alib/var/Alib.php b/src/modules/alib/var/Alib.php index 25f37a9fb..3bbb65921 100644 --- a/src/modules/alib/var/Alib.php +++ b/src/modules/alib/var/Alib.php @@ -214,84 +214,84 @@ class Alib { public static function CheckPerm($sid, $action, $oid=NULL) { return TRUE; - global $CC_DBC; - global $CC_CONFIG; - if (!is_numeric($sid)) { - return FALSE; - } -// if (is_null($oid) or $oid=='') { -// $oid = M2tree::GetRootNode(); +// global $CC_DBC; +// global $CC_CONFIG; +// if (!is_numeric($sid)) { +// return FALSE; // } -// if (PEAR::isError($oid)) { -// return $oid; +//// if (is_null($oid) or $oid=='') { +//// $oid = M2tree::GetRootNode(); +//// } +//// if (PEAR::isError($oid)) { +//// return $oid; +//// } +// if (!is_numeric($oid)) { +// return FALSE; // } - if (!is_numeric($oid)) { - return FALSE; - } - // query construction - // shortcuts: - // p: permTable, - // s: subjTable, m smembTable, - // t: treeTable ts: structTable, - // c: classTable, cm: cmembTable - // main query elements: - $q_flds = "m.level , p.subj, s.login, action, p.type, p.obj"; - $q_from = $CC_CONFIG['permTable']." p "; - // joins for solving users/groups: - $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: - // action DESC order for lower priority of '_all': - $q_ordb = "ORDER BY coalesce(m.level,-1), action DESC, p.type DESC"; - $q_flds0 = $q_flds; - $q_from0 = $q_from; - $q_join0 = $q_join; - $q_cond0 = $q_cond; - $q_ordb0 = $q_ordb; - // joins for solving object tree: - $q_flds .= ", t.name, ts.level as tlevel"; - //$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 = $CC_DBC->getAll($query1); - if (PEAR::isError($r1)) { - return($r1); - } - // if there is row with type='A' on the top => permit - //$AllowedByTree = - // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='A'); - //$DeniedByTree = - // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='D'); - - if (!USE_ALIB_CLASSES) { - return $AllowedbyTree; - } - - // joins for solving object classes: - $q_flds = $q_flds0.", c.cname "; - $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 = $CC_DBC->getAll($query2); - if (PEAR::isError($r2)) { - return $r2; - } - $AllowedByClass = - (is_array($r2) && count($r2)>0 && $r2[0]['type']=='A'); - // not used now: - // $DeniedByClass = - // (is_array($r2) && count($r2)>0 && $r2[0]['type']=='D'); - $res = ($AllowedByTree || (!$DeniedByTree && $AllowedByClass)); - return $res; +// // query construction +// // shortcuts: +// // p: permTable, +// // s: subjTable, m smembTable, +// // t: treeTable ts: structTable, +// // c: classTable, cm: cmembTable +// // main query elements: +// $q_flds = "m.level , p.subj, s.login, action, p.type, p.obj"; +// $q_from = $CC_CONFIG['permTable']." p "; +// // joins for solving users/groups: +// $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: +// // action DESC order for lower priority of '_all': +// $q_ordb = "ORDER BY coalesce(m.level,-1), action DESC, p.type DESC"; +// $q_flds0 = $q_flds; +// $q_from0 = $q_from; +// $q_join0 = $q_join; +// $q_cond0 = $q_cond; +// $q_ordb0 = $q_ordb; +// // joins for solving object tree: +// $q_flds .= ", t.name, ts.level as tlevel"; +// //$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 = $CC_DBC->getAll($query1); +// if (PEAR::isError($r1)) { +// return($r1); +// } +// // if there is row with type='A' on the top => permit +// //$AllowedByTree = +// // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='A'); +// //$DeniedByTree = +// // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='D'); +// +// if (!USE_ALIB_CLASSES) { +// return $AllowedbyTree; +// } +// +// // joins for solving object classes: +// $q_flds = $q_flds0.", c.cname "; +// $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 = $CC_DBC->getAll($query2); +// if (PEAR::isError($r2)) { +// return $r2; +// } +// $AllowedByClass = +// (is_array($r2) && count($r2)>0 && $r2[0]['type']=='A'); +// // not used now: +// // $DeniedByClass = +// // (is_array($r2) && count($r2)>0 && $r2[0]['type']=='D'); +// $res = ($AllowedByTree || (!$DeniedByTree && $AllowedByClass)); +// return $res; } // fn CheckPerm @@ -306,10 +306,7 @@ class Alib { public static function RemoveObj($id) { $r = Alib::RemovePerm(NULL, NULL, $id); - if (PEAR::isError($r)) { - return $r; - } - return ObjClasses::RemoveObj($id); + return $r; } // fn removeObj /* --------------------------------------------------------- users/groups */ @@ -411,21 +408,14 @@ class Alib { public static function GetSubjPerms($sid) { global $CC_CONFIG, $CC_DBC; - $sql = "SELECT t.name, t.type as otype , p.*" - ." FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['treeTable']." t" - ." WHERE t.id=p.obj AND p.subj=$sid"; + $sql = "SELECT *" + ." FROM ".$CC_CONFIG['permTable'] + ." WHERE p.subj=$sid"; +// $sql = "SELECT t.name, t.type as otype , p.*" +// ." FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['treeTable']." t" +// ." WHERE t.id=p.obj AND p.subj=$sid"; $a1 = $CC_DBC->getAll($sql); - if (PEAR::isError($a1)) { - return $a1; - } - $sql2 = "SELECT c.cname as name, 'C'as otype, p.*" - ." FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['classTable']." c" - ." WHERE c.id=p.obj AND p.subj=$sid"; - $a2 = $CC_DBC->getAll($sql2); - if (PEAR::isError($a2)) { - return $a2; - } - return array_merge($a1, $a2); + return $a1; } // fn GetSubjPerms diff --git a/src/modules/alib/var/ObjClasses.php b/src/modules/alib/var/ObjClasses.php deleted file mode 100644 index 3e15b2394..000000000 --- a/src/modules/alib/var/ObjClasses.php +++ /dev/null @@ -1,302 +0,0 @@ -nextId($CC_CONFIG['treeTable']."_id_seq"); - if (PEAR::isError($id)) { - return $id; - } - $r = $CC_DBC->query(" - INSERT INTO ".$CC_CONFIG['classTable']." (id, cname) - VALUES ($id, '$cname') - "); - if (PEAR::isError($r)) { - return $r; - } - return $id; - } - - - /** - * Remove class by name - * - * @param string $cname - * @return boolean|PEAR_Error - */ -// 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|PEAR_Error - */ - public static function RemoveClassById($cid) - { - global $CC_CONFIG, $CC_DBC; - $sql = "DELETE FROM ".$CC_CONFIG['cmembTable'] - ." WHERE cid=$cid"; - $r = $CC_DBC->query($sql); - if (PEAR::isError($r)) { - return $r; - } - $sql = "DELETE FROM ".$CC_CONFIG['classTable'] - ." WHERE id=$cid"; - $r = $CC_DBC->query($sql); - if (PEAR::isError($r)) { - return $r; - } - return TRUE; - } - - - /** - * Add object to class - * - * @param int $cid - * @param int $oid - * @return TRUE|PEAR_Error - */ - public static function AddObjectToClass($cid, $oid) - { - global $CC_CONFIG, $CC_DBC; - $sql = "INSERT INTO ".$CC_CONFIG['cmembTable']." (cid, objid)" - ." VALUES ($cid, $oid)"; - $r = $CC_DBC->query($sql); - if (PEAR::isError($r)) { - return $r; - } - return TRUE; - } - - - /** - * Remove object from class - * - * @param int $oid - * @param int $cid, default: remove obj from all classes - * @return TRUE|PEAR_Error - */ - public static function RemoveObjectFromClass($oid, $cid=NULL) - { - global $CC_CONFIG, $CC_DBC; - $sql = "DELETE FROM ".$CC_CONFIG['cmembTable'] - ." WHERE objid=$oid".(is_null($cid)? '':" AND cid=$cid"); - $r = $CC_DBC->query($sql); - if (PEAR::isError($r)) { - return $r; - } - return TRUE; - } - - - /* ---------------------------------------------------------- object tree */ - - /** - * Remove object from all classes and remove object itself - * - * @param int $id - * @return boolean|PEAR_Error - */ - public static function RemoveObj($id) - { - return ObjClasses::RemoveObjectFromClass($id); - } - - - /* --------------------------------------------------------- info methods */ - - /** - * Get class id from name - * - * @param string $cname - * @return int|PEAR_Error - */ - public static function GetClassId($cname) - { - global $CC_CONFIG, $CC_DBC; - $cname = pg_escape_string($cname); - $sql = "SELECT id FROM ".$CC_CONFIG['classTable'] - ." WHERE cname='$cname'"; - return $CC_DBC->getOne($sql); - } - - - /** - * Get class name from id - * - * @param int $id - * @return string|PEAR_Error - */ - public static function GetClassName($id) - { - global $CC_DBC, $CC_CONFIG; - $sql = "SELECT cname FROM ".$CC_CONFIG['classTable']." WHERE id=$id"; - return $CC_DBC->getOne($sql); - } - - - /** - * Return true is object is class - * - * @param int $id - * @return boolean|PEAR_Error - */ - public static function IsClass($id) - { - global $CC_CONFIG, $CC_DBC; - $sql = "SELECT count(*) FROM ".$CC_CONFIG['classTable'] - ." WHERE id=$id"; - $r = $CC_DBC->getOne($sql); - if (PEAR::isError($r)) { - return $r; - } - return ($r > 0); - } - - - /** - * Return all classes - * - * @return array|PEAR_Error - */ - public static function GetClasses() - { - global $CC_CONFIG, $CC_DBC; - return $CC_DBC->getAll("SELECT * FROM ".$CC_CONFIG['classTable']); - } - - - /** - * Return all objects in class - * - * @param int $id - * @return array|PEAR_Error - */ - public static function ListClass($id) - { - global $CC_CONFIG, $CC_DBC; - $sql = "SELECT t.* FROM ".$CC_CONFIG['cmembTable']." cm, ".$CC_CONFIG['treeTable']." t" - ." WHERE cm.cid=$id AND cm.objid=t.id"; - return $CC_DBC->getAll($sql); - } - - - /* =============================================== test and debug methods */ - - /** - * Dump all classes for debug - * - * @param string $indstr - * indentation string - * @param string $ind - * actual indentation - * @return string - */ - public static function DumpClasses($indstr=' ', $ind='') - { - global $CC_CONFIG, $CC_DBC; - $sql = "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"; - $r = $ind.join(', ', array_map( - create_function('$v', 'return "{$v[\'cname\']} ({$v[\'cnt\']})";'), - $CC_DBC->getAll($sql) - ))."\n"; - return $r; - } - - - /** - * Delete all classes and membership records. - * @return void - */ - public static function DeleteData() - { - global $CC_CONFIG, $CC_DBC; - $CC_DBC->query("DELETE FROM ".$CC_CONFIG['cmembTable']); - $CC_DBC->query("DELETE FROM ".$CC_CONFIG['classTable']); - } - - - /** - * Insert test data - * - */ - public static function TestData() - { -// $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; - } - - - /** - * Make basic test - * - */ - public static function Test() - { -// $p = M2tree::test(); -// if (PEAR::isError($p)) { -// return $p; -// } -// 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{$test_correct}\n".
-//                "dump:\n{$test_dump}\n
\n"); -// } - } - -} // class ObjClasses -?> \ No newline at end of file diff --git a/src/modules/alib/var/Subjects.php b/src/modules/alib/var/Subjects.php index 28c7a7e20..431e70d20 100644 --- a/src/modules/alib/var/Subjects.php +++ b/src/modules/alib/var/Subjects.php @@ -1,5 +1,5 @@ query("DELETE FROM ".$CC_CONFIG['subjTable']); $CC_DBC->query("DELETE FROM ".$CC_CONFIG['smembTable']); - ObjClasses::DeleteData(); + //ObjClasses::DeleteData(); } // fn deleteData @@ -623,26 +623,26 @@ class Subjects { */ public function 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; +// $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 @@ -652,32 +652,32 @@ class Subjects { */ public static function Test() { - $p = ObjClasses::Test(); - if (PEAR::isError($p)) { - return $p; - } - 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"; - $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"; - $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{$test_correct}\n".
-                "dump:\n{$test_dump}\n
\n"); - } +// $p = ObjClasses::Test(); +// if (PEAR::isError($p)) { +// return $p; +// } +// 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"; +// $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"; +// $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{$test_correct}\n".
+//                "dump:\n{$test_dump}\n
\n"); +// } } // fn test } // class Subjects diff --git a/src/modules/archiveServer/var/conf.php b/src/modules/archiveServer/var/conf.php index 0d3870249..53370f99d 100644 --- a/src/modules/archiveServer/var/conf.php +++ b/src/modules/archiveServer/var/conf.php @@ -69,31 +69,28 @@ $CC_CONFIG = array( #'archiveUrlHost' => 'localhost', #'archiveUrlPort' => 80, - /* ==================================== aplication-specific configuration */ + /* ==================================== application-specific configuration */ 'objtypes' => array( - 'RootNode' => array('Folder'), - 'Storage' => array('Folder', 'File', 'Replica'), - 'Folder' => array('Folder', 'File', 'Replica'), + 'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/), +// 'Folder' => array('Folder', 'File', 'Replica'), 'File' => array(), 'audioclip' => array(), 'playlist' => array(), - 'Replica' => array(), +// 'Replica' => array(), ), 'allowedActions'=> array( - 'RootNode' => array('classes', 'subjects'), - 'Folder' => array('editPrivs', 'write', 'read'), +// 'Folder' => array('editPrivs', 'write', 'read'), 'File' => array('editPrivs', 'write', 'read'), 'audioclip' => array('editPrivs', 'write', 'read'), 'playlist' => array('editPrivs', 'write', 'read'), - 'Replica' => array('editPrivs', 'write', 'read'), - '_class' => array('editPrivs', 'write', 'read'), +// 'Replica' => array('editPrivs', 'write', 'read'), +// '_class' => array('editPrivs', 'write', 'read'), ), 'allActions' => array( - 'editPrivs', 'write', 'read', 'classes', 'subjects' + 'editPrivs', 'write', 'read', /*'classes',*/ 'subjects' ), /* ============================================== auxiliary configuration */ - 'RootNode' => 'RootNode', 'tmpRootPass' => 'q', ); @@ -105,10 +102,6 @@ $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'; diff --git a/src/modules/storageServer/var/BasicStor.php b/src/modules/storageServer/var/BasicStor.php index f8d47a822..1c394e7aa 100644 --- a/src/modules/storageServer/var/BasicStor.php +++ b/src/modules/storageServer/var/BasicStor.php @@ -1344,7 +1344,6 @@ class BasicStor { /* ---------------------------------------------------- redefined methods */ /** * Get object type by id. - * (RootNode, Folder, File, ) * * @param int $oid * Local object id @@ -1369,7 +1368,7 @@ class BasicStor { /** - * Add new user with home folder + * Add new user * * @param string $login * @param string $pass @@ -1404,7 +1403,7 @@ class BasicStor { /** - * Remove user by login and remove also his home folder + * Remove user by login * * @param string $login * @return boolean|PEAR_Error @@ -1699,8 +1698,8 @@ class BasicStor { $storedFile->delete(); break; case "File": - case "Folder": - case "Replica": +// case "Folder": +// case "Replica": break; default: return PEAR::raiseError( diff --git a/src/modules/storageServer/var/CleanStor.php b/src/modules/storageServer/var/CleanStor.php index b0809f61b..92a024f0e 100644 --- a/src/modules/storageServer/var/CleanStor.php +++ b/src/modules/storageServer/var/CleanStor.php @@ -6,37 +6,37 @@ require_once('install/installInit.php'); require_once ('StoredFile.php'); function printUsage() { - + global $CC_CONFIG; - + echo "Usage:\n"; echo " ./CleanStor [OPTION] \n"; echo "\n"; echo "Options:\n"; echo " -c, --clean Removes all broken links from the storage server\n"; - echo " and empties all missing file information from the database.\n"; + echo " and empties all missing file information from the database.\n"; echo "\n"; echo " -e, --empty Removes all files from the storage server \n"; - echo " and empties all relevant information from the database.\n\n"; + echo " and empties all relevant information from the database.\n\n"; echo "Storage server: ". $CC_CONFIG["storageDir"] ."\n\n\n"; } function camp_clean_files($p_path) { if (!empty($p_path) && (strlen($p_path) > 4)) { list($dirList,$fileList) = File_Find::maptree($p_path); - + $array_mus; foreach ($fileList as $filepath) { - + if (@substr($filepath, strlen($filepath) - 3) != "xml") { $array_mus[] = $filepath; } } - + foreach ($array_mus as $audio_file) { - + if (@is_link($audio_file) && !@stat($audio_file)) { - + //filesystem clean up. @unlink($audio_file); echo "unlinked $audio_file\n"; @@ -44,31 +44,31 @@ function camp_clean_files($p_path) { echo "unlinked " . $audio_file . ".xml\n"; @rmdir(@dirname($audio_file)); echo "removed dir " . @dirname($audio_file) . "\n"; - + //database clean up. $stored_audio_file = StoredFile::RecallByGunid(@basename($audio_file)); $stored_audio_file->delete(); } - } - + } + } } function camp_remove_files($p_path) { - + if (!empty($p_path) && (strlen($p_path) > 4)) { list($dirList,$fileList) = File_Find::maptree($p_path); - + foreach ($fileList as $filepath) { echo " * Removing $filepath\n"; @unlink($filepath); echo "done.\n"; - } + } foreach ($dirList as $dirpath) { echo " * Removing $dirpath\n"; @rmdir($dirpath); echo "done.\n"; - } + } } } @@ -84,22 +84,14 @@ function camp_empty_db($db) { else { echo " * Skipping: database table ".$CC_CONFIG['prefTable']."\n"; } - if (camp_db_table_exists($CC_CONFIG['treeTable'])) { - echo " * Deleting from database table ".$CC_CONFIG['treeTable']."\n"; - $sql = "DELETE FROM ".$CC_CONFIG['treeTable']; - camp_install_query($sql, false); - } - else { - echo " * Skipping: database table ".$CC_CONFIG['treeTable']."\n"; - } if (camp_db_table_exists($CC_CONFIG['mdataTable'])) { - echo " * Deleting from database table ".$CC_CONFIG['mdataTable']."\n"; + echo " * Deleting from database table ".$CC_CONFIG['mdataTable']."\n"; $sql = "DELETE FROM ".$CC_CONFIG['mdataTable']; camp_install_query($sql, false); } else { echo " * Skipping: database table ".$CC_CONFIG['mdataTable']."\n"; - } + } } } @@ -108,9 +100,9 @@ global $CC_CONFIG; $CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE); $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); - + switch($argv[1]){ - + case '-e': case '--empty': camp_empty_db($CC_DBC); @@ -122,7 +114,7 @@ switch($argv[1]){ break; default: printUsage(); - + } ?> \ No newline at end of file diff --git a/src/modules/storageServer/var/M3uPlaylist.php b/src/modules/storageServer/var/M3uPlaylist.php index 86cc8c1ea..9190a0d40 100644 --- a/src/modules/storageServer/var/M3uPlaylist.php +++ b/src/modules/storageServer/var/M3uPlaylist.php @@ -67,13 +67,11 @@ class M3uPlaylist { * hash relation from filenames to gunids * @param string $plid * playlist gunid - * @param int $parid - * destination folder local id * @param int $subjid * local subject (user) id (id of user doing the import) * @return Playlist */ - function import(&$gb, $aPath, $rPath, &$gunids, $plid, $parid, $subjid=NULL) + function import(&$gb, $aPath, $rPath, &$gunids, $plid, $subjid=NULL) { $path = realpath("$aPath/$rPath"); if (FALSE === $path) { @@ -86,7 +84,7 @@ class M3uPlaylist { return $arr; } require_once("Playlist.php"); - $pl =& Playlist::create($gb, $plid, "imported_M3U", $parid); + $pl =& Playlist::create($gb, $plid, "imported_M3U"); if (PEAR::isError($pl)) { return $pl; } @@ -111,7 +109,7 @@ class M3uPlaylist { case "xml": case "smil": case "m3u": - $acId = $gb->bsImportPlaylistRaw($parid, $gunid, + $acId = $gb->bsImportPlaylistRaw($gunid, $aPath, $uri, $ext, $gunids, $subjid); if (PEAR::isError($acId)) { break; diff --git a/src/modules/storageServer/var/Playlist.php b/src/modules/storageServer/var/Playlist.php index cbb68cc47..09880bb8f 100644 --- a/src/modules/storageServer/var/Playlist.php +++ b/src/modules/storageServer/var/Playlist.php @@ -30,11 +30,9 @@ class Playlist extends StoredFile { * unique id * @param string $fname * name of new file - * @param int $parid - * local object id of parent folder * @return instance of Playlist object */ - public function create(&$gb, $plid, $fname=NULL, $parid=NULL) + public function create(&$gb, $plid, $fname=NULL) { $tmpFname = uniqid(''); $values = array( diff --git a/src/modules/storageServer/var/Renderer.php b/src/modules/storageServer/var/Renderer.php index f5ace8526..947a5d242 100644 --- a/src/modules/storageServer/var/Renderer.php +++ b/src/modules/storageServer/var/Renderer.php @@ -212,10 +212,6 @@ class Renderer $realOgg = $r['realFname']; $owner = $r['owner']; $gunid = $r['gunid']; -// $parid = $gb->_getHomeDirId($owner); -// if (PEAR::isError($parid)) { -// return $parid; -// } $fileName = 'rendered_playlist'; $id = BasicStor::IdFromGunid($gunid); if (PEAR::isError($id)) { diff --git a/src/modules/storageServer/var/SmilPlaylist.php b/src/modules/storageServer/var/SmilPlaylist.php index 9bd8e73c6..dc4ca7f78 100644 --- a/src/modules/storageServer/var/SmilPlaylist.php +++ b/src/modules/storageServer/var/SmilPlaylist.php @@ -43,15 +43,13 @@ class SmilPlaylist { * hash relation from filenames to gunids * @param string $plid * playlist gunid - * @param int $parid - * destination folder local id * @param int $subjid * local subject (user) id (id of user doing the import) * @return Playlist */ - public static function &import(&$gb, $aPath, $rPath, &$gunids, $plid, $parid, $subjid=NULL) + public static function &import(&$gb, $aPath, $rPath, &$gunids, $plid, $subjid=NULL) { - $parr = compact('parid', 'subjid', 'aPath', 'plid', 'rPath'); + $parr = compact('subjid', 'aPath', 'plid', 'rPath'); $path = realpath("$aPath/$rPath"); if (FALSE === $path) { return PEAR::raiseError( @@ -63,7 +61,7 @@ class SmilPlaylist { return $lspl; } require_once("Playlist.php"); - $pl =& Playlist::create($gb, $plid, "imported_SMIL", $parid); + $pl =& Playlist::create($gb, $plid, "imported_SMIL"); if (PEAR::isError($pl)) { return $pl; } @@ -92,7 +90,7 @@ class SmilPlaylist { * @param hasharray $gunids * hash relation from filenames to gunids * @param array $parr - * array of parid, subjid, aPath, plid, rPath + * array of subjid, aPath, plid, rPath * @return string * XML of playlist in Campcaster playlist format */ @@ -239,7 +237,7 @@ class SmilPlaylistAudioElement { case "smil": case "m3u": $type = 'playlist'; - $acId = $gb->bsImportPlaylistRaw($parid, $gunid, + $acId = $gb->bsImportPlaylistRaw($gunid, $aPath, $uri, $ext, $gunids, $subjid); if (PEAR::isError($acId)) { return $r; diff --git a/src/modules/storageServer/var/conf.php b/src/modules/storageServer/var/conf.php index 379bfb0c2..dda82d246 100644 --- a/src/modules/storageServer/var/conf.php +++ b/src/modules/storageServer/var/conf.php @@ -11,7 +11,6 @@ *
AdminsGr
name of admin group *
StationPrefsGr
name of station preferences group *
AllGr
name of 'all users' group - *
TrashName
name of trash folder (subfolder of the storageRoot) *
storageDir
main directory for storing binary media files *
bufferDir
directory for temporary files *
transDir
directory for incomplete transferred files @@ -85,29 +84,24 @@ $CC_CONFIG = array( /* ==================================== aplication-specific configuration */ 'objtypes' => array( - 'RootNode' => array('Folder'), - 'Storage' => array('Folder', 'File', 'Replica'), - 'Folder' => array('Folder', 'File', 'Replica'), + 'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/), 'File' => array(), 'audioclip' => array(), 'playlist' => array(), - 'Replica' => array(), +// 'Replica' => array(), ), 'allowedActions'=> array( - 'RootNode' => array('classes', 'subjects'), - 'Folder' => array('editPrivs', 'write', 'read'), 'File' => array('editPrivs', 'write', 'read'), 'audioclip' => array('editPrivs', 'write', 'read'), 'playlist' => array('editPrivs', 'write', 'read'), - 'Replica' => array('editPrivs', 'write', 'read'), - '_class' => array('editPrivs', 'write', 'read'), +// 'Replica' => array('editPrivs', 'write', 'read'), +// '_class' => array('editPrivs', 'write', 'read'), ), 'allActions' => array( - 'editPrivs', 'write', 'read', 'classes', 'subjects' + 'editPrivs', 'write', 'read', /*'classes',*/ 'subjects' ), /* ============================================== auxiliary configuration */ - 'RootNode' => 'RootNode', 'tmpRootPass' => 'q', /* =================================================== cron configuration */ @@ -126,10 +120,6 @@ $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['playlogTable'] = 'playlog'; diff --git a/src/modules/storageServer/var/install/installMain.php b/src/modules/storageServer/var/install/installMain.php index a3c2da1ea..f1e3ff54f 100644 --- a/src/modules/storageServer/var/install/installMain.php +++ b/src/modules/storageServer/var/install/installMain.php @@ -21,126 +21,6 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { //------------------------------------------------------------------------------ // Install database tables //------------------------------------------------------------------------------ - -if (!camp_db_table_exists($CC_CONFIG['treeTable'])) { - echo " * Creating database table ".$CC_CONFIG['treeTable']."..."; - $sql = "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))"; - camp_install_query($sql, false); - - $CC_DBC->createSequence($CC_CONFIG['treeTable']."_id_seq"); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['treeTable']."_id_idx - ON ".$CC_CONFIG['treeTable']." (id)"; - camp_install_query($sql, false); - - $sql = "CREATE INDEX ".$CC_CONFIG['treeTable']."_name_idx - ON ".$CC_CONFIG['treeTable']." (name)"; - camp_install_query($sql); -} 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']."..."; - $sql = "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)"; - camp_install_query($sql, false); - - $CC_DBC->createSequence($CC_CONFIG['structTable']."_id_seq"); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_rid_idx - ON ".$CC_CONFIG['structTable']." (rid)"; - camp_install_query($sql, false); - - $sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_objid_idx - ON ".$CC_CONFIG['structTable']." (objid)"; - camp_install_query($sql, false); - - $sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_parid_idx - ON ".$CC_CONFIG['structTable']." (parid)"; - camp_install_query($sql, false); - - $sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_level_idx - ON ".$CC_CONFIG['structTable']." (level)"; - camp_install_query($sql, false); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_level_idx - ON ".$CC_CONFIG['structTable']." (objid, level)"; - camp_install_query($sql, false); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_parid_idx - ON ".$CC_CONFIG['structTable']." (objid, parid)"; - camp_install_query($sql); -} 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']."..."; - $sql = "CREATE TABLE ".$CC_CONFIG['classTable']." ( - id int not null PRIMARY KEY, - cname varchar(20))"; - camp_install_query($sql, false); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_id_idx - ON ".$CC_CONFIG['classTable']." (id)"; - camp_install_query($sql, false); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_cname_idx - ON ".$CC_CONFIG['classTable']." (cname)"; - camp_install_query($sql); -} 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']."..."; - $sql = "CREATE TABLE ".$CC_CONFIG['cmembTable']." ( - objid int not null, - cid int not null)"; - camp_install_query($sql, false); - - $sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['cmembTable']."_idx - ON ".$CC_CONFIG['cmembTable']." (objid, cid)"; - camp_install_query($sql); -} 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']."..."; $sql = "CREATE TABLE ".$CC_CONFIG['subjTable']." ( @@ -292,6 +172,15 @@ if (!camp_db_table_exists($CC_CONFIG['filesTable'])) { $sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_md5_idx ON ls_files (md5)"; camp_install_query($sql); + + $sql = "CREATE SEQUENCE file_id_seq + INCREMENT 1 + MINVALUE 1 + MAXVALUE 9223372036854775807 + START 1000000 + CACHE 1"; + camp_install_query($sql); + } else { echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n"; }