Commit Graph

725 Commits

Author SHA1 Message Date
3992adc800 style: Laravel Pint 코드 스타일 자동 수정 2025-11-25 11:06:03 +09:00
dc91b89b44 feat(mng): 권한 관리 기능 구현
- Permission 모델 및 PermissionService 생성 (Spatie Permission 확장)
- HTMX 기반 권한 CRUD API 구현
- Blade 기반 권한 관리 화면 (index, create, edit)
- 권한명 포맷팅 로직 추가 (menu:id.type 파싱)
- 사이드바 메뉴 추가
- 멀티테넌트 지원 (tenant_id nullable)
- 할당된 역할/부서 표시 기능
2025-11-25 11:05:57 +09:00
ee167a112e docs: Phase 4 완료 문서 업데이트 및 메뉴 관리 링크 추가
- CURRENT_WORKS.md: Phase 4-2~4-5 상세 작업 내역 추가 (365줄)
- docs/INDEX.md: Phase 4 완료 상태 업데이트
- docs/specs/database-schema.md: Phase 4 테이블 8개 상세 스키마 추가
- sidebar.blade.php: 메뉴 관리 링크 추가 (누락되어 있었음)

Phase 4 완료: 시스템 관리 5개 메뉴 (테넌트/역할/부서/사용자/메뉴)
2025-11-24 23:07:09 +09:00
79aebfa148 메뉴 관리 기능 개선
- 트리 구조 정렬 및 표시 (무제한 depth 지원)
- 접기/펼치기 기능 추가 (재귀적 처리)
- 활성/숨김 상태 토글 기능 (실시간 업데이트)
- 테넌트 필터링 (전체 선택 시 마스터 메뉴만 표시)
- UI 개선 (토글 버튼, 외부 메뉴 표시)

추가된 파일:
- MenuService: 비즈니스 로직 처리
- MenuController (API/Web): 라우트 처리
- MenuRequest: 유효성 검증
- views/menus/: 메뉴 관리 뷰

수정된 파일:
- routes/api.php, web.php: 메뉴 라우트 추가
2025-11-24 22:02:09 +09:00
43af1a5779 페이지네이션 기능 개선 및 공통화
- 페이지네이션 로직을 별도 JS 파일로 분리 (public/js/pagination.js)
  * 쿠키 기반 per_page 값 저장 및 유지
  * 페이지네이션 이벤트 핸들러 통합
  * 중복 코드 제거

- 페이지네이션 UI 개선
  * 처음으로/끝으로 이동 버튼 추가
  * selectbox 너비 조정 (90px)
  * 서버사이드 selected 속성으로 옵션 매칭 개선

- 초기 페이지당 항목 수를 10개로 변경
  * TenantController, UserController, DepartmentController, RoleController 기본값 수정

- layouts/app.blade.php
  * pagination.js 로드 추가
  * 기존 인라인 스크립트 제거

변경 파일:
- public/js/pagination.js (신규)
- resources/views/layouts/app.blade.php
- resources/views/partials/pagination.blade.php
- app/Http/Controllers/Api/Admin/{Tenant,User,Department,Role}Controller.php
2025-11-24 21:21:22 +09:00
894055786e 사용자 관리 복구 및 영구삭제 기능 추가
- UserService: audit 컬럼 처리 추가 (created_by, updated_by, deleted_by)
- UserService: restoreUser(), forceDeleteUser() 메서드 추가
- UserController: restore(), forceDestroy() 엔드포인트 추가
- 권한 체크: 영구삭제는 슈퍼관리자만 가능
- UI: 삭제된 사용자에 복원/영구삭제 버튼 추가
- Routes: restore, forceDestroy 라우트 추가
- UserService::getUsers()에 withTrashed() 추가
2025-11-24 19:30:36 +09:00
0c86b390ad feat: 사용자 관리 기능 및 MNG 문서 추가
- MNG_CRITICAL_RULES.md: DB 마이그레이션 금지 등 핵심 규칙
- UserController: 사용자 CRUD API 엔드포인트
- StoreUserRequest, UpdateUserRequest: 사용자 검증
- 사용자 관리 뷰: index, create, edit, table
- 시스템 관리 메뉴 UI 개선 (테이블 헤더 스타일)
- docs/INDEX.md: CRITICAL_RULES 링크 추가
2025-11-24 18:49:02 +09:00
74ee0f5f5a fix: User 모델 tenant 관계 수정 (user_tenants pivot 사용)
- User 모델: tenants() belongsToMany 관계 추가
- UserService: whereHas('tenants') pivot 필터링으로 변경
- 사용자 생성 시 user_tenants pivot 처리
- tenant_id 컬럼 참조 제거 (다대다 관계)
2025-11-24 18:48:07 +09:00
6738505106 feat: Phase 4-3 부서 관리 시스템 구현
- DepartmentService, DepartmentController (Blade/API) 생성
- 부서 CRUD 기능 완성 (목록/생성/수정/삭제)
- FormRequest 검증 (StoreDepartmentRequest, UpdateDepartmentRequest)
- HTMX 패턴 적용 (index, create, edit, partials/table)
- 계층 구조 지원 (parent-child relationships)
- 활성/비활성 상태 관리
- 정렬 순서 관리
- Tenant Selector 통합
- Sidebar 메뉴에 부서 관리 추가

주요 기능:
- 자기 참조 방지 (parent_id validation)
- 하위 부서 존재 시 삭제 방지
- Conditional tenant filtering 적용
- Active/Inactive 필터링
- HTMX 페이지네이션 (target, includeForm 파라미터 포함)

정책:
- 모든 리스트 화면은 1페이지만 있어도 페이지네이션 표시
2025-11-24 16:52:23 +09:00
5f50716d7f feat: Phase 4-2 역할 관리 시스템 구현 (HTMX + API 패턴)
- RoleService, RoleController (Blade/API) 생성
- 역할 CRUD 기능 완성 (목록/생성/수정/삭제)
- FormRequest 검증 (StoreRoleRequest, UpdateRoleRequest)
- HTMX 패턴 적용 (index, create, edit)
- 권한 선택 UI (체크박스, 전체 선택/해제)
- Tenant Selector 통합
- 레이아웃 패턴 문서화 (LAYOUT_PATTERN.md)
- Sidebar 메뉴에 역할 관리 추가
- Pagination partial 컴포넌트 추가
- Tenants 레이아웃 100% 폭으로 통일

주요 수정:
- UpdateRoleRequest 라우트 파라미터 수정 (role → id)
- RoleController permissions 조회 시 description 제거
- Conditional tenant filtering 적용
2025-11-24 16:36:02 +09:00
2752a6b7c3 docs: 트러블슈팅 가이드 추가
테넌트 관리 개발 중 발생한 주요 오류와 해결 방법 문서화:
- HTMX 관련 오류 (URL 라우팅, CSRF, ViewComposer 충돌)
- FormRequest 유효성 검증 오류
- 데이터베이스 외래키 제약 오류

디버깅 팁 및 예방 체크리스트 포함
2025-11-24 11:43:04 +09:00
bc3777ace5 테넌트 CRUD 기능 수정
주요 수정사항:
- UpdateTenantRequest: 라우트 파라미터 수정 (tenant → id)
- TenantService: 영구 삭제 시 관련 데이터 먼저 삭제 (FK 제약 해결)
- edit.blade.php: HTMX URL 전체 경로 사용 + 폼 fallback 추가
- index.blade.php: CSRF 토큰 추가 (삭제, 복원, 영구삭제)

버그 수정:
- 수정 시 302 리다이렉트 오류 해결 (code 유일성 검증 실패)
- 삭제 시 419 CSRF 토큰 오류 해결
- 영구 삭제 시 500 FK 제약 오류 해결
2025-11-24 11:42:01 +09:00
f49cfd982a 테넌트 관리 기능 수정 및 ViewServiceProvider 변수명 충돌 해결
주요 변경사항:
- Spatie Laravel Permission 패키지 설치 (v6.23.0)
- admin 프로젝트에서 필수 Traits 및 Scopes 복사
  - ModelTrait, BelongsToTenant, HasTenantFilter, UppercaseAttributes
  - TenantScope
- Tenant 모델 관계 수정 (hasMany → belongsToMany via user_tenants)
- Tenant 모델 null 처리 추가 (status_label, created_at)
- Laravel 12 bootstrap/app.php에 API 라우트 등록
- API 라우트 미들웨어 수정 (auth:sanctum → web,auth)
- HTMX 라이브러리 및 CSRF 토큰 헤더 추가

ViewServiceProvider 수정:
- 전역 View Composer의 $tenants 변수를 $globalTenants로 변경
- 페이지별 페이지네이션된 $tenants 변수와의 충돌 방지
- tenant-selector.blade.php에서 $globalTenants 사용

버그 수정:
- Collection::hasPages() 오류 해결 (ViewComposer 변수 덮어쓰기 문제)
- 테넌트 목록 무한 로딩 스피너 해결
- 500 Internal Server Error 해결
2025-11-24 11:17:31 +09:00
6c73571c0f fix: Tenant 모델 네임스페이스 참조 오류 수정
- ViewServiceProvider: App\Models\Tenant → App\Models\Tenants\Tenant
- User 모델에 tenant() 관계 추가
2025-11-24 08:50:44 +09:00
0f214459dd feat: Phase 4-1 테넌트 관리 프론트엔드 구현
- 라우트 등록 (web.php: Blade 화면, api.php: HTMX API)
- Blade 뷰 생성 (index, create, edit)
- Partial 템플릿 생성 (table with pagination)
- HTMX 통합 (비동기 CRUD, 필터링, 페이지네이션)
- Pure Tailwind CSS 스타일링
- 실시간 검색 및 상태 필터
- 삭제/복원 기능 구현
2025-11-21 15:00:30 +09:00
575e9df431 feat: Phase 4-1 테넌트 관리 백엔드 구현
- TenantService 생성 (CRUD, 통계, 복원/영구삭제)
- API Controller 구현 (HTMX 요청 감지, HTML/JSON 이중 응답)
- FormRequest 검증 (StoreTenantRequest, UpdateTenantRequest)
- Tenant 모델 확장 (17개 필드, 관계 설정, accessor)
- Department, Menu, Role 모델 복사 (admin → mng)
- Web Controller 수정 (index/create/edit 화면)
- MIGRATION_PLAN.md 작성 (HTMX + API 아키텍처)
2025-11-21 14:46:13 +09:00
70c2978b44 docs: CURRENT_WORKS.md 커밋 해시 업데이트 2025-11-21 09:18:42 +09:00
661c5adbe6 feat: 테넌트 선택 기능 구현
- Tenant 모델 생성 (SoftDeletes, active scope)
- TenantController 전환 컨트롤러
- ViewServiceProvider로 모든 뷰에 테넌트 데이터 자동 제공
- partials/tenant-selector.blade.php UI 컴포넌트

기능:
- 드롭다운으로 테넌트 전환 (전체 보기 포함)
- Session 기반 선택 상태 저장
- 우측에 현재 테넌트 정보 표시
- 모든 페이지에서 @include로 사용 가능

이슈 해결:
- is_active 컬럼 없음 → tenant_st_code + deleted_at 사용
- 삭제되지 않은 모든 테넌트 표시 (7개)
2025-11-21 09:18:19 +09:00
8400352562 docs: CURRENT_WORKS.md 커밋 해시 업데이트 2025-11-20 21:29:13 +09:00
9367f61b9e feat: 좌측 사이드바 레이아웃 및 메뉴 시스템 구현
- layouts/app.blade.php 마스터 레이아웃 생성
- partials/sidebar.blade.php 좌측 사이드바 컴포넌트 (256px, 10개 메뉴)
- partials/header.blade.php 상단 헤더 컴포넌트 (64px, 페이지 타이틀 + 사용자 메뉴)
- dashboard/index.blade.php @extends 패턴으로 리팩토링

메뉴 구조:
- 조직 관리: 대시보드, 사용자, 권한/역할, 부서
- 제품/자재: 제품, 자재, BOM, 카테고리
- 시스템: 시스템 설정, 감사 로그

레이아웃:
- Flexbox 구조 (사이드바 + 메인 영역)
- Blade 컴포넌트 분리 (@extends/@section/@include)
- Heroicons 아이콘, 활성 상태 하이라이트
- 사용자 드롭다운 메뉴 (JavaScript 토글)
2025-11-20 21:28:58 +09:00
51f0797edc docs: CURRENT_WORKS.md 커밋 해시 업데이트 2025-11-20 21:09:28 +09:00
7b3505ac98 fix: DaisyUI oklch() 브라우저 호환성 문제 해결
- DaisyUI 완전 제거, Pure Tailwind CSS로 전환
- oklch() 색상 함수 → hex 색상으로 변경 (구형 브라우저 지원)
- 로그인 페이지 Tailwind 유틸리티 클래스로 리팩토링
- CSS 빌드 사이즈 74.82KB → 23.15KB 최적화
- DB_HOST 설정 수정 (sam-mysql-1 → 127.0.0.1)

## 변경 내역
- tailwind.config.js: DaisyUI 제거, custom 색상 정의
- resources/views/auth/login.blade.php: DaisyUI 클래스 → Tailwind 유틸리티
- resources/css/app.css: CSS 변수 추가
- .env: DB_HOST 로컬 접근 설정
- docs/INDEX.md: MNG 문서 인덱스 추가

## 해결된 문제
- Safari <15.4, Chrome <111에서 CSS 미적용 문제 해결
- 모든 브라우저에서 로그인 페이지 정상 작동 확인
2025-11-20 21:09:14 +09:00
4bcb14d93c docs: CURRENT_WORKS 업데이트 - DaisyUI 이슈 해결 기록 2025-11-20 16:34:43 +09:00
b71e85aeea fix: Tailwind 3.x 다운그레이드 및 DaisyUI 적용
- Tailwind CSS 4.x → 3.4.17 다운그레이드 (DaisyUI 호환성)
- @tailwindcss/postcss 제거, 표준 postcss 설정으로 변경
- vite.config.js에서 @tailwindcss/vite 제거
- DaisyUI 5.5.5 정상 빌드 확인 (74.82 KB)
- CSS 파일에 .btn, .card 등 DaisyUI 클래스 포함 확인
2025-11-20 16:28:52 +09:00
ece1f28747 feat: MNG 인증 시스템 구현
- Laravel Sanctum 기반 세션 인증 시스템 구축
- Service-First 아키텍처: AuthService 작성
- FormRequest 분리: LoginRequest 검증
- DaisyUI 기반 로그인 UI 구현
- 라우트 설정: /login, /logout, /dashboard
- Tailwind CSS 4.x PostCSS 설정
- Vite 빌드 완료

Phase 1-1: 인증 시스템 개발 완료
2025-11-20 16:24:40 +09:00