Say the gate rule once, and key the example's shifts by the identifier it scopes on
CI / full-gate (push) Successful in 3m4s

This commit is contained in:
2026-09-02 08:50:44 +02:00
parent bf146c07e7
commit 5d1e8f2309
5 changed files with 8 additions and 13 deletions
-3
View File
@@ -190,9 +190,6 @@ export function newShiftForm(): RouteHandler {
return (ctx) => ({ data: buildFormModel({ chrome: ctx.chrome, t: ctx.t }), view: "shift-new" });
}
// The `session: true` archetype: the rows are the visitor's own, so there is no distinction a
// permission could name — anyone signed in sees theirs and only theirs. The scoping is the
// upstream's, never a filter here: it owns the data and answers for one person's rows.
export function myShifts(upstream: ShiftsUpstream): RouteHandler {
return async (ctx) => {
const user = requireSession(ctx);