Files
portal-api/routes/api/admin/auth.php
T
2026-09-28 08:26:29 +07:00

44 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']);
// 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',
);
});