|
33 | 33 |
|
34 | 34 | // Authentication routes (no auth required) |
35 | 35 | Route::prefix('auth')->group(function () { |
36 | | - Route::post('/login', [AuthController::class, 'login']); |
| 36 | + Route::post('/login', [AuthController::class, 'login'])->middleware('throttle:10,1'); |
37 | 37 | Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth:sanctum'); |
38 | 38 | Route::post('/refresh', [AuthController::class, 'refresh'])->middleware('auth:sanctum'); |
39 | 39 | Route::post('/change-password', [AuthController::class, 'changePassword'])->middleware('auth:sanctum'); |
|
85 | 85 | Route::post('/csv-import-mappings', [CsvImportController::class, 'saveMapping']); |
86 | 86 |
|
87 | 87 | // Audit Logs (Admin only) |
88 | | - Route::get('/audit-logs', [AuditLogController::class, 'index']); |
89 | | - Route::get('/audit-logs/entity', [AuditLogController::class, 'entity']); |
90 | | - Route::get('/audit-logs/export', [AuditLogController::class, 'export']); |
| 88 | + Route::middleware('role:Admin')->group(function () { |
| 89 | + Route::get('/audit-logs', [AuditLogController::class, 'index']); |
| 90 | + Route::get('/audit-logs/entity', [AuditLogController::class, 'entity']); |
| 91 | + Route::get('/audit-logs/export', [AuditLogController::class, 'export']); |
91 | 92 |
|
92 | | - // Event Logs |
93 | | - Route::get('/event-logs', [EventLogController::class, 'index']); |
94 | | - Route::get('/event-logs/entity', [EventLogController::class, 'entity']); |
| 93 | + // Event Logs |
| 94 | + Route::get('/event-logs', [EventLogController::class, 'index']); |
| 95 | + Route::get('/event-logs/entity', [EventLogController::class, 'entity']); |
| 96 | + }); |
95 | 97 |
|
96 | | - // Analytics (Supervisor Dashboard) |
97 | | - Route::get('/analytics/overview', [AnalyticsController::class, 'overview']); |
98 | | - Route::get('/analytics/production-by-line', [AnalyticsController::class, 'productionByLine']); |
99 | | - Route::get('/analytics/cycle-time', [AnalyticsController::class, 'cycleTime']); |
100 | | - Route::get('/analytics/throughput', [AnalyticsController::class, 'throughput']); |
101 | | - Route::get('/analytics/issue-stats', [AnalyticsController::class, 'issueStats']); |
102 | | - Route::get('/analytics/step-performance', [AnalyticsController::class, 'stepPerformance']); |
| 98 | + // Analytics (Supervisor/Admin) |
| 99 | + Route::middleware('role:Supervisor|Admin')->group(function () { |
| 100 | + Route::get('/analytics/overview', [AnalyticsController::class, 'overview']); |
| 101 | + Route::get('/analytics/production-by-line', [AnalyticsController::class, 'productionByLine']); |
| 102 | + Route::get('/analytics/cycle-time', [AnalyticsController::class, 'cycleTime']); |
| 103 | + Route::get('/analytics/throughput', [AnalyticsController::class, 'throughput']); |
| 104 | + Route::get('/analytics/issue-stats', [AnalyticsController::class, 'issueStats']); |
| 105 | + Route::get('/analytics/step-performance', [AnalyticsController::class, 'stepPerformance']); |
103 | 106 |
|
104 | | - // Reports (Supervisor/Admin) |
105 | | - Route::get('/reports/production-summary', [ReportController::class, 'productionSummary']); |
106 | | - Route::get('/reports/batch-completion', [ReportController::class, 'batchCompletion']); |
107 | | - Route::get('/reports/downtime', [ReportController::class, 'downtimeReport']); |
108 | | - Route::get('/reports/export-csv', [ReportController::class, 'exportCsv']); |
| 107 | + // Reports |
| 108 | + Route::get('/reports/production-summary', [ReportController::class, 'productionSummary']); |
| 109 | + Route::get('/reports/batch-completion', [ReportController::class, 'batchCompletion']); |
| 110 | + Route::get('/reports/downtime', [ReportController::class, 'downtimeReport']); |
| 111 | + Route::get('/reports/export-csv', [ReportController::class, 'exportCsv']); |
| 112 | + }); |
109 | 113 | }); |
0 commit comments