fix: [users] 슈퍼관리자 보호 기능 복원 라우트 수정
- routes/api.php: 8개 엔티티의 restore 라우트를 super.admin 미들웨어 밖으로 이동 - tenants, departments, users, menus, boards - pm/projects, pm/tasks, pm/issues - UserService.canAccessUser(): withTrashed() 적용하여 soft-deleted 사용자 권한 체크 가능 - UserPermissionService.canModifyUser(): withTrashed() 적용 (일관성 유지) 권한 정책: - 복원 (Restore): 일반관리자 가능 - 영구삭제 (Force Delete): 슈퍼관리자 전용 버그 수정: - 302 Found 에러 해결 (미들웨어 블로킹) - soft-deleted 사용자 복원 시 권한 체크 실패 해결 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -41,17 +41,17 @@ public function create(): View
|
||||
*/
|
||||
public function edit(int $id): View
|
||||
{
|
||||
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자에 접근 불가 (존재하지 않는 것처럼)
|
||||
if (! $this->userService->canAccessUser($id)) {
|
||||
abort(404, '사용자를 찾을 수 없습니다.');
|
||||
}
|
||||
|
||||
$user = $this->userService->getUserById($id);
|
||||
|
||||
if (! $user) {
|
||||
abort(404, '사용자를 찾을 수 없습니다.');
|
||||
}
|
||||
|
||||
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자를 수정하려는 경우 차단
|
||||
if ($user->is_super_admin && ! auth()->user()?->is_super_admin) {
|
||||
abort(403, '슈퍼관리자는 수정할 수 없습니다.');
|
||||
}
|
||||
|
||||
$tenantId = session('selected_tenant_id');
|
||||
|
||||
// 역할/부서 목록 (테넌트별)
|
||||
|
||||
Reference in New Issue
Block a user