mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-12 10:25:58 +00:00
server, middleware, load label policy 🏷️
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { demos } from "#/lib/demos";
|
||||
import ThemeWrapper from "#/ui/ThemeWrapper";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function Page() {
|
||||
|
||||
14
apps/login/lib/hooks.ts
Normal file
14
apps/login/lib/hooks.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
// Custom hook to read auth record and user profile doc
|
||||
export function useUserData() {
|
||||
const [clientData, setClientData] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
let unsubscribe;
|
||||
|
||||
return unsubscribe;
|
||||
}, [clientData]);
|
||||
|
||||
return { clientData };
|
||||
}
|
||||
@@ -3,31 +3,37 @@ import {
|
||||
ZitadelServer,
|
||||
ZitadelServerOptions,
|
||||
getManagement,
|
||||
orgMetadata,
|
||||
getServer,
|
||||
getServers,
|
||||
initializeServer,
|
||||
LabelPolicy,
|
||||
initializeServer,
|
||||
} from "@zitadel/server";
|
||||
// import { getAuth } from "@zitadel/server/auth";
|
||||
|
||||
export const zitadelConfig: ZitadelServerOptions = {
|
||||
name: "zitadel login",
|
||||
apiUrl: process.env.ZITADEL_API_URL ?? "",
|
||||
token: process.env.ZITADEL_SERVICE_USER_TOKEN ?? "",
|
||||
};
|
||||
|
||||
if (!getServers().length) {
|
||||
initializeServer(zitadelConfig);
|
||||
}
|
||||
let server: ZitadelServer;
|
||||
|
||||
const server = getServer();
|
||||
console.log(server);
|
||||
if (!getServers().length) {
|
||||
console.log("initialize server");
|
||||
server = initializeServer(zitadelConfig);
|
||||
}
|
||||
|
||||
export function getBranding(
|
||||
server: ZitadelServer
|
||||
): Promise<LabelPolicy | undefined> {
|
||||
const mgmt = getManagement(server);
|
||||
|
||||
return mgmt.getLabelPolicy({}).then((resp) => resp.policy);
|
||||
return mgmt
|
||||
.getLabelPolicy(
|
||||
{},
|
||||
{ metadata: orgMetadata(process.env.ZITADEL_ORG_ID ?? "") }
|
||||
)
|
||||
.then((resp) => resp.policy);
|
||||
}
|
||||
|
||||
export { server };
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
"use client";
|
||||
import { ThemeProvider } from "next-themes";
|
||||
import ThemeWrapper from "./ThemeWrapper";
|
||||
|
||||
type Props = {
|
||||
@@ -8,13 +6,14 @@ type Props = {
|
||||
|
||||
export function LayoutProviders({ children }: Props) {
|
||||
return (
|
||||
<ThemeProvider
|
||||
attribute="class"
|
||||
defaultTheme="system"
|
||||
storageKey="cp-theme"
|
||||
value={{ dark: "dark" }}
|
||||
>
|
||||
// <ThemeProvider
|
||||
// attribute="class"
|
||||
// defaultTheme="system"
|
||||
// storageKey="cp-theme"
|
||||
// value={{ dark: "dark" }}
|
||||
// >
|
||||
/* @ts-expect-error Server Component */
|
||||
<ThemeWrapper>{children}</ThemeWrapper>
|
||||
</ThemeProvider>
|
||||
// </ThemeProvider>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
"use client";
|
||||
|
||||
import { getBranding } from "#/lib/zitadel";
|
||||
import { useTheme } from "next-themes";
|
||||
import { server } from "../lib/zitadel";
|
||||
import { use } from "react";
|
||||
|
||||
const ThemeWrapper = async ({ children }: any) => {
|
||||
const { resolvedTheme } = useTheme();
|
||||
const isDark = resolvedTheme && resolvedTheme === "dark";
|
||||
console.log("hehe");
|
||||
// const { resolvedTheme } = useTheme();
|
||||
const isDark = true; //resolvedTheme && resolvedTheme === "dark";
|
||||
|
||||
try {
|
||||
const policy = await getBranding(server);
|
||||
|
||||
3
packages/zitadel-server/src/internal.ts
Normal file
3
packages/zitadel-server/src/internal.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { ZitadelServer } from "./server";
|
||||
|
||||
export const _servers = new Map<string, ZitadelServer>();
|
||||
@@ -25,6 +25,7 @@ const createClient = <Client>(
|
||||
};
|
||||
|
||||
export const getManagement = (app?: string | ZitadelServer) => {
|
||||
console.log("init management");
|
||||
let config;
|
||||
if (app && typeof app === "string") {
|
||||
const apps = getServers();
|
||||
|
||||
@@ -12,3 +12,6 @@ export const authMiddleware = (token: string) =>
|
||||
|
||||
return yield* call.next(call.request, options);
|
||||
};
|
||||
|
||||
export const orgMetadata = (orgId: string) =>
|
||||
new Metadata({ "x-zitadel-orgid": orgId });
|
||||
|
||||
@@ -9,17 +9,24 @@ export interface ZitadelServerOptions extends ZitadelServerProps {
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface ZitadelServer {
|
||||
name: string | undefined;
|
||||
config: ZitadelServerProps;
|
||||
}
|
||||
|
||||
export async function initializeServer(
|
||||
export function initializeServer(
|
||||
config: ZitadelServerProps,
|
||||
name?: string
|
||||
): Promise<ZitadelServer> {
|
||||
const app = { config, name };
|
||||
return app;
|
||||
): ZitadelServer {
|
||||
const server = new ZitadelServer(config, name);
|
||||
return server;
|
||||
}
|
||||
|
||||
export class ZitadelServer {
|
||||
name: string | undefined;
|
||||
config: ZitadelServerProps;
|
||||
|
||||
constructor(config: ZitadelServerProps, name?: string) {
|
||||
if (name) {
|
||||
this.name = name;
|
||||
}
|
||||
this.config = config;
|
||||
}
|
||||
}
|
||||
|
||||
export function getServers(): ZitadelServer[] {
|
||||
|
||||
Reference in New Issue
Block a user