|
Phase 4.5: Conditional UI rendering by permissions
Add usePermission() guards across Vue client pages and components: - DeviceTable: Reboot button only when devices.control - ActionScriptsGrid: Run button only when scripts.run - ScriptTable: Enable/Disable only when scripts.edit - AreaTreePage: Create area only when areas.manage - AreaDetailPage: Rename/Assign/Unassign/Remove only when areas.manage - DeviceDetailPage: Edit/Assign/Reset only when devices.edit; ReSetup only when devices.setup; Reboot only when devices.control; Remove only when devices.delete; Firmware Update only when firmware.upload - DevicesScanningPage: Add (setup) button only when devices.setup - ScriptDetailPage: Run only when scripts.run; Assign/Unassign/Enable toggle only when scripts.edit - ScriptsScopesPage: Enable/Disable only when scripts.edit - FirmwaresListPage: Refresh Catalog only when firmware.upload Fix ActionScriptsGrid.spec.js to seed auth store with scripts.run permission. All 167 tests pass. |
|---|
|
|
| webclient/src/components/device/DeviceTable.vue |
|---|
| webclient/src/components/script/ActionScriptsGrid.vue |
|---|
| webclient/src/components/script/ScriptTable.vue |
|---|
| webclient/src/components/script/__tests__/ActionScriptsGrid.spec.js |
|---|
| webclient/src/features/areas/pages/AreaDetailPage.vue |
|---|
| webclient/src/features/areas/pages/AreaTreePage.vue |
|---|
| webclient/src/features/devices/pages/DeviceDetailPage.vue |
|---|
| webclient/src/features/devices/pages/DevicesScanningPage.vue |
|---|
| webclient/src/features/firmwares/pages/FirmwaresListPage.vue |
|---|
| webclient/src/features/scripts/pages/ScriptDetailPage.vue |
|---|
| webclient/src/features/scripts/pages/ScriptsScopesPage.vue |
|---|