smtp integration and password recovery.

This commit is contained in:
2025-07-31 11:58:48 -06:00
parent 7335c6c3a1
commit 8d6ebc917b
12 changed files with 427 additions and 13 deletions

View File

@@ -136,6 +136,21 @@
color: var(--secondary-color);
font-size: 14px;
}
.password-recovery {
text-align: center;
margin-top: 15px;
}
.password-recovery a {
color: var(--primary-color);
text-decoration: none;
font-size: 14px;
}
.password-recovery a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
@@ -180,6 +195,10 @@
</button>
</form>
<div class="password-recovery">
<a href="#" id="forgot-password-link">Forgot your password?</a>
</div>
<div class="login-footer">
<p>Access is restricted to authorized users only. Please contact your system administrator for login details.</p>
</div>
@@ -262,6 +281,45 @@
}
})
.catch(console.error);
// Add password recovery handler
document.getElementById('forgot-password-link').addEventListener('click', async (e) => {
e.preventDefault();
const email = prompt('Please enter your email address:');
if (!email) return;
const errorMessage = document.getElementById('error-message');
const successMessage = document.getElementById('success-message');
// Clear previous messages
errorMessage.classList.remove('show');
successMessage.classList.remove('show');
try {
const response = await fetch('/api/auth/recover-password', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email })
});
const data = await response.json();
if (data.success) {
successMessage.textContent = data.message;
successMessage.classList.add('show');
} else {
errorMessage.textContent = data.error || 'Failed to process request';
errorMessage.classList.add('show');
}
} catch (error) {
console.error('Password recovery error:', error);
errorMessage.textContent = 'Failed to send password recovery email';
errorMessage.classList.add('show');
}
});
</script>
<!-- Cache Management -->