Usuario.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace app\models;
  3. use oxusmedia\webAppMulti\Cuenta;
  4. use oxusmedia\webAppMulti\webApp;
  5. class Usuario
  6. {
  7. public $id, $nombre, $email, $role;
  8. public function __construct($id = null)
  9. {
  10. if ($id == null)
  11. $id = webApp::app()->getUsuarioId();
  12. $usuario = webApp::app()->db()->queryRow('SELECT * FROM usuarios WHERE id = :id', array(
  13. 'id' => $id
  14. ));
  15. if ($usuario) {
  16. $this->id = $usuario->id;
  17. $this->nombre = $usuario->nombre;
  18. $this->email = $usuario->email;
  19. $this->role = $usuario->role;
  20. return true;
  21. }
  22. return false;
  23. }
  24. public function getCuentas()
  25. {
  26. $db = webApp::app()->db();
  27. if ($this->role == webApp::ROLE_ADMIN)
  28. $cuentas = $db->query('SELECT cuentas.* FROM cuentas WHERE active = :active ORDER BY cuenta', array(
  29. 'usuario_id' => $this->id,
  30. 'active' => 1
  31. ));
  32. else
  33. $cuentas = $db->query('SELECT cuentas.*, usuarioscuentas.role FROM usuarioscuentas LEFT JOIN cuentas ON usuarioscuentas.cuenta_id = cuentas.id WHERE usuarioscuentas.usuario_id = :usuario_id AND active = :active ORDER BY cuenta', array(
  34. 'usuario_id' => $this->id,
  35. 'active' => 1
  36. ));
  37. $ctas = array();
  38. while ($cuenta = $db->getRow($cuentas)) {
  39. $cta = new Cuenta($cuenta);
  40. $cta->id = $cuenta->id;
  41. $cta->cuenta = $cuenta->cuenta;
  42. $cta->role = $this->role == webApp::ROLE_ADMIN ? webApp::ROLE_ADMIN : $cuenta->role;
  43. $ctas[] = $cta;
  44. }
  45. return $ctas;
  46. }
  47. }