GitHub
05/19/2026, 10:36 PM<https://github.com/jmpsec/osctrl/tree/main|main> by javuto
<https://github.com/jmpsec/osctrl/commit/891d2d97de029d87c1946b1abb5514b83f6581e3|891d2d97> - users: env dropdown + "apply to all envs" bulk grant
<https://github.com/jmpsec/osctrl/commit/925680b19e06fced98bdfe4faf31b971c20c1f78|925680b1> - users: SetEnvLevel upserts instead of erroring on missing row
<https://github.com/jmpsec/osctrl/commit/cb537fa40c7c95987c00150cdc9ac5e678ca6b3d|cb537fa4> - users: GET /permissions endpoint + prefill modal checkboxes
<https://github.com/jmpsec/osctrl/commit/f22fef178a857cbb52a76c04adb7c3853746bbff|f22fef17> - users: permission-gated nav, /env list visible to non-admins, /me carries access map
<https://github.com/jmpsec/osctrl/commit/6541a683c36db6377d1d8c76f42df19601f6aa1b|6541a683> - permissions: audit-trail scoped to user, palette+delete gated
<https://github.com/jmpsec/osctrl/commit/d25b7d67047fedcb6e5955cec4c2c585c7651ada|d25b7d67> - users: Add User + Delete User on the SPA /_app/users page
<https://github.com/jmpsec/osctrl/commit/93d92988d2d95b2b2c3b3c67f8622e9961467be8|93d92988> - api: delete user — clean permissions BEFORE the user row
<https://github.com/jmpsec/osctrl/commit/254eb5b971521f83da041b4aab266b1bfa0b3662|254eb5b9> - users: Reset password per-row + belt-and-braces delete confirmation
<https://github.com/jmpsec/osctrl/commit/dbb1d0be58823ec9b67a7340663d032d91190f31|dbb1d0be> - users: drop window.confirm from delete flow — modal confirm is enough
<https://github.com/jmpsec/osctrl/commit/84f024261d9eb3bdc30fa2706877547210a28405|84f02426> - Merge pull request #832 from alvarofraguas/pr/spa-users-page
jmpsec/osctrl