0byt3m1n1
Path:
/
data
/
applications
/
aps
/
owl
/
1.0-0
/
standard
/
htdocs
/
admin
/
tools
/
[
Home
]
File: clean_orphaned.php
<?php /** * clean_orphaned.php * * Author: Steve Bourgeois <steveb@bozzit.com> * * Copyright (c) 2006 Bozz IT Consulting Inc * * * Description: * The follow files have to be created they are copies of the owl tables CREATE TABLE bckp_advanced_acl ( group_id int(4) default NULL, user_id int(4) default NULL, file_id int(4) default NULL, folder_id int(4) default NULL, owlread int(4) default '0', owlwrite int(4) default '0', owlviewlog int(4) default '0', owldelete int(4) default '0', owlcopy int(4) default '0', owlmove int(4) default '0', owlproperties int(4) default '0', owlupdate int(4) default '0', owlcomment int(4) default '0', owlcheckin int(4) default '0', owlemail int(4) default '0', owlrelsearch int(4) default '0', owlsetacl int(4) default '0', owlmonitor int(4) default '0', KEY acl_folderid (folder_id), KEY acl_fileid (file_id), KEY acl_userid (user_id), KEY acl_groupid_index (group_id) ) ; CREATE TABLE bckp_comments ( id int(4) NOT NULL auto_increment, fid int(4) NOT NULL default '0', userid int(4) default NULL, comment_date datetime NOT NULL default '0000-00-00 00:00:00', comments text NOT NULL, PRIMARY KEY (id) ) ; CREATE TABLE bckp_docfieldvalues ( id int(4) NOT NULL auto_increment, file_id int(4) NOT NULL default '0', field_name varchar(80) NOT NULL default '', field_value text NOT NULL, PRIMARY KEY (id), KEY docvalue_fileid (file_id) ) ; CREATE TABLE bckp_file_checksum ( file_id int(4) NOT NULL default '0', hash1 text, hash2 text, hash3 text, signature text, PRIMARY KEY (file_id) ) ; -- Table structure for table `filedata` -- CREATE TABLE bckp_filedata ( id int(4) NOT NULL default '0', compressed int(4) NOT NULL default '0', data longblob, PRIMARY KEY (id) ) ; -- -- Dumping data for table `filedata` -- -- -- Table structure for table `files` -- CREATE TABLE bckp_files ( id int(4) NOT NULL auto_increment, name varchar(255) default NULL, filename varchar(255) NOT NULL default '', f_size bigint(20) NOT NULL default '0', creatorid int(4) NOT NULL default '0', parent int(4) NOT NULL default '0', created datetime NOT NULL default '0000-00-00 00:00:00', description text NOT NULL, metadata text NOT NULL, security int(4) NOT NULL default '0', groupid int(4) NOT NULL default '0', smodified datetime NOT NULL default '0000-00-00 00:00:00', checked_out int(4) NOT NULL default '0', major_revision int(4) NOT NULL default '0', minor_revision int(4) NOT NULL default '1', url int(4) NOT NULL default '0', password varchar(50) NOT NULL default '', doctype int(4) default NULL, updatorid int(4) default NULL, linkedto int(4) default NULL, approved int(4) default NULL, PRIMARY KEY (id), UNIQUE KEY fileid_index (id), KEY parentid_index (parent), KEY files_filetype (url) ) ; -- -- Dumping data for table `files` -- CREATE TABLE bckp_folders ( id int(4) NOT NULL auto_increment, name varchar(255) NOT NULL default '', parent int(4) NOT NULL default '0', description text NOT NULL, security varchar(5) NOT NULL default '', groupid int(4) NOT NULL default '0', creatorid int(4) NOT NULL default '0', password varchar(50) NOT NULL default '', smodified datetime default NULL, linkedto int(4) default NULL, PRIMARY KEY (id), UNIQUE KEY folderid_index (id) ) ; * */ $defaults->debug = false; $defaults->db_host = "localhost"; $defaults->db_user = "root"; $defaults->db_passwd = ""; $defaults->db_name = "owl095"; global $bIsOrphaned; $CountLines = 0; $dblink = mysql_connect($defaults->db_host,$defaults->db_user,$defaults->db_passwd) or die ("could not connect to database"); mysql_select_db($defaults->db_name); // ************************************************************************** // CLEANUP FOLDERS // ************************************************************************** $sQuery = "SELECT * FROM folders where id > 1;"; $rReadResult = mysql_query($sQuery); if (!$rReadResult) { die('Invalid query: ' . mysql_error()); } while ($aFolders = mysql_fetch_assoc($rReadResult)) { // print("F: " . $aFolders['name'] . " ID: " . $aFolders['id'] . " Parent: " . $aFolders['parent'] . ""); $bIsOrphaned = true; fCheckIfFolderOrphaned ( $aFolders['parent'] ); if ($bIsOrphaned) { // ************************************************************************** // SAVE THE FOLDER We are about to delete to a backup table // ************************************************************************** $qSaveQuery = "INSERT INTO bckp_folders ( id, name, parent, description, security, groupid, creatorid, password, smodified, linkedto) VALUES ("; $qSaveQuery .= "'" . $aFolders['id'] . "',"; $qSaveQuery .= "'" . $aFolders['name'] . "',"; $qSaveQuery .= "'" . $aFolders['parent'] . "',"; $qSaveQuery .= "'" . $aFolders['description'] . "',"; $qSaveQuery .= "'" . $aFolders['security'] . "',"; $qSaveQuery .= "'" . $aFolders['groupid'] . "',"; $qSaveQuery .= "'" . $aFolders['creatorid'] . "',"; $qSaveQuery .= "'" . $aFolders['password'] . "',"; $qSaveQuery .= "'" . $aFolders['smodified'] . "',"; $qSaveQuery .= "'" . $aFolders['linkedto'] . "')"; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } // ************************************************************************** // SAVE THE FOLDER ACL's // ************************************************************************** $qGetAcls = "SELECT * from advanced_acl where folder_id = '" . $aFolders['id'] . "'"; $rReadFolderACL = mysql_query($qGetAcls); while ($aFolderACL = mysql_fetch_assoc($rReadFolderACL)) { $qSaveQuery = "INSERT INTO bckp_advanced_acl (group_id, user_id, file_id, folder_id, owlread, owlwrite, owlviewlog, owldelete, owlcopy, owlmove, owlproperties, owlupdate, owlcomment, owlcheckin, owlemail, owlrelsearch, owlsetacl, owlmonitor) VALUES ("; $qSaveQuery .= "'" . $aFolderACL['group_id'] . "', "; $qSaveQuery .= "'" . $aFolderACL['user_id'] . "', "; $qSaveQuery .= "'" . $aFolderACL['file_id'] . "', "; $qSaveQuery .= "'" . $aFolderACL['folder_id'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlread'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlwrite'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlviewlog'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owldelete'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlcopy'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlmove'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlproperties'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlupdate'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlcomment'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlcheckin'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlemail'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlrelsearch'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlsetacl'] . "', "; $qSaveQuery .= "'" . $aFolderACL['owlmonitor'] . "')"; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } } $qDeleteQuery = "DELETE from advanced_acl where folder_id = '" . $aFolders['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } $qDeleteQuery = "DELETE FROM folders where id = '" . $aFolders['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } } } // ************************************************************************** // CLEANUP FILES // ************************************************************************** $sQuery = "SELECT * FROM files;"; $rReadResult = mysql_query($sQuery); if (!$rReadResult) { die('Invalid query: ' . mysql_error()); } while ($aFile = mysql_fetch_assoc($rReadResult)) { $bIsOrphaned = true; if (fCheckIfFileOrphaned ( $aFile['parent'] )) { // ************************************************************************** // SAVE THE File We are about to delete to a backup table // ************************************************************************** $qSaveQuery = "INSERT INTO bckp_files (id, name, filename, f_size, creatorid, parent, created, description, metadata, security, groupid, smodified, checked_out, major_revision, minor_revision, url, password, doctype, updatorid, linkedto, approved) VALUES ("; $qSaveQuery .= "'" . $aFile['id'] . "', "; $qSaveQuery .= "'" . $aFile['name'] . "', "; $qSaveQuery .= "'" . $aFile['filename'] . "', "; $qSaveQuery .= "'" . $aFile['f_size'] . "', "; $qSaveQuery .= "'" . $aFile['creatorid'] . "', "; $qSaveQuery .= "'" . $aFile['parent'] . "', "; $qSaveQuery .= "'" . $aFile['created'] . "', "; $qSaveQuery .= "'" . $aFile['description'] . "', "; $qSaveQuery .= "'" . $aFile['metadata'] . "', "; $qSaveQuery .= "'" . $aFile['security'] . "', "; $qSaveQuery .= "'" . $aFile['groupid'] . "', "; $qSaveQuery .= "'" . $aFile['smodified'] . "', "; $qSaveQuery .= "'" . $aFile['checked_out'] . "', "; $qSaveQuery .= "'" . $aFile['major_revision'] . "', "; $qSaveQuery .= "'" . $aFile['minor_revision'] . "', "; $qSaveQuery .= "'" . $aFile['url'] . "', "; $qSaveQuery .= "'" . $aFile['password'] . "', "; $qSaveQuery .= "'" . $aFile['doctype'] . "', "; $qSaveQuery .= "'" . $aFile['updatorid'] . "', "; $qSaveQuery .= "'" . $aFile['linkedto'] . "', "; $qSaveQuery .= "'" . $aFile['approved'] . "') "; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } // ************************************************************************** // SAVE THE FILE ACL's // ************************************************************************** $qGetAcls = "SELECT * from advanced_acl where file_id = '" . $aFile['id'] . "'"; $rReadFileACL = mysql_query($qGetAcls); while ($aFileACL = mysql_fetch_assoc($rReadFileACL)) { $qSaveQuery = "INSERT INTO bckp_advanced_acl (group_id, user_id, file_id, folder_id, owlread, owlwrite, owlviewlog, owldelete, owlcopy, owlmove, owlproperties, owlupdate, owlcomment, owlcheckin, owlemail, owlrelsearch, owlsetacl, owlmonitor) VALUES ("; $qSaveQuery .= "'" . $aFileACL['group_id'] . "', "; $qSaveQuery .= "'" . $aFileACL['user_id'] . "', "; $qSaveQuery .= "'" . $aFileACL['file_id'] . "', "; $qSaveQuery .= "'" . $aFileACL['folder_id'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlread'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlwrite'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlviewlog'] . "', "; $qSaveQuery .= "'" . $aFileACL['owldelete'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlcopy'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlmove'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlproperties'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlupdate'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlcomment'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlcheckin'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlemail'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlrelsearch'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlsetacl'] . "', "; $qSaveQuery .= "'" . $aFileACL['owlmonitor'] . "')"; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } } // ************************************************************************** // SAVE THE FILE Checksum // ************************************************************************** $qGetChecksum = "SELECT * from file_checksum where file_id = '" . $aFile['id'] . "'"; $rReadFileCheckSum = mysql_query($qGetChecksum); while ($aFileCheckSum = mysql_fetch_assoc($rReadFileCheckSum)) { $qSaveQuery = "INSERT INTO bckp_file_checksum (file_id, hash1, hash2, hash3, signature) VALUES ("; $qSaveQuery .= "'" . $aFileCheckSum['file_id'] . "', "; $qSaveQuery .= "'" . $aFileCheckSum['hash1'] . "', "; $qSaveQuery .= "'" . $aFileCheckSum['hash2'] . "', "; $qSaveQuery .= "'" . $aFileCheckSum['hash3'] . "', "; $qSaveQuery .= "'" . $aFileCheckSum['signature'] . "')"; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } } // ************************************************************************** // SAVE THE FILE DATA // ************************************************************************** $qGetData = "SELECT * from filedata where id = '" . $aFile['id'] . "'"; $rReadFileData = mysql_query($qGetData); while ($aFileData = mysql_fetch_assoc($rReadFileData)) { $qSaveQuery = "INSERT INTO bckp_filedata (id, compressed, data) VALUES ("; $qSaveQuery .= "'" . $aFileData['id'] . "', "; $qSaveQuery .= "'" . $aFileData['compressed'] . "', "; $qSaveQuery .= "'" . addslashes($aFileData['data']) . "')"; mysql_query($qSaveQuery); if ($defaults->debug) { print($qSaveQuery . "\n"); } } $qDeleteQuery = "DELETE from filedata where id = '" . $aFile['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } $qDeleteQuery = "DELETE from advanced_acl where file_id = '" . $aFile['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } $qDeleteQuery = "DELETE from file_checksum where file_id = '" . $aFile['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } $qDeleteQuery = "DELETE FROM files where id = '" . $aFile['id'] . "'"; mysql_query($qDeleteQuery); if ($defaults->debug) { print($qDeleteQuery . "\n"); } } } mysql_free_result($rReadResult); function fCheckIfFileOrphaned ( $currentparent ) { global $defaults, $bIsOrphaned; $dblink = mysql_connect($defaults->db_host,$defaults->db_user,$defaults->db_passwd) or die ("could not connect to database"); mysql_select_db($defaults->db_name); $sQuery ="select id from folders where id='$currentparent' "; $rReadResult = mysql_query($sQuery); $num_rows = mysql_num_rows($rReadResult); if ($num_rows == 1) { return false; } else { return true; } } function fCheckIfFolderOrphaned ( $currentparent ) { global $defaults, $bIsOrphaned; if ($currentparent == 1) { $bIsOrphaned = false; return; } $dblink = mysql_connect($defaults->db_host,$defaults->db_user,$defaults->db_passwd) or die ("could not connect to database"); mysql_select_db($defaults->db_name); $sQuery ="select id,name,parent from folders where id='$currentparent' "; $rReadResult = mysql_query($sQuery); if (!$rReadResult) { die('Invalid query: ' . mysql_error()); } while ($aFolders = mysql_fetch_assoc($rReadResult)) { if (!$bIsOrphaned) { break; } if ($aFolders['parent'] == 1 or ($aFolders['id'] == 1 and $aFolders['parent'] == 0)) { $bIsOrphaned = false; break; } fCheckIfFolderOrphaned ($aFolders['parent']); } } ?>