fix(frontend) : ERP-26 - fix Hydra response format (member not hydra:member) and IRI permissions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -84,7 +84,7 @@ interface Role {
|
||||
label: string
|
||||
description: string | null
|
||||
isSystem: boolean
|
||||
permissions: Permission[]
|
||||
permissions: (Permission | string)[]
|
||||
}
|
||||
|
||||
interface PermissionModule {
|
||||
@@ -134,12 +134,12 @@ const permissionsByModule = computed<PermissionModule[]>(() => {
|
||||
|
||||
// Charger les permissions au montage
|
||||
async function loadPermissions() {
|
||||
const data = await api.get<{ 'hydra:member': Permission[] }>(
|
||||
const data = await api.get<{ member: Permission[] }>(
|
||||
'/permissions',
|
||||
{ 'orphan': false, itemsPerPage: 200 },
|
||||
{ toast: false },
|
||||
)
|
||||
allPermissions.value = data['hydra:member']
|
||||
allPermissions.value = data.member
|
||||
}
|
||||
|
||||
// Remplir le formulaire quand le role change
|
||||
@@ -148,7 +148,13 @@ watch(() => props.role, (role) => {
|
||||
form.value.label = role.label
|
||||
form.value.code = role.code
|
||||
form.value.description = role.description || ''
|
||||
selectedPermissionIds.value = new Set(role.permissions.map(p => p.id))
|
||||
selectedPermissionIds.value = new Set(role.permissions.map(p => {
|
||||
// L'API peut retourner des objets Permission ou des IRIs string
|
||||
if (typeof p === 'string') {
|
||||
return Number(p.split('/').pop())
|
||||
}
|
||||
return p.id
|
||||
}))
|
||||
} else {
|
||||
form.value.label = ''
|
||||
form.value.code = ''
|
||||
@@ -196,7 +202,7 @@ async function handleSave() {
|
||||
label: form.value.label,
|
||||
code: form.value.code,
|
||||
description: form.value.description || null,
|
||||
permissions: Array.from(selectedPermissionIds.value).map(id => ({ id })),
|
||||
permissions: Array.from(selectedPermissionIds.value).map(id => `/api/permissions/${id}`),
|
||||
}
|
||||
|
||||
if (isEditMode.value && props.role) {
|
||||
|
||||
@@ -111,7 +111,7 @@ interface Role {
|
||||
label: string
|
||||
description: string | null
|
||||
isSystem: boolean
|
||||
permissions: Permission[]
|
||||
permissions: (Permission | string)[]
|
||||
}
|
||||
|
||||
const { t } = useI18n()
|
||||
@@ -132,12 +132,12 @@ const deleting = ref(false)
|
||||
async function loadRoles() {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await api.get<{ 'hydra:member': Role[] }>(
|
||||
const data = await api.get<{ member: Role[] }>(
|
||||
'/roles',
|
||||
{},
|
||||
{ toast: false },
|
||||
)
|
||||
roles.value = data['hydra:member']
|
||||
roles.value = data.member
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user