Preferences backup support added.

This commit is contained in:
tomas 2005-06-30 22:23:57 +00:00
parent 4079db624c
commit 17953ce674

View file

@ -23,7 +23,7 @@
Author : $Author: tomas $ Author : $Author: tomas $
Version : $Revision: 1.1 $ Version : $Revision: 1.2 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageAdmin/var/backup.php,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageAdmin/var/backup.php,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -36,6 +36,7 @@ require_once 'DB.php';
require_once "XML/Util.php"; require_once "XML/Util.php";
require_once "XML/Beautifier.php"; require_once "XML/Beautifier.php";
require_once "$storageServerPath/var/BasicStor.php"; require_once "$storageServerPath/var/BasicStor.php";
require_once "$storageServerPath/var/Prefs.php";
PEAR::setErrorHandling(PEAR_ERROR_RETURN); PEAR::setErrorHandling(PEAR_ERROR_RETURN);
$dbc = DB::connect($config['dsn'], TRUE); $dbc = DB::connect($config['dsn'], TRUE);
@ -112,6 +113,7 @@ function admDumpGroup(&$bs, $gid, $ind=''){
$isGr = $bs->isGroup($gid); $isGr = $bs->isGroup($gid);
if(PEAR::isError($isGr)){ echo $isGr->getMessage(); exit; } if(PEAR::isError($isGr)){ echo $isGr->getMessage(); exit; }
$pars = array('name'=>"$name"); $pars = array('name'=>"$name");
$pars['id'] = $gid;
if(!$isGr){ if(!$isGr){
return XML_Util::createTagFromArray(array( return XML_Util::createTagFromArray(array(
'namespace' => NSPACE, 'namespace' => NSPACE,
@ -126,12 +128,16 @@ function admDumpGroup(&$bs, $gid, $ind=''){
$fid2 = $member['id']; $fid2 = $member['id'];
$res .= admDumpGroup($bs, $fid2, "$ind "); $res .= admDumpGroup($bs, $fid2, "$ind ");
} }
if(!$res){ $tagarr = array(
return XML_Util::createTagFromArray(array(
'namespace' => NSPACE, 'namespace' => NSPACE,
'localPart' => 'group', 'localPart' => 'group',
'attributes'=> $pars, 'attributes'=> $pars,
)); );
$prefs = admDumpPrefs($bs, $gid);
if(!is_null($prefs)) $res .= $prefs;
if($res) $tagarr['content'] = $res;
return XML_Util::createTagFromArray($tagarr, $res === '');
if(!$res){
}else{ }else{
return XML_Util::createTagFromArray(array( return XML_Util::createTagFromArray(array(
'namespace' => NSPACE, 'namespace' => NSPACE,
@ -148,19 +154,51 @@ function admDumpSubjects(&$bs, $ind=''){
foreach($subjs as $i =>$member){ foreach($subjs as $i =>$member){
switch($member['type']){ switch($member['type']){
case"U": case"U":
$prefs = admDumpPrefs($bs, $member['id']);
$pars = array('login'=>"{$member['login']}", 'pass'=>"{$member['pass']}"); $pars = array('login'=>"{$member['login']}", 'pass'=>"{$member['pass']}");
$res .= XML_Util::createTagFromArray(array( $pars['id'] = $member['id'];
#'namespace' => 'ls', $tagarr = array(
'namespace' => NSPACE,
'localPart' => 'user', 'localPart' => 'user',
'attributes'=> $pars, 'attributes'=> $pars,
)); );
if(!is_null($prefs)) $tagarr['content'] = $prefs;
$res .= XML_Util::createTagFromArray($tagarr , FALSE);
break; break;
case"G": case"G":
$res .= admDumpGroup($bs, $member['id'], "$ind "); $res .= admDumpGroup($bs, $member['id'], "$ind ");
break; break;
} }
} }
return "$ind<subjects>\n$res$ind</subjects>\n"; # return "$ind<subjects>\n$res$ind</subjects>\n";
return XML_Util::createTagFromArray(array(
'namespace' => NSPACE,
'localPart' => 'subjects',
'content'=> $res,
), FALSE);
}
function admDumpPrefs(&$bs, $subjid){
$res ='';
$pr =& new Prefs($bs);
$prefkeys = $pr->readKeys($subjid);
# var_dump($subjid); var_dump($prefkeys); #exit;
foreach($prefkeys as $i =>$prefk){
$keystr = $prefk['keystr'];
$prefval = $pr->readVal($subjid, $keystr);
$pars = array('name'=>"$keystr", 'val'=>"$prefval");
$res .= XML_Util::createTagFromArray(array(
'namespace' => NSPACE,
'localPart' => 'pref',
'attributes'=> $pars,
));
}
if(!$res) return NULL;
return XML_Util::createTagFromArray(array(
'namespace' => NSPACE,
'localPart' => 'preferences',
'content'=> $res,
), FALSE);
} }
$subjects = admDumpSubjects($bs, ' '); $subjects = admDumpSubjects($bs, ' ');