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.
This commit is contained in:
parent
37ba68e830
commit
aa9528b9fd
|
@ -9,6 +9,19 @@ ALTER TABLE ls_files
|
||||||
ALTER COLUMN id
|
ALTER COLUMN id
|
||||||
SET DEFAULT NEXTVAL('file_id_seq');
|
SET DEFAULT NEXTVAL('file_id_seq');
|
||||||
|
|
||||||
DROP TABLE ls_struct;
|
DROP TABLE ls_struct CASCADE;
|
||||||
DROP TABLE ls_tree;
|
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;
|
||||||
|
|
||||||
|
|
|
@ -214,84 +214,84 @@ class Alib {
|
||||||
public static function CheckPerm($sid, $action, $oid=NULL)
|
public static function CheckPerm($sid, $action, $oid=NULL)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
global $CC_DBC;
|
// global $CC_DBC;
|
||||||
global $CC_CONFIG;
|
// global $CC_CONFIG;
|
||||||
if (!is_numeric($sid)) {
|
// if (!is_numeric($sid)) {
|
||||||
return FALSE;
|
// return FALSE;
|
||||||
}
|
|
||||||
// if (is_null($oid) or $oid=='') {
|
|
||||||
// $oid = M2tree::GetRootNode();
|
|
||||||
// }
|
// }
|
||||||
// if (PEAR::isError($oid)) {
|
//// if (is_null($oid) or $oid=='') {
|
||||||
// return $oid;
|
//// $oid = M2tree::GetRootNode();
|
||||||
|
//// }
|
||||||
|
//// if (PEAR::isError($oid)) {
|
||||||
|
//// return $oid;
|
||||||
|
//// }
|
||||||
|
// if (!is_numeric($oid)) {
|
||||||
|
// return FALSE;
|
||||||
// }
|
// }
|
||||||
if (!is_numeric($oid)) {
|
// // query construction
|
||||||
return FALSE;
|
// // shortcuts:
|
||||||
}
|
// // p: permTable,
|
||||||
// query construction
|
// // s: subjTable, m smembTable,
|
||||||
// shortcuts:
|
// // t: treeTable ts: structTable,
|
||||||
// p: permTable,
|
// // c: classTable, cm: cmembTable
|
||||||
// s: subjTable, m smembTable,
|
// // main query elements:
|
||||||
// t: treeTable ts: structTable,
|
// $q_flds = "m.level , p.subj, s.login, action, p.type, p.obj";
|
||||||
// c: classTable, cm: cmembTable
|
// $q_from = $CC_CONFIG['permTable']." p ";
|
||||||
// main query elements:
|
// // joins for solving users/groups:
|
||||||
$q_flds = "m.level , p.subj, s.login, action, p.type, p.obj";
|
// $q_join = "LEFT JOIN ".$CC_CONFIG['subjTable']." s ON s.id=p.subj ";
|
||||||
$q_from = $CC_CONFIG['permTable']." p ";
|
// $q_join .= "LEFT JOIN ".$CC_CONFIG['smembTable']." m ON m.gid=p.subj ";
|
||||||
// joins for solving users/groups:
|
// $q_cond = "p.action in('_all', '$action') AND
|
||||||
$q_join = "LEFT JOIN ".$CC_CONFIG['subjTable']." s ON s.id=p.subj ";
|
// (s.id=$sid OR m.uid=$sid) ";
|
||||||
$q_join .= "LEFT JOIN ".$CC_CONFIG['smembTable']." m ON m.gid=p.subj ";
|
// // coalesce -1 for higher priority of nongroup rows:
|
||||||
$q_cond = "p.action in('_all', '$action') AND
|
// // action DESC order for lower priority of '_all':
|
||||||
(s.id=$sid OR m.uid=$sid) ";
|
// $q_ordb = "ORDER BY coalesce(m.level,-1), action DESC, p.type DESC";
|
||||||
// coalesce -1 for higher priority of nongroup rows:
|
// $q_flds0 = $q_flds;
|
||||||
// action DESC order for lower priority of '_all':
|
// $q_from0 = $q_from;
|
||||||
$q_ordb = "ORDER BY coalesce(m.level,-1), action DESC, p.type DESC";
|
// $q_join0 = $q_join;
|
||||||
$q_flds0 = $q_flds;
|
// $q_cond0 = $q_cond;
|
||||||
$q_from0 = $q_from;
|
// $q_ordb0 = $q_ordb;
|
||||||
$q_join0 = $q_join;
|
// // joins for solving object tree:
|
||||||
$q_cond0 = $q_cond;
|
// $q_flds .= ", t.name, ts.level as tlevel";
|
||||||
$q_ordb0 = $q_ordb;
|
// //$q_join .= "LEFT JOIN ".$CC_CONFIG['treeTable']." t ON t.id=p.obj ";
|
||||||
// joins for solving object tree:
|
// //$q_join .= "LEFT JOIN ".$CC_CONFIG['structTable']." ts ON ts.parid=p.obj ";
|
||||||
$q_flds .= ", t.name, ts.level as tlevel";
|
// //$q_cond .= " AND (t.id=$oid OR ts.objid=$oid)";
|
||||||
//$q_join .= "LEFT JOIN ".$CC_CONFIG['treeTable']." t ON t.id=p.obj ";
|
// // action DESC order is hack for lower priority of '_all':
|
||||||
//$q_join .= "LEFT JOIN ".$CC_CONFIG['structTable']." ts ON ts.parid=p.obj ";
|
// $q_ordb = "ORDER BY coalesce(ts.level,0), m.level, action DESC, p.type DESC";
|
||||||
//$q_cond .= " AND (t.id=$oid OR ts.objid=$oid)";
|
// // query by tree:
|
||||||
// action DESC order is hack for lower priority of '_all':
|
// $query1 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb";
|
||||||
$q_ordb = "ORDER BY coalesce(ts.level,0), m.level, action DESC, p.type DESC";
|
// $r1 = $CC_DBC->getAll($query1);
|
||||||
// query by tree:
|
// if (PEAR::isError($r1)) {
|
||||||
$query1 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb";
|
// return($r1);
|
||||||
$r1 = $CC_DBC->getAll($query1);
|
// }
|
||||||
if (PEAR::isError($r1)) {
|
// // if there is row with type='A' on the top => permit
|
||||||
return($r1);
|
// //$AllowedByTree =
|
||||||
}
|
// // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='A');
|
||||||
// if there is row with type='A' on the top => permit
|
// //$DeniedByTree =
|
||||||
//$AllowedByTree =
|
// // (is_array($r1) && count($r1)>0 && $r1[0]['type']=='D');
|
||||||
// (is_array($r1) && count($r1)>0 && $r1[0]['type']=='A');
|
//
|
||||||
//$DeniedByTree =
|
// if (!USE_ALIB_CLASSES) {
|
||||||
// (is_array($r1) && count($r1)>0 && $r1[0]['type']=='D');
|
// return $AllowedbyTree;
|
||||||
|
// }
|
||||||
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 ";
|
||||||
// joins for solving object classes:
|
// $q_join .= "LEFT JOIN ".$CC_CONFIG['cmembTable']." cm ON cm.cid=p.obj ";
|
||||||
$q_flds = $q_flds0.", c.cname ";
|
// $q_cond = $q_cond0." AND (c.id=$oid OR cm.objid=$oid)";
|
||||||
$q_join = $q_join0."LEFT JOIN ".$CC_CONFIG['classTable']." c ON c.id=p.obj ";
|
// $q_ordb = $q_ordb0;
|
||||||
$q_join .= "LEFT JOIN ".$CC_CONFIG['cmembTable']." cm ON cm.cid=p.obj ";
|
// // query by class:
|
||||||
$q_cond = $q_cond0." AND (c.id=$oid OR cm.objid=$oid)";
|
// $query2 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb";
|
||||||
$q_ordb = $q_ordb0;
|
// $r2 = $CC_DBC->getAll($query2);
|
||||||
// query by class:
|
// if (PEAR::isError($r2)) {
|
||||||
$query2 = "SELECT $q_flds FROM $q_from $q_join WHERE $q_cond $q_ordb";
|
// return $r2;
|
||||||
$r2 = $CC_DBC->getAll($query2);
|
// }
|
||||||
if (PEAR::isError($r2)) {
|
// $AllowedByClass =
|
||||||
return $r2;
|
// (is_array($r2) && count($r2)>0 && $r2[0]['type']=='A');
|
||||||
}
|
// // not used now:
|
||||||
$AllowedByClass =
|
// // $DeniedByClass =
|
||||||
(is_array($r2) && count($r2)>0 && $r2[0]['type']=='A');
|
// // (is_array($r2) && count($r2)>0 && $r2[0]['type']=='D');
|
||||||
// not used now:
|
// $res = ($AllowedByTree || (!$DeniedByTree && $AllowedByClass));
|
||||||
// $DeniedByClass =
|
// return $res;
|
||||||
// (is_array($r2) && count($r2)>0 && $r2[0]['type']=='D');
|
|
||||||
$res = ($AllowedByTree || (!$DeniedByTree && $AllowedByClass));
|
|
||||||
return $res;
|
|
||||||
} // fn CheckPerm
|
} // fn CheckPerm
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,10 +306,7 @@ class Alib {
|
||||||
public static function RemoveObj($id)
|
public static function RemoveObj($id)
|
||||||
{
|
{
|
||||||
$r = Alib::RemovePerm(NULL, NULL, $id);
|
$r = Alib::RemovePerm(NULL, NULL, $id);
|
||||||
if (PEAR::isError($r)) {
|
return $r;
|
||||||
return $r;
|
|
||||||
}
|
|
||||||
return ObjClasses::RemoveObj($id);
|
|
||||||
} // fn removeObj
|
} // fn removeObj
|
||||||
|
|
||||||
/* --------------------------------------------------------- users/groups */
|
/* --------------------------------------------------------- users/groups */
|
||||||
|
@ -411,21 +408,14 @@ class Alib {
|
||||||
public static function GetSubjPerms($sid)
|
public static function GetSubjPerms($sid)
|
||||||
{
|
{
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
$sql = "SELECT t.name, t.type as otype , p.*"
|
$sql = "SELECT *"
|
||||||
." FROM ".$CC_CONFIG['permTable']." p, ".$CC_CONFIG['treeTable']." t"
|
." FROM ".$CC_CONFIG['permTable']
|
||||||
." WHERE t.id=p.obj AND p.subj=$sid";
|
." 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);
|
$a1 = $CC_DBC->getAll($sql);
|
||||||
if (PEAR::isError($a1)) {
|
return $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);
|
|
||||||
} // fn GetSubjPerms
|
} // fn GetSubjPerms
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,302 +0,0 @@
|
||||||
<?php
|
|
||||||
//require_once("M2tree.php");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ObjClass class
|
|
||||||
*
|
|
||||||
* A class for 'object classes' handling - i.e. groups of object in tree
|
|
||||||
*
|
|
||||||
* @package Campcaster
|
|
||||||
* @subpackage Alib
|
|
||||||
* @copyright 2010 Sourcefabric O.P.S.
|
|
||||||
* @license http://www.gnu.org/licenses/gpl.txt
|
|
||||||
*/
|
|
||||||
class ObjClasses {
|
|
||||||
|
|
||||||
/* ======================================================= public methods */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add new class of objects
|
|
||||||
*
|
|
||||||
* @param string $cname
|
|
||||||
* @return id|PEAR_Error
|
|
||||||
*/
|
|
||||||
public static function AddClass($cname)
|
|
||||||
{
|
|
||||||
global $CC_CONFIG, $CC_DBC;
|
|
||||||
$id = $CC_DBC->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'.
|
|
||||||
// "<pre>\ncorrect:\n{$test_correct}\n".
|
|
||||||
// "dump:\n{$test_dump}\n</pre>\n");
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
} // class ObjClasses
|
|
||||||
?>
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
require_once("ObjClasses.php");
|
//require_once("ObjClasses.php");
|
||||||
define('ALIBERR_NOTGR', 20);
|
define('ALIBERR_NOTGR', 20);
|
||||||
define('ALIBERR_BADSMEMB', 21);
|
define('ALIBERR_BADSMEMB', 21);
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ class Subjects {
|
||||||
global $CC_CONFIG, $CC_DBC;
|
global $CC_CONFIG, $CC_DBC;
|
||||||
$CC_DBC->query("DELETE FROM ".$CC_CONFIG['subjTable']);
|
$CC_DBC->query("DELETE FROM ".$CC_CONFIG['subjTable']);
|
||||||
$CC_DBC->query("DELETE FROM ".$CC_CONFIG['smembTable']);
|
$CC_DBC->query("DELETE FROM ".$CC_CONFIG['smembTable']);
|
||||||
ObjClasses::DeleteData();
|
//ObjClasses::DeleteData();
|
||||||
} // fn deleteData
|
} // fn deleteData
|
||||||
|
|
||||||
|
|
||||||
|
@ -623,26 +623,26 @@ class Subjects {
|
||||||
*/
|
*/
|
||||||
public function TestData()
|
public function TestData()
|
||||||
{
|
{
|
||||||
$tdata = ObjClasses::TestData();
|
// $tdata = ObjClasses::TestData();
|
||||||
$o['root'] = Subjects::AddSubj('root', 'q');
|
// $o['root'] = Subjects::AddSubj('root', 'q');
|
||||||
$o['test1'] = Subjects::AddSubj('test1', 'a');
|
// $o['test1'] = Subjects::AddSubj('test1', 'a');
|
||||||
$o['test2'] = Subjects::AddSubj('test2', 'a');
|
// $o['test2'] = Subjects::AddSubj('test2', 'a');
|
||||||
$o['test3'] = Subjects::AddSubj('test3', 'a');
|
// $o['test3'] = Subjects::AddSubj('test3', 'a');
|
||||||
$o['test4'] = Subjects::AddSubj('test4', 'a');
|
// $o['test4'] = Subjects::AddSubj('test4', 'a');
|
||||||
$o['test5'] = Subjects::AddSubj('test5', 'a');
|
// $o['test5'] = Subjects::AddSubj('test5', 'a');
|
||||||
$o['gr1'] = Subjects::AddSubj('gr1');
|
// $o['gr1'] = Subjects::AddSubj('gr1');
|
||||||
$o['gr2'] = Subjects::AddSubj('gr2');
|
// $o['gr2'] = Subjects::AddSubj('gr2');
|
||||||
$o['gr3'] = Subjects::AddSubj('gr3');
|
// $o['gr3'] = Subjects::AddSubj('gr3');
|
||||||
$o['gr4'] = Subjects::AddSubj('gr4');
|
// $o['gr4'] = Subjects::AddSubj('gr4');
|
||||||
Subjects::AddSubjectToGroup('test1', 'gr1');
|
// Subjects::AddSubjectToGroup('test1', 'gr1');
|
||||||
Subjects::AddSubjectToGroup('test2', 'gr2');
|
// Subjects::AddSubjectToGroup('test2', 'gr2');
|
||||||
Subjects::AddSubjectToGroup('test3', 'gr3');
|
// Subjects::AddSubjectToGroup('test3', 'gr3');
|
||||||
Subjects::AddSubjectToGroup('test4', 'gr4');
|
// Subjects::AddSubjectToGroup('test4', 'gr4');
|
||||||
Subjects::AddSubjectToGroup('test5', 'gr1');
|
// Subjects::AddSubjectToGroup('test5', 'gr1');
|
||||||
Subjects::AddSubjectToGroup('gr4', 'gr3');
|
// Subjects::AddSubjectToGroup('gr4', 'gr3');
|
||||||
Subjects::AddSubjectToGroup('gr3', 'gr2');
|
// Subjects::AddSubjectToGroup('gr3', 'gr2');
|
||||||
$tdata['subjects'] = $o;
|
// $tdata['subjects'] = $o;
|
||||||
return $tdata;
|
// return $tdata;
|
||||||
} // fn TestData
|
} // fn TestData
|
||||||
|
|
||||||
|
|
||||||
|
@ -652,32 +652,32 @@ class Subjects {
|
||||||
*/
|
*/
|
||||||
public static function Test()
|
public static function Test()
|
||||||
{
|
{
|
||||||
$p = ObjClasses::Test();
|
// $p = ObjClasses::Test();
|
||||||
if (PEAR::isError($p)) {
|
// if (PEAR::isError($p)) {
|
||||||
return $p;
|
// return $p;
|
||||||
}
|
// }
|
||||||
Subjects::DeleteData();
|
// Subjects::DeleteData();
|
||||||
Subjects::TestData();
|
// Subjects::TestData();
|
||||||
$test_correct = "root(0), test1(0), test2(0), test3(0),".
|
// $test_correct = "root(0), test1(0), test2(0), test3(0),".
|
||||||
" test4(0), test5(0), gr1(2), gr2(2), gr3(2), gr4(1)\n";
|
// " test4(0), test5(0), gr1(2), gr2(2), gr3(2), gr4(1)\n";
|
||||||
$test_dump = Subjects::DumpSubjects();
|
// $test_dump = Subjects::DumpSubjects();
|
||||||
Subjects::RemoveSubj('test1');
|
// Subjects::RemoveSubj('test1');
|
||||||
Subjects::RemoveSubj('test3');
|
// Subjects::RemoveSubj('test3');
|
||||||
Subjects::RemoveSubjectFromGroup('test5', 'gr1');
|
// Subjects::RemoveSubjectFromGroup('test5', 'gr1');
|
||||||
Subjects::RemoveSubjectFromGroup('gr3', 'gr2');
|
// Subjects::RemoveSubjectFromGroup('gr3', 'gr2');
|
||||||
$test_correct .= "root(0), test2(0), test4(0), test5(0),".
|
// $test_correct .= "root(0), test2(0), test4(0), test5(0),".
|
||||||
" gr1(0), gr2(1), gr3(1), gr4(1)\n";
|
// " gr1(0), gr2(1), gr3(1), gr4(1)\n";
|
||||||
$test_dump .= Subjects::DumpSubjects();
|
// $test_dump .= Subjects::DumpSubjects();
|
||||||
Subjects::DeleteData();
|
// Subjects::DeleteData();
|
||||||
if ($test_dump == $test_correct) {
|
// if ($test_dump == $test_correct) {
|
||||||
$test_log .= "subj: OK\n";
|
// $test_log .= "subj: OK\n";
|
||||||
return TRUE;
|
// return TRUE;
|
||||||
} else {
|
// } else {
|
||||||
return PEAR::raiseError(
|
// return PEAR::raiseError(
|
||||||
'Subjects::test:', 1, PEAR_ERROR_DIE, '%s'.
|
// 'Subjects::test:', 1, PEAR_ERROR_DIE, '%s'.
|
||||||
"<pre>\ncorrect:\n{$test_correct}\n".
|
// "<pre>\ncorrect:\n{$test_correct}\n".
|
||||||
"dump:\n{$test_dump}\n</pre>\n");
|
// "dump:\n{$test_dump}\n</pre>\n");
|
||||||
}
|
// }
|
||||||
} // fn test
|
} // fn test
|
||||||
|
|
||||||
} // class Subjects
|
} // class Subjects
|
||||||
|
|
|
@ -69,31 +69,28 @@ $CC_CONFIG = array(
|
||||||
#'archiveUrlHost' => 'localhost',
|
#'archiveUrlHost' => 'localhost',
|
||||||
#'archiveUrlPort' => 80,
|
#'archiveUrlPort' => 80,
|
||||||
|
|
||||||
/* ==================================== aplication-specific configuration */
|
/* ==================================== application-specific configuration */
|
||||||
'objtypes' => array(
|
'objtypes' => array(
|
||||||
'RootNode' => array('Folder'),
|
'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/),
|
||||||
'Storage' => array('Folder', 'File', 'Replica'),
|
// 'Folder' => array('Folder', 'File', 'Replica'),
|
||||||
'Folder' => array('Folder', 'File', 'Replica'),
|
|
||||||
'File' => array(),
|
'File' => array(),
|
||||||
'audioclip' => array(),
|
'audioclip' => array(),
|
||||||
'playlist' => array(),
|
'playlist' => array(),
|
||||||
'Replica' => array(),
|
// 'Replica' => array(),
|
||||||
),
|
),
|
||||||
'allowedActions'=> array(
|
'allowedActions'=> array(
|
||||||
'RootNode' => array('classes', 'subjects'),
|
// 'Folder' => array('editPrivs', 'write', 'read'),
|
||||||
'Folder' => array('editPrivs', 'write', 'read'),
|
|
||||||
'File' => array('editPrivs', 'write', 'read'),
|
'File' => array('editPrivs', 'write', 'read'),
|
||||||
'audioclip' => array('editPrivs', 'write', 'read'),
|
'audioclip' => array('editPrivs', 'write', 'read'),
|
||||||
'playlist' => array('editPrivs', 'write', 'read'),
|
'playlist' => array('editPrivs', 'write', 'read'),
|
||||||
'Replica' => array('editPrivs', 'write', 'read'),
|
// 'Replica' => array('editPrivs', 'write', 'read'),
|
||||||
'_class' => array('editPrivs', 'write', 'read'),
|
// '_class' => array('editPrivs', 'write', 'read'),
|
||||||
),
|
),
|
||||||
'allActions' => array(
|
'allActions' => array(
|
||||||
'editPrivs', 'write', 'read', 'classes', 'subjects'
|
'editPrivs', 'write', 'read', /*'classes',*/ 'subjects'
|
||||||
),
|
),
|
||||||
|
|
||||||
/* ============================================== auxiliary configuration */
|
/* ============================================== auxiliary configuration */
|
||||||
'RootNode' => 'RootNode',
|
|
||||||
'tmpRootPass' => 'q',
|
'tmpRootPass' => 'q',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -105,10 +102,6 @@ $CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms';
|
||||||
$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess';
|
$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess';
|
||||||
$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
||||||
$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb';
|
$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['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans';
|
||||||
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
||||||
|
|
||||||
|
|
|
@ -1344,7 +1344,6 @@ class BasicStor {
|
||||||
/* ---------------------------------------------------- redefined methods */
|
/* ---------------------------------------------------- redefined methods */
|
||||||
/**
|
/**
|
||||||
* Get object type by id.
|
* Get object type by id.
|
||||||
* (RootNode, Folder, File, )
|
|
||||||
*
|
*
|
||||||
* @param int $oid
|
* @param int $oid
|
||||||
* Local object id
|
* Local object id
|
||||||
|
@ -1369,7 +1368,7 @@ class BasicStor {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new user with home folder
|
* Add new user
|
||||||
*
|
*
|
||||||
* @param string $login
|
* @param string $login
|
||||||
* @param string $pass
|
* @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
|
* @param string $login
|
||||||
* @return boolean|PEAR_Error
|
* @return boolean|PEAR_Error
|
||||||
|
@ -1699,8 +1698,8 @@ class BasicStor {
|
||||||
$storedFile->delete();
|
$storedFile->delete();
|
||||||
break;
|
break;
|
||||||
case "File":
|
case "File":
|
||||||
case "Folder":
|
// case "Folder":
|
||||||
case "Replica":
|
// case "Replica":
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return PEAR::raiseError(
|
return PEAR::raiseError(
|
||||||
|
|
|
@ -6,37 +6,37 @@ require_once('install/installInit.php');
|
||||||
require_once ('StoredFile.php');
|
require_once ('StoredFile.php');
|
||||||
|
|
||||||
function printUsage() {
|
function printUsage() {
|
||||||
|
|
||||||
global $CC_CONFIG;
|
global $CC_CONFIG;
|
||||||
|
|
||||||
echo "Usage:\n";
|
echo "Usage:\n";
|
||||||
echo " ./CleanStor [OPTION] \n";
|
echo " ./CleanStor [OPTION] \n";
|
||||||
echo "\n";
|
echo "\n";
|
||||||
echo "Options:\n";
|
echo "Options:\n";
|
||||||
echo " -c, --clean Removes all broken links from the storage server\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 "\n";
|
||||||
echo " -e, --empty Removes all files from the storage server \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";
|
echo "Storage server: ". $CC_CONFIG["storageDir"] ."\n\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
function camp_clean_files($p_path) {
|
function camp_clean_files($p_path) {
|
||||||
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
||||||
list($dirList,$fileList) = File_Find::maptree($p_path);
|
list($dirList,$fileList) = File_Find::maptree($p_path);
|
||||||
|
|
||||||
$array_mus;
|
$array_mus;
|
||||||
foreach ($fileList as $filepath) {
|
foreach ($fileList as $filepath) {
|
||||||
|
|
||||||
if (@substr($filepath, strlen($filepath) - 3) != "xml") {
|
if (@substr($filepath, strlen($filepath) - 3) != "xml") {
|
||||||
$array_mus[] = $filepath;
|
$array_mus[] = $filepath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($array_mus as $audio_file) {
|
foreach ($array_mus as $audio_file) {
|
||||||
|
|
||||||
if (@is_link($audio_file) && !@stat($audio_file)) {
|
if (@is_link($audio_file) && !@stat($audio_file)) {
|
||||||
|
|
||||||
//filesystem clean up.
|
//filesystem clean up.
|
||||||
@unlink($audio_file);
|
@unlink($audio_file);
|
||||||
echo "unlinked $audio_file\n";
|
echo "unlinked $audio_file\n";
|
||||||
|
@ -44,31 +44,31 @@ function camp_clean_files($p_path) {
|
||||||
echo "unlinked " . $audio_file . ".xml\n";
|
echo "unlinked " . $audio_file . ".xml\n";
|
||||||
@rmdir(@dirname($audio_file));
|
@rmdir(@dirname($audio_file));
|
||||||
echo "removed dir " . @dirname($audio_file) . "\n";
|
echo "removed dir " . @dirname($audio_file) . "\n";
|
||||||
|
|
||||||
//database clean up.
|
//database clean up.
|
||||||
$stored_audio_file = StoredFile::RecallByGunid(@basename($audio_file));
|
$stored_audio_file = StoredFile::RecallByGunid(@basename($audio_file));
|
||||||
$stored_audio_file->delete();
|
$stored_audio_file->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function camp_remove_files($p_path) {
|
function camp_remove_files($p_path) {
|
||||||
|
|
||||||
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
if (!empty($p_path) && (strlen($p_path) > 4)) {
|
||||||
list($dirList,$fileList) = File_Find::maptree($p_path);
|
list($dirList,$fileList) = File_Find::maptree($p_path);
|
||||||
|
|
||||||
foreach ($fileList as $filepath) {
|
foreach ($fileList as $filepath) {
|
||||||
echo " * Removing $filepath\n";
|
echo " * Removing $filepath\n";
|
||||||
@unlink($filepath);
|
@unlink($filepath);
|
||||||
echo "done.\n";
|
echo "done.\n";
|
||||||
}
|
}
|
||||||
foreach ($dirList as $dirpath) {
|
foreach ($dirList as $dirpath) {
|
||||||
echo " * Removing $dirpath\n";
|
echo " * Removing $dirpath\n";
|
||||||
@rmdir($dirpath);
|
@rmdir($dirpath);
|
||||||
echo "done.\n";
|
echo "done.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,22 +84,14 @@ function camp_empty_db($db) {
|
||||||
else {
|
else {
|
||||||
echo " * Skipping: database table ".$CC_CONFIG['prefTable']."\n";
|
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'])) {
|
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'];
|
$sql = "DELETE FROM ".$CC_CONFIG['mdataTable'];
|
||||||
camp_install_query($sql, false);
|
camp_install_query($sql, false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
echo " * Skipping: database table ".$CC_CONFIG['mdataTable']."\n";
|
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 = DB::connect($CC_CONFIG['dsn'], TRUE);
|
||||||
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||||
|
|
||||||
switch($argv[1]){
|
switch($argv[1]){
|
||||||
|
|
||||||
case '-e':
|
case '-e':
|
||||||
case '--empty':
|
case '--empty':
|
||||||
camp_empty_db($CC_DBC);
|
camp_empty_db($CC_DBC);
|
||||||
|
@ -122,7 +114,7 @@ switch($argv[1]){
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printUsage();
|
printUsage();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -67,13 +67,11 @@ class M3uPlaylist {
|
||||||
* hash relation from filenames to gunids
|
* hash relation from filenames to gunids
|
||||||
* @param string $plid
|
* @param string $plid
|
||||||
* playlist gunid
|
* playlist gunid
|
||||||
* @param int $parid
|
|
||||||
* destination folder local id
|
|
||||||
* @param int $subjid
|
* @param int $subjid
|
||||||
* local subject (user) id (id of user doing the import)
|
* local subject (user) id (id of user doing the import)
|
||||||
* @return Playlist
|
* @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");
|
$path = realpath("$aPath/$rPath");
|
||||||
if (FALSE === $path) {
|
if (FALSE === $path) {
|
||||||
|
@ -86,7 +84,7 @@ class M3uPlaylist {
|
||||||
return $arr;
|
return $arr;
|
||||||
}
|
}
|
||||||
require_once("Playlist.php");
|
require_once("Playlist.php");
|
||||||
$pl =& Playlist::create($gb, $plid, "imported_M3U", $parid);
|
$pl =& Playlist::create($gb, $plid, "imported_M3U");
|
||||||
if (PEAR::isError($pl)) {
|
if (PEAR::isError($pl)) {
|
||||||
return $pl;
|
return $pl;
|
||||||
}
|
}
|
||||||
|
@ -111,7 +109,7 @@ class M3uPlaylist {
|
||||||
case "xml":
|
case "xml":
|
||||||
case "smil":
|
case "smil":
|
||||||
case "m3u":
|
case "m3u":
|
||||||
$acId = $gb->bsImportPlaylistRaw($parid, $gunid,
|
$acId = $gb->bsImportPlaylistRaw($gunid,
|
||||||
$aPath, $uri, $ext, $gunids, $subjid);
|
$aPath, $uri, $ext, $gunids, $subjid);
|
||||||
if (PEAR::isError($acId)) {
|
if (PEAR::isError($acId)) {
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -30,11 +30,9 @@ class Playlist extends StoredFile {
|
||||||
* unique id
|
* unique id
|
||||||
* @param string $fname
|
* @param string $fname
|
||||||
* name of new file
|
* name of new file
|
||||||
* @param int $parid
|
|
||||||
* local object id of parent folder
|
|
||||||
* @return instance of Playlist object
|
* @return instance of Playlist object
|
||||||
*/
|
*/
|
||||||
public function create(&$gb, $plid, $fname=NULL, $parid=NULL)
|
public function create(&$gb, $plid, $fname=NULL)
|
||||||
{
|
{
|
||||||
$tmpFname = uniqid('');
|
$tmpFname = uniqid('');
|
||||||
$values = array(
|
$values = array(
|
||||||
|
|
|
@ -212,10 +212,6 @@ class Renderer
|
||||||
$realOgg = $r['realFname'];
|
$realOgg = $r['realFname'];
|
||||||
$owner = $r['owner'];
|
$owner = $r['owner'];
|
||||||
$gunid = $r['gunid'];
|
$gunid = $r['gunid'];
|
||||||
// $parid = $gb->_getHomeDirId($owner);
|
|
||||||
// if (PEAR::isError($parid)) {
|
|
||||||
// return $parid;
|
|
||||||
// }
|
|
||||||
$fileName = 'rendered_playlist';
|
$fileName = 'rendered_playlist';
|
||||||
$id = BasicStor::IdFromGunid($gunid);
|
$id = BasicStor::IdFromGunid($gunid);
|
||||||
if (PEAR::isError($id)) {
|
if (PEAR::isError($id)) {
|
||||||
|
|
|
@ -43,15 +43,13 @@ class SmilPlaylist {
|
||||||
* hash relation from filenames to gunids
|
* hash relation from filenames to gunids
|
||||||
* @param string $plid
|
* @param string $plid
|
||||||
* playlist gunid
|
* playlist gunid
|
||||||
* @param int $parid
|
|
||||||
* destination folder local id
|
|
||||||
* @param int $subjid
|
* @param int $subjid
|
||||||
* local subject (user) id (id of user doing the import)
|
* local subject (user) id (id of user doing the import)
|
||||||
* @return Playlist
|
* @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");
|
$path = realpath("$aPath/$rPath");
|
||||||
if (FALSE === $path) {
|
if (FALSE === $path) {
|
||||||
return PEAR::raiseError(
|
return PEAR::raiseError(
|
||||||
|
@ -63,7 +61,7 @@ class SmilPlaylist {
|
||||||
return $lspl;
|
return $lspl;
|
||||||
}
|
}
|
||||||
require_once("Playlist.php");
|
require_once("Playlist.php");
|
||||||
$pl =& Playlist::create($gb, $plid, "imported_SMIL", $parid);
|
$pl =& Playlist::create($gb, $plid, "imported_SMIL");
|
||||||
if (PEAR::isError($pl)) {
|
if (PEAR::isError($pl)) {
|
||||||
return $pl;
|
return $pl;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +90,7 @@ class SmilPlaylist {
|
||||||
* @param hasharray $gunids
|
* @param hasharray $gunids
|
||||||
* hash relation from filenames to gunids
|
* hash relation from filenames to gunids
|
||||||
* @param array $parr
|
* @param array $parr
|
||||||
* array of parid, subjid, aPath, plid, rPath
|
* array of subjid, aPath, plid, rPath
|
||||||
* @return string
|
* @return string
|
||||||
* XML of playlist in Campcaster playlist format
|
* XML of playlist in Campcaster playlist format
|
||||||
*/
|
*/
|
||||||
|
@ -239,7 +237,7 @@ class SmilPlaylistAudioElement {
|
||||||
case "smil":
|
case "smil":
|
||||||
case "m3u":
|
case "m3u":
|
||||||
$type = 'playlist';
|
$type = 'playlist';
|
||||||
$acId = $gb->bsImportPlaylistRaw($parid, $gunid,
|
$acId = $gb->bsImportPlaylistRaw($gunid,
|
||||||
$aPath, $uri, $ext, $gunids, $subjid);
|
$aPath, $uri, $ext, $gunids, $subjid);
|
||||||
if (PEAR::isError($acId)) {
|
if (PEAR::isError($acId)) {
|
||||||
return $r;
|
return $r;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
* <dt>AdminsGr <dd>name of admin group
|
* <dt>AdminsGr <dd>name of admin group
|
||||||
* <dt>StationPrefsGr <dd>name of station preferences group
|
* <dt>StationPrefsGr <dd>name of station preferences group
|
||||||
* <dt>AllGr <dd>name of 'all users' group
|
* <dt>AllGr <dd>name of 'all users' group
|
||||||
* <dt>TrashName <dd>name of trash folder (subfolder of the storageRoot)
|
|
||||||
* <dt>storageDir <dd>main directory for storing binary media files
|
* <dt>storageDir <dd>main directory for storing binary media files
|
||||||
* <dt>bufferDir <dd>directory for temporary files
|
* <dt>bufferDir <dd>directory for temporary files
|
||||||
* <dt>transDir <dd>directory for incomplete transferred files
|
* <dt>transDir <dd>directory for incomplete transferred files
|
||||||
|
@ -85,29 +84,24 @@ $CC_CONFIG = array(
|
||||||
|
|
||||||
/* ==================================== aplication-specific configuration */
|
/* ==================================== aplication-specific configuration */
|
||||||
'objtypes' => array(
|
'objtypes' => array(
|
||||||
'RootNode' => array('Folder'),
|
'Storage' => array(/*'Folder',*/ 'File' /*, 'Replica'*/),
|
||||||
'Storage' => array('Folder', 'File', 'Replica'),
|
|
||||||
'Folder' => array('Folder', 'File', 'Replica'),
|
|
||||||
'File' => array(),
|
'File' => array(),
|
||||||
'audioclip' => array(),
|
'audioclip' => array(),
|
||||||
'playlist' => array(),
|
'playlist' => array(),
|
||||||
'Replica' => array(),
|
// 'Replica' => array(),
|
||||||
),
|
),
|
||||||
'allowedActions'=> array(
|
'allowedActions'=> array(
|
||||||
'RootNode' => array('classes', 'subjects'),
|
|
||||||
'Folder' => array('editPrivs', 'write', 'read'),
|
|
||||||
'File' => array('editPrivs', 'write', 'read'),
|
'File' => array('editPrivs', 'write', 'read'),
|
||||||
'audioclip' => array('editPrivs', 'write', 'read'),
|
'audioclip' => array('editPrivs', 'write', 'read'),
|
||||||
'playlist' => array('editPrivs', 'write', 'read'),
|
'playlist' => array('editPrivs', 'write', 'read'),
|
||||||
'Replica' => array('editPrivs', 'write', 'read'),
|
// 'Replica' => array('editPrivs', 'write', 'read'),
|
||||||
'_class' => array('editPrivs', 'write', 'read'),
|
// '_class' => array('editPrivs', 'write', 'read'),
|
||||||
),
|
),
|
||||||
'allActions' => array(
|
'allActions' => array(
|
||||||
'editPrivs', 'write', 'read', 'classes', 'subjects'
|
'editPrivs', 'write', 'read', /*'classes',*/ 'subjects'
|
||||||
),
|
),
|
||||||
|
|
||||||
/* ============================================== auxiliary configuration */
|
/* ============================================== auxiliary configuration */
|
||||||
'RootNode' => 'RootNode',
|
|
||||||
'tmpRootPass' => 'q',
|
'tmpRootPass' => 'q',
|
||||||
|
|
||||||
/* =================================================== cron configuration */
|
/* =================================================== cron configuration */
|
||||||
|
@ -126,10 +120,6 @@ $CC_CONFIG['permTable'] = $CC_CONFIG['tblNamePrefix'].'perms';
|
||||||
$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess';
|
$CC_CONFIG['sessTable'] = $CC_CONFIG['tblNamePrefix'].'sess';
|
||||||
$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
$CC_CONFIG['subjTable'] = $CC_CONFIG['tblNamePrefix'].'subjs';
|
||||||
$CC_CONFIG['smembTable'] = $CC_CONFIG['tblNamePrefix'].'smemb';
|
$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['transTable'] = $CC_CONFIG['tblNamePrefix'].'trans';
|
||||||
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
$CC_CONFIG['prefTable'] = $CC_CONFIG['tblNamePrefix'].'pref';
|
||||||
$CC_CONFIG['playlogTable'] = 'playlog';
|
$CC_CONFIG['playlogTable'] = 'playlog';
|
||||||
|
|
|
@ -21,126 +21,6 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Install database tables
|
// 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'])) {
|
if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
|
||||||
echo " * Creating database table ".$CC_CONFIG['subjTable']."...";
|
echo " * Creating database table ".$CC_CONFIG['subjTable']."...";
|
||||||
$sql = "CREATE 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
|
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_md5_idx
|
||||||
ON ls_files (md5)";
|
ON ls_files (md5)";
|
||||||
camp_install_query($sql);
|
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 {
|
} else {
|
||||||
echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n";
|
echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue