diff options
author | 2009-01-07 09:10:28 +0000 | |
---|---|---|
committer | 2009-01-07 09:10:28 +0000 | |
commit | 6f95a6af5389b3f3a3affd309ac73f689dee21b8 (patch) | |
tree | 533fd99a0c4bcf164bb664ff6c986bdd03dd9743 | |
parent | db6172250228292146706690e2955074626a6ccd (diff) | |
download | scuttle-6f95a6af5389b3f3a3affd309ac73f689dee21b8.tar.gz scuttle-6f95a6af5389b3f3a3affd309ac73f689dee21b8.zip |
Bug Fix: delete really all user's data when removing a user
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@221 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r-- | admin.php | 10 | ||||
-rw-r--r-- | services/commondescriptionservice.php | 14 | ||||
-rw-r--r-- | services/searchhistoryservice.php | 208 | ||||
-rw-r--r-- | services/tagstatservice.php | 12 |
4 files changed, 144 insertions, 100 deletions
@@ -23,7 +23,10 @@ require_once('header.inc.php'); $bookmark2tagservice = & ServiceFactory :: getServiceInstance('Bookmark2Tagservice');
$bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService'); $tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService'); -$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService');
+$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService'); +$commondescriptionservice = & ServiceFactory :: getServiceInstance('CommonDescriptionService'); +$searchhistoryservice = & ServiceFactory :: getServiceInstance('SearchHistoryService'); +$tagstatservice = & ServiceFactory :: getServiceInstance('TagStatService');
// Header variables
$tplVars['subtitle'] = T_('Manage users');
@@ -56,7 +59,10 @@ if ( $action $tagcacheservice->deleteByUser($uId); $tag2tagservice->removeLinkedTags('','','',$uId);
$userservice->deleteUser($uId);
- $bookmark2tagservice->deleteTagsForUser($uId);
+ $bookmark2tagservice->deleteTagsForUser($uId); + $commondescriptionservice->deleteDescriptionsForUser($uId); + $searchhistoryservice->deleteSearchHistoryForUser($uId); + $tagstatservice->deleteTagStatForUser($uId);
// XXX: don't delete bookmarks before tags, else tags can't be deleted !!!
$bookmarkservice->deleteBookmarksForUser($uId);
diff --git a/services/commondescriptionservice.php b/services/commondescriptionservice.php index 0a96f74..86e0c0f 100644 --- a/services/commondescriptionservice.php +++ b/services/commondescriptionservice.php @@ -140,6 +140,20 @@ class CommonDescriptionService { } + function deleteDescriptionsForUser($uId){ + $query = 'DELETE FROM '. $this->getTableName() . ' WHERE uId = '. intval($uId); + + $this->db->sql_transaction('begin'); + if (!($dbresult = & $this->db->sql_query($query))) { + $this->db->sql_transaction('rollback'); + message_die(GENERAL_ERROR, 'Could not delete user descriptions', '', + __LINE__, __FILE__, $query, $this->db); + return false; + } + + return true; + } + function deleteAll() { $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; diff --git a/services/searchhistoryservice.php b/services/searchhistoryservice.php index bf678cf..72ea825 100644 --- a/services/searchhistoryservice.php +++ b/services/searchhistoryservice.php @@ -1,111 +1,123 @@ <?php class SearchHistoryService { - var $db; - var $tablename; - var $sizeSearchHistory; - - function &getInstance(&$db) { - static $instance; - if (!isset($instance)) - $instance =& new SearchHistoryService($db); - return $instance; - } - - function SearchHistoryService(& $db) { - $this->db =& $db; - $this->tablename = $GLOBALS['tableprefix'] .'searchhistory'; - if(isset($GLOBALS['sizeSearchHistory'])) { - $this->sizeSearchHistory = $GLOBALS['sizeSearchHistory']; - } else { - $this->sizeSearchHistory = 10; + var $db; + var $tablename; + var $sizeSearchHistory; + + function &getInstance(&$db) { + static $instance; + if (!isset($instance)) + $instance =& new SearchHistoryService($db); + return $instance; } - } - function addSearch($terms, $range, $nbResults, $uId=0) { - if(strlen($terms) == 0) { - return false; + function SearchHistoryService(& $db) { + $this->db =& $db; + $this->tablename = $GLOBALS['tableprefix'] .'searchhistory'; + if(isset($GLOBALS['sizeSearchHistory'])) { + $this->sizeSearchHistory = $GLOBALS['sizeSearchHistory']; + } else { + $this->sizeSearchHistory = 10; + } } - $datetime = gmdate('Y-m-d H:i:s', time()); - - //Insert values - $values = array('shTerms'=>$terms, 'shRange'=>$range, 'shDatetime'=>$datetime, 'shNbResults'=>$nbResults, 'uId'=>$uId); - $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values); - $this->db->sql_transaction('begin'); - if (!($dbresult = & $this->db->sql_query($sql))) { - $this->db->sql_transaction('rollback'); - message_die(GENERAL_ERROR, 'Could not insert search history', '', __LINE__, __FILE__, $sql, $this->db); - return false; - } - - if($this->sizeSearchHistory != -1 && + + function addSearch($terms, $range, $nbResults, $uId=0) { + if(strlen($terms) == 0) { + return false; + } + $datetime = gmdate('Y-m-d H:i:s', time()); + + //Insert values + $values = array('shTerms'=>$terms, 'shRange'=>$range, 'shDatetime'=>$datetime, 'shNbResults'=>$nbResults, 'uId'=>$uId); + $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values); + $this->db->sql_transaction('begin'); + if (!($dbresult = & $this->db->sql_query($sql))) { + $this->db->sql_transaction('rollback'); + message_die(GENERAL_ERROR, 'Could not insert search history', '', __LINE__, __FILE__, $sql, $this->db); + return false; + } + + if($this->sizeSearchHistory != -1 && $this->countSearches() > $this->sizeSearchHistory) { - $this->deleteOldestSearch(); + $this->deleteOldestSearch(); + } } - } - - function getAllSearches($range = NULL, $uId = NULL, $nb = NULL, $start = NULL, $distinct = false, $withResults = false) { - $sql = 'SELECT DISTINCT(shTerms), shId, shRange, shNbResults, shDatetime, uId'; - $sql.= ' FROM '. $this->getTableName(); - $sql.= ' WHERE 1=1'; - if($range != NULL) { - $sql.= ' AND shRange = "'.$range.'"'; - } else { - $sql.= ' AND shRange = "all"'; + + function getAllSearches($range = NULL, $uId = NULL, $nb = NULL, $start = NULL, $distinct = false, $withResults = false) { + $sql = 'SELECT DISTINCT(shTerms), shId, shRange, shNbResults, shDatetime, uId'; + $sql.= ' FROM '. $this->getTableName(); + $sql.= ' WHERE 1=1'; + if($range != NULL) { + $sql.= ' AND shRange = "'.$range.'"'; + } else { + $sql.= ' AND shRange = "all"'; + } + if($uId != NULL) { + $sql.= ' AND uId = '.$uId; + } + if($withResults = true) { + $sql.= ' AND shNbResults > 0'; + } + if($distinct) { + $sql.= ' GROUP BY shTerms'; + } + $sql.= ' ORDER BY shId DESC'; + + if (!($dbresult = & $this->db->sql_query_limit($sql, $nb, $start))) { + message_die(GENERAL_ERROR, 'Could not get searches', '', __LINE__, __FILE__, $sql, $this->db); + return false; + } + + $searches = array(); + while ($row = & $this->db->sql_fetchrow($dbresult)) { + $searches[] = $row; + } + return $searches; } - if($uId != NULL) { - $sql.= ' AND uId = '.$uId; + + function countSearches() { + $sql = 'SELECT COUNT(*) AS `total` FROM '. $this->getTableName(); + if (!($result = & $this->db->sql_query($sql)) || (!($row = & $this->db->sql_fetchrow($result)))) { + message_die(GENERAL_ERROR, 'Could not get total searches', '', __LINE__, __FILE__, $sql, $this->db); + return false; + } + + return $row['total']; } - if($withResults = true) { - $sql.= ' AND shNbResults > 0'; + + /* This function allows to limit the number of saved searches + by deleting the oldest one */ + function deleteOldestSearch() { + $sql = 'DELETE FROM '.$this->getTableName(); + $sql.= ' ORDER BY shId ASC LIMIT 1'; // warning: here the limit is important + + $this->db->sql_transaction('begin'); + if (!($dbresult = & $this->db->sql_query($sql))) { + $this->db->sql_transaction('rollback'); + message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db); + return false; + } + } + + function deleteSearchHistoryForUser($uId) { + $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId); + + if (!($dbresult = & $this->db->sql_query($query))) { + message_die(GENERAL_ERROR, 'Could not delete search history', '', + __LINE__, __FILE__, $query, $this->db); + return false; + } + + return true; } - if($distinct) { - $sql.= ' GROUP BY shTerms'; + + function deleteAll() { + $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; + $this->db->sql_query($query); } - $sql.= ' ORDER BY shId DESC'; - - if (!($dbresult = & $this->db->sql_query_limit($sql, $nb, $start))) { - message_die(GENERAL_ERROR, 'Could not get searches', '', __LINE__, __FILE__, $sql, $this->db); - return false; - } - - $searches = array(); - while ($row = & $this->db->sql_fetchrow($dbresult)) { - $searches[] = $row; - } - return $searches; - } - - function countSearches() { - $sql = 'SELECT COUNT(*) AS `total` FROM '. $this->getTableName(); - if (!($result = & $this->db->sql_query($sql)) || (!($row = & $this->db->sql_fetchrow($result)))) { - message_die(GENERAL_ERROR, 'Could not get total searches', '', __LINE__, __FILE__, $sql, $this->db); - return false; - } - - return $row['total']; - } - - /* This function allows to limit the number of saved searches - by deleting the oldest one */ - function deleteOldestSearch() { - $sql = 'DELETE FROM '.$this->getTableName(); - $sql.= ' ORDER BY shId ASC LIMIT 1'; // warning: here the limit is important - - $this->db->sql_transaction('begin'); - if (!($dbresult = & $this->db->sql_query($sql))) { - $this->db->sql_transaction('rollback'); - message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db); - return false; - } - } - - function deleteAll() { - $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; - $this->db->sql_query($query); - } - - // Properties - function getTableName() { return $this->tablename; } - function setTableName($value) { $this->tablename = $value; } + + // Properties + function getTableName() { return $this->tablename; } + function setTableName($value) { $this->tablename = $value; } } ?> diff --git a/services/tagstatservice.php b/services/tagstatservice.php index 3a08bc0..9d3ca5d 100644 --- a/services/tagstatservice.php +++ b/services/tagstatservice.php @@ -169,6 +169,18 @@ class TagStatService { $this->db->sql_query($query); } + function deleteTagStatForUser($uId) { + $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId); + + if (!($dbresult = & $this->db->sql_query($query))) { + message_die(GENERAL_ERROR, 'Could not delete tag stats', '', __LINE__, + __FILE__, $query, $this->db); + return false; + } + + return true; + } + function deleteAll() { $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; $this->db->sql_query($query); |