@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.
|
|
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,
|