@teamscala/service-boot 0.23.541 → 0.23.542

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -227,6 +227,8 @@
227
227
  "./register-registry-page-route/resolve-panel-page.ts": "./src/register-registry-page-route/resolve-panel-page.ts",
228
228
  "./register-registry-page-route/resolve-request-graph": "./src/register-registry-page-route/resolve-request-graph.ts",
229
229
  "./register-registry-page-route/resolve-request-graph.ts": "./src/register-registry-page-route/resolve-request-graph.ts",
230
+ "./register-registry-page-route/resolve-signed-in-org": "./src/register-registry-page-route/resolve-signed-in-org.ts",
231
+ "./register-registry-page-route/resolve-signed-in-org.ts": "./src/register-registry-page-route/resolve-signed-in-org.ts",
230
232
  "./register-registry-page-route/run-content-gates": "./src/register-registry-page-route/run-content-gates.ts",
231
233
  "./register-registry-page-route/run-content-gates.ts": "./src/register-registry-page-route/run-content-gates.ts",
232
234
  "./register-registry-page-route/single-page-data": "./src/register-registry-page-route/single-page-data.ts",
@@ -307,5 +309,5 @@
307
309
  "repository": "https://github.com/teamgbg/service-boot",
308
310
  "sideEffects": false,
309
311
  "type": "module",
310
- "version": "0.23.541"
312
+ "version": "0.23.542"
311
313
  }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @system service-boot
3
+ * @status handwritten
4
+ */
5
+
6
+ export async function resolveSignedInOrgId(
7
+ headers: Headers,
8
+ ): Promise<string | null> {
9
+ const { getSession } = await import("@teamscala/auth/get-session.ts");
10
+ const session = await getSession(headers);
11
+ if (!session?.user) return null;
12
+ const { queryRowsUnsafe } = await import("@teamscala/db/query-rows");
13
+ const rows = (await queryRowsUnsafe(
14
+ 'SELECT fn_resolve_user_org_id($1) AS "resolved"',
15
+ session.user.id,
16
+ )) as Array<{ resolved: { orgId: string | null } | null }>;
17
+ return rows[0]?.resolved?.orgId ?? null;
18
+ }
@@ -17,6 +17,7 @@ import type { Hono } from "hono";
17
17
  import { bindPageHandler } from "./bind-page-handler.ts";
18
18
  import { selectServiceRoutes } from "./select-service-routes.ts";
19
19
  import { resolveRequestGraph } from "./register-registry-page-route/resolve-request-graph.ts";
20
+ import { resolveSignedInOrgId } from "./register-registry-page-route/resolve-signed-in-org.ts";
20
21
  import { stampSessionContext } from "./register-registry-page-route/stamp-session-context.ts";
21
22
  import { runContentGatesForPage } from "./register-registry-page-route/run-content-gates.ts";
22
23
  import {
@@ -281,6 +282,10 @@ export async function registerRegistryPageRoute(
281
282
  });
282
283
 
283
284
  app.get(pattern, async (c) => {
285
+ if (routeConfig.org_home_redirect) {
286
+ const homeOrgId = await resolveSignedInOrgId(c.req.raw.headers);
287
+ if (homeOrgId) return c.redirect(`/${homeOrgId}`, 302);
288
+ }
284
289
  const routeOrgId = c.req.param("orgId");
285
290
  return bindPageHandler(
286
291
  c,