diff --git a/.changeset/tasty-geese-train.md b/.changeset/tasty-geese-train.md new file mode 100644 index 000000000..cd524972b --- /dev/null +++ b/.changeset/tasty-geese-train.md @@ -0,0 +1,5 @@ +--- +'hive': patch +--- + +Fix default organization resolution and prevent missing permissions error. diff --git a/packages/services/api/src/modules/organization/providers/organization-manager.ts b/packages/services/api/src/modules/organization/providers/organization-manager.ts index 39f882361..5d75a4c2d 100644 --- a/packages/services/api/src/modules/organization/providers/organization-manager.ts +++ b/packages/services/api/src/modules/organization/providers/organization-manager.ts @@ -78,6 +78,22 @@ export class OrganizationManager { return this.storage.getOrganization(selector); } + async getOrganizationOrNull(organizationId: string) { + const canAccessOrganization = await this.session.canPerformAction({ + action: 'organization:describe', + organizationId, + params: { + organizationId, + }, + }); + + if (canAccessOrganization === false) { + return null; + } + + return this.storage.getOrganization({ organizationId }); + } + async getOrganizationBySlug(organizationSlug: string): Promise { const organization = await this.storage.getOrganizationBySlug({ slug: organizationSlug }); diff --git a/packages/services/api/src/modules/organization/resolvers/Query/myDefaultOrganization.ts b/packages/services/api/src/modules/organization/resolvers/Query/myDefaultOrganization.ts index 169dea7ff..27214cfa6 100644 --- a/packages/services/api/src/modules/organization/resolvers/Query/myDefaultOrganization.ts +++ b/packages/services/api/src/modules/organization/resolvers/Query/myDefaultOrganization.ts @@ -41,16 +41,14 @@ export const myDefaultOrganization: NonNullable; getOrganization(_: { organizationId: string }): Promise; - getMyOrganization(_: { userId: string }): Promise; getOrganizations(_: { userId: string }): Promise; createOrganization( _: Pick & { diff --git a/packages/services/storage/src/index.ts b/packages/services/storage/src/index.ts index 3e1ca3429..9e580b2d9 100644 --- a/packages/services/storage/src/index.ts +++ b/packages/services/storage/src/index.ts @@ -1335,13 +1335,6 @@ export async function createStorage( ), ); }, - async getMyOrganization({ userId: user }) { - const org = await pool.maybeOne>( - sql`/* getMyOrganization */ SELECT * FROM organizations WHERE user_id = ${user} AND type = ${'PERSONAL'} LIMIT 1`, - ); - - return org ? transformOrganization(org) : null; - }, async getOrganizations({ userId: user }) { const results = await pool.query>( sql`/* getOrganizations */