Fixed database initialization script so that it still works when run multiple times. Previously the StorageRoot would be created again for each installation. Added more verbose output about the database initialization. Added checks for is_null() on the return value for StoredFile::Recall*() functions. Do not create the "public" virtual subfolder when creating a new user. Create the root user in the same way that normal users are created.
This commit is contained in:
parent
5c1a858287
commit
2da8161fb7
|
@ -326,8 +326,8 @@ class M2tree {
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
global $CC_DBC;
|
||||
if ( ($name == '') && is_null($parId)) {
|
||||
$name = $CC_CONFIG['RootNode'];
|
||||
if ($name == '') {
|
||||
return null;
|
||||
}
|
||||
$escapedName = pg_escape_string($name);
|
||||
$parcond = (is_null($parId) ? "parid is null" :
|
||||
|
|
|
@ -27,7 +27,7 @@ class Subjects {
|
|||
/* ======================================================= public methods */
|
||||
|
||||
/**
|
||||
* Add new subject
|
||||
* Add new subject (a.k.a. "user")
|
||||
*
|
||||
* @param string $p_login
|
||||
* @param string $p_pass
|
||||
|
@ -359,6 +359,9 @@ class Subjects {
|
|||
public static function IsGroup($gid)
|
||||
{
|
||||
global $CC_CONFIG, $CC_DBC;
|
||||
if (empty($gid)) {
|
||||
return FALSE;
|
||||
}
|
||||
$sql = "SELECT type FROM ".$CC_CONFIG['subjTable']
|
||||
." WHERE id='$gid'";
|
||||
$r = $CC_DBC->getOne($sql);
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?php
|
||||
header("Content-type: text/html; charset=utf-8");
|
||||
include 'auth.inc.php';
|
||||
include('auth.inc.php');
|
||||
|
||||
require_once dirname(__FILE__)."/includes/camp_html.php";
|
||||
require_once dirname(__FILE__)."/includes/Input.php";
|
||||
require_once 'Localizer.php';
|
||||
require_once(dirname(__FILE__)."/includes/camp_html.php");
|
||||
require_once(dirname(__FILE__)."/includes/Input.php");
|
||||
require_once('Localizer.php');
|
||||
|
||||
global $g_translationStrings;
|
||||
global $g_localizerConfig;
|
||||
|
@ -28,60 +28,60 @@ if (isset($_REQUEST['TOL_Language'])){
|
|||
//echo "Action: $action<br>";
|
||||
|
||||
if ($g_localizerConfig['MAINTENANCE']) {
|
||||
include 'maintenance.php';
|
||||
include 'maintenance.php';
|
||||
}
|
||||
|
||||
|
||||
switch ($action) {
|
||||
case 'translate':
|
||||
require_once("translate.php");
|
||||
case 'translate':
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
case 'save_translation':
|
||||
$targetLanguageId = Input::Get('localizer_target_language');
|
||||
$data = Input::Get('data', 'array');
|
||||
Localizer::ModifyStrings($prefix, $targetLanguageId, $data);
|
||||
// Localizer strings are changed -> reload files
|
||||
Localizer::LoadLanguageFiles('globals', $langCode);
|
||||
Localizer::LoadLanguageFiles('localizer', $langCode);
|
||||
require_once("translate.php");
|
||||
Localizer::LoadLanguageFiles('localizer', $langCode);
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
case 'remove_string':
|
||||
$deleteMe = Input::Get('string', 'string');
|
||||
Localizer::RemoveString($prefix, $deleteMe);
|
||||
require_once("translate.php");
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
case 'move_string':
|
||||
$pos1 = Input::Get('pos1', 'int');
|
||||
$pos2 = Input::Get('pos2', 'int');
|
||||
Localizer::MoveString($prefix, $pos1, $pos2);
|
||||
require_once("translate.php");
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
case 'add_missing_translation_strings':
|
||||
$missingStrings = Localizer::FindMissingStrings($prefix);
|
||||
if (count($missingStrings) > 0) {
|
||||
Localizer::AddStringAtPosition($prefix, 0, $missingStrings);
|
||||
}
|
||||
require_once("translate.php");
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
case 'delete_unused_translation_strings':
|
||||
$unusedStrings = Localizer::FindUnusedStrings($prefix);
|
||||
if (count($unusedStrings) > 0) {
|
||||
Localizer::RemoveString($prefix, $unusedStrings);
|
||||
}
|
||||
require_once("translate.php");
|
||||
require_once("translate.php");
|
||||
translationForm($_REQUEST);
|
||||
break;
|
||||
|
||||
|
||||
//case 'add_string':
|
||||
// $pos = Input::Get('pos');
|
||||
// if ($pos == 'begin') {
|
||||
|
@ -100,7 +100,7 @@ switch ($action) {
|
|||
// }
|
||||
// }
|
||||
// // skip if all was unset above
|
||||
// if (count($_REQUEST['newKey'])) {
|
||||
// if (count($_REQUEST['newKey'])) {
|
||||
// Localizer::AddStringAtPosition($base, $directory, $pos, $_REQUEST['newKey']);
|
||||
// }
|
||||
//
|
||||
|
|
|
@ -97,7 +97,8 @@ class uiPlaylist
|
|||
}
|
||||
return FALSE;
|
||||
}
|
||||
if (($userid = $this->Base->gb->playlistIsAvailable($plid, $this->Base->sessid)) !== TRUE) {
|
||||
$userid = $this->Base->gb->playlistIsAvailable($plid, $this->Base->sessid);
|
||||
if ($userid !== TRUE) {
|
||||
if (UI_WARNING) {
|
||||
$this->Base->_retMsg('Playlist has been locked by "$1".', Subjects::GetSubjName($userid));
|
||||
}
|
||||
|
|
|
@ -89,7 +89,9 @@ class uiSubjects
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (PEAR::isError($res = $this->Base->gb->addSubj($request['login'], ($request['passwd']==='' ? NULL : $request['passwd'])))) {
|
||||
$tmpPassword = $request['passwd']==='' ? NULL : $request['passwd'];
|
||||
$res = $this->Base->gb->addSubj($request['login'], $tmpPassword);
|
||||
if (PEAR::isError($res)) {
|
||||
$this->Base->_retMsg($res->getMessage());
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class AccessRecur {
|
|||
}
|
||||
$plRes = $r;
|
||||
$r = StoredFile::RecallByGunid($plid);
|
||||
if (PEAR::isError($r)) {
|
||||
if (is_null($r) || PEAR::isError($r)) {
|
||||
return $r;
|
||||
}
|
||||
$ac = $r;
|
||||
|
|
|
@ -302,7 +302,7 @@ class Backup
|
|||
$gunid = $item['gunid'];
|
||||
// get a stored file object of this gunid
|
||||
$sf = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($sf)) {
|
||||
if (is_null($sf) || PEAR::isError($sf)) {
|
||||
return $sf;
|
||||
}
|
||||
$lid = BasicStor::IdFromGunid($gunid);
|
||||
|
|
|
@ -129,7 +129,7 @@ class BasicStor {
|
|||
case "playlist":
|
||||
case "webstream":
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
// catch nonerror exception:
|
||||
//if($storedFile->getCode() != GBERR_FOBJNEX)
|
||||
return $storedFile;
|
||||
|
@ -233,7 +233,7 @@ class BasicStor {
|
|||
public function bsReplaceFile($id, $localFilePath, $metadataFilePath, $mdataLoc='file')
|
||||
{
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (!empty($metadataFilePath) &&
|
||||
|
@ -280,7 +280,7 @@ class BasicStor {
|
|||
case "playlist":
|
||||
case "webstream":
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (is_null($did)) {
|
||||
|
@ -514,7 +514,7 @@ class BasicStor {
|
|||
public function bsOpenDownload($id, $part='media', $parent='0')
|
||||
{
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$gunid = $storedFile->gunid;
|
||||
|
@ -666,7 +666,7 @@ class BasicStor {
|
|||
} else {
|
||||
// Remember the MD5 sum
|
||||
$storedFile = StoredFile::RecallByToken($token);
|
||||
if (!PEAR::isError($storedFile)) {
|
||||
if (!is_null($storedFile) && !PEAR::isError($storedFile)) {
|
||||
$storedFile->setMd5($md5sum);
|
||||
} else {
|
||||
# $error = $storedFile;
|
||||
|
@ -800,7 +800,7 @@ class BasicStor {
|
|||
public function bsReplaceMetadata($id, $mdata, $mdataLoc='file')
|
||||
{
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
return $storedFile->setMetadata($mdata, $mdataLoc);
|
||||
|
@ -817,7 +817,7 @@ class BasicStor {
|
|||
public function bsGetMetadata($id)
|
||||
{
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
return $storedFile->getMetadata();
|
||||
|
@ -902,7 +902,7 @@ class BasicStor {
|
|||
return null;
|
||||
}
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile) || is_null($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (is_null($category)) {
|
||||
|
@ -948,7 +948,7 @@ class BasicStor {
|
|||
$storedFile =& $id;
|
||||
} else {
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
}
|
||||
|
@ -1011,7 +1011,7 @@ class BasicStor {
|
|||
$values = array($values);
|
||||
}
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
foreach ($values as $category => $oneValue) {
|
||||
|
@ -1023,7 +1023,7 @@ class BasicStor {
|
|||
}
|
||||
if ($regen) {
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$r = $storedFile->md->regenerateXmlFile();
|
||||
|
@ -1149,7 +1149,7 @@ class BasicStor {
|
|||
$gunids = array();
|
||||
foreach ($plids as $plid) {
|
||||
$pl = StoredFile::RecallByGunid($plid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
if ($withContent) {
|
||||
|
@ -1177,7 +1177,7 @@ class BasicStor {
|
|||
}
|
||||
foreach ($gunids as $i => $it) {
|
||||
$storedFile = StoredFile::RecallByGunid($it['gunid']);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$MDfname = $storedFile->md->getFileName();
|
||||
|
@ -1502,7 +1502,7 @@ class BasicStor {
|
|||
public function bsAnalyzeFile($id)
|
||||
{
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$ia = $storedFile->analyzeFile();
|
||||
|
@ -1586,6 +1586,9 @@ class BasicStor {
|
|||
} else {
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
}
|
||||
if (is_null($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (PEAR::isError($storedFile)) {
|
||||
// catch some exceptions
|
||||
switch ($storedFile->getCode()) {
|
||||
|
@ -1649,7 +1652,7 @@ class BasicStor {
|
|||
public function addSubj($login, $pass=NULL, $realname='')
|
||||
{
|
||||
global $CC_CONFIG;
|
||||
$uid = Subjects::addSubj($login, $pass, $realname);
|
||||
$uid = Subjects::AddSubj($login, $pass, $realname);
|
||||
if (PEAR::isError($uid)) {
|
||||
return $uid;
|
||||
}
|
||||
|
@ -1671,22 +1674,22 @@ class BasicStor {
|
|||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$pfid = BasicStor::bsCreateFolder($fid, 'public');
|
||||
if (PEAR::isError($pfid)) {
|
||||
return $pfid;
|
||||
}
|
||||
$res = Alib::AddPerm($uid, '_all', $pfid, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$allGrId = Subjects::GetSubjId($CC_CONFIG['AllGr']);
|
||||
if (PEAR::isError($allGrId)) {
|
||||
return $allGrId;
|
||||
}
|
||||
$res = Alib::AddPerm($allGrId, 'read', $pfid, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
//$pfid = BasicStor::bsCreateFolder($fid, 'public');
|
||||
//if (PEAR::isError($pfid)) {
|
||||
// return $pfid;
|
||||
//}
|
||||
//$res = Alib::AddPerm($uid, '_all', $pfid, 'A');
|
||||
//if (PEAR::isError($res)) {
|
||||
// return $res;
|
||||
//}
|
||||
//$allGrId = Subjects::GetSubjId($CC_CONFIG['AllGr']);
|
||||
//if (PEAR::isError($allGrId)) {
|
||||
// return $allGrId;
|
||||
//}
|
||||
//$res = Alib::AddPerm($allGrId, 'read', $pfid, 'A');
|
||||
//if (PEAR::isError($res)) {
|
||||
// return $res;
|
||||
//}
|
||||
}
|
||||
}
|
||||
return $uid;
|
||||
|
@ -1959,7 +1962,7 @@ class BasicStor {
|
|||
}
|
||||
}
|
||||
$storedFile = StoredFile::RecallByGunid($p_playlistId);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$state = $storedFile->getState();
|
||||
|
@ -1986,7 +1989,7 @@ class BasicStor {
|
|||
public function isEdited($p_playlistId)
|
||||
{
|
||||
$storedFile = StoredFile::RecallByGunid($p_playlistId);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (!$storedFile->isEdited($p_playlistId)) {
|
||||
|
@ -2016,7 +2019,7 @@ class BasicStor {
|
|||
case "playlist":
|
||||
case "webstream":
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$ac2 = StoredFile::CopyOf($storedFile, $nid);
|
||||
|
@ -2043,7 +2046,7 @@ class BasicStor {
|
|||
case "playlist":
|
||||
case "webstream":
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if ($storedFile->isEdited()) {
|
||||
|
@ -2066,8 +2069,7 @@ class BasicStor {
|
|||
|
||||
|
||||
/**
|
||||
* Optionaly remove virtual file with the same name and add new one.<br>
|
||||
* Redefined from parent class.
|
||||
* Add a virtual file.
|
||||
*
|
||||
* @return int
|
||||
* Database ID of the object.
|
||||
|
@ -2078,7 +2080,6 @@ class BasicStor {
|
|||
if (PEAR::isError($exid)) {
|
||||
return $exid;
|
||||
}
|
||||
//if(!is_null($exid)){ BasicStor::RemoveObj($exid); }
|
||||
$name2 = $name;
|
||||
for ( ;
|
||||
$xid = M2tree::GetObjId($name2, $parid),
|
||||
|
@ -2333,93 +2334,117 @@ class BasicStor {
|
|||
{
|
||||
global $CC_CONFIG;
|
||||
$this->rootId = M2tree::GetRootNode();
|
||||
$this->storId = BasicStor::AddObj('StorageRoot', 'Folder', $this->rootId);
|
||||
$this->wd = $this->storId;
|
||||
|
||||
if (!Subjects::GetSubjId('root')) {
|
||||
if ($p_verbose) {
|
||||
echo " * Creating user 'root'...";
|
||||
}
|
||||
// Create user 'root'.
|
||||
$rootUid = Subjects::AddSubj('root', $CC_CONFIG['tmpRootPass']);
|
||||
$res = Alib::AddPerm($rootUid, '_all', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$res = Alib::AddPerm($rootUid, 'subjects', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$allid = Subjects::AddSubj($CC_CONFIG['AllGr']);
|
||||
if (PEAR::isError($allid)) {
|
||||
return $allid;
|
||||
}
|
||||
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 = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
|
||||
if (PEAR::isError($r)) {
|
||||
return $r;
|
||||
}
|
||||
$res = Alib::AddPerm($admid, '_all', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
if ($p_verbose) {
|
||||
echo "done.\n";
|
||||
}
|
||||
} elseif ($p_verbose) {
|
||||
echo " * Skipping: user 'root' already exists.\n";
|
||||
}
|
||||
if ($p_verbose) {
|
||||
echo " * Creating storage root directory...";
|
||||
}
|
||||
$fid = BasicStor::bsCreateFolder($this->storId, 'root');
|
||||
if (PEAR::isError($fid)) {
|
||||
return $fid;
|
||||
}
|
||||
if ($p_verbose) {
|
||||
// Check if the StorageRoot already exists, if not, create it.
|
||||
$storageRootId = M2tree::GetObjId('StorageRoot', $this->rootId);
|
||||
if (is_null($storageRootId)) {
|
||||
echo " * Creating 'StorageRoot' node...";
|
||||
$this->storId = BasicStor::AddObj('StorageRoot', 'Folder', $this->rootId);
|
||||
$this->wd = $this->storId;
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: StorageRoot already exists.\n";
|
||||
}
|
||||
if ($CC_CONFIG['useTrash']) {
|
||||
if ($p_verbose) {
|
||||
echo " * Creating trashcan...";
|
||||
}
|
||||
$tfid = BasicStor::bsCreateFolder($this->storId, $CC_CONFIG["TrashName"]);
|
||||
if (PEAR::isError($tfid)) {
|
||||
return $tfid;
|
||||
}
|
||||
if ($p_verbose) {
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
if (!$CC_CONFIG['isArchive']) {
|
||||
if (!Subjects::GetSubjId('scheduler')) {
|
||||
if ($p_verbose) {
|
||||
echo " * Creating user 'scheduler'...";
|
||||
|
||||
// Create the Admin group
|
||||
if (!empty($CC_CONFIG['AdminsGr'])) {
|
||||
if (!Subjects::GetSubjId($CC_CONFIG['AdminsGr'])) {
|
||||
echo " * Creating group '".$CC_CONFIG['AdminsGr']."'...";
|
||||
// Add the admin group
|
||||
$admid = Subjects::AddSubj($CC_CONFIG['AdminsGr']);
|
||||
if (PEAR::isError($admid)) {
|
||||
return $admid;
|
||||
}
|
||||
|
||||
// Add the "all" permission to the "admin" group
|
||||
$res = Alib::AddPerm($admid, '_all', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: group already exists: '".$CC_CONFIG['AdminsGr']."'\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Add the "all" group
|
||||
if (!empty($CC_CONFIG['AllGr'])) {
|
||||
if (!Subjects::GetSubjId($CC_CONFIG['AllGr'])) {
|
||||
echo " * Creating group '".$CC_CONFIG['AllGr']."'...";
|
||||
$allid = Subjects::AddSubj($CC_CONFIG['AllGr']);
|
||||
if (PEAR::isError($allid)) {
|
||||
return $allid;
|
||||
}
|
||||
|
||||
// Add the "read" permission to the "all" group.
|
||||
Alib::AddPerm($allid, 'read', $this->rootId, 'A');
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: group already exists: '".$CC_CONFIG['AllGr']."'\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Add the "Station Preferences" group
|
||||
if (!empty($CC_CONFIG['StationPrefsGr'])) {
|
||||
if (!Subjects::GetSubjId('scheduler')) {
|
||||
echo " * Creating group '".$CC_CONFIG['StationPrefsGr']."'...";
|
||||
$stPrefGr = Subjects::AddSubj($CC_CONFIG['StationPrefsGr']);
|
||||
if (PEAR::isError($stPrefGr)) {
|
||||
return $stPrefGr;
|
||||
}
|
||||
Subjects::AddSubjectToGroup('root', $CC_CONFIG['StationPrefsGr']);
|
||||
// Create the user named 'scheduler'.
|
||||
Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
|
||||
$res = Alib::AddPerm($rootUid, 'read', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
|
||||
if ($p_verbose) {
|
||||
echo "done.\n";
|
||||
}
|
||||
} else if ($p_verbose) {
|
||||
echo " * Skipping: user 'scheduler' already exists.\n";
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: group already exists: '".$CC_CONFIG['StationPrefsGr']."'\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Add the root user if it doesnt exist yet.
|
||||
$rootUid = Subjects::GetSubjId('root');
|
||||
if (!$rootUid) {
|
||||
echo " * Creating user 'root'...";
|
||||
$rootUid = $this->addSubj("root", $CC_CONFIG['tmpRootPass']);
|
||||
if (PEAR::isError($rootUid)) {
|
||||
return $rootUid;
|
||||
}
|
||||
|
||||
// Add root user to the admin group
|
||||
$r = Subjects::AddSubjectToGroup('root', $CC_CONFIG['AdminsGr']);
|
||||
if (PEAR::isError($r)) {
|
||||
return $r;
|
||||
}
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: user already exists: 'root'\n";
|
||||
}
|
||||
|
||||
if (!empty($CC_CONFIG['TrashName'])) {
|
||||
$trashId = M2tree::GetObjId($CC_CONFIG['TrashName'], $this->storId);
|
||||
if (!$trashId) {
|
||||
echo " * Creating trash can...";
|
||||
$tfid = BasicStor::bsCreateFolder($this->storId, $CC_CONFIG["TrashName"]);
|
||||
if (PEAR::isError($tfid)) {
|
||||
return $tfid;
|
||||
}
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: trash can already exists.\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Create the user named 'scheduler'.
|
||||
if (!Subjects::GetSubjId('scheduler')) {
|
||||
echo " * Creating user 'scheduler'...";
|
||||
Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
|
||||
$res = Alib::AddPerm($rootUid, 'read', $this->rootId, 'A');
|
||||
if (PEAR::isError($res)) {
|
||||
return $res;
|
||||
}
|
||||
$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
|
||||
echo "done.\n";
|
||||
} else {
|
||||
echo " * Skipping: user already exists: 'scheduler'\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -346,7 +346,7 @@ class GreenBox extends BasicStor {
|
|||
return $res;
|
||||
}
|
||||
$storedFile = StoredFile::Recall($id);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$arr = $storedFile->md->genPhpArray();
|
||||
|
@ -596,7 +596,7 @@ class GreenBox extends BasicStor {
|
|||
{
|
||||
$gunid = BasicStor::GunidFromId($id);
|
||||
$pl = StoredFile::Recall($id);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$gunid = $pl->gunid;
|
||||
|
@ -643,7 +643,7 @@ class GreenBox extends BasicStor {
|
|||
return $gunid;
|
||||
}
|
||||
$storedFile = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$r = $storedFile->md->regenerateXmlFile();
|
||||
|
@ -678,9 +678,9 @@ class GreenBox extends BasicStor {
|
|||
public function addAudioClipToPlaylist($token, $acId, $sessid,
|
||||
$fadeIn=NULL, $fadeOut=NULL, $length=NULL, $pause=NULL)
|
||||
{
|
||||
require_once"Playlist.php";
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$acGunid = BasicStor::GunidFromId($acId);
|
||||
|
@ -721,7 +721,7 @@ class GreenBox extends BasicStor {
|
|||
{
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$res = $pl->delAudioClip($plElGunid);
|
||||
|
@ -756,7 +756,7 @@ class GreenBox extends BasicStor {
|
|||
{
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$res = $pl->changeFadeInfo($plElGunid, $fadeIn, $fadeOut);
|
||||
|
@ -792,7 +792,7 @@ class GreenBox extends BasicStor {
|
|||
{
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$res = $pl->moveAudioClip($plElGunid, $newPos);
|
||||
|
@ -872,7 +872,7 @@ class GreenBox extends BasicStor {
|
|||
{
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByGunid($plid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$res = $pl->displayPlaylistClipAtOffset($offset, $distance);
|
||||
|
|
|
@ -132,7 +132,7 @@ class LocStor extends BasicStor {
|
|||
protected function storeAudioClipClose($sessid, $token)
|
||||
{
|
||||
$storedFile =& StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$arr = $this->bsClosePut($token);
|
||||
|
@ -198,7 +198,7 @@ class LocStor extends BasicStor {
|
|||
return $gunid;
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$oid = $storedFile->getId();
|
||||
|
@ -225,7 +225,7 @@ class LocStor extends BasicStor {
|
|||
public function accessRawAudioData($sessid, $gunid, $parent='0')
|
||||
{
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (($res = BasicStor::Authorize('read', $storedFile->getId(), $sessid)) !== TRUE) {
|
||||
|
@ -246,7 +246,7 @@ class LocStor extends BasicStor {
|
|||
public function releaseRawAudioData($sessid, $token)
|
||||
{
|
||||
$storedFile =& StoredFile::RecallByToken($token);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
return $storedFile->releaseRawMediaData($token);
|
||||
|
@ -353,7 +353,7 @@ class LocStor extends BasicStor {
|
|||
protected function getAudioClip($sessid, $gunid)
|
||||
{
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (($res = BasicStor::Authorize('read', $storedFile->getId(), $sessid)) !== TRUE) {
|
||||
|
@ -493,7 +493,7 @@ class LocStor extends BasicStor {
|
|||
return $ex;
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
return $storedFile->exists();
|
||||
|
@ -567,7 +567,7 @@ class LocStor extends BasicStor {
|
|||
protected function updateAudioClipMetadata($sessid, $gunid, $metadata)
|
||||
{
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (($res = BasicStor::Authorize('write', $storedFile->getId(), $sessid)) !== TRUE) {
|
||||
|
@ -670,7 +670,7 @@ class LocStor extends BasicStor {
|
|||
);
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($playlistId);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$id = $storedFile->getId();
|
||||
|
@ -709,7 +709,7 @@ class LocStor extends BasicStor {
|
|||
return $playlistId;
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($playlistId);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$res = $storedFile->setMetadata($newPlaylist, 'string', 'playlist');
|
||||
|
@ -741,7 +741,7 @@ class LocStor extends BasicStor {
|
|||
return $gunid;
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
$id = $storedFile->getId();
|
||||
|
@ -785,7 +785,7 @@ class LocStor extends BasicStor {
|
|||
);
|
||||
}
|
||||
$storedFile =& StoredFile::RecallByGunid($playlistId);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
if (($res = BasicStor::Authorize('write', $storedFile->getId(), $sessid)) !== TRUE) {
|
||||
|
|
|
@ -543,7 +543,7 @@ class Playlist extends StoredFile {
|
|||
switch ($el['type']) {
|
||||
case "playlist":
|
||||
$pl = StoredFile::RecallByGunid($acGunid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
if ($dd > 0) {
|
||||
|
@ -620,7 +620,7 @@ class Playlist extends StoredFile {
|
|||
switch ($el['type']) {
|
||||
case "playlist":
|
||||
$pl = StoredFile::RecallByGunid($acGunid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$res2 = $pl->export();
|
||||
|
@ -692,7 +692,7 @@ class Playlist extends StoredFile {
|
|||
return TRUE;
|
||||
}
|
||||
$pl = StoredFile::RecallByGunid($insGunid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$arr = $pl->md->genPhpArray();
|
||||
|
@ -866,7 +866,7 @@ class Playlist extends StoredFile {
|
|||
private function getAudioClipInfo($acId)
|
||||
{
|
||||
$ac = StoredFile::Recall($acId);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$acGunid = $ac->gunid;
|
||||
|
@ -1390,7 +1390,7 @@ class PlaylistElementExport {
|
|||
case "playlist":
|
||||
$gunid = $ac['attrs']['id'];
|
||||
$pl2 = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($pl2)) {
|
||||
if (is_null($pl2) || PEAR::isError($pl2)) {
|
||||
return $pl2;
|
||||
}
|
||||
$r = $pl2->outputToSmil(FALSE);
|
||||
|
@ -1463,7 +1463,7 @@ class PlaylistElementExport {
|
|||
case "playlist":
|
||||
$gunid = $ac['attrs']['id'];
|
||||
$pl2 = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($pl2)) {
|
||||
if (is_null($pl2) || PEAR::isError($pl2)) {
|
||||
return $pl2;
|
||||
}
|
||||
$r = $pl2->outputToM3u(FALSE);
|
||||
|
@ -1507,7 +1507,7 @@ class PlaylistElementExport {
|
|||
case "playlist":
|
||||
$gunid = $ac['attrs']['id'];
|
||||
$pl2 = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($pl2)) {
|
||||
if (is_null($pl2) || PEAR::isError($pl2)) {
|
||||
return $pl2;
|
||||
}
|
||||
$r = $pl2->outputToRss(FALSE);
|
||||
|
@ -1558,7 +1558,7 @@ class PlaylistAudioClipExport
|
|||
{
|
||||
$gunid = $plac['attrs']['id'];
|
||||
$ac = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$RADext = $ac->getFileExtension();
|
||||
|
@ -1578,7 +1578,7 @@ class PlaylistAudioClipExport
|
|||
{
|
||||
$gunid = $plac['attrs']['id'];
|
||||
$ac = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$RADext = $ac->getFileExtension();
|
||||
|
@ -1597,7 +1597,7 @@ class PlaylistAudioClipExport
|
|||
{
|
||||
$gunid = $plac['attrs']['id'];
|
||||
$ac = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$RADext = $ac->getFileExtension();
|
||||
|
|
|
@ -38,7 +38,7 @@ class Renderer
|
|||
global $CC_CONFIG;
|
||||
// recall playlist:
|
||||
$pl = StoredFile::RecallByGunid($plid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
// smil export:
|
||||
|
|
|
@ -333,7 +333,7 @@ class Restore {
|
|||
}
|
||||
}
|
||||
$ac = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$res = $ac->setState('ready');
|
||||
|
|
|
@ -263,7 +263,7 @@ class SmilPlaylistAudioElement {
|
|||
//break;
|
||||
default:
|
||||
$ac = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($ac)) {
|
||||
if (is_null($ac) || PEAR::isError($ac)) {
|
||||
return $ac;
|
||||
}
|
||||
$r = $ac->md->getMetadataElement('dcterms:extent');
|
||||
|
|
|
@ -295,7 +295,7 @@ class Transport
|
|||
case "audioclip":
|
||||
case "webstream":
|
||||
$storedFile = StoredFile::RecallByGunid($gunid);
|
||||
if (PEAR::isError($storedFile)) {
|
||||
if (is_null($storedFile) || PEAR::isError($storedFile)) {
|
||||
return $storedFile;
|
||||
}
|
||||
// handle metadata:
|
||||
|
@ -333,7 +333,7 @@ class Transport
|
|||
$plid = $gunid;
|
||||
require_once("Playlist.php");
|
||||
$pl = StoredFile::RecallByGunid($plid);
|
||||
if (PEAR::isError($pl)) {
|
||||
if (is_null($pl) || PEAR::isError($pl)) {
|
||||
return $pl;
|
||||
}
|
||||
$fname = $pl->getName();
|
||||
|
@ -1107,7 +1107,7 @@ class Transport
|
|||
if ($state2 == 'paused' || $state2 == 'closed' ) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// status 18 - Partial file. Only a part of the file was transported.
|
||||
// status 28 - Timeout. Too long/slow upload, try to resume next time rather.
|
||||
|
@ -1202,7 +1202,7 @@ class Transport
|
|||
if ($state2 == 'paused' || $state2 == 'closed' ) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// check consistency
|
||||
$size = filesize($row['localfile']);
|
||||
if ($size < $row['expectedsize']) {
|
||||
|
|
|
@ -166,15 +166,17 @@ if (!is_null($this_file)) {
|
|||
}
|
||||
}
|
||||
|
||||
// make dirpaths better (without ../)
|
||||
// make dirpaths better (without "../")
|
||||
foreach (array('storageDir', 'bufferDir', 'transDir', 'accessDir', 'pearPath', 'cronDir') as $d) {
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
// workaround for missing dirs
|
||||
if ( $rp === FALSE ) {
|
||||
mkdir( $CC_CONFIG[$d] );
|
||||
$rp = realpath($CC_CONFIG[$d]);
|
||||
// if ( $rp === FALSE ) {
|
||||
// mkdir( $CC_CONFIG[$d] );
|
||||
// $rp = realpath($CC_CONFIG[$d]);
|
||||
// }
|
||||
if ($rp) {
|
||||
$CC_CONFIG[$d] = $rp;
|
||||
}
|
||||
$CC_CONFIG[$d] = $rp;
|
||||
}
|
||||
|
||||
?>
|
|
@ -8,7 +8,8 @@ define('CRON_EMPTY', 4);
|
|||
/**
|
||||
* A class that interfaces with the crontab. (cjpa@audiophile.com)
|
||||
*
|
||||
* This class lets you manipulate the crontab. It lets you add delete update entries easily.
|
||||
* This class lets you manipulate a user's crontab.
|
||||
* It lets you add delete update entries easily.
|
||||
*
|
||||
* @author $Author: $
|
||||
* @version $Revision: $
|
||||
|
@ -70,9 +71,10 @@ class Crontab
|
|||
*/
|
||||
function readCrontab()
|
||||
{
|
||||
// Hmmm...this line looks like it erases the crontab file. -Paul
|
||||
@exec("echo | crontab -u {$this->user} -", $crons, $return);
|
||||
@exec("crontab -u {$this->user} -l", $crons, $return);
|
||||
if($return != 0){
|
||||
if ($return != 0) {
|
||||
return PEAR::raiseError("*** Can't read crontab ***\n".
|
||||
" Set crontab manually!\n");
|
||||
}
|
||||
|
@ -82,32 +84,28 @@ class Crontab
|
|||
$line = trim($line); // discarding all prepending spaces and tabs
|
||||
|
||||
// empty lines..
|
||||
if (!$line)
|
||||
{
|
||||
if (!$line) {
|
||||
$this->crontabs[] = "empty line";
|
||||
$this->linetypes[] = CRON_EMPTY;
|
||||
continue;
|
||||
}
|
||||
|
||||
// checking if this is a comment
|
||||
if ($line[0] == "#")
|
||||
{
|
||||
if ($line[0] == "#") {
|
||||
$this->crontabs[] = trim($line);
|
||||
$this->linetypes[] = CRON_COMMENT;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Checking if this is an assignment
|
||||
if (ereg("(.*)=(.*)", $line, $assign))
|
||||
{
|
||||
if (ereg("(.*)=(.*)", $line, $assign)) {
|
||||
$this->crontabs[] = array ("name" => $assign[1], "value" => $assign[2]);
|
||||
$this->linetypes[] = CRON_ASSIGN;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Checking if this is a special @-entry. check man 5 crontab for more info
|
||||
if ($line[0] == '@')
|
||||
{
|
||||
if ($line[0] == '@') {
|
||||
$this->crontabs[] = split("[ \t]", $line, 2);
|
||||
$this->linetypes[] = CRON_SPECIAL;
|
||||
continue;
|
||||
|
@ -129,36 +127,34 @@ class Crontab
|
|||
$filename = ($DEBUG ? tempnam("$PATH/crons", "cron") : tempnam("/tmp", "cron"));
|
||||
$file = fopen($filename, "w");
|
||||
|
||||
for ($i = 0; $i < count($this->linetypes); $i ++)
|
||||
{
|
||||
switch ($this->linetypes[$i])
|
||||
{
|
||||
case CRON_COMMENT :
|
||||
for ($i = 0; $i < count($this->linetypes); $i ++) {
|
||||
switch ($this->linetypes[$i]) {
|
||||
case CRON_COMMENT:
|
||||
$line = $this->crontabs[$i];
|
||||
break;
|
||||
case CRON_ASSIGN :
|
||||
case CRON_ASSIGN:
|
||||
$line = $this->crontabs[$i][name]." = ".$this->crontabs[$i][value];
|
||||
break;
|
||||
case CRON_CMD :
|
||||
case CRON_CMD:
|
||||
$line = implode(" ", $this->crontabs[$i]);
|
||||
break;
|
||||
case CRON_SPECIAL :
|
||||
case CRON_SPECIAL:
|
||||
$line = implode(" ", $this->crontabs[$i]);
|
||||
break;
|
||||
case CRON_EMPTY :
|
||||
case CRON_EMPTY:
|
||||
$line = "\n"; // an empty line in the crontab-file
|
||||
break;
|
||||
default :
|
||||
unset ($line);
|
||||
default:
|
||||
unset($line);
|
||||
echo "Something very weird is going on. This line ($i) has an unknown type.\n";
|
||||
break;
|
||||
}
|
||||
|
||||
// echo "line $i : $line\n";
|
||||
|
||||
if ($line){
|
||||
if ($line) {
|
||||
$r = @fwrite($file, $line."\n");
|
||||
if($r === FALSE){
|
||||
if($r === FALSE) {
|
||||
return PEAR::raiseError("*** Can't write crontab ***\n".
|
||||
" Set crontab manually!\n");
|
||||
}
|
||||
|
@ -166,27 +162,34 @@ class Crontab
|
|||
}
|
||||
fclose($file);
|
||||
|
||||
if ($DEBUG)
|
||||
if ($DEBUG) {
|
||||
echo "DEBUGMODE: not updating crontab. writing to $filename instead.\n";
|
||||
else
|
||||
{
|
||||
} else {
|
||||
exec("crontab -u {$this->user} $filename", $returnar, $return);
|
||||
if ($return != 0)
|
||||
if ($return != 0) {
|
||||
echo "Error running crontab ($return). $filename not deleted\n";
|
||||
else
|
||||
} else {
|
||||
unlink($filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a item of type CRON_CMD to the end of $this->crontabs
|
||||
*
|
||||
* @param string $m minute
|
||||
* @param string $h hour
|
||||
* @param string $dom day of month
|
||||
* @param string $mo month
|
||||
* @param string $dow day of week
|
||||
* @param string $cmd command
|
||||
* @param string $m
|
||||
* minute
|
||||
* @param string $h
|
||||
* hour
|
||||
* @param string $dom
|
||||
* day of month
|
||||
* @param string $mo
|
||||
* month
|
||||
* @param string $dow
|
||||
* day of week
|
||||
* @param string $cmd
|
||||
* command
|
||||
*
|
||||
*/
|
||||
function addCron($m, $h, $dom, $mo, $dow, $cmd)
|
||||
|
@ -195,10 +198,11 @@ class Crontab
|
|||
$this->linetypes[] = CRON_CMD;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a comment to the cron to the end of $this->crontabs
|
||||
*
|
||||
* @param string $comment comment
|
||||
* @param string $comment
|
||||
*/
|
||||
function addComment($comment)
|
||||
{
|
||||
|
@ -206,6 +210,7 @@ class Crontab
|
|||
$this->linetypes[] = CRON_COMMENT;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a special command (check man 5 crontab for more information)
|
||||
*
|
||||
|
@ -228,11 +233,12 @@ class Crontab
|
|||
$this->linetypes[] = CRON_SPECIAL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add an assignment (name = value)
|
||||
*
|
||||
* @param string $name name of assingation
|
||||
* @param string $value value
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
*/
|
||||
function addAssign($name, $value)
|
||||
{
|
||||
|
@ -240,6 +246,7 @@ class Crontab
|
|||
$this->linetypes[] = CRON_ASSIGN;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delete a line from the arrays.
|
||||
*
|
||||
|
@ -251,10 +258,11 @@ class Crontab
|
|||
unset ($this->linetypes[$index]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all the lines of a certain type in an array
|
||||
*
|
||||
* @param string $type linetype
|
||||
* @param string $type
|
||||
*/
|
||||
function getByType($type)
|
||||
{
|
||||
|
|
|
@ -376,6 +376,10 @@ if (!camp_db_table_exists($CC_CONFIG['accessTable'])) {
|
|||
echo " * Inserting starting data into tables...\n";
|
||||
$gb = new GreenBox();
|
||||
$r = $gb->initData(true);
|
||||
if (PEAR::isError($r)) {
|
||||
echo "\n * ERROR: ";
|
||||
print_r($r);
|
||||
}
|
||||
//echo "done.\n";
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue