Commit ea0b5d5
committed
fix(security): RealtimeController — add @NoAdminRequired + per-org cursor
Two issues, one commit:
1. Both `events()` and `cursor()` only carried `@NoCSRFRequired`. The
docblock contract assumes non-admins can poll, but without
`@NoAdminRequired` the framework gate would have blocked them
before the body ran.
2. `cursor()` returned `getMaxId()` — the global head pointer across
every tenant. Any authed caller could observe the global write
rate (and infer other tenants' activity) by polling.
Add `@NoAdminRequired` to both methods. Replace `getMaxId()` with a
new `getMaxIdForOrganisation()` mapper method scoped to the active
organisation. Active org `null` ⇒ cursor `0` (fail-closed).
Refs: #1419 review (concern 2) — discussion_r31874944571 parent a9759fe commit ea0b5d5
2 files changed
Lines changed: 47 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| |||
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
| 140 | + | |
139 | 141 | | |
140 | 142 | | |
141 | 143 | | |
142 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
143 | 162 | | |
144 | 163 | | |
145 | | - | |
| 164 | + | |
146 | 165 | | |
147 | 166 | | |
148 | 167 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
118 | 145 | | |
119 | 146 | | |
120 | 147 | | |
| |||
0 commit comments