Implementado Solicitar Token de Seguridad (Web)
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,24 @@
|
|||||||
|
# Generated by Django 5.1.2 on 2024-11-13 10:45
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('home', '0004_alter_accountactivation_salt_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SecurityToken',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('user_id', models.IntegerField()),
|
||||||
|
('token', models.CharField(max_length=6)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('expires_at', models.DateTimeField()),
|
||||||
|
('ip_address', models.GenericIPAddressField()),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
||||||
Binary file not shown.
@@ -4,6 +4,8 @@ from django_ckeditor_5.fields import CKEditor5Field
|
|||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
import uuid
|
import uuid
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
import secrets
|
||||||
|
|
||||||
class Noticia(models.Model):
|
class Noticia(models.Model):
|
||||||
titulo = models.CharField(max_length=200)
|
titulo = models.CharField(max_length=200)
|
||||||
@@ -114,4 +116,16 @@ class AccountActivation(models.Model):
|
|||||||
def is_expired(self):
|
def is_expired(self):
|
||||||
return timezone.now() > self.created_at + timezone.timedelta(hours=1)
|
return timezone.now() > self.created_at + timezone.timedelta(hours=1)
|
||||||
|
|
||||||
|
|
||||||
|
class SecurityToken(models.Model):
|
||||||
|
user_id = models.IntegerField() # Referencia al ID del usuario en `acore_auth`
|
||||||
|
token = models.CharField(max_length=6)
|
||||||
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
|
expires_at = models.DateTimeField()
|
||||||
|
ip_address = models.GenericIPAddressField()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"Token for user_id {self.user_id}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
$(function() {
|
||||||
|
$('.sec-token-button').on('click', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
var button = $(this);
|
||||||
|
var originalText = button.html();
|
||||||
|
var data = $("#uw-sec-token-form").serialize();
|
||||||
|
|
||||||
|
// Cambiar el texto del botón a "Solicitando token"
|
||||||
|
changeButton(button, 'Solicitando token');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: '',
|
||||||
|
data: data,
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(response) {
|
||||||
|
$("#sec-token-response").html(response.message).hide().slideDown();
|
||||||
|
|
||||||
|
if (response.success) {
|
||||||
|
// Actualizar la fecha del token en la página si se ha generado correctamente
|
||||||
|
if (response.token_date) {
|
||||||
|
$("#token-date").text(response.token_date);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cambiar el texto del botón a "Token enviado"
|
||||||
|
button.html("Token enviado").css("color", "#d79602");
|
||||||
|
|
||||||
|
// Restablecer el botón después de 5 segundos
|
||||||
|
setTimeout(function() {
|
||||||
|
restoreButton(button, originalText);
|
||||||
|
$("#sec-token-response").slideUp(function() {
|
||||||
|
$("#sec-token-response").empty();
|
||||||
|
});
|
||||||
|
}, 5000);
|
||||||
|
} else {
|
||||||
|
// Restablecer el botón y ocultar el mensaje en caso de error
|
||||||
|
setTimeout(function() {
|
||||||
|
$("#sec-token-response").slideUp(function() {
|
||||||
|
$("#sec-token-response").empty();
|
||||||
|
restoreButton(button, originalText);
|
||||||
|
});
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
alert("Algo ha salido mal. Por favor, intenta más tarde.");
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function changeButton(button, text) {
|
||||||
|
button.prop('disabled', true).html(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
function restoreButton(button, originalText) {
|
||||||
|
button.prop('disabled', false).html(originalText).css("color", "");
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<td align="center" style="padding:0;Margin:0">
|
<td align="center" style="padding:0;Margin:0">
|
||||||
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px">
|
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
|
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
|
||||||
|
|
||||||
<table cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border-spacing:0px;float:left">
|
<table cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border-spacing:0px;float:left">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
@@ -48,14 +48,14 @@
|
|||||||
<td align="center" valign="top" style="padding:0;Margin:0;width:600px">
|
<td align="center" valign="top" style="padding:0;Margin:0;width:600px">
|
||||||
<table cellpadding="0" cellspacing="0" width="100%" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
<table cellpadding="0" cellspacing="0" width="100%" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&source=gmail&ust=1731498433468000&usg=AOvVaw3nPd4Lj8GE_62E_stVyXcu"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.webp" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
|
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&source=gmail&ust=1731498433468000&usg=AOvVaw3nPd4Lj8GE_62E_stVyXcu"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.webp" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody></table></td>
|
</tbody></table></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody></table></td>
|
</tbody></table></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr style="border-collapse:collapse">
|
<tr style="border-collapse:collapse">
|
||||||
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
|
<td align="left" background="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url({{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
|
||||||
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;width:520px">
|
<td valign="top" align="center" style="padding:0;Margin:0;width:520px">
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
||||||
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td align="center" style="padding:0;Margin:0;padding-top:10px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ffffff">SÍGUENOS EN</p></td>
|
<td align="center" style="padding:0;Margin:0;padding-top:10px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ffffff">SÍGUENOS EN</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -116,10 +116,10 @@
|
|||||||
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
|
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
|
||||||
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&source=gmail&ust=1731498433469000&usg=AOvVaw2ZYRFnIqpWDQyggiWBGXiO"><img title="Facebook" src="https://ci3.googleusercontent.com/meips/ADKq_NZilnlcbCQgXaGDD49GJm1QFsSdTisHSRzUuQh4d4QKoFs3Ys9JhJPXVNdR_KpKC5vmyUcWWJUIsqn1GXLM6BGlwAHTecUwfe2DsIMiYGRh6vzdCmKKVc0G0EeWORl4DkybPNIUgPikBA=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&source=gmail&ust=1731498433469000&usg=AOvVaw2ZYRFnIqpWDQyggiWBGXiO"><img title="Facebook" src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&source=gmail&ust=1731498433469000&usg=AOvVaw3a1MAk7G2C1gKYxEBcZ596"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&source=gmail&ust=1731498433469000&usg=AOvVaw3a1MAk7G2C1gKYxEBcZ596"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&source=gmail&ust=1731498433469000&usg=AOvVaw0mNhdOEFArJFuU_zdxLrVr"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&source=gmail&ust=1731498433469000&usg=AOvVaw0mNhdOEFArJFuU_zdxLrVr"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&source=gmail&ust=1731498433469000&usg=AOvVaw09YlWuRMpxVueGWvjg9E08"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&source=gmail&ust=1731498433469000&usg=AOvVaw09YlWuRMpxVueGWvjg9E08"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody></table></td>
|
</tbody></table></td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
||||||
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
<table width="100%" cellspacing="0" cellpadding="0" background="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url({{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
||||||
<tbody><tr style="border-collapse:collapse">
|
<tbody><tr style="border-collapse:collapse">
|
||||||
<td align="center" style="padding:0;Margin:0;padding-top:10px;padding-bottom:15px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#5c4c44"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z&source=gmail&ust=1731498433469000&usg=AOvVaw2dsWhHN3CcN0kKQnyUm91o">Términos y Condiciones</a> | <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k&source=gmail&ust=1731498433469000&usg=AOvVaw0pVCr9IINwuwAKBTAXvMid">Política de Reembolso</a> | <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5&source=gmail&ust=1731498433469000&usg=AOvVaw3DoZqMDsaHsX7G4FIF7Fqy">Política de Privacidad</a><br><span class="il">{{ NOMBRE_SERVIDOR }}</span> © {{ ANIO_ACTUAL }}</p></td>
|
<td align="center" style="padding:0;Margin:0;padding-top:10px;padding-bottom:15px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#5c4c44"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z&source=gmail&ust=1731498433469000&usg=AOvVaw2dsWhHN3CcN0kKQnyUm91o">Términos y Condiciones</a> | <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k&source=gmail&ust=1731498433469000&usg=AOvVaw0pVCr9IINwuwAKBTAXvMid">Política de Reembolso</a> | <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5&source=gmail&ust=1731498433469000&usg=AOvVaw3DoZqMDsaHsX7G4FIF7Fqy">Política de Privacidad</a><br><span class="il">{{ NOMBRE_SERVIDOR }}</span> © {{ ANIO_ACTUAL }}</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -0,0 +1,163 @@
|
|||||||
|
<div class=""><div class="aHl"></div><div id=":ne" tabindex="-1"></div><div id=":n4" class="ii gt" jslog="20277; u014N:xr6bB; 1:WyIjdGhyZWFkLWY6MTgxNTYwMTcyMTAzMjE0ODI0NyJd; 4:WyIjbXNnLWY6MTgxNTYwMTcyMTAzMjE0ODI0NyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDBd"><div id=":n3" class="a3s aiL "><u></u>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div style="width:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';padding:0;Margin:0">
|
||||||
|
<div style="background-color:#0f0f0f">
|
||||||
|
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px;padding:0;Margin:0;width:100%;height:100%;background-repeat:repeat;background-position:center top">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td valign="top" style="padding:0;Margin:0">
|
||||||
|
<table cellpadding="0" cellspacing="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0">
|
||||||
|
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
|
||||||
|
|
||||||
|
<table cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border-spacing:0px;float:left">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0;width:280px">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" id="m_-6152822836979538909title-mail-header" style="padding:0;Margin:0"><p style="Margin:0;font-size:11px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:17px;color:#b1997f">TOKEN DE SEGURIDAD</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
|
||||||
|
<table cellspacing="0" cellpadding="0" align="right" style="border-collapse:collapse;border-spacing:0px;float:right">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td style="padding:0;Margin:0">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr id="m_-6152822836979538909header-mail-links" style="border-collapse:collapse">
|
||||||
|
<td style="Margin:0;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:0px;border:0" width="50%" bgcolor="transparent" align="center"><a style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;display:block;color:#2471a9" href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/1/MGBEqfpUgZk3chR5ONozHg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/1/MGBEqfpUgZk3chR5ONozHg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&source=gmail&ust=1731586528916000&usg=AOvVaw3T9Ry0HidzS4whXEEmkUj2">Ir al sitio</a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0">
|
||||||
|
<table style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px" cellspacing="0" cellpadding="0" align="center">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0">
|
||||||
|
<table cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" valign="top" style="padding:0;Margin:0;width:600px">
|
||||||
|
<table cellpadding="0" cellspacing="0" width="100%" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/2/Oc3Ms2hgpLMpVtp0iMlXJg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/2/Oc3Ms2hgpLMpVtp0iMlXJg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&source=gmail&ust=1731586528916000&usg=AOvVaw39mBNeCVjuJP_TJECAjLxp"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.png" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;width:520px">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0"><h1 style="Margin:0;line-height:45px;font-family:georgia,times,'times new roman',serif;font-size:30px;font-style:normal;font-weight:normal;color:#b17c02">Token de Seguridad</h1></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">Alguien desde la IP {{ ip_address }} ha solicitado el Token de seguridad para la cuenta {{ username }}.<br>Si no has sido tú, te recomendamos cambiar la contraseña de tu cuenta.<br><br>Tus datos de cuenta son:</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#b1997f">Cuenta: {{ username }}<br>Token de Seguridad: {{ token }}<br><br></p></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">Recuerda que este Token es sensible a mayúsculas y minúsculas.<br>Al usarlo, escríbelo exactamente de la misma forma que aparece aquí.</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:20px;Margin:0;font-size:0">
|
||||||
|
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td style="padding:0;Margin:0;border-bottom:2px solid #5c4c44;background:none;height:1px;width:100%;margin:0px"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0;padding-top:5px;padding-bottom:20px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">¡No compartas el Token de Seguridad con nadie!<br><br><br>Atentamente, el Equipo de {{ NOMBRE_SERVIDOR }}.</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
<table cellpadding="0" cellspacing="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0">
|
||||||
|
<table cellspacing="0" cellpadding="0" align="center" style="background-color:transparent;border-collapse:collapse;border-spacing:0px;width:600px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="left" style="padding:0;Margin:0">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0;padding-top:10px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ffffff">SÍGUENOS EN</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
|
||||||
|
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/3/eMeZ3SH3ZpE3H1-iw92R8w/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/3/eMeZ3SH3ZpE3H1-iw92R8w/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&source=gmail&ust=1731586528916000&usg=AOvVaw0ltaEwsMuiGRL2DP8YsxZS"><img title="Facebook" src="https://ci3.googleusercontent.com/meips/ADKq_NZilnlcbCQgXaGDD49GJm1QFsSdTisHSRzUuQh4d4QKoFs3Ys9JhJPXVNdR_KpKC5vmyUcWWJUIsqn1GXLM6BGlwAHTecUwfe2DsIMiYGRh6vzdCmKKVc0G0EeWORl4DkybPNIUgPikBA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/4/fymnSH5a4-LsG8RH61xSWQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/4/fymnSH5a4-LsG8RH61xSWQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&source=gmail&ust=1731586528916000&usg=AOvVaw2-krZEF84e2lo8xjP85ceZ"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/5/NNX_cghtGsHreE-aPj9g1A/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/5/NNX_cghtGsHreE-aPj9g1A/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&source=gmail&ust=1731586528916000&usg=AOvVaw34jaboIURRtHrkCUUxMDCo"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/6/uxFAHEwPFZyyoIfyKN2i0Q/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/6/uxFAHEwPFZyyoIfyKN2i0Q/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&source=gmail&ust=1731586528916000&usg=AOvVaw35gzM0dgKG8QFWbaErRb5S"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
<tr style="border-collapse:collapse">
|
||||||
|
<td style="padding:0;Margin:0" align="left">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
|
||||||
|
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
|
||||||
|
<tbody><tr style="border-collapse:collapse">
|
||||||
|
<td align="center" style="padding:0;Margin:0;padding-top:10px;padding-bottom:15px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#5c4c44"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/7/gW554gvv1wvMdFBMyZJEBQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/7/gW554gvv1wvMdFBMyZJEBQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z&source=gmail&ust=1731586528916000&usg=AOvVaw0mS9wOaJS7g7XyJCz5ZHwf">Términos y Condiciones</a> | <a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/8/pAW0ZbVFf6fPl9Ch2pJi6g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/8/pAW0ZbVFf6fPl9Ch2pJi6g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k&source=gmail&ust=1731586528916000&usg=AOvVaw3akrXM3foI7oi-tQNc2Ja4">Política de Reembolso</a> | <a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/9/DEEnndjoRg4gzDjv_4Xn_g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/9/DEEnndjoRg4gzDjv_4Xn_g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5&source=gmail&ust=1731586528916000&usg=AOvVaw3ANOEzlHeVGFQc0SCUfHg4">Política de Privacidad</a><br>{{ NOMBRE_SERVIDOR }} © {{ ANIO_ACTUAL }}</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</div>
|
||||||
|
<br><a style="font-family:Arial,sans-serif" href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=1" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D1&source=gmail&ust=1731586528916000&usg=AOvVaw27bfsinVJjoIjvw7SUEke7">​</a><div style="display:none;height:0px;width:0px;overflow:hidden"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=2" rel="noreferrer" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D2&source=gmail&ust=1731586528916000&usg=AOvVaw38Ql-LUoglc9YYPmg_RQr3">Click on me</a></div><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=3" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D3&source=gmail&ust=1731586528916000&usg=AOvVaw0jgJOOmTH0DNToOBL2REW-">
|
||||||
|
<img src="https://ci3.googleusercontent.com/meips/ADKq_NaOOYGTBCERULgUShUPJS2ZRmLb4VQ1WG0gcfJa3pJm89cJpmSx4agN4VT3V1CS51FQowD-UQ1rjl1cQNS73dUGLsTRr65QGhdsbnmEWsWk8s_Xad7bsxXu4GzKY9hj5sdLtwKynZzhHOQatM4_-CDaReCp7mzC-b8fyBfmegheCy7aTuIrBeyGmtRh=s0-d-e1-ft#https://079xk.mjt.lu/oo/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/a398f5af/e.gif" height="1" width="1" alt="" border="0" style="height:1px;width:1px;border:0" class="CToWUd" data-bit="iit" jslog="138226; u014N:xr6bB; 53:WzAsMl0.">
|
||||||
|
</a></div><div class="yj6qo"></div><div class="adL">
|
||||||
|
|
||||||
|
</div></div></div><div class="WhmR8e" data-hash="0"></div></div>
|
||||||
@@ -48,6 +48,7 @@
|
|||||||
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js"></script>
|
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js"></script>
|
||||||
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/change_email_response.js"></script>
|
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/change_email_response.js"></script>
|
||||||
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/register.js"></script>
|
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/register.js"></script>
|
||||||
|
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js"></script>
|
||||||
<script>var aowow_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
|
<script>var aowow_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
|
||||||
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/nw-scripts.js"></script>
|
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/nw-scripts.js"></script>
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,10 @@
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<p>Fecha de solicitud de Token de seguridad:</p>
|
<p>Fecha de solicitud de Token de seguridad:</p>
|
||||||
<p><span>Sin solicitar</span></p>
|
<p><span id="token-date">{{ token_date }}</span></p>
|
||||||
<br>
|
<br>
|
||||||
<form id="uw-sec-token-form" action="" method="POST" accept-charset="utf-8">
|
<form id="nw-sec-token-form" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
<button class="sec-token-button" type="submit" name="securitytoken" data-id="Sectoken">Solicitar token</button>
|
<button class="sec-token-button" type="submit" name="securitytoken" data-id="Sectoken">Solicitar token</button>
|
||||||
</form>
|
</form>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
+99
-5
@@ -10,7 +10,7 @@ from django.db import connections
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth import logout
|
from django.contrib.auth import logout
|
||||||
from django import forms
|
from django import forms
|
||||||
from .models import Noticia, ClienteCategoria, ServerSelection, RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, ClaimedReward, AccountActivation
|
from .models import Noticia, ClienteCategoria, ServerSelection, RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, ClaimedReward, AccountActivation, SecurityToken
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
@@ -20,6 +20,8 @@ from django.utils import timezone
|
|||||||
from .library_correo import enviar_correo
|
from .library_correo import enviar_correo
|
||||||
from django.utils.crypto import get_random_string
|
from django.utils.crypto import get_random_string
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
import secrets
|
||||||
|
|
||||||
|
|
||||||
# Configuración del logger
|
# Configuración del logger
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -584,7 +586,7 @@ def my_account(request):
|
|||||||
|
|
||||||
# Si la sesión no tiene el usuario, redirigir al inicio de sesión
|
# Si la sesión no tiene el usuario, redirigir al inicio de sesión
|
||||||
if not username:
|
if not username:
|
||||||
return redirect('login')
|
return redirect('log-in')
|
||||||
|
|
||||||
is_logged_in = True # Si el usuario está en la sesión, asumimos que está conectado
|
is_logged_in = True # Si el usuario está en la sesión, asumimos que está conectado
|
||||||
|
|
||||||
@@ -781,12 +783,104 @@ def change_password_view(request):
|
|||||||
return render(request, 'account/change_password.html')
|
return render(request, 'account/change_password.html')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_user_from_acore(username):
|
||||||
|
"""
|
||||||
|
Obtiene la información del usuario desde la base de datos `acore_auth`.
|
||||||
|
"""
|
||||||
|
with connections['acore_auth'].cursor() as cursor:
|
||||||
|
cursor.execute("SELECT id, email FROM account WHERE username = %s", [username])
|
||||||
|
result = cursor.fetchone()
|
||||||
|
if result:
|
||||||
|
return {'id': result[0], 'email': result[1]}
|
||||||
|
return None
|
||||||
|
|
||||||
def security_token_view(request):
|
def security_token_view(request):
|
||||||
|
# Verificar si el usuario está autenticado mediante la sesión
|
||||||
|
username = request.session.get('username')
|
||||||
|
if not username:
|
||||||
|
return redirect('login')
|
||||||
|
|
||||||
|
# Obtener el usuario desde la base de datos de `acore_auth`
|
||||||
|
user_data = get_user_from_acore(username)
|
||||||
|
if not user_data:
|
||||||
|
return redirect('login')
|
||||||
|
|
||||||
|
user_id = user_data['id']
|
||||||
|
email = user_data['email']
|
||||||
|
ip_address = request.META.get('REMOTE_ADDR')
|
||||||
|
|
||||||
|
# Verificar si existe un token activo para mostrar la fecha en la plantilla
|
||||||
|
existing_token = SecurityToken.objects.filter(user_id=user_id).first()
|
||||||
|
|
||||||
|
# Obtener la fecha del token o "Sin solicitar" si no hay token
|
||||||
|
token_date = "Sin solicitar"
|
||||||
|
if existing_token:
|
||||||
|
token_date = existing_token.created_at.strftime('%H:%M:%S %d-%m-%Y')
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
# Verificar si ya existe un token activo y si ha caducado
|
||||||
|
if existing_token and existing_token.expires_at > timezone.now():
|
||||||
|
remaining_days = (existing_token.expires_at - timezone.now()).days
|
||||||
|
return JsonResponse({
|
||||||
|
'success': False,
|
||||||
|
'message': f'<span class="red-form-response">Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.</span>'
|
||||||
|
})
|
||||||
|
|
||||||
|
# Generar un nuevo token
|
||||||
|
token = secrets.token_urlsafe(4)[:6]
|
||||||
|
expires_at = timezone.now() + timedelta(days=7)
|
||||||
|
|
||||||
|
# Eliminar tokens anteriores del usuario
|
||||||
|
SecurityToken.objects.filter(user_id=user_id).delete()
|
||||||
|
|
||||||
|
# Crear y guardar el nuevo token
|
||||||
|
new_token = SecurityToken.objects.create(
|
||||||
|
user_id=user_id,
|
||||||
|
token=token,
|
||||||
|
ip_address=ip_address,
|
||||||
|
expires_at=expires_at
|
||||||
|
)
|
||||||
|
|
||||||
|
# Enviar el correo con el token al usuario
|
||||||
|
send_security_token_email(email, username, token, ip_address)
|
||||||
|
|
||||||
|
# Obtener la nueva fecha del token
|
||||||
|
new_token_date = new_token.created_at.strftime('%H:%M:%S %d-%m-%Y')
|
||||||
|
|
||||||
|
# Responder con un mensaje exitoso y la nueva fecha
|
||||||
|
return JsonResponse({
|
||||||
|
'success': True,
|
||||||
|
'message': f'<span class="ok-form-response">Se ha enviado el Token de seguridad al correo {email}.</span>',
|
||||||
|
'token_date': new_token_date
|
||||||
|
})
|
||||||
|
|
||||||
|
# Pasar `token_date` al contexto de la plantilla
|
||||||
|
return render(request, 'account/security_token.html', {
|
||||||
|
'token_date': token_date
|
||||||
|
})
|
||||||
|
|
||||||
|
def send_security_token_email(email, username, token, ip_address):
|
||||||
"""
|
"""
|
||||||
Vista para la página de 'Security Token'.
|
Envía un correo electrónico con el token de seguridad.
|
||||||
Simplemente renderiza un template con información relevante.
|
|
||||||
"""
|
"""
|
||||||
return render(request, 'account/security_token.html')
|
context = {
|
||||||
|
'username': username,
|
||||||
|
'token': token,
|
||||||
|
'ip_address': ip_address,
|
||||||
|
'NOMBRE_SERVIDOR': settings.NOMBRE_SERVIDOR
|
||||||
|
}
|
||||||
|
|
||||||
|
# Llamada a tu función personalizada `enviar_correo`
|
||||||
|
enviar_correo(
|
||||||
|
subject=f'Token de seguridad de la cuenta {username} - {settings.NOMBRE_SERVIDOR}',
|
||||||
|
to_email=email,
|
||||||
|
template='emails/security_token.html', # Asegúrate de que este template exista
|
||||||
|
context=context
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def change_email_view(request):
|
def change_email_view(request):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user