PageRenderTime 55ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/utilidades/GestionUsuarios.php

https://bitbucket.org/veroreinah/bookworm
PHP | 364 lines | 296 code | 56 blank | 12 comment | 51 complexity | b6a15a01b711bd58f529713aea413ffb MD5 | raw file
Possible License(s): LGPL-3.0, LGPL-2.1
  1. <?php
  2. require_once 'conexion.php';
  3. require_once 'clases/Usuario.php';
  4. require_once 'clases/TipoUsuario.php';
  5. /*
  6. * To change this template, choose Tools | Templates
  7. * and open the template in the editor.
  8. */
  9. /**
  10. * Description of gestionUsuarios
  11. *
  12. * @author Vero
  13. */
  14. class GestionUsuarios {
  15. public static function insertarUsuario($usuario) {
  16. global $conexion;
  17. $u = new Usuario();
  18. $u = $usuario;
  19. $tipo = new TipoUsuario();
  20. $tipo = $u->getTipoUsuario();
  21. try {
  22. $query = "insert into t_usuarios
  23. (nombre_usuario, email, passw, imagen, fecha_nacimiento, facebook, id_tipo_usuario)
  24. values ('" . $u->getNombre() . "',
  25. '" . $u->getEmail() . "',
  26. '" . md5($u->getPassword()) . "',
  27. '" . $u->getImagen() . "',
  28. '" . $u->getFechaNac() . "',
  29. '" . $u->getFacebook() . "',
  30. '" . $tipo->getId() . "')";
  31. $result = mysql_query($query, $conexion);
  32. $_SESSION["insertada"] = "El usuario se ha insertado con éxito.";
  33. } catch (Exception $e) {
  34. $_SESSION["error"] = "No se ha podido insertar el usuario. Inténtelo de nuevo más tarde.";
  35. }
  36. }
  37. public static function modificarUuario($usuario) {
  38. global $conexion;
  39. $u = new Usuario();
  40. $u = $usuario;
  41. $pass = "";
  42. if ($u->getPassword() == "") {
  43. } else {
  44. $pass = " passw = '" . md5($u->getPassword()) . "',";
  45. }
  46. $imagen = "";
  47. if ($u->getImagen() == "") {
  48. } else {
  49. $imagen = " imagen = '" . $u->getImagen() . "',";
  50. }
  51. try {
  52. $query = "update t_usuarios
  53. set nombre_usuario = '" . $u->getNombre() . "',
  54. email = '" . $u->getEmail() . "',
  55. $pass
  56. $imagen
  57. fecha_nacimiento = '" . $u->getFechaNac() . "',
  58. facebook = '" . $u->getFacebook() . "'
  59. where id_usuario = '" . $u->getId() . "'";
  60. $result = mysql_query($query, $conexion);
  61. $affected_rows = mysql_affected_rows();
  62. //Cambiamos los datos que había almacenados en la sesión si es el usuario registrado
  63. if ($affected_rows > 0 && isset($_SESSION["usuario"])) {
  64. $usuario = new Usuario();
  65. $usuario = unserialize($_SESSION["usuario"]);
  66. if ($usuario->getId() == $u->getId()) {
  67. session_unregister("usuario");
  68. $user = new Usuario();
  69. $user = GestionUsuarios::recuperarUsuario($u->getId());
  70. $_SESSION["usuario"] = serialize($user);
  71. }
  72. }
  73. return $affected_rows;
  74. } catch (Exception $e) {
  75. $_SESSION["error"] = "No se ha podido modificar el usuario. Inténtelo de nuevo más tarde.";
  76. }
  77. }
  78. public static function eliminarUsuario($id) {
  79. global $conexion;
  80. try {
  81. $query1 = "update t_libros set id_usuario = 11 where id_usuario = $id";
  82. $query2 = "delete from t_comentarios where id_usuario = $id";
  83. $query3 = "delete from t_denuncias where id_usuario = $id";
  84. $query4 = "delete from t_invitacion where id_usuario = $id";
  85. $query5 = "delete from t_usuario_libros where id_usuario = $id";
  86. $query6 = "delete from t_usuario_usuario where id_usuario_inv = $id or id_usuario_rec = $id";
  87. $query7 = "delete from t_usuarios where id_usuario = '" . $id . "'";
  88. $result = mysql_query($query1, $conexion);
  89. $result = mysql_query($query2, $conexion);
  90. $result = mysql_query($query3, $conexion);
  91. $result = mysql_query($query4, $conexion);
  92. $result = mysql_query($query5, $conexion);
  93. $result = mysql_query($query6, $conexion);
  94. $result = mysql_query($query7, $conexion);
  95. return mysql_affected_rows();
  96. } catch (Exception $e) {
  97. $_SESSION["error"] = "No se ha podido eliminar el usuario. Inténtelo de nuevo más tarde.";
  98. }
  99. }
  100. public static function recuperarUsuario($id) {
  101. global $conexion;
  102. try {
  103. $query = "SELECT id_usuario, nombre_usuario, email, passw, imagen, fecha_nacimiento, facebook, t_usuarios.id_tipo_usuario, descripcion_tipo_usuario
  104. FROM t_usuarios inner join t_tipo_usuario
  105. on t_usuarios.id_tipo_usuario = t_tipo_usuario.id_tipo_usuario
  106. where id_usuario = $id";
  107. $result = mysql_query($query, $conexion);
  108. $row = mysql_fetch_array($result);
  109. if (!$row) {
  110. $_SESSION["noHay"] = "No existe ningún usuario con ese identificador en BookWorm.";
  111. return 0;
  112. } else {
  113. $usuario = new Usuario();
  114. $usuario->setId($row["id_usuario"]);
  115. $usuario->setNombre($row["nombre_usuario"]);
  116. $usuario->setEmail($row["email"]);
  117. //$usuario->setPassword($row["passw"]);
  118. $usuario->setImagen($row["imagen"]);
  119. $usuario->setFechaNac($row["fecha_nacimiento"]);
  120. $usuario->setFacebook($row["facebook"]);
  121. $tipo = new TipoUsuario();
  122. $tipo->setId($row["id_tipo_usuario"]);
  123. $tipo->setDescripcion($row["descripcion_tipo_usuario"]);
  124. $usuario->setTipoUsuario($tipo);
  125. return $usuario;
  126. }
  127. } catch (Exception $e) {
  128. $_SESSION["error"] = "No se han podido recuperar los datos del usuario. Inténtelo de nuevo más tarde.";
  129. }
  130. }
  131. public static function recuperarUsuarioPorEmail($email) {
  132. global $conexion;
  133. try {
  134. $query = "SELECT id_usuario, nombre_usuario, email, passw, imagen, fecha_nacimiento, facebook, t_usuarios.id_tipo_usuario, descripcion_tipo_usuario
  135. FROM t_usuarios inner join t_tipo_usuario
  136. on t_usuarios.id_tipo_usuario = t_tipo_usuario.id_tipo_usuario
  137. where email = '$email'";
  138. $result = mysql_query($query, $conexion);
  139. $row = mysql_fetch_array($result);
  140. if (!$row) {
  141. $_SESSION["noHay"] = "No existe ningún usuario con ese email en BookWorm.";
  142. return 0;
  143. } else {
  144. $usuario = new Usuario();
  145. $usuario->setId($row["id_usuario"]);
  146. $usuario->setNombre($row["nombre_usuario"]);
  147. $usuario->setEmail($row["email"]);
  148. //$usuario->setPassword($row["passw"]);
  149. $usuario->setImagen($row["imagen"]);
  150. $usuario->setFechaNac($row["fecha_nacimiento"]);
  151. $usuario->setFacebook($row["facebook"]);
  152. $tipo = new TipoUsuario();
  153. $tipo->setId($row["id_tipo_usuario"]);
  154. $tipo->setDescripcion($row["descripcion_tipo_usuario"]);
  155. $usuario->setTipoUsuario($tipo);
  156. return $usuario;
  157. }
  158. } catch (Exception $e) {
  159. $_SESSION["error"] = "No se han podido recuperar los datos del usuario. Inténtelo de nuevo más tarde.";
  160. }
  161. }
  162. public static function recuperarUsuariosL($begin, $limit, $field, $order, $where, $id = 0) {
  163. global $conexion;
  164. $usuarios = array();
  165. if ($begin != "" && $limit != "") {
  166. $l = " limit $begin, $limit ";
  167. }
  168. if ($field != "" && $order != "") {
  169. $orderBy = " order by $field $order ";
  170. }
  171. if ($where != "") {
  172. $w = " where nombre_usuario like '%$where%' or email like '%$where%' ";
  173. }
  174. if ($id != 0) {
  175. if (isset($w)) {
  176. $i = " and id_usuario != $id ";
  177. } else {
  178. $i = " where id_usuario != $id ";
  179. }
  180. }
  181. try {
  182. $query = "SELECT id_usuario, nombre_usuario, email
  183. FROM t_usuarios";
  184. if (isset($w)) {
  185. $query = $query . $w;
  186. }
  187. if (isset($i)) {
  188. $query = $query . $i;
  189. }
  190. if (isset($orderBy)) {
  191. $query = $query . $orderBy;
  192. }
  193. if (isset($l)) {
  194. $query = $query . $l;
  195. }
  196. $result = mysql_query($query, $conexion);
  197. while($row = mysql_fetch_array($result)) {
  198. $usuario = new Usuario();
  199. $usuario->setId($row["id_usuario"]);
  200. $usuario->setNombre($row["nombre_usuario"]);
  201. $usuario->setEmail($row["email"]);
  202. $usuarios[] = $usuario;
  203. }
  204. if (count($usuarios) > 0) {
  205. } else {
  206. $_SESSION["noHay"] = "No existe ningún usuario en Bookworm.";
  207. }
  208. return $usuarios;
  209. } catch (Exception $e) {
  210. $_SESSION["error"] = "No se han podido recuperar los usuarios. Inténtelo de nuevo más tarde.";
  211. }
  212. }
  213. public static function recuperarUsuarios() {
  214. global $conexion;
  215. $usuarios = array();
  216. try {
  217. $query = "SELECT id_usuario, nombre_usuario, email
  218. FROM t_usuarios";
  219. $result = mysql_query($query, $conexion);
  220. while($row = mysql_fetch_array($result)) {
  221. $usuario = new Usuario();
  222. $usuario->setId($row["id_usuario"]);
  223. $usuario->setNombre($row["nombre_usuario"]);
  224. $usuario->setEmail($row["email"]);
  225. $usuarios[] = $usuario;
  226. }
  227. if (count($usuarios) > 0) {
  228. return $usuarios;
  229. } else {
  230. $_SESSION["noHay"] = "No existe ningún usuario en Bookworm.";
  231. return 0;
  232. }
  233. } catch (Exception $e) {
  234. $_SESSION["error"] = "No se han podido recuperar los usuarios. Inténtelo de nuevo más tarde.";
  235. }
  236. }
  237. public static function totalUsuarios($id = 0) {
  238. global $conexion;
  239. if ($id != 0) {
  240. $i = " where id_usuario != $id ";
  241. }
  242. try {
  243. $query = "select count(*) as total
  244. from t_usuarios $i";
  245. $result = mysql_query($query, $conexion);
  246. $row = mysql_fetch_array($result);
  247. $total = $row["total"];
  248. return $total;
  249. } catch (Exception $e) {
  250. $_SESSION["error"] = "No se han podido recuperar los usuarios. Inténtelo de nuevo más tarde.";
  251. }
  252. }
  253. public static function totalFiltered($where, $id = 0) {
  254. global $conexion;
  255. if ($where != "") {
  256. $w = " where nombre_usuario like '%$where%' or email like '%$where%' ";
  257. }
  258. if ($id != 0) {
  259. if (isset($w)) {
  260. $i = " and id_usuario != $id ";
  261. } else {
  262. $i = " where id_usuario != $id ";
  263. }
  264. }
  265. try {
  266. $query = "select count(*) as total
  267. from t_usuarios
  268. $w $i";
  269. $result = mysql_query($query, $conexion);
  270. $row = mysql_fetch_array($result);
  271. $total = $row["total"];
  272. return $total;
  273. } catch (Exception $e) {
  274. $_SESSION["error"] = "No se han podido recuperar los usuarios. Inténtelo de nuevo más tarde.";
  275. }
  276. }
  277. public static function existeUsuario($email) {
  278. global $conexion;
  279. try {
  280. $query = "SELECT *
  281. FROM t_usuarios
  282. where email like '" . $email . "'";
  283. $result = mysql_query($query, $conexion);
  284. $row = mysql_fetch_array($result);
  285. if (!$row) {
  286. return false;
  287. } else {
  288. return true;
  289. }
  290. } catch (Exception $e) {
  291. $_SESSION["error"] = "No se ha podido recuperar el usuario. Inténtelo de nuevo más tarde.";
  292. }
  293. }
  294. public static function restablecerPassword($email) {
  295. global $conexion;
  296. $password = uniqid();
  297. try {
  298. $query = "UPDATE t_usuarios
  299. set passw = '" . md5($password) . "'
  300. where email = '" . $email . "'";
  301. $result = mysql_query($query, $conexion);
  302. return $password;
  303. } catch (Exception $e) {
  304. $_SESSION["error"] = "No se ha podido recuperar el usuario. Inténtelo de nuevo más tarde.";
  305. }
  306. }
  307. }
  308. ?>