diff --git a/public/admin.html b/public/admin.html
index bcb105c..8da98d3 100644
--- a/public/admin.html
+++ b/public/admin.html
@@ -3191,6 +3191,61 @@ padding: 15
$('.main-wrapper').css('margin-left', '80px');
}
});
+
+ // Authentication check
+ (async function checkAuth() {
+ try {
+ const res = await fetch('/api/auth/me');
+ const data = await res.json();
+
+ if (!data.success || !data.data) {
+ // Not authenticated, redirect to login
+ window.location.href = '/login.html';
+ return;
+ }
+
+ // Store user info
+ const user = data.data;
+ window.currentUser = user;
+ localStorage.setItem('user', JSON.stringify(user));
+
+ // Update UI with user info
+ const userNameEl = document.querySelector('.sidebar-user-info h6, .sidebar-user-name');
+ const userRoleEl = document.querySelector('.sidebar-user-info small, .sidebar-user-role');
+
+ if (userNameEl) {
+ userNameEl.textContent = user.name || 'Admin';
+ }
+ if (userRoleEl) {
+ const roleNames = {
+ admin: 'Administrador',
+ agent: 'Agente',
+ editor: 'Editor'
+ };
+ userRoleEl.textContent = roleNames[user.role] || user.role;
+ }
+
+ // Initialize admin panel
+ if (window.admin) {
+ window.admin.init();
+ }
+ } catch (error) {
+ console.error('Auth check failed:', error);
+ window.location.href = '/login.html';
+ }
+ })();
+
+ // Logout function
+ async function logout() {
+ try {
+ await fetch('/api/auth/logout', { method: 'POST' });
+ localStorage.removeItem('user');
+ window.location.href = '/login.html';
+ } catch (error) {
+ console.error('Logout failed:', error);
+ window.location.href = '/login.html';
+ }
+ }