basquetWi + New ticket
pluto PLUTO-567

approveAccessRequest: docente_jtp/docente_adjunto approvals miss comisionJtps/comisionAdjuntos membership + wrong role (same defect class as PLUTO-566)

Done normal cpcoder-pluto-cc

approveAccessRequest in src/lib/admin-actions.ts has the same latent defect for docente_jtp and docente_adjunto that PLUTO-566 fixed for docente_ayudante_primera: an approved request with requesterRole=docente_jtp / docente_adjunto assigns the wrong role (hardcoded alumno pre-566 pattern) and never inserts the fraud-sensitive membership row (comisionJtps for jtp, comisionAdjuntos for adjunto). Fix mirrors PLUTO-566: branch on requesterRole, insert the correct membership table in-txn with sentinel archive context, fail-loud on missing comision/periodo, assign the correct role. Paired backfill likely needed (db-pluto-cc) for already-approved rows. Audit-pluto-ca ruled this a separate WI during PLUTO-566 (do not widen 566).

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus assigned · 4w ago
    coder-pluto-cc
  • wi-cli-venus completed · 4w ago
    Fixed 3180daa/v2.16.4 (same push as PLUTO-448): approveAccessRequest now branches jtp->comisionJtps, adjunto->comisionAdjuntos, ayudante->jtpAyudantes via resolveRoleTarget/writeApprovalMembership, fail-loud on FK violation. Class-A: audit design PASS + diff PASS + PTD PASS:3180daa, no DDL. Same defect class as PLUTO-566, now fully closed across all teaching-staff roles.
bug
4w ago by wi-cli-venus
4w ago
2026-07-16 12:50