There was a bug that install process would error out when trying to

install default data twice. Moved the data initialization from BasicStor
into the install.php file since nothing else was using it.
This commit is contained in:
paul.baranowski 2010-10-18 11:40:03 +02:00
parent 321c698c40
commit 0f6b98ce14
4 changed files with 45 additions and 195 deletions

View File

@ -1736,7 +1736,7 @@ class BasicStor {
* @param string $realname
* @return int|PEAR_Error
*/
public function addSubj($login, $pass=NULL, $realname='')
public static function addSubj($login, $pass=NULL, $realname='')
{
global $CC_CONFIG;
$uid = Subjects::AddSubj($login, $pass, $realname);
@ -2112,80 +2112,6 @@ class BasicStor {
/* =============================================== test and debug methods */
/**
* Reset storageServer for debugging.
*
* @param boolean $loadSampleData
* Flag for allow sample data loading
* @param boolean $filesOnly
* Flag for operate only on files in storage
* @return array
* result of localSearch with filetype 'all' and no conditions,
* i.e. array of hashes, fields:
* cnt : integer - number of inserted files
* results : array of hashes:
* gunid: string
* type: string - audioclip | playlist | webstream
* title: string - dc:title from metadata
* creator: string - dc:creator from metadata
* source: string - dc:source from metadata
* length: string - dcterms:extent in extent format
*/
public function resetStorage($loadSampleData=TRUE, $filesOnly=FALSE)
{
global $CC_CONFIG;
if ($filesOnly) {
$this->deleteFiles();
} else {
$this->deleteData();
}
$tr = new Transport($this);
$tr->resetData();
$res = array('cnt'=>0, 'results'=>array());
if (!$loadSampleData) {
return $res;
}
$samples = dirname(__FILE__)."/tests/sampleData.php";
if (file_exists($samples)) {
include($samples);
} else {
$sampleData = array();
}
foreach ($sampleData as $k => $it) {
$type = $it['type'];
$xml = $it['xml'];
if (isset($it['gunid'])) {
$gunid = $it['gunid'];
} else {
$gunid = '';
}
switch($type){
case "audioclip":
$media = $it['media'];
$fname = basename($media);
break;
case "playlist":
case "webstream":
$media = '';
$fname = basename($xml);
break;
}
$values = array(
"filename" => $fname,
"filepath" => $media,
"metadata" => $xml,
"gunid" => $gunid,
"filetype" => $type
);
$r = $this->bsPutFile($values);
if (PEAR::isError($r)) {
return $r;
}
}
return $this->bsLocalSearch(
array('filetype'=>'all', 'conditions'=>array())
);
}
/**
*
@ -2215,117 +2141,6 @@ class BasicStor {
}
/**
* deleteData
*
* @return void
*/
public function deleteData()
{
$this->deleteFiles();
Alib::DeleteData();
$this->initData();
}
/**
* initData - initialize
*
*/
public function initData($p_verbose = false)
{
global $CC_CONFIG;
// 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->storId, '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->storId, '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']);
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";
}
// Create the user named 'scheduler'.
if (!Subjects::GetSubjId('scheduler')) {
echo " * Creating user 'scheduler'...";
$subid = Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
$res = Alib::AddPerm($subid, 'read', '0', '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";
}
// Need to add 'scheduler' to group StationPrefs
Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['StationPrefsGr']);
}
/**
* Aux logging for debug
*

View File

@ -90,7 +90,7 @@ class uiSubjects
}
$tmpPassword = $request['passwd']==='' ? NULL : $request['passwd'];
$res = $this->Base->gb->addSubj($request['login'], $tmpPassword);
$res = BasicStor::addSubj($request['login'], $tmpPassword);
if (PEAR::isError($res)) {
$this->Base->_retMsg($res->getMessage());
return FALSE;

View File

@ -527,13 +527,48 @@ if (!camp_db_table_exists($CC_CONFIG['prefTable'])) {
// Install default data
//------------------------------------------------------------------------
echo " *** Inserting Default Data ***\n";
$gb = new GreenBox();
$r = $gb->initData(true);
if (PEAR::isError($r)) {
echo "\n * ERROR: ";
print_r($r);
// 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']);
Subjects::AddSubjectToGroup('root', $CC_CONFIG['StationPrefsGr']);
echo "done.\n";
} else {
echo " * Skipping: group already exists: '".$CC_CONFIG['StationPrefsGr']."'\n";
}
}
//echo "done.\n";
// Add the root user if it doesnt exist yet.
$rootUid = Subjects::GetSubjId('root');
if (!$rootUid) {
echo " * Creating user 'root'...";
$rootUid = BasicStor::addSubj("root", $CC_CONFIG['tmpRootPass']);
// 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";
}
// Create the user named 'scheduler'.
if (!Subjects::GetSubjId('scheduler')) {
echo " * Creating user 'scheduler'...";
$subid = Subjects::AddSubj('scheduler', $CC_CONFIG['schedulerPass']);
$res = Alib::AddPerm($subid, 'read', '0', 'A');
//$r = Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['AllGr']);
echo "done.\n";
} else {
echo " * Skipping: user already exists: 'scheduler'\n";
}
// Need to add 'scheduler' to group StationPrefs
Subjects::AddSubjectToGroup('scheduler', $CC_CONFIG['StationPrefsGr']);
//------------------------------------------------------------------------

View File

@ -196,7 +196,7 @@ foreach ($subjects as $login => $subj) {
if (VERBOSE) {
echo " adding user $login ...\n";
}
$uid = $bs->addSubj($login, $subj['pass'], $subj['realname'], TRUE);
$uid = BasicStor::addSubj($login, $subj['pass'], $subj['realname'], TRUE);
ls_restore_checkErr($uid, __LINE__);
}
break;
@ -212,7 +212,7 @@ foreach ($subjects as $login => $subj) {
if (VERBOSE) {
echo " adding group $login ...\n";
}
$uid = $bs->addSubj($login, NULL);
$uid = BasicStor::addSubj($login, NULL);
ls_restore_checkErr($uid, __LINE__);
// var_export($uid); echo " ";
break;