From 6a9ddea0c54e2a4184e6292641b789c5c115a1ad Mon Sep 17 00:00:00 2001 From: donpat1to Date: Thu, 9 Oct 2025 23:28:35 +0200 Subject: [PATCH] farther debugging for users --- backend/src/controllers/employeeController.ts | 7 ++++++- frontend/src/contexts/AuthContext.tsx | 13 +++++++++++-- .../src/pages/Employees/EmployeeManagement.tsx | 8 ++++---- frontend/src/services/employeeService.ts | 14 +++++++++++++- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/backend/src/controllers/employeeController.ts b/backend/src/controllers/employeeController.ts index 999c8ef..b22d3e7 100644 --- a/backend/src/controllers/employeeController.ts +++ b/backend/src/controllers/employeeController.ts @@ -7,6 +7,8 @@ import { AuthRequest } from '../middleware/auth.js'; export const getEmployees = async (req: AuthRequest, res: Response): Promise => { try { + console.log('🔍 Fetching employees - User:', req.user); + const employees = await db.all(` SELECT id, email, name, role, is_active as isActive, @@ -17,9 +19,12 @@ export const getEmployees = async (req: AuthRequest, res: Response): Promise = ({ children }) => { }; const hasRole = (roles: string[]): boolean => { - if (!user) return false; - return roles.includes(user.role); + console.log('🔐 Checking roles - User:', user, 'Required roles:', roles); + + if (!user) { + console.log('❌ No user found'); + return false; + } + + const hasRequiredRole = roles.includes(user.role); + console.log('✅ User role:', user.role, 'Has required role:', hasRequiredRole); + + return hasRequiredRole; }; useEffect(() => { diff --git a/frontend/src/pages/Employees/EmployeeManagement.tsx b/frontend/src/pages/Employees/EmployeeManagement.tsx index 3ee5fe8..64bd421 100644 --- a/frontend/src/pages/Employees/EmployeeManagement.tsx +++ b/frontend/src/pages/Employees/EmployeeManagement.tsx @@ -25,19 +25,19 @@ const EmployeeManagement: React.FC = () => { const loadEmployees = async () => { try { setLoading(true); - console.log('Fetching fresh employee list'); + console.log('🔄 Loading employees...'); // Add cache-busting parameter to prevent browser caching const data = await employeeService.getEmployees(); - console.log('Received employees:', data.length); + console.log('✅ Employees loaded:', data); setEmployees(data); } catch (err: any) { - console.error('Error loading employees:', err); + console.error('❌ Error loading employees:', err); showNotification({ type: 'error', title: 'Fehler', - message: 'Mitarbeiter konnten nicht geladen werden' + message: 'Mitarbeiter konnten nicht geladen werden: ' + err.message }); } finally { setLoading(false); diff --git a/frontend/src/services/employeeService.ts b/frontend/src/services/employeeService.ts index 77cb313..e5e141f 100644 --- a/frontend/src/services/employeeService.ts +++ b/frontend/src/services/employeeService.ts @@ -13,15 +13,27 @@ const getAuthHeaders = () => { export class EmployeeService { async getEmployees(): Promise { + console.log('🔄 Fetching employees from API...'); + + const token = localStorage.getItem('token'); + console.log('🔑 Token exists:', !!token); + const response = await fetch(`${API_BASE_URL}/employees`, { headers: getAuthHeaders(), }); + console.log('📡 Response status:', response.status); + if (!response.ok) { + const errorText = await response.text(); + console.error('❌ API Error:', errorText); throw new Error('Failed to fetch employees'); } - return response.json(); + const employees = await response.json(); + console.log('✅ Employees received:', employees.length); + + return employees; } async getEmployee(id: string): Promise {