mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { GithubSetup } from "@/components/dashboard/settings/github/github-setup";
|
|
import { WebDomain } from "@/components/dashboard/settings/web-domain";
|
|
import { WebServer } from "@/components/dashboard/settings/web-server";
|
|
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
|
|
import { SettingsLayout } from "@/components/layouts/settings-layout";
|
|
import { validateRequest } from "@/server/auth/auth";
|
|
import type { GetServerSidePropsContext } from "next";
|
|
import React, { type ReactElement } from "react";
|
|
|
|
const Page = () => {
|
|
return (
|
|
<div className="flex flex-col gap-4 w-full">
|
|
<WebDomain />
|
|
<GithubSetup />
|
|
<WebServer />
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default Page;
|
|
|
|
Page.getLayout = (page: ReactElement) => {
|
|
return (
|
|
<DashboardLayout tab={"settings"}>
|
|
<SettingsLayout>{page}</SettingsLayout>
|
|
</DashboardLayout>
|
|
);
|
|
};
|
|
export async function getServerSideProps(
|
|
ctx: GetServerSidePropsContext<{ serviceId: string }>,
|
|
) {
|
|
const { user } = await validateRequest(ctx.req, ctx.res);
|
|
if (!user) {
|
|
return {
|
|
redirect: {
|
|
permanent: true,
|
|
destination: "/",
|
|
},
|
|
};
|
|
}
|
|
if (user.rol === "user") {
|
|
return {
|
|
redirect: {
|
|
permanent: true,
|
|
destination: "/dashboard/settings/profile",
|
|
},
|
|
};
|
|
}
|
|
|
|
return {
|
|
props: {},
|
|
};
|
|
}
|