Files
Aislo/.agent/complete_and_old/validation_dashboard_management.md
T

7.0 KiB

대시보드 관리 기능 검증 보고서 (Validation Report)

본 문서는 .agent/plan_dashboard_management.md 계획서를 기준으로 B01_Dashboard 관련 프론트엔드 및 백엔드 코드를 검증한 결과를 담고 있습니다.

1. 종합 평가

  • 백엔드 (FastAPI/Python): 계획서상 정의된 핵심 비즈니스 로직(역할 변경 및 제약조건, 마지막 ADMIN 보호 등)은 일정 부분 반영되었으나, 자동화 로직의 USER 조회 권한 누수 등 계획서 명세와 다른 부분이 발견되었습니다.
  • 프론트엔드 (TypeScript): 프로젝트 수정/삭제, 사용자 수정/삭제/역할변경, 자동화 설계 로직 모달 등 계획서 9번에 정의된 주요 UI 컴포넌트(모달) 및 권한 검증 헬퍼가 대부분 미구현(누락) 상태입니다.
  • 다국어 (i18n): 계획서 8번에서 명시한 다국어 문구 키들이 ui_template_locale.ts에 전혀 반영되지 않았습니다.

2. 세부 검증 항목 및 대조 결과

2.1 UI 컴포넌트 및 제어 (프론트엔드)

요구 기능 (계획서 9. UI 컴포넌트) 구현 상태 확인 코드 및 위치 특이사항 / 개선 필요 사항
프로젝트 수정 모달 (openEditProjectModal) 미구현 B01_Dashboard_UI_Page.ts 프로젝트 목록에 수정 버튼 및 모달이 존재하지 않음
프로젝트 삭제 확인 모달 (openDeleteProjectModal) 미구현 B01_Dashboard_UI_Page.ts 프로젝트 삭제 버튼 및 경고 모달 없음
사용자 추가 모달 (openAddUserModal) ⚠️ 부분구현 openAddMemberModal 가입 계정 목록 조회 형식이 아니라 단순 이메일 입력 방식임
사용자 수정 모달 (openEditUserModal) 미구현 B01_Dashboard_UI_Page.ts 사용자 수정 액션 및 모달 없음
사용자 역할 변경 모달 (openChangeRoleModal) 미구현 B01_Dashboard_UI_Page.ts 역할 변경 모달 없음
사용자 삭제 확인 모달 (openDeleteUserModal) 미구현 B01_Dashboard_UI_Page.ts 삭제 버튼은 있으나 단순 API 호출 처리 (경고 모달 없음)
자동화 로직 생성/수정 모달 (openAutomationModal) 미구현 B01_Dashboard_UI_Page.ts 대시보드 UI에 자동화 설계 로직 섹션이 완전 누락됨
자동화 로직 삭제 확인 모달 (openDeleteAutomationModal) 미구현 B01_Dashboard_UI_Page.ts 위와 동일

2.2 권한 검증 헬퍼 (프론트엔드)

요구 헬퍼 함수 (계획서 9. 권한 검증 헬퍼) 구현 상태 개선 필요 사항
canEditProject(user, project) 미구현 UI 단의 권한 체크 분기 부재
canDeleteProject(user) 미구현 SYSTEM_ADMIN 분기 처리 미흡
canAddUser(user) 미구현 -
canChangeRole(user, targetUser) 미구현 -
canDeleteUser(user, targetUser) 미구현 -
canManageAutomation(user, automation) 미구현 -
isLastAdmin(user, company) 미구현 프론트엔드 예외 처리 없음 (백엔드만 동작)

2.3 API 및 백엔드 권한 검증 (백엔드)

API 엔드포인트 / 기능 계획서 스펙 실제 구현 위치 검증 결과
프로젝트 수정 API /api/projects/{id} dashboard_update_project 통과 (경로명 상이): 실 주소는 /api/dashboard/projects/{project_id}
프로젝트 삭제 API /api/projects/{id} (SYSTEM_ADMIN만) dashboard_delete_project 통과 (경로명 상이): require_system_admin 데코레이터 적용 완료
사용자 추가 API /api/companies/{cid}/users admin_add_member 통과: require_company_admin으로 가입 계정 추가 제어
사용자 정보 수정 API /api/users/{id} (필드 제한) admin_update_user 부분 통과: USER일 때 status를 강제 비우는 세이프가드는 있으나, 다른 관리자 필드 차단 확인 필요
사용자 역할 변경 API /api/users/{id}/role system_change_role 통과: SYSTEM_ADMIN 변경 방지 및 마지막 ADMIN 변경 불가 보장
사용자 삭제 API /api/companies/{cid}/users/{uid} admin_remove_member 통과: 맴버 삭제 처리 로직 작동
자동화 로직 조회 API /api/projects/{pid}/automations dashboard_project_automations 위반: 일반 USER 권한도 조회 가능하게 설계되어 계획서의 USER 조회 불가(매트릭스 2.4) 위반

3. 핵심 수정 필요 사항

  1. 다국어 키 반영: ui_template_locale.ts 파일 하단에 계획서 8번의 다국어 문구 객체를 온전히 삽입해야 합니다.
  2. 백엔드 권한 통제 강화: B01_Dashboard_Router.pydashboard_project_automations 등에서 USER 권한을 가진 사용자의 자동화 로직 조회를 차단해야 합니다.
  3. 프론트엔드 UI/UX 완성: 계획서에 제시된 수정/삭제 모달 창을 B01_Dashboard_UI_Page.ts에 추가 구현하고 관련 버튼들을 조건부 활성화 및 노출 처리해야 합니다.