**작업 설명** 조직 기반 Team 권한 모델을 정리하고, 사용자 계정 상태 관리 및 권한 확장 컬럼 구조를 추가했습니다. **상세 작업** * `users.organization_id` 제거 * 사용자 조직 소속을 `team_memberships` 기준으로 해석하도록 변경 * `organization.parent_id` 제거 * `organization_structure` 테이블 제거 * Team 기반 권한 테이블 구조 정리 * `team_memberships` * `team_workflow_permissions` * `team_knowledge_permissions` * `team_llm_permissions` * `team_audit_permissions` * `teams(id, organization_id)` unique constraint 추가 * Team 관련 중간 테이블에 composite FK 적용 * 기존 `option String(50)` 제거 * `options JSONB` 추가 * `flags BIGINT` 추가 * `flags >= 0` check constraint 추가 * `users.deactivated_at` 추가 * `users.last_login_at` 추가 * 비활성화된 사용자 로그인/토큰 인증 차단 * 로그인, 회원가입 후 자동 로그인, Google OAuth 성공 시 `last_login_at` 갱신 * Knowledge/RAG 생성 시 사용자 직접 `organization_id` 대신 TeamMembership 기반 조직 조회 사용 * 관련 Alembic migration 추가 * DB 모델 테스트 및 인증 서비스 테스트 추가 * RBAC / Team Workspace / 데이터 모델 문서 갱신 **front-end 기능** * 추후 Organization Switcher 추가 필요 * 현재 Organization 기준 대시보드/모듈/지식 관리/통계 화면 필터링 필요 * Organization Settings, Members, Teams/Roles, Audit Logs 화면 추가 필요 * 현재 사용자 권한에 따른 버튼 노출 제어 필요 * AppService.create_app 자동 생성 로직 제거 **참고 사항** * 기존 `option` 데이터 보존은 고려하지 않는 방향으로 진행 * Personal 리소스와 Organization 리소스 분리 정책은 추가 결정 필요 * Marketplace의 조직 내부 공유 범위 정책은 추가 검토 필요 * 관리자 권한은 별도 user 컬럼보다 Team/Role 기반으로 처리하는 방향 * 테스트 결과: `14 passed, 1 warning` * Docker PostgreSQL 임시 DB에서 migration upgrade/downgrade 검증 완료
Activity
linear-code commentedon Sep 4, 2026
MBA-394