Files
probo/pkg
Émile Ré 88d7961ac6 Take resolver scope from authorize, not the GID
The authorize/Authorize helpers (GraphQL and MCP) already return the
*coredata.Scope resolved from the resource's organization_id attribute,
but several resolvers discarded it and rebuilt the scope with
coredata.NewScopeFromObjectID(...) right after. NewScopeFromObjectID
only reads the tenant encoded in the GID, while the authorizer derives
the scope from loaded resource attributes, so the two silently drift if
the resource lookup ever changes.

Capture scope from authorize and feed it straight to the service/coredata
layer. For the LinkX/UnlinkX MCP tools, move the per-case Authorize
inside the switch and drop the shared scope so each case owns its own
authorization result. Document the rule in contrib/claude/authorization.md
and add a matching .cursor/rules/go-authorize-scope.mdc, including the
narrow exception for global-catalog authorize calls (e.g. identity-scoped
ActionCommonThirdPartyList) where downstream services take no scope.

Signed-off-by: Émile Ré <emile@probo.com>
2026-05-29 10:07:29 +02:00
..
2026-05-28 23:42:35 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-27 12:23:17 -07:00
2026-05-28 20:12:24 -07:00
2026-05-20 09:27:28 +04:00
2026-05-26 15:02:50 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-04-03 11:56:06 +02:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:53:09 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 16:51:15 -07:00
2026-05-26 15:49:17 +02:00
2026-05-20 09:27:28 +04:00
2026-05-26 15:26:22 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00