PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/public/phpmyadmin/libraries/relation_cleanup.lib.php

https://gitlab.com/qbarbosa/klindev
PHP | 295 lines | 221 code | 37 blank | 37 comment | 29 complexity | 7fa9c4d22ba52a71e3baa654a94e384d MD5 | raw file
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Set of functions used for cleaning up phpMyAdmin tables
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. if (! defined('PHPMYADMIN')) {
  9. exit;
  10. }
  11. /**
  12. * Cleanup column related relation stuff
  13. *
  14. * @param string $db database name
  15. * @param string $table table name
  16. * @param string $column column name
  17. *
  18. * @return void
  19. */
  20. function PMA_relationsCleanupColumn($db, $table, $column)
  21. {
  22. $cfgRelation = PMA_getRelationsParam();
  23. if ($cfgRelation['commwork']) {
  24. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  25. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  26. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  27. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  28. . ' AND column_name = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  29. PMA_queryAsControlUser($remove_query);
  30. }
  31. if ($cfgRelation['displaywork']) {
  32. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  33. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  34. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  35. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  36. . ' AND display_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  37. PMA_queryAsControlUser($remove_query);
  38. }
  39. if ($cfgRelation['relwork']) {
  40. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  41. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  42. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  43. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  44. . ' AND master_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  45. PMA_queryAsControlUser($remove_query);
  46. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  47. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  48. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  49. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  50. . ' AND foreign_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  51. PMA_queryAsControlUser($remove_query);
  52. }
  53. }
  54. /**
  55. * Cleanup table related relation stuff
  56. *
  57. * @param string $db database name
  58. * @param string $table table name
  59. *
  60. * @return void
  61. */
  62. function PMA_relationsCleanupTable($db, $table)
  63. {
  64. $cfgRelation = PMA_getRelationsParam();
  65. if ($cfgRelation['commwork']) {
  66. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  67. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  68. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  69. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  70. PMA_queryAsControlUser($remove_query);
  71. }
  72. if ($cfgRelation['displaywork']) {
  73. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  74. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  75. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  76. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  77. PMA_queryAsControlUser($remove_query);
  78. }
  79. if ($cfgRelation['pdfwork']) {
  80. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  81. . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  82. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  83. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  84. PMA_queryAsControlUser($remove_query);
  85. }
  86. if ($cfgRelation['relwork']) {
  87. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  88. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  89. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  90. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  91. PMA_queryAsControlUser($remove_query);
  92. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  93. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  94. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  95. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  96. PMA_queryAsControlUser($remove_query);
  97. }
  98. if ($cfgRelation['uiprefswork']) {
  99. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  100. . '.' . PMA_Util::backquote($cfgRelation['table_uiprefs'])
  101. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  102. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  103. PMA_queryAsControlUser($remove_query);
  104. }
  105. if ($cfgRelation['navwork']) {
  106. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  107. . '.' . PMA_Util::backquote($cfgRelation['navigationhiding'])
  108. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  109. . ' AND (table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  110. . ' OR (item_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  111. . ' AND item_type = \'table\'))';
  112. PMA_queryAsControlUser($remove_query);
  113. }
  114. }
  115. /**
  116. * Cleanup database related relation stuff
  117. *
  118. * @param string $db database name
  119. *
  120. * @return void
  121. */
  122. function PMA_relationsCleanupDatabase($db)
  123. {
  124. $cfgRelation = PMA_getRelationsParam();
  125. if ($cfgRelation['commwork']) {
  126. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  127. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  128. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  129. PMA_queryAsControlUser($remove_query);
  130. }
  131. if ($cfgRelation['bookmarkwork']) {
  132. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  133. . '.' . PMA_Util::backquote($cfgRelation['bookmark'])
  134. . ' WHERE dbase = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  135. PMA_queryAsControlUser($remove_query);
  136. }
  137. if ($cfgRelation['displaywork']) {
  138. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  139. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  140. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  141. PMA_queryAsControlUser($remove_query);
  142. }
  143. if ($cfgRelation['pdfwork']) {
  144. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  145. . '.' . PMA_Util::backquote($cfgRelation['pdf_pages'])
  146. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  147. PMA_queryAsControlUser($remove_query);
  148. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  149. . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  150. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  151. PMA_queryAsControlUser($remove_query);
  152. }
  153. if ($cfgRelation['relwork']) {
  154. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  155. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  156. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  157. PMA_queryAsControlUser($remove_query);
  158. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  159. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  160. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  161. PMA_queryAsControlUser($remove_query);
  162. }
  163. if ($cfgRelation['uiprefswork']) {
  164. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  165. . '.' . PMA_Util::backquote($cfgRelation['table_uiprefs'])
  166. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  167. PMA_queryAsControlUser($remove_query);
  168. }
  169. if ($cfgRelation['navwork']) {
  170. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  171. . '.' . PMA_Util::backquote($cfgRelation['navigationhiding'])
  172. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  173. PMA_queryAsControlUser($remove_query);
  174. }
  175. if ($cfgRelation['savedsearcheswork']) {
  176. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  177. . '.' . PMA_Util::backquote($cfgRelation['savedsearches'])
  178. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  179. PMA_queryAsControlUser($remove_query);
  180. }
  181. if ($cfgRelation['centralcolumnswork']) {
  182. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  183. . '.' . PMA_Util::backquote($cfgRelation['central_columns'])
  184. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  185. PMA_queryAsControlUser($remove_query);
  186. }
  187. }
  188. /**
  189. * Cleanup user related relation stuff
  190. *
  191. * @param string $username username
  192. *
  193. * @return void
  194. */
  195. function PMA_relationsCleanupUser($username)
  196. {
  197. $cfgRelation = PMA_getRelationsParam();
  198. if ($cfgRelation['bookmarkwork']) {
  199. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  200. . "." . PMA_Util::backquote($cfgRelation['bookmark'])
  201. . " WHERE `user` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  202. PMA_queryAsControlUser($remove_query);
  203. }
  204. if ($cfgRelation['historywork']) {
  205. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  206. . "." . PMA_Util::backquote($cfgRelation['history'])
  207. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  208. PMA_queryAsControlUser($remove_query);
  209. }
  210. if ($cfgRelation['recentwork']) {
  211. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  212. . "." . PMA_Util::backquote($cfgRelation['recent'])
  213. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  214. PMA_queryAsControlUser($remove_query);
  215. }
  216. if ($cfgRelation['favoritework']) {
  217. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  218. . "." . PMA_Util::backquote($cfgRelation['favorite'])
  219. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  220. PMA_queryAsControlUser($remove_query);
  221. }
  222. if ($cfgRelation['uiprefswork']) {
  223. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  224. . "." . PMA_Util::backquote($cfgRelation['table_uiprefs'])
  225. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  226. PMA_queryAsControlUser($remove_query);
  227. }
  228. if ($cfgRelation['userconfigwork']) {
  229. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  230. . "." . PMA_Util::backquote($cfgRelation['userconfig'])
  231. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  232. PMA_queryAsControlUser($remove_query);
  233. }
  234. if ($cfgRelation['menuswork']) {
  235. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  236. . "." . PMA_Util::backquote($cfgRelation['users'])
  237. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  238. PMA_queryAsControlUser($remove_query);
  239. }
  240. if ($cfgRelation['navwork']) {
  241. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  242. . "." . PMA_Util::backquote($cfgRelation['navigationhiding'])
  243. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  244. PMA_queryAsControlUser($remove_query);
  245. }
  246. if ($cfgRelation['savedsearcheswork']) {
  247. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  248. . "." . PMA_Util::backquote($cfgRelation['savedsearches'])
  249. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  250. PMA_queryAsControlUser($remove_query);
  251. }
  252. if ($cfgRelation['designersettingswork']) {
  253. $remove_query = "DELETE FROM " . PMA_Util::backquote($cfgRelation['db'])
  254. . "." . PMA_Util::backquote($cfgRelation['designer_settings'])
  255. . " WHERE `username` = '" . PMA_Util::sqlAddSlashes($username) . "'";
  256. PMA_queryAsControlUser($remove_query);
  257. }
  258. }