Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c9c6d043a7 |
@@ -172,6 +172,16 @@ return [
|
|||||||
'module' => 'catalog',
|
'module' => 'catalog',
|
||||||
'permission' => 'catalog.categories.view',
|
'permission' => 'catalog.categories.view',
|
||||||
],
|
],
|
||||||
|
// Stockage (M7, ERP-210). Admin-only : gate par `catalog.storages.view`
|
||||||
|
// et son module owner `catalog`. Reutilise le referentiel StorageType
|
||||||
|
// du M6. Place pres des autres items Catalog (produits, categories).
|
||||||
|
[
|
||||||
|
'label' => 'sidebar.catalog.storages',
|
||||||
|
'to' => '/admin/storages',
|
||||||
|
'icon' => 'mdi:warehouse',
|
||||||
|
'module' => 'catalog',
|
||||||
|
'permission' => 'catalog.storages.view',
|
||||||
|
],
|
||||||
[
|
[
|
||||||
'label' => 'sidebar.core.audit_log',
|
'label' => 'sidebar.core.audit_log',
|
||||||
'to' => '/admin/audit-log',
|
'to' => '/admin/audit-log',
|
||||||
|
|||||||
@@ -53,7 +53,8 @@
|
|||||||
},
|
},
|
||||||
"catalog": {
|
"catalog": {
|
||||||
"categories": "Gestion des catégories",
|
"categories": "Gestion des catégories",
|
||||||
"products": "Catalogue produits"
|
"products": "Catalogue produits",
|
||||||
|
"storages": "Gestion des stockages"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export interface Persona {
|
|||||||
// sidebar-visibility pour driver la matrice. Les valeurs correspondent
|
// sidebar-visibility pour driver la matrice. Les valeurs correspondent
|
||||||
// aux slugs de route (`/admin/<slug>`), volontairement stables quand
|
// aux slugs de route (`/admin/<slug>`), volontairement stables quand
|
||||||
// la copie/i18n change.
|
// la copie/i18n change.
|
||||||
expectedAdminLinks: Array<'users' | 'roles' | 'sites' | 'audit-log' | 'categories' | 'products'>
|
expectedAdminLinks: Array<'users' | 'roles' | 'sites' | 'audit-log' | 'categories' | 'products' | 'storages'>
|
||||||
}
|
}
|
||||||
|
|
||||||
const SHARED_PASSWORD = 'e2e-secret'
|
const SHARED_PASSWORD = 'e2e-secret'
|
||||||
@@ -47,7 +47,7 @@ export const personas: Record<PersonaKey, Persona> = {
|
|||||||
password: SHARED_PASSWORD,
|
password: SHARED_PASSWORD,
|
||||||
isAdmin: true,
|
isAdmin: true,
|
||||||
permissions: [],
|
permissions: [],
|
||||||
expectedAdminLinks: ['users', 'roles', 'sites', 'categories', 'products', 'audit-log'],
|
expectedAdminLinks: ['users', 'roles', 'sites', 'categories', 'products', 'storages', 'audit-log'],
|
||||||
},
|
},
|
||||||
'user-full': {
|
'user-full': {
|
||||||
key: 'user-full',
|
key: 'user-full',
|
||||||
@@ -71,6 +71,12 @@ export const personas: Record<PersonaKey, Persona> = {
|
|||||||
// `/admin/products` -> ajoute le lien `products` a expectedAdminLinks.
|
// `/admin/products` -> ajoute le lien `products` a expectedAdminLinks.
|
||||||
'catalog.products.view',
|
'catalog.products.view',
|
||||||
'catalog.products.manage',
|
'catalog.products.manage',
|
||||||
|
// Stockage (M7, ERP-210). Admin-only : mappe sur le persona "tout",
|
||||||
|
// pas de nouveau persona (regle ABSOLUE n°7). L'item vit dans la
|
||||||
|
// section Administration sur la route `/admin/storages` -> ajoute le
|
||||||
|
// lien `storages` a expectedAdminLinks.
|
||||||
|
'catalog.storages.view',
|
||||||
|
'catalog.storages.manage',
|
||||||
// Commercial — Repertoire clients (M1). Mappe ici sur le persona
|
// Commercial — Repertoire clients (M1). Mappe ici sur le persona
|
||||||
// "tout" en attendant les vrais roles metier (bureau/compta/
|
// "tout" en attendant les vrais roles metier (bureau/compta/
|
||||||
// commerciale/usine) seedes par ERP-74. Pas de nouveau persona
|
// commerciale/usine) seedes par ERP-74. Pas de nouveau persona
|
||||||
@@ -121,7 +127,7 @@ export const personas: Record<PersonaKey, Persona> = {
|
|||||||
'logistique.weighing_tickets.view',
|
'logistique.weighing_tickets.view',
|
||||||
'logistique.weighing_tickets.manage',
|
'logistique.weighing_tickets.manage',
|
||||||
],
|
],
|
||||||
expectedAdminLinks: ['users', 'roles', 'sites', 'categories', 'products', 'audit-log'],
|
expectedAdminLinks: ['users', 'roles', 'sites', 'categories', 'products', 'storages', 'audit-log'],
|
||||||
},
|
},
|
||||||
'user-readonly': {
|
'user-readonly': {
|
||||||
key: 'user-readonly',
|
key: 'user-readonly',
|
||||||
@@ -166,4 +172,4 @@ export function getPersona(key: PersonaKey): Persona {
|
|||||||
return personas[key]
|
return personas[key]
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ALL_ADMIN_LINKS = ['users', 'roles', 'sites', 'categories', 'products', 'audit-log'] as const
|
export const ALL_ADMIN_LINKS = ['users', 'roles', 'sites', 'categories', 'products', 'storages', 'audit-log'] as const
|
||||||
|
|||||||
@@ -47,6 +47,11 @@ final class CatalogModule
|
|||||||
// Item sidebar dans la section Administration, sous « Repertoire transporteurs ».
|
// Item sidebar dans la section Administration, sous « Repertoire transporteurs ».
|
||||||
['code' => 'catalog.products.view', 'label' => 'Voir les produits'],
|
['code' => 'catalog.products.view', 'label' => 'Voir les produits'],
|
||||||
['code' => 'catalog.products.manage', 'label' => 'Gérer les produits (créer, éditer)'],
|
['code' => 'catalog.products.manage', 'label' => 'Gérer les produits (créer, éditer)'],
|
||||||
|
// Stockage (M7, ERP-210) : admin-only. Reutilise le referentiel
|
||||||
|
// StorageType du M6. Item sidebar dans la section Administration,
|
||||||
|
// pres des items Catalog (produits, categories).
|
||||||
|
['code' => 'catalog.storages.view', 'label' => 'Voir les stockages'],
|
||||||
|
['code' => 'catalog.storages.manage', 'label' => 'Gérer les stockages (créer, éditer)'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -190,6 +190,10 @@ final class SeedE2ECommand extends Command
|
|||||||
// p.3) : mappe sur le persona "tout". Miroir de personas.ts.
|
// p.3) : mappe sur le persona "tout". Miroir de personas.ts.
|
||||||
'catalog.products.view',
|
'catalog.products.view',
|
||||||
'catalog.products.manage',
|
'catalog.products.manage',
|
||||||
|
// Stockage (M7, ERP-210). Admin-only : mappe sur le persona
|
||||||
|
// "tout". Miroir de personas.ts.
|
||||||
|
'catalog.storages.view',
|
||||||
|
'catalog.storages.manage',
|
||||||
// Commercial — Repertoire clients (M1). Mappe ici sur le
|
// Commercial — Repertoire clients (M1). Mappe ici sur le
|
||||||
// persona "tout" en attendant les vrais roles metier
|
// persona "tout" en attendant les vrais roles metier
|
||||||
// (bureau/compta/commerciale/usine) seedes par ERP-74.
|
// (bureau/compta/commerciale/usine) seedes par ERP-74.
|
||||||
|
|||||||
Reference in New Issue
Block a user