Phase B of permissions overhaul. Mechanical text replacement across 11 ir.model.access.csv files: - group_fusion_plating_operator -> fusion_plating.group_fp_technician - group_fusion_plating_supervisor -> fusion_plating.group_fp_shop_manager_v2 - group_fusion_plating_manager -> fusion_plating.group_fp_manager - group_fusion_plating_admin -> fusion_plating.group_fp_owner - group_fp_estimator (configurator)-> fusion_plating.group_fp_sales_rep - group_fp_accounting -> fusion_plating.group_fp_manager - group_fp_receiving -> fusion_plating.group_fp_shop_manager_v2 - group_fp_shop_manager (legacy) -> fusion_plating.group_fp_manager - group_fusion_plating_cgp_officer -> fusion_plating.group_fp_quality_manager - group_fusion_plating_cgp_designated_official -> fusion_plating.group_fp_owner Backward-compat: old group xmlids still resolve (Phase A's implied_ids chains keep old ACLs working for users still holding old groups). This sweep ensures future-state correctness: when old groups are deleted after the 30-day rollback window, ACLs continue resolving via the new group xmlids. Also adds fusion_plating/tests/test_acl_migration.py with sample-based per-role access checks. The 2 CAPA tests are expected to fail until Phase C implements the Manager/QM quality split. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.7 KiB
3.7 KiB
| 1 | id | name | model_id:id | group_id:id | perm_read | perm_write | perm_create | perm_unlink |
|---|---|---|---|---|---|---|---|---|
| 2 | access_fp_job_node_override_operator | fp.job.node.override.operator | model_fp_job_node_override | fusion_plating.group_fp_technician | 1 | 0 | 0 | 0 |
| 3 | access_fp_job_node_override_supervisor | fp.job.node.override.supervisor | model_fp_job_node_override | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 0 |
| 4 | access_fp_job_node_override_manager | fp.job.node.override.manager | model_fp_job_node_override | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 5 | access_fp_job_consumption_operator | fp.job.consumption.operator | model_fp_job_consumption | fusion_plating.group_fp_technician | 1 | 1 | 1 | 0 |
| 6 | access_fp_job_consumption_supervisor | fp.job.consumption.supervisor | model_fp_job_consumption | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 0 |
| 7 | access_fp_job_consumption_manager | fp.job.consumption.manager | model_fp_job_consumption | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 8 | access_fp_job_step_move_wiz_op | fp.job.step.move.wiz.operator | model_fp_job_step_move_wizard | fusion_plating.group_fp_technician | 1 | 1 | 1 | 1 |
| 9 | access_fp_job_step_move_wiz_sup | fp.job.step.move.wiz.supervisor | model_fp_job_step_move_wizard | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 10 | access_fp_job_step_move_wiz_mgr | fp.job.step.move.wiz.manager | model_fp_job_step_move_wizard | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 11 | access_fp_job_step_move_wiz_in_op | fp.job.step.move.wiz.in.operator | model_fp_job_step_move_wizard_input | fusion_plating.group_fp_technician | 1 | 1 | 1 | 1 |
| 12 | access_fp_job_step_move_wiz_in_sup | fp.job.step.move.wiz.in.supervisor | model_fp_job_step_move_wizard_input | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 13 | access_fp_job_step_move_wiz_in_mgr | fp.job.step.move.wiz.in.manager | model_fp_job_step_move_wizard_input | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 14 | access_fp_job_step_input_wiz_op | fp.job.step.input.wiz.operator | model_fp_job_step_input_wizard | fusion_plating.group_fp_technician | 1 | 1 | 1 | 1 |
| 15 | access_fp_job_step_input_wiz_sup | fp.job.step.input.wiz.supervisor | model_fp_job_step_input_wizard | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 16 | access_fp_job_step_input_wiz_mgr | fp.job.step.input.wiz.manager | model_fp_job_step_input_wizard | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 17 | access_fp_job_step_input_wiz_l_op | fp.job.step.input.wiz.l.operator | model_fp_job_step_input_wizard_line | fusion_plating.group_fp_technician | 1 | 1 | 1 | 1 |
| 18 | access_fp_job_step_input_wiz_l_sup | fp.job.step.input.wiz.l.supervisor | model_fp_job_step_input_wizard_line | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 19 | access_fp_job_step_input_wiz_l_mgr | fp.job.step.input.wiz.l.manager | model_fp_job_step_input_wizard_line | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 20 | access_fp_workflow_state_op | fp.workflow.state.operator | model_fp_job_workflow_state | fusion_plating.group_fp_technician | 1 | 0 | 0 | 0 |
| 21 | access_fp_workflow_state_sup | fp.workflow.state.supervisor | model_fp_job_workflow_state | fusion_plating.group_fp_shop_manager_v2 | 1 | 0 | 0 | 0 |
| 22 | access_fp_workflow_state_mgr | fp.workflow.state.manager | model_fp_job_workflow_state | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 23 | access_fp_cert_issue_wiz_sup | fp.cert.issue.wiz.supervisor | model_fp_cert_issue_wizard | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 24 | access_fp_cert_issue_wiz_mgr | fp.cert.issue.wiz.manager | model_fp_cert_issue_wizard | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 25 | access_fp_cert_issue_wiz_l_sup | fp.cert.issue.wiz.l.supervisor | model_fp_cert_issue_wizard_line | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 26 | access_fp_cert_issue_wiz_l_mgr | fp.cert.issue.wiz.l.manager | model_fp_cert_issue_wizard_line | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |
| 27 | access_fp_cert_issue_wiz_r_sup | fp.cert.issue.wiz.r.supervisor | model_fp_cert_issue_wizard_reading | fusion_plating.group_fp_shop_manager_v2 | 1 | 1 | 1 | 1 |
| 28 | access_fp_cert_issue_wiz_r_mgr | fp.cert.issue.wiz.r.manager | model_fp_cert_issue_wizard_reading | fusion_plating.group_fp_manager | 1 | 1 | 1 | 1 |