Wire template-save recalc + session refresh + effective-rights diagnostic

FeatureSecurityService
Shipped
May 11, 2026 at 2:10 AM UTC
Author
Kamo
Commit
cc93419

**************** / updateModel / deleteModel and **************** now invoke recalcAllMembersUsingModel after persisting changes — every org pointed at the model (own master or via branch type) gets member_rights_applied refreshed in the same call. The branch-type delete path also recalcs orphaned child orgs before the row is dropped so their applied-model resolution is correct when the model lookup falls back. **************** writes a freshly-computed rights array into an existing *** Redis entry, preserving TTL + every other field, so live tabs can pick up admin-driven changes without a logout/login cycle. SessionRefreshController exposes POST /api/security/session/refresh — the caller's own *** is resolved from cookie or X-OTK, the live waterfall runs, and the result is written back. Cross-member spoofing is impossible by construction: there is no member-id parameter. RightsDiagnosticsController exposes GET **************** — returns the full waterfall: cascade sources (org roles, dept + dept roles, job title + jt roles, direct overrides), the applied model + non-NOT_SPECIFIED template entries by role type, the live resolved rights split into **************** and an inSyncWithLive flag that surfaces drift between the persisted member_rights_applied snapshot and what the live waterfall produces right now. Auth: must be in the target's org and either be the target, hold **************** or have god mode active.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing