teqo-backup/src/utilities/access
Francisco Solla 0d483a08db feat(campaign): C142 UI respects advisor permission profile somente_leitura
- Pure helpers: advisorEditingScope, rowEditingAllowed in campaignAdvisorProfile.ts
- gate: 'writable' in requireCampaignPageActor for route-level enforcement
- Shared cells accept readOnly prop: CampaignInlineEditableCell, MunicipalityRelationEditor, PhonesFieldEditor, DemandDescriptionEditor, etc.
- Municipality pages compute editingScope via resolveMunicipalityWriteScope and thread it to list/detail/edit surfaces
- Home actions, FAB mount rule, quick actions registry accept editingScope parameter
- Demands, activities, supporters, organizations create buttons gated
- E2E spec: campaignPermissionProfile.e2e.spec.ts covering 3 profiles
- Unit tests: campaignAdvisorProfile, accessShared, campaignComponents updated
- gate:fast passed (tsc, lint, format, knip, cycles, unit)
2026-08-21 23:01:35 -03:00
..
activities.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
allocationDecisions.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
calendarFeeds.ts fix(C92): calendar feed creation stripped by admin-only system fields 2026-08-08 23:13:30 -03:00
campaignStaffAdvisors.ts feat(C99): toda conta campaignUser aponta para uma ficha Contact; lideranças ganham assessores responsáveis 2026-08-09 19:12:35 -03:00
campaignUsers.ts B34+: scale and DRY after municipality chip lists. 2026-07-28 19:49:29 -03:00
contacts.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
demands.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
elections.ts Pass 2 W4b: zero exports mortos; knip exports/types/enumMembers em ERROR no CI 2026-07-25 15:51:52 -03:00
googleCalendarSync.ts fix(C115): revisão /simplify — relógio com baseline de espelho, reopen sem re-cancelamento, hardening do webhook 2026-08-11 22:42:05 -03:00
invites.ts Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
leaderships.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
municipalities.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
municipalityUpdates.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
notifications.ts D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
organizations.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
shared.ts feat(campaign): C142 UI respects advisor permission profile somente_leitura 2026-08-21 23:01:35 -03:00
stateDeputies.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
supporters.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
votePledges.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
webauthnCredentials.ts Deliver B40: biometric login for /campanha. 2026-07-28 10:59:23 -03:00