결재 API 계약 보완 및 테스트 정리

This commit is contained in:
JiWoong Sul
2025-10-16 18:53:22 +09:00
parent 9e2244f260
commit efed3c1a6f
44 changed files with 1969 additions and 293 deletions

View File

@@ -0,0 +1,32 @@
import '../../../../core/permissions/permission_manager.dart';
import '../../../../core/permissions/permission_resources.dart';
/// 로그인 응답에서 내려오는 단일 권한(리소스 + 액션 목록)을 표현한다.
class AuthPermission {
const AuthPermission({required this.resource, required this.actions});
/// 서버가 반환한 리소스 식별자 (예: `/stock-transactions`)
final String resource;
/// 허용된 액션 문자열 목록 (예: `view`, `create`)
final List<String> actions;
/// [PermissionManager]가 이해할 수 있는 포맷으로 변환한다.
Map<String, Set<PermissionAction>> toPermissionMap() {
final normalized = PermissionResources.normalize(resource);
final actionSet = <PermissionAction>{};
for (final raw in actions) {
final matched = PermissionAction.values.where(
(action) => action.name == raw.trim().toLowerCase(),
);
if (matched.isEmpty) {
continue;
}
actionSet.addAll(matched);
}
if (actionSet.isEmpty) {
return <String, Set<PermissionAction>>{};
}
return {normalized: actionSet};
}
}