feat(user-modal): 사용자 정보 모달 및 컨텍스트 메뉴 확장

사용자 모달 기능:
- 사용자 정보 모달 팝업 (조회/삭제/수정)
- 권한 요약 정보 (Web/API 권한 카운트)
- 2x2 그리드 레이아웃 (테넌트, 역할, 부서, 권한)
- 테이블 행 클릭으로 모달 열기
- 권한 관리 링크 클릭 시 해당 사용자 자동 선택

컨텍스트 메뉴 확장:
- permission-analyze 페이지 사용자 이름에 컨텍스트 메뉴
- user-permissions 페이지 사용자 버튼에 컨텍스트 메뉴
- 사용자 모달 내 테넌트 칩에 컨텍스트 메뉴
- 헤더 테넌트 배지에 컨텍스트 메뉴
- 테넌트 메뉴에 "이 테넌트로 전환" 기능 추가
This commit is contained in:
2025-11-27 20:05:27 +09:00
parent 9440742d84
commit 39ed2ac3e3
25 changed files with 1063 additions and 89 deletions

View File

@@ -44,6 +44,7 @@ public function rules(): array
// 구독 정보
'tenant_st_code' => ['required', 'string', 'in:trial,active,suspended,expired'],
'tenant_type' => ['required', 'string', 'in:STD,TPL,HQ'],
'billing_tp_code' => ['nullable', 'string', 'in:monthly,yearly,free'],
'max_users' => ['nullable', 'integer', 'min:1'],
'trial_ends_at' => ['nullable', 'date'],
@@ -69,6 +70,8 @@ public function messages(): array
'homepage.url' => '올바른 URL 형식이 아닙니다.',
'tenant_st_code.required' => '상태는 필수입니다.',
'tenant_st_code.in' => '올바른 상태를 선택해주세요.',
'tenant_type.required' => '테넌트 유형은 필수입니다.',
'tenant_type.in' => '올바른 테넌트 유형을 선택해주세요.',
'billing_tp_code.in' => '올바른 결제 유형을 선택해주세요.',
'max_users.integer' => '최대 사용자 수는 숫자여야 합니다.',
'max_users.min' => '최대 사용자 수는 최소 1명 이상이어야 합니다.',
@@ -92,6 +95,7 @@ public function attributes(): array
'homepage' => '홈페이지',
'fax' => '팩스',
'tenant_st_code' => '상태',
'tenant_type' => '테넌트 유형',
'billing_tp_code' => '결제 유형',
'max_users' => '최대 사용자 수',
'trial_ends_at' => '트라이얼 종료일',