fix : 테넌트 관리자 사용자 API 추가
- 사용자 목록 - 사용자 생성 - 사용자 단건 조회 - 사용자 수정 - 사용자 삭제(소프트 삭제) - 활성/비활성 전환 - 삭제 복구 - 비밀번호 초기화 - 수정필요 : 역할부여, 역할 해재
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
use App\Http\Controllers\Api\V1\BomController;
|
||||
use App\Http\Controllers\Api\V1\UserController;
|
||||
use App\Http\Controllers\Api\V1\TenantController;
|
||||
use App\Http\Controllers\Api\V1\AdminController;
|
||||
|
||||
// error test
|
||||
Route::get('/test-error', function () {
|
||||
@@ -48,6 +49,32 @@
|
||||
});
|
||||
|
||||
|
||||
// Tenant Admin API
|
||||
Route::prefix('admin')->group(function () {
|
||||
// 목록/생성
|
||||
Route::get('users', [AdminController::class, 'index'])->name('v1.admin.users.index'); // 테넌트 사용자 목록 조회
|
||||
Route::post('users', [AdminController::class, 'store'])->name('v1.admin.users.store'); // 테넌트 사용자 생성
|
||||
|
||||
// 단건
|
||||
Route::get('users/{id}', [AdminController::class, 'show'])->name('v1.admin.users.show'); // 테넌트 사용자 단건 조회
|
||||
Route::put('users/{id}', [AdminController::class, 'update'])->name('v1.admin.users.update'); // 테넌트 사용자 수정
|
||||
|
||||
// 소프트 삭제 복구
|
||||
Route::delete('users/{id}', [AdminController::class, 'destroy'])->name('v1.admin.users.destroy'); // 테넌트 사용자 삭제(연결 삭제)
|
||||
Route::post('users/{id}/restore', [AdminController::class, 'restore'])->name('v1.admin.users.restore'); // 테넌트 사용자 삭제 복구
|
||||
|
||||
// 상태 토글
|
||||
Route::patch('users/{id}/status', [AdminController::class, 'toggle'])->name('v1.admin.users.status.toggle'); // 테넌트 사용자 활성/비활성
|
||||
|
||||
// 역할 부여/해제
|
||||
Route::post('users/{id}/roles', [AdminController::class, 'attach'])->name('v1.admin.users.roles.attach'); // 테넌트 사용자 역할 부여
|
||||
Route::delete('users/{id}/roles/{role}', [AdminController::class, 'detach'])->name('v1.admin.users.roles.detach'); // 테넌트 사용자 역할 해제
|
||||
|
||||
// 비밀번호 초기화
|
||||
Route::post('users/{id}/reset-password', [AdminController::class, 'reset'])->name('v1.admin.users.password.reset'); // 테넌트 사용자 비밀번호 초기화
|
||||
});
|
||||
|
||||
|
||||
// Member API
|
||||
Route::prefix('users')->group(function () {
|
||||
Route::get('index', [UserController::class, 'index'])->name('v1.users.index'); // 회원 목록 조회
|
||||
@@ -91,51 +118,6 @@
|
||||
});
|
||||
|
||||
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
// 공통 미들웨어 메모:
|
||||
// - 'apikey' : X-API-KEY 검사 미들웨어 (커스텀)
|
||||
// - 'auth:sanctum' : Bearer 토큰(Sanctum) 인증
|
||||
// 필요 시 app/Http/Kernel.php 의 $routeMiddleware 에 별칭 등록
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| V1 - User 영역 (본인 계정)
|
||||
|--------------------------------------------------------------------------
|
||||
| Swagger: UserApi.php
|
||||
| - POST /api/v1/auth/login
|
||||
| - POST /api/v1/auth/logout
|
||||
| - GET /api/v1/users/me
|
||||
| - PUT /api/v1/users/me
|
||||
| - PUT /api/v1/users/me/password
|
||||
| - GET /api/v1/users/me/tenants
|
||||
| - PATCH /api/v1/users/me/tenants/switch
|
||||
*/
|
||||
Route::prefix('v1_DEV')
|
||||
->middleware(['apikey']) // 모든 엔드포인트는 X-API-KEY 필요
|
||||
->group(function () {
|
||||
|
||||
// Auth (User)
|
||||
Route::prefix('auth')->group(function () {
|
||||
Route::post('login', [\App\Http\Controllers\Api\V1\AuthController::class, 'login'])
|
||||
->name('v1.auth.login'); // Bearer 불필요(로그인)
|
||||
|
||||
Route::post('logout', [\App\Http\Controllers\Api\V1\AuthController::class, 'logout'])
|
||||
->middleware('auth:sanctum')
|
||||
->name('v1.auth.logout');
|
||||
});
|
||||
|
||||
// Users (me)
|
||||
Route::prefix('users')->middleware('auth:sanctum')->group(function () {
|
||||
Route::get('me', [\App\Http\Controllers\Api\V1\User\MeController::class, 'show'])->name('v1.users.me.show');
|
||||
Route::put('me', [\App\Http\Controllers\Api\V1\User\MeController::class, 'update'])->name('v1.users.me.update');
|
||||
Route::put('me/password', [\App\Http\Controllers\Api\V1\User\MeController::class, 'changePassword'])->name('v1.users.me.password');
|
||||
|
||||
Route::get('me/tenants', [\App\Http\Controllers\Api\V1\User\TenantController::class, 'index'])->name('v1.users.me.tenants.index');
|
||||
Route::patch('me/tenants/switch', [\App\Http\Controllers\Api\V1\User\TenantController::class, 'switch'])->name('v1.users.me.tenants.switch');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -157,25 +139,5 @@
|
||||
->middleware(['apikey', 'auth:sanctum', 'can:admin']) // 예: 'can:admin' 또는 커스텀 'is_admin'
|
||||
->group(function () {
|
||||
|
||||
// 목록/생성
|
||||
Route::get('users', [\App\Http\Controllers\Api\V1\Admin\UserController::class, 'index'])->name('v1.admin.users.index');
|
||||
Route::post('users', [\App\Http\Controllers\Api\V1\Admin\UserController::class, 'store'])->name('v1.admin.users.store');
|
||||
|
||||
// 단건
|
||||
Route::get('users/{id}', [\App\Http\Controllers\Api\V1\Admin\UserController::class, 'show'])->name('v1.admin.users.show');
|
||||
Route::put('users/{id}', [\App\Http\Controllers\Api\V1\Admin\UserController::class, 'update'])->name('v1.admin.users.update');
|
||||
Route::delete('users/{id}', [\App\Http\Controllers\Api\V1\Admin\UserController::class, 'destroy'])->name('v1.admin.users.destroy');
|
||||
|
||||
// 상태 토글
|
||||
Route::patch('users/{id}/status', [\App\Http\Controllers\Api\V1\Admin\UserStatusController::class, 'toggle'])->name('v1.admin.users.status.toggle');
|
||||
|
||||
// 소프트 삭제 복구
|
||||
Route::post('users/{id}/restore', [\App\Http\Controllers\Api\V1\Admin\UserRestoreController::class, 'restore'])->name('v1.admin.users.restore');
|
||||
|
||||
// 역할 부여/해제
|
||||
Route::post('users/{id}/roles', [\App\Http\Controllers\Api\V1\Admin\UserRoleController::class, 'attach'])->name('v1.admin.users.roles.attach');
|
||||
Route::delete('users/{id}/roles/{role}', [\App\Http\Controllers\Api\V1\Admin\UserRoleController::class, 'detach'])->name('v1.admin.users.roles.detach');
|
||||
|
||||
// 비밀번호 초기화
|
||||
Route::post('users/{id}/reset-password', [\App\Http\Controllers\Api\V1\Admin\UserPasswordController::class, 'reset'])->name('v1.admin.users.password.reset');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user