Files
portal-api/routes/api/admin/auth.php
T
baodev0andClaude Opus 5.5 46aa138eec feat(admin): IP pool allocation, billing exports, service attachments
- IP pool: sheet import (xlsx/csv) matched by address, bulk allocate/revoke
  with notification email (ip_allocated/ip_revoked), ip_pool_logs history.
- Orders/invoices: Excel export on branded template (BrandedReportWriter),
  shared billing filters, order item service info in list responses.
- Web design quote Excel export; activity log export.
- Service attachments with copy-to-invoice; deployment invoice attachments.
- Customer email attachments stored on disk and attached by path.
- Admin password change endpoint; user.fullname backfill migration;
  orders.user_id backfill from logs.
- Disable deploy workflow until CI/CD is set up.
- Ignore stored customer email and service attachment uploads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 19:58:36 +07:00

46 lines
2.1 KiB
PHP

<?php
use App\Http\Controllers\Api\Admin\Auth\AuthController;
use App\Http\Controllers\Api\Admin\Employee\EmployeeController;
use App\Http\Controllers\Api\Admin\Role\RolePermissionController;
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']);
Route::put('password', [AuthController::class, 'updatePassword']);
// Role Permissions
Route::prefix('role-permissions')->group(function () {
// Accessible bởi mọi admin — trả về permissions hiệu lực của user hiện tại
Route::get('mine', [RolePermissionController::class, 'mine']);
// Các endpoint sau chỉ dành cho Full Administrator (kiểm tra trong controller)
Route::get('/', [RolePermissionController::class, 'index']);
Route::post('/', [RolePermissionController::class, 'store']);
Route::get('all-permissions', [RolePermissionController::class, 'allPermissions']);
Route::post('permissions', [RolePermissionController::class, 'createPermissionGroup']);
Route::delete('permissions/group/{module}', [
RolePermissionController::class,
'deletePermissionGroup',
]);
Route::patch('permissions/{id}', [RolePermissionController::class, 'renamePermission']);
Route::put('{roleId}', [RolePermissionController::class, 'update']);
});
// Employees (module: administrator)
Route::prefix('employees')->group(function () {
Route::get('roles', [EmployeeController::class, 'roles'])->middleware('perm:administrator.view');
Route::get('/', [EmployeeController::class, 'index'])->middleware('perm:administrator.view');
Route::post('/', [EmployeeController::class, 'store'])->middleware('perm:administrator.create');
Route::get('{id}', [EmployeeController::class, 'show'])->middleware('perm:administrator.view');
Route::put('{id}', [EmployeeController::class, 'update'])->middleware('perm:administrator.edit');
Route::delete('{id}', [EmployeeController::class, 'destroy'])->middleware(
'perm:administrator.destroy',
);
});