feat: harden admin auth and ticket workflows

- add rotating admin refresh tokens and password gates\n- expand ticket galleries, exports, and client resources\n- improve IP allocation auditing and dashboard data\n- enforce encrypted client access tokens on public routes
This commit is contained in:
baodev0
2026-10-16 17:00:55 +07:00
parent 0cdf224309
commit 0b08689ea4
52 changed files with 1421 additions and 118 deletions
-2
View File
@@ -7,8 +7,6 @@ use Illuminate\Support\Facades\Route;
Route::post('logout', [AuthController::class, 'logout']);
Route::post('refresh', [AuthController::class, 'refresh']);
Route::get('me', [AuthController::class, 'me']);
Route::put('profile', [AuthController::class, 'updateProfile']);
+2
View File
@@ -102,6 +102,7 @@ Route::prefix('ip-pool')
->controller(IpPoolController::class)
->group(function () {
Route::get('networks', 'networks')->middleware('perm:module-vcenter.view');
Route::get('dashboard', 'dashboard')->middleware('perm:module-vcenter.view');
Route::get('used-services', 'usedServices')->middleware('perm:module-vcenter.view');
Route::get('/', 'index')->middleware('perm:module-vcenter.view');
Route::post('/', 'store')->middleware('perm:module-vcenter.manager');
@@ -114,6 +115,7 @@ Route::prefix('ip-pool')
Route::post('allocate', 'allocate')->middleware('perm:module-vcenter.manager');
Route::post('revocation/preview', 'revocationPreview')->middleware('perm:module-vcenter.manager');
Route::post('revoke', 'revoke')->middleware('perm:module-vcenter.manager');
Route::get('logs', 'allLogs')->middleware('perm:module-vcenter.view');
Route::get('{id}/logs', 'logs')->middleware('perm:module-vcenter.view');
Route::get('{id}', 'show')->middleware('perm:module-vcenter.view');
Route::put('{id}', 'update')->middleware('perm:module-vcenter.manager');
+3
View File
@@ -18,6 +18,7 @@ Route::prefix('settings')
->controller(AdminSettingController::class)
->middleware('perm:setting.manager')
->group(function () {
Route::post('verify-password', 'verifyPassword')->middleware('throttle:10,1');
Route::get('/', 'index');
Route::put('/', 'update');
Route::post('test-telegram', 'testTelegram');
@@ -112,6 +113,8 @@ Route::prefix('tickets')
->controller(AdminTicketController::class)
->group(function () {
Route::get('/', 'index')->middleware('perm:support.view');
Route::get('pending-count', 'pendingCount')->middleware('perm:support.view');
Route::get('export', 'export')->middleware('perm:support.view');
Route::get('{ticket_num}', 'show')->middleware('perm:support.view');
Route::patch('{ticket_num}/status', 'updateStatus')->middleware('perm:support.edit');
Route::post('{ticket_num}/reply', 'reply')->middleware('perm:support.edit');