def recover(self):
     userName = self.receiveUsername()
     result = UserController.getEmail(userName)
     if result:
         codigo = ''.join(
             random.choice(string.ascii_uppercase + string.digits)
             for _ in range(8))
         MailUtil.sendRecovery(result, codigo)
         self.connection.send({
             "operacion": "RecoveryCode",
             "resultado": "OK"
         })
         cod = self.connection.receive()
         if (cod == codigo):
             self.connection.send({
                 "operacion": "ChangePassword",
                 "resultado": "OK"
             })
             newPassword = self.connection.receiveLogin()
             UserController.setNewPassword(userName, newPassword)
             self.connection.send("Contraseña cambiada con éxito")
         else:
             self.connection.send({
                 "operacion": "ChangePassword",
                 "resultado": "ERROR"
             })
             # Hecho asi , hay una sola oportunidad para poner el codigo correctamente
     else:
         self.connection.send({
             "operacion": "RecoveryCode",
             "resultado": "ERROR"
         })