Commit df7fc10
fix(auth): run better-auth objectql adapter reads as system reads
The better-auth -> ObjectQL adapter issued find/findOne/count without a
caller context. On the cloud control plane, the org-scope read hook keys
off the CALLER's user id to scope sys_member / sys_organization, so
context-less adapter reads were filtered down to zero and
organization.list() returned no orgs for a user who is a real member of
one or more orgs (multi-org switching was unusable).
Wrap the adapter's data engine in withSystemReadContext, marking every
read context.isSystem:true so such hooks pass through. better-auth has
already authenticated the session and scopes results by its own
where-clauses (e.g. member.userId = session.user), so system reads are
correct here. Writes are untouched (org-scope is a read-only hook).
Applied to both createObjectQLAdapterFactory (production) and the legacy
createObjectQLAdapter. Verified end-to-end against the cloud control
plane: organization.list() now returns all of a user's orgs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 3afaeed commit df7fc10
2 files changed
Lines changed: 83 additions & 2 deletions
Lines changed: 55 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
279 | 280 | | |
280 | 281 | | |
281 | 282 | | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
138 | 162 | | |
139 | 163 | | |
140 | 164 | | |
| |||
151 | 175 | | |
152 | 176 | | |
153 | 177 | | |
154 | | - | |
| 178 | + | |
| 179 | + | |
155 | 180 | | |
156 | 181 | | |
157 | 182 | | |
| |||
281 | 306 | | |
282 | 307 | | |
283 | 308 | | |
284 | | - | |
| 309 | + | |
| 310 | + | |
285 | 311 | | |
286 | 312 | | |
287 | 313 | | |
| |||
0 commit comments