deploy: 2026-03-11 배포
- feat: MNG→SAM 자동 로그인 토큰 (LoginToken 모델 도메인 매핑) - feat: 사용자/역할/부서 관리 개선 (Controller, Service, View) - feat: 메뉴 관리 개선 (MenuService, menu-tree.js) - fix: 문서 뷰어, FCM 토큰, 방화셔터 도면, 테넌트 테이블 뷰 수정
This commit is contained in:
@@ -455,7 +455,7 @@ public function forceDeleteMenu(int $id): array
|
||||
}
|
||||
|
||||
/**
|
||||
* 메뉴 활성 상태 토글
|
||||
* 메뉴 활성 상태 토글 (하위 메뉴 포함)
|
||||
*/
|
||||
public function toggleActive(int $id): bool
|
||||
{
|
||||
@@ -464,10 +464,34 @@ public function toggleActive(int $id): bool
|
||||
return false;
|
||||
}
|
||||
|
||||
$menu->is_active = ! $menu->is_active;
|
||||
$newState = ! $menu->is_active;
|
||||
$menu->is_active = $newState;
|
||||
$menu->updated_by = auth()->id();
|
||||
$menu->save();
|
||||
|
||||
return $menu->save();
|
||||
// 하위 메뉴도 동일한 상태로 변경
|
||||
$this->setChildrenActiveState($menu, $newState);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 하위 메뉴의 활성 상태를 재귀적으로 변경
|
||||
*/
|
||||
private function setChildrenActiveState($menu, bool $isActive): void
|
||||
{
|
||||
$children = $menu->children()->get();
|
||||
if ($children->isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$userId = auth()->id();
|
||||
foreach ($children as $child) {
|
||||
$child->is_active = $isActive;
|
||||
$child->updated_by = $userId;
|
||||
$child->save();
|
||||
$this->setChildrenActiveState($child, $isActive);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user