Remove subjects from backup

This commit is contained in:
csikosjanos 2006-05-29 12:56:52 +00:00
parent d660936fac
commit aead81fe1b
3 changed files with 35 additions and 48 deletions

View file

@ -847,6 +847,10 @@
</item> </item>
<item> <item>
<key>Choose a backup file</key> <key>Choose a backup file</key>
<value>AChoose a backup file</value> <value>Choose a backup file</value>
</item>
<item>
<key>Restore status</key>
<value>Restore status</value>
</item> </item>
</translations> </translations>

View file

@ -11,9 +11,9 @@
{else} {else}
{assign var='status' value=$EXCHANGE->backupRestoreCheck()} {assign var='status' value=$EXCHANGE->backupRestoreCheck()}
Backup status: {$status.status} ##Restore status##: {if $status.status=='fault'}<b style="font-color:red">{$status.status}!!!</b>{else}{$status.status}{/if}
{if $status.status === 'success'} {if $status.status !== 'working'}
<p><input type="button" class="button" value="##Close Backup Restore##" onCLick="location.href='{$UI_HANDLER}?act=RESTORE.backupRestoreClose'"></p> <p><input type="button" class="button" value="##Close Backup Restore##" onCLick="location.href='{$UI_HANDLER}?act=RESTORE.backupRestoreClose'"></p>
{/if} {/if}

View file

@ -2,7 +2,8 @@
define('BACKUP_EXT', 'tar'); define('BACKUP_EXT', 'tar');
define('ACCESS_TYPE', 'backup'); define('ACCESS_TYPE', 'backup');
class Backup { class Backup
{
/** /**
* string - name of logfile * string - name of logfile
*/ */
@ -74,7 +75,8 @@ class Backup {
* *
* @param gb: greenbox object reference * @param gb: greenbox object reference
*/ */
function Backup (&$gb) { function Backup (&$gb)
{
$this->gb =& $gb; $this->gb =& $gb;
$this->token = null; $this->token = null;
$this->logFile = $this->gb->bufferDir.'/'.ACCESS_TYPE.'.log'; $this->logFile = $this->gb->bufferDir.'/'.ACCESS_TYPE.'.log';
@ -90,7 +92,8 @@ class Backup {
* @return hasharray with field: * @return hasharray with field:
* token string: backup token * token string: backup token
*/ */
function openBackup($sessid,$criteria='') { function openBackup($sessid,$criteria='')
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." openBackup - sessid:$sessid\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." openBackup - sessid:$sessid\n");
} }
@ -125,8 +128,6 @@ class Backup {
"/><!-- $ctime_f -->\n" "/><!-- $ctime_f -->\n"
); );
file_put_contents("{$this->tmpDirMeta}/subjects.xml",$this->getSubjects());
# copy all file to tmpdir # copy all file to tmpdir
$this->copyAllFiles(); $this->copyAllFiles();
@ -147,7 +148,8 @@ class Backup {
* url : string - access url * url : string - access url
* tmpfile : string - access filename * tmpfile : string - access filename
*/ */
function checkBackup($token) { function checkBackup($token)
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." checkBackup - token:$token\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." checkBackup - token:$token\n");
} }
@ -173,7 +175,8 @@ class Backup {
* @param token : token * @param token : token
* @return status : boolean * @return status : boolean
*/ */
function closeBackup($token) { function closeBackup($token)
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." closeBackup - token:$token\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." closeBackup - token:$token\n");
} }
@ -198,7 +201,8 @@ class Backup {
* token : stirng - backup token * token : stirng - backup token
* url : string - access url * url : string - access url
*/ */
function listBackups($stat='') { function listBackups($stat='')
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." listBackups - stat:$stat\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." listBackups - stat:$stat\n");
} }
@ -219,7 +223,8 @@ class Backup {
* *
* @param searchResult : array of gunids * @param searchResult : array of gunids
*/ */
function setIDs($searchResult) { function setIDs($searchResult)
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." setIDs\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." setIDs\n");
} }
@ -235,7 +240,8 @@ class Backup {
* set the filenames from ids * set the filenames from ids
* *
*/ */
function setFilenames () { function setFilenames ()
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." setFilenames\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." setFilenames\n");
} }
@ -275,7 +281,8 @@ class Backup {
* Create the tarball - call the shell script * Create the tarball - call the shell script
* *
*/ */
function doIt() { function doIt()
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." doIt\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." doIt\n");
} }
@ -295,7 +302,8 @@ class Backup {
* Copy the real files into the tmp dirs to tar they. * Copy the real files into the tmp dirs to tar they.
* *
*/ */
function copyAllFiles() { function copyAllFiles()
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." copyAllFiles\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." copyAllFiles\n");
} }
@ -322,7 +330,8 @@ class Backup {
* Figure out the enviroment to the backup * Figure out the enviroment to the backup
* *
*/ */
function setEnviroment($createDir=false) { function setEnviroment($createDir=false)
{
if ($this->loglevel=='debug') { if ($this->loglevel=='debug') {
$this->addLogItem("-I- ".date("Ymd-H:i:s")." setEnviroment - createDirs:$createDir\n"); $this->addLogItem("-I- ".date("Ymd-H:i:s")." setEnviroment - createDirs:$createDir\n");
} }
@ -371,47 +380,20 @@ class Backup {
* generate a new token. * generate a new token.
* *
*/ */
function genToken() { function genToken()
{
$acc = $this->gb->bsAccess($this->tmpFile, BACKUP_EXT, null, ACCESS_TYPE); $acc = $this->gb->bsAccess($this->tmpFile, BACKUP_EXT, null, ACCESS_TYPE);
if($this->gb->dbc->isError($acc)){ return $acc; } if($this->gb->dbc->isError($acc)){ return $acc; }
$this->token = $acc['token']; $this->token = $acc['token'];
} }
/**
* generate XML with subjects
*
* @return string : XML content
*
*/
function getSubjects() {
$subjs = $this->gb->getSubjects('id, login, pass, type, realname');
$ret = "<subjects>\n";
for ($i=0; $i<sizeof($subjs);$i++) {
$tag = (strtolower($subjs[$i]['type'])=='g')?'group':'user';
$ret .= " <{$tag}".
" id=\"{$subjs[$i]['id']}\"" .
" login=\"{$subjs[$i]['login']}\"" .
" pass=\"{$subjs[$i]['pass']}\"" .
" type=\"{$subjs[$i]['type']}\"" .
" realname=\"{$subjs[$i]['realname']}\"" .
">\n";
$membof = $this->gb->_listRMemb($subjs[$i]['id']);
$membs='';
for ($j=0;$j<sizeof($membof);$j++) {
$ret.=" <memberof id=\"{$membof[$j]['gid']}\" gid=\"{$membof[$j]['gid']}\" level=\"{$membof[$j]['gid']}\" />\n";
}
$ret .= " </{$tag}>\n";
}
$ret .= "</subjects>\n";
return $ret;
}
/** /**
* Add a line to the logfile. * Add a line to the logfile.
* *
* @param item : string - the new row of log file * @param item : string - the new row of log file
*/ */
function addLogItem($item) { function addLogItem($item)
{
$f = fopen ($this->logFile,'a'); $f = fopen ($this->logFile,'a');
fwrite($f,$item); fwrite($f,$item);
fclose($f); fclose($f);
@ -423,7 +405,8 @@ class Backup {
* *
* @param dirname : string - path of dir. * @param dirname : string - path of dir.
*/ */
function rRmDir($dirname) { function rRmDir($dirname)
{
if(is_dir($dirname)) if(is_dir($dirname))
$dir_handle = opendir($dirname); $dir_handle = opendir($dirname);
while($file = readdir($dir_handle)) { while($file = readdir($dir_handle)) {