diff --git a/CalendarReminder.Api/Controllers/AdminController.cs b/CalendarReminder.Api/Controllers/AdminController.cs
index 58fe469..35e72b7 100644
--- a/CalendarReminder.Api/Controllers/AdminController.cs
+++ b/CalendarReminder.Api/Controllers/AdminController.cs
@@ -130,7 +130,7 @@ public class AdminController : ControllerBase
| Email | {req.Email} |
| Heslo | user |
- ⚠️ Po prvom prihlásení si zmeň heslo cez „Zabudol som heslo".
+ Po prvom prihlásení ťa aplikácia vyzve na zmenu hesla.
Calendar Reminder
diff --git a/CalendarReminder.Api/Controllers/AuthController.cs b/CalendarReminder.Api/Controllers/AuthController.cs
index cf5bd61..096f769 100644
--- a/CalendarReminder.Api/Controllers/AuthController.cs
+++ b/CalendarReminder.Api/Controllers/AuthController.cs
@@ -126,7 +126,8 @@ public class AuthController : ControllerBase
resetToken.Used = true;
}
- user.PasswordHash = BCrypt.Net.BCrypt.HashPassword(req.NewPassword);
+ user.PasswordHash = BCrypt.Net.BCrypt.HashPassword(req.NewPassword);
+ user.MustChangePassword = false;
await _db.SaveChangesAsync();
return Ok("Heslo bolo úspešne zmenené.");
diff --git a/CalendarReminder.Api/wwwroot/index.html b/CalendarReminder.Api/wwwroot/index.html
index c50dcca..2bfd386 100644
--- a/CalendarReminder.Api/wwwroot/index.html
+++ b/CalendarReminder.Api/wwwroot/index.html
@@ -1259,18 +1259,27 @@ async function doMcpChange() {
const u = JSON.parse(localStorage.getItem('user') || '{}');
if (pass.length < 6) { err.textContent = 'Heslo musí mať aspoň 6 znakov.'; return; }
if (pass !== pass2) { err.textContent = 'Heslá sa nezhodujú.'; return; }
+
+ // 1. Zmeniť heslo — server zároveň nastaví MustChangePassword = false
const res = await fetch(`${API}/auth/reset-password`, {
method:'POST', headers:{'Content-Type':'application/json'},
body: JSON.stringify({ email: u.email, newPassword: pass, code: null })
});
- if (res.ok) {
- // Update stored user to clear mustChangePassword flag
- u.mustChangePassword = false;
- localStorage.setItem('user', JSON.stringify(u));
- document.getElementById('mcp-modal').classList.remove('open');
- } else {
- err.textContent = await res.text();
+ if (!res.ok) { err.textContent = await res.text(); return; }
+
+ // 2. Znovu prihlásiť — dostaneme nový token s mustChangePassword: false
+ const loginRes = await fetch(`${API}/auth/login`, {
+ method:'POST', headers:{'Content-Type':'application/json'},
+ body: JSON.stringify({ email: u.email, password: pass })
+ });
+ if (loginRes.ok) {
+ const d = await loginRes.json();
+ saveAuth(d);
+ // Aktualizuj meno/avatar v topbare (zostáva rovnaké, ale token je nový)
+ document.getElementById('hdr-user').textContent = d.username;
+ document.getElementById('hdr-avatar').textContent = d.username ? d.username[0].toUpperCase() : '?';
}
+ document.getElementById('mcp-modal').classList.remove('open');
}
// ═══ ADMIN PANEL ═══