[DTP-Worker] Sprint 2 · Générateur plan User Permission (RBAC row-level scope_donnees → Frappe)
Complète le pipeline RBAC (Role + Custom DocPerm déjà livrés) par la dimension row-level. Mapping natif ERPNext v15 des 4 scope_donnees : - entite → User Permission allow=Company (28 templates, user=sentinelle) - own → if_owner (déjà posé par fixtures_gen) - groupe → aucune restriction (vue consolidée) - equipe → pas de dimension native → signalé VPS (jamais mappé, #6) Module userperm_gen/ : permlib/{frappe,builder}, CLI build/validate (refuse d'écrire si invariant KO), userperm.schema.json (validateur maison, zéro pip), 12 tests unittest, README. Job CI rbac-userperm-tests ajouté au gate. Docs SPEC §7 + fixtures_gen README cousues. Régression 72 tests verts, gate OK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -130,13 +130,24 @@ cible côté serveur (`erpnext-backend-1`) :
|
||||
(listés dans `MANIFEST.custom_doctypes_a_confirmer`).
|
||||
3. Déposer `role.json` + `custom_docperm.json` dans `fixtures/` de l'app OTO
|
||||
(`hooks.py`), puis `bench --site frontend migrate`.
|
||||
4. Mapper les `scope_donnees` en `User Permission` par utilisateur.
|
||||
4. Mapper les `scope_donnees` en `User Permission` par utilisateur — **plan
|
||||
livré** : [`userperm_gen/`](userperm_gen/README.md)
|
||||
(`python3 userperm_gen.py build`). Matérialiser le `user_permission_template`
|
||||
par utilisateur assigné (champ `user` = sentinelle) après confirmation des
|
||||
Companies (`MANIFEST.companies_a_confirmer`) et décision du mécanisme des
|
||||
rôles `equipe` (`MANIFEST.roles_scope_equipe_a_confirmer`).
|
||||
5. Vérification HTTP post-déploiement (workflow #3) + audit QA 4Big.
|
||||
|
||||
> ✅ Le **générateur de fixtures** `rbac_50_roles.json → fixtures/` est **livré**
|
||||
> en-repo ([`fixtures_gen/`](fixtures_gen/README.md), même patron que le
|
||||
> Publiciste, zéro pip / zéro VPS). Sortie déterministe validée par 11 tests +
|
||||
> job CI `rbac-fixtures-tests`. L'application `bench` reste côté serveur.
|
||||
>
|
||||
> ✅ Le **plan `User Permission` row-level** `scope_donnees → mécanisme Frappe`
|
||||
> est **livré** en-repo ([`userperm_gen/`](userperm_gen/README.md)) : 28
|
||||
> templates `Company` (portée `entite`), portées `own`/`groupe` sans restriction
|
||||
> fabriquée, portée `equipe` signalée (pas de dimension native → aucune
|
||||
> invention #6). 12 tests + job CI `rbac-userperm-tests`.
|
||||
|
||||
## 8. Vérification (en-repo, sans toucher au VPS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user