class AuthMiddleware { static checkAuth(requiredRole = null) { return (callback) => { // بررسی احراز هویت if (!authManager.isAuthenticated()) { authzManager.showLoginRequired(); return false; } // بررسی نقش اگر مشخص شده باشد if (requiredRole && !authzManager.hasRole(requiredRole)) { authzManager.showAccessDenied(); return false; } return callback(); }; } static optionalAuth(callback) { return () => { // اگر کاربر احراز هویت شده باشد، اطلاعاتش را پاس می‌دهد const user = authManager.getCurrentUser(); return callback(user); }; } static initializeApp() { console.log('🔐 Auth Middleware Initialized'); // فقط بررسی ساده - حذف فراخوانی‌های مشکل‌دار if (typeof authManager !== 'undefined' && authManager.getToken) { const token = authManager.getToken(); if (token) { const user = authManager.getCurrentUser(); if (!user) { authManager.logout(); console.log('Token exists but no user - logged out'); } } } } } // میان‌افزارهای سریع const requireAuth = (callback) => AuthMiddleware.checkAuth()(callback); const requireStudent = (callback) => AuthMiddleware.checkAuth('student')(callback); const requireInstructor = (callback) => AuthMiddleware.checkAuth('instructor')(callback); const requireAdmin = (callback) => AuthMiddleware.checkAuth('admin')(callback);