diff options
author | rvelices <rv-github@modusoptimus.com> | 2007-02-27 12:32:23 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2007-02-27 12:32:23 +0000 |
commit | dca9bd094a4231ba931abac2af33119f2079601d (patch) | |
tree | 3c4bc02256a06cbc980452cad453bc3abff46f49 | |
parent | 7053787d1f4d4500080185af6878835217aa17a5 (diff) |
- function delete_user now clears asssociated data in the caddie table and the sessions table
- xml writer improvement for web service
git-svn-id: http://piwigo.org/svn/trunk@1863 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r-- | admin/include/functions.php | 96 | ||||
-rw-r--r-- | include/ws_protocols/rest_encoder.php | 31 |
2 files changed, 53 insertions, 74 deletions
diff --git a/admin/include/functions.php b/admin/include/functions.php index ad493f877..ff54dbbab 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -214,60 +214,40 @@ DELETE FROM '.IMAGES_TABLE.' function delete_user($user_id) { global $conf; + $tables = array( + // destruction of the access linked to the user + USER_ACCESS_TABLE, + // destruction of data notification by mail for this user + USER_MAIL_NOTIFICATION_TABLE, + // destruction of data RSS notification for this user + USER_FEED_TABLE, + // deletion of calculated permissions linked to the user + USER_CACHE_TABLE, + // deletion of computed cache data linked to the user + USER_CACHE_CATEGORIES_TABLE, + // destruction of the group links for this user + USER_GROUP_TABLE, + // destruction of the favorites associated with the user + FAVORITES_TABLE, + // destruction of the caddie associated with the user + CADDIE_TABLE, + // deletion of phpwebgallery specific informations + USER_INFOS_TABLE, + ); - // destruction of the access linked to the user - $query = ' -DELETE FROM '.USER_ACCESS_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // destruction of data notification by mail for this user - $query = ' -DELETE FROM '.USER_MAIL_NOTIFICATION_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // destruction of data RSS notification for this user - $query = ' -DELETE FROM '.USER_FEED_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // destruction of the group links for this user - $query = ' -DELETE FROM '.USER_GROUP_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // destruction of the favorites associated with the user - $query = ' -DELETE FROM '.FAVORITES_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // deletion of calculated permissions linked to the user - $query = ' -DELETE FROM '.USER_CACHE_TABLE.' - WHERE user_id = '.$user_id.' -;'; - pwg_query($query); - - // deletion of computed cache data linked to the user - $query = ' -DELETE FROM '.USER_CACHE_CATEGORIES_TABLE.' + foreach ($tables as $table) + { + $query = ' +DELETE FROM '.$table.' WHERE user_id = '.$user_id.' ;'; - pwg_query($query); + pwg_query($query); + } - // deletion of phpwebgallery specific informations + // destruction of the user $query = ' -DELETE FROM '.USER_INFOS_TABLE.' - WHERE user_id = '.$user_id.' +DELETE FROM '.SESSIONS_TABLE.' + WHERE data LIKE "pwg_uid|i:'.(int)$user_id.';%" ;'; pwg_query($query); @@ -524,7 +504,7 @@ function mass_inserts($table_name, $dbfields, $datas) if (count($datas) != 0) { $first = true; - + $query = 'SHOW VARIABLES LIKE \'max_allowed_packet\';'; list(, $packet_size) = mysql_fetch_row(pwg_query($query)); $packet_size = $packet_size - 2000; // The last list of values MUST not exceed 2000 character*/ @@ -539,7 +519,7 @@ function mass_inserts($table_name, $dbfields, $datas) pwg_query($query); $first = true; } - + if ($first) { $query = ' @@ -553,7 +533,7 @@ function mass_inserts($table_name, $dbfields, $datas) $query .= ' , '; } - + $query .= '('; foreach ($dbfields as $field_id => $dbfield) { @@ -573,7 +553,7 @@ function mass_inserts($table_name, $dbfields, $datas) } $query .= ')'; } - + $query .= ' ;'; pwg_query($query); @@ -1941,11 +1921,11 @@ SELECT tag_id, while ($row = mysql_fetch_array($result)) { array_push($all_tag_ids, $row['tag_id']); - + if (!isset($tags_of[ $row['image_id'] ])) { $tags_of[ $row['image_id'] ] = array(); } - + array_push( $tags_of[ $row['image_id'] ], $row['tag_id'] @@ -1986,10 +1966,10 @@ SELECT id, { $xml_string.= " <tag>".$tag_name_of[$tag_id]."</tag>\n"; } - + $xml_string.= " </photo>\n"; } - + $xml_string.= '</export>'; fwrite($fp, $xml_string); fclose($fp); @@ -2048,7 +2028,7 @@ function pwg_URL() 'BUGS' => 'http://bugs.'.PHPWG_DOMAIN.'/', 'EXTENSIONS' => 'http://'.PHPWG_DOMAIN.'/ext', ); - if ( isset($lang_info['code']) and + if ( isset($lang_info['code']) and in_array($lang_info['code'], array('fr','en')) ) { /* current wiki languages are French or English */ $urls['WIKI'] .= 'doku.php?id='.$lang_info['code'].':start'; diff --git a/include/ws_protocols/rest_encoder.php b/include/ws_protocols/rest_encoder.php index c66cf2536..9352e5644 100644 --- a/include/ws_protocols/rest_encoder.php +++ b/include/ws_protocols/rest_encoder.php @@ -3,11 +3,10 @@ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ -// | branch : BSF (Best So Far) -// | file : $URL: svn+ssh://rvelices@svn.gna.org/svn/phpwebgallery/trunk/action.php $ -// | last update : $Date: 2006-12-21 18:49:12 -0500 (Thu, 21 Dec 2006) $ -// | last modifier : $Author: rvelices $ -// | revision : $Rev: 1678 $ +// | file : $Id$ +// | last update : $Date$ +// | last modifier : $Author$ +// | revision : $Revision$ // +-----------------------------------------------------------------------+ // | This program is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published by | @@ -84,15 +83,17 @@ class PwgXmlWriter { $this->_end_prev(false); $value = (string)$value; - $need_cdata = (strpos($value, "\r")!==false)?true:false; - if ($need_cdata) - { - $this->_output( '<![CDATA[' . $value . ']]>' ); - } - else - { - $this->_output( htmlspecialchars( $value ) ); - } + $this->_output( htmlspecialchars( $value ) ); + } + + function write_cdata($value) + { + $this->_end_prev(false); + $value = (string)$value; + $this->_output( + '<![CDATA[' + . str_replace(']]>', ']]>', $value) + . ']]>' ); } function write_attribute($name, $value) @@ -164,8 +165,6 @@ class PwgRestEncoder extends PwgResponseEncoder return $ret; } -//parent::flattenResponse($response); - $this->_writer = new PwgXmlWriter(); $this->encode($response); $ret = $this->_writer->getOutput(); |