mirror of
https://github.com/screentinker/screentinker.git
synced 2026-08-14 06:16:20 -06:00
Creating a schedule validates every reference it carries against the caller's workspace — content, widget, layout, playlist all go through checkRefInWorkspace. zone_id was the one polymorphic reference left out of that list, so a schedule could be pointed at a zone belonging to another workspace's layout. It needed its own check rather than a sixth entry in the table: layout_zones has no workspace_id column of its own. A zone belongs to a layout, and the layout carries the workspace, so the ownership question has to be answered through that join. A zone on a platform-template layout (workspace_id IS NULL) is allowed, matching how the other references treat templates. 882 server tests green. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uaeo9MvzKoyXuN6ZsbhtkL |
||
|---|---|---|
| .. | ||
| config | ||
| db | ||
| lib | ||
| middleware | ||
| player | ||
| routes | ||
| scripts | ||
| services | ||
| test | ||
| ws | ||
| .gitignore | ||
| config.js | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||
| smoke-ui.js | ||
| version.js | ||