메뉴 영구 삭제 시 연관 권한 삭제 및 아카이브 저장
- forceDeleteMenu: 연관 권한(menu:{id}.*) 함께 삭제
- forceDeleteGlobalMenu: 연관 권한 삭제 + 테넌트 메뉴 참조 해제
- 삭제 전 권한/역할 연결 정보를 archived_records에 저장
- Controller 반환값에 삭제된 권한 정보 포함
This commit is contained in:
@@ -197,6 +197,8 @@ public function restore(Request $request, int $id): JsonResponse
|
||||
|
||||
/**
|
||||
* 메뉴 영구 삭제 (슈퍼관리자 전용)
|
||||
* - 연관 권한도 함께 삭제
|
||||
* - 삭제 정보는 archived_records에 저장
|
||||
*/
|
||||
public function forceDestroy(Request $request, int $id): JsonResponse
|
||||
{
|
||||
@@ -211,25 +213,29 @@ public function forceDestroy(Request $request, int $id): JsonResponse
|
||||
try {
|
||||
$result = $this->menuService->forceDeleteMenu($id);
|
||||
|
||||
if (! $result) {
|
||||
if (! $result['success']) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '메뉴를 찾을 수 없거나 자식 메뉴가 있어 영구 삭제할 수 없습니다.',
|
||||
], 404);
|
||||
'message' => $result['message'],
|
||||
], 400);
|
||||
}
|
||||
|
||||
// HTMX 요청 시 테이블 새로고침 트리거
|
||||
if ($request->header('HX-Request')) {
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '메뉴가 영구 삭제되었습니다.',
|
||||
'message' => $result['message'],
|
||||
'action' => 'refresh',
|
||||
'deleted_permissions' => $result['deleted_permissions'],
|
||||
'batch_id' => $result['batch_id'] ?? null,
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '메뉴가 영구 삭제되었습니다.',
|
||||
'message' => $result['message'],
|
||||
'deleted_permissions' => $result['deleted_permissions'],
|
||||
'batch_id' => $result['batch_id'] ?? null,
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
|
||||
Reference in New Issue
Block a user