fix: [users] 슈퍼관리자 체크박스 해제 시 값 반영 안되는 문제 수정

- 체크박스에 hidden 필드 추가 (해제 시에도 값 전송)
- UserService에 is_super_admin boolean 변환 로직 추가
- is_active 체크박스도 동일하게 수정
This commit is contained in:
2025-12-05 09:31:23 +09:00
parent b97712ec5d
commit 690b252bf4
3 changed files with 13 additions and 0 deletions

View File

@@ -193,6 +193,11 @@ public function updateUser(int $id, array $data): bool
// is_active 처리
$data['is_active'] = isset($data['is_active']) && $data['is_active'] == '1';
// is_super_admin 처리 (슈퍼관리자만 수정 가능하므로 validated 데이터에 있을 때만)
if (array_key_exists('is_super_admin', $data)) {
$data['is_super_admin'] = $data['is_super_admin'] == '1';
}
// 수정자 정보
$data['updated_by'] = auth()->id();

View File

@@ -127,12 +127,16 @@ class="h-4 w-4 text-green-600 rounded focus:ring-2 focus:ring-green-500">
<h2 class="text-lg font-semibold text-gray-800 mb-4 pb-2 border-b">계정 상태</h2>
<div class="flex items-center gap-6">
<label class="flex items-center">
{{-- 체크박스 해제 시에도 값이 전송되도록 hidden 필드 추가 --}}
<input type="hidden" name="is_active" value="0">
<input type="checkbox" name="is_active" value="1" checked
class="h-4 w-4 text-blue-600 rounded focus:ring-2 focus:ring-blue-500">
<span class="ml-2 text-sm text-gray-700">활성 상태</span>
</label>
@if(auth()->user()?->is_super_admin)
<label class="flex items-center">
{{-- 체크박스 해제 시에도 값이 전송되도록 hidden 필드 추가 --}}
<input type="hidden" name="is_super_admin" value="0">
<input type="checkbox" name="is_super_admin" value="1"
class="h-4 w-4 text-red-600 rounded focus:ring-2 focus:ring-red-500">
<span class="ml-2 text-sm text-gray-700">슈퍼 관리자</span>

View File

@@ -135,6 +135,8 @@ class="h-4 w-4 text-green-600 rounded focus:ring-2 focus:ring-green-500">
<h2 class="text-lg font-semibold text-gray-800 mb-4 pb-2 border-b">계정 상태</h2>
<div class="flex items-center gap-6">
<label class="flex items-center">
{{-- 체크박스 해제 시에도 값이 전송되도록 hidden 필드 추가 --}}
<input type="hidden" name="is_active" value="0">
<input type="checkbox" name="is_active" value="1"
{{ old('is_active', $user->is_active) ? 'checked' : '' }}
class="h-4 w-4 text-blue-600 rounded focus:ring-2 focus:ring-blue-500">
@@ -142,6 +144,8 @@ class="h-4 w-4 text-blue-600 rounded focus:ring-2 focus:ring-blue-500">
</label>
@if(auth()->user()?->is_super_admin)
<label class="flex items-center">
{{-- 체크박스 해제 시에도 값이 전송되도록 hidden 필드 추가 --}}
<input type="hidden" name="is_super_admin" value="0">
<input type="checkbox" name="is_super_admin" value="1"
{{ old('is_super_admin', $user->is_super_admin) ? 'checked' : '' }}
class="h-4 w-4 text-red-600 rounded focus:ring-2 focus:ring-red-500">