| 1 | /** |
| 2 | * MAPS Connect - Aviso de Privacidad y Términos y Condiciones |
| 3 | * Renderiza un modal reutilizable con el contenido legal. Se abre con |
| 4 | * AvisoPrivacidad.mostrar(). Se usa en login, registro y ajustes. |
| 5 | */ |
| 6 | const AvisoPrivacidad = { |
| 7 | mostrar(titulo = 'Aviso de Privacidad') { |
| 8 | let root = document.getElementById('aviso-privacidad-root'); |
| 9 | if (!root) { |
| 10 | root = document.createElement('div'); |
| 11 | root.id = 'aviso-privacidad-root'; |
| 12 | document.body.appendChild(root); |
| 13 | } |
| 14 | |
| 15 | root.innerHTML = ` |
| 16 | <div class="aviso-modal-overlay" id="aviso-modal-overlay"> |
| 17 | <div class="aviso-modal" role="dialog" aria-modal="true" aria-label="${titulo}"> |
| 18 | <div class="aviso-modal-head"> |
| 19 | <h3>${titulo}</h3> |
| 20 | <button type="button" class="aviso-modal-cerrar" aria-label="Cerrar">×</button> |
| 21 | </div> |
| 22 | <div class="aviso-modal-body"> |
| 23 | <h4>1. Responsable</h4> |
| 24 | <p>MAPS Connect, comunidad académica del Tecnológico de Monterrey / Universidad Tecmilenio ("la Plataforma"), es responsable del tratamiento de los datos personales que nos proporcionas, conforme a la Ley Federal de Protección de Datos Personales en Posesión de los Particulares (México).</p> |
| 25 | |
| 26 | <h4>2. Datos que recabamos</h4> |
| 27 | <p>Nombre(s), apellidos, matrícula o nómina, correo institucional, fotografía de perfil, semestre, carrera/campus, y la información que generes al usar la Plataforma (publicaciones, mensajes, círculos de estudio, asesorías y preferencias de la aplicación como el modo oscuro).</p> |
| 28 | |
| 29 | <h4>3. Finalidades del tratamiento</h4> |
| 30 | <p>Los datos se utilizan para: (a) crear y administrar tu cuenta; (b) permitir la interacción entre la comunidad (foro, mensajes, círculos y asesorías); (c) mostrar tu perfil y reputación; (d) notificarte de eventos relevantes; y (e) mejorar el funcionamiento de la Plataforma.</p> |
| 31 | |
| 32 | <h4>4. Transferencia de datos</h4> |
| 33 | <p>Tus datos no se transfieren a terceros ajenos a la Plataforma, salvo que la ley lo exija o que nos otorgues tu consentimiento expreso.</p> |
| 34 | |
| 35 | <h4>5. Derechos ARCO</h4> |
| 36 | <p>Puedes ejercer tus derechos de Acceso, Rectificación, Cancelación y Oposición (ARCO) contactando al administrador a través de los medios institucionales o escribiendo a la cuenta de soporte de la Plataforma.</p> |
| 37 | |
| 38 | <h4>6. Seguridad</h4> |
| 39 | <p>Implementamos medidas técnicas, administrativas y físicas para proteger tus datos personales contra daño, pérdida, alteración, destrucción, uso, acceso o tratamiento no autorizado.</p> |
| 40 | |
| 41 | <h4>7. Conservación</h4> |
| 42 | <p>Tus datos se conservarán mientras tu cuenta esté activa o mientras se requiera para fines legales y de auditoría. Al dar de baja tu cuenta, los datos se eliminarán o se conservarán de forma anonimizada según lo dispuesto por la ley.</p> |
| 43 | |
| 44 | <h4>8. Cambios al aviso</h4> |
| 45 | <p>Este aviso puede actualizarse. La versión vigente estará siempre disponible en esta página.</p> |
| 46 | |
| 47 | <hr> |
| 48 | |
| 49 | <h4>Términos y Condiciones</h4> |
| 50 | <p>Al crear tu cuenta aceptas utilizar la Plataforma exclusivamente con fines académicos y de convivencia universitaria, respetar a los demás miembros de la comunidad, no difundir contenido ofensivo o ajeno a la institución, y mantener la confidencialidad de tu contraseña. El mal uso de la Plataforma puede resultar en la suspensión o baja de tu cuenta.</p> |
| 51 | </div> |
| 52 | <div class="aviso-modal-foot"> |
| 53 | <button type="button" class="btn btn-primary" id="aviso-modal-aceptar">Aceptar</button> |
| 54 | </div> |
| 55 | </div> |
| 56 | </div> |
| 57 | `; |
| 58 | |
| 59 | const cerrar = () => root.innerHTML = ''; |
| 60 | root.querySelector('.aviso-modal-cerrar')?.addEventListener('click', cerrar); |
| 61 | root.querySelector('#aviso-modal-aceptar')?.addEventListener('click', cerrar); |
| 62 | root.querySelector('#aviso-modal-overlay')?.addEventListener('click', e => { |
| 63 | if (e.target.id === 'aviso-modal-overlay') cerrar(); |
| 64 | }); |
| 65 | }, |
| 66 | |
| 67 | /** Abre el aviso y marca el checkbox de aceptación al confirmar. */ |
| 68 | desdeCheckbox(checkboxId) { |
| 69 | this.mostrar(); |
| 70 | const cb = document.getElementById(checkboxId); |
| 71 | if (cb) document.getElementById('aviso-modal-aceptar')?.addEventListener('click', () => { cb.checked = true; }); |
| 72 | } |
| 73 | }; |