feat: [users] 슈퍼관리자 보호 기능 구현
- 일반관리자가 슈퍼관리자 수정/삭제 불가 - API Controller: update/destroy에서 403 반환 - Web Controller: edit에서 403 abort - FormRequest: is_super_admin 필드 강제/유지 처리 - View: 테이블, 모달, 생성/수정 폼에서 버튼/체크박스 숨김 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,15 @@ public function store(StoreUserRequest $request): JsonResponse
|
||||
public function update(UpdateUserRequest $request, int $id): JsonResponse
|
||||
{
|
||||
try {
|
||||
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자를 수정하려는 경우 차단
|
||||
$targetUser = $this->userService->getUserById($id);
|
||||
if ($targetUser?->is_super_admin && ! auth()->user()?->is_super_admin) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '슈퍼관리자는 수정할 수 없습니다.',
|
||||
], 403);
|
||||
}
|
||||
|
||||
$result = $this->userService->updateUser($id, $request->validated());
|
||||
|
||||
if (! $result) {
|
||||
@@ -121,6 +130,15 @@ public function update(UpdateUserRequest $request, int $id): JsonResponse
|
||||
public function destroy(int $id): JsonResponse
|
||||
{
|
||||
try {
|
||||
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자를 삭제하려는 경우 차단
|
||||
$targetUser = $this->userService->getUserById($id);
|
||||
if ($targetUser?->is_super_admin && ! auth()->user()?->is_super_admin) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '슈퍼관리자는 삭제할 수 없습니다.',
|
||||
], 403);
|
||||
}
|
||||
|
||||
$result = $this->userService->deleteUser($id);
|
||||
|
||||
if (! $result) {
|
||||
|
||||
Reference in New Issue
Block a user