| 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); |