refactor: wire WorkspaceScope into BelongsToWorkspace trait #62
Open
Charon
wants to merge 1 commit from
feat/clarify-workspace-scope-architecture into dev
pull from: feat/clarify-workspace-scope-architecture
merge into: core:dev
core:dev
core:feat/test-workspace-controller
core:feat/workspace-ownership-transfer
core:feat/ide-helper-annotations
core:feat/test-namespace-service
core:feat/artisan-provision-command
core:feat/workspace-activity-audit-log
core:feat/bulk-workspace-invitations
core:feat/openapi-docs
core:feat/add-infection-mutation-testing
core:feat/fix-readme-namespaces
core:feat/test-entitlement-webhook-service
core:feat/invitation-and-role-improvements
core:feat/workspace-lazy-loading
core:feat/invitation-soft-deletes
core:feat/totp-edge-case-tests
core:feat/standardise-error-responses
core:feat/entitlement-exception-hierarchy
core:feat/consolidate-user-relationships-v2
core:feat/validate-invitation-token-format
core:feat/constrain-feature-code-fk
core:feat/fix-usage-race-condition
core:feat/fix-token-timing-attack
core:feat/add-workspace-role-index
core:feat/add-phpstan-larastan
core:feat/complete-user-stats-stubs
core:feat/fix-namespace-n-plus-1
core:feat/fix-parent-feature-cascade
core:feat/namespace-cascade-delete
core:feat/pin-core-dependency
core:feat/remove-hardcoded-domain
core:feat/test-workspace-team-service
core:feat/workspace-return-types
core:main
1 commit
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1c34757645
|
refactor: wire WorkspaceScope into BelongsToWorkspace as global scope
WorkspaceScope existed as a standalone Scope class but was never registered as a global scope via BelongsToWorkspace. This meant queries like Account::query()->get() would not be automatically filtered by workspace, and the forWorkspace()/acrossWorkspaces() macros (which call withoutGlobalScope) had no effect. Changes: - Add static::addGlobalScope(new WorkspaceScope) in bootBelongsToWorkspace() - Delegate getCurrentWorkspace() to Workspace::current() (DRY) - Update scopeOwnedByCurrentWorkspace() to use Workspace::current() - Update ownedByCurrentWorkspaceCached() to use Workspace::current() - Document architecture relationship between the two classes Fixes #5 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |