/**
  * @param userId
  * @param password
  * @throws Exception
  */
 public User autenticarUsuario(String username, String password) throws Exception {
   User u = userDao.getUser(username);
   if (u != null) {
     String loginPwd = this.generarPassword(username, password);
     if (loginPwd.equals(u.getPassword())) return u;
     else return null;
   } else {
     throw new Exception("Usuario inexistente");
   }
 }
 private String getMailList() {
   String mailList = "";
   List<User> adminUsers = this.userDao.getAdministratorUsers();
   Iterator<User> itUser = adminUsers.iterator();
   while (itUser.hasNext()) {
     User u = itUser.next();
     mailList = mailList + u.getEmail() + ",";
   }
   return mailList;
 }
  /**
   * Genera una nueva contraseña para el usuario
   *
   * @param username
   * @return
   */
  public boolean resetearContrasena(String username) {
    User u = this.getUser(username);
    if (u != null) {
      String randomString = (UUID.randomUUID().toString()).replace("-", "");
      String newPass = this.generarPassword(username, randomString);

      u.setPassword(newPass);
      this.userDao.updateUser(u);
      MailManager.sendPasswordMail(
          u.getName(),
          u.getEmail(),
          "TMN Integral - Nueva Contraseña",
          "Su nueva contraseña es: " + randomString);
      return true;
    }

    return false;
  }
  /**
   * @param nombre
   * @param apellido
   * @param email
   * @param username
   * @param password
   * @return
   */
  public User modificarUsuario(
      String nombre, String apellido, String email, String username, String password) {
    User u = this.getUser(username);
    if (u != null) {
      if (!u.getName().equals(nombre)) u.setName(nombre);
      if (!u.getLastName().equals(apellido)) u.setLastName(apellido);
      if (!u.getEmail().equals(email)) u.setEmail(email);
      String encPwd = this.generarPassword(username, password);
      if (!u.getPassword().equals(encPwd)) u.setPassword(encPwd);

      this.userDao.updateUser(u);
    }

    return u;
  }