feat(inventory): 재고 현황 요약/상세 플로우를 릴리스
- lib/features/inventory/summary 계층과 warehouse select 위젯을 추가해 목록/상세, 자동 새로고침, 필터, 상세 시트를 구현 - PermissionBootstrapper, scope 파서, 라우트 가드로 inventory.view 기반 권한 부여와 메뉴 노출을 통합(lib/core, lib/main.dart 등) - Inventory Summary API/QA/Audit 문서와 PR 템플릿, CHANGELOG를 신규 스펙과 검증 커맨드로 업데이트 - DTO 직렬화 의존성을 추가하고 Golden·Widget·단위 테스트를 작성했으며 flutter analyze / flutter test --coverage를 통과
This commit is contained in:
@@ -19,6 +19,22 @@ class PermissionSynchronizer {
|
||||
|
||||
/// 지정한 [groupId]의 메뉴 권한을 조회해 [PermissionManager]에 적용한다.
|
||||
Future<void> syncForGroup(int groupId) async {
|
||||
final permissionMap = await fetchPermissionMap(groupId);
|
||||
_manager.applyServerPermissions(permissionMap);
|
||||
}
|
||||
|
||||
/// 지정한 [groupId]의 메뉴 권한을 조회해 맵 형태로 반환한다.
|
||||
Future<Map<String, Set<PermissionAction>>> fetchPermissionMap(
|
||||
int groupId,
|
||||
) async {
|
||||
final collected = await _collectPermissions(groupId);
|
||||
if (collected.isEmpty) {
|
||||
return const {};
|
||||
}
|
||||
return buildPermissionMap(collected);
|
||||
}
|
||||
|
||||
Future<List<GroupPermission>> _collectPermissions(int groupId) async {
|
||||
final collected = <GroupPermission>[];
|
||||
var page = 1;
|
||||
|
||||
@@ -45,7 +61,6 @@ class PermissionSynchronizer {
|
||||
page += 1;
|
||||
}
|
||||
|
||||
final permissionMap = buildPermissionMap(collected);
|
||||
_manager.applyServerPermissions(permissionMap);
|
||||
return collected;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user