]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
Bug Fix: delete really all user's data when removing a user
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 7 Jan 2009 09:10:28 +0000 (09:10 +0000)
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 7 Jan 2009 09:10:28 +0000 (09:10 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@221 b3834d28-1941-0410-a4f8-b48e95affb8f

admin.php
services/commondescriptionservice.php
services/searchhistoryservice.php
services/tagstatservice.php

index 57489b873f2a64489826b1244fb80f52bfe3932a..c51d925cae4416101c47a4aae0eb3d786bba0f89 100644 (file)
--- a/admin.php
+++ b/admin.php
@@ -23,7 +23,10 @@ require_once('header.inc.php');
 $bookmark2tagservice = & ServiceFactory :: getServiceInstance('Bookmark2Tagservice');\r
 $bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
 $tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService');
-$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService');\r
+$tagcacheservice = & ServiceFactory :: getServiceInstance('TagCacheService');
+$commondescriptionservice = & ServiceFactory :: getServiceInstance('CommonDescriptionService');
+$searchhistoryservice = & ServiceFactory :: getServiceInstance('SearchHistoryService');
+$tagstatservice = & ServiceFactory :: getServiceInstance('TagStatService');\r
 \r
 // Header variables\r
 $tplVars['subtitle'] = T_('Manage users');\r
@@ -56,7 +59,10 @@ if ( $action
                                $tagcacheservice->deleteByUser($uId);
                                $tag2tagservice->removeLinkedTags('','','',$uId);\r
                                $userservice->deleteUser($uId);\r
-                               $bookmark2tagservice->deleteTagsForUser($uId);                          \r
+                               $bookmark2tagservice->deleteTagsForUser($uId);
+                               $commondescriptionservice->deleteDescriptionsForUser($uId);
+                               $searchhistoryservice->deleteSearchHistoryForUser($uId);
+                               $tagstatservice->deleteTagStatForUser($uId);                            \r
                                // XXX: don't delete bookmarks before tags, else tags can't be deleted !!!\r
                                $bookmarkservice->deleteBookmarksForUser($uId);\r
 \r
index 0a96f740395bdad8f3302a4c9e0f29b14d209382..86e0c0f74eee7065fd1274cc2ad5e9f685b9268b 100644 (file)
@@ -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() .'`';
index bf678cfe799d9e50c6979f7528c1af0cb86aa255..72ea825b6b0a04996b6369bd2a75580e669c0246 100644 (file)
 <?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; }
 }
 ?>
index 3a08bc0a022f8ff9bfa668b7c9aa60ce6d14c170..9d3ca5dc2fdc802537b6e564c59c6aba841fee84 100644 (file)
@@ -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);